QuickWin 関数:QuickWin メニューにメニュー項目を挿入し,そのコールバック・ルーチンを登録します。
モジュール:USE DFLIB
形式
result = INSERTMENUQQ (menuID, itemID, flag, text, routine)
menuID
(入力) INTEGER(4)。項目を挿入するメニューのメニュー識別子。最も左のメニューが 1 です。
itemID
(入力) INTEGER(4)。項目が挿入されるメニューの位置の識別子。最上位メニュー項目が 0 です。
flags
(入力) INTEGER(4)。メニュー状態を示す定数。排他的 OR でフラグを結合することができます (結果を参照)。以下の定数が利用可能です。
$MENUGRAYED - メニュー項目を無効にし,表示をグレーにします。
$MENUDISABLED - メニュー項目を無効にしますが,表示をグレーにしません。
$MENUENABLED - メニュー項目を有効にします。
$MENUSEPARATOR - 区切りバーを描画します。
$MENUCHECKED - メニュー項目にチェック印を置きます。
$MENUUNCHECKED - メニュー項目のチェック印を取り除きます。
text
(入力) CHARACTER*(*)。メニュー項目名。ヌルで終わる C 文字列でなければなりません。たとえば,'WORDS OF TEXT'C です。
routine
(入力) EXTERNAL。メニュー項目が選択された時に呼び出されるコールバック・サブルーチン。すべてのルーチンは,どのメニュー項目が選択されたかを示す単一の LOGICAL パラメタをとります。以下の既定ルーチンをメニューに割り当てることができます。
WINPRINT - プログラムを印刷します。
WINSAVE - プログラムを保存します。
WINEXIT - プログラムを終了します。
WINSELECTTEXT - 現在のウィンドウからテキストを選択します。
WINSELECTGRAPHICS - 現在のウィンドウからグラフィックスを選択します。
WINSELECTALL - 現在のウィンドウの全内容を選択します。
WINCOPY - 現在のウィンドウから選択したテキストおよび/またはグラフィックスをクリップボードにコピーします。
WINPASTE - READ 中にクリップボートの内容 (テキストのみ) を活動状態のウィンドウの現在のテキスト・ウィンドウに貼り付けることをユーザーに許可します。
WINCLEARPASTE - 貼り付けバッファをクリアします。
WINSIZETOFIT - ウィンドウに合うような出力の大きさにします。
WINFULLSCREEN - 全画面で出力を表示します。
WINSTATE - テキスト出力の状態を中断と再開間でトグルします。
WINCASCADE - 活動状態のウィンドウを重ねて表示します。
WINTILE - 活動状態のウィンドウを並べて表示します。
WINARRANGE - アイコンを整列させます。
WINSTATUS - ステイタス・バーを有効にします。
WININDEX - QuickWin ヘルプの索引を表示します。
WINUSING - ヘルプの使い方の情報を表示します。
WINABOUT - 現在の QuickWin アプリケーションの情報を表示します。
NUL - コールバック・ルーチンなし。
結果
結果の型は LOGICAL です。成功すると .TRUE. が返され,そうでなければ .FALSE. が返されます。
メニューとメニュー項目は,左から右,上から下の順で定義されなければなりません。たとえば,メニュー項目 5 と 6 が定義されていない時にメニュー項目 7 を挿入しようとすると,INSERTMENUQQ は失敗します。最上位メニュー項目に対して,コールバックルーチンはその下に副項目があれば無視されます。
flag で利用できる定数は,排他的 OR で結合することができます。たとえば,MENUCHECKED .OR. $MENUENABLED です。幾つかの組み合わせ (たとえば,$MENUENABLED と $MENUDISABLED) は意味を持ちませんし,未定義の動作を引き起こします。
テキスト文字列にショートカット・キーを作成することができます。INSERTMENUQQ に下線を引きたい文字の前にアンド記号 (&) を置くことで text として渡します。たとえば,"r" に下線を引いた "Print" メニュー項目を追加する場合,text に "P&rint" を代入します。ショートカット・キーにより,マウスで項目を選択する代わりに,プログラムのユーザーはキーの組み合わせ ALT+QUICK-ACCESS-KEY (たとえば,ALT+R) でそのメニュー項目を活動状態にすることができます。
QuickWin メニューのカスタマイズに関する詳細は,「QuickWin の使用」を参照してください。
互換性
QUICKWIN GRAPHICS LIB
関連情報
APPENDMENUQQ,DELETEMENUQQ,MODIFYMENUFLAGSQQ,MODIFYMENUROUTINEQQ,MODIFYMENUSTRINGQQ,QuickWin の使用
例
! QuickWin アプリケーションでビルドします。 USE DFLIB LOGICAL(4) status ! メニュー 5 (Window) に新しい項目を挿入します。 status= INSERTMENUQQ(5, 5, $MENUCHECKED, 'New Item'C, & WINSTATUS) ! 位置 2 に新しいメニューを挿入します。 status= INSERTMENUQQ(2, 0, $MENUENABLED, 'New Menu'C, & WINSAVE) END