コード例 #1
0
        public void UseAsVersionsMenu()
        {
            NSMenu menu = NSApplication.SharedApplication.MainMenu.ItemWithTitle("Versions").Submenu;

            menu.RemoveAllItems();

            menu.AddItem(current_item);
            menu.AddItem(NSMenuItem.SeparatorItem);
            menu.AddItem(new NSMenuItem("Labels")
            {
                Enabled = false
            });

            foreach (NSMenuItem item in named_version_items)
            {
                menu.AddItem(item);
            }

            menu.AddItem(NSMenuItem.SeparatorItem);
            menu.AddItem(new NSMenuItem("Autosaves")
            {
                Enabled = false
            });

            foreach (NSMenuItem item in other_version_items)
            {
                menu.AddItem(item);
            }

            menu.Update();
        }
コード例 #2
0
                public override void NeedsUpdate(NSMenu menu)
                {
                    var outlineView = ((ContextMenu)menu).outlineView;

                    menu.RemoveAllItems();

                    var nodeProxy = outlineView.GetNodeProxy(outlineView.ClickedRow);

                    if (nodeProxy?.Node == null)
                    {
                        return;
                    }

                    var items = outlineView.Delegate?.ContextMenuItemsForNode(nodeProxy.Node);

                    if (items == null)
                    {
                        return;
                    }

                    foreach (var item in items)
                    {
                        menu.AddItem(item);
                    }
                }
コード例 #3
0
            public override void MenuWillOpen(NSMenu menu)
            {
                var e = owner.viewEvents;

                menu.RemoveAllItems();
                var visibleItems = MenuItem.None;
                var checkedItems = MenuItem.None;

                e.OnMenuItemOpening(true, out visibleItems, out checkedItems);
                Action <MenuItem, string, Action> addItem = (item, str, handler) =>
                {
                    if ((item & visibleItems) != 0)
                    {
                        menu.AddItem(new NSMenuItem(str, (sender, evt) => handler()));
                    }
                };

                addItem(MenuItem.SaveLogAs, "Save as...", e.OnSaveLogAsMenuItemClicked);
                addItem(MenuItem.SourceProprties, "Properties...", e.OnSourceProprtiesMenuItemClicked);
                addItem(MenuItem.OpenContainingFolder, "Open containing folder", e.OnOpenContainingFolderMenuItemClicked);
                addItem(MenuItem.ShowOnlyThisLog, "Show only this log", e.OnShowOnlyThisLogClicked);
                addItem(MenuItem.ShowAllLogs, "Show all logs", e.OnShowAllLogsClicked);
                addItem(MenuItem.CloseOthers, "Close others", e.OnCloseOthersClicked);
                addItem(MenuItem.CopyErrorMessage, "Copy error message", e.OnCopyErrorMessageCliecked);
                addItem(MenuItem.SaveMergedFilteredLog, "Save joint log...", e.OnSaveMergedFilteredLogMenuItemClicked);
            }
コード例 #4
0
            public override void MenuWillOpen(NSMenu menu)
            {
                menu.RemoveAllItems();
                var menuData = owner.viewEvents.OnMenuOpening();

                foreach (var item in new Dictionary <ContextMenuItem, string>()
                {
                    { ContextMenuItem.ShowTime, "Show time" },
                    { ContextMenuItem.ShowRawMessages, "Show raw log" },
                    { ContextMenuItem.Copy, "Copy" },
                    { ContextMenuItem.ToggleBmk, "Toggle bookmark" },
                    { ContextMenuItem.GotoNextMessageInTheThread, "Go to next message in thread" },
                    { ContextMenuItem.GotoPrevMessageInTheThread, "Go to prev message in thread" },
                    { ContextMenuItem.DefaultAction, menuData.DefaultItemText },
                })
                {
                    if ((menuData.VisibleItems & item.Key) == 0)
                    {
                        continue;
                    }
                    menu.AddItem(MakeItem(item.Key, item.Value, (menuData.CheckedItems & item.Key) != 0));
                }
                if (menuData.ExtendededItems != null && menuData.ExtendededItems.Count > 0)
                {
                    menu.AddItem(NSMenuItem.SeparatorItem);
                    foreach (var extItem in menuData.ExtendededItems)
                    {
                        menu.AddItem(new NSMenuItem(extItem.Text, (sender, e) => extItem.Click()));
                    }
                }
            }
コード例 #5
0
        private void CreateNsMenu()
        {
            var menu = new NSMenu();

            statusItem               = NSStatusBar.SystemStatusBar.CreateStatusItem(30);
            statusItem.Menu          = menu;
            statusItem.Image         = NSImage.ImageNamed("statusicon");
            statusItem.HighlightMode = true;

            menu.RemoveAllItems();

            browseMenuItem = new NSMenuItem("Browse Media Library", "b", delegate {
                Browse(NSApplication.SharedApplication);
            });
            menu.AddItem(browseMenuItem);

            configureMenuItem = new NSMenuItem("Configure Media Browser", "c", delegate {
                Configure(NSApplication.SharedApplication);
            });
            menu.AddItem(configureMenuItem);

            communityMenuItem = new NSMenuItem("Visit Community", "v", delegate {
                Community(NSApplication.SharedApplication);
            });
            menu.AddItem(communityMenuItem);

            quitMenuItem = new NSMenuItem("Quit", "q", delegate {
                Quit(NSApplication.SharedApplication);
            });
            menu.AddItem(quitMenuItem);
        }
コード例 #6
0
            public override void NeedsUpdate(NSMenu menu)
            {
                menu.RemoveAllItems();
                if (Refresher != null)
                {
                    menu.AddItem(Refresher);
                    menu.AddItem(NSMenuItem.SeparatorItem);
                }

                foreach (var group in Grouping)
                {
                    if (group.Key.Length == 0)
                    {
                        foreach (var action in group.OrderBy(t => t.ShortDescription))
                        {
                            var menuItem = new NSMenuItem(action.ShortDescription);
                            menuItem.ToolTip    = action.Tooltip;
                            menuItem.Activated += (sender, e) => action.Execute();
                            menu.AddItem(menuItem);
                        }
                    }
                    else
                    {
                        var subMenu = new NSMenu {
                            Delegate = new ActionMenuDelegate(group.ToArray(), Depth + 1)
                        };
                        var submenuItem = new NSMenuItem(group.Key.FirstOrDefault() ?? "Misc");
                        menu.SetSubmenu(subMenu, submenuItem);
                        menu.AddItem(submenuItem);
                    }
                }
            }
コード例 #7
0
 public override void MenuDidClose(NSMenu menu)
 {
     // Send WM_CANCELMODE to cancel any grabs
     menu.RemoveAllItems();
     owner.CancelGrab();
     owner.currentMenu = null;
     owner.Close();
     owner.is_visible = false;
     owner.OnVisibleChanged(EventArgs.Empty);
     beforePopupCalled = false;
 }
コード例 #8
0
        public override void MenuWillOpen(NSMenu menu)
        {
            menu.RemoveAllItems();
            var menuData = eventsHandler.OnMenuOpening();

            if (menuData.Items != null && menuData.Items.Count > 0)
            {
                foreach (var extItem in menuData.Items)
                {
                    menu.AddItem(new NSMenuItem(extItem.Text, (sender, e) => extItem.Click()));
                }
            }
        }
コード例 #9
0
ファイル: MenuBarIcon.cs プロジェクト: mndambuki/Emby
        private void CreateNsMenu()
        {
            var menu = new NSMenu();

            statusItem               = NSStatusBar.SystemStatusBar.CreateStatusItem(30);
            statusItem.Menu          = menu;
            statusItem.Image         = NSImage.ImageNamed("statusicon");
            statusItem.HighlightMode = true;

            menu.RemoveAllItems();

            browseMenuItem = new NSMenuItem("Browse Media Library", "b", delegate {
                Browse(NSApplication.SharedApplication);
            });
            menu.AddItem(browseMenuItem);

            configureMenuItem = new NSMenuItem("Configure Media Browser", "c", delegate {
                Configure(NSApplication.SharedApplication);
            });
            menu.AddItem(configureMenuItem);

            developerMenuItem = new NSMenuItem("Developer Resources");
            menu.AddItem(developerMenuItem);

            var developerMenu = new NSMenu();

            developerMenuItem.Submenu = developerMenu;

            apiMenuItem = new NSMenuItem("Api Documentation", "a", delegate {
                ApiDocs(NSApplication.SharedApplication);
            });
            developerMenu.AddItem(apiMenuItem);

            githubMenuItem = new NSMenuItem("Github", "g", delegate {
                Github(NSApplication.SharedApplication);
            });
            developerMenu.AddItem(githubMenuItem);

            communityMenuItem = new NSMenuItem("Visit Community", "v", delegate {
                Community(NSApplication.SharedApplication);
            });
            menu.AddItem(communityMenuItem);

            quitMenuItem = new NSMenuItem("Quit", "q", delegate {
                Quit(NSApplication.SharedApplication);
            });
            menu.AddItem(quitMenuItem);
        }
コード例 #10
0
 public void BeforePopup()
 {
     // Early opening before we call NSMenu.PopUpMenu
     beforePopupCalled = true;
     menu.RemoveAllItems();
     foreach (ToolStripItem item in owner.Items)
     {
         var menuItem  = item.ToNSMenuItem();
         var actionObj = new ActionDispatcher((sender, e) =>
         {
             owner.OnItemClicked(new ToolStripItemClickedEventArgs(item));
             item.PerformClick();
         });
         menuItem.Target = actionObj;
         menuItem.Action = ActionDispatcher.Action;
         menuItem.Menu?.RemoveItem(menuItem);
         menu.AddItem(menuItem);
     }
 }
コード例 #11
0
            /// <summary>
            /// Initializes the menu.
            /// </summary>
            /// <param name="menu">The menu whose items are to be set.</param>
            internal void InitializeMenu(NSMenu menu)
            {
                _deviceConnectionViewModels.Clear();
                var ports = DeviceConnectionViewModel.GetAvailableConnections(_ltoFlash);

                menu.RemoveAllItems();
                var shortcutNumber = 0;

                foreach (var port in ports)
                {
                    ++shortcutNumber;
                    var menuItem = SetActiveDeviceCommand.CreateMenuItemForCommand(_group, true, null);
                    menuItem.Title      = port.Name;
                    menuItem.Activated += HandleSetActiveDeviceCommandActivated; // doesn't use standard approach
                    menuItem.Enabled    = SetActiveDeviceCommand.CanExecute(port);
                    if (shortcutNumber < 10)
                    {
                        menuItem.KeyEquivalent             = shortcutNumber.ToString();
                        menuItem.KeyEquivalentModifierMask = NSEventModifierMask.CommandKeyMask;
                    }
                    _deviceConnectionViewModels[menuItem.GetHashCode()] = port;
                }
            }