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