/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is GCLI Commands. * * The Initial Developer of the Original Code is * The Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2011 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Victor Porof (original author) * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ let EXPORTED_SYMBOLS = [ "GcliCommands" ]; Components.utils.import("resource:///modules/gcli.jsm"); Components.utils.import("resource:///modules/HUDService.jsm"); /** * 'tilt' command */ gcli.addCommand({ name: 'tilt', description: gcli.lookup("tiltDesc"), manual: gcli.lookup("tiltManual") }); /** * 'tilt open' command */ gcli.addCommand({ name: 'tilt open', description: gcli.lookup("tiltOpenDesc"), manual: gcli.lookup("tiltOpenManual"), params: [ { name: "node", type: "node", defaultValue: null, description: gcli.lookup("inspectNodeDesc"), manual: gcli.lookup("inspectNodeManual") } ], exec: function(args, context) { let chromeWindow = context.environment.chromeDocument.defaultView; let InspectorUI = chromeWindow.InspectorUI; let Tilt = chromeWindow.Tilt; if (Tilt.currentInstance) { Tilt.update(args.node); } else { let hudId = chromeWindow.HUDConsoleUI.getOpenHUD(); let hud = HUDService.getHudReferenceById(hudId); if (hud && !hud.consolePanel) { HUDService.deactivateHUDForContext(chromeWindow.gBrowser.selectedTab); } InspectorUI.openInspectorUI(args.node); Tilt.initialize(); } } }); /** * 'tilt translate' command */ gcli.addCommand({ name: 'tilt translate', description: gcli.lookup("tiltTranslateDesc"), manual: gcli.lookup("tiltTranslateManual"), params: [ { name: "x", type: "number", defaultValue: 0, description: gcli.lookup("tiltTranslateXDesc"), manual: gcli.lookup("tiltTranslateXManual") }, { name: "y", type: "number", defaultValue: 0, description: gcli.lookup("tiltTranslateYDesc"), manual: gcli.lookup("tiltTranslateYManual") } ], exec: function(args, context) { let chromeWindow = context.environment.chromeDocument.defaultView; let Tilt = chromeWindow.Tilt; if (Tilt.currentInstance) { Tilt.currentInstance.controller.arcball.translate([args.x, args.y]); } } }); /** * 'tilt rotate' command */ gcli.addCommand({ name: 'tilt rotate', description: gcli.lookup("tiltRotateDesc"), manual: gcli.lookup("tiltRotateManual"), params: [ { name: "x", type: { name: 'number', min: -360, max: 360, step: 10 }, defaultValue: 0, description: gcli.lookup("tiltRotateXDesc"), manual: gcli.lookup("tiltRotateXManual") }, { name: "y", type: { name: 'number', min: -360, max: 360, step: 10 }, defaultValue: 0, description: gcli.lookup("tiltRotateYDesc"), manual: gcli.lookup("tiltRotateYManual") }, { name: "z", type: { name: 'number', min: -360, max: 360, step: 10 }, defaultValue: 0, description: gcli.lookup("tiltRotateZDesc"), manual: gcli.lookup("tiltRotateZManual") } ], exec: function(args, context) { let chromeWindow = context.environment.chromeDocument.defaultView; let Tilt = chromeWindow.Tilt; if (Tilt.currentInstance) { Tilt.currentInstance.controller.arcball.rotate([args.x, args.y, args.z]); } } }); /** * 'tilt zoom' command */ gcli.addCommand({ name: 'tilt zoom', description: gcli.lookup("tiltZoomDesc"), manual: gcli.lookup("tiltZoomManual"), params: [ { name: "zoom", type: { name: 'number' }, description: gcli.lookup("tiltZoomAmountDesc"), manual: gcli.lookup("tiltZoomAmountManual") } ], exec: function(args, context) { let chromeWindow = context.environment.chromeDocument.defaultView; let Tilt = chromeWindow.Tilt; if (Tilt.currentInstance) { Tilt.currentInstance.controller.arcball.zoom(-args.zoom); } } }); /** * 'tilt reset' command */ gcli.addCommand({ name: 'tilt reset', description: gcli.lookup("tiltResetDesc"), manual: gcli.lookup("tiltResetManual"), exec: function(args, context) { let chromeWindow = context.environment.chromeDocument.defaultView; let Tilt = chromeWindow.Tilt; if (Tilt.currentInstance) { Tilt.currentInstance.controller.arcball.reset(); } } }); /** * 'tilt close' command */ gcli.addCommand({ name: 'tilt close', description: gcli.lookup("tiltCloseDesc"), manual: gcli.lookup("tiltCloseManual"), exec: function(args, context) { let chromeWindow = context.environment.chromeDocument.defaultView; let Tilt = chromeWindow.Tilt; Tilt.destroy(Tilt.currentWindowId); } });