diff --git a/src/app.ts b/src/app.ts index c23e578a..eb2bd308 100644 --- a/src/app.ts +++ b/src/app.ts @@ -7,6 +7,7 @@ import server from './server/main' import { USER_DIR } from './server/constant' import * as updater from './updater' import { getAccelerator, registerShortcut } from './shortcut' +import { mainMenus, inputMenu, selectionMenu } from './menus'; const opn = require('opn') const isMacos = os.platform() === 'darwin' @@ -30,8 +31,7 @@ const getUrl = () => { return `http://localhost:${isDev ? devFrontendPort : backendPort}` + (query ? `?${query}` : '') } -// 去掉每个窗口默认的菜单 -Menu.setApplicationMenu(null) +Menu.setApplicationMenu(mainMenus) // 主窗口 let win: BrowserWindow | null = null @@ -83,21 +83,6 @@ const createWindow = () => { win = null }) - const selectionMenu = Menu.buildFromTemplate([ - { role: 'copy', label: '复制' }, - ]) - - const inputMenu = Menu.buildFromTemplate([ - { role: 'copy', label: '复制' }, - { role: 'paste', label: '粘贴' }, - { role: 'cut', label: '剪切' }, - { type: 'separator' }, - { role: 'undo' , label: '撤销' }, - { role: 'redo', label: '重做'}, - { type: 'separator' }, - { role: 'selectAll', label: '全选' }, - ]) - win.webContents.on('context-menu', (e, props) => { const { selectionText, isEditable } = props if (isEditable) { diff --git a/src/menus.ts b/src/menus.ts new file mode 100644 index 00000000..50928b83 --- /dev/null +++ b/src/menus.ts @@ -0,0 +1,37 @@ +import { Menu } from 'electron' + +export const selectionMenu = Menu.buildFromTemplate([ + { role: 'copy' }, +]) + +export const inputMenu = Menu.buildFromTemplate([ + { role: 'copy' }, + { role: 'paste' }, + { role: 'cut' }, + { type: 'separator' }, + { role: 'undo' }, + { role: 'redo'}, + { type: 'separator' }, + { role: 'selectAll' }, +]) + +export const mainMenus = Menu.buildFromTemplate([ + { + label: "Application", + submenu: [ + { role: "quit", accelerator: "Command+Q" } + ] + }, + { + label: "Edit", + submenu: [ + { role: "undo", accelerator: "CmdOrCtrl+Z", }, + { role: "redo", accelerator: "Shift+CmdOrCtrl+Z", }, + { type: "separator" }, + { role: "cut", accelerator: "CmdOrCtrl+X", }, + { role: "copy", accelerator: "CmdOrCtrl+C", }, + { role: "paste", accelerator: "CmdOrCtrl+V", }, + { role: "selectAll", accelerator: "CmdOrCtrl+A" } + ] + } +]);