fix margin handling

Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/02c3efbf
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/02c3efbf
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/02c3efbf

Branch: refs/heads/develop
Commit: 02c3efbf2c87ce243ac1dd4ba1bd72ab9e8c257f
Parents: d3197d6
Author: Alex Harui <[email protected]>
Authored: Fri Sep 4 11:10:59 2015 -0700
Committer: Alex Harui <[email protected]>
Committed: Fri Sep 4 11:11:42 2015 -0700

----------------------------------------------------------------------
 .../flex/html/beads/layouts/HorizontalLayout.as | 65 ++++----------------
 1 file changed, 13 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/02c3efbf/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as
 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as
index 0ebdc52..986359e 100644
--- 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as
+++ 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as
@@ -30,6 +30,7 @@ package org.apache.flex.html.beads.layouts
        import org.apache.flex.events.IEventDispatcher;
        import org.apache.flex.geom.Rectangle;
        import org.apache.flex.utils.dbg.DOMPathUtil;
+    import org.apache.flex.utils.CSSUtils;
     import org.apache.flex.utils.CSSContainerUtils;
 
     /**
@@ -94,8 +95,9 @@ package org.apache.flex.html.beads.layouts
                        var marginBottom:Object;
                        var margin:Object;
                        var maxHeight:Number = 0;
-            // asking for contentView.width can result in infinite loop if 
host isn't sized already
+            // asking for contentView.height can result in infinite loop if 
host isn't sized already
             var h:Number = hostSizedToContent ? 0 : contentView.height;
+            var w:Number = contentView.width;
                        var verticalMargins:Array = [];
                        
                        for (var i:int = 0; i < n; i++)
@@ -104,63 +106,22 @@ package org.apache.flex.html.beads.layouts
                                if (child == null || !child.visible) continue;
                 var top:Number = ValuesManager.valuesImpl.getValue(child, 
"top");
                 var bottom:Number = ValuesManager.valuesImpl.getValue(child, 
"bottom");
+                margin = ValuesManager.valuesImpl.getValue(child, "margin");
+                marginLeft = ValuesManager.valuesImpl.getValue(child, 
"margin-left");
+                marginTop = ValuesManager.valuesImpl.getValue(child, 
"margin-top");
+                marginRight = ValuesManager.valuesImpl.getValue(child, 
"margin-right");
+                marginBottom = ValuesManager.valuesImpl.getValue(child, 
"margin-bottom");
+                var ml:Number = CSSUtils.getLeftValue(marginLeft, margin, w);
+                var mr:Number = CSSUtils.getRightValue(marginRight, margin, w);
+                var mt:Number = CSSUtils.getTopValue(marginTop, margin, h);
+                var mb:Number = CSSUtils.getBottomValue(marginBottom, margin, 
h);
+                
                 ilc = child as ILayoutChild;
-                               margin = 
ValuesManager.valuesImpl.getValue(child, "margin");
-                               if (margin is Array)
-                               {
-                                       if (margin.length == 1)
-                                               marginLeft = marginTop = 
marginRight = marginBottom = margin[0];
-                                       else if (margin.length <= 3)
-                                       {
-                                               marginLeft = marginRight = 
margin[1];
-                                               marginTop = marginBottom = 
margin[0];
-                                       }
-                                       else if (margin.length == 4)
-                                       {
-                                               marginLeft = margin[3];
-                                               marginBottom = margin[2];
-                                               marginRight = margin[1];
-                                               marginTop = margin[0];          
                        
-                                       }
-                               }
-                               else if (margin == null)
-                               {
-                                       marginLeft = 
ValuesManager.valuesImpl.getValue(child, "margin-left");
-                                       marginTop = 
ValuesManager.valuesImpl.getValue(child, "margin-top");
-                                       marginRight = 
ValuesManager.valuesImpl.getValue(child, "margin-right");
-                                       marginBottom = 
ValuesManager.valuesImpl.getValue(child, "margin-bottom");
-                               }
-                               else
-                               {
-                                       marginLeft = marginTop = marginBottom = 
marginRight = margin;
-                               }
-                               var ml:Number;
-                               var mr:Number;
-                               var mt:Number;
-                               var mb:Number;
                                var lastmr:Number;
                                if (marginLeft == "auto")
                                        ml = 0;
-                               else
-                               {
-                                       ml = Number(marginLeft);
-                                       if (isNaN(ml))
-                                               ml = 0;
-                               }
                                if (marginRight == "auto")
                                        mr = 0;
-                               else
-                               {
-                                       mr = Number(marginRight);
-                                       if (isNaN(mr))
-                                               mr = 0;
-                               }
-                               mt = Number(marginTop);
-                               if (isNaN(mt))
-                                       mt = 0;
-                               mb = Number(marginBottom);
-                               if (isNaN(mb))
-                                       mb = 0;
                 var xx:Number;
                 if (i == 0)
                 {

Reply via email to