Transferred from the Adobe Open Source Subversion Repository

Revision: 20844
Author:   jimurphy@adobe.com
Date:     2011-03-14T15:10:07.899037Z

Log Message:
-----------
block hero_private revs 20698,20699,20702 from being merged into trunk
revert 20839,20841,20842,20843

QE notes: no
Doc notes: no
Bugs: no
Reviewer:no
Tests run: no
Is noteworthy for integration:no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1260929 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/geom/CompoundTransform.as
+++ frameworks/projects/framework/src/mx/geom/CompoundTransform.as
@@ -10,28 +10,28 @@
 ////////////////////////////////////////////////////////////////////////////////
 package mx.geom
 {
-    import __AS3__.vec.Vector;
-
-    import flash.events.Event;
-    import flash.geom.Matrix;
-    import flash.geom.Matrix3D;
-    import flash.geom.Point;
-    import flash.geom.Vector3D;
-
-    import mx.core.AdvancedLayoutFeatures;
-    import mx.utils.MatrixUtil;
-
-    /**
-     *  A CompoundTransform represents a 2D or 3D matrix transform.  A compound transform represents a matrix that can be queried or set either as a 2D matrix,
-     *  a 3D matrix, or as individual convenience transform properties such as x, y, scaleX, rotationZ, etc.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public class CompoundTransform
-    {
+	import __AS3__.vec.Vector;
+
+	import flash.events.Event;
+	import flash.geom.Matrix;
+	import flash.geom.Matrix3D;
+	import flash.geom.Point;
+	import flash.geom.Vector3D;
+
+	import mx.core.AdvancedLayoutFeatures;
+	import mx.utils.MatrixUtil;
+
+	/**
+	 *  A CompoundTransform represents a 2D or 3D matrix transform.  A compound transform represents a matrix that can be queried or set either as a 2D matrix,
+	 *  a 3D matrix, or as individual convenience transform properties such as x, y, scaleX, rotationZ, etc.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class CompoundTransform
+	{
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -45,734 +45,718 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-        public function CompoundTransform()
-        {
-        }
-
-
-
+		public function CompoundTransform()
+		{
+		}
+
+
+
     /**
      * @private
      * storage for transform properties. These values are concatenated together with the layout properties to
      * form the actual computed matrix used to render the object.
      */
-    private var _rotationX:Number = 0;
-    private var _rotationY:Number = 0;
-    private var _rotationZ:Number = 0;
-    private var _scaleX:Number = 1;
-    private var _scaleY:Number = 1;
-    private var _scaleZ:Number = 1;
-    private var _x:Number = 0;
-    private var _y:Number = 0;
-    private var _z:Number = 0;
-
-    private var _transformX:Number = 0;
-    private var _transformY:Number = 0;
-    private var _transformZ:Number = 0;
-
-
+	private var _rotationX:Number = 0;
+	private var _rotationY:Number = 0;
+	private var _rotationZ:Number = 0;
+	private var _scaleX:Number = 1;
+	private var _scaleY:Number = 1;
+	private var _scaleZ:Number = 1;
+	private var _x:Number = 0;
+	private var _y:Number = 0;
+	private var _z:Number = 0;
+
+	private var _transformX:Number = 0;
+	private var _transformY:Number = 0;
+	private var _transformZ:Number = 0;
+
+
     /**
      * @private
      * slots for the 2D and 3D matrix transforms.  Note that
      * these are only allocated and computed on demand -- many component instances will never use a 3D
      * matrix, for example.
      */
-    private var _matrix:Matrix;
-    private var _matrix3D:Matrix3D;
-
-
+	private var _matrix:Matrix;
+	private var _matrix3D:Matrix3D;
+
+
     /**
      * @private
      * bit field flags for indicating which transforms are valid -- the layout properties, the matrices,
      * and the 3D matrices.  Since developers can set any of the three programmatically, the last one set
      * will always be valid, and the others will be invalid until validated on demand.
      */
-    private static const MATRIX_VALID:uint      = 0x20;
-    private static const MATRIX3D_VALID:uint        = 0x40;
-    private static const PROPERTIES_VALID:uint  = 0x80;
-
-
+	private static const MATRIX_VALID:uint		= 0x20;
+	private static const MATRIX3D_VALID:uint		= 0x40;
+	private static const PROPERTIES_VALID:uint 	= 0x80;
+
+
     /**
      * @private
      * flags for tracking whether the  transform is 3D. A transform is 3D if any of the 3D properties -- rotationX/Y, scaleZ, or z -- are set.
      */
-    private static const IS_3D:uint                 = 0x200;
-    private static const M3D_FLAGS_VALID:uint           = 0x400;
-
+	private static const IS_3D:uint 				= 0x200;
+	private static const M3D_FLAGS_VALID:uint			= 0x400;
+
     /**
      * @private
      * constants to indicate which form of a transform -- the properties, matrix, or matrix3D -- is
      *  'the source of truth.'
      */
-    public static const SOURCE_PROPERTIES:uint          = 1;
-    /**
-     * @private
-     * constants to indicate which form of a transform -- the properties, matrix, or matrix3D -- is
-     *  'the source of truth.'
-     */
-    public static const SOURCE_MATRIX:uint          = 2;
-    /**
-     * @private
-     * constants to indicate which form of a transform -- the properties, matrix, or matrix3D -- is
-     *  'the source of truth.'
-     */
-    public static const SOURCE_MATRIX3D:uint            = 3;
-
+	public static const SOURCE_PROPERTIES:uint			= 1;
+	public static const SOURCE_MATRIX:uint 			= 2;
+	public static const SOURCE_MATRIX3D:uint 			= 3;
+
     /**
      * @private
      * indicates the 'source of truth' for the transform.
      */
-    public var sourceOfTruth:uint = SOURCE_PROPERTIES;
-
+	public var sourceOfTruth:uint = SOURCE_PROPERTIES;
+
     /**
      * @private
      * general storage for all of ur flags.
      */
-    private var _flags:uint =  PROPERTIES_VALID;
-
+	private var _flags:uint =  PROPERTIES_VALID;
+
     /**
      * @private
      * flags that get passed to the invalidate method indicating why the invalidation is happening.
      */
-    private static const INVALIDATE_FROM_NONE:uint =            0;
-    private static const INVALIDATE_FROM_PROPERTY:uint =        4;
-    private static const INVALIDATE_FROM_MATRIX:uint =          5;
-    private static const INVALIDATE_FROM_MATRIX3D:uint =        6;
-
-    /**
-     * @private
-     * static data used by utility methods below
-     */
-    private static var decomposition:Vector.<Number> = new Vector.<Number>();
-    decomposition.push(0);
-    decomposition.push(0);
-    decomposition.push(0);
-    decomposition.push(0);
-    decomposition.push(0);
-
-    private static const RADIANS_PER_DEGREES:Number = Math.PI / 180;
-
-    //----------------------------------------------------------------------------
-
-    /**
-     *  The x value of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set x(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _x)
-            return;
-        translateBy(value-_x,0,0);
-        invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
-    }
-    /**
-     * @private
-     */
-    public function get x():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _x;
-    }
-
-    /**
-     *  The y value of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set y(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _y)
-            return;
-        translateBy(0,value-_y,0);
-        invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get y():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _y;
-    }
-
-    /**
-     *  The z value of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set z(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _z)
-            return;
-        translateBy(0,0,value-_z);
-        invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get z():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _z;
-    }
-
-    //------------------------------------------------------------------------------
-
-
-    /**
-     *  The rotationX, in degrees, of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set rotationX(value:Number):void
-    {
-        // clamp the rotation value between -180 and 180.  This is what
+	private static const INVALIDATE_FROM_NONE:uint = 			0;
+	private static const INVALIDATE_FROM_PROPERTY:uint = 		4;
+	private static const INVALIDATE_FROM_MATRIX:uint = 			5;
+	private static const INVALIDATE_FROM_MATRIX3D:uint = 		6;
+
+	/**
+	 * @private
+	 * static data used by utility methods below
+	 */
+	private static var decomposition:Vector.<Number> = new Vector.<Number>();
+	decomposition.push(0);
+	decomposition.push(0);
+	decomposition.push(0);
+	decomposition.push(0);
+	decomposition.push(0);
+
+	private static const RADIANS_PER_DEGREES:Number = Math.PI / 180;
+
+	//----------------------------------------------------------------------------
+
+	/**
+	 *  The x value of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set x(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _x)
+			return;
+		translateBy(value-_x,0,0);
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
+	}
+    /**
+     * @private
+     */
+	public function get x():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _x;
+	}
+
+	/**
+	 *  The y value of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set y(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _y)
+			return;
+		translateBy(0,value-_y,0);
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get y():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _y;
+	}
+
+	/**
+	 *  The z value of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set z(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _z)
+			return;
+		translateBy(0,0,value-_z);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get z():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _z;
+	}
+
+	//------------------------------------------------------------------------------
+
+
+	/**
+	 *  The rotationX, in degrees, of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set rotationX(value:Number):void
+	{
+	    // clamp the rotation value between -180 and 180.  This is what
         // the Flash player does, so let's mimic it here too.
-        value = MatrixUtil.clampRotation(value);
+		value = MatrixUtil.clampRotation(value);

-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _rotationX)
-            return;
-        _rotationX = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get rotationX():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _rotationX;
-    }
-
-    /**
-     *  The rotationY, in degrees, of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set rotationY(value:Number):void
-    {
-        // clamp the rotation value between -180 and 180.  This is what
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _rotationX)
+			return;
+		_rotationX = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get rotationX():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _rotationX;
+	}
+
+	/**
+	 *  The rotationY, in degrees, of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set rotationY(value:Number):void
+	{
+	    // clamp the rotation value between -180 and 180.  This is what
         // the Flash player does, so let's mimic it here too.
-        value = MatrixUtil.clampRotation(value);
+		value = MatrixUtil.clampRotation(value);

-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _rotationY)
-            return;
-        _rotationY = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get rotationY():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _rotationY;
-    }
-
-    /**
-     *  The rotationZ, in degrees, of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set rotationZ(value:Number):void
-    {
-        // clamp the rotation value between -180 and 180.  This is what
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _rotationY)
+			return;
+		_rotationY = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get rotationY():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _rotationY;
+	}
+
+	/**
+	 *  The rotationZ, in degrees, of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set rotationZ(value:Number):void
+	{
+	    // clamp the rotation value between -180 and 180.  This is what
         // the Flash player does, so let's mimic it here too.
-        value = MatrixUtil.clampRotation(value);
+		value = MatrixUtil.clampRotation(value);

-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _rotationZ)
-            return;
-        _rotationZ = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get rotationZ():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _rotationZ;
-    }
-
-    //------------------------------------------------------------------------------
-
-
-    /**
-     *  The scaleX of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set scaleX(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _scaleX)
-            return;
-        _scaleX = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get scaleX():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _scaleX;
-    }
-
-    /**
-     *  The scaleY of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set scaleY(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _scaleY)
-            return;
-        _scaleY = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get scaleY():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _scaleY;
-    }
-
-
-    /**
-     *  The scaleZ of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set scaleZ(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _scaleZ)
-            return;
-        _scaleZ = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get scaleZ():Number
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        return _scaleZ;
-    }
-
-
-    /**
-     * @private
-     * returns true if the transform has 3D values.
-     */
-    public function get is3D():Boolean
-    {
-        if ((_flags & M3D_FLAGS_VALID) == 0)
-            update3DFlags();
-        return ((_flags & IS_3D) != 0);
-    }
-
-    //------------------------------------------------------------------------------
-    /**
-     *  The x value of the transform center. The transform center is kept fixed as rotation and scale are applied.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set transformX(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _transformX)
-            return;
-        _transformX = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get transformX():Number
-    {
-        return _transformX;
-    }
-
-    //------------------------------------------------------------------------------
-    /**
-     *  The y value of the tansform center. The transform center is kept fixed as rotation and scale are applied.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set transformY(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _transformY)
-            return;
-        _transformY = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get transformY():Number
-    {
-        return _transformY;
-    }
-    //------------------------------------------------------------------------------
-    /**
-     *  The z value of the tansform center. The transform center is kept fixed as rotation and scale are applied.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function set transformZ(value:Number):void
-    {
-        if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
-        if (value == _transformZ)
-            return;
-        _transformZ = value;
-        invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     */
-    public function get transformZ():Number
-    {
-        return _transformZ;
-    }
-
-    //------------------------------------------------------------------------------
-
-    /**
-     * @private
-     * invalidates our various cached values.  Any change to the CompoundTransform object that affects
-     * the various transforms should call this function.
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _rotationZ)
+			return;
+		_rotationZ = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get rotationZ():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _rotationZ;
+	}
+
+	//------------------------------------------------------------------------------
+
+
+	/**
+	 *  The scaleX of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set scaleX(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _scaleX)
+			return;
+		_scaleX = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get scaleX():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _scaleX;
+	}
+
+	/**
+	 *  The scaleY of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set scaleY(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _scaleY)
+			return;
+		_scaleY = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get scaleY():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _scaleY;
+	}
+
+
+	/**
+	 *  The scaleZ of the transform.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set scaleZ(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _scaleZ)
+			return;
+		_scaleZ = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get scaleZ():Number
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		return _scaleZ;
+	}
+
+
+	/**
+	 * @private
+	 * returns true if the transform has 3D values.
+	 */
+	public function get is3D():Boolean
+	{
+		if ((_flags & M3D_FLAGS_VALID) == 0)
+			update3DFlags();
+		return ((_flags & IS_3D) != 0);
+	}
+
+	//------------------------------------------------------------------------------
+	/**
+	 *  The x value of the transform center. The transform center is kept fixed as rotation and scale are applied.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set transformX(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _transformX)
+			return;
+		_transformX = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get transformX():Number
+	{
+		return _transformX;
+	}
+
+	//------------------------------------------------------------------------------
+	/**
+	 *  The y value of the tansform center. The transform center is kept fixed as rotation and scale are applied.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set transformY(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _transformY)
+			return;
+		_transformY = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get transformY():Number
+	{
+		return _transformY;
+	}
+	//------------------------------------------------------------------------------
+	/**
+	 *  The z value of the tansform center. The transform center is kept fixed as rotation and scale are applied.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function set transformZ(value:Number):void
+	{
+		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
+		if (value == _transformZ)
+			return;
+		_transformZ = value;
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
+	}
+
+    /**
+     * @private
+     */
+	public function get transformZ():Number
+	{
+		return _transformZ;
+	}
+
+	//------------------------------------------------------------------------------
+
+	/**
+	 * @private
+	 * invalidates our various cached values.  Any change to the CompoundTransform object that affects
+	 * the various transforms should call this function.
      * @param reason - the code indicating what changes to cause the invalidation.
      * @param affects3D - a flag indicating whether the change affects the 2D/3D nature of the various transforms.
      * @param dispatchChangeEvent - if true, the CompoundTransform will dispatch a change indicating that its underlying transforms
      * have been modified.
-     */
-    private function invalidate(reason:uint, affects3D:Boolean):void
-    {
-        //race("invalidating: " + reason);
-        switch(reason)
-        {
-            case INVALIDATE_FROM_PROPERTY:
-                sourceOfTruth = SOURCE_PROPERTIES;
-                _flags |= PROPERTIES_VALID;
-                _flags &= ~MATRIX_VALID;
-                _flags &= ~MATRIX3D_VALID;
-                break;
-            case INVALIDATE_FROM_MATRIX:
-                sourceOfTruth = SOURCE_MATRIX;
-                _flags |= MATRIX_VALID;
-                _flags &= ~PROPERTIES_VALID;
-                _flags &= ~MATRIX3D_VALID;
-                break;
-            case INVALIDATE_FROM_MATRIX3D:
-                sourceOfTruth = SOURCE_MATRIX3D;
-                _flags |= MATRIX3D_VALID;
-                _flags &= ~PROPERTIES_VALID;
-                _flags &= ~MATRIX_VALID;
-                break;
-        }
-        if (affects3D)
-            _flags &= ~M3D_FLAGS_VALID;
-
-    }
-
-    private static const EPSILON:Number = .001;
-    /**
-     * @private
-     * updates the flags that indicate whether the layout, offset, and/or computed transforms are 3D in nature.
-     * Since the user can set either the individual transform properties or the matrices directly, we compute these
-     * flags based on what the current 'source of truth' is for each of these values.
-     */
-    private function update3DFlags():void
-    {
-        if ((_flags & M3D_FLAGS_VALID) == 0)
-        {
-            var matrixIs3D:Boolean = false;
-
-            switch(sourceOfTruth)
-            {
-                case SOURCE_PROPERTIES:
-                    matrixIs3D = ( // note that rotationZ is the same as rotation, and not a 3D affecting
-                        (Math.abs(_scaleZ-1) > EPSILON) ||  // property.
-                        ((Math.abs(_rotationX)+EPSILON)%360) > 2*EPSILON ||
-                        ((Math.abs(_rotationY)+EPSILON)%360) > 2*EPSILON ||
-                        Math.abs(_z) > EPSILON
-                        );
-                    break;
-                case SOURCE_MATRIX:
-                    matrixIs3D = false;
-                    break;
-                case SOURCE_MATRIX3D:
-                    var rawData:Vector.<Number> = _matrix3D.rawData;
-                    matrixIs3D = (rawData[2] != 0 ||        // rotation y
-                                    rawData[6] != 0 ||      // rotation x
-                                    rawData[8] !=0 ||       // rotation y
-                                    rawData[10] != 1 ||     // scalez / rotation x / rotation y
-                                    rawData[14] != 0);      // translation z
-                    break;
-            }
-
-            if (matrixIs3D)
-                _flags |= IS_3D;
-            else
-                _flags &= ~IS_3D;
-
-            _flags |= M3D_FLAGS_VALID;
-        }
-    }
-
-
-    /**
+  	 */
+	private function invalidate(reason:uint, affects3D:Boolean):void
+	{
+		//race("invalidating: " + reason);
+		switch(reason)
+		{
+			case INVALIDATE_FROM_PROPERTY:
+				sourceOfTruth = SOURCE_PROPERTIES;
+				_flags |= PROPERTIES_VALID;
+				_flags &= ~MATRIX_VALID;
+				_flags &= ~MATRIX3D_VALID;
+				break;
+			case INVALIDATE_FROM_MATRIX:
+				sourceOfTruth = SOURCE_MATRIX;
+				_flags |= MATRIX_VALID;
+				_flags &= ~PROPERTIES_VALID;
+				_flags &= ~MATRIX3D_VALID;
+				break;
+			case INVALIDATE_FROM_MATRIX3D:
+				sourceOfTruth = SOURCE_MATRIX3D;
+				_flags |= MATRIX3D_VALID;
+				_flags &= ~PROPERTIES_VALID;
+				_flags &= ~MATRIX_VALID;
+				break;
+		}
+		if (affects3D)
+			_flags &= ~M3D_FLAGS_VALID;
+
+	}
+
+	private static const EPSILON:Number = .001;
+	/**
+	 * @private
+	 * updates the flags that indicate whether the layout, offset, and/or computed transforms are 3D in nature.
+	 * Since the user can set either the individual transform properties or the matrices directly, we compute these
+	 * flags based on what the current 'source of truth' is for each of these values.
+  	 */
+	private function update3DFlags():void
+	{
+		if ((_flags & M3D_FLAGS_VALID) == 0)
+		{
+			var matrixIs3D:Boolean = false;
+
+			switch(sourceOfTruth)
+			{
+				case SOURCE_PROPERTIES:
+					matrixIs3D = ( // note that rotationZ is the same as rotation, and not a 3D affecting
+					  	(Math.abs(_scaleZ-1) > EPSILON) ||  // property.
+					  	((Math.abs(_rotationX)+EPSILON)%360) > 2*EPSILON ||
+					  	((Math.abs(_rotationY)+EPSILON)%360) > 2*EPSILON ||
+					  	Math.abs(_z) > EPSILON
+					  	);
+					break;
+				case SOURCE_MATRIX:
+					matrixIs3D = false;
+					break;
+				case SOURCE_MATRIX3D:
+					var rawData:Vector.<Number> = _matrix3D.rawData;
+					matrixIs3D = (rawData[2] != 0 ||		// rotation y
+									rawData[6] != 0 || 		// rotation x
+									rawData[8] !=0 || 		// rotation y
+									rawData[10] != 1 || 	// scalez / rotation x / rotation y
+									rawData[14] != 0);		// translation z
+					break;
+			}
+
+			if (matrixIs3D)
+				_flags |= IS_3D;
+			else
+				_flags &= ~IS_3D;
+
+			_flags |= M3D_FLAGS_VALID;
+		}
+	}
+
+
+	/**
      *  Applies the delta to the transform's translation component. Unlike setting the x, y, or z properties directly,
-     *  this method can be safely called without changing the transform's concept of 'the source of truth'.
-     *
-     *  @param x The x value of the transform.
-     *
-     *  @param y The y value of the transform.
-     *
-     *  @param z The z value of the transform.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function translateBy(x:Number,y:Number,z:Number = 0):void
-    {
-        if (_flags & MATRIX_VALID)
-        {
-            _matrix.tx += x;
-            _matrix.ty += y;
-        }
-        if (_flags & PROPERTIES_VALID)
-        {
-            _x += x;
-            _y += y;
-            _z += z;
-        }
-        if (_flags & MATRIX3D_VALID)
-        {
-            var data:Vector.<Number> = _matrix3D.rawData;
-            data[12] += x;
-            data[13] += y;
-            data[14] += z;
-            _matrix3D.rawData = data;
-        }
-        invalidate(INVALIDATE_FROM_NONE, z != 0 /*affects3D*/);
-    }
-
-
-    /**
-     *  The 2D matrix either set directly by the user, or composed by combining the transform center, scale, rotation
-     *  and translation, in that order.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function get matrix():Matrix
-    {
-
-        if (_flags & MATRIX_VALID)
-            return _matrix;
-
-        if ((_flags & PROPERTIES_VALID) == false)
-            validatePropertiesFromMatrix();
-
-        var m:Matrix = _matrix;
-        if (m == null)
-            m = _matrix = new Matrix();
-        else
-            m.identity();
-
-        AdvancedLayoutFeatures.build2DMatrix(m,_transformX,_transformY,
-                      _scaleX,_scaleY,
-                      _rotationZ,
-                      _x,_y);
-        _flags |= MATRIX_VALID;
-        return m;
-    }
-
-    /**
-     * @private
-     */
-    public function set matrix(v:Matrix):void
-    {
-        if (_matrix== null)
-        {
-            _matrix = v.clone();
-        }
-        else
-        {
-            _matrix.identity();
-            _matrix.concat(v);
-        }
+	 *  this method can be safely called without changing the transform's concept of 'the source of truth'.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function translateBy(x:Number,y:Number,z:Number = 0):void
+	{
+		if (_flags & MATRIX_VALID)
+		{
+			_matrix.tx += x;
+			_matrix.ty += y;
+		}
+		if (_flags & PROPERTIES_VALID)
+		{
+			_x += x;
+			_y += y;
+			_z += z;
+		}
+		if (_flags & MATRIX3D_VALID)
+		{
+			var data:Vector.<Number> = _matrix3D.rawData;
+			data[12] += x;
+			data[13] += y;
+			data[14] += z;
+			_matrix3D.rawData = data;
+		}
+		invalidate(INVALIDATE_FROM_NONE, z != 0 /*affects3D*/);
+	}
+
+
+	/**
+	 *  The 2D matrix either set directly by the user, or composed by combining the transform center, scale, rotation
+	 *  and translation, in that order.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function get matrix():Matrix
+	{
+
+		if (_flags & MATRIX_VALID)
+			return _matrix;
+
+		if ((_flags & PROPERTIES_VALID) == false)
+			validatePropertiesFromMatrix();
+
+		var m:Matrix = _matrix;
+		if (m == null)
+			m = _matrix = new Matrix();
+		else
+			m.identity();
+
+		AdvancedLayoutFeatures.build2DMatrix(m,_transformX,_transformY,
+					  _scaleX,_scaleY,
+					  _rotationZ,
+					  _x,_y);
+		_flags |= MATRIX_VALID;
+		return m;
+	}
+
+	/**
+	 * @private
+	 */
+	public function set matrix(v:Matrix):void
+	{
+		if (_matrix== null)
+		{
+			_matrix = v.clone();
+		}
+		else
+		{
+			_matrix.identity();
+			_matrix.concat(v);
+		}

         // affects3D is true since setting matrix changes the transform to 2D
-        invalidate(INVALIDATE_FROM_MATRIX, true /*affects3D*/);
-    }
-
-    /**
-     * @private
-     * decomposes the offset transform matrices down into the convenience offset properties. Note that this is not
-     * a bi-directional transformation -- it is possible to create a matrix that can't be fully represented in the
-     * convenience properties. This function will pull from the matrix or matrix3D values, depending on which was most
-     * recently set
-     */
-    private function validatePropertiesFromMatrix():void
-    {
-        if (sourceOfTruth == SOURCE_MATRIX3D)
-        {
-            var result:Vector.<Vector3D> = _matrix3D.decompose();
-            _rotationX = result[1].x / RADIANS_PER_DEGREES;
-            _rotationY = result[1].y / RADIANS_PER_DEGREES;
-            _rotationZ = result[1].z / RADIANS_PER_DEGREES;
-            _scaleX = result[2].x;
-            _scaleY = result[2].y;
-            _scaleZ = result[2].z;
-
-            if (_transformX != 0 || _transformY != 0 || _transformZ != 0)
-            {
-                var postTransformTCenter:Vector3D = _matrix3D.transformVector(new Vector3D(_transformX,_transformY,_transformZ));
-                _x = postTransformTCenter.x - _transformX;
-                _y = postTransformTCenter.y - _transformY;
-                _z = postTransformTCenter.z - _transformZ;
-            }
-            else
-            {
-                _x = result[0].x;
-                _y = result[0].y;
-                _z = result[0].z;
-            }
-        }
-        else if (sourceOfTruth == SOURCE_MATRIX)
-        {
-            MatrixUtil.decomposeMatrix(decomposition,_matrix,_transformX,_transformY);
-            _x = decomposition[0];
-            _y = decomposition[1];
-            _z = 0;
-            _rotationX = 0;
-            _rotationY = 0;
-            _rotationZ = decomposition[2];
-            _scaleX = decomposition[3];
-            _scaleY = decomposition[4];
-            _scaleZ = 1;
-        }
-        _flags |= PROPERTIES_VALID;
-
-    }
-
-
-
-    /**
-     *  The 3D matrix either set directly by the user, or composed by combining the transform center, scale, rotation
-     *  and translation, in that order.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function get matrix3D():Matrix3D
-    {
-        if (_flags & MATRIX3D_VALID)
-            return _matrix3D;
-
-        if ((_flags & PROPERTIES_VALID) == false)
-            validatePropertiesFromMatrix();
-
-        var m:Matrix3D = _matrix3D;
-        if (m == null)
-            m =  _matrix3D = new Matrix3D();
-        else
-            m.identity();
-
-            AdvancedLayoutFeatures.build3DMatrix(m,transformX,transformY,transformZ,
-                      _scaleX,_scaleY,_scaleZ,
-                      _rotationX,_rotationY,_rotationZ,
-                      _x,_y,_z);
-        _flags |= MATRIX3D_VALID;
-        return m;
-
-    }
-
-    /**
-     * @private
-     */
-    public function set matrix3D(v:Matrix3D):void
-    {
-        if (_matrix3D == null)
-        {
-            _matrix3D = v.clone();
-        }
-        else
-        {
-            _matrix3D.identity();
-            if (v)
-                _matrix3D.append(v);
-        }
-        invalidate(INVALIDATE_FROM_MATRIX3D, true /*affects3D*/);
-    }
+		invalidate(INVALIDATE_FROM_MATRIX, true /*affects3D*/);
+	}
+
+	/**
+	 * @private
+	 * decomposes the offset transform matrices down into the convenience offset properties. Note that this is not
+	 * a bi-directional transformation -- it is possible to create a matrix that can't be fully represented in the
+	 * convenience properties. This function will pull from the matrix or matrix3D values, depending on which was most
+	 * recently set
+	 */
+	private function validatePropertiesFromMatrix():void
+	{
+	    if (sourceOfTruth == SOURCE_MATRIX3D)
+	    {
+	    	var result:Vector.<Vector3D> = _matrix3D.decompose();
+	    	_rotationX = result[1].x / RADIANS_PER_DEGREES;
+	    	_rotationY = result[1].y / RADIANS_PER_DEGREES;
+	    	_rotationZ = result[1].z / RADIANS_PER_DEGREES;
+	    	_scaleX = result[2].x;
+	    	_scaleY = result[2].y;
+	    	_scaleZ = result[2].z;
+
+			if (_transformX != 0 || _transformY != 0 || _transformZ != 0)
+			{
+				var postTransformTCenter:Vector3D = _matrix3D.transformVector(new Vector3D(_transformX,_transformY,_transformZ));
+		    	_x = postTransformTCenter.x - _transformX;
+	    		_y = postTransformTCenter.y - _transformY;
+	    		_z = postTransformTCenter.z - _transformZ;
+			}
+			else
+			{
+		    	_x = result[0].x;
+		    	_y = result[0].y;
+	    		_z = result[0].z;
+	  		}
+	    }
+	    else if (sourceOfTruth == SOURCE_MATRIX)
+	    {
+	    	MatrixUtil.decomposeMatrix(decomposition,_matrix,_transformX,_transformY);
+	    	_x = decomposition[0];
+	    	_y = decomposition[1];
+	    	_z = 0;
+	    	_rotationX = 0;
+	    	_rotationY = 0;
+	    	_rotationZ = decomposition[2];
+	    	_scaleX = decomposition[3];
+	    	_scaleY = decomposition[4];
+	    	_scaleZ = 1;
+	    }
+	    _flags |= PROPERTIES_VALID;
+
+	}
+
+
+
+	/**
+	 *  The 3D matrix either set directly by the user, or composed by combining the transform center, scale, rotation
+	 *  and translation, in that order.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function get matrix3D():Matrix3D
+	{
+		if (_flags & MATRIX3D_VALID)
+			return _matrix3D;
+
+		if ((_flags & PROPERTIES_VALID) == false)
+			validatePropertiesFromMatrix();
+
+		var m:Matrix3D = _matrix3D;
+		if (m == null)
+			m =  _matrix3D = new Matrix3D();
+		else
+			m.identity();
+
+			AdvancedLayoutFeatures.build3DMatrix(m,transformX,transformY,transformZ,
+					  _scaleX,_scaleY,_scaleZ,
+					  _rotationX,_rotationY,_rotationZ,
+					  _x,_y,_z);
+		_flags |= MATRIX3D_VALID;
+		return m;
+
+	}
+
+	/**
+	 * @private
+	 */
+	public function set matrix3D(v:Matrix3D):void
+	{
+		if (_matrix3D == null)
+		{
+			_matrix3D = v.clone();
+		}
+		else
+		{
+			_matrix3D.identity();
+			if (v)
+				_matrix3D.append(v);
+		}
+		invalidate(INVALIDATE_FROM_MATRIX3D, true /*affects3D*/);
+	}

 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10672
Author:   dloverin@adobe.com
Date:     2009-09-29T11:43:11.672658Z

Log Message:
-----------
Use styleManager instance instead of the StyleManager singleton (airframework, halo, and spark projects)

A couple updates in the framework project as well.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex
Tests run: checkintests
Is noteworthy for integration: no.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/SliderTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/ProgrammaticSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/SetActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ScrollTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/DataGridHeaderBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/TLFDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ProgressTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/TitleBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ButtonBarButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/NumericStepperDownSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/PopUpButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/TabSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ScrollArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/CheckBoxIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/AccordionHeaderSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/NumericStepperUpSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleModule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ProgressIndeterminateSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/RadioButtonIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/DateChooserMonthArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/SliderThumbSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ComboBoxArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/MenuBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ProgressBarSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ScrollThumbSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262262 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/skins/ProgrammaticSkin.as
+++ frameworks/projects/framework/src/mx/skins/ProgrammaticSkin.as
@@ -15,6 +15,7 @@
 import flash.display.Graphics;
 import flash.display.Shape;
 import flash.geom.Matrix;
+import flash.utils.getDefinitionByName;

 import mx.core.FlexShape;
 import mx.core.IFlexModule;
@@ -60,7 +61,13 @@
 	 *  Set by horizontalGradientMatrix() or verticalGradientMatrix().
 	 */
 	private static var tempMatrix:Matrix = new Matrix();
-
+
+    /**
+     *  @private
+     *  Soft link to UIComponent. Cache the class for performance.
+     */
+    private static var uiComponentClass:Class;
+
 	//--------------------------------------------------------------------------
 	//
 	//  Constructor
@@ -640,11 +647,10 @@
      */
     protected function get styleManager():IStyleManager2
     {
-        // FIXME: (dloverin) Linking in UIComponent causes some resource bundle
-        // tests that use non-enUS locales because the SDK is only built
-        // with the enUS locale.
-        //if (styleName is UIComponent)
-        if ("styleManager" in styleName)
+        if (uiComponentClass == null)
+            uiComponentClass = Class(getDefinitionByName("mx.core.UIComponent"));
+
+        if (styleName is uiComponentClass)
             return styleName.styleManager;
         else
             return StyleManager.getStyleManager(null);


Transferred from the Adobe Open Source Subversion Repository

Revision: 1218
Author:   jimurphy@adobe.com
Date:     2008-04-15T16:09:32.174552Z

Log Message:
-----------
merge 3.0.x[1069:1202] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/air/air_version.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/codec/PNGEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/codec/JPEGEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SchemaTypeRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/codec/IImageEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/SOAPFault.as</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/WebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloColors.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/SliderThumbSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RoundedRectangle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/SOAPHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/WebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDLBinding.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/Operation.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1273558 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/rpc/src/mx/messaging/MultiTopicProducer.as
+++ frameworks/projects/rpc/src/mx/messaging/MultiTopicProducer.as
@@ -136,6 +136,10 @@
      * Adds a subtopic to the current list of subtopics for messages sent by this
      * producer.  This is a shortcut to adding this subtopic to the subtopics
      * property.
+     *
+     * @param subtopic The subtopic to add to the current list of
+     * subtopics sent by this producer.
+     *
      */
     public function addSubtopic(subtopic:String):void
     {
@@ -145,6 +149,8 @@
     /**
      * Removes the subtopic from the subtopics property.  Throws an error if the
      * subtopic is not in the list.
+     *
+     * @param subtopic The subtopic to remove from the subtopics property.
      */
     public function removeSubtopic(subtopic:String):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1278794 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -20,7 +20,7 @@
 - Do we need inline-renderer properties (data, listData)?

 Keyboard Interaction
-- FxList current dispatches selectionChanged on arrowUp/Down. Should we subclass FxList
+- List current dispatches selectionChanged on arrowUp/Down. Should we subclass List
 and change behavior to commit value only on ENTER, SPACE, or CTRL-UP?

 TODO List
@@ -51,7 +51,7 @@

 */

-package mx.components
+package spark.components
 {

 import flash.events.Event;
@@ -59,12 +59,12 @@
 import flash.ui.Keyboard;

 import mx.collections.IList;
-import mx.components.baseClasses.DropDownBase;
-import mx.components.baseClasses.FxListBase;
+import spark.components.supportClasses.DropDownBase;
+import spark.components.supportClasses.ListBase;
 import mx.core.IFactory;
 import mx.core.mx_internal;
 import mx.events.IndexChangedEvent;
-import mx.graphics.baseClasses.TextGraphicElement;
+import spark.primitives.supportClasses.TextGraphicElement;
 import mx.events.CollectionEvent;
 import mx.collections.ListCollectionView;
 import mx.collections.CursorBookmark;
@@ -72,7 +72,7 @@
 import mx.collections.ICollectionView;
 import mx.events.CollectionEventKind;
 import mx.collections.IViewCursor;
-import mx.utils.LabelUtil;
+import spark.utils.LabelUtil;

 /**
  *  Dispatched when the FxComboBox contents changes as a result of user
@@ -128,7 +128,7 @@
      // TODO (jszeto) We want this to be required. But when the skin part is in a state,
      // it hasn't been created yet and we get an RTE.
 	[SkinPart(required="false")]
-	public var dropDown:FxListBase;
+	public var dropDown:ListBase;

 	/**
      *  Constructor.
@@ -218,7 +218,7 @@

 			if (_dataProvider)
 			{
-				// TODO (jszeto) Change to match FxList implementation
+				// TODO (jszeto) Change to match List implementation
 				collection = new ListCollectionView(IList(value));
 				collection.addEventListener(CollectionEvent.COLLECTION_CHANGE, collection_changeHandler, false, 0, true);
 				iterator = collection.createCursor();
@@ -451,7 +451,7 @@
      */
     public function set selectedIndex(value:int):void
     {
-    	// TODO (jszeto) Change selectedIndex/Item to match FxListBase implementation
+    	// TODO (jszeto) Change selectedIndex/Item to match ListBase implementation
     	// We want the selectedIndex to be committed as soon as possible.
     	// If we have a collection, then update the selectedIndex

@@ -632,7 +632,7 @@
     {
     	super.initializeDropDown();

-    	// TODO (jszeto) Look at FxDataContainer to see pattern for passing
+    	// TODO (jszeto) Look at SkinnableDataContainer to see pattern for passing
     	// these values
 		dropDown.dataProvider = dataProvider;
 		dropDown.selectedIndex = selectedIndex;
@@ -762,7 +762,7 @@

         	if (isOpen)
         	{
-        		// TODO (jszeto) Clean this up once we have FxList support for
+        		// TODO (jszeto) Clean this up once we have List support for
         		// not sending selection_change on keydown.
         		inKeyNavigation = true;
         		// TODO (jszeto) Clean this up when SDK-19738 is fixed
@@ -864,7 +864,7 @@
 	 */
     protected function collection_changeHandler(event:CollectionEvent):void
     {
-    	// TODO (jszeto) Change this to use FxListBase implementation
+    	// TODO (jszeto) Change this to use ListBase implementation

         var requiresValueCommit:Boolean = false;


def: 7640 fix flavor selector: don't display multi "SD Low" labels

--- kdp3Lib/src/com/kaltura/kdpfl/view/controls/KFlavorComboBox.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/controls/KFlavorComboBox.as
@@ -20,7 +20,7 @@
 	{
 		public static const HD_LIMIT:int = 540;
 		public static const HEIGHT_ARRAY:Array = [240, 360, 480, 540, 720, 1080];
-
+
 		public static const DATA_PROVIDER_CHANGE : String = "dataProviderChange";
 		/**
 		 * Property holds the value of the string displayed in the Combo Box when the player is in adaptive bitrate
@@ -129,7 +129,11 @@
 		private var _bitrateDetectionMessage:String = "Detecting Your Bandwidth";

 		private var _switchPausedMessage:String = "Switching is Paused";
-
+		/**
+		 * indicate "SD Low" label was already added to flavors list
+		 */
+		private var _usedLowHeight:Boolean;
+
 		/**
 		 * Constructor
 		 *
@@ -145,13 +149,13 @@
 			this.dropdown.addEventListener(MouseEvent.ROLL_OVER, onDropdownRollover);
 			this.dropdown.addEventListener(MouseEvent.ROLL_OUT, onDropdownRollout);
 		}
-
+
 		[Bindable]
 		public function get isAutoSwitch():Boolean
 		{
 			return _isAutoSwitch;
 		}
-
+
 		public function set isAutoSwitch(value:Boolean):void
 		{
 			_isAutoSwitch = value;
@@ -198,8 +202,8 @@
 		{
 			_switchPausedMessage = value;
 		}
-
-
+
+
 		/**
 		 * On mouse rollover remove redundant listeners
 		 * @param event
@@ -266,11 +270,11 @@

 				/*if (usePixels)
 				{
-					var labelArr:Array = (data.label as String).split(" ");
-					if (labelArr.length == 2)
-					{
-						return labelArr[0] + "\n" + labelArr[1] //prefix, new line, pixels
-					}
+				var labelArr:Array = (data.label as String).split(" ");
+				if (labelArr.length == 2)
+				{
+				return labelArr[0] + "\n" + labelArr[1] //prefix, new line, pixels
+				}
 				}
 				return data.label;*/
 			}
@@ -318,9 +322,9 @@
 			if(_flavorArray == arr) return;

 			_flavorArray = arr;
-
+
 			var newDPArray:Array = new Array();
-
+
 			if(_flavorArray && _flavorArray.length)
 			{
 				var sortedFlavorArray:Array = (_flavorArray.concat());
@@ -335,6 +339,7 @@
 					{
 						usedPixelsArr.push(false);
 					}
+					_usedLowHeight = false;
 				}

 				for(var i:int=0; i<sortedFlavorArray.length; i++)
@@ -347,7 +352,7 @@
 					{
 						//find closest pixels value:
 						var height: int = sortedFlavorArray[i].height;
-
+
 						for (var j:int = 0; j < HEIGHT_ARRAY.length; j++)
 						{
 							if (height == HEIGHT_ARRAY[j])
@@ -376,7 +381,14 @@
 						}

 						if (heightIndex == -1)
+						{
 							label = lowHeight;
+							//if we already inserted the "SD Low" label, don't insert another one
+							if (_usedLowHeight)
+								continue;
+
+							_usedLowHeight = true;
+						}
 						else
 						{
 							label = HEIGHT_ARRAY[heightIndex] + pixelsPostFix;
@@ -393,7 +405,7 @@
 					{
 						label = roundedBitrate + bitratePostFix;
 					}
-
+
 					newDPArray.push( { label: label, value: height, bitrate: roundedBitrate} );
 				}

@@ -407,7 +419,7 @@
 			{
 				return;
 			}
-
+
 			super.dataProvider = new DataProvider(newDPArray);
 			dispatchEvent( new Event( DATA_PROVIDER_CHANGE ) );

@@ -589,7 +601,7 @@
 		{
 			if(!dataProvider || !dataProvider.length)
 				return null;
-
+
 			//if we are in pixels mode represents the desired height
 			var preferedHeight:int = -1;
 			if (usePixels)


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1252238 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBarBaseAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBarBaseAutomationImpl.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package spark.automation.delegates.components.supportClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18139
Author:   hmuller@adobe.com
Date:     2010-10-12T19:02:33.052295Z

Log Message:
-----------
Data,Grid variableRowHeight is now false by default.

The DefaultGridItemRenderer and UITextFieldItemRenderer classes now configure their wordWrap property to match variableRowHeight, unless wordWrap is explicitly specified.

Fixed layoutItemRenderers() which had never (!) called the prepare()/discard() IGridItemRenderer methods.

Fixed GridDimensions/getTypicalContentHeight() - removed dependency on variableRowHeight.

QE notes: This commit's cyclone failures have been vetted
Doc notes:
Bugs: SDK-28179
Reviewer: Kevin
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1281824 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRenderer.as
@@ -130,20 +130,20 @@
     /**
      *  Called from the Grid's updateDisplayList() method after all of the
      *  column's properties have been set.  The willBeRecycled parameter is false
-     *  if this renderer hasn't been used be for, i.e. if it wasn't "recycled".  This method is
+     *  if this renderer hasn't been used before, i.e. if it wasn't "recycled".  This method is
      *  called when a renderer is about to become visible, typically because it was
      *  scrolled into view.
      *
      *
This method is not intended to be called directly, it's called by the Grid implementation.

      *
-     *  @param willBeRecycled True if this renderer is being reused.
+     *  @param hasBeenRecycled  True if this renderer is being reused.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    function prepare(willBeRecycled:Boolean):void;
+    function prepare(hasBeenRecycled:Boolean):void;

     /**
      *  Called from the Grid's updateDisplayList() when it has been determined
@@ -153,14 +153,14 @@
      *
      *
This method is not intended to be called directly, it's called by the Grid implementation.

      *
-     *  @param hasBeenRecycled True if this renderer is going to be added to the Grid's internal free list, to be reused later.
+     *  @param willBeRecycled True if this renderer is going to be added to the Grid's internal free list, to be reused later.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    function discard(hasBeenRecycled:Boolean):void;
+    function discard(willBeRecycled:Boolean):void;
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8570
Author:   hmuller@adobe.com
Date:     2009-07-14T23:51:32.547560Z

Log Message:
-----------
Substantially revised ScrollerLayout/updateDisplayList(): take care not to get the bounds of scrollbars that aren't visible, since now they also have scaleX,Y=0; hide scrollbars that don't fit.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1282610 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
@@ -32,7 +32,17 @@
     {
         super();
     }
-
+
+    /**
+     *  @private
+     *  Used by updateDisplayList() to prevent looping.
+     */
+    private var invalidationCount:int = 0;
+
+
+    /**
+     *  @private
+     */
     private function getScroller():Scroller
     {
         var g:Skin = target as Skin;
@@ -40,6 +50,7 @@
     }

     /**
+     *  @private
      *  Returns the viewport's content size transformed into the Scroller's coordiante
      *  system.   This makes it possible to compare the viewport size (also reported
      *  relative to the Scroller) and the content size when a transform has been applied
@@ -54,7 +65,133 @@
             return new Point(0,0);
         return MatrixUtil.transformSize(new Point(cw, ch), viewport.getLayoutMatrix());
     }
-
+
+    //----------------------------------
+    //  hsbVisible
+    //----------------------------------
+
+    private var hsbScaleX:Number = 1;
+    private var hsbScaleY:Number = 1;
+
+    /**
+     *  @private
+     */
+    private function get hsbVisible():Boolean
+    {
+        var hsb:ScrollBar = getScroller().horizontalScrollBar;
+        return hsb && hsb.visible;
+    }
+
+    /**
+     *  @private
+     *  To make the scrollbars invisible to methods like getRect() and getBounds()
+     *  as well as to methods based on them like hitTestPoint(), we set their scale
+     *  to 0.  More info about this here: http://bugs.adobe.com/jira/browse/SDK-21540
+     */
+    private function set hsbVisible(value:Boolean):void
+    {
+        var hsb:ScrollBar = getScroller().horizontalScrollBar;
+        if (!hsb)
+            return;
+
+        hsb.includeInLayout = hsb.visible = value;
+        if (value)
+        {
+            if (hsb.scaleX == 0)
+                hsb.scaleX = hsbScaleX;
+            if (hsb.scaleY == 0)
+                hsb.scaleY = hsbScaleY;
+        }
+        else
+        {
+            if (hsb.scaleX != 0)
+                hsbScaleX = hsb.scaleX;
+            if (hsb.scaleY != 0)
+                hsbScaleY = hsb.scaleY;
+            hsb.scaleX = hsb.scaleY = 0;
+        }
+    }
+
+    /**
+     *  @private
+     *  Return true if the specified dimensions provide enough space to layout
+     *  the horizontal scrollbar (hsb) at its minimum size.   The HSB is assumed
+     *  to be non-null and visible.
+     */
+    private function hsbFits(w:Number, h:Number):Boolean
+    {
+        if (vsbVisible)
+        {
+            var vsb:ScrollBar = getScroller().verticalScrollBar;
+            w -= vsb.getPreferredBoundsWidth();
+            h -= vsb.getMinBoundsHeight();
+        }
+        var hsb:ScrollBar = getScroller().horizontalScrollBar;
+        return (w >= hsb.getMinBoundsWidth()) && (h >= hsb.getPreferredBoundsHeight());
+    }
+
+    //----------------------------------
+    //  vsbVisible
+    //----------------------------------
+
+    private var vsbScaleX:Number = 1;
+    private var vsbScaleY:Number = 1;
+
+    /**
+     *  @private
+     */
+    private function get vsbVisible():Boolean
+    {
+        var vsb:ScrollBar = getScroller().verticalScrollBar;
+        return vsb && vsb.visible;
+    }
+
+    /**
+     *  @private
+     *  The logic here is the same as for the horizontal scrollbar, see above.
+     */
+    private function set vsbVisible(value:Boolean):void
+    {
+        var vsb:ScrollBar = getScroller().verticalScrollBar;
+        if (!vsb)
+            return;
+
+        vsb.includeInLayout = vsb.visible = value;
+        if (value)
+        {
+            if (vsb.scaleX == 0)
+                vsb.scaleX = vsbScaleX;
+            if (vsb.scaleY == 0)
+                vsb.scaleY = vsbScaleY;
+        }
+        else
+        {
+            if (vsb.scaleX != 0)
+                vsbScaleX = vsb.scaleX;
+            if (vsb.scaleY != 0)
+                vsbScaleY = vsb.scaleY;
+            vsb.scaleX = vsb.scaleY = 0;
+        }
+    }
+
+    /**
+     *  @private
+     *  Return true if the specified dimensions provide enough space to layout
+     *  the vertical scrollbar (vsb) at its minimum size.   The VSB is assumed
+     *  to be non-null and visible.
+     */
+    private function vsbFits(w:Number, h:Number):Boolean
+    {
+        if (hsbVisible)
+        {
+            var hsb:ScrollBar = getScroller().horizontalScrollBar;
+            w -= hsb.getMinBoundsWidth();
+            h -= hsb.getPreferredBoundsHeight();
+        }
+        var vsb:ScrollBar = getScroller().verticalScrollBar;
+        return (w >= vsb.getPreferredBoundsWidth()) && (h >= vsb.getMinBoundsHeight());
+    }
+
     /**
      * @private
      *  Computes the union of the preferred size of the visible
@@ -77,16 +214,6 @@
         var minViewportInset:Number = scroller.minViewportInset;
         var measuredW:Number = minViewportInset;
         var measuredH:Number = minViewportInset;
-        var minW:Number = minViewportInset;
-        var minH:Number = minViewportInset;
-
-        // If the viewport's explicit size is set, then
-        // include that in the scroller's minimum size
-        var viewportUIC:IUIComponent = viewport as IUIComponent;
-        var explicitViewportW:Number = viewportUIC ? viewportUIC.explicitWidth : NaN;
-        var explicitViewportH:Number = viewportUIC ? viewportUIC.explicitHeight : NaN;
-        if (!isNaN(explicitViewportW)) minW += explicitViewportW;
-        if (!isNaN(explicitViewportH)) minH += explicitViewportH;

         var hsb:ScrollBar = scroller.horizontalScrollBar;
         var showHSB:Boolean = false;
@@ -117,43 +244,31 @@
         }

         if (showHSB)
-        {
             measuredH += Math.max(minViewportInset, hsb.getPreferredBoundsHeight());
-            minW += hsb.getMinBoundsWidth();
-            minH += Math.max(minViewportInset, hsb.getMinBoundsHeight());
-        }
         else
-        {
             measuredH += minViewportInset;
-            minH += minViewportInset;
-        }

         if (showVSB)
-        {
             measuredW += Math.max(minViewportInset, vsb.getPreferredBoundsWidth());
-            minW += Math.max(minViewportInset, vsb.getMinBoundsWidth());
-            minH += vsb.getMinBoundsHeight();
-        }
         else
-        {
             measuredW += minViewportInset;
-            minW += minViewportInset;
-        }

         // The measured size of the viewport is just its preferredBounds, except:
         // don't give up space if doing so would make an auto scrollbar visible.
         // In other words, if an auto scrollbar isn't already showing, and using
         // the preferred size would force it to show, and the current size would not,
         // then use its current size as the measured size.
+
         var viewport:IViewport = scroller.viewport;
         if (viewport)
         {
             var contentSize:Point = getLayoutContentSize(viewport);

-            var viewportPreferredW:Number = viewport.getPreferredBoundsWidth();
+            var viewportPreferredW:Number =  viewport.getPreferredBoundsWidth();
             var viewportContentW:Number = contentSize.x;
             var viewportW:Number = viewport.getLayoutBoundsWidth();  // "current" size
-            if (hAuto && !showHSB && (viewportPreferredW < viewportContentW) && (viewportW >= viewportContentW))
+            var currentSizeNoHSB:Boolean = !isNaN(viewportW) && (viewportW >= viewportContentW);
+            if (hAuto && !showHSB && (viewportPreferredW < viewportContentW) && currentSizeNoHSB)
                 measuredW += viewportW;
             else
                 measuredW += viewportPreferredW;
@@ -161,27 +276,35 @@
             var viewportPreferredH:Number = viewport.getPreferredBoundsHeight();
             var viewportContentH:Number = contentSize.y;
             var viewportH:Number = viewport.getLayoutBoundsHeight();  // "current" size
-            if (vAuto && !showVSB && (viewportPreferredH < viewportContentH) && (viewportH >= viewportContentH))
+            var currentSizeNoVSB:Boolean = !isNaN(viewportH) && (viewportH >= viewportContentH);
+            if (vAuto && !showVSB && (viewportPreferredH < viewportContentH) && currentSizeNoVSB)
                 measuredH += viewportH;
             else
                 measuredH += viewportPreferredH;
         }

+        var minW:Number = minViewportInset * 2;
+        var minH:Number = minViewportInset * 2;
+
+        // If the viewport's explicit size is set, then
+        // include that in the scroller's minimum size
+
+        var viewportUIC:IUIComponent = viewport as IUIComponent;
+        var explicitViewportW:Number = viewportUIC ? viewportUIC.explicitWidth : NaN;
+        var explicitViewportH:Number = viewportUIC ? viewportUIC.explicitHeight : NaN;
+
+        if (!isNaN(explicitViewportW))
+            minW += explicitViewportW;
+
+        if (!isNaN(explicitViewportH))
+            minH += explicitViewportH;
+
         var g:GroupBase = target;
         g.measuredWidth = Math.ceil(measuredW);
         g.measuredHeight = Math.ceil(measuredH);
         g.measuredMinWidth = Math.ceil(minW);
         g.measuredMinHeight = Math.ceil(minH);
     }
-
-    // Used by updateDisplayList() to record the scale of hidden scrollbars
-    private var hsbScaleX:Number = 1;
-    private var hsbScaleY:Number = 1;
-    private var vsbScaleX:Number = 1;
-    private var vsbScaleY:Number = 1;
-
-    // Used by updateDisplayList() to prevent looping, see below.
-    private var invalidationCount:int = 0;

     /**
      *  @private
@@ -202,14 +325,12 @@
         var scroller:Scroller = getScroller();
         if (!scroller)
             return;
+
         var viewport:IViewport = scroller.viewport;
         var hsb:ScrollBar = scroller.horizontalScrollBar;
         var vsb:ScrollBar = scroller.verticalScrollBar;
         var minViewportInset:Number = scroller.minViewportInset;

-        var vsbW:Number = (vsb) ? vsb.getPreferredBoundsWidth() : 0;
-        var hsbH:Number = (hsb) ? hsb.getPreferredBoundsHeight() : 0;
-
         var contentW:Number = 0;
         var contentH:Number = 0;
         if (viewport)
@@ -219,128 +340,140 @@
             contentH = contentSize.y;
         }

-        var oldShowHSB:Boolean = hsb && hsb.visible;
-        var oldShowVSB:Boolean = vsb && vsb.visible;
-
         // If the viewport's size has been explicitly set (not typical) then use it
         var viewportUIC:IUIComponent = viewport as IUIComponent;
         var explicitViewportW:Number = viewportUIC ? viewportUIC.explicitWidth : NaN;
         var explicitViewportH:Number = viewportUIC ? viewportUIC.explicitHeight : NaN;

+        var oldShowHSB:Boolean = hsbVisible;
+        var oldShowVSB:Boolean = vsbVisible;
+
         // Decide which scrollbars will be visible based on the viewport's content size
-        // See the method doc above for more information.
-
-        var showHSB:Boolean = false;
+        // and the scroller's scroll policies.
+
         var hAuto:Boolean = false;
-        switch(scroller.getStyle("horizontalScrollPolicy")) {
+        switch(scroller.getStyle("horizontalScrollPolicy"))
+        {
             case ScrollPolicy.ON:
-                if (hsb) showHSB = true;
-                break;
+                hsbVisible = true;
+                break;
+
             case ScrollPolicy.AUTO:
                 if (hsb && viewport)
                 {
                     hAuto = true;
                     var viewportW:Number =
                         isNaN(explicitViewportW) ? (w - (minViewportInset * 2)) : explicitViewportW;
-                    showHSB = (contentW > viewportW) && (w >= hsb.minWidth);
+                    hsbVisible = (contentW > viewportW);
                 }
                 break;
+
+            default:
+                hsbVisible = false;
         }

-        var showVSB:Boolean = false;
         var vAuto:Boolean = false;
-        switch(scroller.getStyle("verticalScrollPolicy")) {
+        switch(scroller.getStyle("verticalScrollPolicy"))
+        {
            case ScrollPolicy.ON:
-                if (vsb) showVSB = true;
-                break;
+                vsbVisible = true;
+                break;
+
             case ScrollPolicy.AUTO:
                 if (vsb && viewport)
                 {
                     vAuto = true;
                     var viewportH:Number =
                         isNaN(explicitViewportH) ? (h - (minViewportInset * 2)) : explicitViewportH;
-                    showVSB = (contentH > viewportH) && (h >= vsb.minHeight);
+                    vsbVisible = (contentH > viewportH);
                 }
                 break;
-        }
-
+
+            default:
+                vsbVisible = false;
+        }
+
         // Shrink the viewport's width,height for the visible scrollbars

         viewportH = h - minViewportInset;
-        if (showHSB) viewportH -= Math.max(minViewportInset, hsbH);
+        if (hsbVisible)
+            viewportH -= Math.max(minViewportInset, hsb.getPreferredBoundsHeight());

         viewportW = w - minViewportInset;
-        if (showVSB) viewportW -= Math.max(minViewportInset, vsbW);
+        if (vsbVisible)
+            viewportW -= Math.max(minViewportInset, vsb.getPreferredBoundsWidth());

         // If the scrollBarPolicy is auto, and we're only showing one scrollbar,
         // the viewport may have shrunk enough to require showing the other one.
-        // We only show the other scrollbar, if there's enough space for it.
-        if (showVSB && !showHSB && hAuto && (contentW > viewportW))
-        {
-            viewportH -= Math.max(minViewportInset, hsbH);
-            showHSB = w >= (hsb.minWidth + vsb.minWidth);
-        }
-        else if (!showVSB && showHSB && vAuto && (contentH > viewportH))
-        {
-            viewportW -= Math.max(minViewportInset, vsbW);
-            showVSB = h >= (hsb.minHeight + vsb.minHeight);
-        }
-
+
+        if (vsbVisible && !hsbVisible && hAuto && (contentW > viewportW))
+        {
+            hsbVisible = true;
+            viewportH -= Math.max(minViewportInset, hsb.getPreferredBoundsHeight());
+        }
+        else if (!vsbVisible && hsbVisible && vAuto && (contentH > viewportH))
+        {
+            vsbVisible = true;
+            viewportW -= Math.max(minViewportInset, vsb.getPreferredBoundsWidth());
+        }
+
         // Factor in scrollBar-side viewportInsets where there aren't scrollbars
-        if (!showHSB) viewportH -= minViewportInset;
-        if (!showVSB) viewportW -= minViewportInset;
-
+
+        if (!hsbVisible)
+            viewportH -= minViewportInset;
+
+        if (!vsbVisible)
+            viewportW -= minViewportInset;
+
+        // If the HSB doesn't fit, hide it and give the space back.   Likewise for VSB.
+
+        if (hsbVisible && !hsbFits(w, h))
+        {
+            viewportH += Math.max(minViewportInset, hsb.getPreferredBoundsHeight());
+            hsbVisible = false;
+        }
+
+        if (vsbVisible && !vsbFits(w, h))
+        {
+            viewportW += Math.max(minViewportInset, vsb.getPreferredBoundsWidth());
+            vsbVisible = false;
+        }
+
         // Special case: viewport's size is explicitly set
-        if (!isNaN(explicitViewportW)) viewportW = explicitViewportW;
-        if (!isNaN(explicitViewportH)) viewportH = explicitViewportH;
-
-        // Layout the viewport.
+
+        if (!isNaN(explicitViewportW))
+            viewportW = explicitViewportW;
+
+        if (!isNaN(explicitViewportH))
+            viewportH = explicitViewportH;
+
+        // Layout the viewport scrollbars.
+
         if (viewport)
         {
             viewport.setLayoutBoundsSize(viewportW, viewportH);
             viewport.setLayoutBoundsPosition(minViewportInset, minViewportInset);
         }
-
-        // Layout the scrollbars.  To make the scrollbars invisible to methods
-        // like getRect() and getBounds() as well as to methods based on them
-        // like hitTestPoint(), we set their scale to 0.  More info about this
-        // here: http://bugs.adobe.com/jira/browse/SDK-21540
-
-        if (hsb) hsb.includeInLayout = hsb.visible = showHSB;
-        if (showHSB)
-        {
-            if (hsb.scaleX == 0) hsb.scaleX = hsbScaleX;
-            if (hsb.scaleY == 0) hsb.scaleY = hsbScaleY;
-            var hsbW:Number = (showVSB) ? w - vsbW : w;
+
+        if (hsbVisible)
+        {
+            var hsbW:Number = (vsbVisible) ? w - vsb.getPreferredBoundsWidth() : w;
+            var hsbH:Number = hsb.getPreferredBoundsHeight();
             hsb.setLayoutBoundsSize(Math.max(hsb.getMinBoundsWidth(), hsbW), hsbH);
             hsb.setLayoutBoundsPosition(0, h - hsbH);
         }
-        else if (hsb)
-        {
-            if (hsb.scaleX != 0) hsbScaleX = hsb.scaleX;
-            if (hsb.scaleY != 0) hsbScaleY = hsb.scaleY;
-            hsb.scaleX = hsb.scaleY = 0;
-        }
-
-        if (vsb) vsb.includeInLayout = vsb.visible = showVSB;
-        if (showVSB)
-        {
-            if (vsb.scaleX == 0) vsb.scaleX = vsbScaleX;
-            if (vsb.scaleY == 0) vsb.scaleY = vsbScaleY;
-            var vsbH:Number = (showHSB) ? h - hsbH : h;
+
+        if (vsbVisible)
+        {
+            var vsbW:Number = vsb.getPreferredBoundsWidth();
+            var vsbH:Number = (hsbVisible) ? h - hsb.getPreferredBoundsHeight() : h;
             vsb.setLayoutBoundsSize(vsbW, Math.max(vsb.getMinBoundsHeight(), vsbH));
             vsb.setLayoutBoundsPosition(w - vsbW, 0);
         }
-        else if (vsb)
-        {
-            if (vsb.scaleX != 0) vsbScaleX = vsb.scaleX;
-            if (vsb.scaleY != 0) vsbScaleY = vsb.scaleY;
-            vsb.scaleX = vsb.scaleY = 0;
-        }

         // If we've added an auto scrollbar, then the measured size is likely to have been wrong.
         // There's a risk of looping here, so we count.
-        if ((invalidationCount < 2) && (((showVSB != oldShowVSB) && vAuto) || ((showHSB != oldShowHSB) && hAuto)))
+        if ((invalidationCount < 2) && (((vsbVisible != oldShowVSB) && vAuto) || ((hsbVisible != oldShowHSB) && hAuto)))
         {
             target.invalidateSize();
             invalidationCount += 1;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5301
Author:   clucier@adobe.com
Date:     2009-03-13T18:40:17.284526Z

Log Message:
-----------
Adding debug helper code which highlights all recently validated visual elements.
Just uncomment all code marked with LAYOUT_DEBUG.

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/layoutClasses/LayoutDebugHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285920 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -51,6 +51,7 @@
 import mx.graphics.IStroke;
 import mx.graphics.MaskType;
 import mx.managers.ILayoutManagerClient;
+import mx.managers.LayoutManager;
 import mx.utils.MatrixUtil;
 import mx.utils.OnDemandEventDispatcher;

@@ -3213,6 +3214,9 @@
         // If we aren't doing any more invalidation, send out an UpdateComplete event
         if (!invalidatePropertiesFlag && !invalidateSizeFlag && !invalidateDisplayListFlag && wasInvalid)
             dispatchUpdateComplete();
+
+        // LAYOUT_DEBUG
+        //LayoutManager.debugHelper.addElement(ILayoutElement(this));
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 7500
Author:   jszeto@adobe.com
Date:     2009-06-03T00:30:49.221321Z

Log Message:
-----------
ASDoc comment updates

http://bugs.adobe.com/jira/browse/SDK-21265 - [ASDoc] Group/DataGroup/SkinnableDataContainer ASDoc Updates
http://bugs.adobe.com/jira/browse/SDK-17665 - Transform convenience props and matrix should not legal at the same time

Updated ASDoc comments

QE Notes: None
Doc Notes: Added comments
Bugs: SDK-21265, SDK-17665
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285939 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -71,6 +71,11 @@
  *  object in the object's parent coordinate space. The UBounds are the boundaries
  *  of an object in its own coordinate space.

  *
+ *
If you set the transform.matrix declaratively in MXML, then it will override
+ *  the values of any transform properties (rotation, scaleX, scaleY, x, and y).
+ *  If you set the transform.matrix or the transform properties in ActionScript, then
+ *  the last value set will be used.

+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5


Transferred from the Adobe Open Source Subversion Repository

Revision: 11093
Author:   dsubrama@adobe.com
Date:     2009-10-22T23:25:43.839563Z

Log Message:
-----------
Fix for http://bugs.adobe.com/jira/browse/SDK-23769 - now, we correctly instantiate the advanced blend mode wrappers.

QE notes: Yes, regress
Doc notes: No
Bugs: SDK-23769
Reviewer: Evtim
Tests run: Checkintests
Is noteworthy for integration: Yes - now all the advanced blendModes will render correctly

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285974 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -3457,21 +3457,45 @@
 				switch(_blendMode)
 				{
 					case "color":
-						displayObject.blendShader = new ColorShader();
-					case "colordodge":
-						displayObject.blendShader = new ColorDodgeShader();
-					case "colorburn":
-						displayObject.blendShader = new ColorBurnShader();
-					case "exclusion":
+					{
+						displayObject.blendShader = new ColorShader();
+						break;
+					}
+					case "colordodge":
+					{
+						displayObject.blendShader = new ColorDodgeShader();
+						break;
+					}
+					case "colorburn":
+					{
+						displayObject.blendShader = new ColorBurnShader();
+						break;
+					}
+					case "exclusion":
+					{
 						displayObject.blendShader = new ExclusionShader();
-					case "hue":
-						displayObject.blendShader = new HueShader();
+						break;
+					}
+					case "hue":
+					{
+						displayObject.blendShader = new HueShader();
+						break;
+					}
 					case "luminosity":
-						displayObject.blendShader = new LuminosityShader();
+					{
+						displayObject.blendShader = new LuminosityShader();
+						break;
+					}
 					case "saturation":
-						displayObject.blendShader = new SaturationShader();
+					{
+						displayObject.blendShader = new SaturationShader();
+						break;
+					}
 					case "softlight":
-						displayObject.blendShader = new SoftLightShader();
+					{
+						displayObject.blendShader = new SoftLightShader();
+						break;
+					}
 				}
 			}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1250124 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as
+++ frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.skins.halo
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3634
Author:   mhorn@adobe.com
Date:     2008-10-14T20:28:10.010975Z

Log Message:
-----------
asdoc updates

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/FilledElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/QuadraticBezierSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285822 13f79535-47bb-0310-9956-ffa450edef68