     {
         invalidate();       
     }
+		
+	//----------------------------------
+	//  mirror
+	//----------------------------------
+	
+	private var _mirror:Boolean = false;
+	
+	/**
+	 *  If true the X axis is scaled by -1 and the x coordinate of the origin
+	 *  is translated by the component's width.  
+	 * 
+	 *  The net effect of this "mirror" transform is to flip the direction 
+	 *  that the X axis increases in without changing the layout element's 
+	 *  location relative to the parent's origin.
+	 * 
+	 *  @default false
+	 */
+	public function get mirror():Boolean
+	{
+		return _mirror;
+	}
+	
+	/**
+	 *  @private
+	 */
+	public function set mirror(value:Boolean):void
+	{
+		// FIXME(hmuller) is it safe to short-circuit this?
+		_mirror = value;
+		invalidate();
+	}
+	
 
     //----------------------------------
     //  stretchX

     *  @productversion Flex 3
     */
    public var depth:Number = 0;


    
    /**
     * @private

    {
        return layout.z;
    }
	
	//----------------------------------
	//  layoutWidth
	//----------------------------------
	
	private var _layoutWidth:Number = 0;
	
	/**
	 *  Used by the mirroring transform.   See the mirror property.
	 *  @default 0
	 */
	public function get layoutWidth():Number
	{
		return _layoutWidth;
	}
	
	/**
	 *  @private
	 */
	public function set layoutWidth(value:Number):void
	{
		if (value == _layoutWidth)
			return;
		_layoutWidth = value;
		invalidate();
	}
	
    
    //------------------------------------------------------------------------------
    
