## MenuItem.Enabled

### Introduced

v5.0

### Description

Sets or returns a Boolean indicating whether the menu item is enabled (true) or not. Menu objects can also be enabled or disabled which means all menu items defined in a menu are affected. This property is typically used for updating a menu item based on a specific context.

### C# Syntax

    // get accessor
    Boolean rtn = MenuItem.Enabled;
    // set accessor
    MenuItem.Enabled = Boolean;

### Examples

#### JScript Example

    /*
            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;
            }
    }