From 73fd8562abc5d8fa338f9a3181498ad47a43b4f9 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Wed, 9 Nov 2011 12:19:33 -0800 Subject: [PATCH] atom.event --- extensions/gemfile/gemfile.coffee | 3 +-- extensions/tabs/tabs.coffee | 9 ++++----- src/browser.coffee | 5 ++--- src/editor.coffee | 13 ++++++------- src/event.coffee | 8 ++++---- src/modal.coffee | 6 ++---- src/startup.coffee | 4 +++- src/window.coffee | 9 ++++----- 8 files changed, 26 insertions(+), 31 deletions(-) diff --git a/extensions/gemfile/gemfile.coffee b/extensions/gemfile/gemfile.coffee index bca26d1ff..792668a4c 100644 --- a/extensions/gemfile/gemfile.coffee +++ b/extensions/gemfile/gemfile.coffee @@ -4,13 +4,12 @@ _ = require 'underscore' fs = require 'fs' Extension = require 'extension' KeyBinder = require 'key-binder' -Event = require 'event' Watcher = require 'watcher' module.exports = class Gemfile extends Extension constructor: -> - Event.on 'extensions:loaded', @addRubyGemsDir + atom.event.on 'extensions:loaded', @addRubyGemsDir addRubyGemsDir: => paths = window.extensions.Tree.paths diff --git a/extensions/tabs/tabs.coffee b/extensions/tabs/tabs.coffee index 1c76c712b..c7b50592e 100644 --- a/extensions/tabs/tabs.coffee +++ b/extensions/tabs/tabs.coffee @@ -2,7 +2,6 @@ $ = require 'jquery' Extension = require 'extension' KeyBinder = require 'key-binder' -Event = require 'event' TabsPane = require 'tabs/tabs-pane' fs = require 'fs' @@ -15,19 +14,19 @@ class Tabs extends Extension @pane = new TabsPane @ - Event.on 'editor:bufferAdd', (e) => + atom.event.on 'editor:bufferAdd', (e) => path = e.details @pane.addTab path - Event.on 'editor:bufferFocus', (e) => + atom.event.on 'editor:bufferFocus', (e) => path = e.details @pane.addTab path - Event.on 'editor:bufferRemove', (e) => + atom.event.on 'editor:bufferRemove', (e) => path = e.details @pane.removeTab path - Event.on 'browser:focus', (e) => + atom.event.on 'browser:focus', (e) => path = e.details @pane.addTab path diff --git a/src/browser.coffee b/src/browser.coffee index f801710d0..633623ef1 100644 --- a/src/browser.coffee +++ b/src/browser.coffee @@ -1,6 +1,5 @@ $ = require 'jquery' -Event = require 'event' Pane = require 'pane' module.exports = @@ -15,7 +14,7 @@ class Browser extends Pane /^https?:\/\//.test path constructor: -> - Event.on "window:open", (e) => + atom.event.on "window:open", (e) => path = e.details return unless @constructor.isPathUrl path @@ -25,4 +24,4 @@ class Browser extends Pane @show() - Event.trigger "browser:focus", path + atom.event.trigger "browser:focus", path diff --git a/src/editor.coffee b/src/editor.coffee index cb1a68c6d..8a8fb690e 100644 --- a/src/editor.coffee +++ b/src/editor.coffee @@ -3,7 +3,6 @@ _ = require 'underscore' fs = require 'fs' ace = require 'ace/ace' -Event = require 'event' KeyBinder = require 'key-binder' Storage = require 'storage' Pane = require 'pane' @@ -39,12 +38,12 @@ class Editor extends Pane @ace.setShowInvisibles(true) @ace.setPrintMarginColumn 78 - Event.on 'window:open', (e) => + atom.event.on 'window:open', (e) => path = e.details @addBuffer e.details if fs.isFile path - Event.on 'window:close', (e) => @removeBuffer e.details - Event.on 'editor:bufferFocus', (e) => @resize() + atom.event.on 'window:close', (e) => @removeBuffer e.details + atom.event.on 'editor:bufferFocus', (e) => @resize() # Resize editor when panes are added/removed el = document.body @@ -112,7 +111,7 @@ class Editor extends Pane Storage.set @openPathsKey, openPaths buffer.on 'change', -> buffer.$atom_dirty = true - Event.trigger "editor:bufferAdd", path + atom.event.trigger "editor:bufferAdd", path @focusBuffer path @@ -145,7 +144,7 @@ class Editor extends Pane openPaths = Storage.get @openPathsKey, [] Storage.set @openPathsKey, _.without openPaths, path - Event.trigger "editor:bufferRemove", path + atom.event.trigger "editor:bufferRemove", path if path is @activePath newActivePath = Object.keys(@buffers)[0] @@ -164,7 +163,7 @@ class Editor extends Pane @ace.setSession buffer Storage.set @focusedPathKey, path - Event.trigger "editor:bufferFocus", path + atom.event.trigger "editor:bufferFocus", path save: (path) -> path ?= @activePath diff --git a/src/event.coffee b/src/event.coffee index 7220c548c..bac8cf59f 100644 --- a/src/event.coffee +++ b/src/event.coffee @@ -3,16 +3,16 @@ module.exports = class Event - @events: {} + events: {} - @on: (name, callback) -> + on: (name, callback) -> window.document.addEventListener name, callback callback - @off: (name, callback) -> + off: (name, callback) -> window.document.removeEventListener name, callback - @trigger: (name, data, bubbleToApp=true) -> + trigger: (name, data, bubbleToApp=true) -> if bubbleToApp and name.match /^app:/ OSX.NSApp.triggerGlobalEvent_data name, data return diff --git a/src/modal.coffee b/src/modal.coffee index 01768c598..fb0b1b89a 100644 --- a/src/modal.coffee +++ b/src/modal.coffee @@ -1,7 +1,5 @@ $ = require 'jquery' -Event = require 'event' - module.exports = class Modal template: '' @@ -37,7 +35,7 @@ class Modal $('#modal input').focus() @resize() - Event.trigger 'modal:show', @ + atom.event.trigger 'modal:show', @ resize: -> $('#modal').css @@ -50,7 +48,7 @@ class Modal $('#modal-overlay').fadeOut 200, -> $(this).remove() $(document).unbind '.modal' $(window).unbind '.modal' - Event.trigger 'modal:hide', @ + atom.event.trigger 'modal:hide', @ toggle: -> if @showing then @hide() else @show() diff --git a/src/startup.coffee b/src/startup.coffee index 4f54d8a76..b2550817e 100644 --- a/src/startup.coffee +++ b/src/startup.coffee @@ -1,8 +1,10 @@ # Like sands through the hourglass, so are the days of our lives. App = require 'app' +Event = require 'event' Native = require 'native' window.atom = {} window.atom.app = new App -window.atom.native = new Native \ No newline at end of file +window.atom.native = new Native +window.atom.event = new Event \ No newline at end of file diff --git a/src/window.coffee b/src/window.coffee index 765a459e2..dbdd6b89f 100644 --- a/src/window.coffee +++ b/src/window.coffee @@ -1,7 +1,6 @@ Browser = require 'browser' Editor = require 'editor' Extension = require 'extension' -Event = require 'event' KeyBinder = require 'key-binder' Native = require 'native' Storage = require 'storage' @@ -77,7 +76,7 @@ windowAdditions = console.warn "window: Extension #{extension.constructor.name} failed to startup." console.warn error - Event.trigger 'extensions:loaded' + atom.event.trigger 'extensions:loaded' loadKeyBindings: -> KeyBinder.load "#{@appRoot}/static/key-bindings.coffee" @@ -101,18 +100,18 @@ windowAdditions = open: (path) -> $atomController.window.makeKeyAndOrderFront $atomController - Event.trigger 'window:open', path + atom.event.trigger 'window:open', path close: (path) -> @shutdown() $atomController.close - Event.trigger 'window:close', path + atom.event.trigger 'window:close', path handleKeyEvent: -> KeyBinder.handleEvent.apply KeyBinder, arguments triggerEvent: -> - Event.trigger arguments... + atom.event.trigger arguments... canOpen: (path) -> parent = @path.replace(/([^\/])$/, "$1/")