この章の目次にもどる
前頁:3.2 メニューマネージャにもどる
次頁:3.4 パネルマネージャにすすむ

3.3 パーツマネージャ

3.3.1 パーツマネージャの機能

3.3.1.1 概要

パーツマネージャは、 外殻の HMI 機能の 1 つとして位置付けられ、 各種の標準コントロールパーツの表示 / 操作 / 登録 / 削除等の機能を提供している。 アプリケーションプログラムは、 このパーツマネージャを通して容易に標準コントロールパーツを使用することができる。

パーツマネージャは、 各パーツの表示 / 操作を行なう基本的な関数群を提供しているが、 パーツとしての総合的な動作を実現するためには、 アプリケーションプログラムがコントロールパーツのルールに従ってパーツマネージャの関数群を使用する必要がある。

本仕様書では、 パーツの標準的な形状に関して説明しているが、 表示形状の詳細はインプリメントに依存する。

3.3.1.2 パーツの種類

パーツマネージャでは標準的に以下の種類のパーツをサポートしている。
テキストボックス (TB)
シークレットテキストボックス (XB)
数値ボックス (NB)
シリアルボックス (SB)
テキストオルタネートスイッチ (AS)
テキストモーメンタリスイッチ (MS)
ピクトグラムオルタネートスイッチ(PA)
ピクトグラムモーメンタリスイッチ(PM)
スイッチセレクタ (WS)
スクロールセレクタ (SS)
ボリューム (VL)

アプリケーションプロセスは、使用するパーツを登録し、 登録時に得られるパーツIDを使用して実際の表示 / 操作等を行なう。

登録の方法としては大きく 2 種類あり、 メモリ上に存在するパーツデータ構造を直接指定して登録する場合と、 データマネージャにより管理されているパーツデータ構造を示すデータ番号を指定して登録する場合がある。 パーツは必ず 1 つの独立したウィンドウまたはパネルに属する形で登録され使用される。 即ち、パーツの登録の際にそのパーツを使用するウィンドウID / パネルIDを指定することになる。

パーツは基本的に登録したウィンドウ / パネルに属しており、 登録したウィンドウ / パネルが削除されると、 パーツも自動的に削除される。 さらに、登録したプロセスが終了した場合にもパーツの登録は自動的に削除される。

パーツは基本的にそれを登録したプロセスに属しており、 登録したプロセスが終了すると自動的に登録も削除される。 同様に登録したウィンドウ / パネルにも属しており、 登録したウィンドウ / パネルが削除されると、 パーツも削除される。

パーツは基本的にそのパーツを登録したプロセスにより使用されるが、 他のプロセスからでも同一のパーツIDによりそのパーツを使用することが可能である。 従って、パーツID自体はプロセスグローバルであり、 またパーツの登録データもすべてのプロセスからアクセスできる。 ただし、パーツによっては登録データとして文字列等への参照ポインタを持つ場合があり、 そのポインタがプロセスローカルメモリ領域を示している場合は、 そのパーツは他のプロセスでは、 使用できないことになる。 ただし、他プロセスからの描画時等においては、 プロセス間通信や、セマフォ等により、 排他的制御を行なう必要がある。

3.3.1.3 パーツのデータ構造

パーツの定義構造

パーツはそれぞれのタイプにより異なる定義構造を持ち、 また構成要素により可変サイズであるが、 これらをすべてまとめた以下の構造により取り扱われる。

typedef UNION {
    TEXTBOX tb;  -- (シークレット)テキストボックス
    NUMBOX  nb;  -- 数値ボックス
    SERBOX  sb;  -- シリアルボックス
    SWSEL   ss;  -- テキストオルターネート / モーメンタリスイッチ、
            スイッチ/スクロールセレクタ
    PICTSW  pw;  -- ピクトグラムオルターネート / モーメンタリスイッチ
    VOLUME  vl;  -- ボリューム
} PARTS;

各タイプに対応した定義構造は、基本的に以下の構造を持っている。

struct {
    UW  type;   -- パーツのタイプ / 属性 / 状態
    RECT    r;  -- パーツ表示矩形領域
    .....  -- 個々のパーツにより異なる
}

type は以下の形式でパーツのタイプ / 属性 / 状態を示している。

パーツのタイプ / 属性 / 状態
図 79 : パーツのタイプ / 属性 / 状態

r はパーツの表示矩形領域であり、 パーツ全体を囲む最小の矩形であり、 属するウィンドウ / パネルの相対座標で指定される。 登録後も移動 / 変形が可能である。

パーツの登録時には、 以下に示す表示属性を指定することが可能である。 この表示属性は登録後は変更することはできない。 表示属性を指定せずに登録したパーツに対しては、 デフォルトの表示属性が適用される。 また、表示属性のビットは定義時のみ有効であり、 cget_sts() では、 常に 0 となって得られる。

typedef struct {
    W   frpat;      /* 枠のパターン(0:デフォルト) */
    W   bgpat;      /* 背景パターン(0:デフォルト) */
    COLOR   chcol;  /* 文字色 (<0:デフォルト) */
    W   misc;       /* 各種のパターン/色 */
} PARTDISP;

frpat, bgpat はそれぞれ、 枠と背景のパターンを示し、"PAT_DATA" タイプとしてデータボックスに登録されているデータのデータ番号で指定される。 0 はデフォルトを意味する。 また、データ番号で指定されたデータがデータボックスにない場合は、 デフォルトパターンを用いて描画する。 chcol は、文字の色を表わす。 これは、パーツの種類によっては使用されない (ただし、後述するメタコードによる色指定の方が優先される)。 misc は、パーツの種類によって異なる意味に使用されるデータで、 COLORVAL として使用される場合と、 2 個のデータ番号として使用される場合がある。

文字列の属性コード

パーツの定義において、通常、 文字列はその属性指定のために先頭文字として特殊な意味を持つ属性コード(メタコード)が置かれる場合がある。 この属性コードは文字列等の区切りの意味も持つ。

属性コード
図 80 : 属性コード
MC_FIG:
0 -- 文字データ
1 -- 図形データ
MC_ATTR:
0 -- 標準属性の文字列 (MC_FIG = 0 の時のみ有効)
1 -- 指定属性の文字列 (MC_FIG = 0 の時のみ有効)

文字データの時、MC_ATTR = 1 の場合は直後に 6 ワードの文字属性指定コード列が存在し、 その後に項目としての文字列がくる。 MC_ATTR = 0 の場合は文字属性指定コードは存在せず、 直後にデータとしての文字列がくる。 文字列は属性コードまたは TNULLコード ( = 0 ) で終了し、 後者の場合は全体の終了を意味する。 文字列としては表示可能な任意の文字が許され、それ以外のものは無視される。

文字属性指定コードは以下に示すものであり、 ワードの値が 0 となる場合もあることに注意が必要である。

        COLOR   chcol  -- 文字色指定 (-1は文字色指定無し)
        W       class  -- フォントクラス指定 (-1はデフォルトフォント)
        UW      attr   -- フォント属性指定 (0は通常体)
        PNT     csize  -- フォントサイズ指定
                          (csize.c.h または csize.c.v が0以下はデフォルトサイズ)

MC_ATTR = 0 は、 文字色指定無し、デフォルトフォント、 通常体を意味する。文字色指定無しの場合は、 パーツの表示属性として定義された文字色が適用される。

図形データの場合は、図形の矩形表示となり、 MC_ATTR は無視される。 この場合、直後に以下の2ワードの図形指定コードがくる。


        TTTT DDDD DDDD DDDD
        0000 0000 LLLL LLLL

        T:図形のデータタイプID
        0: ポインタイメージ  ("PTR_DATA")
        1: ピクトグラムイメージ  ("PICT_DATA")
        2: パターンデータ    ("PAT_DATA")
        3: ビットマップデータ    ("BMAP_DATA")
        4〜: 予約
        D:図形のデータ番号 (0の場合、または存在しないデータの場合は何も表示されない)
        L:図形の横幅文字数

        図形項目は、Lで指定した文字分の矩形領域に左上詰めで表示される。
MC_EMPHAS:
0 -- 通常項目
1 -- 強調項目 (項目の表示に下線がつけられる。)
MC_INACT:
0-- 正常項目
1 --不能項目 (灰色化表示され一切選択することはできない)

3.3.1.4 パーツの状態

登録されたパーツは、以下の状態を保持している。

3.3.2 パーツの種類

3.3.2.1 テキストボックス

テキストボックスは1行の文字列を表示し、 文字列の入力 / 編集を行なうパーツである。 編集はボックス内部で、 通常のリプレースエディタとして行なうことができ、 部分文字列の選択、ドラッグ & リリース による移動 / 複写、 トレイ経由のカット &貼り込み操作も可能である。 日本語の入力に関しては仮名漢字変換が行なわれる。

□ 表示
テキストボックス
図 81 : テキストボックス
□ 状態 / 属性
P_DISP : 0 (消去状態) : パーツは表示されていない
: 1 (表示状態) : パーツは表示されている
P_BLINK : 適用されない
P_INACT : 0 (可能状態) : 入力状態の時、選択領域、カレットの表示有り
: 1 (不能状態) : 選択領域、カレットの表示無し
P_DISABLE : 0 (許可状態) :矩形枠の表示 ( P_NOFRAME = 0 の時のみ有効)
: 1 (禁止状態) :下線の表示 ( P_NOFRAME = 0 の時のみ有効)
P_NOFRAME : 0 (枠有り) : 矩形枠/下線の表示有り
: 1 (枠無し) : 矩形枠/下線の表示無し
P_EMPHAS : 0 (通常状態) : 通常枠/下線 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) : 強調枠/下線 ( P_NOFRAME = 0 の時のみ有効)
P_APPEND : 0 (置換) : デフォルト選択時、文字列全体が選択される
: 1 (追加) : デフォルト選択時、文字列の最後がヌル選択される
P_PARTDISP: 0 (デフォルト表示):デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造
typedef struct {
    UW  type;       -- タイプ(TB_PARTS) / 属性 / 状態
    RECT    r;      -- パーツの矩形領域
    W   txsize;     -- 最大文字数
    TC* text;       -- 初期表示データ文字列へのポインタ
    PARTDISP atr;   -- 表示属性(type の MSB が1の時のみ)
} TEXTBOX;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色
misc : ( COLORVAL ) カレット、および「ちらつき枠」の色

3.3.2.2 シークレットテキストボックス

シークレットテキストボックスは、 基本的にテキストボックスと同様の機能を持つが、 隠し名や合言葉等の入力に使用される、 外から「読みにくい」ようにした特殊なテキストボックスである。 シークレットテキストボックスでは、 文字列の表示は荒い斜線パターンで OR され、 読みにくくなっており、 また編集は、「一字消」のみであり、 部分文字列の選択、ドラッグ & リリース による移動 / 複写、 トレイ経由のカット & 貼り込み操作等はできない。 日本語の入力に関しては仮名入力のみである。

□ 表示
シークレットテキストボックス
図 82 : シークレットテキストボックス
□ 状態 / 属性
P_DISP : 0 (消去状態) : パーツは表示されていない
: 1 (表示状態) : パーツは表示されている
P_BLINK : 適用されない
P_INACT : 0 (可能状態) : 入力状態の時、選択領域、カレットの表示有り
: 1 (不能状態) : 選択領域、カレットの表示無し
P_DISABLE : 0 (許可状態) :矩形枠の表示 ( P_NOFRAME = 0 の時のみ有効)
: 1 (禁止状態) :下線の表示 ( P_NOFRAME = 0 の時のみ有効)
P_NOFRAME : 0 (枠有り) : 矩形枠/下線の表示有り
: 1 (枠無し) : 矩形枠/下線の表示無し
P_EMPHAS : 0 (通常状態) : 通常枠/下線 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) : 強調枠/下線 ( P_NOFRAME = 0 の時のみ有効)
P_APPEND : 0 (置換) : デフォルト選択時、文字列全体が選択される
: 1 (追加) : デフォルト選択時、文字列の最後がヌル選択される
P_PARTDISP: 0 (デフォルト表示):デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造
typedef struct {
    UW  type;       -- タイプ(XB_PARTS) / 属性 / 状態
    RECT    r;      -- パーツの矩形領域
    W   txsize;     -- 最大文字数
    TC* text;       -- 初期表示データ文字列へのポインタ
    PARTDISP atr;   -- 表示属性(type の MSB が1の時のみ)
} TEXTBOX;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色、斜線のパターンの色
misc : ( COLORVAL ) カレット、および「ちらつき枠」の色

3.3.2.3 数値ボックス

数値ボックスは、1 つの数値を指定した形式で表示し、 数値の入力 / 編集を行なうパーツである。 編集はボックス内部で、 通常のリプレースエディタとして行なうことができ、 部分数値列の選択、ドラッグ & リリース による移動 / 複写、 トレイ経由のカット& 貼り込み操作も可能である。 但し、入力は数値に制限され、仮名漢字変換は行なわれない。

□ 表示
数値ボックス
図 83 : 数値ボックス
□ 状態/属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK : 適用されない
P_INACT : 0 (可能状態) :入力状態の時、選択領域、カレットの表示あり
: 1 (不能状態) :選択領域、カレットの表示なし
P_DISABLE : 0 (許可状態) :矩形枠の表示 ( P_NOFRAME = 0 の時のみ有効)
: 1 (禁止状態) :下線の表示 ( P_NOFRAME = 0 の時のみ有効)
P_NOFRAME : 0 (枠有り) :矩形枠 / 下線の表示あり
: 1 (枠無し) :矩形枠 / 下線の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 / 下線 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 / 下線 ( P_NOFRAME = 0 の時のみ有効)
P_APPEND : 0 (置換) :デフォルト選択時、文字列全体が選択される
: 1 (追加) :デフォルト選択時、文字列の最後がヌル選択される
P_PARTDISP: 0 (デフォルト表示):デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造
typedef struct {
    UW  type;       -- タイプ(NB_PARTS) / 属性 / 状態
    RECT    r;      -- パーツの矩形領域
    UW  fmt;        -- 数値フォーマット指定
    union {         -- 現在値
        W   l;      -- 整数の場合
        DOUBLE  d;  -- 実数の場合
    } cv;
    PARTDISP atr;   -- 表示属性(type の MSB が1の時のみ)
} NUMBOX;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色
misc : ( COLORVAL ) カレット、および「ちらつき枠」の色

3.3.2.4 シリアルボックス

シリアルボックスは、 複数のフィールドから構成される特定の形式を持ったパラメータを表示し変更を可能とするものである。 各フィールドに入る内容は、ある連続範囲内の整数値、 もしくは順序付けされた文字列の集合であり、 各フィールド間は任意の固定文字列により分離される。

整数値フィールドの値の変更は 1 づつの値の増加 / 減少、 またはキーによるの直接入力により行なわれ、 文字列フィールドの変更は、 順序付けされた文字列の正方向 / 逆方向への切換えにより行なわれる。

なお、フィールドの一部分の選択、ドラッグ & リリース による移動 / 複写、 トレイ経由のカット & 貼り込み操作等の編集機能は持たない。

□ 表示
シリアルボックス
図 85 : シリアルボックス
□ 状態/属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK : 適用されない
P_INACT : 0 (可能状態) :入力状態の時、選択領域表示あり
: 1 (不能状態) :選択領域の表示なし
P_DISABLE : 0 (許可状態) :矩形枠の表示 ( P_NOFRAME = 0 の時のみ有効)
: 1 (禁止状態) :下線の表示 ( P_NOFRAME = 0 の時のみ有効)
P_NOFRAME : 0 (枠有り) :矩形枠 / 下線の表示あり
: 1 (枠無し) :矩形枠 / 下線の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 / 下線 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 / 下線 ( P_NOFRAME = 0 の時のみ有効)
P_PARTDISP: 0 (デフォルト表示):デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造
typedef struct {
    UW  type;       -- タイプ(SB_PARTS) / 属性 / 状態
    RECT    r;      -- パーツの矩形領域
    TC* fmt;        -- 表示フォーマット指定
    W   nfld;       -- データフィールド数
    W   *cv;        -- 初期フィールド値配列へのポインタ
    PARTDISP atr;   -- 表示属性(type の MSB が1の時のみ)
} SERBOX;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色
misc : ( COLORVAL ) 操作ボックスの "▲" と "▼" の記号の色
操作ボックスの枠は frpat、背景は、bgpat を適用するものとする。

3.3.2.5 テキストオルタネートスイッチ

テキストオルタネートスイッチは、文字列で表記されたスイッチ名と、 ON / OFF 状態を示す矩形インジケータから構成されるスイッチであり、 ON / OFF 状態の表示 / 切り換えに使用する。

□ 表示
テキストオルタネートスイッチ
図 86 : テキストオルタネートスイッチ
□ 状態 / 属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK : 0 (通常状態) :正常表示
: 1 (点滅状態) :インジケータ部分が点滅表示
P_INACT : 0 (可能状態) :正常表示
: 1 (不能状態) :灰色化表示
P_DISABLE : 0 (許可状態) :正常表示
: 1 (禁止状態) :灰色化表示
P_NOFRAME : 0 (枠有り) :矩形枠の表示あり
: 1 (枠無し) :矩形枠の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 ( P_NOFRAME = 0 の時のみ有効)
P_PARTDISP: 0 (デフォルト表示):デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
インジケータの反転表示
図 87 : インジケータの反転表示
□ 定義構造
typedef struct {
    UW  type;       -- タイプ(AS_PARTS)/属性/状態
    RECT    r;      -- パーツの矩形領域
    W   cv;         -- 現在値 (0:OFF/1:ON)
    TC* name;       -- スイッチ名へのポインタ
    PARTDISP atr;   -- 表示属性(type の MSB が1の時のみ)
} SWSEL;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色
misc : 下位ワード -- インジケータ描画用のデータ番号
("PAT_DATA" タイプで矩形の大きさは、 図 87 : インジケータの反転表示固定)
上位ワード -- 未使用

3.3.2.6 テキストモーメンタリスイッチ

テキストモーメンタリスイッチは、 文字列で表記されたスイッチ名のみで構成されるスイッチであり、 ON / OFF状態を保持する機能はなく、 何らかの動作の起動、または押している間だけ何らかの動作をさせる場合に使用される。

このスイッチに対する操作としては、プレス、リリース、ダブルクリックがある。

□ 表示
テキストモーメンタリスイッチ
図 88 :テキストモーメンタリスイッチ
□ 状態 / 属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK : 0 (通常状態) :正常表示
: 1 (点滅状態) :スイッチ名部分が点滅表示
P_INACT : 0 (可能状態) :正常表示
: 1 (不能状態) :灰色化表示
P_DISABLE : 0 (許可状態) :正常表示
: 1 (禁止状態) :灰色化表示
P_NOFRAME : 0 (枠有り) :矩形枠の表示あり
: 1 (枠無し) :矩形枠の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 ( P_NOFRAME = 0 の時のみ有効)
P_DCLICK : 0 :ダブルクリックは検出しない
: 1 :ダブルクリックを検出する
P_PRESS : 0 :プレス中の動作を行なわない
: 1 :プレス中の動作を行なう
P_PARTDISP: 0 (デフォルト表示):デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造

テキストオルタネートスイッチと同じ構造となる。

typedef struct {
    UW       type;    -- タイプ(MS_PARTS) / 属性 / 状態
    RECT     r;       -- パーツの矩形領域
    W        cv;      -- 現在値 (未使用)
    TC*      name;    -- スイッチ名へのポインタ
    PARTDISP atr;     -- 表示属性(type の MSB が1の時のみ)
} SWSEL;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色
misc : 未使用

3.3.2.7 ピクトグラムオルタネートスイッチ

ピクトグラムオルタネートスイッチはテキストオルタネートスイッチと同様の機能を持つが、 スイッチ名 / インジケータの代わりに ON / OFF 状態を示す 2 つの任意の図形 ( ビットマップデータ ) が表示される。

□ 表示
ピクトグラムオルタネートスイッチ
図 89 : ピクトグラムオルタネートスイッチ
□ 状態/属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK : 0 (通常状態) :正常表示
: 1 (点滅状態) :図形部分が点滅表示
P_INACT : 0 (可能状態) :正常表示
: 1 (不能状態) :灰色化表示
P_DISABLE : 0 (許可状態) :正常表示
: 1 (禁止状態) :灰色化表示
P_NOFRAME : 0 (枠有り) :矩形枠の表示あり
: 1 (枠無し) :矩形枠の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 ( P_NOFRAME = 0 の時のみ有効)
P_PARTDISP: 0 (デフォルト表示) :デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造
typedef struct {
    UW       type;    -- タイプ(PA_PARTS) / 属性 / 状態
    RECT     r;       -- パーツの矩形領域
    W        cv;      -- 現在値 (0:OFF / 1:ON)
    W        onpat;   -- ON状態の「BMAP_DATA」タイプの番号
    W        offpat;  -- OFF状態の「BMAP_DATA」タイプの番号
    PARTDISP atr;     -- 表示属性(type の MSB が1の時のみ)
} PICTSW;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 未使用
misc : 未使用

3.3.2.8 ピクトグラムモーメンタリスイッチ

ピクトグラムモーメンタリスイッチはテキストモーメンタリスイッチと同様の機能を持つが、 スイッチ名の代わりに任意の図形(ビットマップデータ)が表示される。

□ 表示
ピクトグラムモーメンタリスイッチ
図 90 : ピクトグラムモーメンタリスイッチ
□ 状態/属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK : 0 (通常状態) :正常表示
: 1 (点滅状態) :図形部分が点滅表示
P_INACT : 0 (可能状態) :正常表示
: 1 (不能状態) :灰色化表示
P_DISABLE : 0 (許可状態) :正常表示
: 1 (禁止状態) :灰色化表示
P_NOFRAME : 0 (枠有り) :矩形枠の表示あり
: 1 (枠無し) :矩形枠の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 ( P_NOFRAME = 0 の時のみ有効)
P_DCLICK : 0 :ダブルクリックは検出しない
: 1 :ダブルクリックを検出する
P_PRESS : 0 :プレス中の動作を行なわない
: 1 :プレス中の動作を行なう
P_PARTDISP: 0 (デフォルト表示):デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造

ピクトグラムオルタネートスイッチと同じ構造であるが、offpat は使用しない。

typedef struct {
    UW       type;   -- タイプ(PM_PARTS)/属性/状態
    RECT     r;      -- パーツの矩形領域
    W        cv;     -- 現在値 (未使用)
    W        onpat;  -- 「BMAP_DATA」タイプのデータ番号
    W        offpat; -- 未使用
    PARTDISP atr;    -- 表示属性(type の MSB が1の時のみ)
} PICTSW;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 未使用
misc : 未使用

3.3.2.9 スイッチセレクタ

スイッチセレクタは複数の選択肢のうち、 1 個ないしは 0 個の選択肢を選択するために使用され、 すべての選択肢の名称と、 その状態を示すインジケータから構成される。

□ 表示
スイッチセレクタ
図 91 : スイッチセレクタ
□ 状態 / 属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK 適用されない
P_INACT : 0 (可能状態) :正常表示
: 1 (不能状態) :全体が灰色化表示
P_DISABLE : 0 (許可状態) :正常表示
: 1 (禁止状態) :全体が灰色化表示
P_NOFRAME : 0 (枠有り) :矩形枠の表示あり
: 1 (枠無し) :矩形枠の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 ( P_NOFRAME = 0 の時のみ有効)
P_NOSEL : 0 :必ず1つは選択される
: 1 :1つも選択されなくてもよい
P_DOUBLE : 0 :縦または横一列
: 1 :2 段組み
P_PARTDISP: 0 :縦一列 ( P_DOUBLE = 0 の時のみ有効)
: 1 :横一列 ( P_DOUBLE = 0 の時のみ有効)
P_PARTDISP: 0 (デフォルト表示) :デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造
typedef struct {
    UW       type;  -- タイプ(WS_PARTS) / 属性 / 状態
    RECT     r;     -- パーツの矩形領域
    W        cv;    -- 現在値 (選択番号 0〜)
    TC*      name;  -- 選択肢名列へのポインタ
    PARTDISP atr;   -- 表示属性(type の MSB が1の時のみ)
} SWSEL;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色
misc : 下位ワード -- インジケータのデータ番号
("PAT_DATA" タイプで矩形の大きさは、 図 87 : インジケータの反転表示固定)
上位ワード -- 未使用

3.3.2.10 スクロールセレクタ

スクロールセレクタはスイッチセレクタと同様に複数の選択肢のうち、 1 個ないしは 0 個の選択肢を選択するために使用されるが、 選択肢の一部のみ表示され全体はスクロールすることにより見ることができる。

これは、選択肢が多く全てを表示すると場所を取りすぎる場合や、 アプリケーションの実行中に選択肢を動的に変化させる場合に使用する。

スクロールセレクタは、 キーボードからの入力によっても操作できる。

□ 表示
スクロールセレクタ
図 92 : スクロールセレクタ
□ 状態/属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK 適用されない
P_INACT : 0 (可能状態) :正常表示
: 1 (不能状態) :選択肢全体が灰色化表示、スクロールバーが不能表示
P_DISABLE : 0 (許可状態) :正常表示
: 1 (禁止状態) :選択肢全体が灰色化表示
P_NOFRAME : 0 (枠有り) :矩形枠の表示あり
: 1 (枠無し) :矩形枠の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 ( P_NOFRAME = 0 の時のみ有効)
P_NOSEL : 0 :必ず1つは選択される
: 1 :1つも選択されなくてもよい
P_NUMBER : 0 :番号付けは行なわない
: 1 :番号付けを行なう
P_PARTDISP: 0 (デフォルト表示) :デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造

スイッチセレクタと同じ構造である。

typedef struct {
    UW       type;   -- タイプ(SS_PARTS) / 属性 / 状態
    RECT     r;      -- パーツの矩形領域
    W        cv;     -- 現在値 (選択番号 0〜)
    TC*      name;   -- 選択肢名列へのポインタ
    PARTDISP atr;    -- 表示属性(type の MSB が1の時のみ)
} SWSEL;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: 矩形領域の背景パターン
chcol: 文字の色
misc : 下位ワード -- インジケータのデータ番号
("PAT_DATA" タイプで矩形の大きさは、 図 87 : インジケータの反転表示固定)
上位ワード -- スクロールバーのパターン部のデータ番号 ("PAT_DATA"タイプ)
スクロールバーのトンボは frpat、ノブ部分は bgpat が適用されるものとする。

3.3.2.11 ボリューム

ボリュームは数値パラメータをアナログ的に表示し、 同時にパラメータを設定する手段を与えるものである。

これは、通常はスクロールバーとして表示領域の制御に使用するが、 ユーザからは操作できないようにして達成度の表示等にも使用される。

□ 表示
ボリューム
図 94 : ボリューム
□ 状態 / 属性
P_DISP : 0 (消去状態) :パーツは表示されていない
: 1 (表示状態) :パーツは表示されている
P_BLINK 適用されない
P_INACT : 0 (可能状態) :正常表示
: 1 (不能状態) :許可状態の場合、不能表示となる
P_DISABLE : 0 (許可状態) :正常表示
: 1 (禁止状態) :正常表示 (通常、P_NONOB = 1 とする)
P_NOFRAME : 0 (枠有り) :矩形枠の表示あり
: 1 (枠無し) :矩形枠の表示なし
P_EMPHAS : 0 (通常状態) :通常枠 ( P_NOFRAME = 0 の時のみ有効)
: 1 (強調状態) :強調枠 ( P_NOFRAME = 0 の時のみ有効)
P_NONOB : 0 :トンボを表示する
: 1 :トンボを表示しない
P_SBAR : 0 :常のボリュームとして登録する
: 1 :ウィンドウのスクロールバーとして登録する
P_HALIGN : 0 : (縦) 垂直ボリューム
: 1 : (横) 水平ボリューム
P_PARTDISP: 0 (デフォルト表示) :デフォルトの表示属性で表示
: 1 (表示属性指定) :指定された表示属性で表示
□ 動作
□ 定義構造
typedef struct {
    UW       type;       -- タイプ(VL_PARTS) / 属性 / 状態
    RECT     r;          -- パーツの矩形領域
    W        clo,chi;    -- ノブの最小値、最大値
    W        lo,hi;      -- 全体の最小値、最大値
    W        patnum;     -- パターン指定のデータ番号
    PARTDISP atr;        -- 表示属性(type の MSB が1の時のみ)
} VOLUME;
□ 表示属性
frpat: 枠、または下線のパターン ( P_NOFRAME = 0 の時のみ有効 )
bgpat: スクロールバーのノブ ( 白 ) 部分のパターン
chcol: 未使用
misc : 未使用

3.3.3 データ / 定数の定義

□ パーツID

typedef W   PAID;       /* パーツID */

□ パーツの表示属性

typedef struct {
    W       frpat;      /* 枠のパターン(0:デフォルト) */
    W       bgpat;      /* 背景パターン(0:デフォルト) */
    COLOR   chcol;      /* 文字色 (<0:デフォルト) */
    W       misc;       /* 各種のパターン/色 */
} PARTDISP;

□ テキストボックス

typedef struct textbox {    /* TB_PARTS,XB_PARTS */
    UW       type;
    RECT     r;
    W        txsize;
    TC       *text;
    PARTDISP atr;
} TEXTBOX;

□ 数値ボックス

typedef struct numbox {     /* NB_PARTS */
    UW       type;
    RECT     r;
    UW       fmt;        /* 数値フォーマット */
    union {
        W       l;
        double  d;
    } cv;
    PARTDISP atr;
} NUMBOX;

□ シリアルボックス

typedef struct serbox {     /* SB_PARTS */
    UW       type;
    RECT     r;
    TC       *fmt;       /* 表示フォーマット指定 */
    W        nfld;       /* データフィールド数 */
    W        *cv;        /* 初期フィールド値配列 */
    PARTDISP atr;
} SERBOX;

□ セレクタ

typedef struct swsel {      /* AS/MS_PARTS, WS_PARTS, SS_PARTS */
    UW       type;
    RECT     r;
    W        cv;     /* 1:on, 0:off / 現在値 (選択番号 0..) */
    TC       *name;  /* スイッチ名/選択肢名列へのポインタ */
    PARTDISP atr;
} SWSEL;

□ ピクトグラムスイッチ

typedef struct pictsw {     /* PA_PARTS, PM_PARTS */
    UW       type;
    RECT     r;
    W        cv;         /* 現在値 0:off, 1:on / 未使用 */
    W        onpat;      /* on状態の BMAP_DATA タイプの番号 */
    W        offpat;     /* off状態の BMAP_DATA タイプの番号 / 未使用 */
    PARTDISP atr;
} PICTSW;

□ ボリューム

typedef struct volume {     /* VL_PARTS */
    UW       type;
    RECT     r;
    W        clo, chi;   /* ノブの最小値、最大値 */
    W        lo, hi;     /* 全体の最小値、最大値 */
    W        patnum;     /* パターン指定のデータ番号 */
    PARTDISP atr;
} VOLUME;

□ パーツ

typedef union parts {
    TEXTBOX tb;     /* TB_PARTS,XB_PARTS */
    NUMBOX  nb;     /* NB_PARTS */
    SERBOX  sb;     /* SB_PARTS */
    SWSEL   ss;     /* AS_PARTS,MS_PARTS,WS_PARTS,SS_PARTS */
    PICTSW  pw;     /* PA_PARTS,PM_PARTS */
    VOLUME  vl;     /* VL_PARTS */
} PARTS;

□ パーツタイプ

#define TB_PARTS    1   /* テキストボックス */
#define XB_PARTS    2   /* シークレットテキストボックス */
#define NB_PARTS    3   /* 数値ボックス */
#define SB_PARTS    4   /* シリアルボックス */
#define AS_PARTS    5   /* テキストオルタネートスイッチ */
#define MS_PARTS    6   /* テキストモーメンタリスイッチ */
#define PA_PARTS    7   /* ピクトグラムオルタネートスイッチ */
#define PM_PARTS    8   /* ピクトグラムモーメンタリスイッチ */
#define WS_PARTS    9   /* スイッチセレクタ */
#define SS_PARTS    10  /* スクロールセレクタ */
#define VL_PARTS    11  /* ボリューム */
#define P_TYPE      0x001f  /* タイプマスク */
#define P_HALIGN    0x0020  /* 垂直/水平配置 */
#define P_PRESS     0x0040  /* プレス動作指定 */
#define P_NUMBER    0x0040  /* 番号付け指定 */
#define P_DOUBLE    0x0040  /* 2 段組み配置 */
#define P_SBAR      0x0040  /* スクロールバー指定 */
#define P_DCLICK    0x0080  /* ダブルクリック動作指定 */
#define P_NOSEL     0x0080  /* 0 選択可能 */
#define P_APPEND    0x0080  /* 追加選択モード */
#define P_NONOB     0x0080  /* トンボ表示無し */
#define P_EMPHAS    0x0200  /* 強調枠/通常枠 */
#define P_NOFRAME   0x0400  /* 枠無し/枠有り */
#define P_DISABLE   0x0800  /* 操作禁止/操作許可 */
#define P_INACT     0x1000  /* 不能状態/可能状態 */
#define P_BLINK     0x2000  /* 点滅状態 */
#define P_DISP      0x4000  /* 表示状態/消去状態 */
#define P_PARTDISP  0x8000  /* 表示属性指定 */

□ 属性コード(メタコード)

#define MC_STR      0x1000  /* 文字列 */
#define MC_FIG      0x1001  /* 図形データ */
#define MC_ATTR     0x1002  /* 文字属性指定 */
#define MC_EMPHAS   0x1400  /* 強調項目 */
#define MC_INACT    0x1800  /* 不能項目 */
#define MC_SFLD     0x0800  /* 文字列フィールド指定 */
#define MC_NFLD     0x0c00  /* 数値フィールド指定 */
#define MC_NZERO    0x0200  /* 前ゼロ表示 */
#define MC_NLEFT    0x0100  /* 左揃え */

□ 数値形式

#define P_LNUM      0x0000  /* 整数  (32ビット) */
#define P_DNUM      0x0080  /* 実数  (64ビット) */
#define P_FIX0      0x0000  /* 固定小数点表現 - 0 */
#define P_FIX1      0x0010  /* 固定小数点表現 - 1 */
#define S_UNDEF     0x8000  /* 負の最大値 */
#define L_UNDEF     0x80000000  /* 負の最大値 */
#define D_UNDEF     1.797693e308    /* NaN */

□ 終了コード

#define P_CHANGE    0x1000  /* 変化あり */
#define P_BREAK     0x2000  /* 処理の中断 */
#define P_SMASK     0x0fff  /* 終了/中断状態のマスク */
#define P_MENU      0x6010  /* メニュー指定で中断 */
#define P_EVENT     0x6020  /* 他のイベント発生で中断 */
#define P_SGL       1   /* 有効なシングルクリック */
#define P_DBL       2   /* 有効なダブルクリック */
#define P_TAB       0   /* タブで終了 */
#define P_NL        1   /* 改段落/改行で終了 */
#define P_END       2   /* 入力終で終了 */
#define P_BUT       3   /* ボックス外でのプレス */
#define P_MOVE      4   /* ボックス外への移動 */
#define P_COPY      5   /* ボックス外への複写 */
#define P_UP        0   /* 上方向 への移動 */
#define P_DOWN      1   /* 下方向 への移動 */
#define P_LEFT      2   /* 左方向 への移動 */
#define P_RIGHT     3   /* 右方向 への移動 */
#define P_SMOOTH    0   /* スムース移動 */
#define P_AREA      4   /* エリア移動 */
#define P_JUMP      8   /* ジャンプ移動 */

□ 状態変更コマンド

#define P_ERASE     0x0000  /* 消去 */
#define P_NODISP    0x1000  /* 消去状態に */
#define P_RDISP     0x8000  /* 再表示 */
#define P_NORMAL    0x0002  /* 通常枠 */
#define P_FRAME     0x0004  /* 枠有り */
#define P_ENABLE    0x0008  /* 操作許可 */
#define P_ACT       0x0010  /* 可能状態 */

3.3.4 パーツマネージャの関数

ccre_par
 
パーツの登録

【形式】

PAID    ccre_par(W wid, PARTS *parts)

【パラメータ】

W        wid ウィンドウID
PARTS   *parts  パーツデータ

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

parts により定義したコントロールパーツを wid で指定したウィンドウ / パネルに属するパーツとして登録し、 関数値として登録されたパーツのパーツID ( pid > 0 )を戻す。 パーツの定義データの状態が「表示状態」の場合はパーツの表示が行なわれるが、 「消去状態」の場合は、登録のみで表示は行なわれない。

【エラーコード】

EX_ADR      : アドレス(parts等)のアクセスは許されていない。
EX_NOSPC    : システムのメモリ領域が不足した。
EX_PAR      : パラメータが不正である。
EX_WID      : ウィンドウ(wid)は存在していない。
EX_DNUM     : データ(onpat,offpat,patnum)はデータマネージャに登録されていない。
ccre_tbx
 
パーツの登録

【形式】

PAID    ccre_tbx(W wid, UW ty, RECT *r, W txsize, TC *text, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて TB_PARTS に固定される)
RECT     *r     パーツ領域
W        txsize 最大文字数
TC       *text  初期文字列
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

テキストボックスパーツを作成しそのパーツ ID を戻す。

【エラーコード】

ccre_xbx
 
パーツの登録

【形式】

PAID    ccre_xbx(W wid, UW ty, RECT *r, W txsize, TC *text, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて XB_PARTS に固定される)
RECT     *r     パーツ領域
W        txsize 最大文字数
TC       *text  初期文字列
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

シークレットテキストボックスパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_nbx
 
パーツの登録

【形式】

PAID    ccre_nbx(W wid, UW ty, RECT *r, UW fmt, W *val, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて NB_PARTS に固定される)
RECT     *r     パーツ領域
UW       fmt    書式
W        *val   初期値
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

数値ボックスパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_sbx
 
パーツの登録

【形式】

PAID    ccre_sbx(W wid, UW ty, RECT *r, TC *fmt, W nfld, W *cv, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて SB_PARTS に固定される)
RECT     *r     パーツ領域
TC       *fmt   書式
W        nfld   フィールド数
W        *cv    初期値配列
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

シリアルボックスパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_asw
 
パーツの登録

【形式】

PAID    ccre_asw(W wid, UW ty, RECT *r, W cv, TC *name, PARTDISP *atr)

【パラメータ】

W        wid     ウィンドウID
UW       ty      パーツ属性(タイプは無視されて AS_PARTS に固定される)
RECT     *r      パーツ領域
W        cv      初期値
TC       *name   スイッチ名文字列
PARTDISP *atr    表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

テキストオルタネートスイッチパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_msw
 
パーツの登録

【形式】

PAID    ccre_msw(W wid, UW ty, RECT *r, TC *name, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて MS_PARTS に固定される)
RECT     *r     パーツ領域
TC       *name  スイッチ名文字列
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

テキストモーメンタリスイッチパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_pas
 
パーツの登録

【形式】

PAID    ccre_pas(W wid, UW ty, RECT *r, W cv, W onp, W offp, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて PA_PARTS に固定される)
RECT     *r     パーツ領域
W        cv     初期値
W        onp    オン時の BMAP_DATA タイプのデータ番号
W        offp   オフ時の BMAP_DATA タイプのデータ番号
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

  ピクトグラムオルタネートスイッチパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_pms
 
パーツの登録

【形式】

PAID    ccre_pms(W wid, UW ty, RECT *r, W onp, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて PM_PARTS に固定される)
RECT     *r     パーツ領域
W        onp    オン時の BMAP_DATA タイプのデータ番号
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

ピクトグラムモーメンタリスイッチパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_sel
 
パーツの登録

【形式】

PAID    ccre_sel(W wid, UW ty, RECT *r, W cv, TC *name, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて WS_PARTS に固定される)
RECT     *r     パーツ領域
W        cv     初期値
TC       *name  スイッチセレクタ文字列
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

スイッチセレクタパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_scr
 
パーツの登録

【形式】

PAID    ccre_scr(W wid, UW ty, RECT *r, W cv, TC *name, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて SS_PARTS に固定される)
RECT     *r     パーツ領域
W        cv     初期値
TC       *name  スクロールセレクタ文字列
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

スクロールセレクタパーツを作成しそのパーツIDを戻す。

【エラーコード】

ccre_vol
 
パーツの登録

【形式】

PAID    ccre_vol(W wid, UW ty, RECT *r, W *val, W patnum, PARTDISP *atr)

【パラメータ】

W        wid    ウィンドウID
UW       ty     パーツ属性(タイプは無視されて VL_PARTS に固定される)
RECT     *r     パーツ領域
W        *val   初期値配列
W        patnum ノブの PAT_DATA タイプのデータ番号
PARTDISP *atr   表示属性

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

ボリュームパーツを作成しそのパーツIDを戻す。

【エラーコード】

copn_par
 
パーツのデータボックスからの登録

【形式】

PAID    copn_par(W wid, W dnum, PNT *pos)

【パラメータ】

W   wid     ウィンドウID
W   dnum    PARTS_DATA タイプのデータ番号
PNT *pos    パーツの矩形領域の左上の点(相対座標)

【リターン値】

≧0    正常(パーツID>0)
<0    エラー(エラーコード)

【解説】

dnum で指定したデータ番号の "PARTS_DATA" タイプのデータにより定義されるコントロールパーツを wid で指定したウィンドウ / パネルに属するパーツとして登録する。

*pos はパーツの矩形領域の左上の点を指定したウィンドウ / パネルの相対座標で指定するもので、 パーツ定義データで定義された位置を移動して登録する。 pos = NULL の場合は、 パーツ定義データ上で定義された位置で登録することを意味する。

パーツの定義データの状態が「表示状態」の場合はパーツの表示が行なわれるが、 「消去状態」の場合は、登録のみで表示は行なわれない。

【エラーコード】

EX_ADR      : アドレス(pos)のアクセスは許されていない。
EX_DNUM     : データ(dnum等)はデータマネージャに登録されていない。
EX_NOSPC    : システムのメモリ領域が不足した。
EX_PAR      : パラメータが不正である。
EX_WID      : ウィンドウ(wid)は存在していない。
cdel_par
 
パーツの削除

【形式】

ERR cdel_par(W pid, W opt)

【パラメータ】

W   opt ::= ( CLR ‖ NOCLR )
CLR (=0):
削除したパーツが表示されている時は表示を消去する。
NOCLR(≠0):
削除したパーツが表示されている時は表示はそのまま残る(何もしない)。

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

pid で指定した登録済みパーツを削除する。

opt により、削除したパーツの表示を消去するか否かを指定する。 パーツを登録したプロセスが終了した場合、 またはパーツが属するウィンドウ / パネルが削除された場合には、 自動的にパーツは削除されるが、 原則的には不要になった時点で明示的に削除すべきである。

【エラーコード】

EX_PID  : パーツ(pid)は存在していない。
cdel_pwd
 
ウィンドウ内パーツの削除

【形式】

ERR cdel_pwd(W wid, W opt)

【パラメータ】

W   wid     ウィンドウID
W   opt     cdel_par と同じ

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

wid で指定したウィンドウ / パネルに属する登録済みパーツをすべて削除する。 但し、P_SBAR = 1 の属性を持つボリュームは対象外となり削除されない。

opt により、削除したパーツの表示を消去するか否かを指定し、 その内容は cdel_par()の場合と同一である。

パーツを登録したプロセスが終了した場合、 またはパーツが属するウィンドウ / パネルが削除された場合には、 自動的にパーツは削除されるが、 原則的には不要になった時点で明示的に削除すべきである。

【エラーコード】

EX_WID  : ウィンドウ(wid)は存在していない。
cdsp_par
 
パーツの表示制御

【形式】

ERR cdsp_par(W pid, UW vis)

【パラメータ】

W   pid     パーツID
UW  vis     以下のいずれかの値をとり、消去/表示/点滅/再表示の指定を行なう。
P_ERASE ( 消去 ) :

パーツが「表示状態」の場合、 背景パターンでパーツの矩形領域を塗り潰し「消去状態」とし「点滅状態」をリセットする。 それ以外の場合は何も行なわない。結果としての状態は P_DISP = 0P_BLINK = 0 となる。

P_NODISP ( 消去状態に ) :

状態のみを消去状態とする。 結果としての状態は P_DISP = 0P_BLINK = 0 となる。

P_DISP ( 表示 ) :

パーツが「消去状態」、または「点滅状態」の場合、表示を行ない「表示状態」とし「点滅状態」をリセットする。 それ以外の場合は何も行なわない。結果としての状態は P_DISP = 1P_BLINK = 0 となる。

P_BLINK (点滅) :

パーツが「点滅状態」でない場合、「表示状態」かつ「点滅状態」とする。 実際の点滅表示は cidl_par() により行なわれる。 それ以外の場合は何も行なわない。 「点滅状態」が定義されていないパーツの場合は、P_DISP と同じ動作となる。 結果としての状態は P_DISP = 1P_BLINK = 1 となる。

P_RDISP ( 再表示 ) :

パーツの状態に関係なく表示を行ない「表示状態」とし、 「点滅状態」をリセットする。 結果としての状態は P_DISP = 1P_BLINK = 0 となる。

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

pid で指定したパーツの消去 / 表示 / 点滅 / 再表示を行なう。

【エラーコード】

EX_PAR  : パラメータが不正である(vis が不正)。
EX_PID  : パーツ(pid)は存在していない。
cdsp_pwd
 
ウィンドウ内パーツの表示制御

【形式】

ERR cdsp_pwd(W wid, RECT *r, UW vis)

【パラメータ】

W       wid    ウィンドウID
RECT    *r     表示したいウィンドウ内の矩形領域
UW      vis    消去 / 表示 / 点滅 / 再表示の指定を行なうもので、
               その内容は cdsp_par() の場合と同一である。

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

wid で指定したウィンドウ / パネルに属している登録済みのパーツのうち、 *r で指定した矩形領域に重なるパーツの消去 / 表示 / 点滅 / 再表示を行なう。 但し、P_SBAR = 1 の属性を持つ、 ボリュームは対象外となる。 消去 / 表示 / 点滅 / 再表示の処理は登録された順番に行なわれる。

*r は指定したウィンドウ / パネルの相対座標で指定され、 r = NULL の場合は、ウィンドウ / パネル全体の領域を意味する。

【エラーコード】

EX_ADR  : アドレス(r)のアクセスは許されていない。
EX_PAR  : パラメータが不正である(vis が不正)。
EX_WID  : ウィンドウ(wid)は存在していない。
cchk_par
 
パーツの位置チェック

【形式】

W   cchk_par(W pid, PNT pos)

【パラメータ】

W   pid    パーツID
PNT pos    位置座標

【リターン値】

≧0    正常(関数値はパーツのタイプ(含まれていない場合は0))
<0    エラー(エラーコード)

【解説】

pos で指定した位置の点が pid で指定したパーツの矩形領域に含まれているか否かをチェックし、 含まれていない場合は 0、 含まれていた場合はそのパーツのタイプコード ( 1 〜 ) を関数値として戻す。

ただし、禁止状態 ( P_DISABLE = 1) のパーツ、 消去状態 ( P_DISP = 0 ) のパーツはチェックの対象外となり関数値は常に 0 となる。

pos はウィンドウ内の相対座標で指定される。

【エラーコード】

  EX_PID  : パーツ(pid)は存在していない。
cfnd_par
 
ウィンドウ内パーツの位置サーチ

【形式】

W   cfnd_par(W wid, PNT pos, W *pid)

【パラメータ】

W   wid     ウィンドウID
PNT pos     位置座標
W   *pid    パーツID格納領域

【リターン値】

≧0    正常(関数値はパーツのタイプ(含まれていない場合は0))
<0    エラー(エラーコード)

【解説】

wid で指定したウィンドウ / パネルに属する登録済みパーツに対して、 pos で指定した位置の点が含まれているか否かを登録された順番にサーチし、 含まれていた場合は、 そのパーツIDを *pid に戻し、 含まれていない場合は 0 を *pid に戻す。

ただし、禁止状態 ( P_DISABLE = 1) のパーツ、 消去状態 ( P_DISP=0) のパーツ、 および P_SBAR = 1 の属性を持つボリュームはサーチの対象外となる。

関数値としては、含まれていない場合は 0 が戻り、 含まれていた場合はそのパーツのタイプコード ( 1 〜 ) が戻る。

【エラーコード】

EX_ADR  : アドレス(pid)のアクセスは許されていない。
EX_WID  : ウィンドウ(wid)は存在していない。
cact_par
 
パーツの動作実行

【形式】

W   cact_par(W pid, WEVENT *ev)

【パラメータ】

W       pid パーツID
WEVENT  *ev パーツ動作のきっかけとなったイベント

【リターン値】

≧0    正常(関数値下位16bit): 01PC SSSS SSSS SSSS

            P = 0: 処理の終了
              = 1: 処理の中断
            C = 0: 現在値/状態の変化無し
              = 1: 現在値/状態の変化有り
            S    : 各種のコード
<0    エラー(エラーコード)

【解説】

pid で指定したパーツの固有の動作を開始する。 *ev はパーツの動作の起動とする、 ウィンドウイベントであり、パーツの動作終了、中断時には、 終了、中断の契機となったイベントが設定されて戻る。

この関数の動作はパーツのタイプによって異なり、 起動となりうるイベントの種類、 リターン時の関数値の意味も異なるが、共通的に以下の場合は、 何もせず、関数値として0を戻す。この時、*ev の内容は変化しない。

処理の中断の場合は、アプリケーション側で適当な処理を行なった後、 *ev のイベントタイプに EV_NULL を設定して、 再び cact_par() をコールする必要がある。

なお、指定したパーツの属するウィンドウ/パネルが入力受付状態でない場合、 およびアクティブプロセスでない場合は、何もせずに関数値0を戻す。

テキストボックス / シークレットテキストボックス / 数値ボックスの場合

EV_BUTDWN または EV_SWITCH の場合 :
EV_KEYDWN または EV_NULL の場合 :
その他の場合 :
何もせず関数値 0 を戻す(*ev の内容は変化しない)。

入力 / 編集処理は以下の内容となる。

シリアルボックスの場合

EV_BUTDWN または EV_SWITCH の場合 :
EV_KEYDWN または EV_NULL の場合 :
その他の場合 :
何もせず関数値 0 を戻す。(*ev の内容は変化しない)

入力 / 編集処理は以下の内容となる。

テキスト / ピクトグラムオルターネートスイッチの場合

EV_BUTDWN または EV_SWITCH の場合 :
その他の場合 :
何もせず関数値 0 を戻す。(*ev の内容は変化しない)

テキスト / ピクトグラムモーメンタリスイッチの場合

EV_BUTDWN または EV_SWITCH の場合 :
EV_NULL の場合 :
矩形領域内でプレスされたと見なして、EV_BUTDWN と同様の処理を行なう。
その他の場合 :
何もせず関数値 0 を戻す ( *ev の内容は変化しない)。

スイッチセレクタの場合

EV_BUTDWN または EV_SWITCH の場合 :
その他の場合 :
何もせず関数値 0 を戻す(*ev の内容は変化しない)。

スクロールセレクタ

EV_BUTDWN または EV_SWITCH の場合 :
その他の場合 :
何もせず関数値 0 を戻す(*ev の内容は変化しない)。

【注意】キー操作によるスクロールセレクタの操作は cact_par() としては一切行なわず、 スクロールセレクタの現在値 ( 選択肢の番号 ) を直接設定することにより行なう。 また、選択肢番号をキーボードから入力し[変換]キーを押すことで、 指定した番号の選択肢を直接選択する等の操作も全てアプリケーションによって実現される。

ボリュームの場合

EV_BUTDWN または EV_SWITCH の場合 :
EV_NULL の場合 :
パターン領域内でプレスされたと見なして、EV_BUTDWN のスムース処理と同様の処理を行なう。

【エラーコード】

EX_ADR  : アドレス(ev)のアクセスは許されていない。
EX_PID  : パーツ(pid)は存在していない。
cget_val
 
パーツの値の取出し

【形式】

W   cget_val(W pid, W size, W *value)

【パラメータ】

W   pid     パーツID
W   size    value のサイズ(ワード数またはハーフワード数)
W   *value  値を格納する配列

【リターン値】

≧0    正常(関数値は現在値のワード数)
<0    エラー(エラーコード)

【解説】

pid で指定したパーツの値を取り出して、 value で指定した領域に格納する。size は、valueの領域のデータ数 ( ワード数またはハーフワード数 ) を指定する。 格納される value の内容、および関数値の意味はパーツのタイプによって異なる。

テキストボックス/シークレットテキストボックス

数値ボックス

シリアルボックス

テキスト/ピクトグラムオルタネート/モーメンタリスイッチ

スイッチセレクタ/スクロールセレクタ

ボリューム

【エラーコード】

EX_ADR  : アドレス(value)のアクセスは許されていない。
EX_PID  : パーツ(pid)は存在していない。
cset_val
 
パーツの値の設定

【形式】

W   cset_val(W pid, W size, W *value)

【パラメータ】

W   pid パーツID
W   size    value のサイズ
W   *value  設定値を格納した配列

【リターン値】

≧0    正常(関数値は設定したワード数)
<0    エラー(エラーコード)

【解説】

pid
で指定したパーツの現在値を
*value
で指定した値に変更し、 パーツが「表示状態」の時は、再表示を行なう。

size は、設定するデータ数 ( ワード数またはハーフワード数 ) を指定する。 設定する現在値の内容、 および関数値の意味はパーツのタイプによって異なる。

テキストボックス/シークレットテキストボックス

数値ボックス

シリアルボックス

テキスト/ピクトグラムオルタネート/モーメンタリスイッチ

スイッチセレクタ/スクロールセレクタ

ボリューム

【エラーコード】

EX_ADR  : アドレス(value)のアクセスは許されていない。
EX_PAR  : パラメータが不正である(設定値が範囲外)。
EX_PID  : パーツ(pid)は存在していない。
cget_dat
 
パーツのデータ取出し

【形式】

ERR cget_dat(W pid, W *par)

【パラメータ】

W   pid パーツID
W   *par    パーツデータ格納領域

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

pid で指定したパーツのデータを取り出して、 par で指定した領域に格納する。 取り出されるデータは、パーツのタイプによって異なる。

テキストボックス (W) txsize
シークレットテキストボックス (W) txsize
数値ボックス (UW) fmt
シリアルボックス (TC*) fmt
テキストオルタネートスイッチ (TC*) name
テキストモーメンタリスイッチ (TC*) name
ピクトグラムオルタネートスイッチ(W) onpat(par[0]), offpat(par[1])
ピクトグラムモーメンタリスイッチ(W) onpat
スイッチセレクタ (TC*) name
スクロールセレクタ (TC*) name
ボリューム (W) patnum

(TC*) fmt(TC*) name の場合は、 ポインタの取出しであり、実際の文字列は直接は得られない。

【関数リターン値】

= 0 (E_OK) : 正常終了
< 0  : エラー  (関数値はエラーコード)
cset_dat
 
パーツのデータ設定

【形式】

ERR cset_dat(W pid, W par)

【パラメータ】

W   pid    パーツID
W   par    パーツデータ(PA_PARTS の場合は W*)

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

pid で指定したパーツのデータを、par で指定した値に変更し、 パーツが「表示状態」の場合は再表示を行なう。 設定されるデータは、パーツのタイプによって異なる。

テキストボックス (W) txsize
シークレットテキストボックス (W) txsize
数値ボックス (UW) fmt
シリアルボックス (TC*) fmt
テキストオルタネートスイッチ (TC*) name
テキストモーメンタリスイッチ (TC*) name
ピクトグラムオルタネートスイッチ(W*) onpat(par[0]), offpat(par[1])
ピクトグラムモーメンタリスイッチ(W) onpat
スイッチセレクタ (TC*) name
スクロールセレクタ (TC*) name
ボリューム (W) patnum

(TC*) fmt(TC*) name の場合は、 ポインタの設定である。fmt, name で指定される文字列の内容を直接変更し、 fmt, name 自体の値が変化していない場合でも、 cset_dat()を行なわない限り変更の反映は保証されない。

シリアルボックスの fmtを変更しても、 項目の値や項目総数は現在のままとなる。 このため、現在の項目の値が新しい fmt に適用できない場合や、 項目総数が現在と同じでない場合は、 EX_PAR のエラーになり、 fmtは変更されない。

【関数リターン値】

= 0 (E_OK) : 正常終了
< 0  : エラー  (関数値はエラーコード)

【エラーコード】

EX_DNUM : データ(onpat,offpat,patnum)はデータマネージャに登録されていない。
EX_PAR  : パラメータが不正である。
EX_PID  : パーツ(pid)は存在していない。
ccut_txt
 
パーツの選択領域の取出し

【形式】

W   ccut_txt(W pid, W size, TC *buff, W cut)

【パラメータ】

W   pid     パーツID
W   size    buff の文字数
TC  *buff   文字列取り出し用領域

【リターン値】

≧0    正常(関数値は選択領域の文字数)
<0    エラー(エラーコード)

【解説】

pid で指定したテキスト / 数値ボックスの選択領域の文字列を取り出して、 buff で指定した領域に格納し、選択領域全体の文字数を関数値として戻す。

sizebuff で指定した領域の文字数の指定であり、 領域が不足した場合は先頭から ( size - 1 )文字のみが格納され、 最後に TNULL が格納される。

選択領域がヌルの場合は、buff には空文字列、 即ち、*buffTNULL が設定され、 関数値として 0 が戻る。

cut = 0の場合は、 取り出した選択領域はそのままボックスのデータとして残し、 cut != 0 の場合は削除する。

buff = NULL の場合は、格納は行なわないが、 選択領域全体の文字数が関数値として戻る。 この場合は、cut は無視され、選択領域が削除されることはない。

なお、ボックスが「表示状態」の時は、 再表示が行なわれる。

【エラーコード】

EX_ADR  : アドレス(buff)のアクセスは許されていない。
EX_PAR  : パラメータが不正である(size が不正)。
EX_PID  : パーツ(pid)は存在していない(テキスト/数値ボックスではない)。
cins_txt
 
パーツの選択領域の挿入

【形式】

W   cins_txt(W pid, PNT pos, TC *buff)

【パラメータ】

W   pid     パーツID
PNT pos     挿入位置
TC  *buff   挿入文字列

【リターン値】

≧0    正常(関数値は全体の文字数)
<0    エラー(エラーコード)

【解説】

pid で指定したテキスト / 数値ボックスの pos で指定した位置に、 buff で指定した領域に格納されている文字列 (最後は TNULL) を挿入し、 そのボックスを「入力状態」とし、 挿入した文字列を新たな選択領域とする。

pos はウィンドウ / パネルの相対座標で指定される。 挿入した結果、最大の文字数を超えた場合は、 後ろは切り捨てられる。関数値としては挿入後の全体の文字数が戻る。

pos として {0x8000, 0x8000} を指定することで、 buffで指定した文字列によって選択領域を置換することができる。 これは、メニューによるトレー操作に対応する。

なお、パーツが「表示状態」の時は、再表示が行なわれる。

【エラーコード】

EX_ADR  : アドレス(buff)のアクセスは許されていない。
EX_PAR  : パラメータが不正である(挿入テキスト/挿入位置が不正)。
EX_PID  : パーツ(pid)は存在していない(テキスト/数値ボックスではない)。
cget_pos
 
パーツの位置の取出し

【形式】

ERR cget_pos(W pid, RECT *r)

【パラメータ】

W       pid パーツID
RECT    *r  パーツ位置矩形

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

pid で指定したパーツの現在の表示領域を取り出し、 r で指定した領域に格納する。 取り出された表示領域は、パーツの属するウィンドウ/パネルの相対座標で示される。

【エラーコード】

EX_ADR  : アドレス(r)のアクセスは許されていない。
EX_PID  : パーツ(pid)は存在していない。
cset_pos
 
パーツの位置の設定

【形式】

ERR cset_pos(W pid, RECT *r)

【パラメータ】

W       pid パーツID
RECT    *r  パーツ位置矩形

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

pid で指定したパーツの表示領域を r で指定した領域に変更する。 これは、位置の移動と大きさの両方の変更となる。 r は、そのパーツの属するウィンドウ / パネルの相対座標で指定する。

パーツが「表示状態」の場合は、新しい領域に再表示されるが、 元の領域の表示に関しては何も行なわない。

【エラーコード】

EX_ADR  : アドレス(r)のアクセスは許されていない。
EX_PID  : パーツ(pid)は存在していない。
EX_PAR  : パラメータが不正である(指定矩形値が不正)。
cget_sts
 
パーツの状態の取出し

【形式】

W   cget_sts(W pid, W *wid)

【パラメータ】

W   pid パーツID
W   *wid    ウィンドウID格納領域

【リターン値】

≧0    正常(関数値はパーツのタイプ/属性/状態)
<0    エラー(エラーコード)

【解説】

pid で指定したパーツが属するウィンドウ/パネルIDを取り出し、 wid で指定した領域に格納し、パーツのタイプ/属性/状態ワード (図79 パーツのタイプ/属性/状態参照) を関数値として戻す。

wid=NULL の場合は、ウィンドウ / パネルIDは戻されない。

また、表示属性のビットは常に 0 となっている(登録時のみ有効)。

【エラーコード】

EX_ADR  : アドレス(wid)のアクセスは許されていない。
EX_PID  : パーツ(pid)は存在していない。
cchg_par
 
パーツの状態の変更

【形式】

ERR cchg_par(W pid, UW cmd)

【パラメータ】

W   pid     パーツID
UW  cmd     cmd は以下の4種の状態指定の任意の組合せ (OR) となる。
P_EMPHAS / P_NORMAL-- 強調枠 / 通常枠
P_NOFRAME / P_FRAME -- 枠無し / 枠有り
P_DISABLE / P_ENABLE-- 操作禁止 / 操作許可
P_INACT / P_ACT -- 不能状態 / 可能状態

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

pid で指定したパーツの状態を、 cmd で指定した内容に変更する。

パーツが「表示状態」の時は、再表示が行なわれる。

【エラーコード】

EX_PAR  : パラメータが不正である(cmdが不正:P_EMPHASとP_NORMALの組み合わせ等)。
EX_PID  : パーツ(pid)は存在していない。
cchg_pwd
 
ウィンドウ内パーツの状態の変更

【形式】

ERR cchg_pwd(W wid, UW cmd)

【パラメータ】

W   wid ウィンドウID
W   cmd cchg_par() の場合と同じ。

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

wid で指定したウィンドウ/パネルに属する全てのパーツの状態を、 cmd で指定した内容に変更する。 但し、P_SBAR = 1 の属性を持つ、ボリュームは対象外となる。

パーツが「表示状態」の時は、再表示が行なわれる。

【エラーコード】

EX_PAR  : パラメータが不正である(cmdが不正:P_EMPHASとP_NORMALの組み合わせ等)。
EX_WID  : ウィンドウ(wid)は存在していない。
cidl_par
 
パーツの定常処理

【形式】

ERR cidl_par(W wid, PNT *pos)

【パラメータ】

W   wid     ウィンドウID
PNT *pos    ポインタ位置座標

【リターン値】

≧0    正常
<0    エラー(エラーコード)

【解説】

wid で指定したウィンドウ/パネルに属するすべてのパーツに対しての定常処理を行なう。 この場合、P_SBAR = 1 の属性のボリュームも対象となる。 指定したウィンドウが、 入力受付状態でない場合は、何もしない。

*pos は、その時点のポインタの wid で指定したウィンドウの相対座標位置であり、 ポインタの形状変更に使用される。pos = NULL とすればポインタの形状変更を行なわないが、 通常 1 つでもパーツを有するウィンドウ / パネルは pos != NULL で、この関数をコールする必要がある。

定常処理とは以下に示す内容のものである。

関数値として以下の意味を持っている
1:
ポインタ形状をパーツマネージャが拘束している場合 (指定位置がパーツ上で、パーツマネージャがポインタ形状を更新しているか、 メニューボタンまたは、[命令]キーが押されている)
0:
アプリケーションにポインタ形状の更新を許可している場合

【エラーコード】

EX_ADR  : アドレス(pos)のアクセスは許されていない。
EX_WID  : ウィンドウ(wid)は存在していない。
cexe_par
 
パーツの単イベント実行

【形式】

W   cexe_par(W pid, WEVENT *ev)

【パラメータ】

W       pid    パーツID
WEVENT  *ev    処理するイベント

【リターン値】

≧0    正常(関数値下位16bit): 01PC SSSS SSSS SSSS

            P = 0: 処理の終了
              = 1: 処理の中断
            C = 0: 現在値/状態の変化無し
              = 1: 現在値/状態の変化有り
            S     : 各種のコード
<0    エラー(エラーコード)

【解説】

pid で指定したパーツの固有の動作をおこなう。 *ev はパーツが処理するウィンドウイベントである。 テキストボックスシークレットテキストボックス数値ボックスシリアルボックス (以下、ボックスパーツ) を動作させた場合にもパーツ内でイベント待ちにならないのを除いて、 cact_par と同じ機能を持つ。

ボックスパーツを実行した場合、 範囲選択などのドラッグ操作中は cact_par と同じにイベントが取り出されるが、 それ以外ではイベントは取り出されず、evEV_NULL を格納して P_EVENT を返す (通常は、P_EVENTEV_NULL が設定されることはない)。 この場合、アプリケーションは wget_evt によって新たなウィンドウイベントを取り出し cexe_par に渡す必要がある(イベントを正しく渡さなかった場合の動作は保証されない)。 なお、P_EVENT が得られた場合で EV_NULL でなかった場合は、cact_par と同様にイベントを処理し、 evEV_NULL を格納して再度 cexe_par を呼ぶ必要がある。

【エラーコード】

EX_ADR  : アドレス(ev)のアクセスは許されていない。
EX_PID  : パーツ(pid)は存在していない。

この章の目次にもどる
前頁:3.2 メニューマネージャにもどる
次頁:3.4 パネルマネージャにすすむ