メニュー項目の定義

<< 目次を表示 >>

ページ位置:  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;

}