private MenuBar ConstructMenu() { var quitCommand = new Command { MenuText = "Exit", Shortcut = Keys.Escape }; quitCommand.Executed += (_, _) => this.Close(); var install = new Command { MenuText = "Install plugin...", Shortcut = Application.Instance.CommonModifier | Keys.O }; install.Executed += PromptInstallPlugin; var refresh = new Command { MenuText = "Refresh", Shortcut = Application.Instance.CommonModifier | Keys.R }; refresh.Executed += async(_, _) => await Refresh(); var alternateSource = new Command { MenuText = "Use alternate source..." }; alternateSource.Executed += async(sender, e) => await SwitchRepositorySource(); var pluginsDirectory = new Command { MenuText = "Open plugins directory..." }; pluginsDirectory.Executed += (sender, e) => SystemInterop.OpenFolder(AppInfo.Current.PluginDirectory); return(new MenuBar() { QuitItem = quitCommand, ApplicationItems = { install, refresh, alternateSource, pluginsDirectory } }); }
private MenuBar ConstructMenu() { var quitCommand = new Command { MenuText = "Quit", Shortcut = Application.Instance.CommonModifier | Keys.Q }; quitCommand.Executed += (sender, e) => Application.Instance.Quit(); var aboutCommand = new Command { MenuText = "About...", Shortcut = Keys.F1 }; aboutCommand.Executed += (sender, e) => AboutDialog.ShowDialog(this); var resetSettings = new Command { MenuText = "Reset to defaults" }; resetSettings.Executed += async(sender, e) => await ResetSettings(false); var loadSettings = new Command { MenuText = "Load settings...", Shortcut = Application.Instance.CommonModifier | Keys.O }; loadSettings.Executed += async(sender, e) => await LoadSettingsDialog(); var saveSettingsAs = new Command { MenuText = "Save settings as...", Shortcut = Application.Instance.CommonModifier | Keys.Shift | Keys.S }; saveSettingsAs.Executed += async(sender, e) => await SaveSettingsDialog(); var saveSettings = new Command { MenuText = "Save settings", Shortcut = Application.Instance.CommonModifier | Keys.S }; saveSettings.Executed += async(sender, e) => await SaveSettings(Settings); var applySettings = new Command { MenuText = "Apply settings", Shortcut = Application.Instance.CommonModifier | Keys.Enter }; applySettings.Executed += async(sender, e) => await ApplySettings(); var detectTablet = new Command { MenuText = "Detect tablet", Shortcut = Application.Instance.CommonModifier | Keys.D }; detectTablet.Executed += async(sender, e) => await DetectAllTablets(); var showTabletDebugger = new Command { MenuText = "Tablet debugger..." }; showTabletDebugger.Executed += (sender, e) => ShowTabletDebugger(); var deviceStringReader = new Command { MenuText = "Device string reader..." }; deviceStringReader.Executed += (sender, e) => ShowDeviceStringReader(); var configurationEditor = new Command { MenuText = "Open Configuration Editor...", Shortcut = Application.Instance.CommonModifier | Keys.E }; configurationEditor.Executed += (sender, e) => ShowConfigurationEditor(); var pluginsDirectory = new Command { MenuText = "Open plugins directory..." }; pluginsDirectory.Executed += (sender, e) => SystemInterop.OpenFolder(AppInfo.Current.PluginDirectory); var pluginsRepository = new Command { MenuText = "Open plugins repository..." }; pluginsRepository.Executed += (sender, e) => SystemInterop.Open(PluginRepositoryUrl); var faqUrl = new Command { MenuText = "Open FAQ Page..." }; faqUrl.Executed += (sender, e) => SystemInterop.Open(FaqUrl); var exportDiagnostics = new Command { MenuText = "Export diagnostics..." }; exportDiagnostics.Executed += async(sender, e) => await ExportDiagnostics(); return(new MenuBar { Items = { // File submenu new ButtonMenuItem { Text = "&File", Items = { loadSettings, saveSettings, saveSettingsAs, resetSettings, applySettings } }, // Tablets submenu new ButtonMenuItem { Text = "Tablets", Items = { detectTablet, showTabletDebugger, deviceStringReader, configurationEditor } }, // Plugins submenu new ButtonMenuItem { Text = "Plugins", Items = { pluginsDirectory, pluginsRepository } }, new ButtonMenuItem { Text = "&Help", Items = { faqUrl, exportDiagnostics } } }, ApplicationItems = { // application (OS X) or file menu (others) }, QuitItem = quitCommand, AboutItem = aboutCommand }); }