$ = 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 = $ "
"
el.addClass "pane " + position
el.append 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