|
Size: 2212
Comment:
|
Size: 2060
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 12: | Line 12: |
| const { app, BrowserWindow, menu, shell } = require("electron"); | const { app, Menu, shell } = require("electron"); |
| Line 40: | Line 40: |
| Line 46: | Line 47: |
| const { app, BrowserWindow, menu } = require("electron"); | const { app } = require("electron"); |
| Line 72: | Line 74: |
| const { app, BrowserWindow, menu } = require("electron"); |
|
| Line 93: | Line 93: |
| const { app, BrowserWindow, menu } = require("electron"); |
Electron Menu
Contents
Menu
const { app, Menu, shell } = require("electron");
const template = [
{
label: 'File',
submenu: [
{
label: 'Exit',
click() {
app.quit()
}
}
]
},
{
label: 'Help',
submenu: [
{
label: 'Learn More',
click: async () => {
await shell.openExternal('https://example.org');
}
}
]
}
];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);For a platform-specific conditional menu, try:
const { app } = require("electron");
const isMac = process.platform === 'darwin';
const template = [
...(isMac ? [{
label: app.name,
submenu: [
{ role: 'about' },
{ role: 'quit' }
]
}] : []),
{
label: 'File',
submenu: [
isMac ? { role: 'close' } : { role: 'quit' }
]
}
];
Accelerators
To set a shortcut key combination on some menu item, use the accelerator attribute.
const template = [
{
label: 'File',
submenu: [
{
label: 'Save',
accelerator: 'CmdOrCtrl+S',
click: saveFile()
}
]
}
]Apple computers have a unique keyboard. End users will expect the Command key to work like the Control key for everyone else. To simplify this common pattern, CmdOrCtrl is a valid accelerator (as seen above).
Nonetheless, for a platform-specific shortcut, try:
const isMac = process.platform === 'darwin';
const template = [
{
label: 'File',
submenu: [
{
role: 'Save File',
accelerator: isMac ? 'Cmd+S' : 'Ctrl+S',
click: saveFile()
}
]
}
]For alternatives, see electron-localshortcut.
