You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/09/25 18:04:23 UTC
[41/50] git commit: [flex-asjs] [refs/heads/develop] - handle padding
handle padding
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/4f9e27cc
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/4f9e27cc
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/4f9e27cc
Branch: refs/heads/develop
Commit: 4f9e27ccf3882edb8abfb752f207ef5d8a5071c5
Parents: 434ab8c
Author: Alex Harui <ah...@apache.org>
Authored: Tue Sep 23 14:36:20 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Sep 23 15:01:33 2014 -0700
----------------------------------------------------------------------
.../FlexibleFirstChildHorizontalLayout.as | 65 +++++++++++++++++++-
1 file changed, 62 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f9e27cc/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as
index c331d5b..6003f43 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as
@@ -88,7 +88,11 @@ package org.apache.flex.html.beads.layouts
var maxHeight:Number = 0;
var verticalMargins:Array = [];
- for (var i:int = n - 1; i >= 0; i--)
+ var xx:Number = layoutParent.resizableView.width;
+ var padding:Object = determinePadding();
+ xx -= padding.paddingLeft + padding.paddingRight;
+
+ for (var i:int = n - 1; i >= 0; i--)
{
var child:IUIBase = contentView.getElementAt(i) as IUIBase;
margin = ValuesManager.valuesImpl.getValue(child, "margin");
@@ -149,7 +153,6 @@ package org.apache.flex.html.beads.layouts
}
child.y = mt;
maxHeight = Math.max(maxHeight, ml + child.height + mr);
- var xx:Number = layoutParent.resizableView.width;
if (i == 0)
{
child.x = ml;
@@ -173,6 +176,62 @@ package org.apache.flex.html.beads.layouts
else
child.y = obj.marginTop;
}
+ layoutParent.resizableView.height = maxHeight;
}
- }
+
+ // TODO (aharui): utility class or base class
+ /**
+ * Determines the top and left padding values, if any, as set by
+ * padding style values. This includes "padding" for all padding values
+ * as well as "padding-left" and "padding-top".
+ *
+ * Returns an object with paddingLeft and paddingTop properties.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ protected function determinePadding():Object
+ {
+ var paddingLeft:Object;
+ var paddingTop:Object;
+ var paddingRight:Object;
+ var padding:Object = ValuesManager.valuesImpl.getValue(_strand, "padding");
+ if (typeof(padding) == "Array")
+ {
+ if (padding.length == 1)
+ paddingLeft = paddingTop = paddingRight = padding[0];
+ else if (padding.length <= 3)
+ {
+ paddingLeft = padding[1];
+ paddingTop = padding[0];
+ paddingRight = padding[1];
+ }
+ else if (padding.length == 4)
+ {
+ paddingLeft = padding[3];
+ paddingTop = padding[0];
+ paddingRight = padding[1];
+ }
+ }
+ else if (padding == null)
+ {
+ paddingLeft = ValuesManager.valuesImpl.getValue(_strand, "padding-left");
+ paddingTop = ValuesManager.valuesImpl.getValue(_strand, "padding-top");
+ paddingRight = ValuesManager.valuesImpl.getValue(_strand, "padding-right");
+ }
+ else
+ {
+ paddingLeft = paddingTop = paddingRight = padding;
+ }
+ var pl:Number = Number(paddingLeft);
+ var pt:Number = Number(paddingTop);
+ var pr:Number = Number(paddingRight);
+
+ return {paddingLeft:pl, paddingTop:pt, paddingRight:pr};
+ }
+
+ }
+
}