123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- const { shell, Menu } = require('electron')
- const setDefaultApplicationMenu = () => {
- if (Menu.getApplicationMenu()) return
- 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'
- }
- ]
- },
- {
- role: 'help',
- submenu: [
- {
- label: 'Learn More',
- click () {
- shell.openExternal('https://electronjs.org')
- }
- },
- {
- label: 'Documentation',
- click () {
- shell.openExternal(
- `https://github.com/electron/electron/tree/v${process.versions.electron}/docs#readme`
- )
- }
- },
- {
- label: 'Community Discussions',
- click () {
- shell.openExternal('https://discuss.atom.io/c/electron')
- }
- },
- {
- label: 'Search Issues',
- click () {
- shell.openExternal('https://github.com/electron/electron/issues')
- }
- }
- ]
- }
- ]
- if (process.platform === 'darwin') {
- template.unshift({
- label: 'Electron',
- submenu: [
- {
- role: 'about'
- },
- {
- type: 'separator'
- },
- {
- role: 'services'
- },
- {
- type: 'separator'
- },
- {
- role: 'hide'
- },
- {
- role: 'hideothers'
- },
- {
- role: 'unhide'
- },
- {
- type: 'separator'
- },
- {
- role: 'quit'
- }
- ]
- })
- template[1].submenu.push({
- type: 'separator'
- }, {
- label: 'Speech',
- submenu: [
- {
- role: 'startspeaking'
- },
- {
- role: 'stopspeaking'
- }
- ]
- })
- template[3].submenu = [
- {
- role: 'close'
- },
- {
- role: 'minimize'
- },
- {
- role: 'zoom'
- },
- {
- type: 'separator'
- },
- {
- role: 'front'
- }
- ]
- } else {
- template.unshift({
- label: 'File',
- submenu: [{
- role: 'quit'
- }]
- })
- }
- const menu = Menu.buildFromTemplate(template)
- Menu.setApplicationMenu(menu)
- }
- module.exports = {
- setDefaultApplicationMenu
- }
|