From 6b08d18f4be42f417ff814652ddd76c3f8beff50 Mon Sep 17 00:00:00 2001 From: probablycorey Date: Fri, 24 May 2013 14:46:25 -0700 Subject: [PATCH] Move AtomWindow to it's own file --- src/atom-application.coffee | 36 ++++++------------------------------ src/atom-window.coffee | 32 ++++++++++++++++++++++++++++++++ src/main.coffee | 2 +- 3 files changed, 39 insertions(+), 31 deletions(-) create mode 100644 src/atom-window.coffee diff --git a/src/atom-application.coffee b/src/atom-application.coffee index 54019b1b5..24a56ec82 100644 --- a/src/atom-application.coffee +++ b/src/atom-application.coffee @@ -1,3 +1,4 @@ +AtomWindow = require 'atom-window' BrowserWindow = require 'browser_window' Menu = require 'menu' app = require 'app' @@ -11,6 +12,8 @@ atomApplication = null module.exports = class AtomApplication + @removeWindow: (window) -> atomApplication.removeWindow(window) + windows: null menu: null resourcePath: null @@ -38,6 +41,9 @@ class AtomApplication else @open(@pathsToOpen) + removeWindow: (window) -> + @windows.splice @windows.indexOf(window), 1 + getHomeDir: -> process.env[if process.platform is 'win32' then 'USERPROFILE' else 'HOME'] @@ -162,7 +168,6 @@ class AtomApplication pathsToOpen ?= [null] for pathToOpen in pathsToOpen pathToOpen = path.resolve(@executedFrom, pathToOpen) if @executedFrom and pathToOpen - atomWindow = new AtomWindow pathToOpen: pathToOpen bootstrapScript: 'window-bootstrap', @@ -186,32 +191,3 @@ class AtomApplication specWindow.browserWindow.show() @windows.push specWindow - -class AtomWindow - browserWindow: null - - constructor: ({bootstrapScript, resourcePath, pathToOpen, exitWhenDone, @isSpec}) -> - @browserWindow = new BrowserWindow show: false, title: 'Atom' - @handleEvents() - - url = "file://#{resourcePath}/static/index.html?bootstrapScript=#{bootstrapScript}&resourcePath=#{resourcePath}" - url += "&pathToOpen=#{pathToOpen}" if pathToOpen - url += '&exitWhenDone=1' if exitWhenDone - - @browserWindow.loadUrl url - - handleEvents: -> - @browserWindow.on 'destroyed', => - atomApplication.windows.splice atomApplication.windows.indexOf(this), 1 - - if @isSpec - # Spec window's web view should always have focus - @browserWindow.on 'blur', => - @browserWindow.focusOnWebView() - else - @browserWindow.on 'close', (event) => - event.preventDefault() - @sendCommand 'window:close' - - sendCommand: (command) -> - ipc.sendChannel @browserWindow.getProcessId(), @browserWindow.getRoutingId(), 'command', command diff --git a/src/atom-window.coffee b/src/atom-window.coffee new file mode 100644 index 000000000..dc787e833 --- /dev/null +++ b/src/atom-window.coffee @@ -0,0 +1,32 @@ +BrowserWindow = require 'browser_window' +ipc = require 'ipc' + +module.exports = +class AtomWindow + browserWindow: null + + constructor: ({bootstrapScript, resourcePath, pathToOpen, exitWhenDone, @isSpec}) -> + @browserWindow = new BrowserWindow show: false, title: 'Atom' + @handleEvents() + + url = "file://#{resourcePath}/static/index.html?bootstrapScript=#{bootstrapScript}&resourcePath=#{resourcePath}" + url += "&pathToOpen=#{pathToOpen}" if pathToOpen + url += '&exitWhenDone=1' if exitWhenDone + + @browserWindow.loadUrl url + + handleEvents: -> + @browserWindow.on 'destroyed', => + require('atom-application').removeWindow(this) + + if @isSpec + # Spec window's web view should always have focus + @browserWindow.on 'blur', => + @browserWindow.focusOnWebView() + else + @browserWindow.on 'close', (event) => + event.preventDefault() + @sendCommand 'window:close' + + sendCommand: (command) -> + ipc.sendChannel @browserWindow.getProcessId(), @browserWindow.getRoutingId(), 'command', command diff --git a/src/main.coffee b/src/main.coffee index 14e726086..d5bea3ccd 100644 --- a/src/main.coffee +++ b/src/main.coffee @@ -32,4 +32,4 @@ parseCommandLine = -> catch e resourcePath = path.dirname(__dirname) - {resourcePath, executedFrom, pathsToOpen, testMode} + {resourcePath, executedFrom, pathsToOpen, testMode, version}