electron/browser/api/lib/window.coffee
2013-04-19 00:06:10 +08:00

29 lines
1.2 KiB
CoffeeScript

EventEmitter = require('events').EventEmitter
Window = process.atom_binding('window').Window
# Inherits EventEmitter.
for prop, func of EventEmitter.prototype
Window.prototype[prop] = func
# Convient accessors.
setupGetterAndSetter = (constructor, name, getter, setter) ->
if getter?
constructor.prototype.__defineGetter__ name, ->
this[getter].apply(this, arguments)
if setter?
constructor.prototype.__defineSetter__ name, ->
this[setter].apply(this, arguments)
setupGetterAndSetter Window, 'fullscreen', 'isFullscreen', 'setFullscreen'
setupGetterAndSetter Window, 'size', 'getSize', 'setSize'
setupGetterAndSetter Window, 'maximumSize', 'getMaximumSize', 'setMaximumSize'
setupGetterAndSetter Window, 'minimumSize', 'getMinimumSize', 'setMinimumSize'
setupGetterAndSetter Window, 'resizable', 'isResizable', 'setResizable'
setupGetterAndSetter Window, 'alwaysOnTop', 'isAlwaysOnTop', 'setAlwaysOnTop'
setupGetterAndSetter Window, 'position', 'getPosition', 'setPosition'
setupGetterAndSetter Window, 'title', 'getTitle', 'setTitle'
setupGetterAndSetter Window, 'kiosk', 'isKiosk', 'setKiosk'
setupGetterAndSetter Window, 'url', 'getURL', 'loadURL'
module.exports = Window