From 0e52425eb1e92b1996dad9c2d65eed02c2bf0cee Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Fri, 26 Apr 2019 22:26:00 +0300 Subject: [PATCH] Add copy & paste support via menu --- js/menu-service.js | 67 ++++++++++++++++++++++++++++++++++++++++++++++ main.js | 4 +++ 2 files changed, 71 insertions(+) create mode 100644 js/menu-service.js diff --git a/js/menu-service.js b/js/menu-service.js new file mode 100644 index 0000000..3ff89ca --- /dev/null +++ b/js/menu-service.js @@ -0,0 +1,67 @@ +/** + * Module for Menu functions. + */ + +const {app, Menu} = require('electron') + +let menuService = {} + +menuService.createMenu = () => { + const application = { + label: 'Chimeverse', + submenu: [ + { + label: 'Quit', + accelerator: 'Command+Q', + click: () => { + app.quit() + }, + }, + ], + } + + const edit = { + label: 'Edit', + submenu: [ + { + label: 'Undo', + accelerator: 'CmdOrCtrl+Z', + role: 'undo', + }, + { + label: 'Redo', + accelerator: 'Shift+CmdOrCtrl+Z', + role: 'redo', + }, + { + type: 'separator', + }, + { + label: 'Cut', + accelerator: 'CmdOrCtrl+X', + role: 'cut', + }, + { + label: 'Copy', + accelerator: 'CmdOrCtrl+C', + role: 'copy', + }, + { + label: 'Paste', + accelerator: 'CmdOrCtrl+V', + role: 'paste', + }, + { + label: 'Select All', + accelerator: 'CmdOrCtrl+A', + role: 'selectAll', + }, + ], + } + + const template = [application, edit] + + Menu.setApplicationMenu(Menu.buildFromTemplate(template)) +} + +module.exports = menuService \ No newline at end of file diff --git a/main.js b/main.js index e317a01..83ca652 100644 --- a/main.js +++ b/main.js @@ -7,6 +7,7 @@ let mainWindow // Require other app modules const trayService = require(__dirname+'/js/tray-service') +const menuService = require(__dirname+'/js/menu-service') function initApp() { createWindow() @@ -28,6 +29,9 @@ function createWindow () { // Init tray trayService.initTray(mainWindow) + // Init menu + menuService.createMenu() + // Open the DevTools. // mainWindow.webContents.openDevTools()