37 lines
1.3 KiB
CoffeeScript
37 lines
1.3 KiB
CoffeeScript
EventEmitter = require('events').EventEmitter
|
|
v8Util = process.atomBinding 'v8_util'
|
|
objectsRegistry = require '../../atom/objects-registry.js'
|
|
|
|
BrowserWindow = process.atomBinding('window').BrowserWindow
|
|
BrowserWindow::__proto__ = EventEmitter.prototype
|
|
|
|
BrowserWindow::toggleDevTools = ->
|
|
opened = v8Util.getHiddenValue this, 'devtoolsOpened'
|
|
if opened
|
|
@closeDevTools()
|
|
v8Util.setHiddenValue this, 'devtoolsOpened', false
|
|
else
|
|
@openDevTools()
|
|
v8Util.setHiddenValue this, 'devtoolsOpened', true
|
|
|
|
BrowserWindow::restart = ->
|
|
@loadUrl(@getUrl())
|
|
|
|
BrowserWindow::setMenu = (menu) ->
|
|
throw new Error('BrowserWindow.setMenu is only available on Windows') unless process.platform is 'win32'
|
|
|
|
throw new TypeError('Invalid menu') unless menu?.constructor?.name is 'Menu'
|
|
|
|
@menu = menu # Keep a reference of menu in case of GC.
|
|
@menu.attachToWindow this
|
|
|
|
BrowserWindow.getFocusedWindow = ->
|
|
windows = objectsRegistry.getAllWindows()
|
|
return window for window in windows when window.isFocused()
|
|
|
|
BrowserWindow.fromProcessIdAndRoutingId = (processId, routingId) ->
|
|
windows = objectsRegistry.getAllWindows()
|
|
return window for window in windows when window.getProcessId() == processId and
|
|
window.getRoutingId() == routingId
|
|
|
|
module.exports = BrowserWindow
|