mirror of
https://github.com/heyman/heynote.git
synced 2025-04-10 12:58:17 +02:00
Manually create app menu (without the Close window menu item)
This commit is contained in:
parent
d17bade1d6
commit
35260cf066
@ -1,6 +1,7 @@
|
|||||||
import { app, BrowserWindow, shell, ipcMain, Menu, nativeTheme } from 'electron'
|
import { app, BrowserWindow, shell, ipcMain, Menu, nativeTheme } from 'electron'
|
||||||
import { release } from 'node:os'
|
import { release } from 'node:os'
|
||||||
import { join } from 'node:path'
|
import { join } from 'node:path'
|
||||||
|
import menu from './menu'
|
||||||
|
|
||||||
// The built directory structure
|
// The built directory structure
|
||||||
//
|
//
|
||||||
@ -29,8 +30,8 @@ if (!process.env.VITE_DEV_SERVER_URL && !app.requestSingleInstanceLock()) {
|
|||||||
process.exit(0)
|
process.exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove default menu
|
// Set custom application menu
|
||||||
//Menu.setApplicationMenu(null)
|
Menu.setApplicationMenu(menu)
|
||||||
|
|
||||||
// Remove electron security warnings
|
// Remove electron security warnings
|
||||||
// This warning only shows in development mode
|
// This warning only shows in development mode
|
||||||
|
103
electron/main/menu.js
Normal file
103
electron/main/menu.js
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
const { app, Menu } = require('electron')
|
||||||
|
|
||||||
|
const isMac = process.platform === 'darwin'
|
||||||
|
|
||||||
|
const template = [
|
||||||
|
// { role: 'appMenu' }
|
||||||
|
...(isMac ? [{
|
||||||
|
label: app.name,
|
||||||
|
submenu: [
|
||||||
|
{ role: 'about' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'services' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'hide' },
|
||||||
|
{ role: 'hideOthers' },
|
||||||
|
{ role: 'unhide' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'quit' }
|
||||||
|
]
|
||||||
|
}] : []),
|
||||||
|
// { role: 'fileMenu' }
|
||||||
|
/*{
|
||||||
|
label: 'File',
|
||||||
|
submenu: [
|
||||||
|
isMac ? { role: 'close' } : { role: 'quit' }
|
||||||
|
]
|
||||||
|
},*/
|
||||||
|
// { role: 'editMenu' }
|
||||||
|
{
|
||||||
|
label: 'Edit',
|
||||||
|
submenu: [
|
||||||
|
{ role: 'undo' },
|
||||||
|
{ role: 'redo' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'cut' },
|
||||||
|
{ role: 'copy' },
|
||||||
|
{ role: 'paste' },
|
||||||
|
...(isMac ? [
|
||||||
|
{ role: 'pasteAndMatchStyle' },
|
||||||
|
{ role: 'delete' },
|
||||||
|
{ role: 'selectAll' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{
|
||||||
|
label: 'Speech',
|
||||||
|
submenu: [
|
||||||
|
{ role: 'startSpeaking' },
|
||||||
|
{ role: 'stopSpeaking' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
] : [
|
||||||
|
{ role: 'delete' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'selectAll' }
|
||||||
|
])
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// { role: 'viewMenu' }
|
||||||
|
{
|
||||||
|
label: 'View',
|
||||||
|
submenu: [
|
||||||
|
{ role: 'reload' },
|
||||||
|
{ role: 'forceReload' },
|
||||||
|
{ role: 'toggleDevTools' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'resetZoom' },
|
||||||
|
{ role: 'zoomIn' },
|
||||||
|
{ role: 'zoomOut' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'togglefullscreen' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// { role: 'windowMenu' }
|
||||||
|
{
|
||||||
|
label: 'Window',
|
||||||
|
submenu: [
|
||||||
|
{ role: 'minimize' },
|
||||||
|
{ role: 'zoom' },
|
||||||
|
...(isMac ? [
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'front' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'window' }
|
||||||
|
] : [
|
||||||
|
{ role: 'close' }
|
||||||
|
])
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'help',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'Learn More',
|
||||||
|
click: async () => {
|
||||||
|
const { shell } = require('electron')
|
||||||
|
await shell.openExternal('https://heynote.com')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
export default Menu.buildFromTemplate(template)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user