diff options
author | Jose Antonio Marquez | 2012-06-22 16:20:14 -0700 |
---|---|---|
committer | Jose Antonio Marquez | 2012-06-22 16:20:14 -0700 |
commit | b97819e9a8da9267d49acd72f918f8c40c8b320e (patch) | |
tree | 0e305bd452ab94c5eac2eee2e76f385adcb9aed0 /js/panels | |
parent | 9a568f56b2684e268975231544a80db78497db02 (diff) | |
download | ninja-b97819e9a8da9267d49acd72f918f8c40c8b320e.tar.gz |
Fix closing logic and init color on chip
Added improved logic to handle toggling from button the color popup. Also added an init color method for the chip to initialize color in it's popup.
Diffstat (limited to 'js/panels')
-rwxr-xr-x | js/panels/color/colorpopup-manager.js | 71 |
1 files changed, 68 insertions, 3 deletions
diff --git a/js/panels/color/colorpopup-manager.js b/js/panels/color/colorpopup-manager.js index fba196e4..bccfcebc 100755 --- a/js/panels/color/colorpopup-manager.js +++ b/js/panels/color/colorpopup-manager.js | |||
@@ -33,7 +33,6 @@ exports.ColorPopupManager = Montage.create(Component, { | |||
33 | window.addEventListener('resize', function (e) { | 33 | window.addEventListener('resize', function (e) { |
34 | this.application.ninja.colorController.colorPopupManager.hideColorPopup(); | 34 | this.application.ninja.colorController.colorPopupManager.hideColorPopup(); |
35 | }.bind(this)); | 35 | }.bind(this)); |
36 | |||
37 | //Closing popups if outside limits | 36 | //Closing popups if outside limits |
38 | document.addEventListener('mousedown', function (e) { | 37 | document.addEventListener('mousedown', function (e) { |
39 | // | 38 | // |
@@ -58,6 +57,8 @@ exports.ColorPopupManager = Montage.create(Component, { | |||
58 | // | 57 | // |
59 | popupHitCheck: { | 58 | popupHitCheck: { |
60 | value: function (element, e) { | 59 | value: function (element, e) { |
60 | //Prevent any action for button to handle toggling | ||
61 | if (e._event.target.inputType || e._event.target.colorMode) return true; | ||
61 | //Storing limits of popup | 62 | //Storing limits of popup |
62 | var top, bottom, left, right; | 63 | var top, bottom, left, right; |
63 | //Checking for popup to be opened otherwise nothing happens | 64 | //Checking for popup to be opened otherwise nothing happens |
@@ -263,6 +264,9 @@ exports.ColorPopupManager = Montage.create(Component, { | |||
263 | this._popupChipBase.props.x = (e._event.clientX - e._event.offsetX)+'px'; | 264 | this._popupChipBase.props.x = (e._event.clientX - e._event.offsetX)+'px'; |
264 | this._popupChipBase.props.y = (e._event.target.clientHeight/2+e._event.clientY - e._event.offsetY)+'px'; | 265 | this._popupChipBase.props.y = (e._event.target.clientHeight/2+e._event.clientY - e._event.offsetY)+'px'; |
265 | } | 266 | } |
267 | // | ||
268 | this._popupChipBase.props.source = e._event.srcElement; | ||
269 | // | ||
266 | this._popupChipBase.colorManager = ColorModel.create(); | 270 | this._popupChipBase.colorManager = ColorModel.create(); |
267 | // | 271 | // |
268 | this._popupChipBase.addEventListener('change', this, false); | 272 | this._popupChipBase.addEventListener('change', this, false); |
@@ -361,7 +365,68 @@ exports.ColorPopupManager = Montage.create(Component, { | |||
361 | e._target.base.popup.element.style.opacity = 1; | 365 | e._target.base.popup.element.style.opacity = 1; |
362 | //Popup was added, so it's opened | 366 | //Popup was added, so it's opened |
363 | e._target.base.opened = true; | 367 | e._target.base.opened = true; |
364 | }/* | 368 | // |
369 | if (e._target.base.props && e._target.base.props.source) { | ||
370 | // | ||
371 | var cbtn = e._target.base.props.source, color, hsv; | ||
372 | // | ||
373 | if (cbtn.colorMode === 'rgb') { | ||
374 | // | ||
375 | if (cbtn.colorValue && !isNaN(cbtn.colorValue.r)) { | ||
376 | color = cbtn.colorValue; | ||
377 | } else if (cbtn.colorValue && cbtn.colorValue.color){ | ||
378 | color = cbtn.colorValue.color; | ||
379 | } else { | ||
380 | return; | ||
381 | } | ||
382 | // | ||
383 | hsv = this.colorManager.rgbToHsv(color.r, color.g, color.b); | ||
384 | } else if (cbtn.colorMode === 'hsl') { | ||
385 | // | ||
386 | if (cbtn.colorValue && !isNaN(cbtn.colorValue.h)) { | ||
387 | color = cbtn.colorValue; | ||
388 | } else if (cbtn.colorValue && cbtn.colorValue.color){ | ||
389 | color = cbtn.colorValue.color; | ||
390 | } else { | ||
391 | return; | ||
392 | } | ||
393 | // | ||
394 | color = this.colorManager.hslToRgb(color.h/360, color.s/100, color.l/100); | ||
395 | // | ||
396 | hsv = this.colorManager.rgbToHsv(color.r, color.g, color.b); | ||
397 | } | ||
398 | // | ||
399 | if (hsv) { | ||
400 | hsv.wasSetByCode = false; | ||
401 | hsv.type = 'change'; | ||
402 | e._target.base._components.wheel.value = hsv; | ||
403 | } | ||
404 | } | ||
405 | } | ||
406 | |||
407 | |||
408 | |||
409 | |||
410 | |||
411 | |||
412 | |||
413 | |||
414 | |||
415 | |||
416 | |||
417 | |||
418 | |||
419 | |||
420 | |||
421 | |||
422 | |||
423 | |||
424 | |||
425 | |||
426 | |||
427 | |||
428 | |||
429 | /* | ||
365 | else if (e._target._element.className === 'cc_popup') { | 430 | else if (e._target._element.className === 'cc_popup') { |
366 | this._popupChipBase.removeEventListener('firstDraw', this, false); | 431 | this._popupChipBase.removeEventListener('firstDraw', this, false); |
367 | //Creating an instance of the popup and sending in created color popup content | 432 | //Creating an instance of the popup and sending in created color popup content |
@@ -429,7 +494,7 @@ exports.ColorPopupManager = Montage.create(Component, { | |||
429 | this._popupChipBase.colorManager.hsv = {h: e._event.hsv.h, s: e._event.hsv.s, v: e._event.hsv.v, type: e._event.type, wasSetByCode: e._event.wasSetByCode}; | 494 | this._popupChipBase.colorManager.hsv = {h: e._event.hsv.h, s: e._event.hsv.s, v: e._event.hsv.v, type: e._event.type, wasSetByCode: e._event.wasSetByCode}; |
430 | this.colorChipChange(e); | 495 | this.colorChipChange(e); |
431 | } else { | 496 | } else { |
432 | console.log(e._event); | 497 | //console.log(e._event); |
433 | } | 498 | } |
434 | return; | 499 | return; |
435 | } | 500 | } |