5.スクリーンメニュー


Mitaka Plusでは、 スクリプトによって自由にスクリーンメニューの内容を編集することができます。 実際、初期状態のMitaka Plusのスクリーンメニューもすべてスクリプトファイル scripts/screenmenu_jp.lua によって生成されています。スクリプトによってスクリーンメニューがどのように定義されているかは、このスクリプトファイルを参考にすると良いでしょう。

アクション

スクリーンメニューで実行する内容は、アクション(ScreenMenuActionオブジェクト)として定義します。アクションにはタイトルが設定でき、スクリーンメニューーに項目としてアクションを登録すると、そのタイトルのスクリーンメニューが表示されます。アクションにはスクリプトを設定することができ、スクリーンメニューが選択されるとこのスクリプトが実行されます。また、アクションには天体の表示・非表示など2つの状態を設定することができ、あらかじめ設定したスクリプトによる条件判断でこの状態をスクリーンメニュー上に表現することができます。

次の例では、menuの子階層に"恒星の表示(&S)"というタイトルのメニュー(アクション)を作成し、これをstarToggleActionという変数に代入しています。 2つめの引数のスクリプトが恒星の表示切り替えスクリプト、3つめの引数がアクションの状態を判断する条件スクリプトです。

starToggleAction = menu:addAction("恒星の表示", "Stars:toggle();", "Stars.visible;");

メニュー

スクリーンメニューオブジェクト(ScreenMenuItemオブジェクト)は、スクリーンメニュー内に並ぶメニューや、そのサブメニューを表すオブジェクトです。メニューオブジェクトには子階層としてメニューオブジェクト、アクションのいずれかを追加できます。スクリーンメニューの最上位階層はScreenMenuオブジェクトになります。

次の例では、スクリーンメニューに[編集]メニューを追加し、その下に[状態の保存]と[状態の復帰]アクション(メニュー)を追加しています。

menuEdit = ScreenMenu:addMenu("編集(&E)");

menuEdit:addAction("状態の保存(&C)", "State:store();");

menuEdit:addAction("状態の復帰(&V)", "State:restore();");