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