diff options
Diffstat (limited to 'devtools/client/responsivedesign/resize-commands.js')
-rw-r--r-- | devtools/client/responsivedesign/resize-commands.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/devtools/client/responsivedesign/resize-commands.js b/devtools/client/responsivedesign/resize-commands.js new file mode 100644 index 000000000..b2f884df8 --- /dev/null +++ b/devtools/client/responsivedesign/resize-commands.js @@ -0,0 +1,96 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const { Cc, Ci, Cu } = require("chrome"); + +loader.lazyImporter(this, "ResponsiveUIManager", "resource://devtools/client/responsivedesign/responsivedesign.jsm"); + +const BRAND_SHORT_NAME = Cc["@mozilla.org/intl/stringbundle;1"]. + getService(Ci.nsIStringBundleService). + createBundle("chrome://branding/locale/brand.properties"). + GetStringFromName("brandShortName"); + +const l10n = require("gcli/l10n"); + +exports.items = [ + { + name: "resize", + description: l10n.lookup("resizeModeDesc") + }, + { + item: "command", + runAt: "client", + name: "resize on", + description: l10n.lookup("resizeModeOnDesc"), + manual: l10n.lookupFormat("resizeModeManual2", [BRAND_SHORT_NAME]), + exec: gcli_cmd_resize + }, + { + item: "command", + runAt: "client", + name: "resize off", + description: l10n.lookup("resizeModeOffDesc"), + manual: l10n.lookupFormat("resizeModeManual2", [BRAND_SHORT_NAME]), + exec: gcli_cmd_resize + }, + { + item: "command", + runAt: "client", + name: "resize toggle", + buttonId: "command-button-responsive", + buttonClass: "command-button command-button-invertable", + tooltipText: l10n.lookup("resizeModeToggleTooltip"), + description: l10n.lookup("resizeModeToggleDesc"), + manual: l10n.lookupFormat("resizeModeManual2", [BRAND_SHORT_NAME]), + state: { + isChecked: function (aTarget) { + if (!aTarget.tab) { + return false; + } + return ResponsiveUIManager.isActiveForTab(aTarget.tab); + }, + onChange: function (aTarget, aChangeHandler) { + if (aTarget.tab) { + ResponsiveUIManager.on("on", aChangeHandler); + ResponsiveUIManager.on("off", aChangeHandler); + } + }, + offChange: function (aTarget, aChangeHandler) { + // Do not check for target.tab as it may already be null during destroy + ResponsiveUIManager.off("on", aChangeHandler); + ResponsiveUIManager.off("off", aChangeHandler); + }, + }, + exec: gcli_cmd_resize + }, + { + item: "command", + runAt: "client", + name: "resize to", + description: l10n.lookup("resizeModeToDesc"), + params: [ + { + name: "width", + type: "number", + description: l10n.lookup("resizePageArgWidthDesc"), + }, + { + name: "height", + type: "number", + description: l10n.lookup("resizePageArgHeightDesc"), + }, + ], + exec: gcli_cmd_resize + } +]; + +function* gcli_cmd_resize(args, context) { + let browserWindow = context.environment.chromeWindow; + yield ResponsiveUIManager.handleGcliCommand(browserWindow, + browserWindow.gBrowser.selectedTab, + this.name, + args); +} |