コード例 #1
0
        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
                }
            });
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: Celuni/OpenTabletDriver
        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
            });
        }