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 <[email protected]>
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();
}
/**