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();
+           }
+       }    
 }

Reply via email to