You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2019/04/02 09:20:11 UTC
[royale-asjs] branch color_picker updated: Mouse controller for
color spectrum now functional.
This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch color_picker
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/color_picker by this push:
new 15615ba Mouse controller for color spectrum now functional.
15615ba is described below
commit 15615ba38a1f0d0e7bd7df8cd79491c1e1302732
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Tue Apr 2 12:19:53 2019 +0300
Mouse controller for color spectrum now functional.
---
.../projects/Basic/src/main/resources/defaults.css | 2 +-
.../projects/Basic/src/main/royale/BasicClasses.as | 1 +
.../apache/royale/html/beads/ColorSpectrumView.as | 8 ++--
.../controllers/ColorSpectrumMouseController.as | 46 +++++++++++++---------
.../royale/html/beads/models/ColorSpectrumModel.as | 18 +++++----
.../royale/html/supportClasses/ColorSpectrum.as | 32 +++++++++++----
.../projects/Core/src/main/royale/CoreClasses.as | 4 +-
.../org/apache/royale/core/IColorSpectrumModel.as | 8 ++--
.../src/main/royale/org/apache/royale/utils/HSV.as | 6 +--
9 files changed, 77 insertions(+), 48 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css
index cc174b7..8c0fec7 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -603,7 +603,7 @@ SwatchList
ColorSpectrum
{
- IBeadModel: ClassReference("org.apache.royale.html.beads.models.ColorModel");
+ IBeadModel: ClassReference("org.apache.royale.html.beads.models.ColorSpectrumModel");
IBeadView: ClassReference("org.apache.royale.html.beads.ColorSpectrumView");
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ColorSpectrumMouseController");
}
diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
index dcf7309..9517edb 100644
--- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
@@ -43,6 +43,7 @@ internal class BasicClasses
import org.apache.royale.html.beads.AlertView; AlertView;
import org.apache.royale.html.beads.ColorSpectrumView; ColorSpectrumView;
import org.apache.royale.html.beads.controllers.AlertController; AlertController;
+ import org.apache.royale.html.beads.controllers.ColorSpectrumMouseController; ColorSpectrumMouseController;
import org.apache.royale.html.beads.DividedContainerView; DividedContainerView;
import org.apache.royale.html.beads.models.DividedContainerModel; DividedContainerModel;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as
index ed02b78..5605836 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as
@@ -18,7 +18,7 @@
package org.apache.royale.html.beads
{
import org.apache.royale.core.BeadViewBase;
- import org.apache.royale.core.IColorModel;
+ import org.apache.royale.core.IColorSpectrumModel;
import org.apache.royale.core.IRenderedObject;
import org.apache.royale.core.IStrand;
import org.apache.royale.core.IStrandWithModel;
@@ -70,16 +70,16 @@ package org.apache.royale.html.beads
private function updateSpectrum():void
{
- var color:String = CSSUtils.attributeFromColor(colorModel.color);
+ var color:String = CSSUtils.attributeFromColor(colorModel.baseColor);
COMPILE::JS
{
(host as IRenderedObject).element.style.background = "linear-gradient(to top, #000000, transparent), linear-gradient(to left, " + color + ", #ffffff)";
}
}
- private function get colorModel():IColorModel
+ private function get colorModel():IColorSpectrumModel
{
- return (host as IStrandWithModel).model as IColorModel
+ return (host as IStrandWithModel).model as IColorSpectrumModel;
}
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as
index c45805d..dedf641 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as
@@ -19,15 +19,20 @@
package org.apache.royale.html.beads.controllers
{
import org.apache.royale.core.IBeadController;
+ import org.apache.royale.core.IColorSpectrumModel;
import org.apache.royale.core.IStrand;
-
+ import org.apache.royale.core.IStrandWithModel;
+ import org.apache.royale.core.IUIBase;
+ import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.events.MouseEvent;
+ import org.apache.royale.utils.HSV;
+ import org.apache.royale.utils.hsvToHex;
+ import org.apache.royale.utils.rgbToHsv;
COMPILE::JS
{
- import org.apache.royale.core.IStrandWithModel;
- import org.apache.royale.core.IUIBase;
- import org.apache.royale.events.MouseEvent;
+ import org.apache.royale.events.BrowserEvent;
}
-
+
/**
* The ColorSpectrumMouseController class is a controller for
* the ColorSpecrum control. It's job is to detect the location
@@ -57,28 +62,31 @@ package org.apache.royale.html.beads.controllers
public function set strand(value:IStrand):void
{
_strand = value;
- COMPILE::JS
- {
- goog.events.listen(track.element, goog.events.EventType.CLICK,
- handleClick, false, this);
- }
+ (value as IEventDispatcher).addEventListener(MouseEvent.CLICK, handleClick);
}
- /**
+ /**
* @royaleignorecoercion org.apache.royale.events.BrowserEvent
*/
- COMPILE::JS
private function handleClick(event:MouseEvent):void
{
- var bevent:BrowserEvent = event["wrappedEvent"] as BrowserEvent;
- var host:ColorSpectrum = _strand as IUIBase;
- var xloc:Number = bevent.offsetX;
- var yloc:Number = bevent.offsetY;
+ var host:IUIBase = _strand as IUIBase;
+ var yloc:Number;
+ var xloc:Number;
+ COMPILE::JS
+ {
+ var bevent:BrowserEvent = event["nativeEvent"] as BrowserEvent;
+ xloc = bevent.offsetX;
+ yloc = bevent.offsetY;
+ }
var widthRatio:Number = xloc / host.width;
- var heightRatio:Number = yloc / host.height;
+ var heightRatio:Number = (host.height - yloc) / host.height;
var model:IColorSpectrumModel = (_strand as IStrandWithModel).model as IColorSpectrumModel;
- var hsvBaseColor:HSV = rgbToHsv(model.baseColor.color);
- model.hsvModifiedColor.color = hsvToHex(hsvBaseColor.h, hsvBaseColor.s * heightRatio, hsvBaseColor.v * widthRatio);
+ var r:uint = (model.baseColor >> 16 ) & 255;
+ var g:uint = (model.baseColor >> 8 ) & 255;
+ var b:uint = model.baseColor & 255;
+ var hsvBaseColor:HSV = rgbToHsv(r, g, b);
+ model.hsvModifiedColor = hsvToHex(hsvBaseColor.h, widthRatio * 100, heightRatio * 100);
}
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as
index 034c0f5..259d697 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as
@@ -19,11 +19,11 @@
package org.apache.royale.html.beads.models
{
import org.apache.royale.core.IBead;
- import org.apache.royale.core.IStrand;
import org.apache.royale.core.IColorSpectrumModel;
- import org.apache.royale.core.IColorModel;
+ import org.apache.royale.core.IStrand;
import org.apache.royale.events.Event;
import org.apache.royale.events.EventDispatcher;
+ import org.apache.royale.events.ValueChangeEvent;
/**
* The ColorSpectrumModel class is the most basic data model for a
@@ -37,8 +37,8 @@ package org.apache.royale.html.beads.models
public class ColorSpectrumModel extends EventDispatcher implements IColorSpectrumModel
{
private var _color:uint;
- private var _baseColor:IColorModel;
- private var _hsvModifiedColor:IColorModel;
+ private var _baseColor:uint;
+ private var _hsvModifiedColor:uint;
/**
* Constructor.
*
@@ -63,7 +63,7 @@ package org.apache.royale.html.beads.models
* @playerversion AIR 2.6
* @productversion Royale 0.9.6
*/
- public function get baseColor():IColorModel
+ public function get baseColor():uint
{
return _baseColor;
}
@@ -71,9 +71,10 @@ package org.apache.royale.html.beads.models
/**
* @private
*/
- public function set baseColor(value:IColorModel):void
+ public function set baseColor(value:uint):void
{
_baseColor = value;
+ dispatchEvent(new Event("baseColorChange"));
}
/**
* @copy org.apache.royale.core.ISpectrumColorModel#hsvModifiedColor
@@ -83,7 +84,7 @@ package org.apache.royale.html.beads.models
* @playerversion AIR 2.6
* @productversion Royale 0.9.6
*/
- public function get hsvModifiedColor():IColorModel
+ public function get hsvModifiedColor():uint
{
return _hsvModifiedColor;
}
@@ -91,9 +92,10 @@ package org.apache.royale.html.beads.models
/**
* @private
*/
- public function set hsvModifiedColor(value:IColorModel):void
+ public function set hsvModifiedColor(value:uint):void
{
_hsvModifiedColor = value;
+ dispatchEvent(new Event("hsvModifiedColorChange"));
}
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as
index ce507e1..72a158d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as
@@ -18,7 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.html.supportClasses
{
- import org.apache.royale.core.IColorModel;
+ import org.apache.royale.core.IColorSpectrumModel;
import org.apache.royale.core.UIBase;
import org.apache.royale.events.Event;
@@ -55,7 +55,7 @@ package org.apache.royale.html.supportClasses
public function ColorSpectrum()
{
super();
- model.addEventListener("colorChange", colorChangeHandler);
+ model.addEventListener("hsvModifiedColorChange", colorChangeHandler);
}
/**
@@ -65,18 +65,34 @@ package org.apache.royale.html.supportClasses
* @playerversion AIR 2.6
* @productversion Royale 0.9.6
*/
- [Bindable(event="change")]
- public function get color():uint
+ public function get baseColor():uint
{
- return IColorModel(model).color;
+ return IColorSpectrumModel(model).baseColor;
}
/**
- * @private
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.6
*/
- public function set color(value:uint):void
+ public function set baseColor(value:uint):void
+ {
+ IColorSpectrumModel(model).baseColor = value;
+ }
+
+ /**
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.6
+ */
+ [Bindable(event="change")]
+ public function get hsvModifiedColor():uint
{
- IColorModel(model).color = value;
+ return IColorSpectrumModel(model).hsvModifiedColor;
}
/**
diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as
index 9b56dfc..c0a153f 100644
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@ -37,7 +37,7 @@ internal class CoreClasses
import org.apache.royale.core.IIconSupport; IIconSupport;
import org.apache.royale.html.beads.IListView; IListView;
import org.apache.royale.events.ItemAddedEvent; ItemAddedEvent;
-import org.apache.royale.events.ItemRemovedEvent; ItemRemovedEvent;
+ import org.apache.royale.events.ItemRemovedEvent; ItemRemovedEvent;
import org.apache.royale.html.beads.IDropDownListView; IDropDownListView;
import org.apache.royale.events.ItemAddedEvent; ItemAddedEvent;
@@ -281,6 +281,8 @@ import org.apache.royale.events.ItemRemovedEvent; ItemRemovedEvent;
import org.apache.royale.utils.measureComponent; measureComponent;
import org.apache.royale.utils.loadBeadFromValuesManager; loadBeadFromValuesManager;
+ import org.apache.royale.utils.HSV; HSV;
+ import org.apache.royale.utils.rgbToHsv; rgbToHsv;
import org.apache.royale.utils.hsvToHex; hsvToHex;
import org.apache.royale.utils.array.rangeCheck; rangeCheck;
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as
index e505999..60bd368 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as
@@ -37,8 +37,8 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.9.6
*/
- function get baseColor():IColorModel;
- function set baseColor(value:IColorModel):void;
+ function get baseColor():uint;
+ function set baseColor(value:uint):void;
/**
* The resultant color after hue and saturation were modified
@@ -48,7 +48,7 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.9.6
*/
- function get hsvModifiedColor():IColorModel;
- function set hsvModifiedColor(value:IColorModel):void;
+ function get hsvModifiedColor():uint;
+ function set hsvModifiedColor(value:uint):void;
}
}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as
index 8ba42e8..42cacc9 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as
@@ -43,7 +43,7 @@ package org.apache.royale.utils
* @playerversion AIR 2.6
* @productversion Royale 0.9.6
*/
- public function HSV(h:Number, s:Number, v:Number)
+ public function HSV(h:Number=NaN, s:Number=NaN, v:Number=NaN)
{
_h = h;
_s = s;
@@ -52,7 +52,7 @@ package org.apache.royale.utils
public function get h():Number
{
- _return h;
+ return _h;
}
public function set h(value:Number):void
@@ -62,7 +62,7 @@ package org.apache.royale.utils
public function get s():Number
{
- _return s;
+ return _s;
}
public function set s(value:Number):void