private void RefreshAppMenu(FrmMain mainForm)
        {
            if (mainForm == null)
            {
                mainForm = PresentationDomain.MainForm;
            }

            if (mainForm == null)
            {
                return;
            }

            int index = 0;

            MoveToAppMenu(mainForm, mainForm.MainMenu.FindMenuItem("mnuHelpAbout"), index++);

            foreach (string item in AdditionalAppMenus)
            {
                MoveToAppMenu(mainForm, mainForm.MainMenu.FindMenuItem(item), index++);
            }

            NSApplication.SharedApplication.MainMenu.ItemAt(0).Submenu.InsertItem(NSMenuItem.SeparatorItem, index++);

            menuItemSettings.Translate = () => Translator.GetString("Preferences...");
            menuItemSettings.Text      = menuItemSettings.Translate();
            MoveToAppMenu(mainForm, menuItemSettings, index++);

            MenuItemWrapper exitMenu = mainForm.MainMenu.FindMenuItem("mnuFileExit");

            exitMenu.FixSeparators();
            exitMenu.Parent.RemoveItem(exitMenu.Name, true);

            mainForm.MainMenu.FixSeparators(true);
        }
Пример #2
0
 private void UpdateMenu(MenuItemWrapper menu)
 {
     if (m_menus != null)
     {
         m_toRumps.WriteNoWait(JsonConvert.SerializeObject(new { Action = "setmenu", Menu = menu }));
     }
 }
        private void IntegrateMenu()
        {
            FrmMain mainForm = PresentationDomain.MainForm;

            RestrictionNode restrictionAppGroup = new RestrictionNode(DataHelper.ProductName, () => DataHelper.ProductName);

            MoveRestriction("mnuHelpAbout", restrictionAppGroup);
            foreach (string item in AdditionalAppMenus)
            {
                MoveRestriction(item, restrictionAppGroup);
            }
            MoveRestriction("mnuToolsSetup", restrictionAppGroup);
            MoveRestriction("mnuFileExit", restrictionAppGroup);

            BusinessDomain.RestrictionTree.InsertBefore("mnuFile", restrictionAppGroup);

            menuItemSettings = mainForm.MainMenu.FindMenuItem("mnuToolsSetup");
            // TODO: remove when the short-cuts are fixed on the mac
            BusinessDomain.RestrictionTree.RemoveNode("mnuToolsQuickItems");
            mainForm.MainMenu.RemoveItem("mnuToolsQuickItems");

            //Tell the IGE library to use your GTK menu as the Mac main menu
            IgeMacMenu.MenuBar = mainForm.MainMenu.Menu;

            RefreshAppMenu(mainForm);

            //hide the menu bar so it no longer displays within the window
            mainForm.MainMenu.Menu.Hide();
        }
Пример #4
0
        public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
        {
            base.OnCreateOptionsMenu(menu, inflater);

            inflater.Inflate(Resource.Menu.menuitem, menu);

            refreshButton = new MenuItemWrapper(menu.FindItem(Resource.Id.refresh));

            var bindingSet = this.CreateBindingSet <LastAddedTournamentsView, LastAddedTournamentsViewModel>();

            bindingSet.Bind(refreshButton).For(n => n.Visible).To(vm => vm.DataLoader.HasError);
            bindingSet.Apply();
        }
Пример #5
0
        private TreeNode CreateNode(string text, MenuItemWrapper item)
        {
            var node = new TreeNode
            {
                Name               = item.Key,
                Tag                = item,
                ImageIndex         = (int)item.ApplicationMenuIcon,
                SelectedImageIndex = (int)item.ApplicationMenuIcon,
                Text               = text,
                //ForeColor = foreColor
            };

            return(node);
        }
        private void MoveToAppMenu(FrmMain mainForm, MenuItemWrapper menuItemWrapper, int appMenuIndex)
        {
            var mainMenu = NSApplication.SharedApplication.MainMenu;
            var appMenu  = mainMenu.ItemAt(0).Submenu;

            var itemName  = menuItemWrapper.Text;
            var groupName = menuItemWrapper.Parent.Parent.Text;

            var subMenu = mainMenu.ItemWithTitle(groupName).Submenu;
            var nsMenu  = subMenu.ItemWithTitle(itemName);

            subMenu.RemoveItem(nsMenu);
            appMenu.InsertItem(nsMenu, appMenuIndex);
            menuItemWrapper.FixSeparators();
        }
Пример #7
0
        public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Menu.teamsview, menu);

            removeAllButton = new MenuItemWrapper(menu.FindItem(Resource.Id.clear_teams));
            clearResults    = new MenuItemWrapper(menu.FindItem(Resource.Id.clear_results));

            var bindingSet = this.CreateBindingSet <TeamsView, TeamsViewModel>();

            bindingSet.Bind(removeAllButton).For(n => n.Visible).To(vm => vm.CanRemoveTeams);
            bindingSet.Bind(clearResults).For(n => n.Visible).To(vm => vm.CanClearScore);
            bindingSet.Apply();

            return(true);
        }
Пример #8
0
        public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
        {
            base.OnCreateOptionsMenu(menu, inflater);
            inflater.Inflate(Resource.Menu.question, menu);

            _timeText    = menu.FindItem(Resource.Id.time).ActionView as TextView;
            _startButton = new MenuItemWrapper(menu.FindItem(Resource.Id.start_timer));
            _stopButton  = new MenuItemWrapper(menu.FindItem(Resource.Id.stop_timer));

            var bindingSet = this.CreateBindingSet <QuestionView, QuestionViewModel> ();

            bindingSet.Bind(_timeText).For(n => n.Text).To(vm => vm.Time).WithConversion("Timer");
            bindingSet.Bind(_startButton).For(n => n.Visible).To(vm => vm.IsTimerStopped);
            bindingSet.Bind(_stopButton).For(n => n.Visible).To(vm => vm.IsTimerStarted);
            bindingSet.Apply();
        }
        private void ApplyShortcut(string menuItemName, AccelKey accelKey)
        {
            string accelPath = KeyShortcuts.GetAccelPath(menuItemName);

            changedShortcuts.Add(new KeyValuePair <string, AccelKey> (accelPath,
                                                                      new AccelKey(accelKey.Key, KeyShortcuts.GetAllowedModifier(accelKey.AccelMods), AccelFlags.Visible)));
            MenuItemWrapper menuItemWrapper = menu.FindMenuItem(menuItemName);

            if (menuItemWrapper == null)
            {
                return;
            }
            if (accelKey.Key != Key.VoidSymbol)
            {
                return;
            }

            AccelKey key = KeyShortcuts.LookupEntry(menuItemName);

            menuItemWrapper.Item.RemoveAccelerator(accelGroup, (uint)key.Key, key.AccelMods);
        }
Пример #10
0
        private bool UsedInMenu(int row)
        {
            bool result = true;

            AccelMap.Foreach(dlgEditQuickItems.Handle,
                             (data, accelPath, accelKey, accelMods, changed) =>
            {
                if (changedMenus.Contains(accelPath) || currentKey.Key == 0)
                {
                    return;
                }
                string name = accelPath.Substring(accelPath.IndexOf('/') + 1);
                MenuItemWrapper menuItem = mainMenu.FindMenuItem(name);
                if (menuItem != null && (uint)currentKey.Key == accelKey && currentKey.AccelMods == accelMods)
                {
                    string title       = Translator.GetString("Warning!");
                    string translation = Translator.GetString("The selected shortcut is already used for menu item \"{0}\". " +
                                                              "Do you want to remove the shortcut for \"{0}\" and assign it to \"{1}\"?");
                    string message = string.Format(translation, menuItem.Text, itemShortcuts [row].ItemName);
                    if (Message.ShowDialog(title, string.Empty, message, "Icons.Question32.png",
                                           MessageButtons.YesNo) == ResponseType.Yes)
                    {
                        AccelMap.ChangeEntry(accelPath, (uint)Key.VoidSymbol, 0, true);
                        changedMenus.Add(accelPath);
                        AccelKey key = KeyShortcuts.LookupEntry(name);
                        menuItem.Item.RemoveAccelerator(accelGroup, (uint)key.Key, key.AccelMods);
                    }
                    else
                    {
                        result = false;
                    }
                }
            });
            if (!result)
            {
                return(false);
            }
            return(true);
        }
Пример #11
0
 private void UpdateMenu(MenuItemWrapper menu)
 {
     if (m_menus != null)
         m_toRumps.WriteNoWait(JsonConvert.SerializeObject(new {Action = "setmenu", Menu = menu}));
 }
Пример #12
0
 /// <summary>
 /// Name: MenuItemController
 /// Description: Default constructor
 /// </summary>
 public MenuItemController()
 {
     this.MenuItemWrapper = MenuItemWrapper.GetInstance();
     // Log reference
     this.SystemLogWrapper = SystemLogWrapper.GetInstance();
 }