This is an automated email from the ASF dual-hosted git repository. yishayw pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 88397d8631327748d8eadd682a475bfdd9630d98 Author: Yishay Weiss <[email protected]> AuthorDate: Fri Sep 25 17:32:15 2020 +0100 Push current state of new emulation components --- .../src/main/royale/SparkRoyaleClasses.as | 29 ++ .../royale/spark/components/ButtonBarButton.as | 27 +- .../spark/components/SkinnableDataContainer.as | 4 +- .../supportClasses/ButtonBarHorizontalLayout.as | 8 +- .../src/main/royale/spark/primitives/Ellipse.as | 371 +++------------------ 5 files changed, 88 insertions(+), 351 deletions(-) diff --git a/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as b/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as index 8e006fe..8554576 100644 --- a/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as +++ b/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as @@ -98,6 +98,35 @@ internal class SparkRoyaleClasses import spark.components.beads.controllers.TabBarController; TabBarController; import spark.controls.advancedDataGridClasses.MXAdvancedDataGridItemRenderer; MXAdvancedDataGridItemRenderer; import spark.events.DropDownEvent; DropDownEvent; + + +import spark.components.ButtonBarButton; ButtonBarButton; +import spark.components.IItemRenderer; IItemRenderer; +//import spark.components.SkinnableDataContainer; SkinnableDataContainer; +//import spark.components.VideoDisplay; VideoDisplay; +//import spark.components.mediaClasses.ScrubBar; ScrubBar; +//import spark.components.mediaClasses.VolumeBar; VolumeBar; +import spark.components.supportClasses.ButtonBarHorizontalLayout; ButtonBarHorizontalLayout; +//import spark.effects.AnimateColor; AnimateColor; // needed +import spark.effects.Fade; Fade; +//import spark.effects.Resize; Resize; // needed +//import spark.effects.SetAction; SetAction; // needed +import spark.effects.easing.IEaser; IEaser; +//import spark.effects.easing.Power; Power; // needed +//import spark.events.TitleWindowBoundsEvent; TitleWindowBoundsEvent; // needed +import spark.filters.ColorMatrixFilter; ColorMatrixFilter; +import spark.filters.DropShadowFilter; DropShadowFilter; +import spark.filters.GlowFilter; GlowFilter; +import spark.primitives.Ellipse; Ellipse; +//import spark.skins.SparkButtonSkin; SparkButtonSkin; // needed +import spark.components.IItemRendererOwner; IItemRendererOwner; +//import spark.skins.spark.mediaClasses.fullScreen.PlayPauseButtonSkin; PlayPauseButtonSkin; +//import spark.skins.spark.mediaClasses.fullScreen.ScrubBarSkin; ScrubBarSkin; +//import spark.skins.spark.mediaClasses.fullScreen.VolumeBarSkin; VolumeBarSkin; +//import spark.skins.spark.mediaClasses.normal.PlayPauseButtonSkin; PlayPauseButtonSkin; +//import spark.skins.spark.mediaClasses.normal.ScrubBarSkin; ScrubBarSkin; +//import spark.skins.spark.mediaClasses.normal.VolumeBarSkin; VolumeBarSkin; +//import spark.utils.LabelUtil; LabelUtil; // needed } diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/ButtonBarButton.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/ButtonBarButton.as index 119ccbd..0584b46 100644 --- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/ButtonBarButton.as +++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/ButtonBarButton.as @@ -144,8 +144,8 @@ public class ButtonBarButton extends ToggleButton implements IItemRenderer return; _showsCaret = value; - drawFocusAnyway = true; - drawFocus(value); + //drawFocusAnyway = true; + //drawFocus(value); } //---------------------------------- @@ -182,7 +182,8 @@ public class ButtonBarButton extends ToggleButton implements IItemRenderer */ public function get data():Object { - return content; + return null; + //return content; } /** @@ -190,7 +191,7 @@ public class ButtonBarButton extends ToggleButton implements IItemRenderer */ public function set data(value:Object):void { - content = value; + //content = value; dispatchEvent(new Event("dataChange")); } @@ -258,8 +259,8 @@ public class ButtonBarButton extends ToggleButton implements IItemRenderer { _label = value; - if (labelDisplay) - labelDisplay.text = _label; + //if (labelDisplay) + //labelDisplay.text = _label; } } @@ -272,13 +273,13 @@ public class ButtonBarButton extends ToggleButton implements IItemRenderer /** * @private */ - override protected function buttonReleased():void - { - if (selected && !allowDeselection) - return; - - super.buttonReleased(); - } + //override protected function buttonReleased():void + //{ + //if (selected && !allowDeselection) + //return; + // + //super.buttonReleased(); + //} } } diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableDataContainer.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableDataContainer.as index ff318a2..319ecf3 100644 --- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableDataContainer.as +++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableDataContainer.as @@ -65,7 +65,7 @@ use namespace mx_internal; */ [Event(name="rendererRemove", type="spark.events.RendererExistenceEvent")] -include "../styles/metadata/BasicInheritingTextStyles.as" +//include "../styles/metadata/BasicInheritingTextStyles.as" /** * The alpha of the focus ring for this component. @@ -105,7 +105,7 @@ include "../styles/metadata/BasicInheritingTextStyles.as" [DefaultProperty("dataProvider")] -[IconFile("SkinnableDataContainer.png")] +//[IconFile("SkinnableDataContainer.png")] /** * The SkinnableDataContainer class is the base container class for diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ButtonBarHorizontalLayout.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ButtonBarHorizontalLayout.as index 38dae89..4616c8e 100644 --- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ButtonBarHorizontalLayout.as +++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ButtonBarHorizontalLayout.as @@ -151,7 +151,7 @@ public class ButtonBarHorizontalLayout extends LayoutBase var count:int = layoutTarget.numElements; for (var i:int = 0; i < count; i++) { - var layoutElement:ILayoutElement = layoutTarget.getElementAt(i); + var layoutElement:ILayoutElement = layoutTarget.getElementAt(i) as ILayoutElement; if (!layoutElement || !layoutElement.includeInLayout) continue; @@ -192,7 +192,7 @@ public class ButtonBarHorizontalLayout extends LayoutBase var layoutElement:ILayoutElement; for (var i:int = 0; i < count; i++) { - layoutElement = layoutTarget.getElementAt(i); + layoutElement = layoutTarget.getElementAt(i) as ILayoutElement; if (!layoutElement || !layoutElement.includeInLayout) { elementCount--; @@ -228,7 +228,7 @@ public class ButtonBarHorizontalLayout extends LayoutBase averageWidth = width / elementCount; for (i = 0; i < count; i++) { - layoutElement = layoutTarget.getElementAt(i); + layoutElement = layoutTarget.getElementAt(i) as ILayoutElement; if (!layoutElement || !layoutElement.includeInLayout) continue; @@ -250,7 +250,7 @@ public class ButtonBarHorizontalLayout extends LayoutBase var roundOff:Number = 0; for (i = 0; i < count; i++) { - layoutElement = layoutTarget.getElementAt(i); + layoutElement = layoutTarget.getElementAt(i) as ILayoutElement; if (!layoutElement || !layoutElement.includeInLayout) continue; diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Ellipse.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Ellipse.as index 2bc56fd..64b8f38 100644 --- a/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Ellipse.as +++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Ellipse.as @@ -20,336 +20,43 @@ package spark.primitives { -import mx.display.Graphics; -import mx.geom.Matrix; -import org.apache.royale.geom.Point; -import org.apache.royale.geom.Rectangle; - -import mx.core.mx_internal; -import mx.utils.MatrixUtil; - -import spark.primitives.supportClasses.FilledElement; - -use namespace mx_internal; - -/** - * The Ellipse class is a filled graphic element that draws an ellipse. - * To draw the ellipse, this class calls the <code>Graphics.drawEllipse()</code> - * method. - * - * @see mx.display.Graphics - * - * @includeExample examples/EllipseExample.mxml - * - * @langversion 3.0 - * @playerversion Flash 10 - * @playerversion AIR 1.5 - * @productversion Flex 4 - */ -public class Ellipse extends FilledElement -{ - //include "../core/Version.as"; - - //-------------------------------------------------------------------------- - // - // Constructor - // - //-------------------------------------------------------------------------- - - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10 - * @playerversion AIR 1.5 - * @productversion Flex 4 - */ - public function Ellipse() - { - super(); - } - - //-------------------------------------------------------------------------- - // - // Properties - // - //-------------------------------------------------------------------------- - - //-------------------------------------------------------------------------- - // - // Overridden methods - // - //-------------------------------------------------------------------------- - - /** - * @inheritDoc - * - * @langversion 3.0 - * @playerversion Flash 10 - * @playerversion AIR 1.5 - * @productversion Flex 4 - */ - override protected function draw(g:Graphics):void - { - g.drawEllipse(drawX, drawY, width, height); - } - - /** - * @private - */ - override protected function transformWidthForLayout(width:Number, - height:Number, - postLayoutTransform:Boolean = true):Number - { - if (postLayoutTransform && hasComplexLayoutMatrix) - width = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2, - layoutFeatures.layoutMatrix).width; - - // Take stroke into account - return width + getStrokeExtents(postLayoutTransform).width; - } - - /** - * @private - */ - override protected function transformHeightForLayout(width:Number, - height:Number, - postLayoutTransform:Boolean = true):Number - { - if (postLayoutTransform && hasComplexLayoutMatrix) - height = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2, - layoutFeatures.layoutMatrix).height; - - // Take stroke into account - return height + getStrokeExtents(postLayoutTransform).height; - } - - /** - * @inheritDoc - * - * @langversion 3.0 - * @playerversion Flash 10 - * @playerversion AIR 1.5 - * @productversion Flex 4 - */ - override public function getBoundsXAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number - { - var strokeExtents:Rectangle = getStrokeExtents(postLayoutTransform); - var m:Matrix = getComplexMatrix(postLayoutTransform); - if (!m) - return strokeExtents.left + this.x; - - if (!isNaN(width)) - width -= strokeExtents.width; - if (!isNaN(height)) - height -= strokeExtents.height; - - // Calculate the width and height pre-transform: - var newSize:Point = MatrixUtil.fitBounds(width, height, m, - explicitWidth, explicitHeight, - preferredWidthPreTransform(), - preferredHeightPreTransform(), - minWidth, minHeight, - maxWidth, maxHeight); - if (!newSize) - newSize = new Point(minWidth, minHeight); - - return strokeExtents.left + - MatrixUtil.getEllipseBoundingBox(newSize.x / 2, newSize.y / 2, newSize.x / 2, newSize.y / 2, m).x; - } - - /** - * @inheritDoc - * - * @langversion 3.0 - * @playerversion Flash 10 - * @playerversion AIR 1.5 - * @productversion Flex 4 - */ - override public function getBoundsYAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number - { - var strokeExtents:Rectangle = getStrokeExtents(postLayoutTransform); - var m:Matrix = getComplexMatrix(postLayoutTransform); - if (!m) - return strokeExtents.top + this.y; - - if (!isNaN(width)) - width -= strokeExtents.width; - if (!isNaN(height)) - height -= strokeExtents.height; - - // Calculate the width and height pre-transform: - var newSize:Point = MatrixUtil.fitBounds(width, height, m, - explicitWidth, explicitHeight, - preferredWidthPreTransform(), - preferredHeightPreTransform(), - minWidth, minHeight, - maxWidth, maxHeight); - if (!newSize) - newSize = new Point(minWidth, minHeight); - - return strokeExtents.top + - MatrixUtil.getEllipseBoundingBox(newSize.x / 2, newSize.y / 2, newSize.x / 2, newSize.y / 2, m).y; - } - - /** - * @private - */ - override public function getLayoutBoundsX(postLayoutTransform:Boolean = true):Number - { - var stroke:Number = getStrokeExtents(postLayoutTransform).left; - - if (postLayoutTransform && hasComplexLayoutMatrix) - return stroke + MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2, - layoutFeatures.layoutMatrix).x; - - return stroke + this.x; - } - - /** - * @private - */ - override public function getLayoutBoundsY(postLayoutTransform:Boolean = true):Number - { - var stroke:Number = getStrokeExtents(postLayoutTransform).top; - - if (postLayoutTransform && hasComplexLayoutMatrix) - return stroke + MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2, - layoutFeatures.layoutMatrix).y; - - return stroke + this.y; - } - - /** - * @private - * Returns the bounding box of the transformed ellipse(width, height) with matrix m. - */ - private function getBoundingBox(width:Number, height:Number, m:Matrix):Rectangle - { - return MatrixUtil.getEllipseBoundingBox(0, 0, width / 2, height / 2, m); - } - - /** - * @private - */ - override public function setLayoutBoundsSize(width:Number, - height:Number, - postLayoutTransform:Boolean = true):void - { - var m:Matrix = getComplexMatrix(postLayoutTransform); - if (!m) - { - super.setLayoutBoundsSize(width, height, postLayoutTransform); - return; - } - - setLayoutBoundsTransformed(width, height, m); - } - - /** - * @private - */ - private function setLayoutBoundsTransformed(width:Number, height:Number, m:Matrix):void - { - var strokeExtents:Rectangle = getStrokeExtents(true); - width -= strokeExtents.width; - height -= strokeExtents.height; - - var size:Point = fitLayoutBoundsIterative(width, height, m); - - // We couldn't find a solution, try to relax the constraints - if (!size && !isNaN(width) && !isNaN(height)) - { - // Try without width constraint - var size1:Point = fitLayoutBoundsIterative(NaN, height, m); - - // Try without height constraint - var size2:Point = fitLayoutBoundsIterative(width, NaN, m); - - // Ignore solutions that will exceed the requested size - if (size1 && getBoundingBox(size1.x, size1.y, m).width > width) - size1 = null; - if (size2 && getBoundingBox(size2.x, size2.y, m).height > height) - size2 = null; - - // Which size was better? - if (size1 && size2) - { - var pickSize1:Boolean = size1.x * size1.y > size2.x * size2.y; - - if (pickSize1) - size = size1; - else - size = size2; - } - else if (size1) - { - size = size1; - } - else - { - size = size2; - } - } - - if (size) - setActualSize(size.x, size.y); - else - setActualSize(minWidth, minHeight); - } - - /** - * Iteratively approach a solution. Returns 0 if no exact solution exists. - * NaN values for width/height mean "not constrained" in that dimesion. - * - * @private - */ - private function fitLayoutBoundsIterative(width:Number, height:Number, m:Matrix):Point - { - var newWidth:Number = this.preferredWidthPreTransform(); - var newHeight:Number = this.preferredHeightPreTransform(); - var fitWidth:Number = MatrixUtil.transformBounds(newWidth, newHeight, m).x; - var fitHeight:Number = MatrixUtil.transformBounds(newWidth, newHeight, m).y; - - if (isNaN(width)) - fitWidth = NaN; - if (isNaN(height)) - fitHeight = NaN; - - var i:int = 0; - while (i++ < 150) - { - var postTransformBounds:Rectangle = getBoundingBox(newWidth, newHeight, m); - - var widthDifference:Number = isNaN(width) ? 0 : width - postTransformBounds.width; - var heightDifference:Number = isNaN(height) ? 0 : height - postTransformBounds.height; - - if (Math.abs(widthDifference) < 0.1 && Math.abs(heightDifference) < 0.1) - { - return new Point(newWidth, newHeight); - } - - fitWidth += widthDifference * 0.5; - fitHeight += heightDifference * 0.5; - - var newSize:Point = MatrixUtil.fitBounds(fitWidth, - fitHeight, - m, - explicitWidth, - explicitHeight, - preferredWidthPreTransform(), - preferredHeightPreTransform(), - minWidth, minHeight, - maxWidth, maxHeight); - - if (!newSize) - break; - - newWidth = newSize.x; - newHeight = newSize.y; - } - - return null; - } -} + import mx.core.UIComponent; + + /** + * The Ellipse class is a filled graphic element that draws an ellipse. + * To draw the ellipse, this class calls the <code>Graphics.drawEllipse()</code> + * method. + * + * @see mx.display.Graphics + * + * @includeExample examples/EllipseExample.mxml + * + * @langversion 3.0 + * @playerversion Flash 10 + * @playerversion AIR 1.5 + * @productversion Flex 4 + */ + public class Ellipse extends UIComponent + { + //include "../core/Version.as"; + + //-------------------------------------------------------------------------- + // + // Constructor + // + //-------------------------------------------------------------------------- + + /** + * Constructor. + * + * @langversion 3.0 + * @playerversion Flash 10 + * @playerversion AIR 1.5 + * @productversion Flex 4 + */ + public function Ellipse() + { + super(); + } + } }
