diff options
-rwxr-xr-x | js/components/hottext.reel/hottext.js | 13 | ||||
-rwxr-xr-x | js/components/hottextunit.reel/hottextunit.js | 9 | ||||
-rwxr-xr-x | js/controllers/elements/body-controller.js | 2 | ||||
-rwxr-xr-x | js/data/pi/pi-data.js | 60 | ||||
-rwxr-xr-x | js/panels/properties.reel/properties.js | 74 | ||||
-rwxr-xr-x | js/panels/properties.reel/sections/custom.reel/custom.js | 6 | ||||
-rwxr-xr-x | js/panels/properties.reel/sections/position-size.reel/position-size.html | 16 | ||||
-rwxr-xr-x | js/panels/properties.reel/sections/position-size.reel/position-size.js | 40 |
8 files changed, 155 insertions, 65 deletions
diff --git a/js/components/hottext.reel/hottext.js b/js/components/hottext.reel/hottext.js index 0480597a..93e6e745 100755 --- a/js/components/hottext.reel/hottext.js +++ b/js/components/hottext.reel/hottext.js | |||
@@ -121,13 +121,19 @@ var HotText = exports.HotText = Montage.create(SliderBase, { | |||
121 | value: 2000 | 121 | value: 2000 |
122 | }, | 122 | }, |
123 | 123 | ||
124 | // Flag used to dispatch a single change event if either or both of value and units are changed | ||
125 | _unitsModified: { | ||
126 | enumerable: false, | ||
127 | value: false | ||
128 | }, | ||
129 | |||
124 | value: { | 130 | value: { |
125 | serializable: true, | 131 | serializable: true, |
126 | enumerable: true, | 132 | enumerable: true, |
127 | get: function() { | 133 | get: function() { |
128 | return this._value; | 134 | return this._value; |
129 | }, | 135 | }, |
130 | set: function(value, fromInput) { | 136 | set: function(value) { |
131 | if (isNaN(value)) { | 137 | if (isNaN(value)) { |
132 | this._valueSyncedWithInputField = false; | 138 | this._valueSyncedWithInputField = false; |
133 | this.needsDraw = true; | 139 | this.needsDraw = true; |
@@ -149,6 +155,9 @@ var HotText = exports.HotText = Montage.create(SliderBase, { | |||
149 | this._valueSyncedWithInputField = false; | 155 | this._valueSyncedWithInputField = false; |
150 | this.needsDraw = true; | 156 | this.needsDraw = true; |
151 | this._dispatchActionEvent(); | 157 | this._dispatchActionEvent(); |
158 | } else if(this._unitsModified) { | ||
159 | // Need to dispatch change event if units changed | ||
160 | this._dispatchActionEvent(); | ||
152 | } | 161 | } |
153 | } | 162 | } |
154 | }, | 163 | }, |
@@ -164,7 +173,7 @@ var HotText = exports.HotText = Montage.create(SliderBase, { | |||
164 | enumerable: false, | 173 | enumerable: false, |
165 | value: function() { | 174 | value: function() { |
166 | this._setEventFlags("change", false); | 175 | this._setEventFlags("change", false); |
167 | Object.getPropertyDescriptor(this, "value").set.call(this, this.inputFunction(this.element.value), true); | 176 | this.value = this.inputFunction(this.element.value); |
168 | } | 177 | } |
169 | }, | 178 | }, |
170 | 179 | ||
diff --git a/js/components/hottextunit.reel/hottextunit.js b/js/components/hottextunit.reel/hottextunit.js index 448eb9d7..2a89db03 100755 --- a/js/components/hottextunit.reel/hottextunit.js +++ b/js/components/hottextunit.reel/hottextunit.js | |||
@@ -40,11 +40,14 @@ var HotTextUnit = exports.HotTextUnit = Montage.create(HotText, { | |||
40 | if(this._acceptableUnits.indexOf(value) !== -1) | 40 | if(this._acceptableUnits.indexOf(value) !== -1) |
41 | { | 41 | { |
42 | this._units = value; | 42 | this._units = value; |
43 | this._unitsModified = true; | ||
43 | this.needsDraw = true; | 44 | this.needsDraw = true; |
44 | 45 | ||
45 | this._setEventFlags("change", false); | 46 | this._setEventFlags("change", true); |
46 | this._dispatchActionEvent(); | 47 | this._dispatchActionEvent(); |
47 | } | 48 | } |
49 | } else { | ||
50 | this._unitsModified = false; | ||
48 | } | 51 | } |
49 | } | 52 | } |
50 | }, | 53 | }, |
@@ -89,13 +92,13 @@ var HotTextUnit = exports.HotTextUnit = Montage.create(HotText, { | |||
89 | var match = (unitsString.replace(noSpaces, "$2")).toLowerCase(); | 92 | var match = (unitsString.replace(noSpaces, "$2")).toLowerCase(); |
90 | if(match) | 93 | if(match) |
91 | { | 94 | { |
92 | Object.getPropertyDescriptor(this, "units").set.call(this, match); | 95 | this.units = match; |
93 | } | 96 | } |
94 | } | 97 | } |
95 | 98 | ||
96 | this._setEventFlags("change", false); | 99 | this._setEventFlags("change", false); |
97 | // Moving this call to after setting the value since value changes are dispatching events before units are set | 100 | // Moving this call to after setting the value since value changes are dispatching events before units are set |
98 | Object.getPropertyDescriptor(this, "value").set.call(this, this.inputFunction(inputString), false); | 101 | this.value = this.inputFunction(inputString); |
99 | } | 102 | } |
100 | }, | 103 | }, |
101 | 104 | ||
diff --git a/js/controllers/elements/body-controller.js b/js/controllers/elements/body-controller.js index 0dc11b82..27989c65 100755 --- a/js/controllers/elements/body-controller.js +++ b/js/controllers/elements/body-controller.js | |||
@@ -37,7 +37,7 @@ exports.BodyController = Montage.create(ElementController, { | |||
37 | case "height": | 37 | case "height": |
38 | case "width": | 38 | case "width": |
39 | case "-webkit-transform-style": | 39 | case "-webkit-transform-style": |
40 | return this.application.ninja.stylesController.getElementStyle(el, p, true, true); | 40 | return this.application.ninja.stylesController.getElementStyle(el, p); |
41 | default: | 41 | default: |
42 | return ElementController.getProperty(el, p, true, true); | 42 | return ElementController.getProperty(el, p, true, true); |
43 | //console.log("Undefined Stage property ", p); | 43 | //console.log("Undefined Stage property ", p); |
diff --git a/js/data/pi/pi-data.js b/js/data/pi/pi-data.js index 92d70141..e3e1de15 100755 --- a/js/data/pi/pi-data.js +++ b/js/data/pi/pi-data.js | |||
@@ -52,8 +52,8 @@ exports.PiData = Montage.create( Montage, { | |||
52 | type : "hottext", | 52 | type : "hottext", |
53 | id : "borderWidth", | 53 | id : "borderWidth", |
54 | prop : "border-width", | 54 | prop : "border-width", |
55 | defaultValue: 0, | 55 | defaultValue: "0 px", |
56 | valueMutator: parseFloat, | 56 | inputFunction: parseFloat, |
57 | label : "Border", | 57 | label : "Border", |
58 | min : 0, | 58 | min : 0, |
59 | max : 100, | 59 | max : 100, |
@@ -131,8 +131,8 @@ exports.PiData = Montage.create( Montage, { | |||
131 | type : "hottext", | 131 | type : "hottext", |
132 | id : "borderWidth", | 132 | id : "borderWidth", |
133 | prop : "border-width", | 133 | prop : "border-width", |
134 | defaultValue: 0, | 134 | defaultValue: "0 px", |
135 | valueMutator: parseFloat, | 135 | inputFunction: parseFloat, |
136 | label : "Border", | 136 | label : "Border", |
137 | min : 0, | 137 | min : 0, |
138 | max : 100, | 138 | max : 100, |
@@ -254,8 +254,8 @@ exports.PiData = Montage.create( Montage, { | |||
254 | type : "hottext", | 254 | type : "hottext", |
255 | id : "borderWidth", | 255 | id : "borderWidth", |
256 | prop : "border-width", | 256 | prop : "border-width", |
257 | defaultValue: 0, | 257 | defaultValue: "0 px", |
258 | valueMutator: parseFloat, | 258 | inputFunction: parseFloat, |
259 | label : "Border", | 259 | label : "Border", |
260 | min : 0, | 260 | min : 0, |
261 | max : 100, | 261 | max : 100, |
@@ -313,7 +313,7 @@ exports.PiData = Montage.create( Montage, { | |||
313 | id : "strokeSize", | 313 | id : "strokeSize", |
314 | prop : "strokeSize", | 314 | prop : "strokeSize", |
315 | label : "Stroke", | 315 | label : "Stroke", |
316 | valueMutator: parseFloat, | 316 | inputFunction: parseFloat, |
317 | min : 0, | 317 | min : 0, |
318 | max : 100, | 318 | max : 100, |
319 | value : 1, | 319 | value : 1, |
@@ -333,23 +333,23 @@ exports.PiData = Montage.create( Montage, { | |||
333 | id: "tlRadius", | 333 | id: "tlRadius", |
334 | prop : "tlRadius", | 334 | prop : "tlRadius", |
335 | label: "TL", | 335 | label: "TL", |
336 | valueMutator: parseFloat, | 336 | inputFunction: parseFloat, |
337 | value : 0, | 337 | value : 0, |
338 | min : 0, | 338 | min : 0, |
339 | max : 100, | 339 | max : 1000, |
340 | unit : "px", | 340 | acceptableUnits: ["px", "pt", "%"], |
341 | acceptableUnits: ["px", "pt", "%"] | 341 | unit : "px" |
342 | }, | 342 | }, |
343 | { | 343 | { |
344 | type : "hottext", | 344 | type : "hottext", |
345 | id : "trRadius", | 345 | id : "trRadius", |
346 | prop : "trRadius", | 346 | prop : "trRadius", |
347 | label : "TR", | 347 | label : "TR", |
348 | valueMutator: parseFloat, | 348 | inputFunction: parseFloat, |
349 | min : 0, | 349 | min : 0, |
350 | max : 100, | 350 | max : 1000, |
351 | unit : "px", | ||
352 | acceptableUnits: ["px", "pt", "%"], | 351 | acceptableUnits: ["px", "pt", "%"], |
352 | unit : "px", | ||
353 | divider: true | 353 | divider: true |
354 | } | 354 | } |
355 | ], | 355 | ], |
@@ -359,22 +359,22 @@ exports.PiData = Montage.create( Montage, { | |||
359 | id : "blRadius", | 359 | id : "blRadius", |
360 | prop : "blRadius", | 360 | prop : "blRadius", |
361 | label : "BL", | 361 | label : "BL", |
362 | valueMutator: parseFloat, | 362 | inputFunction: parseFloat, |
363 | min : 0, | 363 | min : 0, |
364 | max : 100, | 364 | max : 1000, |
365 | unit : "px", | 365 | acceptableUnits: ["px", "pt", "%"], |
366 | acceptableUnits: ["px", "pt", "%"] | 366 | unit : "px" |
367 | }, | 367 | }, |
368 | { | 368 | { |
369 |