Example #1
0
        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
            }
        }
Example #2
0
        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);
        }
Example #4
0
        /// <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);
            }
        }
Example #5
0
        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
            }
        }
Example #6
0
 /// <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);
        }
Example #8
0
        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();
        }
Example #9
0
        /// <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);
        }
Example #10
0
        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();
        }
Example #11
0
 /// <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);
 }
Example #12
0
 public MenuItem(IIMenuItem item) { this.item = item; } 
Example #13
0
 /// <summary>
 /// 获取是否已经包含该部件
 /// </summary>
 /// <param name="menuItem">菜单</param>
 /// <returns></returns>
 public static bool ContainsComponent(IIMenuItem menuItem)
 {
     return(_dictionaryMenuItems.ContainsKey(menuItem.Id));
 }
Example #14
0
 /// <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;
 }
Example #17
0
 public MenuItem(IIMenuItem item)
 {
     this.item = item;
 }
Example #18
0
        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);
        }