この章の目次にもどる
前頁:1.14 longlong.h にもどる
次頁:1.16 tcode.h にすすむ

1.15 tad.h

以下は、TAD を扱うための定数、型の定義である。

□ レコードタイプ

#define RT_LINK      0   リンクレコード
#define RT_TADDATA   1   TAD主レコード
#define RT_TADCMT    2   TAD注釈レコード
#define RT_TADSUB    3   TAD補助レコード
#define RT_TADRSV    4   予約レコード
#define RT_SFUSEN    5   設定付箋レコード
#define RT_DFUSEN    6   指定付箋レコード
#define RT_FFUSEN    7   機能付箋レコード
#define RT_MFUSEN    8   実行機能付箋レコード
#define RT_PROG      9   実行プログラムレコード
#define RT_DATABOX  10   データボックスレコード
#define RT_FONT     11   フォントレコード
#define RT_DICT     12   辞書レコード
#define RT_SYSRSV1  13   システム予約 1
#define RT_SYSRSV2  14   システム予約 2
#define RT_SYSDATA  15   システムデータレコード

□ レコードタイプマスク

#define RM_LINK     0x00000001  リンクレコード
#define RM_TADDATA  0x00000002  TAD主レコード
#define RM_TADCMT   0x00000004  TAD注釈レコード
#define RM_TADSUB   0x00000008  TAD補助レコード
#define RM_TADRSV   0x00000010  予約レコード
#define RM_SFUSEN   0x00000020  設定付箋レコード
#define RM_DFUSEN   0x00000040  指定付箋レコード
#define RM_FFUSEN   0x00000080  機能付箋レコード
#define RM_MFUSEN   0x00000100  実行機能付箋レコード
#define RM_PROG     0x00000200  実行プログラムレコード
#define RM_DATABOX  0x00000400  データボックスレコード
#define RM_FONT     0x00000800  フォントデータレコード
#define RM_DICT     0x00001000  辞書データレコード
#define RM_SYSRSV1  0x00002000  システム予約 1
#define RM_SYSRSV2  0x00004000  システム予約 2
#define RM_SYSDATA  0x00008000  システムデータレコード

□ 実身タイプ

#define OBJ_EJECT   0x1000      取り外し可能デバイス実身
#define OBJ_DEV     0x2000      デバイス実身
#define OBJ_EXEC    0x8000      実行可能ファイル

□ 頻出文字コード

#define TC_NULL 0x0000      NULL(無効コード)
#define TC_NL   0x000a      NL(改段落コード)
#define TC_CR   0x000d      CR(改行コード)
#define TC_TAB  0x0009      TAB(タブコード)
#define TC_FF   0x000c      FF(改ページコード)
#define TC_NC   0x000b      NC(改コラムコード)
#define TC_SP   0x0020      Space(スペースコード)
#define TC_LANG 0xfe00      言語指定コード
#define TC_SPEC 0xff00      特殊コード
#define TC_ESC  0xff80      Escape

□ TAD定義に用いる型

typedef H   UNITS;      座標系の単位
typedef UH  CHSIZE;     文字サイズ
typedef UH  SCALE;      文字表示の行間隔
typedef UH  RATIO;      文字表示などの比率

□ 通常セグメント

typedef struct  {
    UH  id;     TADセグメントID
    UH  len;        TADセグメントサイズ
                (len 以降のサイズ)
} TADSEG;

□ ラージセグメント

typedef struct  {
    UH  id;     TADセグメントID
    UH  len;        ダミー領域(0xffff を格納する)
    UW  llen;       TADセグメントサイズ
                (len 以降のサイズ)
} LTADSEG;

□ 標準可変長セグメントID

#define TS_INFO     0xE0    管理情報セグメント
#define TS_TEXT     0xE1    文章開始セグメント
#define TS_TEXTEND  0xE2    文章終了セグメント
#define TS_FIG      0xE3    図形開始セグメント
#define TS_FIGEND   0xE4    図形終了セグメント
#define TS_IMAGE    0xE5    画像セグメント
#define TS_VOBJ     0xE6    仮身セグメント
#define TS_DFUSEN   0xE7    指定付箋セグメント
#define TS_FFUSEN   0xE8    機能付箋セグメント
#define TS_SFUSEN   0xE9    設定付箋セグメント

□ 文章付箋セグメントID

#define TS_TPAGE    0xA0    文章ページ割付け指定付箋
#define TS_TRULER   0xA1    行書式指定付箋
#define TS_TFONT    0xA2    文字指定付箋
#define TS_TCHAR    0xA3    特殊文字指定付箋
#define TS_TATTR    0xA4    文字割り付け指定付箋
#define TS_TSTYLE   0xA5    文字修飾指定付箋
#define TS_TVAR     0xAD    変数参照指定付箋
#define TS_TMEMO    0xAE    文章メモ指定付箋
#define TS_TAPPL    0xAF    文章アプリケーション指定付箋

□ 図形描画セグメントID

#define TS_FPRIM    0xB0    図形要素セグメント
#define TS_FDEF     0xB1    データ定義セグメント
#define TS_FGRP     0xB2    グループ定義セグメント
#define TS_FMAC     0xB3    マクロ定義/参照セグメント
#define TS_FATTR    0xB4    図形修飾セグメント
#define TS_FPAGE    0xB5    図形ページ割り付け指定付箋
#define TS_FMEMO    0xBE    図形メモ指定付箋
#define TS_FAPPL    0xBF    図形アプリケーション指定付箋

□ 管理情報セグメント(TS_INFO)

typedef struct {
    UH  subid;      /* 管理情報項目ID */
    UH  sublen;     /* 項目データバイト数 */
    UH  data[1];    /* 項目データ本体 */
} INFOSEG;

□ 文章開始セグメント(TS_TEXT)

typedef struct {
    RECT    view;       /* 表示領域 */
    RECT    draw;       /* 描画領域 */
    UNITS   h_unit;     /* 水平ユニット */
    UNITS   v_unit;     /* 垂直ユニット */
    UH      lang;       /* デフォールト言語 */
    UH      bgpat;      /* 背景パターンID */
} TEXTSEG;
#define TEXTSEG_STRUCT  "hhhhhhhhhhhh"

□ 図形開始セグメント(TS_FIG)

typedef struct {
    RECT    view;       /* 表示領域 */
    RECT    draw;       /* 描画領域 */
    UNITS   h_unit;     /* 水平ユニット */
    UNITS   v_unit;     /* 垂直ユニット */
    W   ratio;          /* 予約 */
} FIGSEG;
#define FIGSEG_STRUCT       "hhhhhhhhhhw"

□ 画像セグメント(TS_IMAGE)

typedef struct {
    RECT    view;       /* 表示領域 */
    RECT    draw;       /* 描画領域 */
    UNITS   h_unit;     /* 水平ユニット */
    UNITS   v_unit;     /* 垂直ユニット */
    H       slope;      /* 傾斜 */
    UH      color;      /* カラー属性 */
    UH      cinfo[4];   /* カラー情報 */
    UW      extlen;     /* 拡張情報のバイト数 */
    UW      extend;     /* 拡張情報へのオフセット */
    UW      mask;       /* マスクデータへのオフセット */
    /*---------------- 圧縮ビットマップデータ---------------*/
    H       compac;     /* 圧縮ビットマップ形式 */
    H       planes;     /* ビットマッププレーン数 */
    H       pixbits;    /* ピクセルビット数 */
    H       rowbytes;   /* プレーンの横幅バイト数 */
    RECT    bounds;     /* 座標定義 */
    UW  base_off[1];    /* プレーンデータ開始アドレス */
} IMAGESEG;
#define IMAGESEG_STRUCT     "4h4hhhhh4hwwwhhhh4h"             /* bounds まで */
#define BASE_SIZE_IMAGESEG  (sizeof(IMAGESEG)-sizeof(UW))     /* bounds まで */

□ 画像セグメント拡張情報

typedef struct {
    UH  ext_id;         /* 拡張情報のタイプ */
    UH  len;            /* 拡張情報のバイト数 */
    union {
        UB  data[1];    /* 拡張情報本体 */
        UW  offset;     /* 拡張情報本体へのオフセット */
    } i;
} IMAGESEG_EXTEND;
#define IMAGESEG_EXTEND_STRUCT      "hh"            /* len まで */
#define BASE_SIZE_IMAGESEG_EXTEND   (sizeof(UH)*2)  /* len まで */

□ 仮身セグメント(TS_VOBJ)

typedef struct {
    RECT    view;       /* 表示領域 */
    H       height;     /* 開いた場合の高さ */
    CHSIZE  chsz;       /* 文字サイズ */
    COLOR   frcol;      /* 枠の色 */
    COLOR   chcol;      /* 文字色 */
    COLOR   tbcol;      /* タイトル背景色 */
    COLOR   bgcol;      /* 開いた場合の背景色 */
    UH      dlen;       /* 固有データのバイト長 */
} VOBJSEG;
#define VOBJSEG_STRUCT      "hhhhhhwwwwh"
#define SIZE_VOBJSEG(dlen)  (30 + dlen)

□ 機能付箋セグメント(TS_FFUSEN)

typedef struct {
    RECT    view;       /* 表示領域 */
    CHSIZE  chsz;       /* 文字サイズ */
    UH      frcol[2];   /* 枠の色 */
    UH      chcol[2];   /* 文字色 */
    UH      tbcol[2];   /* タイトル背景色 */
    UH      pict;       /* ピクトグラム/タイプ */
    UH      appl[3];    /* アプリケーションID */
    TC      name[16];   /* 付箋名 */
    TC      dtype[16];  /* データタイプ名 */
    UH      dlen;       /* 固有データのバイト長 */
} FUSENSEG;
#define FUSENSEG_STRUCT     "hhhhhwwwh3h16h16hh"
#define SIZE_FUSENSEG(dlen) (96 + dlen)

□ 指定付箋セグメント(TS_DFUSEN)

typedef struct {
    RECT    view;       /* 表示領域 */
    CHSIZE  chsz;       /* 文字サイズ */
    UH      frcol[2];   /* 枠の色 */
    UH      chcol[2];   /* 文字色 */
    UH      tbcol[2];   /* タイトル背景色 */
    UH      pict;       /* ピクトグラム/タイプ */
    UH      appl[3];    /* アプリケーションID */
    TC      name[16];   /* 付箋名 */
    UH      dlen[2];    /* 固有データのバイト長 */
} DFUSENSEG;
#define DFUSENSEG_STRUCT    "hhhhhwwwh3h16hw"
#define SIZE_DFUSENSEG(dlen)    (66 + dlen)

この章の目次にもどる
前頁:1.14 longlong.h にもどる
次頁:1.16 tcode.h にすすむ