mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-11-03 19:05:35 +00:00
229 lines
6.3 KiB
JavaScript
229 lines
6.3 KiB
JavaScript
/* 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 l10n = require("gcli/l10n");
|
|
|
|
// Fetch TiltManager using the current loader, but don't save a
|
|
// reference to it, because it might change with a tool reload.
|
|
// We can clean this up once the command line is loadered.
|
|
Object.defineProperty(this, "TiltManager", {
|
|
get: function() {
|
|
return require("devtools/client/tilt/tilt").TiltManager;
|
|
},
|
|
enumerable: true
|
|
});
|
|
|
|
exports.items = [
|
|
{
|
|
name: "tilt",
|
|
description: l10n.lookup("tiltDesc"),
|
|
manual: l10n.lookup("tiltManual"),
|
|
hidden: true
|
|
},
|
|
{
|
|
name: "tilt open",
|
|
runAt: "client",
|
|
description: l10n.lookup("tiltOpenDesc"),
|
|
manual: l10n.lookup("tiltOpenManual"),
|
|
hidden: true,
|
|
exec: function(args, context) {
|
|
if (isMultiProcess(context)) {
|
|
return l10n.lookupFormat("notAvailableInE10S", [this.name]);
|
|
}
|
|
|
|
let chromeWindow = context.environment.chromeDocument.defaultView;
|
|
let Tilt = TiltManager.getTiltForBrowser(chromeWindow);
|
|
if (!Tilt.currentInstance) {
|
|
Tilt.toggle();
|
|
}
|
|
}
|
|
},
|
|
{
|
|
name: "tilt toggle",
|
|
runAt: "client",
|
|
buttonId: "command-button-tilt",
|
|
buttonClass: "command-button command-button-invertable",
|
|
tooltipText: l10n.lookup("tiltToggleTooltip"),
|
|
hidden: true,
|
|
state: {
|
|
isChecked: function(aTarget) {
|
|
if (!aTarget.tab) {
|
|
return false;
|
|
}
|
|
let browserWindow = aTarget.tab.ownerDocument.defaultView;
|
|
return !!TiltManager.getTiltForBrowser(browserWindow).currentInstance;
|
|
},
|
|
onChange: function(aTarget, aChangeHandler) {
|
|
if (!aTarget.tab) {
|
|
return;
|
|
}
|
|
let browserWindow = aTarget.tab.ownerDocument.defaultView;
|
|
let tilt = TiltManager.getTiltForBrowser(browserWindow);
|
|
tilt.on("change", aChangeHandler);
|
|
},
|
|
offChange: function(aTarget, aChangeHandler) {
|
|
if (!aTarget.tab) {
|
|
return;
|
|
}
|
|
let browserWindow = aTarget.tab.ownerDocument.defaultView;
|
|
let tilt = TiltManager.getTiltForBrowser(browserWindow);
|
|
tilt.off("change", aChangeHandler);
|
|
},
|
|
},
|
|
exec: function(args, context) {
|
|
if (isMultiProcess(context)) {
|
|
return l10n.lookupFormat("notAvailableInE10S", [this.name]);
|
|
}
|
|
|
|
let chromeWindow = context.environment.chromeDocument.defaultView;
|
|
let Tilt = TiltManager.getTiltForBrowser(chromeWindow);
|
|
Tilt.toggle();
|
|
}
|
|
},
|
|
{
|
|
name: "tilt translate",
|
|
runAt: "client",
|
|
description: l10n.lookup("tiltTranslateDesc"),
|
|
manual: l10n.lookup("tiltTranslateManual"),
|
|
hidden: true,
|
|
params: [
|
|
{
|
|
name: "x",
|
|
type: "number",
|
|
defaultValue: 0,
|
|
description: l10n.lookup("tiltTranslateXDesc"),
|
|
manual: l10n.lookup("tiltTranslateXManual")
|
|
},
|
|
{
|
|
name: "y",
|
|
type: "number",
|
|
defaultValue: 0,
|
|
description: l10n.lookup("tiltTranslateYDesc"),
|
|
manual: l10n.lookup("tiltTranslateYManual")
|
|
}
|
|
],
|
|
exec: function(args, context) {
|
|
if (isMultiProcess(context)) {
|
|
return l10n.lookupFormat("notAvailableInE10S", [this.name]);
|
|
}
|
|
|
|
let chromeWindow = context.environment.chromeDocument.defaultView;
|
|
let Tilt = TiltManager.getTiltForBrowser(chromeWindow);
|
|
if (Tilt.currentInstance) {
|
|
Tilt.currentInstance.controller.arcball.translate([args.x, args.y]);
|
|
}
|
|
}
|
|
},
|
|
{
|
|
name: "tilt rotate",
|
|
runAt: "client",
|
|
description: l10n.lookup("tiltRotateDesc"),
|
|
manual: l10n.lookup("tiltRotateManual"),
|
|
hidden: true,
|
|
params: [
|
|
{
|
|
name: "x",
|
|
type: { name: 'number', min: -360, max: 360, step: 10 },
|
|
defaultValue: 0,
|
|
description: l10n.lookup("tiltRotateXDesc"),
|
|
manual: l10n.lookup("tiltRotateXManual")
|
|
},
|
|
{
|
|
name: "y",
|
|
type: { name: 'number', min: -360, max: 360, step: 10 },
|
|
defaultValue: 0,
|
|
description: l10n.lookup("tiltRotateYDesc"),
|
|
manual: l10n.lookup("tiltRotateYManual")
|
|
},
|
|
{
|
|
name: "z",
|
|
type: { name: 'number', min: -360, max: 360, step: 10 },
|
|
defaultValue: 0,
|
|
description: l10n.lookup("tiltRotateZDesc"),
|
|
manual: l10n.lookup("tiltRotateZManual")
|
|
}
|
|
],
|
|
exec: function(args, context) {
|
|
if (isMultiProcess(context)) {
|
|
return l10n.lookupFormat("notAvailableInE10S", [this.name]);
|
|
}
|
|
|
|
let chromeWindow = context.environment.chromeDocument.defaultView;
|
|
let Tilt = TiltManager.getTiltForBrowser(chromeWindow);
|
|
if (Tilt.currentInstance) {
|
|
Tilt.currentInstance.controller.arcball.rotate([args.x, args.y, args.z]);
|
|
}
|
|
}
|
|
},
|
|
{
|
|
name: "tilt zoom",
|
|
runAt: "client",
|
|
description: l10n.lookup("tiltZoomDesc"),
|
|
manual: l10n.lookup("tiltZoomManual"),
|
|
hidden: true,
|
|
params: [
|
|
{
|
|
name: "zoom",
|
|
type: { name: 'number' },
|
|
description: l10n.lookup("tiltZoomAmountDesc"),
|
|
manual: l10n.lookup("tiltZoomAmountManual")
|
|
}
|
|
],
|
|
exec: function(args, context) {
|
|
if (isMultiProcess(context)) {
|
|
return l10n.lookupFormat("notAvailableInE10S", [this.name]);
|
|
}
|
|
|
|
let chromeWindow = context.environment.chromeDocument.defaultView;
|
|
let Tilt = TiltManager.getTiltForBrowser(chromeWindow);
|
|
|
|
if (Tilt.currentInstance) {
|
|
Tilt.currentInstance.controller.arcball.zoom(-args.zoom);
|
|
}
|
|
}
|
|
},
|
|
{
|
|
name: "tilt reset",
|
|
runAt: "client",
|
|
description: l10n.lookup("tiltResetDesc"),
|
|
manual: l10n.lookup("tiltResetManual"),
|
|
hidden: true,
|
|
exec: function(args, context) {
|
|
if (isMultiProcess(context)) {
|
|
return l10n.lookupFormat("notAvailableInE10S", [this.name]);
|
|
}
|
|
|
|
let chromeWindow = context.environment.chromeDocument.defaultView;
|
|
let Tilt = TiltManager.getTiltForBrowser(chromeWindow);
|
|
|
|
if (Tilt.currentInstance) {
|
|
Tilt.currentInstance.controller.arcball.reset();
|
|
}
|
|
}
|
|
},
|
|
{
|
|
name: "tilt close",
|
|
runAt: "client",
|
|
description: l10n.lookup("tiltCloseDesc"),
|
|
manual: l10n.lookup("tiltCloseManual"),
|
|
hidden: true,
|
|
exec: function(args, context) {
|
|
if (isMultiProcess(context)) {
|
|
return l10n.lookupFormat("notAvailableInE10S", [this.name]);
|
|
}
|
|
|
|
let chromeWindow = context.environment.chromeDocument.defaultView;
|
|
let Tilt = TiltManager.getTiltForBrowser(chromeWindow);
|
|
|
|
Tilt.destroy(Tilt.currentWindowId);
|
|
}
|
|
}
|
|
];
|
|
|
|
function isMultiProcess(context) {
|
|
return !context.environment.window;
|
|
}
|