|
Size: 2106
Comment:
|
Size: 2212
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 9: | Line 9: |
| == Usage == | == Menu == |
| Line 112: | Line 112: |
| ---- == See also == [[https://www.electronjs.org/docs/latest/api/menu|Electron API for Menu]] |
Electron Menu
Contents
Menu
const { app, BrowserWindow, 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, BrowserWindow, menu } = 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 { app, BrowserWindow, menu } = require("electron");
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 { app, BrowserWindow, menu } = require("electron");
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.
