Transferred from the Adobe Open Source Subversion Repository

Revision: 16334
Author:   clucier@adobe.com
Date:     2010-05-27T02:31:28.322720Z

Log Message:
-----------
Preliminary Spark Image and BitmapImage enhancement feature work.  Also included with this checkin is the ability for BitmapImage and s:Image instances to share an image cache.  Queueing is next up to be checked in.

QE notes: Proceed with testing, though PARB related renames are pending. Not considered code complete.
Doc notes: Should begin reviewing new classes in preparation for doc'ing.
Bugs: None
Reviewer: Ryan
Tests run: Checkin, cyclone server Mustella tests.
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/ContentRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LinkedList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ImageLoadingSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/ContentCache.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ImageSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Image.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LinkedListNode.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapSmoothingQuality.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/LoaderInvalidationEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/IContentLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mx-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>

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

--- frameworks/projects/spark/src/spark/core/ContentRequest.as
+++ frameworks/projects/spark/src/spark/core/ContentRequest.as
@@ -0,0 +1,286 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 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.core.contentLoader
+{
+
+import flash.display.Loader;
+import flash.display.LoaderInfo;
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import flash.events.IOErrorEvent;
+import flash.events.ProgressEvent;
+import flash.events.SecurityErrorEvent;
+import flash.net.URLRequest;
+import flash.system.LoaderContext;
+
+import mx.core.mx_internal;
+use namespace mx_internal;
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  Dispatched when content loading is complete.
+ *
+ *  @eventType flash.events.Event.COMPLETE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Event(name="complete", type="flash.events.Event")]
+
+/**
+ *  Dispatched when a network request is made over HTTP
+ *  and Flash Player or AIR can detect the HTTP status code.
+ *
+ *  @eventType flash.events.HTTPStatusEvent.HTTP_STATUS
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Event(name="httpStatus", type="flash.events.HTTPStatusEvent")]
+
+/**
+ *  Dispatched when an input/output error occurs.
+ *  @see flash.events.IOErrorEvent
+ *
+ *  @eventType flash.events.IOErrorEvent.IO_ERROR
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Event(name="ioError", type="flash.events.IOErrorEvent")]
+
+/**
+ *  Dispatched when content is loading.
+ *
+ *
Note:
+ *  The progress event is not guaranteed to be dispatched.
+ *  The complete event may be received, without any
+ *  progress events being dispatched.
+ *  This can happen when the loaded content is a local file.

+ *
+ *  @eventType flash.events.ProgressEvent.PROGRESS
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Event(name="progress", type="flash.events.ProgressEvent")]
+
+/**
+ *  Dispatched when a security error occurs.
+ *  @see flash.events.SecurityErrorEvent
+ *
+ *  @eventType flash.events.SecurityErrorEvent.SECURITY_ERROR
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Event(name="securityError", type="flash.events.SecurityErrorEvent")]
+
+/**
+ *  Represents an IContentLoader content request instance returned from
+ *  IContentLoader's load() method.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4.5
+ */
+public class ContentRequest extends EventDispatcher
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.5
+     */
+    public function ContentRequest(contentLoader:IContentLoader,content:*,shared:Boolean=false)
+    {
+        super();
+        this.content = content;
+        _shared = shared;
+        contentLoader.addEventListener("invalidateLoader", contentLoader_invalidateLoaderHandler, false, 0, true);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+    private var _shared:Boolean;
+
+    //----------------------------------
+    //  content
+    //----------------------------------
+
+    /**
+     * @private
+     */
+    protected var _content:*;
+
+    /**
+     *  Returns reference to contained content. This
+     *  can be (among many things), a LoaderInfo instance, BitmapData,
+     *  or any other generic content.  When the complete event has fired
+     *  and/or complete() returns true, the content is considered valid.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.5
+     */
+    public function get content():*
+    {
+        return _content;
+    }
+
+    /**
+     * @private
+     */
+    public function set content(value:*):void
+    {
+        removeLoaderListeners();
+        _content = value;
+        addLoaderListeners();
+    }
+
+    //----------------------------------
+    //  complete
+    //----------------------------------
+
+    /**
+     *  Read-only flag. Returns true if content is
+     *  considered fully loaded and accessible.
+	 *
+	 *  @default false.
+     */
+    public function get complete():Boolean
+    {
+        if (_content && _content is LoaderInfo)
+        {
+            return (_content.bytesTotal > 0 &&
+                    _content.bytesTotal == _content.bytesLoaded);
+        }
+
+        return (_content != null);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * @private
+     */
+    private function addLoaderListeners():void
+    {
+        if (_content && _content is LoaderInfo)
+        {
+            _content.addEventListener(Event.COMPLETE, content_completeHandler);
+            _content.addEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
+            _content.addEventListener(ProgressEvent.PROGRESS, dispatchEvent);
+            _content.addEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
+        }
+    }
+
+    /**
+     * @private
+     */
+    private function removeLoaderListeners():void
+    {
+        if (_content && _content is LoaderInfo)
+        {
+            _content.removeEventListener(Event.COMPLETE, content_completeHandler);
+            _content.removeEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
+            _content.removeEventListener(ProgressEvent.PROGRESS, dispatchEvent);
+            _content.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event Handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * @private
+     */
+    mx_internal function content_completeHandler(e:Event):void
+    {
+        if (e.target == _content)
+        {
+            dispatchEvent(e);
+            removeLoaderListeners();
+        }
+    }
+
+	/**
+	 * @private
+	 */
+	mx_internal function content_ioErrorHandler(e:Event):void
+	{
+		if (e.target == _content)
+		{
+			if (hasEventListener(IOErrorEvent.IO_ERROR))
+				dispatchEvent(e);
+		}
+	}
+
+    /**
+     * @private
+     * Invoked when a shared LoaderInfo has been revoked from being shared.
+     * We must now load our content ourselves.
+     */
+    mx_internal function contentLoader_invalidateLoaderHandler(e:LoaderInvalidationEvent):void
+    {
+        if (_shared)
+        {
+            if (_content == e.content)
+            {
+                // FIXME(crl): Should recovery be deferred to the owner of this
+                // content request?
+                _shared = false;
+                var loader:Loader = new Loader();
+                var loaderContext:LoaderContext = new LoaderContext();
+                var url:String = _content.url;
+                var loaderInfo:LoaderInfo = loader.contentLoaderInfo;
+                loaderContext.checkPolicyFile = true;
+                loader.load(new URLRequest(url), loaderContext);
+            }
+        }
+    }
+
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8401
Author:   smgilson@adobe.com
Date:     2009-07-06T21:34:44.861518Z

Log Message:
-----------
ASDoc on filters/BevelFilter.as

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/BevelFilter.as
+++ frameworks/projects/spark/src/spark/filters/BevelFilter.as
@@ -42,8 +42,24 @@
  * and the total number of pixels cannot exceed 16,777,215 pixels. (So, if an image is 8,191 pixels
  * wide, it can only be 2,048 pixels high.) If, for example, you zoom in on a large movie clip
  * with a filter applied, the filter is turned off if the resulting image exceeds the maximum dimensions.

- *
- * @tiptext Adds a bevel effect.
+ *
+ *  @mxml
+ *
The <BevelFilter> tag inherits all of the tag
+ *  attributes of its superclass and adds the following tag attributes:

+ *
+ *

+ *  <BevelFilter
+ *    Properties
+ *    angle="45"
+ *    distance="4"
+ *    highlightAlpha="1"
+ *    highlightColor="0xFFFFFF"
+ *    shadowAlpha="1"
+ *    shadowColor="0x000000"
+ *    type="inner"
+ *  />
+ *

+ *
  *
  * @langversion 3.0
  * @playerversion Flash 10
@@ -58,298 +74,307 @@

 public class BevelFilter extends BaseDimensionFilter implements IBitmapFilter
 {
-	/**
-	 * Constructor.
-	 *
-	 * @param distance The offset distance of the bevel, in pixels (floating point).
-	 * @param angle The angle of the bevel, from 0 to 360 degrees.
-	 * @param highlightColor The highlight color of the bevel, 0xRRGGBB.
-	 * @param highlightAlpha The alpha transparency value of the highlight color. Valid values are 0.0 to
-	 * 1.0. For example,
-	 * .25 sets a transparency value of 25%.
-	 * @param shadowColor The shadow color of the bevel, 0xRRGGBB.
-	 * @param shadowAlpha The alpha transparency value of the shadow color. Valid values are 0.0 to 1.0. For example,
-	 * .25 sets a transparency value of 25%.
-	 * @param blurX The amount of horizontal blur in pixels. Valid values are 0 to 255.0 (floating point).
-	 * @param blurY The amount of vertical blur in pixels. Valid values are 0 to 255.0 (floating point).
-	 * @param strength The strength of the imprint or spread. The higher the value, the more color is imprinted and the stronger the contrast between the bevel and the background. Valid values are 0 to 255.0.
-	 * @param quality The quality of the bevel. Valid values are 0 to 15, but for most applications,
-	 * you can use flash.filters.BitmapFilterQuality constants:
-	 *

-	 *
BitmapFilterQuality.LOW

-	 *
BitmapFilterQuality.MEDIUM

-	 *
BitmapFilterQuality.HIGH

-	 *

-	 *
Filters with lower values render faster. You can use
-	 * the other available numeric values to achieve different effects.

-	 * @param type The type of bevel. Valid values are flash.filters.BitmapFilterType constants:
-	 * BitmapFilterType.INNER, BitmapFilterType.OUTER, or
-	 * BitmapFilterType.FULL.
-	 * @param knockout Applies a knockout effect (true), which effectively
-	 * makes the object's fill transparent and reveals the background color of the document.
-	 *
-	 * @see flash.filters.BitmapFilterQuality
-	 * @see flash.filters.BitmapFilterType
-	 *
-	 * @langversion 3.0
-	 * @playerversion Flash 10
-	 * @playerversion AIR 1.5
- 	 * @productversion Flex 4
-	 */
-	public function BevelFilter(distance:Number = 4.0, angle:Number = 45,
-								highlightColor:uint = 0xFFFFFF, highlightAlpha:Number = 1.0,
-								shadowColor:uint = 0x000000, shadowAlpha:Number = 1.0,
-								blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1,
-								quality:int = 1, type:String = "inner",
-								knockout:Boolean = false)
-	{
-		super();
-
-		this.distance = distance;
-		this.angle = angle;
-		this.highlightColor = highlightColor;
-		this.highlightAlpha = highlightAlpha;
-		this.shadowColor = shadowColor;
-		this.shadowAlpha = shadowAlpha;
-		this.blurX = blurX;
-		this.blurY = blurY;
-		this.strength = strength;
-		this.quality = quality;
-		this.type = type;
-		this.knockout = knockout;
-	}
-
-	//----------------------------------
+    /**
+     * Constructor.
+     *
+     * @param distance The offset distance of the bevel, in pixels (floating point).
+     * @param angle The angle of the bevel, from 0 to 360 degrees.
+     * @param highlightColor The highlight color of the bevel, 0xRRGGBB.
+     * @param highlightAlpha The alpha transparency value of the highlight color. Valid values are 0.0 to
+     * 1.0. For example,
+     * .25 sets a transparency value of 25%.
+     * @param shadowColor The shadow color of the bevel, 0xRRGGBB.
+     * @param shadowAlpha The alpha transparency value of the shadow color. Valid values are 0.0 to 1.0. For example,
+     * .25 sets a transparency value of 25%.
+     * @param blurX The amount of horizontal blur in pixels. Valid values are 0 to 255.0 (floating point).
+     * @param blurY The amount of vertical blur in pixels. Valid values are 0 to 255.0 (floating point).
+     * @param strength The strength of the imprint or spread. The higher the value, the more color is imprinted and the stronger the contrast between the bevel and the background. Valid values are 0 to 255.0.
+     * @param quality The quality of the bevel. Valid values are 0 to 15, but for most applications,
+     * you can use flash.filters.BitmapFilterQuality constants:
+     *

+     *
BitmapFilterQuality.LOW

+     *
BitmapFilterQuality.MEDIUM

+     *
BitmapFilterQuality.HIGH

+     *

+     *
Filters with lower values render faster. You can use
+     * the other available numeric values to achieve different effects.

+     * @param type The type of bevel. Valid values are flash.filters.BitmapFilterType constants:
+     * BitmapFilterType.INNER, BitmapFilterType.OUTER, or
+     * BitmapFilterType.FULL.
+     * @param knockout Applies a knockout effect (true), which effectively
+     * makes the object's fill transparent and reveals the background color of the document.
+     *
+     * @see flash.filters.BitmapFilterQuality
+     * @see flash.filters.BitmapFilterType
+     *
+     * @langversion 3.0
+     * @playerversion Flash 10
+     * @playerversion AIR 1.5
+     * @productversion Flex 4
+     */
+    public function BevelFilter(distance:Number = 4.0, angle:Number = 45,
+                                highlightColor:uint = 0xFFFFFF, highlightAlpha:Number = 1.0,
+                                shadowColor:uint = 0x000000, shadowAlpha:Number = 1.0,
+                                blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1,
+                                quality:int = 1, type:String = "inner",
+                                knockout:Boolean = false)
+    {
+        super();
+
+        this.distance = distance;
+        this.angle = angle;
+        this.highlightColor = highlightColor;
+        this.highlightAlpha = highlightAlpha;
+        this.shadowColor = shadowColor;
+        this.shadowAlpha = shadowAlpha;
+        this.blurX = blurX;
+        this.blurY = blurY;
+        this.strength = strength;
+        this.quality = quality;
+        this.type = type;
+        this.knockout = knockout;
+    }
+
+    //----------------------------------
     //  angle
     //----------------------------------
-
-	private var _angle:Number = 45;
-
-	/**
-	 *   The angle of the bevel. Valid values are from 0 to 360°.
-	 *   The angle value represents the angle of the theoretical light source falling on the
-	 *   object and determines the placement of the effect relative to the object.
-	 *   If the distance property is set to 0, the effect is not offset from the object and,
-	 *   therefore, the angle property has no effect.
-	 *
-	 *   @default 45
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get angle():Number
-	{
-		return _angle;
-	}
-
-	public function set angle(value:Number):void
-	{
-		if (value != _angle)
-		{
-			_angle = value;
-			notifyFilterChanged();
-		}
-	}
-
-	//----------------------------------
+
+    private var _angle:Number = 45;
+
+    /**
+     *   The angle of the bevel. Valid values are from 0 to 360°.
+     *   The angle value represents the angle of the theoretical light source falling on the
+     *   object and determines the placement of the effect relative to the object.
+     *   If the distance property is set to 0, the effect is not offset from the object and,
+     *   therefore, the angle property has no effect.
+     *
+     *   @default 45
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get angle():Number
+    {
+        return _angle;
+    }
+
+    public function set angle(value:Number):void
+    {
+        if (value != _angle)
+        {
+            _angle = value;
+            notifyFilterChanged();
+        }
+    }
+
+    //----------------------------------
     //  distance
     //----------------------------------
-
-	private var _distance:Number = 4.0;
-
-	/**
-	 *  The offset distance of the bevel. Valid values are in pixels (floating point).
-	 * 	@default 4
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get distance():Number
-	{
-		return _distance;
-	}
-
-	public function set distance(value:Number):void
-	{
-		if (value != _distance)
-		{
-			_distance = value;
-			notifyFilterChanged();
-		}
-	}
-
-	//----------------------------------
+
+    private var _distance:Number = 4.0;
+
+    /**
+     *  The offset distance of the bevel. Valid values are in pixels (floating point).
+     *  @default 4
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get distance():Number
+    {
+        return _distance;
+    }
+
+    public function set distance(value:Number):void
+    {
+        if (value != _distance)
+        {
+            _distance = value;
+            notifyFilterChanged();
+        }
+    }
+
+    //----------------------------------
     //  highlightAlpha
     //----------------------------------
-
-	private var _highlightAlpha:Number = 1.0;
-
-	/**
-	 *  The alpha transparency value of the highlight color. The value is specified as a normalized
-	 *  value from 0 to 1. For example, .25 sets a transparency value of 25%.
-	 *  @default 1
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get highlightAlpha():Number
-	{
-		return _highlightAlpha;
-	}
-
-	public function set highlightAlpha(value:Number):void
-	{
-		if (value != _highlightAlpha)
-		{
-			_highlightAlpha = value;
-			notifyFilterChanged();
-		}
-	}
-
-	//----------------------------------
+
+    private var _highlightAlpha:Number = 1.0;
+
+    /**
+     *  The alpha transparency value of the highlight color. The value is specified as a normalized
+     *  value from 0 to 1. For example, .25 sets a transparency value of 25%.
+     *  @default 1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get highlightAlpha():Number
+    {
+        return _highlightAlpha;
+    }
+
+    public function set highlightAlpha(value:Number):void
+    {
+        if (value != _highlightAlpha)
+        {
+            _highlightAlpha = value;
+            notifyFilterChanged();
+        }
+    }
+
+    //----------------------------------
     //  highlightColor
     //----------------------------------
-
-	private var _highlightColor:uint = 0xFFFFFF;
-
-	/**
-	 *  The highlight color of the bevel. Valid values are in hexadecimal format, 0xRRGGBB.
-	 *  @default 0xFFFFFF
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get highlightColor():uint
-	{
-		return _highlightColor;
-	}
-
-	public function set highlightColor(value:uint):void
-	{
-		if (value != _highlightColor)
-		{
-			_highlightColor = value;
-			notifyFilterChanged();
-		}
-	}
-
-	//----------------------------------
+
+    private var _highlightColor:uint = 0xFFFFFF;
+
+    /**
+     *  The highlight color of the bevel. Valid values are in hexadecimal format, 0xRRGGBB.
+     *  @default 0xFFFFFF
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get highlightColor():uint
+    {
+        return _highlightColor;
+    }
+
+    public function set highlightColor(value:uint):void
+    {
+        if (value != _highlightColor)
+        {
+            _highlightColor = value;
+            notifyFilterChanged();
+        }
+    }
+
+    //----------------------------------
     //  shadowAlpha
     //----------------------------------
-
-	private var _shadowAlpha:Number = 1.0;
-
-	/**
-	 *  The alpha transparency value of the shadow color. This value is specified as a
-	 *  normalized value from 0 to 1. For example, .25 sets a transparency value of 25%.
-	 *
-	 *  @default 1
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get shadowAlpha():Number
-	{
-		return _shadowAlpha;
-	}
-
-	public function set shadowAlpha(value:Number):void
-	{
-		if (value != _shadowAlpha)
-		{
-			_shadowAlpha = value;
-			notifyFilterChanged();
-		}
-	}
-
-	//----------------------------------
+
+    private var _shadowAlpha:Number = 1.0;
+
+    /**
+     *  The alpha transparency value of the shadow color. This value is specified as a
+     *  normalized value from 0 to 1. For example, .25 sets a transparency value of 25%.
+     *
+     *  @default 1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get shadowAlpha():Number
+    {
+        return _shadowAlpha;
+    }
+
+    public function set shadowAlpha(value:Number):void
+    {
+        if (value != _shadowAlpha)
+        {
+            _shadowAlpha = value;
+            notifyFilterChanged();
+        }
+    }
+
+    //----------------------------------
     //  shadowColor
     //----------------------------------
-
-	private var _shadowColor:uint = 0x000000;
-
-	/**
-	 *  The shadow color of the bevel. Valid values are in hexadecimal format, 0xRRGGBB.
-	 *  @default 0x000000
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get shadowColor():uint
-	{
-		return _shadowColor;
-	}
-
-	public function set shadowColor(value:uint):void
-	{
-		if (value != _shadowColor)
-		{
-			_shadowColor = value;
-			notifyFilterChanged();
-		}
-	}
-
-	//----------------------------------
+
+    private var _shadowColor:uint = 0x000000;
+
+    /**
+     *  The shadow color of the bevel. Valid values are in hexadecimal format, 0xRRGGBB.
+     *  @default 0x000000
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get shadowColor():uint
+    {
+        return _shadowColor;
+    }
+
+    public function set shadowColor(value:uint):void
+    {
+        if (value != _shadowColor)
+        {
+            _shadowColor = value;
+            notifyFilterChanged();
+        }
+    }
+
+    //----------------------------------
     //  type
     //----------------------------------
-
-	private var _type:String = BitmapFilterType.INNER;
-
-	/**
-	 *  The placement of the filter effect. Possible values are
-	 *  flash.filters.BitmapFilterType constants:
- 	 *  BitmapFilterType.OUTER — Glow on the outer edge of the object
-	 *  BitmapFilterType.INNER — Glow on the inner edge of the object; the default.
-	 *  BitmapFilterType.FULL — Glow on top of the object
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get type():String
-	{
-		return _type;
-	}
-
-	public function set type(value:String):void
-	{
-		if (value != _type)
-		{
-			_type = value;
-			notifyFilterChanged();
-		}
-	}
-
-	/**
-	 * Returns a copy of this filter object.
-	 *
-	 * @langversion 3.0
-	 * @playerversion Flash 10
-	 * @playerversion AIR 1.5
-	 * @productversion Flex 4
-	 *
-	 * @return A new BevelFilter instance with all the same properties as
-	 * the original BevelFilter instance.
-	 */
-	public function clone():BitmapFilter
-	{
-		return new flash.filters.BevelFilter(distance, angle, highlightColor, highlightAlpha,
-											 shadowColor, shadowAlpha, blurX, blurY, strength,
-											 quality, type, knockout);
-	}
+
+    private var _type:String = BitmapFilterType.INNER;
+
+    /**
+     *  The placement of the filter effect. Possible values are
+     *  flash.filters.BitmapFilterType constants:
+     *

+     *
BitmapFilterType.OUTER -
+     *      Glow on the outer edge of the object.

+     *
BitmapFilterType.INNER -
+     *      Glow on the inner edge of the object; the default.

+     *
BitmapFilterType.FULL -
+     *      Glow on top of the object.

+     *

+     *
+     *  @default BitmapFilterType.INNER
+     *
+     *  @see flash.filters.BitmapFilterType
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get type():String
+    {
+        return _type;
+    }
+
+    public function set type(value:String):void
+    {
+        if (value != _type)
+        {
+            _type = value;
+            notifyFilterChanged();
+        }
+    }
+
+    /**
+     * Returns a copy of this filter object.
+     *
+     * @langversion 3.0
+     * @playerversion Flash 10
+     * @playerversion AIR 1.5
+     * @productversion Flex 4
+     *
+     * @return A new BevelFilter instance with all the same properties as
+     * the original BevelFilter instance.
+     */
+    public function clone():BitmapFilter
+    {
+        return new flash.filters.BevelFilter(distance, angle, highlightColor, highlightAlpha,
+                                             shadowColor, shadowAlpha, blurX, blurY, strength,
+                                             quality, type, knockout);
+    }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

--- frameworks/projects/mx/src/mx/skins/halo/DataGridColumnResizeSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/DataGridColumnResizeSkin.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 5181
Author:   dsubrama@adobe.com
Date:     2009-03-05T22:40:12.746581Z

Log Message:
-----------
List work:

-Introduction of two new interfaces that formalize communication between a component and its renderers: IItemRenderer, IItemRendererOwner
-Removed ISelectableRenderer from use by ButtonBar. ButtonBar now works with the above-mentioned interfaces.
-Added labelField/labelFunction to ListBase - usable by List and ButtonBar.
-Introduced new utility class, LabelUtils, which returns the correct text for a data item's renderer given a labelField and labelFunction.
-Removed data-binding from FxDefaultItemRenderer - the new interfaces determine how a component stuffs the right text into the renderer's optional part, labelElement.

Checkintests: Pass
Mustella: ButtonBar and List tests pass
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/ISelectableRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/utils/LabelUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/IItemRendererOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/IItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/IItemRendererOwner.as
+++ frameworks/projects/spark/src/spark/components/IItemRendererOwner.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 mx.components
+{
+
+/**
+ *  The IItemRendererOwner interface defines the basic set of APIs
+ *  that you must implement to create a component that can
+ *  communicate with renderers implementing the IItemRenderer
+ *  interface.
+ *
+ */
+public interface IItemRendererOwner
+{
+	/**
+     *  Method that returns the label an item renderer displays.
+     */
+	function itemToLabel(item:Object):String;
+
+}
+
+}


VectorUtils.copy() now supports array-like objects that aren't Arrays.

--- WeaveData/src/weave/utils/VectorUtils.as
+++ WeaveData/src/weave/utils/VectorUtils.as
@@ -98,13 +98,16 @@
 		/**
 		 * This function copies the contents of the source to the destination.
 		 * Either parameter may be either an Array or a Vector.
+		 * @param source An Array-like object.
+		 * @param destination An Array or Vector.
 		 * @return A pointer to the destination Array (or Vector)
 		 */
-		public static function copy(source:*, destination:*):*
-		{
+		public static function copy(source:*, destination:* = null):*
+		{
+			if (!destination)
+				destination = [];
 			destination.length = source.length;
-			var i:int = source.length;
-			while (i--)
+			for (var i:* in source)
 				destination[i] = source[i];
 			return destination;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

--- frameworks/projects/mx/src/mx/skins/halo/LinkButtonSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/LinkButtonSkin.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 18173
Author:   jasonsj@adobe.com
Date:     2010-10-15T17:03:20.801634Z

Log Message:
-----------
Mobile Theme Initial check-in

* New light-look visuals from XD
* Changed airmobile-config.xml to use standalone Mobile theme instead of Spark overlay
* Added theme="spark, mobile" where spark was already white-listed and support is implemented and/or planned for Mobile/spark.css (see https://zerowing.corp.adobe.com/display/flexmobile/Mobile+Theme+Styles+Spec)
* MobileSkin has symbolColor and chromeColor support. Override beginChromeColorFill and drawChromeColor when defining custom chromeColor visuals.
* CheckBox and RadioButton now have chromeColor and symbolColor support
* Added textShadowColor and textShadowAlpha support to Button and ActionBar
* Added chromeColor support to HScrollBar and VScrollBar

QE notes: All mobile skins have been updaetd.
Doc notes: Update mobile skinning documentation for new APIs
Bugs:
SDK-28043 Investigate usage of "viewWidth", "viewHeight" for the Flex Mobile Skin Assets
SDK-27609 Mobile scroll bar skins should use chromeColor
SDK-27646 cornerradius has no effect on button in mobile application
Reviewer: gruehle
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TextInput_border.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_downSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/themes/Mobile/spark.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/airmobile-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_downSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/spark/src/spark/components/CheckBox.as
+++ frameworks/projects/spark/src/spark/components/CheckBox.as
@@ -35,7 +35,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="symbolColor", type="uint", format="Color", inherit="yes", theme="spark")]
+[Style(name="symbolColor", type="uint", format="Color", inherit="yes", theme="spark, mobile")]

 //--------------------------------------
 //  Excluded APIs


Transferred from the Adobe Open Source Subversion Repository

Revision: 16937
Author:   smgilson@adobe.com
Date:     2010-07-15T16:35:17.543693Z

Log Message:
-----------
Add ASDoc comment about using component in an item renderer

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -189,11 +189,11 @@
  *  For performance, its TextLines do not contain information
  *  about individual glyphs; for more info, see the TextLineValidity class.

  *
- *  @see spark.components.RichEditableText
- *  @see spark.components.Label
- *  @see flash.text.engine.TextLineValidity
- *
- *  @includeExample examples/RichTextExample.mxml
+ *
To use this component in a list-based component, such as a List or DataGrid,
+ *  create an item renderer.
+ *  For information about creating an item renderer, see
+ *
+ *  Custom Spark item renderers.

  *
  *  @mxml
  *
@@ -215,6 +215,12 @@
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
+ *
+ *  @see spark.components.RichEditableText
+ *  @see spark.components.Label
+ *  @see flash.text.engine.TextLineValidity
+ *
+ *  @includeExample examples/RichTextExample.mxml
  */
 public class RichText extends TextBase
 {
@@ -231,64 +237,64 @@
      */
     private static var classInitialized:Boolean = false;

-	/**
-	 *  @private
-	 *  This TLF object composes TextLines from a text String.
-	 *  We use it when the 'text' property is set to a String
-	 *  that doesn't contain linebreaks.
-	 */
-	private static var staticStringFactory:StringTextLineFactory;
-
-	/**
-	 *  @private
-	 *  This TLF object composes TextLines from a TextFlow.
-	 *  We use it when the 'textFlow' or 'content' property is set,
-	 *  and when the 'text' property is set to a String
-	 *  that contains linebreaks (and therefore is interpreted
-	 *  as multiple paragraphs).
-	 */
-	private static var staticTextFlowFactory:TextFlowTextLineFactory;
-
-	/**
-	 *  @private
-	 *  This TLF object is used to import a 'text' String
-	 *  containing linebreaks to create a multiparagraph TextFlow.
-	 */
-	private static var staticPlainTextImporter:ITextImporter;
-
-	/**
-	 *  @private
-	 *  This TLF object is used to export a TextFlow as plain 'text',
-	 *  by walking the leaf FlowElements in the TextFlow.
-	 */
-	private static var staticPlainTextExporter:ITextExporter;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Class methods
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 *  This method initializes the static vars of this class.
-	 *  Rather than calling it at static initialization time,
-	 *  we call it in the constructor to do the class initialization
-	 *  when the first instance is created.
-	 *  (It does an immediate return if it has already run.)
-	 *  By doing so, we avoid any static initialization issues
-	 *  related to whether this class or the TLF classes
-	 *  that it uses are initialized first.
-	 */
-	private static function initClass():void
-	{
-		if (classInitialized)
-			return;
-
+    /**
+     *  @private
+     *  This TLF object composes TextLines from a text String.
+     *  We use it when the 'text' property is set to a String
+     *  that doesn't contain linebreaks.
+     */
+    private static var staticStringFactory:StringTextLineFactory;
+
+    /**
+     *  @private
+     *  This TLF object composes TextLines from a TextFlow.
+     *  We use it when the 'textFlow' or 'content' property is set,
+     *  and when the 'text' property is set to a String
+     *  that contains linebreaks (and therefore is interpreted
+     *  as multiple paragraphs).
+     */
+    private static var staticTextFlowFactory:TextFlowTextLineFactory;
+
+    /**
+     *  @private
+     *  This TLF object is used to import a 'text' String
+     *  containing linebreaks to create a multiparagraph TextFlow.
+     */
+    private static var staticPlainTextImporter:ITextImporter;
+
+    /**
+     *  @private
+     *  This TLF object is used to export a TextFlow as plain 'text',
+     *  by walking the leaf FlowElements in the TextFlow.
+     */
+    private static var staticPlainTextExporter:ITextExporter;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  This method initializes the static vars of this class.
+     *  Rather than calling it at static initialization time,
+     *  we call it in the constructor to do the class initialization
+     *  when the first instance is created.
+     *  (It does an immediate return if it has already run.)
+     *  By doing so, we avoid any static initialization issues
+     *  related to whether this class or the TLF classes
+     *  that it uses are initialized first.
+     */
+    private static function initClass():void
+    {
+        if (classInitialized)
+            return;
+
         // Set the TLF hook used for localizing runtime error messages.
-		// TLF itself has English-only messages,
-		// but higher layers like Flex can provide localized versions.
-		GlobalSettings.resourceStringFunction = TextUtil.getResourceString;
+        // TLF itself has English-only messages,
+        // but higher layers like Flex can provide localized versions.
+        GlobalSettings.resourceStringFunction = TextUtil.getResourceString;

         // Set the TLF hook used to specify the callback used for changing
         // the FontLookup based on SWFContext.
@@ -299,19 +305,19 @@
         // measure as the rest of the remaining width up to 10000.
         GlobalSettings.enableDefaultTabStops = !Configuration.playerEnablesArgoFeatures;

-		staticStringFactory = new StringTextLineFactory();
-
-		staticTextFlowFactory = new TextFlowTextLineFactory();
-
-		staticPlainTextImporter =
-			TextConverter.getImporter(TextConverter.PLAIN_TEXT_FORMAT);
-
-		staticPlainTextExporter =
-			TextConverter.getExporter(TextConverter.PLAIN_TEXT_FORMAT);
-
-		classInitialized = true;
-	}
-
+        staticStringFactory = new StringTextLineFactory();
+
+        staticTextFlowFactory = new TextFlowTextLineFactory();
+
+        staticPlainTextImporter =
+            TextConverter.getImporter(TextConverter.PLAIN_TEXT_FORMAT);
+
+        staticPlainTextExporter =
+            TextConverter.getExporter(TextConverter.PLAIN_TEXT_FORMAT);
+
+        classInitialized = true;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -358,23 +364,23 @@
      */
     private var lastGeneration:uint = 0;    // 0 means not set

-	/**
+    /**
      *  @private
      *  Holds the last recorded value of the module factory
      *  used to create the font.
      */
     mx_internal var embeddedFontContext:IFlexModuleFactory;

-	/**
-	 *  @private
-	 *  Specifies whether the StringTextLineFactory
-	 *  or the TextFlowTextLineFactory is used to create the TextLines.
-	 *  A StringTextLineFactory is more efficient; it is used
-	 *  by default to render the default text ""
-	 *  and when 'text' is set to a string without linebreaks;
-	 *  otherwise, a TextFlowTextLineFactory is used.
-	 */
-	private var factory:TextLineFactoryBase;
+    /**
+     *  @private
+     *  Specifies whether the StringTextLineFactory
+     *  or the TextFlowTextLineFactory is used to create the TextLines.
+     *  A StringTextLineFactory is more efficient; it is used
+     *  by default to render the default text ""
+     *  and when 'text' is set to a string without linebreaks;
+     *  otherwise, a TextFlowTextLineFactory is used.
+     */
+    private var factory:TextLineFactoryBase;

     /**
      *  @private
@@ -398,18 +404,18 @@

     // The _text storage var is mx_internal in TextBase.

-	/**
-	 *  @private
-	 */
-	private var textChanged:Boolean = false;
-
-	/**
-	 *  @private
-	 *  Source of text: one of "text", "textFlow" or "content".*
-	 */
+    /**
+     *  @private
+     */
+    private var textChanged:Boolean = false;
+
+    /**
+     *  @private
+     *  Source of text: one of "text", "textFlow" or "content".*
+     */
     private var source:String = "";
-
-	/**
+
+    /**
      *  @private
      */
     override public function get text():String
@@ -421,17 +427,17 @@
         // (or mutate the TextFlow), and then get the 'text'.
         if (_text == null)
         {
-        	// If 'content' was last set,
-        	// we have to first turn that into a TextFlow.
-        	if (_content != null)
+            // If 'content' was last set,
+            // we have to first turn that into a TextFlow.
+            if (_content != null)
             {
-	        	_textFlow = createTextFlowFromContent(_content);
+                _textFlow = createTextFlowFromContent(_content);
                 lastGeneration = _textFlow.generation;
             }
-
+
             // Once we have a TextFlow, we can export its plain text.
             _text = staticPlainTextExporter.export(
-            	_textFlow, ConversionType.STRING_TYPE) as String;
+                _textFlow, ConversionType.STRING_TYPE) as String;
         }

         return _text;
@@ -446,49 +452,49 @@
      */
     override public function set text(value:String):void
     {
-    	// Treat setting the 'text' to null
-    	// as if it were set to the empty String
-    	// (which is the default state).
-    	if (value == null)
-    		value = "";
-
-		// If the most recent change to _text was caused by calling this method,
-		// then it's safe to short-cicuit in the same way that TextBase does.
-		if ((source == "text") && (value == _text))
-			return;
-
-    	// Don't return early if value is the same as _text,
-    	// because _text might have been produced from setting
-    	// 'textFlow' or 'content'.
-    	// For example, if you set a TextFlow corresponding to
-    	// "Hello World"
-    	// and then get the 'text', it will be the String "Hello World"
-    	// But if you then set the 'text' to "Hello World"
-    	// this represents a change: the "World" should no longer be red.
-
-    	_text = value;
-    	textChanged = true;
-		source = "text";
-
-    	// If more than one of 'text', 'textFlow', and 'content' is set,
-    	// the last one set wins.
-    	textFlowChanged = false;
-    	contentChanged = false;
-
+        // Treat setting the 'text' to null
+        // as if it were set to the empty String
+        // (which is the default state).
+        if (value == null)
+            value = "";
+
+        // If the most recent change to _text was caused by calling this method,
+        // then it's safe to short-cicuit in the same way that TextBase does.
+        if ((source == "text") && (value == _text))
+            return;
+
+        // Don't return early if value is the same as _text,
+        // because _text might have been produced from setting
+        // 'textFlow' or 'content'.
+        // For example, if you set a TextFlow corresponding to
+        // "Hello World"
+        // and then get the 'text', it will be the String "Hello World"
+        // But if you then set the 'text' to "Hello World"
+        // this represents a change: the "World" should no longer be red.
+
+        _text = value;
+        textChanged = true;
+        source = "text";
+
+        // If more than one of 'text', 'textFlow', and 'content' is set,
+        // the last one set wins.
+        textFlowChanged = false;
+        contentChanged = false;
+
         // If there was a textFlow remove its damage handler.
         removeDamageHandler();

         // The other two are now invalid and must be recalculated when needed.
-		_textFlow = null;
-    	_content = null;
-
-    	factory = staticStringFactory;
-
-		invalidateTextLines();
-		invalidateProperties();
-		invalidateSize();
-		invalidateDisplayList();
-	}
+        _textFlow = null;
+        _content = null;
+
+        factory = staticStringFactory;
+
+        invalidateTextLines();
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
+    }

     //--------------------------------------------------------------------------
     //
@@ -506,11 +512,11 @@
      */
     protected var _content:Object;

-	/**
-	 *  @private
-	 */
-	private var contentChanged:Boolean = false;
-
+    /**
+     *  @private
+     */
+    private var contentChanged:Boolean = false;
+
     /**
      *  @private
      *  This metadata tells the MXML compiler to disable some of its default
@@ -528,45 +534,45 @@
      */
     [RichTextContent]

-	/**
-	 *  This property is intended for use in MXML at compile time;
-	 *  to get or set rich text content at runtime,
-	 *  please use the textFlow property instead.
-	 *
-	 *
The content property is the default property
-	 *  for RichText, so that you can write MXML such as
-	 *

-	 *  <s:RichText>Hello <s:span fontWeight="bold"/>World</s:span></s:RichText>
-	 *

-	 *  and have the String and SpanElement that you specify
-	 *  as the content be used to create a TextFlow.

-	 *
-	 *
This property is typed as Object because you can set it to
-	 *  to a String, a FlowElement, or an Array of Strings and FlowElements.
-	 *  In the example above, you are specifying the content
-	 *  to be a 2-element Array whose first element is the String
-	 *  "Hello" and whose second element is a SpanElement with the text
-	 *  "World" in boldface.

-	 *
-	 *
No matter how you specify the content, it gets converted
-	 *  into a TextFlow, and when you get this property, you will get
-	 *  the resulting TextFlow.

-	 *
-	 *
Adobe recommends using textFlow property
-	 *  to get and set rich text content at runtime,
-	 *  because it is strongly typed as a TextFlow
-	 *  rather than as an Object.
-	 *  A TextFlow is the canonical representation
-	 *  for rich text content in the Text Layout Framework.

-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
+    /**
+     *  This property is intended for use in MXML at compile time;
+     *  to get or set rich text content at runtime,
+     *  please use the textFlow property instead.
+     *
+     *
The content property is the default property
+     *  for RichText, so that you can write MXML such as
+     *

+     *  <s:RichText>Hello <s:span fontWeight="bold"/>World</s:span></s:RichText>
+     *

+     *  and have the String and SpanElement that you specify
+     *  as the content be used to create a TextFlow.

+     *
+     *
This property is typed as Object because you can set it to
+     *  to a String, a FlowElement, or an Array of Strings and FlowElements.
+     *  In the example above, you are specifying the content
+     *  to be a 2-element Array whose first element is the String
+     *  "Hello" and whose second element is a SpanElement with the text
+     *  "World" in boldface.

+     *
+     *
No matter how you specify the content, it gets converted
+     *  into a TextFlow, and when you get this property, you will get
+     *  the resulting TextFlow.

+     *
+     *
Adobe recommends using textFlow property
+     *  to get and set rich text content at runtime,
+     *  because it is strongly typed as a TextFlow
+     *  rather than as an Object.
+     *  A TextFlow is the canonical representation
+     *  for rich text content in the Text Layout Framework.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     public function get content():Object
     {
-    	return textFlow;
+        return textFlow;
     }

     /**
@@ -574,40 +580,40 @@
      */
     public function set content(value:Object):void
     {
-    	// Treat setting the 'content' to null
-    	// as if 'text' were being set to the empty String
-    	// (which is the default state).
-    	if (value == null)
-    	{
-    		text = "";
-    		return;
-    	}
-
-    	if (value == _content)
-    		return;
-
+        // Treat setting the 'content' to null
+        // as if 'text' were being set to the empty String
+        // (which is the default state).
+        if (value == null)
+        {
+            text = "";
+            return;
+        }
+
+        if (value == _content)
+            return;
+
         _content = value;
         contentChanged = true;
-		source = "content";
-
-		// If more than one of 'text', 'textFlow', and 'content' is set,
-		// the last one set wins.
-		textChanged = false;
+        source = "content";
+
+        // If more than one of 'text', 'textFlow', and 'content' is set,
+        // the last one set wins.
+        textChanged = false;
         textFlowChanged = false;

         // If there was a textFlow remove its damage handler.
         removeDamageHandler();

         // The other two are now invalid and must be recalculated when needed.
-		_text = null;
-		_textFlow = null;
-
-		factory = staticTextFlowFactory;
-
-		invalidateTextLines();
-		invalidateProperties();
-		invalidateSize();
-		invalidateDisplayList();
+        _text = null;
+        _textFlow = null;
+
+        factory = staticTextFlowFactory;
+
+        invalidateTextLines();
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
     }

     //----------------------------------
@@ -842,60 +848,60 @@
         luminositySettingsChanged = true;
     }

-	//----------------------------------
-	//  textFlow
-	//----------------------------------
-
-	/**
-	 *  @private
-	 *  Storage for the textFlow property.
-	 */
-	private var _textFlow:TextFlow;
-
-	/**
-	 *  @private
-	 */
-	private var textFlowChanged:Boolean = false;
-
-	/**
+    //----------------------------------
+    //  textFlow
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the textFlow property.
+     */
+    private var _textFlow:TextFlow;
+
+    /**
+     *  @private
+     */
+    private var textFlowChanged:Boolean = false;
+
+    /**
      *  The TextFlow representing the rich text displayed by this component.
      *
      *
A TextFlow is the most important class
      *  in the Text Layout Framework (TLF).
      *  It is the root of a tree of FlowElements
      *  representing rich text content.

-	 *
-	 *
You normally create a TextFlow from TLF markup
-	 *  using the TextFlowUtil.importFromString()
-	 *  or TextFlowUtil.importFromXML() methods.
-	 *  Alternately, you can use TLF's TextConverter class
-	 *  (which can import a subset of HTML) or build a TextFlow
-	 *  using methods like addChild() on TextFlow.

-     *
-	 *
Setting this property affects the text property
+     *
+     *
You normally create a TextFlow from TLF markup
+     *  using the TextFlowUtil.importFromString()
+     *  or TextFlowUtil.importFromXML() methods.
+     *  Alternately, you can use TLF's TextConverter class
+     *  (which can import a subset of HTML) or build a TextFlow
+     *  using methods like addChild() on TextFlow.

+     *
+     *
Setting this property affects the text property
      *  and vice versa.

      *
      *
If you set the textFlow and get the text,
-	 *  the text in each paragraph will be separated by a single
+     *  the text in each paragraph will be separated by a single
      *  LF (\n).

      *
      *
If you set the text to a String such as
-	 *  "Hello World" and get the textFlow,
-	 *  it will be a TextFlow containing a single ParagraphElement
-	 *  with a single SpanElement.

+     *  "Hello World" and get the textFlow,
+     *  it will be a TextFlow containing a single ParagraphElement
+     *  with a single SpanElement.

      *
      *
If the text contains explicit line breaks --
      *  CR (\r), LF (\n), or CR+LF (\r\n) --
      *  then the content will be set to a TextFlow
      *  which contains multiple paragraphs, each with one span.

      *
-	 *
To turn a TextFlow object into TLF markup,
-	 *  use the markup returned from the TextFlowUtil.export() method.

-	 *
-	 *  @see spark.utils.TextFlowUtil#importFromString()
-	 *  @see spark.utils.TextFlowUtil#importFromXML()
+     *
To turn a TextFlow object into TLF markup,
+     *  use the markup returned from the TextFlowUtil.export() method.

+     *
+     *  @see spark.utils.TextFlowUtil#importFromString()
+     *  @see spark.utils.TextFlowUtil#importFromXML()
      *  @see spark.components.RichEditableText#text
-	 */
+     */
     public function get textFlow():TextFlow
     {
         // We might not have a valid _textFlow for two reasons:
@@ -924,118 +930,118 @@

         return _textFlow;
     }
-
-	/**
-	 *  @private
-	 */
-	public function set textFlow(value:TextFlow):void
-	{
-		// Treat setting the 'textFlow' to null
-		// as if 'text' were being set to the empty String
-		// (which is the default state).
-		if (value == null)
-		{
-			text = "";
-			return;
-		}
-
-		if (value == _textFlow)
-			return;
-
+
+    /**
+     *  @private
+     */
+    public function set textFlow(value:TextFlow):void
+    {
+        // Treat setting the 'textFlow' to null
+        // as if 'text' were being set to the empty String
+        // (which is the default state).
+        if (value == null)
+        {
+            text = "";
+            return;
+        }
+
+        if (value == _textFlow)
+            return;
+
         // If there was a textFlow remove its damage handler.
         removeDamageHandler();

-		_textFlow = value;
-		textFlowChanged = true;
-		source = "textFlow";
-
-		// If more than one of 'text', 'textFlow', and 'content' is set,
-		// the last one set wins.
-		textChanged = false;
-		contentChanged = false;
-
-		// The other two are now invalid and must be recalculated when needed.
-		_text = null
-		_content = null;
-
-		factory = staticTextFlowFactory;
-
-		invalidateTextLines();
-		invalidateProperties();
-		invalidateSize();
-		invalidateDisplayList();
-	}
-
+        _textFlow = value;
+        textFlowChanged = true;
+        source = "textFlow";
+
+        // If more than one of 'text', 'textFlow', and 'content' is set,
+        // the last one set wins.
+        textChanged = false;
+        contentChanged = false;
+
+        // The other two are now invalid and must be recalculated when needed.
+        _text = null
+        _content = null;
+
+        factory = staticTextFlowFactory;
+
+        invalidateTextLines();
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods: UIComponent
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
-	override protected function commitProperties():void
-    {
-    	super.commitProperties();
-
-    	// Only one of textChanged, textFlowChanged, and contentChanged
-    	// will be true; the other two will be false because each setter
-    	// guarantees this.
-    	if (textChanged)
-    	{
-			// If the text has linebreaks (CR, LF, or CF+LF)
-			// create a multi-paragraph TextFlow from it
-			// and use the TextFlowTextLineFactory to render it.
-			// Otherwise the StringTextLineFactory will put
-			// all of the lines into a single paragraph
-			// and FTE performance will degrade on a large paragraph.
-			if (_text.indexOf("\n") != -1 || _text.indexOf("\r") != -1)
-			{
-				_textFlow = staticPlainTextImporter.importToFlow(_text);
-				factory = staticTextFlowFactory;
-			}
-			textChanged = false;
-    	}
-    	else if (textFlowChanged)
-    	{
-    		// Nothing to do at commitProperties() time.
-    		textFlowChanged = false;
-    	}
-    	else if (contentChanged)
-    	{
-			_textFlow = createTextFlowFromContent(_content);
-			contentChanged = false;
-    	}
+    /**
+     *  @private
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        // Only one of textChanged, textFlowChanged, and contentChanged
+        // will be true; the other two will be false because each setter
+        // guarantees this.
+        if (textChanged)
+        {
+            // If the text has linebreaks (CR, LF, or CF+LF)
+            // create a multi-paragraph TextFlow from it
+            // and use the TextFlowTextLineFactory to render it.
+            // Otherwise the StringTextLineFactory will put
+            // all of the lines into a single paragraph
+            // and FTE performance will degrade on a large paragraph.
+            if (_text.indexOf("\n") != -1 || _text.indexOf("\r") != -1)
+            {
+                _textFlow = staticPlainTextImporter.importToFlow(_text);
+                factory = staticTextFlowFactory;
+            }
+            textChanged = false;
+        }
+        else if (textFlowChanged)
+        {
+            // Nothing to do at commitProperties() time.
+            textFlowChanged = false;
+        }
+        else if (contentChanged)
+        {
+            _textFlow = createTextFlowFromContent(_content);
+            contentChanged = false;
+        }

         lastGeneration = _textFlow ? _textFlow.generation : 0;

         // At this point we know which TextLineFactory we're going to use
         // and we know the _text or _textFlow that it will compose.

-		// If the styles have changed, hostFormat will have
-		// been set to null to indicate that it is invalid.
-		// In that case, create a new one.
-		if (!hostFormat)
-		{
-			hostFormat = new CSSTextLayoutFormat(this);
-			// Note: CSSTextLayoutFormat has special processing
-			// for the fontLookup style. If it is "auto",
-			// the fontLookup format is set to either
-			// "device" or "embedded" depending on whether
-			// embeddedFontContext is null or non-null.
-		}
-
-		if (_textFlow)
-		{
-			// We might have a new TextFlow, or a new hostFormat,
-			// so attach the latter to the former.
-			_textFlow.hostFormat = hostFormat;
-
+        // If the styles have changed, hostFormat will have
+        // been set to null to indicate that it is invalid.
+        // In that case, create a new one.
+        if (!hostFormat)
+        {
+            hostFormat = new CSSTextLayoutFormat(this);
+            // Note: CSSTextLayoutFormat has special processing
+            // for the fontLookup style. If it is "auto",
+            // the fontLookup format is set to either
+            // "device" or "embedded" depending on whether
+            // embeddedFontContext is null or non-null.
+        }
+
+        if (_textFlow)
+        {
+            // We might have a new TextFlow, or a new hostFormat,
+            // so attach the latter to the former.
+            _textFlow.hostFormat = hostFormat;
+
             // Add a damage handler.
             _textFlow.addEventListener(DamageEvent.DAMAGE,
                                        textFlow_damageHandler);
-		}
+        }

         if (maskChanged)
         {
@@ -1062,7 +1068,7 @@

             maskTypeChanged = false;
         }
-	}
+    }

     /**
      *  @private
@@ -1070,28 +1076,28 @@
     override public function stylesInitialized():void
     {
         super.stylesInitialized();
-
-		// The old hostFormat is invalid
-		// and a new one must be created.
-		hostFormat = null;
-    }
-
-    /**
-     *  @private
-     */
-    override public function styleChanged(styleProp:String):void
-    {
-        super.styleChanged(styleProp);

         // The old hostFormat is invalid
         // and a new one must be created.
         hostFormat = null;
-
-		invalidateTextLines();
-		invalidateProperties();
-		invalidateSize();
-		invalidateDisplayList();
-	}
+    }
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        super.styleChanged(styleProp);
+
+        // The old hostFormat is invalid
+        // and a new one must be created.
+        hostFormat = null;
+
+        invalidateTextLines();
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
+    }

     /**
      *  @private
@@ -1112,47 +1118,47 @@

         super.updateDisplayList(unscaledWidth, unscaledHeight);
     }
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: TextBase
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 *  Returns true to indicate all lines were composed.
-	 */
-	override mx_internal function composeTextLines(width:Number = NaN,
-												   height:Number = NaN):Boolean
-	{
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: TextBase
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Returns true to indicate all lines were composed.
+     */
+    override mx_internal function composeTextLines(width:Number = NaN,
+                                                   height:Number = NaN):Boolean
+    {
         // If there is no explicit width but there is an explicit
         // maxWidth use that.
         if (isNaN(width) && !isNaN(explicitMaxWidth))
             width = explicitMaxWidth;

-		super.composeTextLines(width, height);
-
-		// Ignore damage events while we're re-composing the text lines.
+        super.composeTextLines(width, height);
+
+        // Ignore damage events while we're re-composing the text lines.
         ignoreDamageEvent = true;

-		// Set the composition bounds to be used by createTextLines().
+        // Set the composition bounds to be used by createTextLines().
         // If there is no explicit width, and there is no explicit maxWidth,
         // the width will be computed by this method.
-		// If the height is NaN, it will be computed by this method
-		// by the time it returns.
-		// The bounds are then used by the addTextLines() method
-		// to determine the isOverset flag.
-		// The composition bounds are also reported by the measure() method.
-
-		bounds.x = 0;
-		bounds.y = 0;
+        // If the height is NaN, it will be computed by this method
+        // by the time it returns.
+        // The bounds are then used by the addTextLines() method
+        // to determine the isOverset flag.
+        // The composition bounds are also reported by the measure() method.
+
+        bounds.x = 0;
+        bounds.y = 0;
         bounds.width = width;
-		bounds.height = height;
-
-		removeTextLines();
-		releaseTextLines();
-
-		createTextLines();
+        bounds.height = height;
+
+        removeTextLines();
+        releaseTextLines();
+
+        createTextLines();

         // Truncation only done if not measuring width and line breaks are
         // toFit.  So if we are measuring, create the text lines to figure
@@ -1169,24 +1175,24 @@
                 createTextLines();
             }
         }
-
+
         // Add the new text lines to the container.
         addTextLines();
-
-		// Figure out if the text overruns the available space for composition.
-		isOverset = isTextOverset(width, height);
-
-		// Just recomposed so reset.
-		invalidateCompose = false;
-
-		// Listen for "damage" events in case the textFlow is
-		// modified programatically.
+
+        // Figure out if the text overruns the available space for composition.
+        isOverset = isTextOverset(width, height);
+
+        // Just recomposed so reset.
+        invalidateCompose = false;
+
+        // Listen for "damage" events in case the textFlow is
+        // modified programatically.
         ignoreDamageEvent = false;
-
-		// Created all lines.
-		return true;
-	}
-
+
+        // Created all lines.
+        return true;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Methods
@@ -1196,37 +1202,37 @@
     /**
      *  @private
      */
-	private function createTextFlowFromContent(content:Object):TextFlow
-	{
-		var textFlow:TextFlow ;
-
-		if (content is TextFlow)
-		{
-			textFlow = content as TextFlow;
-		}
-		else if (content is Array)
-		{
-			textFlow = new TextFlow();
-			textFlow.whiteSpaceCollapse = getStyle("whiteSpaceCollapse");
-			textFlow.mxmlChildren = content as Array;
-			textFlow.whiteSpaceCollapse = undefined;
-		}
-		else
-		{
-			textFlow = new TextFlow();
-			textFlow.whiteSpaceCollapse = getStyle("whiteSpaceCollapse");
-			textFlow.mxmlChildren = [ content ];
-			textFlow.whiteSpaceCollapse = undefined;
-		}
-
-		return textFlow;
-	}
-
-	/**
-	 *  @private
-	 *  Uses TextLineFactory to compose the textFlow
-	 *  into as many TextLines as fit into the bounds.
-	 */
+    private function createTextFlowFromContent(content:Object):TextFlow
+    {
+        var textFlow:TextFlow ;
+
+        if (content is TextFlow)
+        {
+            textFlow = content as TextFlow;
+        }
+        else if (content is Array)
+        {
+            textFlow = new TextFlow();
+            textFlow.whiteSpaceCollapse = getStyle("whiteSpaceCollapse");
+            textFlow.mxmlChildren = content as Array;
+            textFlow.whiteSpaceCollapse = undefined;
+        }
+        else
+        {
+            textFlow = new TextFlow();
+            textFlow.whiteSpaceCollapse = getStyle("whiteSpaceCollapse");
+            textFlow.mxmlChildren = [ content ];
+            textFlow.whiteSpaceCollapse = undefined;
+        }
+
+        return textFlow;
+    }
+
+    /**
+     *  @private
+     *  Uses TextLineFactory to compose the textFlow
+     *  into as many TextLines as fit into the bounds.
+     */
     private function createTextLines():void
     {
         // Clear any previously generated TextLines from the textLines Array.


Transferred from the Adobe Open Source Subversion Repository

Revision: 21269
Author:   eday@adobe.com
Date:     2011-05-17T01:26:42.500528Z

Log Message:
-----------
Scroller protects against screenDPI==0

Scroller now uses runtimeDPI if screenDPI is zero, which has been the case due to bugs on certain platforms.

QE notes: none
Doc notes: none
Bugs: SDK-30293
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -546,6 +546,15 @@
         hasFocusableChildren = true;
         focusEnabled = false;

+        // Store the screen DPI.  If it's zero (probably due to a bug in the runtime),
+        // substitute the runtimeDPI instead.
+        if (effectiveScreenDPI == 0)
+        {
+            effectiveScreenDPI = flash.system.Capabilities.screenDPI;
+            if (effectiveScreenDPI == 0 && "runtimeDPI" in FlexGlobals.topLevelApplication)
+                effectiveScreenDPI = FlexGlobals.topLevelApplication.runtimeDPI as Number;
+        }
+
         addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
         addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
     }
@@ -585,6 +594,12 @@
      *  For a faster deceleration, you can switch this to 0.990.
      */
     mx_internal var throwEffectDecelFactor:Number = 0.998;
+
+    /**
+     *  @private
+     *  Screen DPI to use in pixels/distance calculations
+     */
+    mx_internal static var effectiveScreenDPI:Number = 0;

     /**
      *  @private
@@ -1922,7 +1937,7 @@
                 if (!touchScrollHelper)
                 {
                     touchScrollHelper = new TouchScrollHelper(this);
-                    touchScrollHelper.scrollSlop = Math.round(minSlopInches * flash.system.Capabilities.screenDPI);
+                    touchScrollHelper.scrollSlop = Math.round(minSlopInches * effectiveScreenDPI);
                 }
             }
             else
@@ -2306,7 +2321,7 @@

                 // 5 pixels at 252dpi worked fairly well for this heuristic.
                 const THRESHOLD_INCHES:Number = 0.01984; // 5/252
-                var captureThreshold:Number = Math.round(THRESHOLD_INCHES * flash.system.Capabilities.screenDPI);
+                var captureThreshold:Number = Math.round(THRESHOLD_INCHES * effectiveScreenDPI);

                 // Need to convert the pixel delta to the local coordinate system in
                 // order to compare it to a scroll position delta.
@@ -2725,13 +2740,13 @@
      *  @private
      */
     mx_internal function adjustScrollPositionAfterSoftKeyboardDeactivate():void
-    {
+    {
         // If the throw animation is still playing, stop it.
         if (throwEffect && throwEffect.isPlaying)
             throwEffect.stop();

         // Fix the scroll position in case we're off the end from the animation
-        snapContentScrollPosition();
+            snapContentScrollPosition();
     }

     /**
@@ -3379,7 +3394,7 @@
         lastVelocity.x /= lastDt;
         lastVelocity.y /= lastDt;

-        var minVelocityPixels:Number = MIN_START_VELOCITY_IPS * flash.system.Capabilities.screenDPI / 1000;
+        var minVelocityPixels:Number = MIN_START_VELOCITY_IPS * Scroller.effectiveScreenDPI / 1000;

         var scrollEndEvent:TouchInteractionEvent;

@@ -3481,7 +3496,7 @@
             return new Point(0,0);

         // Limit the velocity to an absolute maximum
-        var maxPixelsPerMS:Number = MAX_THROW_VELOCITY_IPS * flash.system.Capabilities.screenDPI / 1000;
+        var maxPixelsPerMS:Number = MAX_THROW_VELOCITY_IPS * Scroller.effectiveScreenDPI / 1000;
         var velX:Number = Math.min(maxPixelsPerMS,Math.max(-maxPixelsPerMS,weightedSumX/totalWeight));
         var velY:Number = Math.min(maxPixelsPerMS,Math.max(-maxPixelsPerMS,weightedSumY/totalWeight));


Transferred from the Adobe Open Source Subversion Repository

Revision: 3728
Author:   gosmith@adobe.com
Date:     2008-10-17T22:46:44.859515Z

Log Message:
-----------
The 'text' property of FxTextArea is bindable again.

Reviewer: Glenn
Bugs: SDK-17410
QA: No
Doc: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -73,6 +73,9 @@
 	//  text
 	//----------------------------------

+	[Bindable("change")]
+	[Bindable("textChanged")]
+
 	/**
 	 *  @private
 	 */


Support VAST 2.0.1

Support VAST 2.0.1

--- vendors/VASTNew/org/osmf/vast/loader/VASTDocumentProcessor.as
+++ vendors/VASTNew/org/osmf/vast/loader/VASTDocumentProcessor.as
@@ -77,6 +77,9 @@
 					vastVersion = VASTDataObject.VERSION_1_0;
 				}else if(documentXML.localName() == VAST_2_ROOT){
 					vastVersion = documentXML.@version;
+					if ( documentXML.@version == "2.0.1" ) {
+						vastVersion = VASTDataObject.VERSION_2_0;
+					}
 				}

 				switch(vastVersion)


Transferred from the Adobe Open Source Subversion Repository

Revision: 22185
Author:   aharui@adobe.com
Date:     2011-08-24T20:25:20.105459Z

Log Message:
-----------
Fix interface names we for looking up marshall plan classes

QE notes: none
Doc notes: none
Bugs: SDK-30598
Reviewer: Altman
Tests run: Mustella Cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/controls/Alert.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -2255,7 +2255,7 @@
         if (!_systemManager) return false;

         // no types so no dependencies
-        var mp:Object = _systemManager.getImplementation("mx.managers.IMarshallPlanSystemManager");
+        var mp:Object = _systemManager.getImplementation("mx.managers::IMarshalSystemManager");
         if (!mp)
         {
             _usingBridge = 0;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/framework/src/mx/utils/StringUtil.as
+++ frameworks/projects/framework/src/mx/utils/StringUtil.as
@@ -18,6 +18,11 @@
  *  You do not create instances of StringUtil;
  *  instead you call methods such as
  *  the StringUtil.substitute() method.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class StringUtil
 {
@@ -37,6 +42,11 @@
      *
      *  @return Updated String where whitespace was removed from the
      *  beginning and end.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function trim(str:String):String
     {
@@ -66,6 +76,11 @@
      *
      *  @return Updated String where whitespace was removed from the
      *  beginning and end of each element.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function trimArrayElements(value:String, delimiter:String):String
     {
@@ -96,6 +111,11 @@
      *
      *  @return true if the specified string is
      *  a single space, tab, carriage return, newline, or formfeed character.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function isWhitespace(character:String):Boolean
     {
@@ -147,6 +167,11 @@
      *
      *  // this will output the following string:
      *  // "here is some info '15.4' and true"
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function substitute(str:String, ... rest):String
     {
@@ -182,6 +207,11 @@
      *  @param n The repeat count.
      *
      *  @result The repeated string.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function repeat(str:String, n:int):String
     {
@@ -209,6 +239,11 @@
      *
      *  @result The input string, minus any characters
      *  that are not allowed by the restriction string.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function restrict(str:String, restrict:String):String
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 11490
Author:   gruehle@adobe.com
Date:     2009-11-06T01:34:58.836883Z

Log Message:
-----------
Add accentColor style. This color is used to tint "emphasized" buttons, and as the color for slider track highlighting.

QE notes: Tests should be added for this style.
Doc notes: ASDoc added, but should be reviewed.
Bugs: SDK-23450, SDK-23451
Reviewer: Ryan
Tests run: checkintests, components/Slider, components/Alert
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/SliderTrackHighlightSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/spark/src/spark/components/Button.as
+++ frameworks/projects/spark/src/spark/components/Button.as
@@ -15,7 +15,20 @@
 import flash.events.Event;
 import spark.components.supportClasses.ButtonBase;
 import mx.core.IButton;
-
+
+
+/**
+ *  Color applied to the button when the emphasized flag is true.
+ *
+ *  @default #0099FF
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="accentColor", type="uint", format="Color", inherit="yes", theme="spark")]
+
 //--------------------------------------
 //  Other metadata
 //--------------------------------------


added parsing error event

added parsing error event

--- RNLib/src/rnlib/net/amf/connections/AMFURLLoader.as
+++ RNLib/src/rnlib/net/amf/connections/AMFURLLoader.as
@@ -278,6 +278,7 @@
 				_fault(data);
 				if (_redispatcher)
 					_redispatcher.dispatchEvent(new AMFEvent(AMFEvent.PARSE_ERROR, 1, data));
+				dispose();
 				return;
 			}