From 64fe41da6f4827ae2da0c2f65a165cf3522ddcd1 Mon Sep 17 00:00:00 2001 From: Yuya Ochiai Date: Tue, 13 Oct 2015 22:32:48 +0900 Subject: [PATCH] =?UTF-8?q?=E6=A8=99=E6=BA=96=E7=9A=84=E3=81=AA=E3=82=AD?= =?UTF-8?q?=E3=83=BC=E3=83=9C=E3=83=BC=E3=83=89=E3=82=B7=E3=83=A7=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=82=AB=E3=83=83=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app-menu.js | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++ main.js | 26 ++----------- 2 files changed, 113 insertions(+), 23 deletions(-) create mode 100644 app-menu.js diff --git a/app-menu.js b/app-menu.js new file mode 100644 index 00000000..c9416cfd --- /dev/null +++ b/app-menu.js @@ -0,0 +1,110 @@ +'use strict'; + +var Menu = require('menu'); + +var createMenu = function(mainWindow){ + return Menu.buildFromTemplate(createTemplate(mainWindow)); +} + +var createTemplate = function(mainWindow){ + var first_menu_name = (process.platform == 'darwin') ? require('app').getName() : 'File'; + var template = []; + template.push({ + label: first_menu_name, + submenu: [ + { + label: 'Settings', + click: function(item, focusedWindow){ + mainWindow.loadUrl(__dirname + '/settings.html'); + } + }, + { + label: 'Quit', + accelerator: 'CmdOrCtrl+Q', + click: function(item, focusedWindow){ + require('app').quit(); + } + } + ] + }); + template.push({ + 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' + }, + ] + }); + template.push({ + label: 'View', + submenu: [ + { + label: 'Reload', + accelerator: 'CmdOrCtrl+R', + click: function(item, focusedWindow) { + if (focusedWindow) + focusedWindow.reload(); + } + }, + { + label: 'Toggle Full Screen', + accelerator: (function() { + if (process.platform == 'darwin') + return 'Ctrl+Command+F'; + else + return 'F11'; + })(), + click: function(item, focusedWindow) { + if (focusedWindow) + focusedWindow.setFullScreen(!focusedWindow.isFullScreen()); + } + }, + { + label: 'Toggle Developer Tools', + accelerator: (function() { + if (process.platform == 'darwin') + return 'Alt+Command+I'; + else + return 'Ctrl+Shift+I'; + })(), + click: function(item, focusedWindow) { + if (focusedWindow) + focusedWindow.toggleDevTools(); + } + }, + ] + }); + return template; +} + +module.exports = { createMenu: createMenu }; diff --git a/main.js b/main.js index 726d4a32..9f9a612e 100644 --- a/main.js +++ b/main.js @@ -3,6 +3,7 @@ var app = require('app'); // Module to control application life. var BrowserWindow = require('browser-window'); // Module to create native browser window. var Menu = require('menu'); +var appMenu = require('./app-menu'); // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. @@ -63,29 +64,8 @@ app.on('ready', function() { } }); - if(process.platform==='win32'){ - var menu = Menu.buildFromTemplate([ - { - label: 'Menu', - submenu: [ - { - label: 'Settings', - click: function(item, focusedWindow){ - mainWindow.loadUrl(__dirname + '/settings.html'); - } - }, - { - label: 'Quit', - accelerator: 'Ctrl + Q', - click: function(item, focusedWindow){ - app.quit(); - } - } - ] - } - ]); - Menu.setApplicationMenu(menu); - } + var menu = appMenu.createMenu(mainWindow); + Menu.setApplicationMenu(menu); // Emitted when the window is closed. mainWindow.on('closed', function() {