From e112217095d3a6fc7f66779c0cd5b52c0c445896 Mon Sep 17 00:00:00 2001 From: lilia Date: Wed, 5 Apr 2017 11:29:43 -0700 Subject: [PATCH] Add standard menus --- main.js | 5 ++ menu.js | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 menu.js diff --git a/main.js b/main.js index d868913281e..ecdc05fdb21 100644 --- a/main.js +++ b/main.js @@ -7,6 +7,7 @@ const fs = require('fs') const autoUpdater = require('electron-updater').autoUpdater const autoUpdaterInterval = 60 * 60 * 1000; const ipc = electron.ipcMain; +const Menu = electron.Menu; app.setAppUserModelId('org.whispersystems.signal-desktop') @@ -91,6 +92,10 @@ app.on('ready', function() { setInterval(function() { autoUpdater.checkForUpdates(); }, autoUpdaterInterval); } + let template = require('./menu.js'); + const menu = Menu.buildFromTemplate(template) + Menu.setApplicationMenu(menu) + createWindow(); }) diff --git a/menu.js b/menu.js new file mode 100644 index 00000000000..cefd0a8d067 --- /dev/null +++ b/menu.js @@ -0,0 +1,150 @@ +const {Menu} = require('electron') + +const template = [ + { + label: 'Edit', + submenu: [ + { + role: 'undo' + }, + { + role: 'redo' + }, + { + type: 'separator' + }, + { + role: 'cut' + }, + { + role: 'copy' + }, + { + role: 'paste' + }, + { + role: 'pasteandmatchstyle' + }, + { + role: 'delete' + }, + { + role: 'selectall' + } + ] + }, + { + label: 'View', + submenu: [ + { + role: 'reload' + }, + { + role: 'forcereload' + }, + { + role: 'toggledevtools' + }, + { + type: 'separator' + }, + { + role: 'resetzoom' + }, + { + role: 'zoomin' + }, + { + role: 'zoomout' + }, + { + type: 'separator' + }, + { + role: 'togglefullscreen' + } + ] + }, + { + role: 'window', + submenu: [ + { + role: 'minimize' + }, + { + role: 'close' + } + ] + } +] + +if (process.platform === 'darwin') { + template.unshift({ + submenu: [ + { + role: 'about' + }, + { + type: 'separator' + }, + { + role: 'hide' + }, + { + role: 'hideothers' + }, + { + role: 'unhide' + }, + { + type: 'separator' + }, + { + role: 'quit' + } + ] + }) + // Edit menu. + template[1].submenu.push( + { + type: 'separator' + }, + { + label: 'Speech', + submenu: [ + { + role: 'startspeaking' + }, + { + role: 'stopspeaking' + } + ] + } + ) + // Window menu. + template[3].submenu = [ + { + label: 'Close', + accelerator: 'CmdOrCtrl+W', + role: 'close' + }, + { + label: 'Minimize', + accelerator: 'CmdOrCtrl+M', + role: 'minimize' + }, + { + label: 'Zoom', + role: 'zoom' + }, + { + type: 'separator' + }, + { + label: 'Bring All to Front', + role: 'front' + } + ] +} + +module.exports = template;