michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: "use strict"; michael@0: michael@0: const { Cc, Ci, Cu } = require("chrome"); michael@0: michael@0: const BRAND_SHORT_NAME = Cc["@mozilla.org/intl/stringbundle;1"]. michael@0: getService(Ci.nsIStringBundleService). michael@0: createBundle("chrome://branding/locale/brand.properties"). michael@0: GetStringFromName("brandShortName"); michael@0: michael@0: const gcli = require("gcli/index"); michael@0: michael@0: exports.items = [ michael@0: { michael@0: name: 'resize', michael@0: description: gcli.lookup('resizeModeDesc') michael@0: }, michael@0: { michael@0: name: 'resize on', michael@0: description: gcli.lookup('resizeModeOnDesc'), michael@0: manual: gcli.lookupFormat('resizeModeManual2', [BRAND_SHORT_NAME]), michael@0: exec: gcli_cmd_resize michael@0: }, michael@0: { michael@0: name: 'resize off', michael@0: description: gcli.lookup('resizeModeOffDesc'), michael@0: manual: gcli.lookupFormat('resizeModeManual2', [BRAND_SHORT_NAME]), michael@0: exec: gcli_cmd_resize michael@0: }, michael@0: { michael@0: name: 'resize toggle', michael@0: buttonId: "command-button-responsive", michael@0: buttonClass: "command-button command-button-invertable", michael@0: tooltipText: gcli.lookup("resizeModeToggleTooltip"), michael@0: description: gcli.lookup('resizeModeToggleDesc'), michael@0: manual: gcli.lookupFormat('resizeModeManual2', [BRAND_SHORT_NAME]), michael@0: state: { michael@0: isChecked: function(aTarget) { michael@0: let browserWindow = aTarget.tab.ownerDocument.defaultView; michael@0: let mgr = browserWindow.ResponsiveUI.ResponsiveUIManager; michael@0: return mgr.isActiveForTab(aTarget.tab); michael@0: }, michael@0: onChange: function(aTarget, aChangeHandler) { michael@0: let browserWindow = aTarget.tab.ownerDocument.defaultView; michael@0: let mgr = browserWindow.ResponsiveUI.ResponsiveUIManager; michael@0: mgr.on("on", aChangeHandler); michael@0: mgr.on("off", aChangeHandler); michael@0: }, michael@0: offChange: function(aTarget, aChangeHandler) { michael@0: if (aTarget.tab) { michael@0: let browserWindow = aTarget.tab.ownerDocument.defaultView; michael@0: let mgr = browserWindow.ResponsiveUI.ResponsiveUIManager; michael@0: mgr.off("on", aChangeHandler); michael@0: mgr.off("off", aChangeHandler); michael@0: } michael@0: }, michael@0: }, michael@0: exec: gcli_cmd_resize michael@0: }, michael@0: { michael@0: name: 'resize to', michael@0: description: gcli.lookup('resizeModeToDesc'), michael@0: params: [ michael@0: { michael@0: name: 'width', michael@0: type: 'number', michael@0: description: gcli.lookup("resizePageArgWidthDesc"), michael@0: }, michael@0: { michael@0: name: 'height', michael@0: type: 'number', michael@0: description: gcli.lookup("resizePageArgHeightDesc"), michael@0: }, michael@0: ], michael@0: exec: gcli_cmd_resize michael@0: } michael@0: ]; michael@0: michael@0: function gcli_cmd_resize(args, context) { michael@0: let browserWindow = context.environment.chromeWindow; michael@0: let mgr = browserWindow.ResponsiveUI.ResponsiveUIManager; michael@0: mgr.handleGcliCommand(browserWindow, michael@0: browserWindow.gBrowser.selectedTab, michael@0: this.name, michael@0: args); michael@0: }