Move AtomWindow to it's own file

This commit is contained in:
probablycorey
2013-05-24 14:46:25 -07:00
parent 7aa6c1c08e
commit 6b08d18f4b
3 changed files with 39 additions and 31 deletions

View File

@@ -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

32
src/atom-window.coffee Normal file
View File

@@ -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

View File

@@ -32,4 +32,4 @@ parseCommandLine = ->
catch e
resourcePath = path.dirname(__dirname)
{resourcePath, executedFrom, pathsToOpen, testMode}
{resourcePath, executedFrom, pathsToOpen, testMode, version}