     }
     
     //----------------------------------
+    //  horizontalAlign
+    //----------------------------------
+    
+    /**
+     *  @private
+     */
+    private var _horizontalAlign:String = HorizontalAlign.LEFT;
+    
+    [Inspectable(category="General", enumeration="left,right,center", defaultValue="left")]
+    
+    /** 
+     *  The horizontal alignment of the content relative to the container's width.
+     *
+     *  <p>This property has no effect when <code>clipAndEnableScrolling</code> is true
+     *  and the <code>contentWidth</code> is greater than the container's width.</p>
+     *
+     *  <p>This property does not affect the layout's measured size.</p>
+     *  
+     *  @default "left"
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get horizontalAlign():String
+    {
+        return _horizontalAlign;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set horizontalAlign(value:String):void
+    {
+        if (value == _horizontalAlign) 
+            return;
+        
+        _horizontalAlign = value;
+        
+        var layoutTarget:GroupBase = target;
+        if (layoutTarget)
+            layoutTarget.invalidateDisplayList();
+    }
+    
+    //----------------------------------
     //  verticalAlign
     //----------------------------------
 

        // Distribute the extra space among the flexible children
        if (totalPercentWidth)
        {
            spaceToDistribute = Flex.flexChildrenProportionally(width,
                                                                spaceToDistribute,
                                                                totalPercentWidth,
                                                                childInfoArray);
            var roundOff:Number = 0;
            for each (childInfo in childInfoArray)
            {

             }
        }

        // Third pass: if neccessary, fix up x based on updated contentWidth
        var contentWidth:Number = llv.end(llv.length - 1) - paddingLeft;
        var targetWidth:Number = Math.max(0, layoutTarget.width - paddingLeft - paddingRight);
        if (contentWidth < targetWidth)
        {
            var excessWidth:Number = targetWidth - contentWidth;
            var dx:Number = 0;
            var hAlign:String = horizontalAlign;
            if (hAlign == HorizontalAlign.CENTER)
            {
                dx = Math.floor(excessWidth / 2);   
            }
            else if (hAlign == HorizontalAlign.RIGHT)
            {
                dx = excessWidth;
            }
            if (dx > 0)
            {
                for (index = startIndex; index <= endIndex; index++)
                {
                    elt = layoutTarget.getVirtualElementAt(index, NaN, NaN);
                    elt.setLayoutBoundsPosition(dx + elt.getLayoutBoundsX(), elt.getLayoutBoundsY());
                }
                contentWidth += dx;
            }
        }
        
        setColumnCount(index - startIndex);
        setIndexInView(startIndex, endIndex);

        // Make sure that if the content spans partially over a pixel to the right/bottom,
        // the content size includes the whole pixel.
        var paddedContentWidth:Number = Math.ceil(contentWidth + paddingLeft + paddingRight);
        var paddedContentHeight:Number = Math.ceil(contentHeight + paddingTop + paddingBottom);
        layoutTarget.setContentSize(paddedContentWidth, paddedContentHeight);
    }
