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); }
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); }
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(); }); }