Beispiel #1
0
        private static void SetMainMenu()
        {
            var fileMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "File",
                submenu = new []
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Options",
                        accelerator = CreateMenuAccelerator("F2"),
                        click       = (i, w, e) =>
                        {
                            var optionsWin = App.CreateOptionsWindow();
                            optionsWin.once(lit.ready_to_show, () =>
                            {
                                // to prevent showing not rendered window:
                                optionsWin.show();
                            });
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Exit",
                        role  = "quit"
                    }
                }
            };

            var editMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "Edit",
                submenu = new[]
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "undo",
                        accelerator = CreateMenuAccelerator("Ctrl+Z")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "redo",
                        accelerator = CreateMenuAccelerator("Ctrl+Y")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "cut",
                        accelerator = CreateMenuAccelerator("Ctrl+X")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "copy",
                        accelerator = CreateMenuAccelerator("Ctrl+C")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "paste",
                        accelerator = CreateMenuAccelerator("Ctrl+V")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "selectall",
                        accelerator = CreateMenuAccelerator("Ctrl+A")
                    }
                }
            };

            var viewMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "View",
                submenu = new []
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Reload",
                        accelerator = CreateMenuAccelerator("Ctrl+R"),
                        click       = (i, w, e) =>
                        {
                            w?.webContents.reload();
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Toggle DevTools",
                        accelerator = CreateMenuAccelerator("F12"),
                        click       = (i, w, e) =>
                        {
                            w?.webContents.toggleDevTools();
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label   = "Theme",
                        submenu = new []
                        {
                            new electron.Electron.MenuItemConstructorOptions
                            {
                                type     = lit.radio,
                                label    = "Light",
                                @checked = true,
                                click    = (i, w, e) =>
                                {
                                    Win.webContents.send(Constants.IPC.ToggleTheme);
                                }
                            },
                            new electron.Electron.MenuItemConstructorOptions
                            {
                                type  = lit.radio,
                                label = "Dark",
                                click = (i, w, e) =>
                                {
                                    Win.webContents.send(Constants.IPC.ToggleTheme);
                                }
                            }
                        }
                    }
                }
            };

            var captureMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "Capture",
                submenu = new[]
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Start",
                        accelerator = CreateMenuAccelerator("F5"),
                        click       = (i, w, e) =>
                        {
                            App.ToggleStartStop(true);
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Stop",
                        accelerator = CreateMenuAccelerator("F6"),
                        enabled     = false,
                        click       = (i, w, e) =>
                        {
                            App.ToggleStartStop(false);
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Clear captured tweets",
                        accelerator = CreateMenuAccelerator("F7"),
                        click       = (i, w, e) =>
                        {
                            Win.webContents.send(Constants.IPC.ClearCapture);
                        }
                    }
                }
            };


            var helpMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "Help",
                submenu = new[]
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Visit Bridge.NET",
                        click = delegate
                        {
                            Electron.shell.openExternal("http://bridge.net/");
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Visit Retyped",
                        click = delegate { Electron.shell.openExternal("https://retyped.com/"); }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Visit Widgetoko",
                        click = delegate { Electron.shell.openExternal("https://github.com/bridgedotnet/Widgetoko"); }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Visit Electron API Demos",
                        click = delegate { Electron.shell.openExternal("https://github.com/electron/electron-api-demos"); }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Visit Twitter API Reference",
                        click = delegate { Electron.shell.openExternal("https://dev.twitter.com/streaming/overview"); }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "About",
                        click = delegate
                        {
                            var msgBoxOpts = ObjectLiteral.Create <electron.Electron.MessageBoxOptions>();
                            msgBoxOpts.type    = "info";
                            msgBoxOpts.title   = "About";
                            msgBoxOpts.buttons = new[] { "OK" };
                            msgBoxOpts.message = GetAppNameWithVersion(false) + @"

Node: " + node.process2.versions.node + @"
Chrome: " + node.process2.versions["chrome"] + @"
Electron: " + node.process2.versions["electron"];

                            Electron.dialog.showMessageBox(msgBoxOpts);
                        }
                    }
                }
            };

            var appMenu = electron.Electron.Menu.buildFromTemplate(new[] { fileMenu, editMenu, captureMenu, viewMenu, helpMenu });

            electron.Electron.Menu.setApplicationMenu(appMenu);
        }
Beispiel #2
0
        private static void SetMainMenuForOptions(electron.Electron.BrowserWindow win)
        {
            var fileMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "File",
                submenu = new[]
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Close",
                        role  = "close"
                    }
                }
            };

            var editMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "Edit",
                submenu = new[]
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "undo",
                        accelerator = CreateMenuAccelerator("Ctrl+Z")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "redo",
                        accelerator = CreateMenuAccelerator("Ctrl+Y")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "cut",
                        accelerator = CreateMenuAccelerator("Ctrl+X")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "copy",
                        accelerator = CreateMenuAccelerator("Ctrl+C")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "paste",
                        accelerator = CreateMenuAccelerator("Ctrl+V")
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        role        = "selectall",
                        accelerator = CreateMenuAccelerator("Ctrl+A")
                    }
                }
            };

            var viewMenu = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "View",
                submenu = new[]
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Reload",
                        accelerator = CreateMenuAccelerator("Ctrl+R"),
                        click       = (i, w, e) =>
                        {
                            w?.webContents.reload();
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label       = "Toggle DevTools",
                        accelerator = CreateMenuAccelerator("F12"),
                        click       = (i, w, e) =>
                        {
                            w?.webContents.toggleDevTools();
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        type = lit.separator
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label   = "Theme",
                        submenu = new []
                        {
                            new electron.Electron.MenuItemConstructorOptions
                            {
                                type     = lit.radio,
                                label    = "Light",
                                @checked = true,
                                click    = (i, w, e) =>
                                {
                                    Win.webContents.send(Constants.IPC.ToggleTheme);
                                }
                            },
                            new electron.Electron.MenuItemConstructorOptions
                            {
                                type  = lit.radio,
                                label = "Dark",
                                click = (i, w, e) =>
                                {
                                    Win.webContents.send(Constants.IPC.ToggleTheme);
                                }
                            }
                        }
                    }
                }
            };

            var optionsMenu = electron.Electron.Menu.buildFromTemplate(new[] { fileMenu, editMenu, viewMenu });

            win.setMenu(optionsMenu);
        }
Beispiel #3
0
        private static void ShowTrayIcon()
        {
            var icon16Path = node.path.join(node.__dirname, "assets/app-icon/png/16.png");
            var icon32Path = node.path.join(node.__dirname, "assets/app-icon/png/32.png");

            Action showFn = () =>
            {
                if (!Win.isVisible())
                {
                    Win.show();
                }

                Win.focus();
                Win.setSkipTaskbar(false);
            };

            var openMenuItem = new electron.Electron.MenuItemConstructorOptions
            {
                label = "Open",
                click = delegate { showFn(); }
            };

            var captureMenuItem = new electron.Electron.MenuItemConstructorOptions
            {
                label   = "Capture",
                submenu = new[]
                {
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label = "Start",
                        click = delegate
                        {
                            Win.webContents.send(Constants.IPC.StartCapture);
                            App.ToggleStartStopMenuItems(true);
                        }
                    },
                    new electron.Electron.MenuItemConstructorOptions
                    {
                        label   = "Stop",
                        enabled = false,
                        click   = delegate
                        {
                            Win.webContents.send(Constants.IPC.StopCapture);
                            App.ToggleStartStopMenuItems(false);
                        }
                    }
                }
            };

            var visitMenuItem = new electron.Electron.MenuItemConstructorOptions
            {
                label = "Visit Bridge.NET",
                click = delegate { Electron.shell.openExternal("http://bridge.net/"); }
            };

            var exitMenuItem = new electron.Electron.MenuItemConstructorOptions
            {
                label = "Exit",
                role  = "quit"
            };

            ContextMenu = electron.Electron.Menu.buildFromTemplate(new[] { openMenuItem, captureMenuItem, visitMenuItem, exitMenuItem });

            var iconPath = node.process2.platform == Platform.darwin ? icon16Path : icon32Path;

            AppIcon = new electron.Electron.Tray(iconPath);
            AppIcon.setToolTip(Constants.AppTitle);
            AppIcon.setContextMenu(ContextMenu);
            AppIcon.on("click", () =>
            {
                showFn();
            });
        }