From ffeaf7ed1747ad74dde465d2f68c5af2b804f18e Mon Sep 17 00:00:00 2001 From: Corey Johnson & Nathan Sobo Date: Wed, 29 Feb 2012 13:47:48 -0800 Subject: [PATCH] Remove menu code and tests --- spec/atom/window-spec.coffee | 35 --------------------- spec/spec-helper.coffee | 1 - spec/stdlib/native-spec.coffee | 57 ---------------------------------- src/atom/window.coffee | 31 +++--------------- src/stdlib/native.coffee | 40 +----------------------- 5 files changed, 5 insertions(+), 159 deletions(-) diff --git a/spec/atom/window-spec.coffee b/spec/atom/window-spec.coffee index 8f28796fc..242f714d5 100644 --- a/spec/atom/window-spec.coffee +++ b/spec/atom/window-spec.coffee @@ -30,38 +30,3 @@ describe "Window", -> requireStylesheet('atom.css') expect($('head style').length).toBe 1 - - - xdescribe "bindMenuItem(path, keyPattern, action)", -> - it "causes the given menu item to be added to the menu when the window is focused and removed when it is blurred", -> - addedPaths = [] - spyOn(atom.native, 'addMenuItem').andCallFake (path) -> addedPaths.push(path) - - window.bindMenuItem 'Submenu 1 > Item 1' - window.bindMenuItem 'Submenu 1 > Item 2' - window.bindMenuItem 'Submenu 2 > Item 1' - - expect(atom.native.addMenuItem).not.toHaveBeenCalled() - - $(window).focus() - - expect(atom.native.addMenuItem).toHaveBeenCalled() - expect(addedPaths).toContain('Submenu 1 > Item 1') - expect(addedPaths).toContain('Submenu 1 > Item 2') - expect(addedPaths).toContain('Submenu 2 > Item 1') - - spyOn(atom.native, 'resetMainMenu') - - $(window).blur() - - expect(atom.native.resetMainMenu).toHaveBeenCalled() - - it "causes the given action to be invoked when the menu item is selected", -> - handler = jasmine.createSpy('menuItemHandler') - window.bindMenuItem 'Submenu > Item', null, handler - $(window).focus() - - OSX.NSApp.mainMenu.itemWithTitle('Submenu').submenu.performActionForItemAtIndex(0) - - expect(handler).toHaveBeenCalled() - diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index 55274b355..a1385c158 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -13,7 +13,6 @@ beforeEach -> window.resetTimeouts() afterEach -> - (new Native).resetMainMenu() $('#jasmine-content').empty() # Use underscore's definition of equality for toEqual assertions diff --git a/spec/stdlib/native-spec.coffee b/spec/stdlib/native-spec.coffee index 5aa9dfc9f..083d446a7 100644 --- a/spec/stdlib/native-spec.coffee +++ b/spec/stdlib/native-spec.coffee @@ -5,60 +5,3 @@ describe "Native", -> beforeEach -> nativeModule = new Native - - xdescribe "addMenuItem(path, keyPattern)", -> - mainMenu = null - mainMenuItems = null - - beforeEach -> - mainMenu = OSX.NSApp.mainMenu - mainMenuItems = mainMenu.itemArray - - it "adds the item at the path terminus to the main menu, adding submenus as needed", -> - initialMenuCount = mainMenu.itemArray.length - - nativeModule.addMenuItem('Submenu 1 > Item 1') - - expect(mainMenu.itemArray.length).toBe initialMenuCount + 1 - submenu1 = mainMenu.itemWithTitle('Submenu 1').submenu - item1 = submenu1.itemWithTitle('Item 1') - expect(item1).toBeDefined() - - nativeModule.addMenuItem('Submenu 1 > Item 2') - - expect(mainMenu.itemArray.length).toBe initialMenuCount + 1 - expect(submenu1.itemArray.length).toBe 2 - item1 = submenu1.itemWithTitle('Item 2') - expect(item1).toBeDefined() - - nativeModule.addMenuItem('Submenu 2 > Item 1') - - expect(mainMenu.itemArray.length).toBe initialMenuCount + 2 - expect(submenu1.itemArray.length).toBe 2 - submenu1 = mainMenu.itemWithTitle('Submenu 2').submenu - item1 = submenu1.itemWithTitle('Item 1') - expect(item1).toBeDefined() - - xit "adds a key equivalent to menu item when one is given", -> - nativeModule.addMenuItem('Submenu 1 > Item 1', "meta-r") - - submenu1 = mainMenu.itemWithTitle('Submenu 1').submenu - item1 = submenu1.itemWithTitle('Item 1') - - expect(item1.keyEquivalent.valueOf()).toBe 'r' - expect(item1.keyEquivalentModifierMask.valueOf()).toBe OSX.NSCommandKeyMask - - it "does not add a key equivalent to menu item when no pattern is given", -> - nativeModule.addMenuItem('Submenu 2 > Item 2') - submenu2 = mainMenu.itemWithTitle('Submenu 2').submenu - item2 = submenu2.itemWithTitle('Item 2') - - expect(item2.keyEquivalent.valueOf()).toBe 0 - expect(item2.keyEquivalentModifierMask).toBe 0 - - it "does not add the same item twice", -> - nativeModule.addMenuItem('Submenu > Item') - expect(mainMenu.itemWithTitle('Submenu').submenu.itemArray.length).toBe(1) - nativeModule.addMenuItem('Submenu > Item') - expect(mainMenu.itemWithTitle('Submenu').submenu.itemArray.length).toBe(1) - diff --git a/src/atom/window.coffee b/src/atom/window.coffee index 905dc473b..9c31dc499 100644 --- a/src/atom/window.coffee +++ b/src/atom/window.coffee @@ -10,16 +10,15 @@ RootView = require 'root-view' windowAdditions = rootView: null - menuItemActions: null keymap: null startup: (url) -> - @menuItemActions = {} - @setupKeymap() @attachRootView(url) - @registerEventHandlers() - @bindMenuItems() + + $(window).on 'close', => + @shutdown() + @close() $(window).focus() atom.windowOpened this @@ -44,27 +43,6 @@ windowAdditions = return if $("head style[path='#{fullPath}']").length $('head').append "" - bindMenuItems: -> - # we want to integrate this better with keybindings - # @bindMenuItem "File > Save", "meta+s", => @rootView.editor.save() - - bindMenuItem: (path, pattern, action) -> - @menuItemActions[path] = {action: action, pattern: pattern} - - registerEventHandlers: -> - $(window).on 'close', => - @shutdown() - @close() - $(window).focus => @registerMenuItems() - $(window).blur -> atom.native.resetMainMenu() - - registerMenuItems: -> - for path, {pattern} of @menuItemActions - atom.native.addMenuItem(path, pattern) - - performActionForMenuItemPath: (path) -> - @menuItemActions[path].action() - showConsole: -> # $atomController.webView.inspector.showConsole true @@ -75,7 +53,6 @@ for key, value of windowAdditions console.warn "DOMWindow already has a key named `#{key}`" if window[key] window[key] = value - requireStylesheet 'reset.css' requireStylesheet 'atom.css' diff --git a/src/stdlib/native.coffee b/src/stdlib/native.coffee index f14d3c42e..fc3e0e8e0 100644 --- a/src/stdlib/native.coffee +++ b/src/stdlib/native.coffee @@ -35,42 +35,4 @@ class Native atom.native.writeToPasteboard text readFromPasteboard: -> - atom.native.readFromPasteboard() - - resetMainMenu: (menu) -> - # OSX.NSApp.resetMainMenu - - addMenuItem: (itemPath, keyPattern) -> - itemPathComponents = itemPath.split /\s*>\s*/ - submenu = @buildSubmenuPath(OSX.NSApp.mainMenu, itemPathComponents[0..-2]) - title = _.last(itemPathComponents) - unless submenu.itemWithTitle(title) - item = OSX.AtomMenuItem.alloc.initWithTitle_itemPath(title, itemPath).autorelease - item.setKeyEquivalentModifierMask 0 # Because in Cocoa defaults it to NSCommandKeyMask - - if keyPattern - bindingSet = new (require('binding-set'))("*", {}) - keys = bindingSet.parseKeyPattern keyPattern - - modifierMask = (keys.metaKey and OSX.NSCommandKeyMask ) | - (keys.shiftKey and OSX.NSShiftKeyMask) | - (keys.altKey and OSX.NSAlternateKeyMask) | - (keys.ctrlKey and OSX.NSControlKeyMask) - - item.setKeyEquivalent keys.key - item.setKeyEquivalentModifierMask modifierMask - submenu.addItem(item) - - buildSubmenuPath: (menu, path) -> - return menu if path.length == 0 - - first = path[0] - unless item = menu.itemWithTitle(first) - item = OSX.AtomMenuItem.alloc.initWithTitle_action_keyEquivalent(first, null, "").autorelease - menu.addItem(item) - unless submenu = item.submenu - submenu = OSX.NSMenu.alloc.initWithTitle(first) - item.submenu = submenu - - @buildSubmenuPath(submenu, path[1..-1]) - + atom.native.readFromPasteboard() \ No newline at end of file