aboutsummaryrefslogtreecommitdiff
path: root/js/controllers/color-controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/controllers/color-controller.js')
-rwxr-xr-xjs/controllers/color-controller.js307
1 files changed, 154 insertions, 153 deletions
diff --git a/js/controllers/color-controller.js b/js/controllers/color-controller.js
index c5c614ea..4295ed4c 100755
--- a/js/controllers/color-controller.js
+++ b/js/controllers/color-controller.js
@@ -1,24 +1,25 @@
1/* <copyright> 1/* <copyright>
2Copyright (c) 2012, Motorola Mobility, Inc 2Copyright (c) 2012, Motorola Mobility LLC.
3All Rights Reserved. 3All Rights Reserved.
4BSD License.
5 4
6Redistribution and use in source and binary forms, with or without 5Redistribution and use in source and binary forms, with or without
7modification, are permitted provided that the following conditions are met: 6modification, are permitted provided that the following conditions are met:
8 7
9 - Redistributions of source code must retain the above copyright notice, 8* Redistributions of source code must retain the above copyright notice,
10 this list of conditions and the following disclaimer. 9 this list of conditions and the following disclaimer.
11 - Redistributions in binary form must reproduce the above copyright 10
12 notice, this list of conditions and the following disclaimer in the 11* Redistributions in binary form must reproduce the above copyright notice,
13 documentation and/or other materials provided with the distribution. 12 this list of conditions and the following disclaimer in the documentation
14 - Neither the name of Motorola Mobility nor the names of its contributors 13 and/or other materials provided with the distribution.
15 may be used to endorse or promote products derived from this software 14
16 without specific prior written permission. 15* Neither the name of Motorola Mobility LLC nor the names of its
16 contributors may be used to endorse or promote products derived from this
17 software without specific prior written permission.
17 18
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 22ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@@ -27,16 +28,16 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28POSSIBILITY OF SUCH DAMAGE. 29POSSIBILITY OF SUCH DAMAGE.
29</copyright> */ 30</copyright> */
30 31
31//////////////////////////////////////////////////////////////////////// 32////////////////////////////////////////////////////////////////////////
32// 33//
33var Montage = require("montage/core/core").Montage, 34var Montage = require("montage/core/core").Montage,
34 Component = require("montage/ui/component").Component, 35 Component = require("montage/ui/component").Component,
35 ColorModel = require("js/models/color-model").ColorModel, 36 ColorModel = require("js/models/color-model").ColorModel,
36 ColorPanelBase = require("js/panels/Color/colorpanelbase.reel").ColorPanelBase, 37 ColorPanelBase = require("js/panels/Color/colorpanelbase.reel").ColorPanelBase,
37 ElementsMediator = require("js/mediators/element-mediator").ElementMediator, 38 ElementsMediator = require("js/mediators/element-mediator").ElementMediator,
38 ColorPopupManager = require("js/panels/Color/colorpopup-manager").ColorPopupManager, 39 ColorPopupManager = require("js/panels/Color/colorpopup-manager").ColorPopupManager,
39 ColorButtonManager = require("js/panels/Color/colorbutton-manager").ColorButtonManager; 40 ColorButtonManager = require("js/panels/Color/colorbutton-manager").ColorButtonManager;
40//////////////////////////////////////////////////////////////////////// 41////////////////////////////////////////////////////////////////////////
41//Exporting as ColorController 42//Exporting as ColorController
42exports.ColorController = Montage.create(Component, { 43exports.ColorController = Montage.create(Component, {
@@ -48,14 +49,14 @@ exports.ColorController = Montage.create(Component, {
48 //////////////////////////////////////////////////////////////////// 49 ////////////////////////////////////////////////////////////////////
49 // 50 //
50 deserializedFromTemplate: { 51 deserializedFromTemplate: {
51 value: function () { 52 value: function () {
52 //Setting up colorManager in other classes 53 //Setting up colorManager in other classes
53 this.colorPanelBase.colorManager = this.colorModel; 54 this.colorPanelBase.colorManager = this.colorModel;
54 this.colorPopupManager.colorManager = this.colorModel; 55 this.colorPopupManager.colorManager = this.colorModel;
55 this.colorButtonManager.colorManager = this.colorModel; 56 this.colorButtonManager.colorManager = this.colorModel;
56 //Listening for color changes 57 //Listening for color changes
57 this.colorModel.addEventListener('change', this, false); 58 this.colorModel.addEventListener('change', this, false);
58 } 59 }
59 }, 60 },
60 //////////////////////////////////////////////////////////////////// 61 ////////////////////////////////////////////////////////////////////
61 // 62 //
@@ -90,7 +91,7 @@ exports.ColorController = Montage.create(Component, {
90 //////////////////////////////////////////////////////////////////// 91 ////////////////////////////////////////////////////////////////////
91 // 92 //
92 _popupTab: { 93 _popupTab: {
93 value: 'wheel' 94 value: 'wheel'
94 }, 95 },
95 //////////////////////////////////////////////////////////////////// 96 ////////////////////////////////////////////////////////////////////
96 // 97 //
@@ -131,7 +132,7 @@ exports.ColorController = Montage.create(Component, {
131 //////////////////////////////////////////////////////////////////// 132 ////////////////////////////////////////////////////////////////////
132 // 133 //
133 _fill: { 134 _fill: {
134 value: null 135 value: null
135 }, 136 },
136 //////////////////////////////////////////////////////////////////// 137 ////////////////////////////////////////////////////////////////////
137 // 138 //
@@ -142,7 +143,7 @@ exports.ColorController = Montage.create(Component, {
142 //////////////////////////////////////////////////////////////////// 143 ////////////////////////////////////////////////////////////////////
143 // 144 //
144 _stroke: { 145 _stroke: {
145 value: null 146 value: null
146 }, 147 },
147 //////////////////////////////////////////////////////////////////// 148 ////////////////////////////////////////////////////////////////////
148 // 149 //
@@ -154,16 +155,16 @@ exports.ColorController = Montage.create(Component, {
154 // 155 //
155 getBackground: { 156 getBackground: {
156 value: function (element) { 157 value: function (element) {
157 //TODO: Return object with all background properties 158 //TODO: Return object with all background properties
158 console.log(ElementsMediator.getProperty(element, 'background-color')); 159 console.log(ElementsMediator.getProperty(element, 'background-color'));
159 console.log(ElementsMediator.getProperty(element, 'background-image')); 160 console.log(ElementsMediator.getProperty(element, 'background-image'));
160 } 161 }
161 }, 162 },
162 //////////////////////////////////////////////////////////////////// 163 ////////////////////////////////////////////////////////////////////
163 // 164 //
164 getBorder: { 165 getBorder: {
165 value: function (element) { 166 value: function (element) {
166 167
167 } 168 }
168 }, 169 },
169 //////////////////////////////////////////////////////////////////// 170 ////////////////////////////////////////////////////////////////////
@@ -189,14 +190,14 @@ exports.ColorController = Montage.create(Component, {
189 // 190 //
190 handleChange: { 191 handleChange: {
191 value: function (e) { 192 value: function (e) {
192 // 193 //
193 var color, input = e._event.input, panelMode, mode = e._event.mode; 194 var color, input = e._event.input, panelMode, mode = e._event.mode;
194 if (this.colorView) { 195 if (this.colorView) {
195 panelMode = this.colorView.panelMode; 196 panelMode = this.colorView.panelMode;
196 } 197 }
197 // 198 //
198 if (mode === 'nocolor') { 199 if (mode === 'nocolor') {
199 color = {value: null, css: 'none'}; 200 color = {value: null, css: 'none'};
200 } else if (panelMode === 'rgb' && e._event.rgba && mode !== 'gradient') { 201 } else if (panelMode === 'rgb' && e._event.rgba && mode !== 'gradient') {
201 color = e._event.rgba; 202 color = e._event.rgba;
202 color.webGlColor = e._event.webGlColor; 203 color.webGlColor = e._event.webGlColor;
@@ -206,7 +207,7 @@ exports.ColorController = Montage.create(Component, {
206 } else if (mode !== 'gradient'){ 207 } else if (mode !== 'gradient'){
207 color = {value: e._event.hex, css: '#'+e._event.hex}; 208 color = {value: e._event.hex, css: '#'+e._event.hex};
208 } else if (mode === 'gradient'){ 209 } else if (mode === 'gradient'){
209 color = e._event.value.value; 210 color = e._event.value.value;
210 } 211 }
211 color.mode = panelMode; 212 color.mode = panelMode;
212 color.wasSetByCode = true; 213 color.wasSetByCode = true;
@@ -215,15 +216,15 @@ exports.ColorController = Montage.create(Component, {
215 //////////////////////////////////////////////////////////// 216 ////////////////////////////////////////////////////////////
216 // 217 //
217 if (input === 'fill') { 218 if (input === 'fill') {
218 // 219 //
219 this.fill = color; 220 this.fill = color;
220 // 221 //
221 if(e._event.wasSetByCode) return; 222 if(e._event.wasSetByCode) return;
222 // 223 //
223 this.setColor(mode, color, true); 224 this.setColor(mode, color, true);
224 } else if (input === 'stroke') { 225 } else if (input === 'stroke') {
225 // 226 //
226 this.stroke = color; 227 this.stroke = color;
227 // 228 //
228 if(e._event.wasSetByCode) return; 229 if(e._event.wasSetByCode) return;
229 230
@@ -237,93 +238,93 @@ exports.ColorController = Montage.create(Component, {
237 //Converts CSS to a color object to be used by the color model 238 //Converts CSS to a color object to be used by the color model
238 getColorObjFromCss: { 239 getColorObjFromCss: {
239 value: function (css) { 240 value: function (css) {
240 // 241 //
241 var color, arr, i, j, temp, c, gradient; 242 var color, arr, i, j, temp, c, gradient;
242 //console.log(css.indexOf('-webkit'), css); 243 //console.log(css.indexOf('-webkit'), css);
243 if (css && css.indexOf('-webkit') >= 0) { 244 if (css && css.indexOf('-webkit') >= 0) {
244 // 245 //
245 gradient = {mode: null, stops: null}; 246 gradient = {mode: null, stops: null};
246 //Checking for gradient type 247 //Checking for gradient type
247 if (css.indexOf('-webkit-radial-gradient') >= 0) { 248 if (css.indexOf('-webkit-radial-gradient') >= 0) {
248 //Radial gradient 249 //Radial gradient