メニュー項目の定義

<< 目次を表示 >>

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

}