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 2021/01/03 17:02:45 UTC

[royale-asjs] branch ChildResize updated (02a50e8 -> 2597ac6)

This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a change to branch ChildResize
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.


    from 02a50e8  Make sure scrollbars don't prevent a height measurement
     new ff08ebb  Setting explcit dimensions directly means read dimensions are different to explicit dimensions which can mess up layout.
     new 2597ac6  An initial implementation of spark Line

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/main/royale/spark/primitives/Line.as       | 96 ++++++++++++++++------
 1 file changed, 69 insertions(+), 27 deletions(-)


[royale-asjs] 02/02: An initial implementation of spark Line

Posted by yi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch ChildResize
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 2597ac62dd8d33c824f62d53191304ef796544f0
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Sun Jan 3 19:02:27 2021 +0200

    An initial implementation of spark Line
---
 .../royale/core/StatesWithTransitionsImpl.as       |  2 +
 .../src/main/royale/spark/primitives/Line.as       | 96 ++++++++++++++++------
 2 files changed, 71 insertions(+), 27 deletions(-)

diff --git a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
index 686ebac..587435a 100644
--- a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
+++ b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
@@ -74,6 +74,8 @@ package org.apache.royale.core
 	     */
 	    private static const PSEUDONYMS:Object =
 	    {
+	        width: "explicitWidth",
+	        height: "explicitHeight",
 	        currentState: "currentStateDeferred"
 	    };
         
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as
index 9431814..0b6249d 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as
@@ -28,9 +28,9 @@ import flash.geom.Rectangle;
 
 import spark.primitives.supportClasses.StrokedElement; */
 import org.apache.royale.events.EventDispatcher;
-import org.apache.royale.geom.Rectangle;
 import mx.core.mx_internal;
 import mx.graphics.IStroke;
+import mx.graphics.SolidColorStroke;
 import mx.graphics.IFill;
 import mx.core.UIComponent;
 import mx.display.Graphics;
@@ -87,7 +87,7 @@ public class Line extends UIComponent
     //  xFrom
     //----------------------------------
 
-    private var _xFrom:Number = 0;
+    private var _xFrom:Number;
     
     [Inspectable(category="General")]
 
@@ -124,7 +124,7 @@ public class Line extends UIComponent
     //  xTo
     //----------------------------------
 
-    private var _xTo:Number = 0;
+    private var _xTo:Number;
     
     [Inspectable(category="General")]
 
@@ -161,7 +161,7 @@ public class Line extends UIComponent
     //  yFrom
     //----------------------------------
 
-    private var _yFrom:Number = 0;
+    private var _yFrom:Number;
     
     [Inspectable(category="General")]
 
@@ -198,7 +198,7 @@ public class Line extends UIComponent
     //  yTo
     //----------------------------------
 
-    private var _yTo:Number = 0;
+    private var _yTo:Number;
     
     [Inspectable(category="General")]
 
@@ -260,13 +260,21 @@ public class Line extends UIComponent
      *  @playerversion AIR 1.5
      *  @productversion Royale 0.9.4
      */
-    /* override protected function measure():void
+    private var realXFrom:Number;
+    private var realXTo:Number;
+    private var realYFrom:Number;
+    private var realYTo:Number;
+    private var measuredWidth:Number;
+    private var measuredHeight:Number;
+    private var measuredX:Number;
+    private var measuredY:Number;
+    override protected function measure():void
     {
-        measuredWidth = Math.abs(xFrom - xTo);
-        measuredHeight = Math.abs(yFrom - yTo);
-        measuredX = Math.min(xFrom, xTo);
-        measuredY = Math.min(yFrom, yTo);
-    } */
+        measuredWidth = Math.abs(realXFrom - realXTo);
+        measuredHeight = Math.abs(realYFrom - realYTo);
+        measuredX = Math.min(realXFrom, realXTo);
+        measuredY = Math.min(realYFrom, realYTo);
+    }
 
     /**
      * @private 
@@ -297,16 +305,17 @@ public class Line extends UIComponent
      *  @playerversion AIR 1.5
      *  @productversion Royale 0.9.4
      */
-   /*  override protected function draw(g:Graphics):void
+    //  override protected function draw(g:Graphics):void
+    protected function draw(g:Graphics):void
     {
         // Our bounding box is (x1, y1, x2, y2)
-        var x1:Number = measuredX + drawX;
-        var y1:Number = measuredY + drawY;
-        var x2:Number = measuredX + drawX + width;
-        var y2:Number = measuredY + drawY + height;    
+        var x1:Number = measuredX;
+        var y1:Number = measuredY;
+        var x2:Number = measuredX + width;
+        var y2:Number = measuredY + height;    
         
         // Which way should we draw the line?
-        if ((xFrom <= xTo) == (yFrom <= yTo))
+        if ((realXFrom <= realXTo) == (realYFrom <= realYTo))
         { 
             // top-left to bottom-right
             g.moveTo(x1, y1);
@@ -318,7 +327,7 @@ public class Line extends UIComponent
             g.moveTo(x1, y2);
             g.lineTo(x2, y1);
         }
-    } */
+    }
 	
 	
 	
@@ -393,18 +402,51 @@ public class Line extends UIComponent
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
     {
-	    // TODO use lineTo instead of drawRect()
         super.updateDisplayList(unscaledWidth,unscaledHeight);
         var g:Graphics = graphics;
-        g.clear();
-        
-        if (stroke)
-            stroke.apply(g, new Rectangle(0, 0, unscaledWidth, 1), null);
-        
-        g.drawRect(0, 0, unscaledWidth, unscaledHeight);
+        if (stroke is SolidColorStroke)
+	{
+		var solidColorStroke:SolidColorStroke = stroke as SolidColorStroke;
+		g.lineStyle(solidColorStroke.weight, solidColorStroke.color, solidColorStroke.alpha);
+		g.clear();
+		if (!isNaN(_xFrom) && !isNaN(_yFrom) && !isNaN(_xTo) && !isNaN(_yTo) )
+		{
+			realXFrom = _xFrom;
+			realYFrom = _yFrom;
+			realXTo = _xTo;
+			realYTo = _yTo;
+		} else
+		{
+			var hasWidth:Boolean =  !isNaN(unscaledWidth) && unscaledWidth > 0;
+			var hasHeight:Boolean =  !isNaN(unscaledHeight) && unscaledHeight > 0;
+			if (hasWidth || hasHeight)
+			{
+				var isDiagonal:Boolean = hasWidth && hasHeight;
+				if (isDiagonal)
+				{
+					realXFrom = isNaN(right) ? 0 : unscaledWidth;
+					realXTo = isNaN(right) ? unscaledWidth : 0;
+					realYFrom = 0;
+					realYTo = unscaledHeight;
+				} else
+				{
+					realXFrom = 0;
+					realYFrom = 0;
+					realXTo = hasWidth ? unscaledWidth : 0;
+					realYTo = hasHeight ? unscaledHeight : 0;
+				}
+			} else
+			{
+				return;
+			}
+		}
+		measure();
+		draw(g);
+		width = Math.max(width, solidColorStroke.weight);
+		height = Math.max(height, solidColorStroke.weight);
+		g.endStroke();
+	}
     }
 
-	
 }
-
 }


[royale-asjs] 01/02: Setting explcit dimensions directly means read dimensions are different to explicit dimensions which can mess up layout.

Posted by yi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch ChildResize
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit ff08ebba82e570633fd715c786455cacc4633e3e
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Wed Dec 30 16:15:33 2020 +0200

    Setting explcit dimensions directly means read dimensions are different to explicit dimensions which can mess up layout.
    
    This effectively reverts 7628fb6071634646344a74f5fde8f50509dd26de
---
 .../src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as | 2 --
 1 file changed, 2 deletions(-)

diff --git a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
index 587435a..686ebac 100644
--- a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
+++ b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
@@ -74,8 +74,6 @@ package org.apache.royale.core
 	     */
 	    private static const PSEUDONYMS:Object =
 	    {
-	        width: "explicitWidth",
-	        height: "explicitHeight",
 	        currentState: "currentStateDeferred"
 	    };