<< 目次を表示 >> ページ位置: API・アドイン・スクリプト > アドイン > アドインの作業 > メニュー項目の定義 |
トピック:
項目 |
説明 |
メニュー項目の定義 |
メニュー項目は、GetMenuItemsイベントの対応として定義できます。 最初にこのイベントが呼ばれた場合には、MenuNameは空文字列です。これはトップレベルメニューを表しています。単純なアドインの場合には、次の例のようなメニューになるでしょう。
public object EA_GetMenuItems(EA.Repository repository, string menuLocation, string menuName) { return "独自のメニュー"; }
最上位には、1つのアドインについて1つの項目のみ作成可能です。 |
サブメニューの定義 |
もしアドインに複数のメニュー項目を持たせたい場合には、サブメニューの作成が必要です。 サブメニューを定義したい場合には、親メニューの頭に-(ハイフン)を付加します。 以下は定義例です。
public object EA_GetMenuItems(EA.Repository repository, string menuLocation, string menuName) { return "-独自のメニュー"; }
さらに、サブメニューの定義が必要です。サブメニューの定義は次のようになります。メニュー間に区切り線(セパレータ)を追加したい場合には、"-"という文字列を追加します。
public object EA_GetMenuItems(EA.Repository repository, string menuLocation, string menuName) { if (menuName != "-独自のメニュー") { return "-独自のメニュー"; }
string[] menus = { "項目1", "-", "項目2" }; return menus; } |
追加のサブメニュー |
サブメニューは階層化できます。
public object EA_GetMenuItems(EA.Repository repository, string menuLocation, string menuName) { switch(MenuName) { case "": EA_GetMenuItems = "-Joe's Add-In"; break; case "-Joe's Add-In": EA_GetMenuItems = Array("-&Diagram", "&TreeView"); break; case "-&Diagram": EA_GetMenuItems = "&Properties"; break; } } |
メニュー項目の有効・無効の設定 |
もしメニュー項目の有効・無効を制御したい場合には、次のような方法で特定の項目のみを利用可能にできます。
public void EA_GetMenuState(EA.Repository repository, string menuLocation, string menuName, string itemName, ref bool isEnabled, ref bool isChecked) { if (itemName == "項目1") { isEnabled = false; return; }
isEnabled = true; return; } |