From 61a419422b1a05a779fd9a66c53de3fa8ab5f65a Mon Sep 17 00:00:00 2001 From: Ananya Sen Date: Thu, 22 Mar 2012 10:28:34 -0700 Subject: - enable/disable save, saveAs, saveAll, close, closeAll as per documents open - added close file and close all menu items Signed-off-by: Ananya Sen Conflicts: js/helper-classes/3D/draw-utils.js Signed-off-by: Ananya Sen --- js/data/menu-data.js | 830 +++++++++++++++++++++++++++------------------------ 1 file changed, 440 insertions(+), 390 deletions(-) (limited to 'js/data') diff --git a/js/data/menu-data.js b/js/data/menu-data.js index 40512f5d..093ecf14 100755 --- a/js/data/menu-data.js +++ b/js/data/menu-data.js @@ -4,414 +4,464 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. */ -var Montage = require("montage/core/core").Montage; +var Montage = require("montage/core/core").Montage; exports.MenuData = Montage.create( Montage, { topLevelMenu: { value: [ - { - "header": "File", - "entries": [ - { - "displayText" : "New Project", - "hasSubMenu" : false, - "enabled": false, - "action": "executeNewProject" - }, - { - "displayText" : "New File", - "hasSubMenu" : false, - "enabled": true, - "action": "executeNewFile" - }, - { - "displayText" : "Open File", - "hasSubMenu" : false, - "enabled": true, - "action": "executeFileOpen" - }, - { - "displayText" : "Close File", - "hasSubMenu" : false, - "enabled": true, - "action": "executeFileClose" - }, - { - "displayText" : "", - "separator": true - }, - { - "displayText" : "Save", - "hasSubMenu" : false, - "enabled": true, - "action": "executeSave" - }, - { - "displayText" : "Save As", - "hasSubMenu" : false, - "enabled": true, - "action":"executeSaveAs" - }, - { - "displayText" : "Save All", - "hasSubMenu" : false, - "enabled": true, - "action": "executeSaveAll" - }, - { - "displayText" : "", - "separator": true - }, - { - "displayText" : "Open Project", - "hasSubMenu" : false, - "enabled": false - }, - { - "displayText" : "Open Recent", - "hasSubMenu" : false, - "enabled": false - }, - { - "displayText" : "Close Project", - "hasSubMenu" : false, - "enabled": false - } - ] - }, - { - "header": "Edit", - "entries": [ - { - "displayText" : "Undo", - "hasSubMenu" : false, - "enabled": { - "value": false, - "boundObj": "undocontroller", - "boundProperty": "canUndo" - }, - "action": "executeUndo" - }, - { - "displayText" : "Redo", - "hasSubMenu" : false, - "enabled": { - "value": false, - "boundObj": "undocontroller", - "boundProperty": "canRedo" - }, - "action": "executeRedo" - }, - { - "displayText" : "Cut", - "hasSubMenu" : false, - "enabled": true - }, - { - "displayText" : "Copy", - "hasSubMenu" : false, - "enabled": true - }, - { - "displayText" : "Paste", - "hasSubMenu" : false, - "enabled": true - } - ] - }, - { - "header": "View", - "entries": [ - { - "displayText" : "Zoom In", - "hasSubMenu" : false, - "enabled": true - }, - { - "displayText" : "Zoom Out", - "hasSubMenu" : false, - "enabled": true - }, - { - "displayText" : "", - "separator": true - }, - { - "displayText" : "Live Preview", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": false, - "boundProperty": "livePreview" - } - }, - { - "displayText" : "Chrome Preview", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": false, - "boundProperty": "chromePreview" - } - }, - { - "displayText" : "Layout View", - "hasSubMenu" : false, - "enabled": true, - "submenu": true, - "entries": [ - { - "displayText" : "View All", - "hasSubMenu" : false, - "radio": true, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "layoutAll" + { + "header": "File", + "entries": [ + { + "displayText" : "New Project", + "hasSubMenu" : false, + "enabled": false, + "action": "executeNewProject" + }, + { + "displayText" : "New File", + "hasSubMenu" : false, + "enabled": true, + "action": "executeNewFile" + }, + { + "displayText" : "Open File", + "hasSubMenu" : false, + "enabled": true, + "action": "executeFileOpen" + }, + { + "displayText" : "Close File", + "hasSubMenu" : false, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if(activeDocument !== null){return true;} + else{return false;} } }, - { - "displayText" : "View Items Only", - "hasSubMenu" : false, - "radio": true, - "enabled": true, - "checked": { - "value": false, - "boundProperty": "layoutItems" + "action": "executeFileClose" + }, + { + "displayText" : "Close All", + "hasSubMenu" : false, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if(activeDocument !== null){return true;} + else{return false;} } }, - { - "displayText" : "Off", - "hasSubMenu" : false, - "radio": true, - "enabled": true, - "checked": { - "value": false, - "boundProperty": "layoutOff" + "action": "executeFileCloseAll" + }, + { + "displayText" : "", + "separator": true + }, + { + "displayText" : "Save", + "hasSubMenu" : false, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "canSave", + "oneway": true + }, + "action": "executeSave" + }, + { + "displayText" : "Save As", + "hasSubMenu" : false, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if(activeDocument !== null){return true;} + else{return false;} } - } - ] - }, - { - "displayText" : "Snap", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "snap" - } - - }, - { - "displayText" : "Snap To", - "hasSubMenu" : false, - "enabled": { - "value": true, - "boundObj": "appModel", - "boundProperty": "snap" - }, - "submenu": true, - "entries": [ - { - "displayText" : "Grid", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "snapGrid" + }, + "action":"executeSaveAs" + }, + { + "displayText" : "Save All", + "hasSubMenu" : false, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "canSaveAll", + "oneway": true, + "boundValueMutator": function(canSaveAll){ + if(canSaveAll === true){return true;} + else{return false;} } }, - { - "displayText" : "Objects", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "snapObjects" + "action": "executeSaveAll" + }, + { + "displayText" : "", + "separator": true + }, + { + "displayText" : "Open Project", + "hasSubMenu" : false, + "enabled": false + }, + { + "displayText" : "Open Recent", + "hasSubMenu" : false, + "enabled": false + }, + { + "displayText" : "Close Project", + "hasSubMenu" : false, + "enabled": false + } + ] + }, + { + "header": "Edit", + "entries": [ + { + "displayText" : "Undo", + "hasSubMenu" : false, + "enabled": { + "value": false, + "boundObj": "undocontroller", + "boundProperty": "canUndo", + "oneway": true + }, + "action": "executeUndo" + }, + { + "displayText" : "Redo", + "hasSubMenu" : false, + "enabled": { + "value": false, + "boundObj": "undocontroller", + "boundProperty": "canRedo", + "oneway": true + }, + "action": "executeRedo" + }, + { + "displayText" : "Cut", + "hasSubMenu" : false, + "enabled": true + }, + { + "displayText" : "Copy", + "hasSubMenu" : false, + "enabled": true + }, + { + "displayText" : "Paste", + "hasSubMenu" : false, + "enabled": true + } + ] + }, + { + "header": "View", + "entries": [ + { + "displayText" : "Zoom In", + "hasSubMenu" : false, + "enabled": true + }, + { + "displayText" : "Zoom Out", + "hasSubMenu" : false, + "enabled": true + }, + { + "displayText" : "", + "separator": true + }, + { + "displayText" : "Live Preview", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": false, + "boundProperty": "livePreview" + } + }, + { + "displayText" : "Chrome Preview", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": false, + "boundProperty": "chromePreview" + } + }, + { + "displayText" : "Layout View", + "hasSubMenu" : false, + "enabled": true, + "submenu": true, + "entries": [ + { + "displayText" : "View All", + "hasSubMenu" : false, + "radio": true, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "layoutAll" + } + }, + { + "displayText" : "View Items Only", + "hasSubMenu" : false, + "radio": true, + "enabled": true, + "checked": { + "value": false, + "boundProperty": "layoutItems" + } + }, + { + "displayText" : "Off", + "hasSubMenu" : false, + "radio": true, + "enabled": true, + "checked": { + "value": false, + "boundProperty": "layoutOff" + } } + ] + }, + { + "displayText" : "Snap", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "snap" + } + + }, + { + "displayText" : "Snap To", + "hasSubMenu" : false, + "enabled": { + "value": true, + "boundObj": "appModel", + "boundProperty": "snap", + "oneway": true }, - { - "displayText" : "Snap Align", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "snapAlign" + "submenu": true, + "entries": [ + { + "displayText" : "Grid", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "snapGrid" + } + }, + { + "displayText" : "Objects", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "snapObjects" + } + }, + { + "displayText" : "Snap Align", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "snapAlign" + } } + ] + }, + { + "displayText" : "Show 3D Grid", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": false, + "boundProperty": "show3dGrid" + } + }, + { + "displayText" : "", + "separator": true + }, + { + "displayText" : "Front View", + "hasSubMenu" : false, + "enabled": true, + "radio": true, + "checked": { + "value": true, + "boundProperty": "frontStageView" + } + }, + { + "displayText" : "Top View", + "hasSubMenu" : false, + "enabled": true, + "radio": true, + "checked": { + "value": true, + "boundProperty": "topStageView" + } + }, + { + "displayText" : "Side View", + "hasSubMenu" : false, + "enabled": true, + "radio": true, + "checked": { + "value": true, + "boundProperty": "sideStageView" + } + }, + { + "displayText" : "", + "separator": true + }, + { + "displayText" : "Debug", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "debug" } - ] - }, - { - "displayText" : "Show 3D Grid", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": false, - "boundProperty": "show3dGrid" - } - }, - { - "displayText" : "", - "separator": true - }, - { - "displayText" : "Front View", - "hasSubMenu" : false, - "enabled": true, - "radio": true, - "checked": { - "value": true, - "boundProperty": "frontStageView" - } - }, - { - "displayText" : "Top View", - "hasSubMenu" : false, - "enabled": true, - "radio": true, - "checked": { - "value": true, - "boundProperty": "topStageView" - } - }, - { - "displayText" : "Side View", - "hasSubMenu" : false, - "enabled": true, - "radio": true, - "checked": { - "value": true, - "boundProperty": "sideStageView" - } - }, - { - "displayText" : "", - "separator": true - }, - { - "displayText" : "Debug", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "debug" - } - } - ] - }, - { - "header": "Window", - "entries": [ - { - "displayText" : "Tools", - "hasSubMenu" : false, - "enabled": true - }, - { - "displayText" : "Timeline", - "hasSubMenu" : false, - "enabled": true - }, - { - "displayText" : "Properties", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "PropertiesPanel" - } - }, - { - "displayText" : "Project", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "ProjectPanel" - } - }, - { - "displayText" : "Color", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "ColorPanel" - } - }, - { - "displayText" : "Components", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "ComponentsPanel" - } - }, - { - "displayText" : "CSS", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "CSSPanel" } - }, - { - "displayText" : "Materials", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "MaterialsPanel" + ] + }, + { + "header": "Window", + "entries": [ + { + "displayText" : "Tools", + "hasSubMenu" : false, + "enabled": true + }, + { + "displayText" : "Timeline", + "hasSubMenu" : false, + "enabled": true + }, + { + "displayText" : "Properties", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "PropertiesPanel" + } + }, + { + "displayText" : "Project", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "ProjectPanel" + } + }, + { + "displayText" : "Color", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "ColorPanel" + } + }, + { + "displayText" : "Components", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "ComponentsPanel" + } + }, + { + "displayText" : "CSS", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "CSSPanel" + } + }, + { + "displayText" : "Materials", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "MaterialsPanel" + } + }, + { + "displayText" : "Presets", + "hasSubMenu" : false, + "enabled": true, + "checked": { + "value": true, + "boundProperty": "PresetsPanel" + } + }, + { + "displayText" : "Code", + "hasSubMenu" : false, + "enabled": true } - }, - { - "displayText" : "Presets", - "hasSubMenu" : false, - "enabled": true, - "checked": { - "value": true, - "boundProperty": "PresetsPanel" + ] + }, + { + "header": "Help", + "entries": [ + { + "displayText" : "Ninja FAQ", + "hasSubMenu" : false, + "enabled": true, + "action": "executeHelpFAQ" + }, + { + "displayText" : "Ninja Forums", + "hasSubMenu" : false, + "enabled": true, + "action": "executeHelpForums" + }, + { + "displayText" : "Help Topics", + "hasSubMenu" : false, + "enabled": true, + "action": "executeHelpTopics" + }, + { + "displayText" : "About Ninja...", + "hasSubMenu" : false, + "enabled": true, + "action": "executeHelpAbout" } - }, - { - "displayText" : "Code", - "hasSubMenu" : false, - "enabled": true - } - ] - }, - { - "header": "Help", - "entries": [ - { - "displayText" : "Ninja FAQ", - "hasSubMenu" : false, - "enabled": true, - "action": "executeHelpFAQ" - }, - { - "displayText" : "Ninja Forums", - "hasSubMenu" : false, - "enabled": true, - "action": "executeHelpForums" - }, - { - "displayText" : "Help Topics", - "hasSubMenu" : false, - "enabled": true, - "action": "executeHelpTopics" - }, - { - "displayText" : "About Ninja...", - "hasSubMenu" : false, - "enabled": true, - "action": "executeHelpAbout" - } - ] - } - ] + ] + } + ] } }); -- cgit v1.2.3 From 3fe56ceacc70f839887d0d368ea125cb85f54a8c Mon Sep 17 00:00:00 2001 From: Ananya Sen Date: Thu, 22 Mar 2012 15:33:12 -0700 Subject: disable more menus if the active document is not in design view Signed-off-by: Ananya Sen --- js/data/menu-data.js | 110 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 100 insertions(+), 10 deletions(-) (limited to 'js/data') diff --git a/js/data/menu-data.js b/js/data/menu-data.js index 093ecf14..12007f4a 100755 --- a/js/data/menu-data.js +++ b/js/data/menu-data.js @@ -174,12 +174,30 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Zoom In", "hasSubMenu" : false, - "enabled": true + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + } }, { "displayText" : "Zoom Out", "hasSubMenu" : false, - "enabled": true + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + } }, { "displayText" : "", @@ -188,7 +206,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Live Preview", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "checked": { "value": false, "boundProperty": "livePreview" @@ -197,7 +224,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Chrome Preview", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "checked": { "value": false, "boundProperty": "chromePreview" @@ -206,7 +242,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Layout View", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "submenu": true, "entries": [ { @@ -244,7 +289,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Snap", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "checked": { "value": true, "boundProperty": "snap" @@ -294,7 +348,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Show 3D Grid", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "checked": { "value": false, "boundProperty": "show3dGrid" @@ -307,7 +370,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Front View", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "radio": true, "checked": { "value": true, @@ -317,7 +389,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Top View", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "radio": true, "checked": { "value": true, @@ -327,7 +408,16 @@ exports.MenuData = Montage.create( Montage, { { "displayText" : "Side View", "hasSubMenu" : false, - "enabled": true, + "enabled": { + "value": false, + "boundObj": "documentController", + "boundProperty": "activeDocument", + "oneway": true, + "boundValueMutator": function(activeDocument){ + if((activeDocument !== null) && (activeDocument.currentView === "design")){return true;} + else{return false;} + } + }, "radio": true, "checked": { "value": true, -- cgit v1.2.3 From e52b0dcb9540b854a341a881de2d26aa753e9a82 Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Thu, 22 Mar 2012 16:18:38 -0700 Subject: Adding checkbox in PI to start/stop WebGL animation preview. Signed-off-by: Nivesh Rajbhandari --- js/data/pi/pi-data.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'js/data') diff --git a/js/data/pi/pi-data.js b/js/data/pi/pi-data.js index 53fec3be..56337124 100755 --- a/js/data/pi/pi-data.js +++ b/js/data/pi/pi-data.js @@ -391,6 +391,16 @@ exports.PiData = Montage.create( Montage, { checked: false } ], + [ + { + type: "checkbox", + id: "animate", + prop: "animate", + defaultValue: true, + value: "Animate", + checked: true + } + ], [ { type: "dropdown", @@ -484,6 +494,16 @@ exports.PiData = Montage.create( Montage, { checked: false } ], + [ + { + type: "checkbox", + id: "animate", + prop: "animate", + defaultValue: true, + value: "Animate", + checked: true + } + ], [ { type: "dropdown", @@ -578,6 +598,16 @@ exports.PiData = Montage.create( Montage, { checked: false } ], + [ + { + type: "checkbox", + id: "animate", + prop: "animate", + defaultValue: true, + value: "Animate", + checked: true + } + ], [ { type: "dropdown", -- cgit v1.2.3 From f2371c4a5a18a4dadb2e76f0275b90ac541e889d Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Thu, 22 Mar 2012 21:20:44 -0700 Subject: Adding enabled/disabled support for PI's checkbox control. Signed-off-by: Nivesh Rajbhandari --- js/data/pi/pi-data.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'js/data') diff --git a/js/data/pi/pi-data.js b/js/data/pi/pi-data.js index 56337124..52360302 100755 --- a/js/data/pi/pi-data.js +++ b/js/data/pi/pi-data.js @@ -398,7 +398,8 @@ exports.PiData = Montage.create( Montage, { prop: "animate", defaultValue: true, value: "Animate", - checked: true + checked: true, + enabled: { boundObject: "this.controls", boundProperty: "useWebGl" } } ], [ @@ -501,7 +502,8 @@ exports.PiData = Montage.create( Montage, { prop: "animate", defaultValue: true, value: "Animate", - checked: true + checked: true, + enabled: { boundObject: "this.controls", boundProperty: "useWebGl" } } ], [ @@ -605,7 +607,8 @@ exports.PiData = Montage.create( Montage, { prop: "animate", defaultValue: true, value: "Animate", - checked: true + checked: true, + enabled: { boundObject: "this.controls", boundProperty: "useWebGl" } } ], [ -- cgit v1.2.3