Transferred from the Adobe Open Source Subversion Repository

Revision: 2185
Author:   jimurphy@adobe.com
Date:     2008-06-23T20:04:23.150071Z

Log Message:
-----------
Merged 3.0.x revisions [2108,2111,2113,2142,2145,2147,2149-2150,2171,2178,2183] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/templates/html-templates/express-installation-with-history/history/historyFrame.html</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/swfutils/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/debugger/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/asc/build/java/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/antTasks/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/templates/html-templates/client-side-detection-with-history/history/historyFrame.html</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/Binding.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/types/SOAPArrayType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/templates/html-templates/no-player-detection-with-history/history/historyFrame.html</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>

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

--- frameworks/projects/framework/src/mx/binding/Binding.as
+++ frameworks/projects/framework/src/mx/binding/Binding.as
@@ -14,6 +14,7 @@

 import mx.collections.errors.ItemPendingError;
 import mx.core.mx_internal;
+import flash.utils.Dictionary;

 use namespace mx_internal;

@@ -56,7 +57,7 @@
         this.destFunc = destFunc;
         this.destString = destString;

-        isEnabled = true;
+        _isEnabled = true;
         isExecuting = false;
         isHandlingEvent = false;
         hasHadValue = false;
@@ -73,11 +74,33 @@

     /**
      *  @private
+     *  Internal storage for isEnabled property.
+     */
+    mx_internal var _isEnabled:Boolean;
+
+    /**
+     *  @private
      *  Indicates that a Binding is enabled.
      *  Used to disable bindings.
      */
-    mx_internal var isEnabled:Boolean;
-
+    mx_internal function get isEnabled():Boolean
+    {
+        return _isEnabled;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function set isEnabled(value:Boolean):void
+    {
+        _isEnabled = value;
+
+        if (value)
+        {
+            processDisabledRequests();
+        }
+    }
+
 	/**
  	 *  @private
      *  Indicates that a Binding is executing.
@@ -92,6 +115,14 @@
 	 *  that re-executes the the binding.
      */
     mx_internal var isHandlingEvent:Boolean;
+
+    /**
+     *  @private
+     *  Queue of watchers that fired while we were disabled.
+     *  We will resynch with our binding if isEnabled is set to true
+     *  and one or more of our watchers fired while we were disabled.
+     */
+    mx_internal var disabledRequests:Dictionary;

 	/**
  	 *  @private
@@ -175,6 +206,10 @@
     {
         if (!isEnabled)
         {
+            if (o != null)
+            {
+                registerDisabledExecute(o);
+            }
             return;
         }

@@ -200,6 +235,39 @@
         }
     }

+    /**
+     * @private
+     * Take note of any execute request that occur when we are disabled.
+     */
+    private function registerDisabledExecute(o:Object):void
+    {
+        if (o != null)
+        {
+            disabledRequests = (disabledRequests != null) ? disabledRequests :
+                new Dictionary(true);
+
+            disabledRequests[o] = true;
+        }
+    }
+
+    /**
+     * @private
+     * Resynch with any watchers that may have updated while we were disabled.
+     */
+    private function processDisabledRequests():void
+    {
+        if (disabledRequests != null)
+        {
+            for (var key:Object in disabledRequests)
+            {
+                execute(key);
+            }
+
+            disabledRequests = null;
+        }
+    }
+
+
     /**
 	 *  @private
 	 *  Note: use of this wrapper needs to be reexamined. Currently there's at least one situation where a


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.binding
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 9708
Author:   cframpto@adobe.com
Date:     2009-08-27T20:22:38.464977Z

Log Message:
-----------
Add TLFTextInput which allows Halo controls to use the spark FTE/TLF-based TextInput component wherever a Halo TextInput can be used.

This is done by introducing a new style for Halo called textInputClass.  In the global selector, in defaults.css, it defaults to mx.controls.TextInput.  This style only applies for Flex version 4 and up.

To use TLFText apply the new TLFText.css style sheet as a theme to your application.  Alternatively you may apply this style sheet in your application but you will see compiler warnings for any unused selectors.

Note that mx.controls.TLFTextInput lives in spark.swc since it is build on spark.components.TextInput.

Modified ColorPicker, DateField, ComboBox, NumericStepper and TextInput to look at the textInputClass field to determine whether to use a Halo TextInput or a Spark TextInput.

QE notes:
Doc notes:
Bugs:
Reviewer: Gordon
Tests run: mx ColorPicker,DateField,ComboBox,NumericStepper and TextInput as well as checkintests
one ColorPicker_events_toolTipHide failed - the timer does fire eventually but it seems to take much longer than the hideDelay=10000.
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/TLFText.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>

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

--- frameworks/projects/framework/src/mx/core/ITextInput.as
+++ frameworks/projects/framework/src/mx/core/ITextInput.as
@@ -0,0 +1,193 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.core
+{
+
+import mx.controls.listClasses.IDropInListItemRenderer;
+import mx.controls.listClasses.IListItemRenderer;
+import mx.managers.IFocusManagerComponent;
+import mx.styles.IStyleClient;
+
+/**
+ *  Documentation is not currently available.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+public interface ITextInput
+	extends IDataRenderer, IDropInListItemRenderer, IFocusManagerComponent,
+	IFontContextComponent, IIMESupport, IListItemRenderer, IUIComponent,
+    IInvalidating, IStyleClient
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  editable
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get editable():Boolean;
+
+	/**
+	 *  @private
+	 */
+	function set editable(value:Boolean):void;
+
+    //----------------------------------
+    //  horizontalScrollPosition
+    //----------------------------------
+
+    /**
+     *  Documentation is not currently available.
+     */
+    function get horizontalScrollPosition():Number;
+
+    /**
+     *  @private
+     */
+    function set horizontalScrollPosition(value:Number):void;
+
+	//----------------------------------
+	//  maxChars
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get maxChars():int;
+
+	/**
+	 *  @private
+	 */
+	function set maxChars(value:int):void;
+
+	//----------------------------------
+	//  mouseChildren
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get mouseChildren():Boolean;
+
+	/**
+	 *  @private
+	 */
+	function set mouseChildren(value:Boolean):void;
+
+	//----------------------------------
+	//  mouseEnabled
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get mouseEnabled():Boolean;
+
+	/**
+	 *  @private
+	 */
+	function set mouseEnabled(value:Boolean):void;
+
+	//----------------------------------
+	//  parentDrawsFocus
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get parentDrawsFocus():Boolean;
+
+	/**
+	 *  @private
+	 */
+	function set parentDrawsFocus(value:Boolean):void;
+
+	//----------------------------------
+	//  restrict
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get restrict():String;
+
+	/**
+	 *  @private
+	 */
+	function set restrict(value:String):void;
+
+	//----------------------------------
+	//  selectable
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get selectable():Boolean;
+
+	/**
+	 *  @private
+	 */
+	function set selectable(value:Boolean):void;
+
+	//----------------------------------
+	//  text
+	//----------------------------------
+
+	/**
+	 *  Documentation is not currently available.
+	 */
+	function get text():String;
+
+	/**
+	 *  @private
+	 */
+	function set text(value:String):void;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  For Halo, used to determine if the control's border object is visible.
+     *  For Spark, it does nothing.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function showBorder(visible:Boolean):void;
+
+    /**
+     *  Selects the text in the range specified by the parameters.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function selectRange(anchorIndex:int, activeIndex:int):void;
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11189
Author:   clucier@adobe.com
Date:     2009-10-27T19:33:04.160990Z

Log Message:
-----------
Adding better support for deferred instantiation and states. State overrides can now correctly override targets that are instantiated after a state change.  Moving the commitment of the initial state to earlier (during commit properties), this should avoid the secondary layout pass that used to occur after applicationComplete.  Removed creationComplete handler in UIComponent as it is no longer needed.  Fixing an issue in Group that was causing blendMode to be stuck as 'layered' when setting alpha to 0 then resetting it to a non zero value.

QE notes: None
Doc notes: None
Bugs: SDK-23105, SDK-23470, SDK-23790
Reviewer: Deepa, Glenn
Tests run: Full Cyclone, Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/OverrideBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetEventHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/RemoveChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/states/SetStyle.as
+++ frameworks/projects/framework/src/mx/states/SetStyle.as
@@ -50,7 +50,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public class SetStyle extends OverrideBase implements IOverride
+public class SetStyle extends OverrideBase
 {
     include "../core/Version.as";

@@ -125,18 +125,6 @@
      */
     private var oldRelatedValues:Array;

-    /**
-     *  @private
-     *  Flag which tracks if we're actively overriding a style.
-     */
-    private var applied:Boolean = false;
-
-    /**
-     *  @private
-     *  Our most recent parent context.
-     */
-    private var parentContext:UIComponent = null;
-
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -243,20 +231,6 @@
     //--------------------------------------------------------------------------

     /**
-     *  IOverride interface method; this class implements it as an empty method.
-     *
-     *  @copy IOverride#initialize()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function initialize():void
-    {
-    }
-
-    /**
      *  @inheritDoc
      *
      *  @langversion 3.0
@@ -264,8 +238,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function apply(parent:UIComponent):void
-    {
+    override public function apply(parent:UIComponent):void
+    {
+        parentContext = parent;
         var context:Object = getOverrideContext(target, parent);
         if (context != null)
         {
@@ -333,12 +308,19 @@
 	        {
 	            obj.setStyle(name, value);
 	        }
-
-	        // Save state in case our value is changed again while applied.  This can
-	        // occur when our style value is databound.
-	        applied = true;
-	        this.parentContext = parent;
-        }
+        }
+        else if (!applied)
+        {
+            // Our target context is unavailable so we attempt to register
+            // a listener on our parent document to detect when/if it becomes
+            // valid.
+            addContextListener(target);
+        }
+
+        // Save state in case our value or target is changed while applied. This
+        // can occur when our value property is databound or when a target is
+        // deferred instantiated.
+        applied = true;
     }

     /**
@@ -349,10 +331,10 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function remove(parent:UIComponent):void
+    override public function remove(parent:UIComponent):void
     {
         var obj:IStyleClient = IStyleClient(getOverrideContext(appliedTarget, parent));
-        if (obj != null && applied)
+        if (obj != null && appliedTarget)
         {
 	        // Restore the old value
 	        if (oldValue is Number)
@@ -377,12 +359,19 @@
 	                obj[relatedProps[i]] = oldRelatedValues[i];
 	            }
 	        }
-
-	        // Clear our flags and override context.
-	        applied = false;
-	        parentContext = null;
-	        appliedTarget = null;
-        }
+        }
+        else
+        {
+            // It seems our override is no longer active, but we were never
+            // able to successfully apply ourselves, so remove our context
+            // listener if applicable.
+            removeContextListener();
+        }
+
+        // Clear our flags and override context.
+        applied = false;
+        parentContext = null;
+        appliedTarget = null;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 21536
Author:   jasonsj@adobe.com
Date:     2011-07-11T23:14:34.905781Z

Log Message:
-----------
Initial checkin for Callout/CalloutButton and mobile check-in tests.

* Refactored pop up transformations from PopUpAnchor.applyPopUpTransform() to mx.utils.PopUpUtil.applyPopUpTransform()
* CalloutPosition.AUTO not yet implemented
* Visuals are not the final XD design.

QE notes:
Doc notes:
Bugs:
Reviewer: chiedozi
Tests run: checkintests, checkintests-mobile
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.flexLibProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/views/TestCalloutButton.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.actionScriptProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/utils/PopUpUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.actionScriptProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/scripts/CalloutButtonTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-app.xml</path>

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

--- frameworks/projects/framework/src/mx/utils/PopUpUtil.as
+++ frameworks/projects/framework/src/mx/utils/PopUpUtil.as
@@ -12,12 +12,20 @@
 package mx.utils
 {
 import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
+import flash.display.Stage;
+import flash.display.StageDisplayState;
+import flash.geom.ColorTransform;
+import flash.geom.Matrix;
 import flash.geom.Point;
 import flash.geom.Rectangle;

 import mx.core.IFlexDisplayObject;
 import mx.core.UIComponent;
+import mx.core.mx_internal;
 import mx.managers.ISystemManager;
+
+use namespace mx_internal;

 [ExcludeClass]

@@ -160,6 +168,59 @@

         return new Point(x, y);
     }
+
+    /**
+     *  Apply transforms from a popUp owner to the popUp.
+     *
+     *  @param owner Pop-up owner
+     *  @param systemManager The systemManager that defines the SandboxRoot. Typically component.systemManager.
+     *  @param popUp The pop-up to apply the owner's transform to.
+     *  @param popUpPoint Absolute position of the pop-up in the global coordinate space.
+     */
+    public static function applyPopUpTransform(owner:DisplayObjectContainer, systemManager:ISystemManager,
+                                               popUp:IFlexDisplayObject, popUpPoint:Point):void
+    {
+        var m:Matrix = MatrixUtil.getConcatenatedMatrix(owner, systemManager.getSandboxRoot());
+
+        // the transformation doesn't take the fullScreenRect in to account
+        // if we are in fulLScreen mode. This code will throw a RTE if run from inside of a sandbox.
+        try
+        {
+            var smStage:Stage = systemManager.stage;
+            if (smStage && smStage.displayState != StageDisplayState.NORMAL && smStage.fullScreenSourceRect)
+            {
+                popUpPoint.x += smStage.fullScreenSourceRect.x;
+                popUpPoint.y += smStage.fullScreenSourceRect.y;
+            }
+        }
+        catch (e:Error)
+        {
+            // Ignore the RTE
+        }
+
+        // Position the popUp.
+        m.tx = Math.round(popUpPoint.x);
+        m.ty = Math.round(popUpPoint.y);
+        if (popUp is UIComponent)
+            UIComponent(popUp).setLayoutMatrix(m,false);
+        else if (popUp is DisplayObject)
+            DisplayObject(popUp).transform.matrix = m;
+
+        // apply the color transformation, but restore alpha value of popup
+        var ownerComponent:UIComponent = (owner as UIComponent);
+
+        if (ownerComponent)
+        {
+            var oldAlpha:Number = DisplayObject(popUp).alpha;
+            var tmpColorTransform:ColorTransform = ownerComponent.$transform.concatenatedColorTransform;
+            if (tmpColorTransform != null)
+            {
+                tmpColorTransform.alphaMultiplier = oldAlpha;
+                tmpColorTransform.alphaOffset = 0;
+            }
+            DisplayObject(popUp).transform.colorTransform = tmpColorTransform;
+        }
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7910
Author:   egeorgie@adobe.com
Date:     2009-06-17T01:41:55.138890Z

Log Message:
-----------
P-ARB changes:

* IGraphicElement sharedIndex -> DisplayObjectSharingMode
* ScrollUnit -> NavigationUnit
* LayoutBase.getDestinationIndex -> LayoutBase.getNavigationDestinationIndex, param order reversed!!!!
* mouseOpaque -> mouseEnabledWhereTransparent
* various other small renames and changes to non-public APIs

Doc Notes: None
Bugs: N/A
Reviewer: Deepa
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexFXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/InvalidatingSprite.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/ScrollUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/NavigationUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/DisplayObjectSharingMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -27,6 +27,7 @@
 import mx.styles.StyleProtoChain;

 import spark.components.supportClasses.GroupBase;
+import spark.core.DisplayObjectSharingMode;
 import spark.core.IGraphicElement;
 import spark.core.ISharedDisplayObject;
 import spark.events.ElementExistenceEvent;
@@ -223,7 +224,7 @@
      */
     override mx_internal function set hasMouseListeners(value:Boolean):void
     {
-        if (mouseOpaque)
+        if (mouseEnabledWhereTransparent)
             redrawRequested = true;
         super.hasMouseListeners = value;
     }
@@ -235,7 +236,7 @@
     {
         if (_width != value)
         {
-            if (mouseOpaque && hasMouseListeners)
+            if (mouseEnabledWhereTransparent && hasMouseListeners)
             {
                 // Re-render our mouse event fill if necessary.
                 redrawRequested = true;
@@ -252,7 +253,7 @@
     {
         if (_height != value)
         {
-            if (mouseOpaque && hasMouseListeners)
+            if (mouseEnabledWhereTransparent && hasMouseListeners)
             {
                 // Re-render our mouse event fill if necessary.
                 redrawRequested = true;
@@ -387,9 +388,23 @@
     private var _mxmlContent:Array;

     [ArrayElementType("mx.core.IVisualElement")]
-
+
+    /**
+     *  @private
+     */
+    mx_internal function getMXMLContent():Array
+    {
+        if (_mxmlContent)
+            return _mxmlContent.concat();
+        else
+            return null;
+    }
+
     /**
      *  The visual content children for this Group.
+     *
+     *  This method is used internally by Flex and is not intended for direct
+     *  use by developers.
      *
      *
The content items should only be IVisualElement objects.
      *  An mxmlContent Array should not be shared between multiple
@@ -400,22 +415,11 @@
      *  directly. Use the methods defined by the Group class instead.

      *
      *  @default null
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get mxmlContent():Array
-    {
-        if (_mxmlContent)
-            return _mxmlContent.concat();
-        else
-            return null;
-    }
-
-    /**
-     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function set mxmlContent(value:Array):void
     {
@@ -768,7 +772,7 @@
     {
         if (_width != w || _height != h)
         {
-            if (mouseOpaque && hasMouseListeners)
+            if (mouseEnabledWhereTransparent && hasMouseListeners)
             {
                 // Re-render our mouse event fill if necessary.
                 redrawRequested = true;
@@ -830,7 +834,7 @@
                 if (element.depth == 0)
                 {
                     // Is this the start of a new shared sequence?
-	            	if (element.sharedIndex <= 0)
+	            	if (element.displayObjectSharingMode != DisplayObjectSharingMode.USES_SHARED_OBJECT)
 	            	{
 	            	    // We have finished redrawing the previous sequence
 	            	    if (sharedDisplayObject)
@@ -1163,6 +1167,9 @@
      */
     public function swapElementsAt(index1:int, index2:int):void
     {
+        checkForRangeError(index1);
+        checkForRangeError(index2);
+
         // Make sure that index1 is the smaller index so that addElementAt
         // doesn't RTE
         if (index1 > index2)
@@ -1173,17 +1180,35 @@
         }
         else if (index1 == index2)
             return;
-
-        var element1:IVisualElement = getElementAt(index1);
-        var element2:IVisualElement = getElementAt(index2);
-
-        removeElement(element1);
-        removeElement(element2);
-
-        addElementAt(element2, index1);
-        addElementAt(element1, index2);
-    }
-
+
+        var element1:IVisualElement = _mxmlContent[index1];
+        var element2:IVisualElement = _mxmlContent[index2];
+
+        // Make sure we do the proper invalidations, but don't dispatch events
+        if (!mxmlContentChanged)
+        {
+            elementRemoved(element1, index1, false /*notifyListeners*/);
+            elementRemoved(element2, index2, false /*notifyListeners*/);
+        }
+
+        // Step 1: remove
+        // Make sure we remove the bigger index first
+        _mxmlContent.splice(index2, 1);
+        _mxmlContent.splice(index1, 1);
+
+        // Step 2: swap
+        // Add them in reverse order
+        _mxmlContent.splice(index1, 0, element2);
+        _mxmlContent.splice(index2, 0, element1);
+
+        // Make sure we do the proper invalidations, but don't dispatch events
+        if (!mxmlContentChanged)
+        {
+            elementAdded(element2, index1, false /*notifyListeners*/);
+            elementAdded(element1, index2, false /*notifyListeners*/);
+        }
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Content management (internal)
@@ -1213,10 +1238,8 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    mx_internal function elementAdded(element:IVisualElement, index:int):void
-    {
-        var child:DisplayObject;
-
+    mx_internal function elementAdded(element:IVisualElement, index:int, notifyListeners:Boolean = true):void
+    {
         if (layout)
             layout.elementAdded(index);

@@ -1227,7 +1250,7 @@
         // UIComponent children use moduleFactory.
         if (element is IFontContextComponent && !(element is UIComponent) &&
             IFontContextComponent(element).fontContext == null)
-        {
+        {
             IFontContextComponent(element).fontContext = moduleFactory;
         }

@@ -1248,16 +1271,19 @@
             {
                 // This always adds the child to the end of the display list. Any
                 // ordering discrepancies will be fixed up in assignDisplayObjects().
-                child = addItemToDisplayList(DisplayObject(element), element);
+                addDisplayObjectToDisplayList(DisplayObject(element));
             }
             else
             {
-                child = addItemToDisplayList(DisplayObject(element), element, index);
-            }
-        }
-
-        dispatchEvent(new ElementExistenceEvent(
-                      ElementExistenceEvent.ELEMENT_ADD, false, false, element, index));
+                addDisplayObjectToDisplayList(DisplayObject(element), index);
+            }
+        }
+
+        if (notifyListeners)
+        {
+            dispatchEvent(new ElementExistenceEvent(
+                          ElementExistenceEvent.ELEMENT_ADD, false, false, element, index));
+        }

         invalidateSize();
         invalidateDisplayList();
@@ -1274,12 +1300,15 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    mx_internal function elementRemoved(element:IVisualElement, index:int):void
+    mx_internal function elementRemoved(element:IVisualElement, index:int, notifyListeners:Boolean = true):void
     {
         var childDO:DisplayObject = element as DisplayObject;
-
-        dispatchEvent(new ElementExistenceEvent(
-                      ElementExistenceEvent.ELEMENT_REMOVE, false, false, element, index));
+
+        if (notifyListeners)
+        {
+            dispatchEvent(new ElementExistenceEvent(
+                          ElementExistenceEvent.ELEMENT_REMOVE, false, false, element, index));
+        }

         if (element && (element is IGraphicElement))
         {
@@ -1307,11 +1336,11 @@
         // Special case (defensive coding) - if the element was previously
         // a child of this Group, and it didn't release its previously assigned
         // DisplayObject when its parent changed, and there's the possibility that
-        // the Group may assign it the same DisplayObject and the same sharedIndex,
+        // the Group may assign it the same DisplayObject and the same sharing mode,
         // we still need to invalidate and redraw as the displayObject likely has
         // been redrawn while the element was not a child of this Group.
-        if (child.displayObject && child.sharedIndex > 0)
-            graphicElementChanged(child);
+        if (child.displayObject && child.displayObjectSharingMode == DisplayObjectSharingMode.USES_SHARED_OBJECT)
+            invalidateGraphicElementDisplayList(child);

         child.parentChanged(this);

@@ -1370,14 +1399,15 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function discardDisplayObject(element:IGraphicElement):void
+    mx_internal function discardDisplayObject(element:IGraphicElement):void
     {
         var oldDisplayObject:DisplayObject = element.displayObject;
         if (!oldDisplayObject)
             return;

         // If the element created the display object
-        if (element.sharedIndex <= 0 && oldDisplayObject.parent == this)
+        if (element.displayObjectSharingMode != DisplayObjectSharingMode.USES_SHARED_OBJECT &&
+            oldDisplayObject.parent == this)
         {
             super.removeChild(oldDisplayObject);

@@ -1550,7 +1580,7 @@
      *  is at insertIndex in the display object list.
      *
      *  If curElement implements IGraphicElement, then both its
-     *  DisplayObject and sharedIndex will be updated.
+     *  DisplayObject and displayObjectSharingMode will be updated.
      *
      *  @curElement The current element to assign DisplayObject to
      *  @prevEelement The previous element in the list of elements or null.
@@ -1571,27 +1601,27 @@
             var previous:IGraphicElement = prevElement as IGraphicElement;

             var oldDisplayObject:DisplayObject = current.displayObject;
-            var oldSharedIndex:int = current.sharedIndex;
+            var oldSharingMode:String = current.displayObjectSharingMode;

             if (previous && previous.canShareWithNext(current) && current.canShareWithPrevious(previous) &&
                 current.setSharedDisplayObject(previous.displayObject))
             {
                 // If we are the second element in the shared sequence,
-                // make sure that the first element has the correct sharedIndex
-                if (previous.sharedIndex == -1)
-                    previous.sharedIndex = 0;
-
-                current.sharedIndex = previous.sharedIndex + 1;
+                // make sure that the first element has the correct displayObjectSharingMode
+                if (previous.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
+                    previous.displayObjectSharingMode = DisplayObjectSharingMode.OWNS_SHARED_OBJECT;
+
+                current.displayObjectSharingMode = DisplayObjectSharingMode.USES_SHARED_OBJECT;
             }
             else if (prevElement == this && current.setSharedDisplayObject(this))
             {
-                current.sharedIndex = 1;
+                current.displayObjectSharingMode = DisplayObjectSharingMode.USES_SHARED_OBJECT;
             }
             else
             {
                 // We don't want to create new DisplayObjects for elements that
                 // already have created their own their display objects.
-                var ownsDisplayObject:Boolean = oldSharedIndex <= 0;
+                var ownsDisplayObject:Boolean = oldSharingMode != DisplayObjectSharingMode.USES_SHARED_OBJECT;

                 // If the element doesn't have a DisplayObject or it doesn't own
                 // the DisplayObject it currently has, then create a new one
@@ -1603,11 +1633,11 @@
                 // Check displayObject for null, some graphic elements
                 // may choose not to create a DisplayObject during this pass.
                 if (displayObject)
-                    addItemToDisplayList(displayObject, current, insertIndex++);
-
-                current.sharedIndex = -1;
-            }
-            invalidateAfterAssignment(current, oldSharedIndex, oldDisplayObject);
+                    addDisplayObjectToDisplayList(displayObject, insertIndex++);
+
+                current.displayObjectSharingMode = DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT;
+            }
+            invalidateAfterAssignment(current, oldSharingMode, oldDisplayObject);
         }
         return insertIndex;
     }
@@ -1618,78 +1648,46 @@
      *  If necesary, removes the old display object from the list.
      */
     private function invalidateAfterAssignment(element:IGraphicElement,
-                                               oldSharedIndex:int,
+                                               oldSharingMode:String,
                                                oldDisplayObject:DisplayObject):void
     {
         // Make sure we remove or mark for redraw the old displayObject
         var displayObject:DisplayObject = element.displayObject;
-        var sharedIndex:int = element.sharedIndex;
-
-        if (oldDisplayObject == displayObject && oldSharedIndex == sharedIndex)
+        var sharingMode:String = element.displayObjectSharingMode;
+
+        if (oldDisplayObject == displayObject && sharingMode == oldSharingMode)
             return;

-        // We don't care about changes from -1 to 0
-        var sharedIndexChanged:Boolean = (sharedIndex != oldSharedIndex && (oldSharedIndex > 0 || sharedIndex > 0 ));
-
         // Make sure we redraw the display object
-        if (sharedIndexChanged || displayObject != oldDisplayObject)
-        {
-            if (displayObject is ISharedDisplayObject)
-                ISharedDisplayObject(displayObject).redrawRequested = true;
-
-            // Old display object also needs to be redrawn, in case any other GE still uses it.
-            if (oldDisplayObject is ISharedDisplayObject)
-                ISharedDisplayObject(oldDisplayObject).redrawRequested = true;
-        }
+        if (displayObject is ISharedDisplayObject)
+            ISharedDisplayObject(displayObject).redrawRequested = true;
+
+        // Old display object also needs to be redrawn, in case any other GE still uses it.
+        if (oldDisplayObject is ISharedDisplayObject)
+            ISharedDisplayObject(oldDisplayObject).redrawRequested = true;

         // Make sure we remove the old display object, if needed
         if (oldDisplayObject && oldDisplayObject.parent == this &&
-            oldDisplayObject != displayObject && oldSharedIndex <= 0)
+            oldDisplayObject != displayObject && oldSharingMode != DisplayObjectSharingMode.USES_SHARED_OBJECT)
             super.removeChild(oldDisplayObject);
     }

     /**
-     *  Remove an item from another group or display list
-     *  before adding it to this display list.
-     *
-     *  @param child DisplayObject to add to the display list.
+     *  @private
      *
-     *  @param item Item associated with the display object to be added.  If
-     *  the item itself is a display object, it will be the same as the child parameter.
-     *
-     *  @param index Index position where the display object is added.
-     *
-     *  @return DisplayObject that was added.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
+     *  If the displayObject is not a child of this Group, then insert it at the
+     *  specified index (or at the end of the list, when index is -1).
+     *  Else, if the displayObject is already a child of the Group, then simply
+     *  adjust its child index.
      */
-    protected function addItemToDisplayList(child:DisplayObject, element:IVisualElement, index:int = -1):DisplayObject
-    {
-        // Calling removeElement should have already removed the child. This
-        // should handle the case when we don't call removeItem
-        if (child.parent)
-        {
-            if (child.parent == this)
-            {
-                var insertIndex:int;
-                if (index == -1)
-                    insertIndex = super.numChildren - 1;
-                else if (index == 0)
-                    insertIndex = 0;
-                else
-                    insertIndex = index;
-
-                super.setChildIndex(child, insertIndex);
-                return child;
-            }
-        }
-
-        return super.addChildAt(child, index != -1 ? index : super.numChildren);
-    }
-
+    private function addDisplayObjectToDisplayList(child:DisplayObject, index:int = -1):void
+    {
+        if (child.parent == this)
+            super.setChildIndex(child, index != -1 ? index : super.numChildren - 1);
+        else
+            super.addChildAt(child, index != -1 ? index : super.numChildren);
+    }
+
     /**
      *  Notify the host component that an element has changed and needs to be redrawn.
      *  Group calls the validateDisplayList() method on the IGraphicElement
@@ -1702,7 +1700,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function graphicElementChanged(element:IGraphicElement):void
+    public function invalidateGraphicElementDisplayList(element:IGraphicElement):void
     {
         if (element.displayObject is ISharedDisplayObject)
             ISharedDisplayObject(element.displayObject).redrawRequested = true;
@@ -1723,7 +1721,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function graphicElementPropertiesChanged(element:IGraphicElement):void
+    public function invalidateGraphicElementProperties(element:IGraphicElement):void
     {
         invalidateProperties();
     }
@@ -1740,7 +1738,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function graphicElementSizeChanged(element:IGraphicElement):void
+    public function invalidateGraphicElementSize(element:IGraphicElement):void
     {
         // Invalidate the size only, no need to run the layout.
         // Later on, if the size changes, then a layout pass will be triggered.
@@ -1759,7 +1757,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function graphicElementLayerChanged(element:IGraphicElement):void
+    public function invalidateGraphicElementSharing(element:IGraphicElement):void
     {
         // One of our children have told us they might need a displayObject
         invalidateDisplayObjectOrdering();


Transferred from the Adobe Open Source Subversion Repository

Revision: 16728
Author:   clucier@adobe.com
Date:     2010-06-29T20:58:52.356567Z

Log Message:
-----------
Added ability to cancel all queued content requests.  Added bitmapData property to BitmapImage and Image.

QE notes: None
Doc notes:  None
Bugs: SDK-26559, SDK-26708
Reviewer: Glenn
Tests run: Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentCache.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as</path>

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

--- frameworks/projects/spark/src/spark/components/Image.as
+++ frameworks/projects/spark/src/spark/components/Image.as
@@ -17,6 +17,7 @@
 import flash.events.IOErrorEvent;
 import flash.events.ProgressEvent;
 import flash.events.SecurityErrorEvent;
+import flash.display.BitmapData;

 import mx.core.mx_internal;
 import mx.events.FlexEvent;
@@ -378,6 +379,19 @@
     //--------------------------------------------------------------------------

     //----------------------------------
+    //  bitmapData
+    //----------------------------------
+
+    /**
+     *  @copy mx.primitives.BitmapImage#bitmapData
+     *  @default null
+     */
+    public function get bitmapData():BitmapData
+    {
+        return imageDisplay ? imageDisplay.bitmapData : null;
+    }
+
+    //----------------------------------
     //  bytesLoaded
     //----------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 3145
Author:   chaase@adobe.com
Date:     2008-09-08T19:14:05.165001Z

Log Message:
-----------
Updated to add ArrayElementType(Object) for targets property

reviewed by Gordon
tests: checkintests

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as

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

--- frameworks/projects/framework/src/mx/effects/Effect.as
+++ frameworks/projects/framework/src/mx/effects/Effect.as
@@ -715,6 +715,7 @@
     private var _targets:Array = [];

     [Inspectable(arrayType="Object")]
+    [ArrayElementType("Object")]

     /**
      *  @copy mx.effects.IEffect#targets


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

--- frameworks/projects/framework/src/mx/geom/Transform.as
+++ frameworks/projects/framework/src/mx/geom/Transform.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 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.geom
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 10606
Author:   egeorgie@adobe.com
Date:     2009-09-25T23:01:50.455888Z

Log Message:
-----------
White space cleanup.

Doc notes: None
Bugs: None
Reviewer: Evtim
Tests run: build
Is noteworthy for integration: Nope

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/testWheel.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/mx/src/mx/controls/VideoDisplay.as
+++ frameworks/projects/mx/src/mx/controls/VideoDisplay.as
@@ -2060,7 +2060,7 @@

         // The NetConnection needs to be close on a connection error because at
         // this point it can no longer connect to new urls.
-        if(event.state == VideoEvent.CONNECTION_ERROR)
+        if (event.state == VideoEvent.CONNECTION_ERROR)
         	this.close();

         dispatchEvent(event.clone());


Transferred from the Adobe Open Source Subversion Repository

Revision: 11163
Author:   dloverin@adobe.com
Date:     2009-10-26T20:35:33.260693Z

Log Message:
-----------
Changes to turn on the per-module style feature by default.

The feature can be turned off by compiling with -isolateStyles=false.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex, Paul
Tests run: checkintests, all mustella
Is noteworthy for integration: Yes.

Summary of changes:

frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as
Propagate the module factory in setFlexContent.

frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
Implement IFlexModule

frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as
Move getting style declaration from the constructor to the override of the module factory setter.

frameworks/projects/framework/src/mx/controls/Alert.as
Set moduleFactory to parent if parent is an IFlexModuleFactory.

frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/controls/RadioButton.as
Move getting style declaration from the constructor to the override of the module factory setter.

frameworks/projects/framework/src/mx/controls/SWFLoader.as
Handle the “get parent module factory” request from an embedded swf.

frameworks/projects/framework/src/mx/core/Container.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/core/UIComponent.as
Defer setting styles until a module factory is set.

frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
Set the module factory of an added child.

frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as
Set the module factory of the tooltip to be the same as the target.

frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
Rename parameter based on PARB feedback.

frameworks/projects/framework/src/mx/styles/IStyleModule.as
Add setStyleDeclarations per spec.

frameworks/projects/framework/src/mx/styles/StyleManager.as
Deprecate old static StyleManager API.

frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
Use IStyleModule.setStyleDeclarations.

frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
A fix to get the correct style manager and pass styleManager in CSSStyleDeclaration.

frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/spark/src/spark/components/Group.as
Propagate moduleFactory in elementAdded().

modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java
Rename –create-style-manager option to –isloateStyles. The option has been changed from hidden to advanced.

modules/compiler/src/java/flex2/compiler/css/StyleDef.vm
Fix bug to not add a default factory that is not needed.

modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDef.vm
Initialize styles in a module factory setter override.

modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm
Changed emitComponentInitializers_1 to not emit style related code if the document implements IFlexModule. Created emitComponentStyleInitializers to emit those styles.

modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java
Generate code to match ClassDef.vm and ClassDefLib.vm changes.

modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java
Add IFlexModuleFactory to standard imports.

modules/compiler/src/java/flex2/configuration_en.properties
Rename –create-style-manager option to –isloateStyles.

modules/compiler/src/java/flex2/tools/PreLink.java
Rename –create-style-manager option to –isloateStyles.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleModule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1450,6 +1450,13 @@

     /**
      *  @private
+     *  hold the setStyles() calls that have been deferred untils a moduleFactory
+     *  is set.
+     */
+    private var deferredSetStyles:Array;
+
+    /**
+     *  @private
      *  There is a bug (139381) where we occasionally get callLaterDispatcher()
      *  even though we didn't expect it.
      *  That causes us to do a removeEventListener() twice,
@@ -1480,7 +1487,6 @@
     private var transitionFromState:String;
     private var transitionToState:String;

-
     //--------------------------------------------------------------------------
     //
     //  Variables: Creation
@@ -4012,7 +4018,7 @@
         var n:int = numChildren;
         for (var i:int = 0; i < n; i++)
         {
-            var child:UIComponent = getChildAt(i) as UIComponent;
+            var child:IFlexModule = getChildAt(i) as IFlexModule;
             if (!child)
                 continue;

@@ -4023,6 +4029,8 @@
         }

         _moduleFactory = factory;
+
+        setDeferredStyles();
     }

     //--------------------------------------------------------------------------
@@ -6737,16 +6745,16 @@
         }

         // Propagate moduleFactory to the child, but don't overwrite an existing moduleFactory.
-        if (child is UIComponent && UIComponent(child).moduleFactory == null)
+        if (child is IFlexModule && IFlexModule(child).moduleFactory == null)
         {
             if (moduleFactory != null)
-                UIComponent(child).moduleFactory = moduleFactory;
+                IFlexModule(child).moduleFactory = moduleFactory;

             else if (document is IFlexModule && document.moduleFactory != null)
-                UIComponent(child).moduleFactory = document.moduleFactory;
-
-            else if (parent is UIComponent && UIComponent(parent).moduleFactory != null)
-                UIComponent(child).moduleFactory = UIComponent(parent).moduleFactory;
+                IFlexModule(child).moduleFactory = document.moduleFactory;
+
+            else if (parent is IFlexModule && IFlexModule(parent).moduleFactory != null)
+                IFlexModule(child).moduleFactory = IFlexModule(parent).moduleFactory;
         }

         // Set the font context in non-UIComponent children.
@@ -9939,7 +9947,46 @@
      */
     public function setStyle(styleProp:String, newValue:*):void
     {
-        StyleProtoChain.setStyle(this, styleProp, newValue);
+        // If there is no module factory then defer the set
+        // style until a module factory is set.
+        if (moduleFactory)
+        {
+            StyleProtoChain.setStyle(this, styleProp, newValue);
+        }
+        else
+        {
+            if (!deferredSetStyles)
+                deferredSetStyles = [];
+            deferredSetStyles.push(styleProp);
+            deferredSetStyles.push(newValue);
+        }
+    }
+
+
+    /**
+     *  @private
+     *  Set style that were deferred because a module factory was not
+     *  set yet.
+     */
+    private function setDeferredStyles():void
+    {
+        if (!deferredSetStyles)
+            return;
+
+        var styleProp:String;
+        var newValue:*;
+
+        var n:int = deferredSetStyles.length;
+        var i:int = 0;
+        while (i < n)
+        {
+            styleProp = deferredSetStyles[i++];
+            newValue = deferredSetStyles[i++];
+
+            StyleProtoChain.setStyle(this, styleProp, newValue);
+        }
+
+        deferredSetStyles = null;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 5797
Author:   jimurphy@adobe.com
Date:     2009-03-31T15:35:34.544076Z

Log Message:
-----------
Merged revisions 3.x 5505,5526-5527,5535,5540,5542,5572,5616-5617,5656-5657,5671,5674,5683,5687-5688,5690,5698,5708-5709,5713-5716,5719-5723,5726,5728-5729,5736,5752,5754,5761,5774,5780,5784 -> trunk

most of these are user submitted patches! very cool.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/IResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToggleButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressIndeterminateSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/compiler/FlexCompilerShell-license.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/DividedBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/PhoneNumberValidator.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as" copyfrom-rev="5784" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/NumberValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/CurrencyValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Form.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/CalendarLayoutChangeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/DataGridEvent.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/framework/src/mx/controls/PopUpMenuButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>

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

--- frameworks/projects/mx/src/mx/controls/VideoDisplay.as
+++ frameworks/projects/mx/src/mx/controls/VideoDisplay.as
@@ -1337,6 +1337,7 @@
         {
             _source = value;

+            _playheadTime = NaN;
             sourceChanged = true;

             dispatchEvent(new Event("sourceChanged"));


Transferred from the Adobe Open Source Subversion Repository

Revision: 3925
Author:   jimurphy@adobe.com
Date:     2008-10-28T15:28:25.006190Z

Log Message:
-----------
Merged gumbo_alpha revisions 3857-3860,3870,3872,3874-3876,3881,3884,3886,3889,3891,3893,3895,3908,3912 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxRotateEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxFadeEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/CubicBezierSegment.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/gumbo_alpha/frameworks/projects/flex4/src/mx/skins/spark/FxFocusSkin.as" copyfrom-rev="3895" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxFocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxVSliderExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/LineSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxListExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxMoveEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/PathSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout_conversion.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxAnimateColorEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout_core.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxAnimateEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxCheckBoxExample.mxml</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/gumbo_alpha/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml" copyfrom-rev="3895" action="A">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleDeclaration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/gumbo_alpha/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/GroupExample.mxml" copyfrom-rev="3895" action="A">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/GroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/QuadraticBezierSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxNumericStepperExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxResizeEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxResize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxToggleButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxSpinnerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/PropertyValuesHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout_edit.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/TextViewExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxHSliderExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1647,7 +1647,7 @@
     }

 	/**
-	 * Documentation is not currently available
+	 * @inheritDoc
 	 */
 	override public function get rotation():Number
 	{
@@ -1690,9 +1690,9 @@
    		invalidateParentSizeAndDisplayList();
     }

-	/**
-	 * Documentation is not currently available
-	 */
+    /**
+     *  @inheritDoc
+     */
 	override public function get rotationZ():Number
 	{
 		return rotation;
@@ -1706,7 +1706,12 @@
     }

 	/**
-	 * Documentation is not currently available
+	 * Indicates the x-axis rotation of the DisplayObject instance, in degrees, from its original orientation
+	 * relative to the 3D parent container. Values from 0 to 180 represent clockwise rotation; values
+	 * from 0 to -180 represent counterclockwise rotation. Values outside this range are added to or subtracted from
+	 * 360 to obtain a value within the range.
+	 *
+	 * This property is ignored during calculation by any of Flex's 2D layouts.
 	 */
     override public function get rotationX():Number
     {
@@ -1728,7 +1733,12 @@
     }

 	/**
-	 * Documentation is not currently available
+	 * Indicates the y-axis rotation of the DisplayObject instance, in degrees, from its original orientation
+	 * relative to the 3D parent container. Values from 0 to 180 represent clockwise rotation; values
+	 * from 0 to -180 represent counterclockwise rotation. Values outside this range are added to or subtracted from
+	 * 360 to obtain a value within the range.
+	 *
+	 * This property is ignored during calculation by any of Flex's 2D layouts.
 	 */
     override public function get rotationY():Number
     {
@@ -2100,9 +2110,20 @@

     [Bindable("scaleZChanged")]
     [Inspectable(category="Size", defaultValue="1.0")]
-	/**
-	 * Documentation is not currently available
-	 */
+    /**
+     *  Number that specifies the scaling factor along the z axis.
+     *
+     *  A scaling along the z axis will not affect a typical component, which lies flat
+     *  in the z=0 plane.  components with children that have 3D transforms applied, or
+     *  components with a non-zero transformZ, will be affected.
+     *
+     *
The default value is 1.0, which means that the object
+     *  is not scaled.
+     *
+	 * This property is ignored during calculation by any of Flex's 2D layouts.
+     *
+     *  @default 1.0
+     */
     override public function get scaleZ():Number
     {
     	return ((_layoutFeatures == null)? super.scaleZ:_layoutFeatures.layoutScaleZ);
@@ -9619,7 +9640,10 @@

 	/**
-	 * Documentation is not currently available
+	 * Initializes the implementation and storage of some of the less frequently used
+	 * advanced layout features of a component.  Call this function before attempting to use any of the
+	 * features implemented by the AdvancedLayoutFeatures object.
+	 *
 	 */
 	protected function initAdvancedLayoutFeatures():void
 	{
@@ -9681,7 +9705,7 @@
     }

 	/**
-	 * Documentation is not currently available
+	 * @inheritDoc
 	 */
     override public function get transform():flash.geom.Transform
     {
@@ -9692,6 +9716,9 @@
     	return _transform;
     }

+	/**
+	 * @private
+	 */
     override public function set transform(value:flash.geom.Transform):void
     {
     	setTransform(value);
@@ -9726,9 +9753,13 @@
         }
     }

-	/**
-	 * Documentation is not currently available
-	 */
+    /**
+     *  Defines a set of adjustments that can be applied to the component's transform in a way that is
+     *  invisible to the component's parent's layout. For example, if you want a layout to adjust
+     *  for a component that will be rotated 90 degrees, you set the component's rotation property.
+     *  If you want the layout to not adjust for the component being rotated, you set its offsets.rotationZ
+     *  property.
+     */
  	public function set offsets(value:TransformOffsets):void
 	{
 		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
@@ -9755,7 +9786,8 @@
 	private var _maintainProjectionCenter:Boolean = false;

 	/**
-	 * Documentation is not currently available
+	 * When true, the component will keep its projection matrix centered on the middle of its bounding box.  If no projection matrix is defined
+	 * on the component, one will be added automatically.
 	 */
 	public function set maintainProjectionCenter(value:Boolean):void
 	{
@@ -9775,10 +9807,12 @@
 	}

-	/**
-	 * Documentation is not currently available.  the matrix of a component is the transform matrix used to calculate its layout
-	 * relative to its siblings. This matrix is modified by the values of the offset property to determine its final, computed matrix.
-	 */
+    /**
+     *  The transform matrix that is used to calculate the component's layout relative to its siblings. This matrix
+     *  is defined by the component's 2D properties such as x, y, rotation,
+     *  scaleX, scaleY, transformX, and transformY.
+     *
This matrix is modified by the values of the offset property to determine its final, computed matrix.

+     */
 	public function get layoutMatrix():Matrix
 	{
 		if(_layoutFeatures != null)
@@ -9808,6 +9842,15 @@
 	   		invalidateParentSizeAndDisplayList();
   		}
 	}
+
+	/**
+	 * A utility method to update the rotation and scale of the transform while keeping a particular point, specified in the component's own coordinate space,
+	 * fixed in the parent's coordinate space.  This function will assign the rotation and scale values provided, then update the x/y/z properties
+	 * as necessary to keep tx/ty/tz fixed.
+	 * @param rx,ry,rz the new values for the rotation of the transform
+	 * @param sx,sy,sz the new values for the scale of the transform
+	 * @param tx,ty,tz the point, in the component's own coordinates, to keep fixed relative to its parent.
+	 */
 	public function transformAround(rx:Number,ry:Number,rz:Number,sx:Number,sy:Number,sz:Number,tx:Number,ty:Number,tz:Number):void
 	{
 		if(_layoutFeatures == null && (
@@ -9839,10 +9882,16 @@
 		}
 	}

-	/**
-	 * Documentation is not currently available.  the matrix of a component is the transform matrix used to calculate its layout
-	 * relative to its siblings. This matrix is modified by the values of the offset property to determine its final, computed matrix.
-	 */
+    /**
+     *  The transform matrix that is used to calculate a component's layout relative to its siblings. This matrix is defined by
+     *  the component's 3D properties (which include the 2D properties such as x, y, rotation,
+     *  scaleX, scaleY, transformX, and transformY, as well as rotationX,
+     *  rotationY, scaleZ, z, and transformZ.
+     *
+     *
Most components do not have any 3D transform properties set on them.

+     *
+     *
This matrix is modified by the values of the offset property to determine its final, computed matrix.

+     */
 	public function set layoutMatrix3D(value:Matrix3D):void
 	{
 		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
@@ -9862,7 +9911,12 @@

 	/**
-	 * Documentation is not currently available
+	 * Determines the order in which items inside of groups are rendered. Groups order their items based on their layer property, with the lowest layer
+	 * in the back, and the higher in the front.  items with the same layer value will appear in the order they are added to the Groups item list.
+	 *
+	 * defaults to 0
+	 *
+	 * @default 0
 	 */
 	public function get layer():Number
 	{
@@ -9885,7 +9939,10 @@
 	}

 	/**
-	 * Documentation is not currently available.
+     *  Called by a component's items to indicate that their layer property has changed.
+     *  Note that while this function is defined on UIComponent, it is up to subclasses
+     *  to implement support for complex layering.  By default, only Groups support
+     *  arbitrary layering of their children.
 	 */
     public function invalidateLayering():void
     {
@@ -9893,8 +9950,7 @@
     }

 	/**
-	 * Documentation is not currently available.
-	 * Commits the computed transform stored in the xformOffsets object to the flash displayObject's transform.
+	 * Commits the computed matrix built from the combination of the layout matrix and the transform offsets to the flash displayObject's transform.
 	 */
 	protected function applyComputedTransform():void
 	{