UNPKG

electron-kit

Version:

Utility kits for middle-scale electron app

101 lines (79 loc) 2.68 kB
// Generated by CoffeeScript 1.10.0 (function() { var AppWindow, BrowserWindow, CompositeDisposable, Emitter, WindowManager; BrowserWindow = require("electron").BrowserWindow; CompositeDisposable = require("event-kit").CompositeDisposable; Emitter = require("../utils/Emitter"); AppWindow = require("./AppWindow"); module.exports = WindowManager = (function() { function WindowManager() { this.emitter = new Emitter; this.subscriptions = new CompositeDisposable; this.windows = new Set; } /** * Open a new BrowserWindow * @param {Object} options Options for BrowserWindow creation * @return {AppWindow} */ WindowManager.prototype.openWindow = function(options) { var window; if (options == null) { options = {}; } window = new AppWindow(options); this.addWindow(window); return window; }; /** * Add created window into WindowManager * @param {AppWindow} window */ WindowManager.prototype.addWindow = function(window) { var beforeSize; beforeSize = this.windows.size; if (this.windows.add(window).size === beforeSize) { return; } this.subscriptions.add(window.on("focus", (function(_this) { return function() { return _this.setLastFocusedWindow(window); }; })(this))); this.emitter.emit("did-add-window", window); }; WindowManager.prototype.removeWindow = function(window) { if (!this.windows["delete"](window)) { return; } this.emitter.emit("did-remove-window", window); }; WindowManager.prototype.findWindowByBrowserWindow = function(browserWindow) { var target; target = null; this.windows.forEach(function(appWindow) { if (appWindow.browserWindow === browserWindow) { target = appWindow; } }); return target; }; WindowManager.prototype.setLastFocusedWindow = function(window) { this._lastFocusedWindow = window; this.emitter.emit("did-change-focused-window", window); }; WindowManager.prototype.lastFocusedWindow = function() { return this._lastFocusedWindow; }; WindowManager.prototype.onDidAddWindow = function(fn) { return this.emitter.on("did-add-window", fn); }; WindowManager.prototype.onDidRemoveWindow = function(fn) { return this.emitter.on("did-remove-window", fn); }; WindowManager.prototype.onDidChangeFocusedWindow = function(fn) { return this.emitter.on("did-change-focused-window", fn); }; return WindowManager; })(); }).call(this);