From 2d14f6e768a9741f4c192cd501806f3fbda9bfd3 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 17 May 2013 22:14:09 +0800 Subject: [PATCH] Replace default menu with custom built menu. --- src/main.coffee | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/src/main.coffee b/src/main.coffee index d4ce9e1fd..b2a4e78f3 100644 --- a/src/main.coffee +++ b/src/main.coffee @@ -2,6 +2,7 @@ app = require 'app' delegate = require 'atom_delegate' path = require 'path' BrowserWindow = require 'browser_window' +Menu = require 'menu' ipc = require 'ipc' dialog = require 'dialog' optimist = require 'optimist' @@ -15,6 +16,7 @@ class BrowserMain @setupJavaScriptArguments() @parseCommandLine() + @buildApplicationmenu() @setupNodePaths() @handleEvents() @@ -26,6 +28,63 @@ class BrowserMain args = optimist(modifiedArgv).argv @resourcePath = args['resource-path'] + buildApplicationmenu: -> + template = [ + label: 'Atom' + submenu: [ + label: 'About Atom' + selector: 'orderFrontStandardAboutPanel:' + , + type: 'separator' + , + label: 'Hide Atom Shell' + accelerator: 'Command+H' + selector: 'hide:' + , + label: 'Hide Others' + accelerator: 'Command+Shift+H' + selector: 'hideOtherApplications:' + , + label: 'Show All' + selector: 'unhideAllApplications:' + , + type: 'separator' + , + label: 'Quit' + accelerator: 'Command+Q' + click: -> app.quit() + ] + , + label: 'View' + submenu: [ + label: 'Reload' + accelerator: 'Command+R' + click: -> BrowserWindow.getFocusedWindow()?.reloadIgnoringCache() + , + label: 'Toggle DevTools', + accelerator: 'Alt+Command+I', + click: -> BrowserWindow.getFocusedWindow()?.toggleDevTools() + ] + , + label: 'Window' + submenu: [ + label: 'Minimize' + accelerator: 'Command+M' + selector: 'performMiniaturize:' + , + label: 'Close' + accelerator: 'Command+W' + selector: 'performClose:' + , + type: 'separator' + , + label: 'Bring All to Front' + selector: 'arrangeInFront:' + ] + ] + + @menu = Menu.buildFromTemplate template + setupNodePaths: -> resourcePaths = [ 'src/stdlib', @@ -100,6 +159,8 @@ class AtomWindow browserMain = new BrowserMain delegate.browserMainParts.preMainMessageLoopRun = -> + Menu.setApplicationMenu browserMain.menu + new AtomWindow bootstrapScript: 'window-bootstrap', resourcePath: browserMain.resourcePath