public override void Stop() { ///释放部份还没完成 try { // Close exporter form manually //if (babylonExportActionItem != null) //{ // babylonExportActionItem.Close(); //} if (actionTable != null) { Loader.Global.COREInterface.ActionManager.DeactivateActionTable(cBack, idActionTable); } // Clean up menu if (MenuBox != null) { Loader.Global.COREInterface.MenuManager.UnRegisterMenu(MenuBox); Loader.Global.ReleaseIMenu(MenuBox); Loader.Global.ReleaseIMenuItem(MenuBoxItem); MenuBox = null; MenuBoxItem = null; } } catch { // Fails silently } }
public override void Stop() { try { if (actionTable != null) { Loader.Global.COREInterface.ActionManager.DeactivateActionTable(actionCallback, idActionTable); } // Clean up menu if (menu != null) { Loader.Global.COREInterface.MenuManager.UnRegisterMenu(menu); Loader.Global.ReleaseIMenu(menu); Loader.Global.ReleaseIMenuItem(menuItemBabylon); Loader.Global.ReleaseIMenuItem(menuItem); menu = null; menuItem = null; } } catch { // Fails silently } }
private MenuItem helpCmmm(IIMenuItem g) { MenuItem mi = new MenuItem(); foreach (var f in g.CmItems) { if (f.CmItems != null && f.CmItems.Count > 0) { var ggg = helpCmmm(f); ggg.Header = f.Text; mi.Items.Add(ggg); } else { var mii = new MenuItem(); mii.Header = f.Text; mii.IsCheckable = f.IsCheckable; mii.IsEnabled = f.IsEnabled; mii.ToolTip = f.Tooltips; mii.Command = f.Command; mi.Items.Add(mii); } } return(mi); }
/// <summary> /// 更新菜单基础部件 有则更新无则增加 /// </summary> /// <param name="menuItem">基础部件</param> public void UpdateMenuItem(IIMenuItem menuItem) { if (_dictionaryMenuItems.ContainsKey(menuItem.Id)) { _dictionaryMenuItems[menuItem.Id] = menuItem; var args = new PublishEventArgs() { EventType = PublishEventType.Core, EventId = EventIdAssign.MenuComponentUpdate, }; args.AddParams(menuItem.Id); EventPublish.PublishEvent(args); } else { _dictionaryMenuItems.Add(menuItem.Id, menuItem); var args = new PublishEventArgs() { EventType = PublishEventType.Core, EventId = EventIdAssign.MenuComponentAdd, }; args.AddParams(menuItem.Id); EventPublish.PublishEvent(args); } }
/// <summary> /// 删除部件 /// </summary> /// <param name="menuItem">需要删除的部件</param> public void DeleteMenuItem(IIMenuItem menuItem) { if (_dictionaryMenuItems.ContainsKey(menuItem.Id)) { _dictionaryMenuItems.Remove(menuItem.Id); var args = new PublishEventArgs() { EventType = PublishEventType.Core, EventId = EventIdAssign.MenuComponentDelete, }; args.AddParams(menuItem.Id); EventPublish.PublishEvent(args); } }
/// <summary> /// Installs the menu from scratch /// </summary> /// <returns>1 when successfully installed, or 0 in error state</returns> private static uint InstallMenu() { try { LookupActions(); IGlobal global = GlobalInterface.Instance; IIActionManager actionManager = global.COREInterface.ActionManager; IIMenuManager menuManager = global.COREInterface.MenuManager; // this only needs to be done once global.COREInterface.MenuManager.RegisterMenuBarContext(0x58527952, menuName); IIMenu mainMenuBar = menuManager.MainMenuBar; IIMenu adnSampleMenu = global.IMenu; adnSampleMenu.Title = menuName; menuManager.RegisterMenu(adnSampleMenu, 0); // Launch option { IIMenuItem menuItem1 = global.IMenuItem; menuItem1.ActionItem = m_mouseAction; // uses text from ActionItem.DescriptionText adnSampleMenu.AddItem(menuItem1, -1); IIMenuItem menuItem2 = global.IMenuItem; menuItem2.ActionItem = m_builtinVpConfigAction; menuItem2.Title = "ADN Menu Sample - " + menuItem2.ActionItem.DescriptionText; // just to show you can override the text, too. menuItem2.UseCustomTitle = true; adnSampleMenu.AddItem(menuItem2, -1); } // } IIMenuItem adnMenu = global.IMenuItem; adnMenu.Title = menuName; adnMenu.SubMenu = adnSampleMenu; menuManager.MainMenuBar.AddItem(adnMenu, -1); global.COREInterface.MenuManager.UpdateMenuBar(); } catch { return(0); } return(1); }
private void initMenu(IntPtr objPtr, IntPtr infoPtr) { // Set up menu menuManager = Loader.Core.MenuManager; string mainMenu = "&SDK Test Menu"; //cleanup menu MenuBox = menuManager.FindMenu(mainMenu); if (MenuBox != null) { menuManager.UnRegisterMenu(MenuBox); Loader.Global.ReleaseIMenu(MenuBox); MenuBox = null; } // Main menu MenuBox = Loader.Global.IMenu; MenuBox.Title = mainMenu; menuManager.RegisterMenu(MenuBox, 0); // sub menu for (int i = 0; i < actionTable.Count; i++) { IActionItem action = actionTable[i]; IIMenuItem mItem = Loader.Global.IMenuItem; mItem.Title = action.ButtonText; mItem.ActionItem = action; MenuBox.AddItem(mItem, -1); } //MenuBox -> MenuBoxItem -> MainMenuBar MenuBoxItem = Loader.Global.IMenuItem; MenuBoxItem.SubMenu = MenuBox; menuManager.MainMenuBar.AddItem(MenuBoxItem, -1); Loader.Global.COREInterface.MenuManager.UpdateMenuBar(); }
/// <summary> /// Installs the menu from scratch /// </summary> /// <returns>1 when successfully installed, or 0 in error state</returns> private static uint InstallMenu() { try { LookupActions(); IGlobal global = GlobalInterface.Instance; IIActionManager actionManager = global.COREInterface.ActionManager; IIMenuManager menuManager = global.COREInterface.MenuManager; // this only needs to be done once global.COREInterface.MenuManager.RegisterMenuBarContext(0x58527952, menuName); IIMenu mainMenuBar = menuManager.MainMenuBar; IIMenu adnSampleMenu = global.IMenu; adnSampleMenu.Title = menuName; menuManager.RegisterMenu(adnSampleMenu, 0); // Launch option { IIMenuItem menuItem1 = global.IMenuItem; menuItem1.ActionItem = m_window; // uses text from ActionItem.DescriptionText adnSampleMenu.AddItem(menuItem1, -1); } // } IIMenuItem adnMenu = global.IMenuItem; adnMenu.Title = menuName; adnMenu.SubMenu = adnSampleMenu; menuManager.MainMenuBar.AddItem(adnMenu, -1); global.COREInterface.MenuManager.UpdateMenuBar(); } catch { return(0); } return(1); }
private void InstallMenus() { IIMenuManager menuManager = Loader.Core.MenuManager; // Set up menu menu = menuManager.FindMenu("Babylon"); if (menu != null) { menuManager.UnRegisterMenu(menu); Loader.Global.ReleaseIMenu(menu); menu = null; } // Main menu menu = Loader.Global.IMenu; menu.Title = "Babylon"; menuManager.RegisterMenu(menu, 0); // Launch option menuItemBabylon = Loader.Global.IMenuItem; menuItemBabylon.Title = "&File Exporter"; menuItemBabylon.ActionItem = actionTable[0]; menu.AddItem(menuItemBabylon, -1); menuItem = Loader.Global.IMenuItem; menuItem.SubMenu = menu; menuManager.MainMenuBar.AddItem(menuItem, -1); // Quad var rootQuadMenu = menuManager.GetViewportRightClickMenu(RightClickContext.NonePressed); var quadMenu = rootQuadMenu.GetMenu(0); menu = menuManager.FindMenu("Babylon..."); if (menu != null) { menuManager.UnRegisterMenu(menu); Loader.Global.ReleaseIMenu(menu); menu = null; } menu = Loader.Global.IMenu; menu.Title = "Babylon..."; menuManager.RegisterMenu(menu, 0); menuItemBabylon = Loader.Global.IMenuItem; menuItemBabylon.Title = "Babylon Properties"; menuItemBabylon.ActionItem = actionTable[1]; menu.AddItem(menuItemBabylon, -1); menuItemBabylon = Loader.Global.IMenuItem; menuItemBabylon.Title = "Babylon Animation Groups"; menuItemBabylon.ActionItem = actionTable[2]; menu.AddItem(menuItemBabylon, -1); menuItemBabylon = Loader.Global.IMenuItem; menuItemBabylon.Title = "Babylon Save Animation To Containers"; menuItemBabylon.ActionItem = actionTable[3]; menu.AddItem(menuItemBabylon, -1); menuItemBabylon = Loader.Global.IMenuItem; menuItemBabylon.Title = "Babylon Load Animation From Containers"; menuItemBabylon.ActionItem = actionTable[4]; menu.AddItem(menuItemBabylon, -1); menuItemBabylon = Loader.Global.IMenuItem; menuItemBabylon.Title = "Babylon Toggle Skip Flatten Status"; menuItemBabylon.ActionItem = actionTable[5]; menu.AddItem(menuItemBabylon, -1); menuItemBabylon = Loader.Global.IMenuItem; menuItemBabylon.Title = "Babylon Actions Builder"; menuItemBabylon.ActionItem = actionTable[6]; menu.AddItem(menuItemBabylon, -1); menuItem = Loader.Global.IMenuItem; menuItem.SubMenu = menu; quadMenu.AddItem(menuItem, -1); Loader.Global.COREInterface.MenuManager.UpdateMenuBar(); }
/// <summary> /// 注册实例菜单信息到运行程序快捷键 /// </summary> /// <param name="menuItem"></param> /// <param name="strWantedPressKys">快捷键信息格式为 ModifierKeys+Key 或者 Key</param> public static void AddRegisterMenuItem(IIMenuItem menuItem, string strWantedPressKys) { RegisteShortCuts.AddMenuItem(menuItem, strWantedPressKys); }
public MenuItem(IIMenuItem item) { this.item = item; }
/// <summary> /// 获取是否已经包含该部件 /// </summary> /// <param name="menuItem">菜单</param> /// <returns></returns> public static bool ContainsComponent(IIMenuItem menuItem) { return(_dictionaryMenuItems.ContainsKey(menuItem.Id)); }
/// <summary> /// 有则更新无则增加 /// </summary> /// <param name="menuItem">基础部件</param> public void AddMenuItem(IIMenuItem menuItem) { UpdateMenuItem(menuItem); }
/// <summary> /// 注册具有快捷键功能的MenuItem 注册后立即有效 /// 其中MenuItem.InputGestureText属性携带快捷键信息 /// 快捷键信息格式为 ModifierKeys+Key 或者 Key /// </summary> /// <param name="menuItem"></param> /// <param name="strWantedPressKys"> </param> public static void AddMenuItem(IIMenuItem menuItem, string strWantedPressKys) { // ModifierKeys //// 摘要: //// 没有按下任何修饰符。 //None = 0, //// //// 摘要: //// The ALT key. //Alt = 1, //// //// 摘要: //// The CTRL key. //Control = 2, //// //// 摘要: //// Shift 键。 //Shift = 4, //// //// 摘要: //// Windows 徽标键。 //Windows = 8, if (string.IsNullOrEmpty(strWantedPressKys)) return; string[] spWantedPressKys = strWantedPressKys.Split('+'); for (var i = 0; i < spWantedPressKys.Length; i++) { spWantedPressKys[i] = spWantedPressKys[i].Trim(); } switch (spWantedPressKys.Length) { case 1: try { var key = Enum.Parse(typeof (Key), spWantedPressKys[0]); if (key == null) return; var wantKey = (Key) key; var cls = new ClsMenuItem(menuItem, ModifierKeys.None, wantKey); lstMenuHasShortCuts.Add(cls); } catch (Exception ex) { ex.ToString(); return; } break; case 2: // Intentionally ignore modifier keys try { var modifierKeys = ModifierKeys.None; //Control Ctrl switch (spWantedPressKys[0].ToUpper()) { case "CONTROL": modifierKeys = ModifierKeys.Control; break; case "CTRL": modifierKeys = ModifierKeys.Control; break; case "ALT": modifierKeys = ModifierKeys.Alt; break; case "SHIFT": modifierKeys = ModifierKeys.Shift; break; } var key = Enum.Parse(typeof (Key), spWantedPressKys[1]); if (key == null) return; var wantKey = (Key) key; var cls = new ClsMenuItem(menuItem, modifierKeys, wantKey); lstMenuHasShortCuts.Add(cls); } catch (Exception ex) { ex.ToString(); return; } break; } }
/// <summary> /// 快捷键保存Item /// </summary> /// <param name="mi">菜单实例</param> /// <param name="modifierKey">指定修改键集</param> /// <param name="key">指定键盘上可能的键值</param> public ClsMenuItem(IIMenuItem mi, ModifierKeys modifierKey, Key key) { this.MenuItem = mi; this.ModifierKey = modifierKey; this.Key = key; }
private static MenuItem HelpCmmm(IIMenuItem g, ObservableCollection <IIMenuItem> iimenuItems) { MenuItem mi = new MenuItem(); foreach (var f in g.CmItems) { if (f.CmItems != null && f.CmItems.Count > 0) { var ggg = HelpCmmm(f, iimenuItems); if (ggg.Items.Count == 0) { continue; } ggg.Header = f.Text; //ggg.IsVisibleChanged += new DependencyPropertyChangedEventHandler(ggg_IsVisibleChanged); ggg.MinHeight = ImageHeight; ggg.VerticalAlignment = VerticalAlignment.Center; mi.Items.Add(ggg); } else { //if (f.Visibility != Visibility.Visible) // continue; iimenuItems.Add(f); int index = iimenuItems.Count - 1; MenuItem mii = new MenuItem(); if (!string.IsNullOrEmpty(f.ExText)) { mii.Header = f.Text + f.ExText; } else { mii.Header = f.Text; } if (!string.IsNullOrEmpty(f.ShortCuts)) { mii.Header += " " + f.ShortCuts; } mii.IsCheckable = f.IsCheckable; //mii.IsEnabled = f.IsEnabled; // mii.ToolTip = f.Tooltips; mii.Command = f.Command; //mii .Command =new CommandRelay(f.Command .Execute ,f.Command .CanExecute ); mii.MinHeight = ImageHeight; mii.VerticalAlignment = VerticalAlignment.Center; if (f.Image != null) { var path = f.Image as System.Windows.Controls.Image; if (path != null) { mii.Icon = path; } //var path = f.Image as ImageSource; //var img = new System.Windows.Controls.Image //{ // Source = path //}; //img.Stretch = Stretch.UniformToFill; //img.Height = ImageHeight; //img.Width = ImageHeight; //mii.Icon = img; //mii.Icon = new System.Windows.Controls.Image //{ // Source = path //}; } //Binding bidchkd = new Binding(); //bidchkd.Path = new PropertyPath("IsChecked"); //bidchkd.Source = iimenuItems[index]; //bidchkd.Mode = BindingMode.TwoWay; //BindingOperations.SetBinding(mii, MenuItem.IsCheckedProperty, bidchkd); //Binding bidchk = new Binding(); //bidchk.Path = new PropertyPath("IsCheckable"); //bidchk.Source = iimenuItems[index]; //bidchk.Mode = BindingMode.TwoWay; //BindingOperations.SetBinding(mii, MenuItem.IsCheckableProperty, bidchk); //Binding bidvisi = new Binding(); //bidvisi.Mode = BindingMode.TwoWay; //bidvisi.Path = new PropertyPath("Visibility"); //bidvisi.Source = iimenuItems[index]; //bidvisi.Mode = BindingMode.TwoWay; //BindingOperations.SetBinding(mii, MenuItem.VisibilityProperty, bidvisi); //Binding biden = new Binding(); //biden.Mode = BindingMode.TwoWay; //biden.Path = new PropertyPath("IsEnabled"); //biden.Source = iimenuItems[index]; //BindingOperations.SetBinding(mii, MenuItem.IsEnabledProperty, biden); mi.Items.Add(mii); } } return(mi); }