Files
atom/src/window.coffee
Chris Wanstrath b9689679e5 Turn editor.coffee into an Editor class which subclasses Pane
This isn't great but I think it's a step in the right direction.
2011-09-04 19:23:52 -07:00

78 lines
1.5 KiB
CoffeeScript

$ = require 'jquery'
App = require 'app'
Pane = require 'pane'
module.exports =
class Window extends Pane
controller: null
document: null
nswindow: null
panes: []
keymap:
'Command-N' : 'new'
'Command-O' : 'open'
'Command-Shift-O' : 'openURL'
'Command-Ctrl-K' : 'showConsole'
'Command-Ctrl-R' : 'reload'
initialize: ->
@nswindow = @controller?.window
addPane: ({position, html}) ->
verticalDiv = $('#app-vertical')
horizontalDiv = $('#app-horizontal')
el = document.createElement "div"
el.setAttribute 'class', "pane " + position
el.innerHTML = html
switch position
when 'top', 'main'
verticalDiv.prepend el
when 'left'
horizontalDiv.prepend el
when 'bottom'
verticalDiv.append el
when 'right'
horizontalDiv.append el
else
throw "I DON'T KNOW HOW TO DEAL WITH #{position}"
close: ->
@controller.close()
reload: ->
App.newWindow()
@close()
isDirty: ->
@nswindow.isDocumentEdited()
# Set the active window's dirty status.
setDirty: (bool) ->
@nswindow.setDocumentEdited bool
inspector: ->
@_inspector ?= WindowController.webView.inspector
new: ->
App.newWindow()
open: (path) ->
@document?.open path
openURL: (url) ->
if url = prompt "Enter URL:"
App.openURL url
showConsole: ->
@inspector().showConsole(1)
title: ->
@nswindow.title
setTitle: (title) ->
@nswindow.title = title