メニュー(Menu)について¶
GUIアプリケーションでは、最も原始的なものを除いて、メニューを必要とします。
メニューによって、どんなGUIでも使い方を拡張することができます。メニューというのは動的に表示される選択リストであり、使用可能なファンクション(通常はコマンドと呼ばれます)、あるいはGUIが宣言するファンクションに対応します。皆さんが想像される通り、メニューを作るには、メニュー・ウィジェットを使います。
メニューは、他のメニューや、menuItemを含むことができます(menuItemは、メニュー、つまりメニューの階層構造を含むことができます)。
またmenuItemは、実行できるコマンドや、選択したGUI状態を表します。
メニューは、アプリケーションの(つまりシェルの)メニュー・バーに関連付けることもできれば、アプリケーション・ウィンドウ上の自由な位置に配置できるポップ・アップ・メニューとすることもできます。
メニューには、次のように相互排他的な3つのスタイルのうち、どれか1つのスタイルを定義する必要があります。
- BARは、シェルに対するメニュー・バーとして動作します。
- DROP_DOWNは、メニュー・バー、あるいはメニュー・アイテムから『垂れ下がり』ます。
- POP_UPは、シェルからポップ・アップしますが、特定なコンテキストの制御に依存して動作します。
またメニューは、オプションとして次のようなスタイルもサポートします。 - NO_RADIO_GROUPは、ラジオ・グループとしては動作しません。メニューが、RADIOスタイルのアイテムを含む場合に、このスタイルを使います。
- LEFT_TO_RIGHTあるいはRIGHT_TO_LEFTは、テキストの方向を選択します。
menuItemには、次のように相互排他的な5つのスタイルのうち、どれか1つのスタイルを定義する必要があります。 - CHECKは、常に選択されています(つまりチェックされた状態にあります)。
- CASCADEは、ドロップ・ダウンすべきメニューを含んでいます。
- PUSHは、瞬時に動作させるためのボタンとして動作します。
- RADIOは、CHECKと同じように動作しますが、(このタイプを持つ)1つのアイテムだけが選択されます。
- SEPARATORは、アイテム・グループ間を隔てるセパレーター(通常は縦線です)として動作し、機能は何も持っていません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | Menu menubar = new Menu(shell, SWT.BAR); shell.setMenuBar(menubar); MenuItem item1 = new MenuItem(menubar, SWT.CASCADE); item1.setText("File"); MenuItem item2 = new MenuItem(menubar, SWT.CASCADE); item2.setText("Help"); Menu menu = new Menu(item1); item1.setMenu(menu); MenuItem item1_1 = new MenuItem(menu, SWT.PUSH); item1_1.setText("Push"); MenuItem item1_2 = new MenuItem(menu, SWT.CASCADE); item1_2.setText("Cascade"); Menu submenu = new Menu(item1_2); item1_2.setMenu(submenu); MenuItem item1_2_1 = new MenuItem(submenu, SWT.PUSH); item1_2_1.setText("SubItem Push"); MenuItem item4 = new MenuItem(menu, SWT.CHECK); item4.setText("Check"); MenuItem item5 = new MenuItem(menu, SWT.SEPARATOR); MenuItem item6 = new MenuItem(menu, SWT.RADIO); item6.setText("Radio1"); MenuItem item7 = new MenuItem(menu, SWT.RADIO); item7.setText("Radio2"); |
