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

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


The following commit(s) were added to refs/heads/divided by this push:
     new b91da0b  Some nore changes to emulate DividedBox
b91da0b is described below

commit b91da0b4f7c0f6b2f2604111426f9022e3becc48
Author: Yishay Weiss <yishayj...@hotmail.com>
AuthorDate: Sun Aug 8 02:36:34 2021 +0300

    Some nore changes to emulate DividedBox
    
    Make sure DividedBox.updateDisplayList() is triggered, workaround mx 
namespace bug, cheat to try to make separator layer chrome-like.
---
 .../src/main/royale/mx/containers/DividedBox.as    | 27 ++++++++++++++++++----
 .../royale/mx/containers/beads/DividedBoxLayout.as |  7 +++---
 2 files changed, 26 insertions(+), 8 deletions(-)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/DividedBox.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/DividedBox.as
index 2a410c7..34832a0 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/DividedBox.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/DividedBox.as
@@ -663,6 +663,8 @@ public class DividedBox extends Box
        override protected function updateDisplayList(unscaledWidth:Number,
                                                                                
                  unscaledHeight:Number):void
        {
+               dividerLayer.width = unscaledWidth;
+               dividerLayer.height = unscaledHeight;
                var n:int;
                var i:int;
 
@@ -825,12 +827,27 @@ public class DividedBox extends Box
        /**
         *  @private
         */
+       override public function invalidateDisplayList():void
+       {
+               super.invalidateDisplayList();
+               updateDisplayList(width, height);
+       }
+
+       override public function get numElements():int
+       {
+               return dividerLayer ? super.numElements - 1 : super.numElements;
+       }
+
+       /**
+        *  @private
+        */
        private function createDivider(i:int):BoxDivider
        {
                // Create separate layer for holding divider objects.
                if (!dividerLayer)
                {
                        dividerLayer = UIComponent(rawChildren.addChild(new 
UIComponent()));
+                       dividerLayer.setIncludeInLayout(false);
                }
 
                var divider:BoxDivider = BoxDivider(new dividerClass());
@@ -864,7 +881,7 @@ public class DividedBox extends Box
                //
                //divider.styleName = basedOn;
                //
-               //divider.owner = this;
+               divider.owner = this;
                
                return divider;
        }
@@ -895,7 +912,7 @@ public class DividedBox extends Box
                    //8           4             6               6              
6        
                    //8           6             4               4              4
 
-               var divider:UIComponent = UIComponent(getDividerAt(i));
+               var divider:BoxDivider = BoxDivider(getDividerAt(i));
 
                 var vm:EdgeMetrics = viewMetricsAndPadding;
 
@@ -1083,7 +1100,7 @@ public class DividedBox extends Box
                
                        var sz:Number = vertical ? child.height : child.width;
 
-                       var mx:Number = vertical ? child.maxHeight : 
child.maxWidth;
+                       var myMx:Number = vertical ? child.maxHeight : 
child.maxWidth;
                        
                        var umn:Number = vertical ?
                                                         
child.explicitMinHeight :
@@ -1094,12 +1111,12 @@ public class DividedBox extends Box
                        
                        // Compute these for later use.
                        var dMin:Number = Math.max(0, sz - mn);
-                       var dMax:Number = Math.max(0, mx - sz);
+                       var dMax:Number = Math.max(0, myMx - sz);
 
                        if (sz > 0 && sz < smallest)
                                smallest = sz;
 
-                       oldChildSizes.push(new ChildSizeInfo(sz, mn, mx, dMin, 
dMax));
+                       oldChildSizes.push(new ChildSizeInfo(sz, mn, myMx, 
dMin, dMax));
                }
 
                // Remember the smallest child size we saw.
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/DividedBoxLayout.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/DividedBoxLayout.as
index 6f9f93a..b2c86ee 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/DividedBoxLayout.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/DividedBoxLayout.as
@@ -94,9 +94,10 @@ package mx.containers.beads
                
                override public function layout():Boolean
                {
-            preLayoutAdjustment();
-            return super.layout();
-            postLayoutAdjustment();
+                       target.invalidateDisplayList(); // trigger synchronous 
updateDisplayList() TODO - consider moving everything to layout
+                       preLayoutAdjustment();
+                       return super.layout();
+                       postLayoutAdjustment();
                }
         
         /**

Reply via email to