パネルマネージャは、外殻の HMI 機能の 1 つとして位置付けられ、 ダイアローグタイプのパネルの生成 / 削除 / 操作等の機能を提供している。 アプリケーションプログラムは、 このパネルマネージャを通して容易にダイアローグタイプのパネルを使用することができる。
また、システムメッセージパネルの表示機能もパネルマネージャが提供している。
なお、フローティングタイプのパネルに関しては、 パネルマネージャでは特に機能を提供せず、 アプリケーションが通常のウィンドウとして処理することになる。
なお、今後単にパネルといった場合は、ダイアローグタイプのパネルを示すものとする。
本仕様書では、パネルの標準的な形状に関して説明しているが、表示形状の詳細はインプリメントに依存する。
( ダイアローグタイプの ) パネルは、 パラメータの設定や、確認等を求めるパネルであり、 その設定 / 操作が終了しないと先の処理に進めない場合に使用されるもので、 スクリーン上で通常ウィンドウの前面 / 前面ウィンドウの下に表示され移動 / 変形ができないものである。
パネルは表示された時点で強制的にユーザからの入力受付状態となり、 そのパネルで要求している設定や操作を終了した時点でパネルは消滅し、 以前に入力受付状態であったウィンドウに入力受付状態は戻る。
パネルは多重にネスティングされて表示される場合があり、 その場合は発生順にオーバーラップされて表示され、 入力受付状態も最後に発生したパネルに順次切り換わっていく。 パネルの操作を終了した場合は、 発生の逆順に表示が消えて入力受付状態が戻る。
アプリケーションプログラムはパネルマネージャを使用してパネルを生成し、 生成時に得られるパネルID ( >0 ) を使用して操作等を行なう。
生成したパネルは、基本的に登録したプロセスに依存し、 そのプロセスが終了するとパネルも自動的に削除されるが、 ある種のパネルは複数プロセスで使用される場合があるため、 パネル ID はプロセスグローバルであり、 またパネルの定義データはすべてのプロセスからアクセスできる領域にある必要がある。 このような複数プロセスで使用されるパネルは、 ローカルメモリ領域のデータを参照していないように作成する必要があるが、 パネルマネージャは特にこのための保証は行なわない。
パネルマネージャは内部的には、 ウィンドウマネージャを使用して特殊なウィンドウとしてのパネルを生成する。 従ってパネル ID は、 ウィンドウマネージャにより生成されたウィンドウ ID に等しいことになる。
システムメッセージパネルはスクリーンの下部に 1 行分の大きさで常に表示されている特殊なパネルであり、 他のウィンドウ / パネル等で決してオーバーラップされない領域である。
フルスクリーンモードでは、システムメッセージパネルは隠れて見えなくなる。
このパネルでは一切の操作はできず、 単にメッセージの表示のみが行なわれる。 一度表示されたメッセージは、 別のメッセージによりオーバーライトされない限り消えることはない。
システムメッセージパネルはシステムの初期化の時点で自動的に生成されるため、 アプリケーションが表示を行なう場合は単に表示用の関数をコールすればよいが、 システムメッセージパネルの目的にあった使用法に限定すべきである。
パネルは、一般的にウィンドウと同様に下図のように右下に影が付いた境界線により囲まれた矩形領域として表示される。
パネルの内部には通常、強調用の内枠を表示する。 内枠は、パネルの境界線の内側に狭い隙間を開けて描かれる、 境界線より太い枠である。なお、境界線のことを外枠とも呼ぶ。
内枠としては任意のパターンが指定可能であるが、 通常はパネルの用途に応じて「通常パネル」「警告パネル」「重大警告パネル」の 3 種類のパターンが使用される。
内枠の内側がパネルの作業領域であり、 その表示内容はアプリケーションに依存し、 各種コントロールパーツ、図形イメージデータ、文字列の任意の組み合せとなる。 また、通常はパネルの操作を終了するためのモーメンタリスイッチが存在する。
パネルの表示に関する以下の項目は、パネルの生成時に指定することができる。
パネルは以下のデータ構造により定義される。
typedef struct panel { UW oframe; /* 境界線(外枠)の属性 */ UW iframe; /* 内枠の属性 */ W bgpat; /* 背景パターン */ RECT r; /* 表示領域 */ W defsw; /* デフォールトスイッチ番号 */ W nitem; /* 項目数 */ PNL_ITEM *item; /* 項目配列へのポインタ */ } PANEL;
oframe
:
frame
:
bgpat
:
PAT_DAT
"
タイプのデータ番号。0 の場合はデフォールトを意味する。
r
:
defsw
:
nitem
:
item
:
nitem
個の要素からなる項目配列へのポインタである。
パネルの構成項目 ( PNL_ITEM
) は、
以下のように定義される。
typedef struct pnl_item { UW itype; /* 項目タイプ */ UW info; /* 各種情報 */ RECT ir; /* 表示領域 */ W desc; /* 内部ディスクリプタ */ W dnum; /* データ番号 */ H *ptr; /* データポインタ */ } PNL_ITEM;
itype
:
NULL_ITEM | 0 | -- 空項目 |
PTR_ITEM | 1 | -- ポインタイメージ |
PICT_ITEM | 2 | -- ピクトグラムイメージ |
PAT_ITEM | 3 | -- パターンイメージ |
BMAP_ITEM | 4 | -- ビットマップイメージ |
5 | -- 予約 | |
TEXT_ITEM | 6 | -- 文字列 |
PARTS_ITEM | 7 | -- コントロールパーツ |
ACT_ITEM | 0x80 | -- 動作項目( PD プレスの通知) |
ATR_TEXT | 0x20 | -- 属性付き文字列 |
ACT_ITEM, ATR_TEXT
の指定は上記項目タイプに OR で指定される。
ATR_TEXT
指定は TEXT_ITEM
に対してのみ適用され、
その文字列項目が属性データを含んでいることを意味する。
コントロールパーツ以外は表示のみの項目であり基本的に操作はできないが、
ACT_ITEM
指定を行なった場合は、
その表示領域で PD
のプレスが発生した場合、
アプリケーションに通知される。
コントロールパーツの場合は、ACT_ITEM
指定は無関係であり、
パーツの操作を行なった場合は常にアプリケーションに通知される。
NULL_ITEM
として指定した領域には何も表示されないが
ACT_ITEM
と組合わせて、
指定した領域内での PD プレスを検出するために使用される。
info
:
ir
:
ir
の左上の点に一致するように移動したものが実際の表示領域となる。
したがって、この場合は、ir
の右下の点は使用されない。
desc
:
dnum
) で定義した項目の場合:dnum
:
dnum ≠ 0
の場合は ptr
は無視される。
ptr
:
dnum = 0
とする必要がある。
複数のオルタネートスイッチをグループ化して排他的動作を行なわせるものをグループスイッチと呼ぶ。 即ち、グループ内のあるスイッチが ON 状態となった場合には、 同一グループ内で既に ON 状態となっているスイッチは自動的に OFF 状態となる。 グループスイッチでは、常に 0 個または 1 個のスイッチのみ ON 状態となる。
グループスイッチは、info
データのグループに対応するビットを
"1" にセットすることにより指定される。
即ち、info
データの同一ビットが "1"
にセットされているスイッチ群が同一のグループに属することになる。
グループは最大32個まであり、1つのスイッチを2つ以上のグループに属させることも可能である。
グループスイッチの例を以下に示す。
スイッチ1のinfo = 0x01 スイッチ2のinfo = 0x01 スイッチ3のinfo = 0x10 スイッチ4のinfo = 0x10 スイッチ5のinfo = 0x11
ATR_TEXT
指定の付いた文字列項目は、
文字の属性を指定するために、TAD
で規定されている以下の文章付箋セグメントを文字列の中に含むことができる。
上記以外の付箋は無視される。
また、属性付き文字列を ATR_TEXT
指定せずに登録した場合、
その表示は保証されない。属性付き文字列は、表示領域の上端に合わせて表示される。
パネルは 1 つの独立した描画環境を持ち、 パネルの生成時に対応した描画環境が割り当てられ、 その描画環境上でパネルの描画が行なわれる。
この描画環境の内容の詳細はインプリメントに依存したパネル描画のための標準的な設定となっているが、 座標系とクリッピング領域は以下のようになっている。
ウィンドウと異なり、作業領域の左上の点は ( 0 , 0 ) でない点に注意が必要である。
アプリケーションが、パネル上に特殊な描画を行ないたい場合は、 パネルに割り当てられている描画環境IDを取り出し、 その描画環境に対して描画を行なうことにより可能である。 ただし、アプリケーションが、 描画環境のパラメータを変更した場合のパネルの表示は保証されなくなるため、 変更した場合は必ず元に戻すか、 描画環境の複製を作成して使用する必要がある。
パネルは入力受付状態を占有した形で動作し、 発生したイベントは基本的にすべて現在表示されているパネルを対象とする。 従って、PDプレスによる自動的なウィンドウ / パネルの入力受付状態の切り換えは行なわれず、 パネル以外の場所での PD プレスの操作は通常は無視される。
パネルの動作、即ちイベント処理は、以下に示す 2 つの方法により行なう。
この場合、アプリケーションは取り出したイベントの発生場所をチェックし、
対応する動作をパーツマーネージャ等の関数を使用して直接行なう必要がある。
なお、 この場合は、
他のウィンドウへの切換えが発生しないようにwget_evt()
を
NOMSG
指定で実行する必要がある。
パネルマネージャで用意されている標準パネル動作関数
(pact_pnl
)を使用する。
この場合、パネルマネージャがイベントを順次取り出し、
対応する処理を行ない、その結果、イベントがアプリケーションに戻される。
通常は、(2)の方法を用いるが、イベントに対する特殊な動作を必要とする場合は、 (1)の方法を使用することになる。
typedef W PNID; /* パネルID */
#define NULL_ITEM 0 /* 無し */ #define PTR_ITEM 1 /* ポインタ */ #define PICT_ITEM 2 /* ピクトグラム */ #define PAT_ITEM 3 /* パターン */ #define BMAP_ITEM 4 /* ビットマップ */ #define FIG_ITEM 5 #define TEXT_ITEM 6 /* 文字列 (1行) */ #define PARTS_ITEM 7 /* コントロールパーツ */
#define ACT_ITEM 0x80 /* 動作項目(上記項目にORで指定) */ #define BLT_TEXT 0x40 #define ATR_TEXT 0x20 /* 属性付き文字列(上記項目にORで指定) */
typedef struct pnl_item { UW itype; /* 項目タイプ */ UW info; /* 各種情報 */ RECT ir; /* 表示領域 */ W desc; /* 内部ディスクリプタ */ W dnum; /* データ番号 */ H *ptr; /* データポインタ */ } PNL_ITEM;
typedef struct panel { UW oframe; /* 境界線(外枠)の属性 */ UW iframe; /* 内枠の属性 */ W bgpat; /* 背景パターン */ RECT r; /* 表示領域 */ W defsw; /* デフォールトスイッチ番号 */ W nitem; /* 項目数 */ PNL_ITEM *item; /* 項目配列へのポインタ */ } PANEL;
ここでは、パネルマネージャがサポートしている各関数の詳細を説明する。 これらの関数群は外殻の拡張システムコールとして提供される。
各関数のエラーコードとしては、ここで示した以外にも、 核や他の外殻でエラーが検出された場合は、そのエラーコードが直接戻る。
|
PNID pcre_pnl(PANEL *pnl, PNT *p)
PANEL *pnl パネル定義データ PNT *p パネル表示位置
≧0 正常(パネルID) <0 エラー(エラーコード)
pnl
で定義したパネルを生成し、
p
で指定した位置にパネルの表示を行なう。
パネルはオープンされると入力受付状態を横取りした形で占有し、
パネルをオープンしたプロセスがアクティブプロセスとなる。
パネルをオープンしたプロセスがアクティブプロセスでなかった場合は、
元の入力受付状態のウィンドウに対して EV_INACT
が送られ、
EV_INACT
が受信された後にパネルがオープンされる。
パネルをオープンしたプロセスが既にアクティブプロセスであった場合は、
EV_INACT
は送られない。
パネルをクローズした場合、
オープンした時に入力受付状態であったウィンドウに入力受付状態が戻り、
EV_INACT
を送った場合は、
EV_SWITCH
(W_SWITCH
コマンド) が送られる。
p
はパネルの境界線を含む全体の表示領域の左上の点を絶対座標で指定したもので、
p = NULL
の場合は、パネルの定義データ内に定義された位置に表示される。
指定したパネルの定義データは生成後も参照されるので、保存しておかなければいけない。
p->x
に 0x8000 を指定すると水平方向にセンタリングされ、
p->y
に 0x8000 を指定すると垂直方向にセンタリングされる。
パネルの境界線, 内枠, 背景の各パターンを指定したデータ番号が不正な場合は、 デフォルトパターンが適用される。また、デフォルトスイッチ番号が不正な場合は、 デフォルトスイッチが無いものとしてパネルを生成する。
関数値としてパネルID( > 0 )が戻され、 以後の操作の際に指定する。
EX_ADR : アドレス(pnl,p)のアクセスは許されていない。 EX_NOSPC : システムのメモリ領域が不足した。 EX_PAR : パラメータが不正である(パネルの定義データが不正)。 EX_SAVE : イメージのセーブ領域が不足した(ネスティングしたパネルの場合)。
|
PNID popn_pnl(W dnum, PNT *p)
W dnum PANEL_DATA タイプのデータ番号 PNT *p パネル表示位置
≧0 正常(パネルID) <0 エラー(エラーコード)
dnum
で指定したデータ番号を持つ、"PANEL_DATA
"
タイプのデータで定義したパネルを生成し、p
で指定した位置にパネルの表示を行なう。
パネルはオープンされると入力受付状態を横取りした形で占有し、
パネルをオープンしたプロセスがアクティブプロセスとなる。
パネルをオープンしたプロセスがアクティブプロセスでなかった場合は、
元の入力受付状態のウィンドウに対して EV_INACT
が送られ、
EV_INACT
が受信された後にパネルがオープンされる。
パネルをオープンしたプロセスが既にアクティブプロセスであった場合は、
EV_INACT
は送られない。
パネルをクローズした場合、
オープンした時に入力受付状態であったウィンドウに入力受付状態が戻り、
EV_INACT
を送った場合は、EV_SWITCH
( W_SWITCH
コマンド )
が送られる。
p
はパネルの境界線を含む全体の表示領域の左上の点を絶対座標で指定したもので、
p = NULL
の場合は、パネルの定義データ内に定義された位置に表示される。
p->x
に0x8000を指定すると水平方向にセンタリングされ、
p->y
に0x8000を指定すると垂直方向にセンタリングされる。
パネルの境界線, 内枠, 背景の各パターンを指定したデータ番号が不正な場合は、 デフォルトパターンが適用される。また、デフォルトスイッチ番号が不正な場合は、 デフォルトスイッチが無いものとしてパネルを生成する。
関数値としてパネルID( > 0 ) が戻され、 以後の操作の際に指定する。
EX_ADR : アドレス(p)のアクセスは許されていない。 EX_DNUM : データ(dnum)はデータマネージャに登録されていない。 EX_NOSPC : システムのメモリ領域が不足した。 EX_PAR : パラメータが不正である(パネルの定義データが不正)。 EX_SAVE : イメージのセーブ領域が不足した(ネスティングしたパネルの場合)。
|
ERR pdel_pnl(W pnid)
W pnid パネルID
≧0 正常 <0 エラー(エラーコード)
pnid
で指定したパネルを削除し、パネルの表示を消去する。
消去するパネルは最前面に表示されているパネル、即ち、最も最後に生成したパネルでなくてはいけない。
パネルを削除した場合にはパネルに属しているパーツ群も自動的に削除される。 また、パネルを生成したプロセスが終了した場合は、パネルは自動的に削除される。
EX_PNID : パネル(pnid)は存在していない(最前面のパネルでない)。
|
W pact_pnl(W pnid, EVENT *ev, W *itemno)
W pnid パネルID EVENT *ev 動作結果のイベントが格納される W *itemno 動作結果の項目番号が格納される
≧0 正常(関数値は項目の処理状態コード) <0 エラー(エラーコード)
pnid
で指定したパネルの標準動作を行ない、
動作結果としてのイベント、および項目番号をそれぞれ、
ev, itemno
で指定した領域に格納して、
操作した項目の状態を関数値として戻す。
この関数により、以下に示す内容の処理が行なわれる。
通常はデフォールトスイッチが押されてパネルの処理が完全に終了するまで、
pact_pnl()
を繰り返し実行することになる。
cact_par()
を実行する。
その結果パーツの状態が変更されなかった場合は (5) の処理を行ない、
状態が変更された場合は (3)、(4) の処理を行なう。
cact_par()
を実行した場合:
cact_par()
の関数値を pact_pnl()
の関数値としてリターンする。
この時、*itemno
には操作したパーツの項目番号が設定され、
*ev
には EV_NULL
が設定される。
この場合、次に pact_pnl()
が呼ばれた場合のボックスの入力状態は、
以下のようになる。
[タブ] -- 項目番号順での次のボックスが入力状態となる [入力終][改段落 / 改行] -- 同一のボックスが再度入力状態となる
ただし、デフォールトスイッチが定義されている場合は、
「改段落 / 改行」キーにより、デフォールトスイッチも動作する。
デフォールトスイッチの動作は次に pact_pnl()
が呼ばれたときに行なわれる。
デフォールトスイッチの動作が行なわれると、*itemno
にデフォルトスイッチの項目番号を負にしたものが設定される。
cact_par()
の関数値を pact_pnl()
の関数値として返す。
この時 *itemno
には、その時入力状態だったボックスパーツの項目番号が設定され、
*ev
には EV_NULL
が設定される。
そして、次に pact_pnl
が呼ばれた時に、
このボックスパーツの終了の契機となったイベントに対する処理が行なわれる。
pact_pnl()
からリターンする。
ボックスの入力状態は変わらない。
cact_par()
を実行した場合:
cact_par()
の関数値を pact_pnl()
の関数値としてリターンする。
この時、*itemno
には操作したパーツの項目番号が設定され、
*ev
には EV_NULL
が設定される。
cact_par()
が中断する場合があるが、
その場合も cact_par()
の関数値がそのまま戻るので、
対応する処理を行なう必要がある。
ACT_ITEM
が設定された表示項目で PD がプレスされた場合は、
プレスされた時点で、pact_pnl()
からリターンする。
この時、*itemno
にはその項目番号が設定され、
*ev
には得られたイベント ( EV_BUTDWN
)が設定される。
関数値は 0 となる。
*itemno
に現在「入力状態」であるボックスパーツの項目番号
( 無い場合は 0 ) を、*ev
には得られたイベントを設定して戻る。
関数値は以下の値となる(cact_par()
の値と同一)。
メニュー指定: P_MENU (0x6010) 他のイベント: P_EVENT (0x6020)なお、メニュー指定とは、以下のいずれかの場合を示す。
(1) PD のメニューボタンを押した状態でのクリック (2) 「命令」キーを押した状態でのプレス (3) 「命令」キーと別のキーの同時押し(キーマクロ) (4) メニュー起動ボタンでのクリック(タッチパネルの場合)
なお、イベントとしてEV_REQUEST
の W_REDISP
が返った場合は、
wid
で指定されたパネルやウィンドウの再表示をおこなう必要がある。
パネルの再表示の場合、パネル構造体で定義した部分は再描画がおこなわれているので、
アプリケーションで描画した部分があれば再表示することになる。
なお、アクティブでないパネルや、ウィンドウに対しても再表示要求が発生することに注意が必要である。
EX_ADR : アドレス(ev,itemno)のアクセスは許されていない。 EX_PNID : パネル(pnid)は存在していない。
|
W pget_itm(W pnid, W itemno, PNL_ITEM *item)
W pnid パネルID W itemno 項目番号 PNL_ITEM *item パネル項目データ
≧0 正常 <0 エラー(エラーコード)
pnid
で指定したパネル内の itemno
で指定した項目の定義データを取り出し、
item
で指定した領域に格納する。
格納される内容は定義した内容と同一であるが、内部ディスクリプタ
( item->desc
) には、以下の値が格納され、
関数値として、この内部ディスクリプタの値が戻る。
コントロールパーツの場合: -- 登録されたパーツID コントロールパーツ以外の場合: -- 0
item = NULL
の場合は項目の定義データの取り出しは行なわれないが、
関数値として上記の内部ディスクリプタの値が戻る。
EX_ADR : アドレス(item)のアクセスは許されていない。 EX_PAR : パラメータが不正である(itemnoが不正)。 EX_PNID : パネル(pnid)は存在していない。
|
W pset_itm(W pnid, W itemno, PNL_ITEM *item)
W pnid パネルID W itemno 項目番号 PNL_ITEM *item パネル項目データ
≧0 正常(関数値は項目の内部ディスクリプタ) <0 エラー(エラーコード)
pnid
で指定したパネル内の itemno
で指定した項目の定義データを
item
で指定した領域の内容に変更し、
パネルの再表示を行なう。
item = NULL
の場合は再設定を行なわず、
指定した項目の再表示のみを行なう。
特に pset_itm(pnid, -1,NULL)
の場合は、
すべての項目の再表示を行う。
関数値として、項目定義データ設定後の以下の内部ディスクリプタの値が戻る。
コントロールパーツの場合: -- 登録されたパーツID コントロールパーツ以外の場合: -- 0
|
W psel_box(W pnid, W itemno)
W pnid パネルID W itemno 項目番号
≧0 正常(関数値は入力状態のボックスの項目番号(該当なしの場合は0)) <0 エラー(エラーコード)
pnid
で指定したパネル内で、
itemno
で指定した項目番号を持つボックスパーツを「入力状態」のボックスとして選択し、
そのボックスパーツの項目番号を関数値として戻す。
「入力状態」として選択したボックスパーツが、
pact_pnl()
を実行した場合にキー入力を受け付けることになる。
itemno = 0
の場合は、ボックスパーツの入力状態の変更は行なわれず、
単に現在入力状態であるボックスパーツの項目番号を関数値として戻す。
該当するものが無い場合は、関数値として 0 が戻る。
itemno
で指定した項目が操作許可状態のボックスパーツでない場合は、
EX_PAR
のエラーとなる。
EX_PAR : パラメータが不正である(itemno が不正,操作許可のボックスパーツでない)。 EX_PNID : パネル(pnid)は存在していない。
|
GID pget_gid(W pnid)
W pnid パネルID
≧0 正常(関数値はパネルの描画環境ID) <0 エラー(エラーコード)
pnid
で指定したパネルで使用している描画環境IDを取り出し、
関数値として戻す。
アプリケーションがこの描画環境IDを用いてパネル上に直接描画する場合は、 基本的に必要なパラメータを再設定し、描画後は元の設定に戻しておく必要がある。 パラメータを変更したままの状態でパネルの表示/操作等を行なった場合の動作は保証されないので注意が必要である。
EX_PNID : パネル(pnid)は存在していない。
|
W pact_err(W kind, TC *arg1, TC *arg2, TC *arg3)
W kind PANEL_DATA タイプのデータ番号 TC *arg1 文字列1 TC *arg2 文字列2 TC *arg3 文字列3
≧0 正常(関数値はスイッチの種別(デフォールトスイッチは0)) <0 エラー(エラーコード)
kind
で指定した "PANEL_DATA
"
タイプのデータ番号をもつ標準エラー警告パネルを表示する。
kind
< 0 の場合は、- kind
をデータ番号とする。
標準エラー警告パネルは、データ番号が 1000 以上のため、
kind ≧ 1000
または kind ≦ -1000
でなくてはいけない。
パネルの定義データの先頭の 3 つまでの項目が文字列項目の場合は、 順番に、arg1 〜arg3 で指定した文字列項目に置き替えられる。
例: 項目1 文字列項目 -- arg1 に置き替えられる。 項目2 文字列項目 -- arg2 に置き替えられる。 項目3 文字列項目でない -- arg3 は無視される。 例: 項目1 文字列項目 -- arg1 に置き替えられる。 項目2 文字列項目でない -- arg2, arg3 は無視される。
デフォールトスイッチ項目は必ず存在し、 デフォールトスイッチから連続した n 個のモーメンタリスイッチ項目 (ピクトグラムモーメンタリも含む)のいずれかのプレスで処理を終了し、 (プレスされたモーメンタリスイッチ項目番号) - (デフォールトスイッチ項目番号) の値 ( 0 〜 n - 1 ) を関数値として戻す。
例: デフォールトスイッチ項目番号を 4 とし、項目 7 までが、モーメンタリスイッチの場合、 4 〜 7 のスイッチのプレスで処理を終了し、 関数値として 0 〜 3 を戻す。
kind
で指定した番号の "PANEL_DATA
" タイプのデータが登録されていない場合、
およびデフォールトスイッチ項目が規定されていない場合は、
EX_PAR
のエラーとなる。
また、デフォールトスイッチ項目番号より小さい項目番号の
PARTS_ITEM
項目が存在する場合は、
EX_PAR
のエラーとなる。
EX_ADR : アドレス(arg1〜3)のアクセスは許されていない。 EX_PAR : パラメータが不正である(-1000 < kind < 1000、パネルデータが登録され ていない、デフォールトスイッチが未定義、デフォールトスイッチ項目 番号より小さい番号のパーツ項目が存在する)。 EX_SAVE : イメージのセーブ領域が不足した (kind > 0 でネスティングしたパネルの場合)。
|
W pdsp_msg(TC *msg)
TC *msg 文字列
≧0 正常(関数値は表示文字数) <0 エラー(エラーコード)
システムメッセージパネルに現在表示されているメッセージを消去し、
msg
で指定したメッセージを新たに表示する。
msg = NULL
の場合は、単に現在の表示の消去を行なう。
メッセージは、システムのデフォールトフォント、 通常体、デフォールトカラーで表示され、 領域をはみでた部分はクリップされる。
関数値としてはクリップされずに実際に表示された文字数が戻る。
EX_ADR : アドレス(msg)のアクセスは許されていない。
|
ERR pdsp_tim(UW stat)
UW stat メタキー状態
≧ 0 正常 < 0 エラー(エラーコード)
stat
で指定したメタキー状態に対応した言語モード、
入力補助モード、および現在時刻をシステムメッセージパネルに表示する。
実際には、現在表示している言語モード、入力補助モード、
現在時刻と異なっている場合のみ表示の更新を行なう。
この関数は、メターキー状態が変更された場合、 および適当な周期でウィンドウマネージャにより実行されるため、 通常のアプリケーションでは実行する必要はない。
|
ERR pact_msg(WEVENT* ev)
WEVENT *ev ウィンドウイベント
≧0 正常 <0 エラー(エラーコード)
システムメッセージパネルに対して発生したイベント ev
に応じて、
システムメッセージパネルの表示の更新を行なう。
NULLイベントや再表示イベントを受け付ける。
関数値として、処理したイベントのタイプが返る。
このシステムコールは、ウィンドウマネージャによって自動的に実行されるため、 通常のアプリケーションでは実行する必要はない。
EX_ADR : アドレス(ev)のアクセスは許されていない。