QuickWin 関数:メニューの最後にメニュー項目を追加し,コールバック・サブルーチンを登録します。
モジュール:USE DFLIB
形式
result = APPENDMENUQQ (menuID, flags, text, routine)
menuID
(入力) INTEGER(4)。項目を追加するメニューのメニュー識別子。最も左のメニューが 1 です。
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. が返されます。
メニュー項目番号を指定する必要はありません。これは,APPENDMENUQQ が常にメニュー一覧の最後に新しい項目を追加するためです。メニューに項目がまだない場合,追加した項目は最上位のメニュー項目 (メニューバーに表示) として取り扱われ,text はメニューのタイトルになります。メニューに他のメニュー項目がない場合,APPENDMENUQQ は最上位のメニュー項目のコールバック・ルーチンを無視します。この場合,routine に NUL を設定することができます。
メニュー一覧の最後に追加するのではなく,メニューに項目を挿入したい場合,INSERTMENUQQ を使います。
flag フラグで利用できる定数は,排他的 OR で結合することができます。たとえば,MENUCHECKED .OR. $MENUENABLED です。幾つかの組み合わせ (たとえば,$MENUENABLED と $MENUDISABLED) は意味を持ちませんし,未定義の動作を引き起こします。
テキスト文字列にショートカット・キーを作成することができます。APPENDMENUQQ に下線を引きたい文字の前にアンド記号 (&) を置くことで text として渡します。たとえば,"r" に下線を引いた "Print" メニュー項目を追加する場合,text に "P&rint" を代入します。ショートカット・キーにより,マウスで項目を選択する代わりに,プログラムのユーザーはキーの組み合わせ ALT+QUICK-ACCESS-KEY (たとえば,ALT+R) でそのメニュー項目を活動状態にすることができます。
QuickWin メニューのカスタマイズに関する詳細は,「QuickWin の使用」を参照してください。
互換性
QUICKWIN GRAPHICS LIB
関連情報
DELETEMENUQQ,INSERTMENUQQ,MODIFYMENUFLAGSQQ,MODIFYMENUROUTINEQQ,MODIFYMENUSTRINGQQ,QuickWin の使用例
! QuickWin アプリケーションでビルドします。 USE DFLIB LOGICAL(4) result CHARACTER(25) str ... ! 第 1 メニュー (FILE) の最後に項目を追加します。 str = '&Add to File Menu'C ! 'A' はクイックアクセス・キー result = APPENDMENUQQ(1, $MENUENABLED, str, WINSTATUS) str = 'Menu Item &2b'C ! '2' はクイックアクセス・キー result = APPENDMENUQQ(1, $MENUENABLED, str, WINCASCADE) ! 第 2 メニュー (EDIT) の最後に項目を追加します。 str = 'Add to Second &Menu'C ! 'M' はクイックアクセス・キー result = APPENDMENUQQ(2, $MENUENABLED, str, WINTILE)