Transferred from the Adobe Open Source Subversion Repository

Revision: 3139
Author:   jimurphy@adobe.com
Date:     2008-09-08T15:42:37.788151Z

Log Message:
-----------
Merged 3.0.x revisions [3074,3079-3080,3086,3094,3096,3098,3101-3102,3104,3108,3114,3123,3125-3126] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FocusRequestDirection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.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/events/EventListenerRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/SecurityUtil.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/airframework/src/mx/managers/WindowedSystemManager.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/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxMouseEvent.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.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/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InvalidateRequestData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterManagerRequest.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/framework/src/mx/events/SWFBridgeRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as
+++ frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as
@@ -109,7 +109,7 @@
 	//--------------------------------------------------------------------------

 	/**
-	 *  @inheritdoc
+	 *  @inheritDoc
 	 */
 	public function addChildBridge(bridge:IEventDispatcher, bridgeProvider:ISWFBridgeProvider):void
 	{
@@ -120,7 +120,7 @@
 	}

 	/**
-	 *  @inheritdoc
+	 *  @inheritDoc
 	 */
 	public function removeChildBridge(bridge:IEventDispatcher):void
 	{
@@ -135,7 +135,7 @@
 	}

 	/**
-	 *  @inheritdoc
+	 *  @inheritDoc
 	 */
 	public function getChildBridgeProvider(bridge:IEventDispatcher):ISWFBridgeProvider
 	{
@@ -146,7 +146,7 @@
 	}

 	/**
-	 *  @inheritdoc
+	 *  @inheritDoc
 	 */
 	public function getChildBridges():Array
 	{
@@ -161,7 +161,7 @@
 	}

 	/**
-	 *  @inheritdoc
+	 *  @inheritDoc
 	 */
 	public function containsBridge(bridge:IEventDispatcher):Boolean
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 10050
Author:   dloverin@adobe.com
Date:     2009-09-08T14:43:16.690474Z

Log Message:
-----------
Per-Module Style Management: Create a style manager for each application/module.

The singleton StyleManager is still the only style manager that is currently used.

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

Modified Paths:
--------------
<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/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.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/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/IModuleInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.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/modules/ModuleManager.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/framework/src/mx/styles/IStyleManager2.as</path>

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

--- frameworks/projects/framework/src/mx/modules/IModuleInfo.as
+++ frameworks/projects/framework/src/mx/modules/IModuleInfo.as
@@ -256,6 +256,10 @@
      *  is specified the module will be loaded from the ByteArray. If this
      *  parameter is null the module will be loaded from the url specified in
      *  the url property.
+     *
+     *  @param moduleFactory The moduleFactory of the caller. One use of the
+     *  moduleFactory is to determine the parent style manager of the loaded
+     *  module.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -264,7 +268,8 @@
      */
     function load(applicationDomain:ApplicationDomain = null,
                   securityDomain:SecurityDomain = null,
-                  bytes:ByteArray = null):void;
+                  bytes:ByteArray = null,
+                  moduleFactory:IFlexModuleFactory = null):void;

     /**
      *  Releases the current reference to the module.


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@1262360 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/states/OverrideBase.as
+++ frameworks/projects/framework/src/mx/states/OverrideBase.as
@@ -12,9 +12,8 @@
 package mx.states
 {

-import flash.events.EventDispatcher;
-
 import mx.core.UIComponent;
+import mx.events.PropertyChangeEvent;
 import mx.utils.OnDemandEventDispatcher;

 /**
@@ -26,7 +25,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public class OverrideBase extends OnDemandEventDispatcher
+public class OverrideBase extends OnDemandEventDispatcher implements IOverride
 {
     //--------------------------------------------------------------------------
     //
@@ -42,12 +41,67 @@
      *  @productversion Flex 3
      */
     public function OverrideBase() {}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Flag which tracks if we're actively overriding a property.
+     */
+    protected var applied:Boolean = false;
+
+    /**
+     *  @private
+     *  Our most recent parent context.
+     */
+    protected var parentContext:UIComponent;
+
+    /**
+     *  @private
+     */
+    private var targetProperty:String;

     //--------------------------------------------------------------------------
     //
     //  Methods
     //
     //--------------------------------------------------------------------------
+
+    /**
+     *  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
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function apply(parent:UIComponent):void {}
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function remove(parent:UIComponent):void {}

     /**
      * @private
@@ -78,6 +132,49 @@

         return target;
     }
+
+    /**
+     * @private
+     * If the target of our override is a String (representing a property),
+     * we register a PROPERTY_CHANGE listener to determine when/if our target
+     * context becomes available or changes.
+     */
+    protected function addContextListener(target:Object):void
+    {
+        if (target is String && parentContext != null)
+        {
+            targetProperty = target as String;
+            parentContext.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
+                context_propertyChangeHandler);
+        }
+    }
+
+    /**
+     * @private
+     * Unregister our PROPERTY_CHANGE listener.
+     */
+    protected function removeContextListener():void
+    {
+        if (parentContext != null)
+        {
+            parentContext.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
+                context_propertyChangeHandler);
+        }
+    }
+
+    /**
+     * @private
+     * Called when our target context is set.  We re-apply our override
+     * if appropriate.
+     */
+    protected function context_propertyChangeHandler(event:PropertyChangeEvent):void
+    {
+        if (event.property == targetProperty && event.newValue != null)
+        {
+            apply(parentContext);
+            removeContextListener();
+        }
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

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

--- frameworks/projects/framework/src/mx/utils/Base64Decoder.as
+++ frameworks/projects/framework/src/mx/utils/Base64Decoder.as
@@ -0,0 +1,202 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-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.utils
+{
+
+import flash.utils.ByteArray;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+
+[ResourceBundle("utils")]
+
+/**
+ * A utility class to decode a Base64 encoded String to a ByteArray.
+ */
+public class Base64Decoder
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     * Constructor.
+     */
+    public function Base64Decoder()
+    {
+        super();
+        data = new ByteArray();
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     * Decodes a Base64 encoded String and adds the result to an internal
+     * buffer. Subsequent calls to this method add on to the internal
+     * buffer. After all data have been encoded, call toByteArray()
+     * to obtain a decoded flash.utils.ByteArray.
+     *
+     * @param encoded The Base64 encoded String to decode.
+     */
+    public function decode(encoded:String):void
+    {
+        for (var i:uint = 0; i < encoded.length; ++i)
+        {
+            var c:Number = encoded.charCodeAt(i);
+
+            if (c == ESCAPE_CHAR_CODE)
+                work[count++] = -1;
+            else if (inverse[c] != 64)
+                work[count++] = inverse[c];
+            else
+                continue;
+
+            if (count == 4)
+            {
+                count = 0;
+                data.writeByte((work[0] << 2) | ((work[1] & 0xFF) >> 4));
+                filled++;
+
+                if (work[2] == -1)
+                    break;
+
+                data.writeByte((work[1] << 4) | ((work[2] & 0xFF) >> 2));
+                filled++;
+
+                if (work[3] == -1)
+                    break;
+
+                data.writeByte((work[2] << 6) | work[3]);
+                filled++;
+            }
+        }
+    }
+
+    /**
+     * @private
+     */
+    public function drain():ByteArray
+    {
+        var result:ByteArray = new ByteArray();
+        copyByteArray(data, result, filled);
+        filled = 0;
+        return result;
+    }
+
+    /**
+     * @private
+     */
+    public function flush():ByteArray
+    {
+        if (count > 0)
+        {
+        	var message:String = resourceManager.getString("utils", "partialBlockDropped", [ count ]);
+            throw new Error(message);
+        }
+        return drain();
+    }
+
+    /**
+     * Clears all buffers and resets the decoder to its initial state.
+     */
+    public function reset():void
+    {
+        data = new ByteArray();
+        count = 0;
+        filled = 0;
+    }
+
+    /**
+     * Returns the current buffer as a decoded flash.utils.ByteArray.
+     * Note that calling this method also clears the buffer and resets the
+     * decoder to its initial state.
+     *
+     * @return The decoded flash.utils.ByteArray.
+     */
+    public function toByteArray():ByteArray
+    {
+        var result:ByteArray = flush();
+        reset();
+        return result;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Private Methods
+	//
+	//--------------------------------------------------------------------------
+
+    private static function copyByteArray(source:ByteArray, destination:ByteArray, length:uint = 0):void
+    {
+        var oldPosition:int = source.position;
+
+        source.position = 0;
+        destination.position = 0;
+        var i:uint = 0;
+
+        while (source.bytesAvailable > 0 && i < length)
+        {
+            destination.writeByte(source.readByte());
+            i++;
+        }
+
+        source.position = oldPosition;
+        destination.position = 0;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Private Variables
+	//
+	//--------------------------------------------------------------------------
+
+    private var count:int = 0;
+    private var data:ByteArray;
+    private var filled:int = 0;
+    private var work:Array = [0, 0, 0, 0];
+
+    /**
+     *  @private
+     *  Used for accessing localized Error messages.
+     */
+	private var resourceManager:IResourceManager =
+									ResourceManager.getInstance();
+
+    private static const ESCAPE_CHAR_CODE:Number = 61; // The '=' char
+
+    private static const inverse:Array =
+    [
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63,
+        52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64,
+        64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+        15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64,
+        64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+        41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
+    ];
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10146
Author:   kelin@adobe.com
Date:     2009-09-11T05:56:56.397010Z

Log Message:
-----------
Fixes for missing Exclude metadata.
Removed Alternative metadata from ViewStack.
DropDownListSkin's Dropshadow alpha changed back to original 0.6.

QE notes: DropDownList drop shadow should be normal.
Doc notes: None
Bugs: sdk-23106, sdk-23116, sdk-23016, sdk-23017
Reviewer: Ryan
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.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/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -64,6 +64,13 @@
  *  @productversion Flex 4
  */
 [SkinState("disabled")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="verticalAlign", kind="style")]
+[Exclude(name="lineBreak", kind="style")]

 //--------------------------------------
 //  Other metadata


Transferred from the Adobe Open Source Subversion Repository

Revision: 3340
Author:   clucier@adobe.com
Date:     2008-09-24T21:54:36.716723Z

Log Message:
-----------
Bugs: SDK-17021, SDK-16839, and SDK-16903
QA: Yes
Docs: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/flex/filters/ShaderFilter.as

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

--- frameworks/projects/spark/src/spark/filters/ShaderFilter.as
+++ frameworks/projects/spark/src/spark/filters/ShaderFilter.as
@@ -12,8 +12,10 @@
 package flex.filters {

 import flash.display.Shader;
+import flash.display.ShaderInput;
 import flash.display.ShaderParameter;
 import flash.display.ShaderParameterType;
+import flash.display.ShaderPrecision;
 import flash.events.Event;
 import flash.events.EventDispatcher;
 import flash.events.IEventDispatcher;
@@ -219,7 +221,7 @@
     /**
      * @private
      */
-    private var _precisionHint:String;
+    private var _precisionHint:String = ShaderPrecision.FULL;

     /**
      * The precision of math operations performed by the shader.
@@ -250,11 +252,12 @@

     /**
      * @private
-     * Proxies all property 'gets' to the owned shader instance.
+     * Proxies all property 'gets' to the owned shader instance or
+     * our propertyQueue otherwise.
      */
     override flash_proxy function getProperty(name:*):*
     {
-        return _shader ? _shader.data[name].value : propertyQueue[name];
+        return (_shader) ? retrieveShaderProperty(name) : propertyQueue[name];
     }

     /**
@@ -324,9 +327,13 @@
      */
     private function applyProperty(property:String, value:*):void
     {
+        if (!value) return;
+
         var suffixPattern:RegExp = /_.$/;
         var match:Array = property.match(suffixPattern);

+        // If this property name contains a suffix, attempt to push the value
+        // to the specified component of a multi-dimensional property.
         if (match && match[0] && !(value is Array))
         {
             var suffix:String = match[0];
@@ -347,8 +354,47 @@
             }
         }

-        _shader.data[property].value = (value is Array) ? value : [value];
+        // Otherwise if the target property is a ShaderInput instance or
+        // array property, set the value.
+        if (_shader.data[property] is ShaderInput)
+            _shader.data[property].input = value;
+        else
+            _shader.data[property].value = (value is Array) ? value : [value];
     }
+
+    /**
+     * @private
+     * Retrieve a single property value, provides special case conventions for
+     * retrieving specific components of multi-dimensional shader properties.
+     */
+    private function retrieveShaderProperty(name:*)
+    {
+        name = (name is QName) ? name.localName : name;
+        var suffixPattern:RegExp = /_.$/;
+        var match:Array = name.match(suffixPattern);
+
+        // If this property name contains a suffix, attempt to retrieve the value
+        // from the specified component of a multi-dimensional property.
+        if (match && match[0])
+        {
+            var suffix:String = match[0];
+            var prop:String = name.substr(0, name.length - suffix.length);
+            var dimension:String = suffix.substr(suffix.length-1, 1);
+
+            var propertyInfo:ShaderParameter = _shader.data[prop];
+            if (propertyInfo)
+            {
+                var index:int = indexForDimension(propertyInfo.type, dimension);
+                if (index != -1)
+                    return propertyInfo.value[index];
+            }
+        }
+
+        // Otherwise return the appropriate value for the property type.
+        return (_shader.data[name] is ShaderInput) ?
+            _shader.data[name].input :
+            _shader.data[name].value;
+    }

     /**
      * @private


ValidateNow is called far too much and is not needed here.

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridBase.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridBase.as
@@ -1291,7 +1291,6 @@
         {
             var ui:IInvalidating = IInvalidating(r);
             ui.invalidateDisplayList();
-            ui.validateNow();
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7799
Author:   cframpto@adobe.com
Date:     2009-06-12T20:48:31.644129Z

Log Message:
-----------
- Reproduced and fixed the ENTER key issue that Gordon found a few weeks ago that neither Peter or I could reproduce at the time.  I believe there is a bug in TLF that it doesn't always observe the manageEnter configuration setting.  My fix will work whether or not TLF is fixed since the ENTER key never gets to TLF.
- Moved the keyDownHandler and the focusOutHandler from RET to RETCM so it would be symmetric with the focusInHandler already there.
- Can't select in the numeric stepper if not editable or selectable.  The text APIs ignore the visual selectable and editable properties so the caller must check these first.

QA Notes: test enter in multiline TextArea single line TextInput/NumericStepper components
Doc Notes:SDK-21783
Reviewers: Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</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/primitives/supportClasses/RichEditableTextContainerManager.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -238,6 +238,27 @@

         super.focusInHandler(event);
     }
+
+    /**
+     *  @private
+     */
+    override public function focusOutHandler(event:FocusEvent):void
+    {
+        textView.focusOutHandler(event);
+
+        super.focusOutHandler(event);
+    }
+
+    /**
+     *  @private
+     */
+    override public function keyDownHandler(event:KeyboardEvent):void
+    {
+        textView.keyDownHandler(event);
+
+        if (!event.isDefaultPrevented())
+            super.keyDownHandler(event);
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 15675
Author:   klin@adobe.com
Date:     2010-04-23T22:00:42.744815Z

Log Message:
-----------
Merge from 4.x to trunk.

Fix for http://bugs.adobe.com/jira/browse/SDK-26267. Embedded assets were depending on AdvancedLayoutFeatures and other framework classes. This caused a simple AS-only swf size to be quite large, and even fail to build in an AS-only project in FB. The fixes are:

-Softlink FlexVersion using hasDefinition/getDefinition. This gets rid of the dependency on the ResourceManager, which fixes the compile error in FB.
-Introduce a new interface, IAssetLayoutFeatures, which contains a subset of the API from AdvancedLayoutFeatures only used by the asset classes. AdvancedLayoutFeatures implements this interface. The interface also removes the API dependency on TransformOffsets.
-We can then softlink AdvancedLayoutFeatures and MatrixUtil to remove that dependency.
-Use the hardcoded string "ltr" instead of the constant LayoutDirection.LTR to remove the dependency on LayoutDirection.

All of these fixes bring swf size down to near the original (around 2k more in the reference case).

QE notes: No
Doc notes: No
Bugs: SDK-26267
Reviewer: Alex, Carol
Tests run: checkintests, Mirroring
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/core/IAssetLayoutFeatures.as" copyfrom-rev="15674" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IAssetLayoutFeatures.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SpriteAsset.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/BitmapAsset.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/framework/src/mx/core/BitmapAsset.as
+++ frameworks/projects/framework/src/mx/core/BitmapAsset.as
@@ -15,10 +15,8 @@
 import flash.display.BitmapData;
 import flash.display.DisplayObjectContainer;
 import flash.events.Event;
-import flash.geom.Matrix;
-
-import mx.core.AdvancedLayoutFeatures;
-import mx.utils.MatrixUtil;
+import flash.geom.Point;
+import flash.system.ApplicationDomain;

 /**
  *  BitmapAsset is a subclass of the flash.display.Bitmap class
@@ -100,6 +98,11 @@
 {
     include "../core/Version.as";

+    // Softlink FlexVersion and MatrixUtil to remove dependencies of embeds on
+    // framework classes. This helps to reduce swf size in AS-only projects.
+    private static var FlexVersionClass:Class;
+    private static var MatrixUtilClass:Class;
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -127,7 +130,14 @@
     {
         super(bitmapData, pixelSnapping, smoothing);

-        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_0)
+        if (FlexVersionClass == null)
+        {
+            var appDomain:ApplicationDomain = ApplicationDomain.currentDomain;
+            if (appDomain.hasDefinition("mx.core::FlexVersion"))
+                FlexVersionClass = Class(appDomain.getDefinition("mx.core::FlexVersion"));
+        }
+
+        if (FlexVersionClass && FlexVersionClass["compatibilityVersion"] >= FlexVersionClass["VERSION_4_0"])
             this.addEventListener(Event.ADDED, addedHandler);
     }

@@ -136,8 +146,11 @@
     //  Variables
     //
     //--------------------------------------------------------------------------
-
-    private var layoutFeatures:AdvancedLayoutFeatures;
+
+    // Softlink AdvancedLayoutFeatures to remove dependencies of embeds on
+    // framework classes. This helps to reduce swf size in AS-only projects.
+    private var layoutFeaturesClass:Class;
+    private var layoutFeatures:IAssetLayoutFeatures;

     //--------------------------------------------------------------------------
     //
@@ -249,9 +262,15 @@
      */
     override public function get width():Number
     {
+        if (layoutFeatures == null)
+            return super.width;
+
         // Return bounding box width in mirroring case
-        return (layoutFeatures == null) ? super.width :
-               MatrixUtil.transformSize(layoutFeatures.layoutWidth, _height, transform.matrix).x;
+        var p:Point;
+        if (MatrixUtilClass != null)
+            p = MatrixUtilClass["transformSize"](layoutFeatures.layoutWidth, _height, transform.matrix);
+
+        return p ? p.x : super.width;
     }

     /**
@@ -288,9 +307,16 @@
      */
     override public function get height():Number
     {
+
+        if (layoutFeatures == null)
+            return super.height;
+
         // Return bounding box height in mirroring case
-        return (layoutFeatures == null) ? super.height :
-               MatrixUtil.transformSize(layoutFeatures.layoutWidth, _height, transform.matrix).y;
+        var p:Point;
+        if (MatrixUtilClass != null)
+            p = MatrixUtilClass["transformSize"](layoutFeatures.layoutWidth, _height, transform.matrix);
+
+        return p ? p.y : super.height;
     }

     /**
@@ -532,7 +558,9 @@
     //  layoutDirection
     //----------------------------------

-    private var _layoutDirection:String = LayoutDirection.LTR;
+    // Use "ltr" instead of LayoutDirection.LTR to avoid depending
+    // on that framework class.
+    private var _layoutDirection:String = "ltr";

     [Inspectable(category="General", enumeration="ltr,rtl")]

@@ -631,8 +659,11 @@
                 if (mirror && layoutFeatures == null)
                 {
                     initAdvancedLayoutFeatures();
-                    layoutFeatures.mirror = mirror;
-                    validateTransformMatrix();
+                    if (layoutFeatures != null)
+                    {
+                        layoutFeatures.mirror = mirror;
+                        validateTransformMatrix();
+                    }
                 }
                 else if (!mirror && layoutFeatures)
                 {
@@ -692,20 +723,39 @@
      */
     private function initAdvancedLayoutFeatures():void
     {
-        var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();
-
-        features.layoutScaleX = scaleX;
-        features.layoutScaleY = scaleY;
-        features.layoutScaleZ = scaleZ;
-        features.layoutRotationX = rotationX;
-        features.layoutRotationY = rotationY;
-        features.layoutRotationZ = rotation;
-        features.layoutX = x;
-        features.layoutY = y;
-        features.layoutZ = z;
-        features.layoutWidth = width;  // for the mirror transform
-        _height = height;  // for backing storage
-        layoutFeatures = features;
+        // Get AdvancedLayoutFeatures if it exists.
+        if (layoutFeaturesClass == null)
+        {
+            var appDomain:ApplicationDomain = ApplicationDomain.currentDomain;
+
+            if (appDomain.hasDefinition("mx.core::AdvancedLayoutFeatures"))
+                layoutFeaturesClass = Class(appDomain.getDefinition("mx.core::AdvancedLayoutFeatures"));
+
+            // Get MatrixUtil class if it exists
+            if (MatrixUtilClass == null)
+            {
+                if (appDomain.hasDefinition("mx.utils::MatrixUtil"))
+                    MatrixUtilClass = Class(appDomain.getDefinition("mx.utils::MatrixUtil"));
+            }
+        }
+
+        if (layoutFeaturesClass != null)
+        {
+            var features:IAssetLayoutFeatures = new layoutFeaturesClass();
+
+            features.layoutScaleX = scaleX;
+            features.layoutScaleY = scaleY;
+            features.layoutScaleZ = scaleZ;
+            features.layoutRotationX = rotationX;
+            features.layoutRotationY = rotationY;
+            features.layoutRotationZ = rotation;
+            features.layoutX = x;
+            features.layoutY = y;
+            features.layoutZ = z;
+            features.layoutWidth = width;  // for the mirror transform
+            _height = height;  // for backing storage
+            layoutFeatures = features;
+        }
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 9555
Author:   gosmith@adobe.com
Date:     2009-08-24T23:06:41.663932Z

Log Message:
-----------
Fixed 'ant doc' compilation error in DesignLayer.as.

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

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DesignLayer.as

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

--- frameworks/projects/framework/src/mx/core/DesignLayer.as
+++ frameworks/projects/framework/src/mx/core/DesignLayer.as
@@ -158,7 +158,7 @@
          *  The visibility for this design layer instance.
          *
          *
When updated, the appropriate change event for effectiveVisibility
-         *  will be dispatched to all layerPropertyChange listeners for
+         *  will be dispatched to all layerPropertyChange listeners for
          *  this layer, as well as those of affected descendant layers if any.

          *
          *  @default true


Transferred from the Adobe Open Source Subversion Repository

Revision: 12930
Author:   egeorgie@adobe.com
Date:     2009-12-15T00:23:58.803039Z

Log Message:
-----------
Optimize transformSize and transformBounds, reduce allocation of Point objects.

This change addresses a couple of FIXMEs I had put in the internal MatrixUtil class. The parameters were changed to numbers instead of points and I unrolled the matrix multiplication to significantly reduce the number of multiplications and additions. Both methods now return reference to the same internal static Point object to further reduce dynamic object allocation.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Deepa
Tests run: checkintests, mustella tests/gumbo/layout
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/layouts/WheelLayout.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/spark/src/spark/components/supportClasses/ScrollerLayout.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/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

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

             if (sizeChanging && includeInLayout)
             {
-                // FIXME (egeorgie): we don't need this invalidateDisplayList() here
+                // TODO (egeorgie): we don't need this invalidateDisplayList() here
                 // because we'll call it if the parent sets new actual size?
                 invalidateDisplayList();
                 invalidateParentSizeAndDisplayList();
@@ -8525,7 +8525,6 @@
             lastUnscaledWidth = unscaledWidth;
             lastUnscaledHeight = unscaledHeight;

-            // FIXME (egeorgie): should we reset the flag immediately after we check it?
             invalidateDisplayListFlag = false;

             // LAYOUT_DEBUG


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@1274496 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/rpc/src/mx/rpc/wsdl/WSDLOperation.as
+++ frameworks/projects/rpc/src/mx/rpc/wsdl/WSDLOperation.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-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.rpc.wsdl
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderInfo.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderInfo.as
@@ -0,0 +1,290 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.controls.advancedDataGridClasses
+{
+
+import mx.controls.listClasses.IListItemRenderer;
+/**
+  *  The AdvancedDataGridHeaderInfo class contains information that describes the
+  *  hierarchy of the columns of the AdvancedDataGrid control.
+  *
+  *  @langversion 3.0
+  *  @playerversion Flash 9
+  *  @playerversion AIR 1.1
+  *  @productversion Flex 3
+  */
+public class AdvancedDataGridHeaderInfo
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param column A reference to the AdvancedDataGridColumn instance
+     *  that this AdvancedDataGridHeaderInfo instance corresponds to.
+     *
+     *  @param parent The parent AdvancedDataGridHeaderInfo instance
+     *  of this AdvancedDataGridHeaderInfo instance.
+     *
+     *  @param index The index of this AdvancedDataGridHeaderInfo instance
+     *  in the AdvancedDataGrid control.
+     *
+     *  @param depth The depth of this AdvancedDataGridHeaderInfo instance
+     *  in the columns hierarchy of the AdvancedDataGrid control.
+     *
+     *  @param children An Array of all of the child AdvancedDataGridHeaderInfo instances
+     *  of this AdvancedDataGridHeaderInfo instance.
+     *
+     *  @param internalLabelFunction A function that gets created if the column grouping
+     *  requires extracting data from nested objects.
+     *
+     *  @param headerItem A reference to IListItemRenderer instance used to
+     *  render the column header.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public function AdvancedDataGridHeaderInfo(column:AdvancedDataGridColumn,
+                                      parent:AdvancedDataGridHeaderInfo,
+                                      index:int,
+                                      depth:int,
+                                      children:Array = null,
+                                      internalLabelFunction:Function = null,
+                                      headerItem:IListItemRenderer = null)
+    {
+       this.column = column;
+       this.parent = parent;
+       this.index = index;
+       this.depth = depth;
+       this.children = children;
+       this.internalLabelFunction = internalLabelFunction;
+       this.headerItem = headerItem;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    // column
+    //----------------------------------
+
+    /**
+    *  A reference to the AdvancedDataGridColumn instance
+    *  corresponding to this AdvancedDataGridHeaderInfo instance.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var column:AdvancedDataGridColumn;
+
+    //----------------------------------
+    // parent
+    //----------------------------------
+
+    /**
+    *  The parent AdvancedDataGridHeaderInfo instance
+    *  of this AdvancedDataGridHeaderInfo instance
+    *  if this column is part of a column group.
+    *
+    *  @default null
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var parent:AdvancedDataGridHeaderInfo;
+
+    //----------------------------------
+    // index
+    //----------------------------------
+
+    /**
+    *  The index of this AdvancedDataGridHeaderInfo instance
+    *  in the AdvancedDataGrid control.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var index:int;
+
+    //----------------------------------
+    // depth
+    //----------------------------------
+
+    /**
+    *  The depth of this AdvancedDataGridHeaderInfo instance
+    *  in the columns hierarchy of the AdvancedDataGrid control,
+    *  if this column is part of a column group.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var depth:int;
+
+    //----------------------------------
+    // children
+    //----------------------------------
+
+    /**
+    *  An Array of all of the child AdvancedDataGridHeaderInfo instances
+    *  of this AdvancedDataGridHeaderInfo instance,
+    *  if this column is part of a column group.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var children:Array;
+
+    //----------------------------------
+    // headerItem
+    //----------------------------------
+
+    /**
+    *  A reference to IListItemRenderer instance used to render the column header.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var headerItem:IListItemRenderer;
+
+    //----------------------------------
+    // internalLabelFunction
+    //----------------------------------
+
+    /**
+    *  A function that gets created if the
+    *  column grouping requires extracting data from nested objects.
+    *
+    *
For example, if each data row appears as:

+    *
row = {.., .., Q1: { y2005: 241, y2006:353}};

+    *
+    *
and you define a column group as:

+    *
     <mx:AdvancedDataGridColumnGroup dataField="Q1">
+    *     <mx:AdvancedDataGridColumn dataField="y2005">
+    *     <mx:AdvancedDataGridColumn dataField="y2006">
+    *  </mx:AdvancedDataGridColumnGroup>

+    *
+    *
The function for the column corresponding to y2005 is defined as:

+    *
     function foo():String
+    *  {
+    *     return row["Q1"]["2005"];
+    *  }

+    *
+    *
The function also handles the case when any of the column or column groups
+    *  uses a label function instead of a data field.

+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var internalLabelFunction:Function;
+
+    //----------------------------------
+    // columnSpan
+    //----------------------------------
+
+    /**
+    *  Number of actual columns spanned by the column header when using column groups.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var columnSpan:int;
+
+    //----------------------------------
+    // actualColNum
+    //----------------------------------
+
+    /**
+    *  The actual column index at which the header starts,
+    *  relative to the currently displayed columns.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var actualColNum:int;
+
+    //----------------------------------
+    // visible
+    //----------------------------------
+
+    /**
+    *  Contains true if the column is currently visible.
+    *
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var visible:Boolean;
+
+    //----------------------------------
+    // visibleChildren
+    //----------------------------------
+
+    /**
+    *  An Array of the currently visible child AdvancedDataGridHeaderInfo instances.
+    *  if this column is part of a column group.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var visibleChildren:Array;
+
+    //----------------------------------
+    // visibleIndex
+    //----------------------------------
+
+    /**
+    *  The index of this column in the list of visible children of its parent
+    *  AdvancedDataGridHeaderInfo instance,
+    *  if this column is part of a column group.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public var visibleIndex:int;
+}
+
+}


- fixing currentTime when paused

- fixing currentTime when paused

--- src/flash/htmlelements/AudioElement.as
+++ src/flash/htmlelements/AudioElement.as
@@ -192,7 +192,7 @@

 			_timer.stop();
 			if (_soundChannel != null) {
-				_currentTime = _soundChannel.position;
+				_currentTime = _soundChannel.position/1000;
 				_soundChannel.stop();
 			}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8313
Author:   srahim@adobe.com
Date:     2009-06-26T17:36:11.687304Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -250,7 +250,7 @@
  *  />
  *  </pre>
  *
- *  @see spark.skins.spark.Scroller
+ *  @see spark.skins.spark.ScrollerSkin
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5


Add boolean operations to ShaderPart

Add boolean operations to ShaderPart

--- src/aerys/minko/render/shader/part/ShaderPart.as
+++ src/aerys/minko/render/shader/part/ShaderPart.as
@@ -1,6 +1,7 @@
 package aerys.minko.render.shader.part
 {
 	import aerys.minko.ns.minko_shader;
+	import aerys.minko.render.geometry.stream.format.VertexComponent;
 	import aerys.minko.render.resource.texture.ITextureResource;
 	import aerys.minko.render.shader.SFloat;
 	import aerys.minko.render.shader.Shader;
@@ -21,7 +22,6 @@
 	import aerys.minko.type.enum.SamplerMipMapping;
 	import aerys.minko.type.enum.SamplerWrapping;
 	import aerys.minko.type.math.Matrix4x4;
-	import aerys.minko.render.geometry.stream.format.VertexComponent;

 	import flash.geom.Rectangle;

@@ -728,7 +728,27 @@

 		protected final function not(bool : Object) : SFloat
 		{
-			return absolute(subtract(getNode(bool), 1));
+			return equal(bool, 0);
+		}
+
+		protected final function and(bool1 : Object, bool2 : Object, ...bools) : SFloat
+		{
+			var result : SFloat = multiply(bool1, bool2);
+
+			for each (var bool : Object in bools)
+				result = multiply(result, bool);
+
+			return notEqual(0, result);
+		}
+
+		protected final function or(bool1 : Object, bool2 : Object, ...bools) : SFloat
+		{
+			var result : SFloat = add(notEqual(bool1, 0), notEqual(bool2, 0));
+
+			for each (var bool : Object in bools)
+				result = add(result, notEqual(bool, 0));
+
+			return notEqual(0, result);
 		}

 		protected final function reflect(vector : Object, normal : Object) : SFloat


Revert this, I'll work it another way.

Revert this, I'll work it another way.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5229 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/crowd/data/OccupantInfo.as
+++ src/as/com/threerings/crowd/data/OccupantInfo.as
@@ -101,7 +101,7 @@
     public function clone () :Object
     {
         var that :OccupantInfo =
-            ClassUtil.newInstance(this, ApplicationDomain.currentDomain) as OccupantInfo;
+            ClassUtil.newInstance(this) as OccupantInfo;
         that.bodyOid = this.bodyOid;
         that.username = this.username;
         that.status = this.status;


Adds TypeDescription#addPreDestroyMethod to ease implementation of external configurators

--- src/org/swiftsuspenders/typedescriptions/TypeDescription.as
+++ src/org/swiftsuspenders/typedescriptions/TypeDescription.as
@@ -28,5 +28,18 @@
 				injectionPoints.last = injectionPoint;
 			}
 		}
+		public function addPreDestroyMethod(method : PreDestroyInjectionPoint) : void
+		{
+			if (preDestroyMethods)
+			{
+				preDestroyMethods.last.next = method;
+				preDestroyMethods.last = method;
+			}
+			else
+			{
+				preDestroyMethods = method;
+				preDestroyMethods.last = method;
+			}
+		}
 	}
 }


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@1290359 13f79535-47bb-0310-9956-ffa450edef68

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

 package mx.controls.advancedDataGridClasses
 {


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@1290368 13f79535-47bb-0310-9956-ffa450edef68

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

 package mx.controls.advancedDataGridClasses
 {


Containers require localtoglobal for popups

--- frameworks/as/src/org/apache/flex/html/staticControls/beads/controllers/DropDownListController.as
+++ frameworks/as/src/org/apache/flex/html/staticControls/beads/controllers/DropDownListController.as
@@ -19,13 +19,14 @@
 package org.apache.flex.html.staticControls.beads.controllers
 {
 	import flash.display.DisplayObject;
+	import flash.geom.Point;

 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
-	import org.apache.flex.html.staticControls.beads.IDropDownListBead;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.html.staticControls.beads.IDropDownListBead;

 	public class DropDownListController implements IBead
 	{
@@ -51,8 +52,10 @@
             popUpModel.selectedIndex = selectionModel.selectedIndex;
 			DisplayObject(viewBead.popUp).width = DisplayObject(_strand).width;
 			DisplayObject(viewBead.popUp).height = 200;
-			DisplayObject(viewBead.popUp).x = DisplayObject(_strand).x;
-			DisplayObject(viewBead.popUp).y = DisplayObject(_strand).y;
+            var pt:Point = new Point(DisplayObject(_strand).x, DisplayObject(_strand).y);
+            pt = DisplayObject(_strand).parent.localToGlobal(pt);
+			DisplayObject(viewBead.popUp).x = pt.x;
+			DisplayObject(viewBead.popUp).y = pt.y;
             IEventDispatcher(viewBead.popUp).addEventListener("change", changeHandler);
         }


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@1282529 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.components.supportClasses
 {


Incidental todo I noticed while looking for text to translate

--- Arguments/src/classes/AgoraMap.as
+++ Arguments/src/classes/AgoraMap.as
@@ -316,7 +316,7 @@
 					currXML.@ID = currTextBox.ID;
 					if(argumentPanel.statementNegated)
 					{
-						currXML.@text = "#$#$#$"+currTextBox.text;
+						currXML.@text = "#$#$#$"+currTextBox.text;  //TODO: This needs to be gotten rid of
 					}
 					else{
 						currXML.@text = currTextBox.text;


update TransformController.updateTransformsList() to use already init. matrices/flags for nodes that where already part of the target (sub)scene tree

--- src/aerys/minko/scene/controller/TransformController.as
+++ src/aerys/minko/scene/controller/TransformController.as
@@ -214,9 +214,13 @@

         private function updateTransformsList() : void
         {
-            var root 	: ISceneNode 			= _target.root;
-            var nodes 	: Vector.<ISceneNode> 	= new <ISceneNode>[root];
-            var nodeId 	: uint 					= 0;
+            var root    	                : ISceneNode 			= _target.root;
+            var nodes   	                : Vector.<ISceneNode> 	= new <ISceneNode>[root];
+            var nodeId  	                : uint 					= 0;
+            var oldNodeToId                 : Dictionary            = _nodeToId;
+            var oldInitialized              : Vector.<uint>         = _initialized;
+            var oldLocalToWorldTransforms   : Vector.<Matrix4x4>    = _localToWorldTransforms;
+            var oldWorldToLocalTransform    : Vector.<Matrix4x4>    = _worldToLocalTransforms;

             _nodeToId = new Dictionary(true);
             _transforms = new <Matrix4x4>[];
@@ -231,13 +235,26 @@
             while (nodes.length)
             {
                 var node 	: ISceneNode 	= nodes.shift();
-                var group 	: Group 		= node as Group;
+                var group   : Group 		= node as Group;

                 _nodeToId[node] = nodeId;
                 _idToNode[nodeId] = node;
                 _transforms[nodeId] = node.transform;
-                _localToWorldTransforms[nodeId] = new Matrix4x4().lock();
-                _initialized[nodeId] = INIT_NONE;
+
+                if (oldNodeToId && node in oldNodeToId)
+                {
+                    var oldNodeId   : uint  = oldNodeToId[node];
+
+                    _localToWorldTransforms[nodeId] = oldLocalToWorldTransforms[oldNodeId];
+                    _worldToLocalTransforms[nodeId] = oldWorldToLocalTransform[oldNodeId];
+                    _initialized[nodeId] = oldInitialized[oldNodeId];
+                }
+                else
+                {
+                    _localToWorldTransforms[nodeId] = new Matrix4x4().lock();
+                    _worldToLocalTransforms[nodeId] = null;
+                    _initialized[nodeId] = INIT_NONE;
+                }

                 if (group)
                 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18561
Author:   klin@adobe.com
Date:     2010-11-12T19:56:05.261580Z

Log Message:
-----------
Add down state to IGridItemRenderer. Added down state support in GridColumnHeaderGroup for UI feedback. Also, fixed various bugs relating to the header renderers.

IGridItemRenderer.as, GridItemRenderer.as, TextFieldGridItemRendererInclude.as
-Add down property

DefaultGridColumnHeaderRenderer.mxml (Both spark and wireframe)
-Add back missing showTruncationTip property.
-Modified the states to be GridItemRenderer states. This gives us the UI feedback like a Button
-Only include the sort indicator in the layout when its visible so that the sort indicator doesn’t overlap the header text.

GridColumnHeaderGroup.as
-Added downColumnIndex, hoverColumnIndex to support the header renderer states. I modified the mouse handlers to handle these cases.

GridColumnHeaderGroupLayout.as
-Added initalizeItemRenderer to set the properties on the header renderers using the down/hoverColumnIndex from GCHG.
-Fixed a bug in getHeaderIndex() so that we return the correct header if the x is past the end of the grid but still over the vertical scroll bar.

QE notes: No
Doc notes: No
Bugs: SDK-28299, SDK-28431, SDK-28442, SDK-28450
Reviewer: Hans
Tests run: cyclone, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridHeaderRenderer.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultGridHeaderRenderer.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridColumnHeaderGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as
@@ -30,6 +30,9 @@

 [ExcludeClass]

+/**
+ *  TBD
+ */
 public class GridColumnHeaderGroupLayout extends LayoutBase
 {
     /**
@@ -265,9 +268,7 @@

             // initialize the renderer

-            renderer.column = column;
-            renderer.label = column.headerText;
-            renderer.visible = true;
+            initializeItemRenderer(renderer, columnIndex, column, true);
             if (renderer.parent != columnHeaderGroup)
                 columnHeaderGroup.addElement(renderer);

@@ -350,12 +351,25 @@
     {
         const columnHeaderGroup:GridColumnHeaderGroup = columnHeaderGroup;
         const grid:Grid = grid;
-
-        if (!columnHeaderGroup || !grid)
+        const columns:IList = columns;
+
+        if (!columnHeaderGroup || !grid || !columns)
             return -1;

         const paddingLeft:Number = columnHeaderGroup.getStyle("paddingLeft");
-        return grid.getColumnIndexAt(x + paddingLeft, 0);
+        const paddedX:Number = x + paddingLeft;
+        var columnIndex:int = grid.getColumnIndexAt(paddedX, 0);
+
+        // Special case for the stretched renderer above the vertical scrollbar
+        if (columnIndex < 0)
+        {
+            const contentWidth:Number = columnHeaderGroup.contentWidth;
+            const totalWidth:Number = horizontalScrollPosition + columnHeaderGroup.width - columnHeaderGroup.getStyle("paddingRight");
+            if (paddedX >= contentWidth && paddedX < totalWidth)
+                columnIndex = grid.getPreviousVisibleColumnIndex(columns.length)
+        }
+
+        return columnIndex;
     }

     /**
@@ -531,8 +545,7 @@

         // initialize the renderer

-        renderer.column = column;
-        renderer.label = column.headerText;
+        initializeItemRenderer(renderer, columnIndex, column, renderer.visible);

         // layout the renderer

@@ -567,6 +580,23 @@

     /**
      *  @private
+     */
+    private function initializeItemRenderer(renderer:IGridItemRenderer,
+                                            columnIndex:int,
+                                            column:GridColumn,
+                                            visible:Boolean=true):void
+    {
+        renderer.visible = visible;
+        renderer.column = column;
+        renderer.label = column.headerText;
+
+        const columnHeaderGroup:GridColumnHeaderGroup = columnHeaderGroup;
+        renderer.hovered = columnIndex == columnHeaderGroup.hoverColumnIndex;
+        renderer.down = columnIndex == columnHeaderGroup.downColumnIndex;
+    }
+
+    /**
+     *  @private
      *  Let the allocateGridElement() caller know if the returned element was
      *  created or recycled.
      */
@@ -625,11 +655,25 @@
         element.visible = false;
     }

+    //----------------------------------
+    //  columnHeaderGroup
+    //----------------------------------
+
+    /**
+     *  @private
+     */
     private function get columnHeaderGroup():GridColumnHeaderGroup
     {
         return target as GridColumnHeaderGroup;
     }

+    //----------------------------------
+    //  grid
+    //----------------------------------
+
+    /**
+     *  @private
+     */
     private function get grid():Grid
     {
         const chg:GridColumnHeaderGroup = columnHeaderGroup;
@@ -638,6 +682,10 @@

         return null;
     }
+
+    //----------------------------------
+    //  columns
+    //----------------------------------

     private var _columns:IList;

@@ -831,7 +879,7 @@
             _overlayGroup.layout = new LayoutBase(); // no layout
             target.overlay.addDisplayObject(overlayGroup);
         }
-
+
         return _overlayGroup;
     }
 }