MenuItem.Enabled

導入

v5.0

詳細

メニュー項目が有効か(true)無効か(false)を示すBoolean値を設定したり、戻したりします。メニューオブジェクトは有効になることも無効になることもあります。これは、メニューに定義されているすべてのメニュー項目が影響を受けることを意味します。このプロパティは、通常は特定のコンテキストに基づいたメニュー項目を更新するために使用されます。

JScript の例

/*
        This example showing how to enable/disable custom menus defined in 
        a self-installing plug-in.
        Adds a menu in the top menu bar with 3 menu items.
        The first item is a greyed out menu item
        The second item is greyed out submenu item
        The third item allows you to enable or disable the first and second item. 
*/
function XSILoadPlugin( in_reg )
{
        in_reg.Author = "Softimage SDK team";
        in_reg.Name = "DemoMenuPlugin";
        in_reg.Major = 1;
        in_reg.Minor = 0;
        var bSubmenu = true; // value ignored for top level menus
        var bDynamic = true;
        in_reg.RegisterMenu(siMenuMainTopLevelID,"Demo Menu",bSubmenu,bDynamic);
        return true;
}
function DemoMenu_Init( ctxt )
{       
        if ( ctxt.UserData == undefined )
        {
                // disable demo menu items if the user data is not set yet
                ctxt.UserData = false;
        }
        var menu = ctxt.Source;
        var bEnabled = ctxt.UserData;
        var strTitle = "Demo menu item is enabled";
        var strSubmenuTitle = "Demo sub menu is enabled";
        if ( bEnabled == false )
        {
                strTitle = "Demo menu item is disabled";
                strSubmenuTitle = "Demo sub menu is disabled";
        }
        var menuitem = menu.AddCallbackItem(strTitle,"OnDemoMenuItem");
        menuitem.Enabled = bEnabled;
        var submenu = menu.AddItem( strSubmenuTitle, siMenuItemSubmenu );
        submenu.AddCallbackItem(strTitle,"OnDemoMenuItem");
        submenu.Enabled = bEnabled;     
        menu.AddCallbackItem("Toggle Demo menu","OnToggleDemoMenuItem");
        return true;
}
function OnDemoMenuItem( in_ctxt )
{
        LogMessage( "OnDemoMenuItem" );
}
function OnToggleDemoMenuItem( in_ctxt )
{       
        // toggles the enabled flag
        if ( in_ctxt.UserData == true )
        {
                in_ctxt.UserData = false;
        }
        else
        {
                in_ctxt.UserData = true;
        }
}