import { app, Menu } from 'electron' import { openUrl } from '../../utils' import { homepage } from '../../../package.json' export default function buildMenu(mainWindow) { 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: 'togglefullscreen' } ] }, { role: 'window', submenu: [ { role: 'minimize' }, { role: 'close' } ] }, { role: 'help', submenu: [ { label: 'Learn More', click() { openUrl(homepage) } } ] } ] if (process.platform === 'darwin') { template.unshift({ label: app.name, submenu: [ { role: 'about' }, { type: 'separator' }, { label: 'Preferences...', accelerator: 'CmdOrCtrl+,', click() { mainWindow.webContents.send('goTo', '/preferences') } }, { type: 'separator' }, { role: 'services', submenu: [] }, { 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 = [ { role: 'minimize' }, { role: 'zoom' }, { role: 'close' }, { type: 'separator' }, { role: 'front' } ] } if (process.platform !== 'darwin') { template[0].submenu.push( { type: 'separator' }, { label: 'Preferences...', accelerator: 'CmdOrCtrl+,', click() { mainWindow.webContents.send('goTo', '/preferences') } } ) } const menu = Menu.buildFromTemplate(template) Menu.setApplicationMenu(menu) }