Transferred from the Adobe Open Source Subversion Repository

Revision: 20839
Author:   mhorn@adobe.com
Date:     2011-03-14T14:04:15.007456Z

Log Message:
-----------
merge 20790 and 20805

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as
+++ frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as
@@ -127,26 +127,26 @@
      */
     private static var commonMatrix:Matrix = new Matrix();

-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------

     //----------------------------------
-	//  matrix
-	//----------------------------------
+    //  matrix
+    //----------------------------------

     /**
      *  @private
      */
     override public function set matrix(value:Matrix):void
     {
-    	scaleX = NaN;
-    	super.matrix = value;
-    }
-
-	//----------------------------------
+        scaleX = NaN;
+        super.matrix = value;
+    }
+
+    //----------------------------------
     //  scaleX
     //----------------------------------

@@ -199,16 +199,21 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function apply(graphics:Graphics, targetBounds:Rectangle, targetOrigin:Point):void
-	{
-		commonMatrix.identity();
-
+    {
+        commonMatrix.identity();
+
         graphics.lineStyle(weight, 0, 1, pixelHinting, scaleMode,
                     caps, joints, miterLimit);

         if (targetBounds)
-        	calculateTransformationMatrix(targetBounds, commonMatrix, targetOrigin);
+            calculateTransformationMatrix(targetBounds, commonMatrix, targetOrigin);

         graphics.lineGradientStyle(GradientType.LINEAR, colors,
                             alphas, ratios,
@@ -254,7 +259,7 @@
             {
                 // Figure out the two sides
                 if (rotation % 90 != 0)
-                {
+                {
                     // Normalize angles with absolute value > 360
                     var normalizedAngle:Number = rotation % 360;
                     // Normalize negative angles
@@ -303,11 +308,11 @@
             if (!isNaN(tx) && !isNaN(ty))
                 matrix.translate(GRADIENT_DIMENSION / 2, GRADIENT_DIMENSION / 2); // 1638.4 / 2

-			// Force the length to a absolute minimum of 2. Values of 0, 1, or -1 have undesired behavior
-			if (length >= 0 && length < 2)
-				length = 2;
-			else if (length < 0 && length > -2)
-				length = -2;
+            // Force the length to a absolute minimum of 2. Values of 0, 1, or -1 have undesired behavior
+            if (length >= 0 && length < 2)
+                length = 2;
+            else if (length < 0 && length > -2)
+                length = -2;

             // Scale the gradient in the x direction. The natural size is 1638.4px. No need
             // to scale the y direction because it is infinite
@@ -322,7 +327,7 @@
                 ty = targetBounds.top + targetBounds.height / 2;
             else
                 ty += targetOrigin.y;
-            matrix.translate(tx, ty);
+            matrix.translate(tx, ty);
         }
         else
         {
@@ -330,7 +335,7 @@
             matrix.scale(1 / GRADIENT_DIMENSION, 1 / GRADIENT_DIMENSION);
             matrix.concat(compoundTransform.matrix);
             matrix.translate(targetOrigin.x, targetOrigin.y);
-        }
+        }
     }

 }


 - change request complete: http://j.fork.de:8080/browse/ELBPHI-26

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@715 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/core/Application.as
+++ src/reprise/core/Application.as
@@ -37,7 +37,7 @@
 		/***************************************************************************
 		*							protected properties							   *
 		***************************************************************************/
-		protected static const CSS_URL : String = 'flash.css';
+		protected static const CSS_URL : String = 'style/slider.css';

 		protected var m_rootElement : DocumentView;
 		protected var m_currentView : UIObject;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


bitrate value added to the debug info

bitrate value added to the debug info

--- KalturaHLSPlugin/src/com/kaltura/kdpfl/plugin/KalturaHLSMediator.as
+++ KalturaHLSPlugin/src/com/kaltura/kdpfl/plugin/KalturaHLSMediator.as
@@ -7,18 +7,18 @@
 	import com.kaltura.kdpfl.view.controls.KTrace;

 	import org.osmf.elements.ProxyElement;
+	import org.osmf.events.DynamicStreamEvent;
+	import org.osmf.events.HTTPStreamingEvent;
 	import org.osmf.events.MediaElementEvent;
 	import org.osmf.media.MediaElement;
 	import org.osmf.net.NetStreamLoadTrait;
+	import org.osmf.net.httpstreaming.HLSHTTPStreamSource;
 	import org.osmf.traits.DVRTrait;
 	import org.osmf.traits.DynamicStreamTrait;
 	import org.osmf.traits.MediaTraitType;
 	import org.puremvc.as3.interfaces.INotification;
 	import org.puremvc.as3.patterns.mediator.Mediator;

-	import org.osmf.net.httpstreaming.HLSHTTPStreamSource;
-	import org.osmf.events.HTTPStreamingEvent;
-
 	public class KalturaHLSMediator extends Mediator
 	{
 		public static const NAME:String = "KalturaHLSMediator";
@@ -31,6 +31,7 @@
 		private var _dynamicTrait:DynamicStreamTrait;
 		private var _bufferLength:Number;
 		private var _droppedFrames:Number;
+		private var _currentBitrateValue:Number;

 		public function KalturaHLSMediator( viewComponent:Object=null)
 		{
@@ -142,6 +143,8 @@
 		protected function setupDynamicStreamTrait(trait:DynamicStreamTrait):void
 		{
 			_dynamicTrait = trait;
+			_dynamicTrait.addEventListener(DynamicStreamEvent.AUTO_SWITCH_CHANGE, onAutoBitrateSwitchChange);
+			_dynamicTrait.addEventListener(DynamicStreamEvent.SWITCHING_CHANGE, onBitrateSwitchingChange);
 		}

 		protected function sendHLSDebug(debugInfo:Object):void
@@ -157,6 +160,11 @@
 				debugInfo['droppedFrames'] = _droppedFrames;
 			}

+			if( _currentBitrateValue != _dynamicTrait.getBitrateForIndex(_dynamicTrait.currentIndex) ){
+				_currentBitrateValue = _dynamicTrait.getBitrateForIndex(_dynamicTrait.currentIndex);
+				debugInfo['currentBitrate'] = _currentBitrateValue;
+			}
+
 			sendNotification("debugInfoReceived", debugInfo);
 		}

@@ -164,12 +172,10 @@
 		{
 			var debugInfo:Object = new Object();
 			if( info['type'] == "segmentStart" ){
-				debugInfo['info'] = 'Start playing segment';
-			}//else if ( info['type'] == "segmentEnd" ){
-				//debugInfo['type'] = 'End playing segment';
-			//}
-			debugInfo['uri'] = info['uri'];
-			sendHLSDebug(debugInfo);
+				debugInfo['info'] = 'Playing segment';
+				debugInfo['uri'] = info['uri'];
+				sendHLSDebug(debugInfo);
+			}
 		}

 		protected function handleDebugBusEvents(event:HTTPStreamingEvent):void
@@ -184,6 +190,16 @@
 			sendHLSDebug(debugInfo);
 		}

+		protected function onAutoBitrateSwitchChange(event:DynamicStreamEvent):void
+		{
+			sendHLSDebug(new Object());
+		}
+
+		protected function onBitrateSwitchingChange(event:DynamicStreamEvent):void
+		{
+			sendHLSDebug(new Object());
+		}
+
 		protected function sendSubtitleNotification(event:SubtitleEvent):void
 		{
 			sendNotification("loadEmbeddedCaptions", {language: event.language, text: event.text, trackid: 99}); // will triger onLoadEmbeddedCaptions function inside kplayer


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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/AlertFormAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/AlertFormAutomationImpl.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.automation.delegates.controls
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3608
Author:   egreenfi@adobe.com
Date:     2008-10-13T23:49:28.938412Z

Log Message:
-----------
transform center is preserved when developers set matrix(3d) directly.

Reviewed: Chet
QA: none
checkintests: passed

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as

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

--- frameworks/projects/framework/src/mx/geom/CompoundTransform.as
+++ frameworks/projects/framework/src/mx/geom/CompoundTransform.as
@@ -19,6 +19,7 @@
 	import mx.core.mx_internal;
 	import mx.geom.ITransformable;
 	import mx.core.AdvancedLayoutFeatures;
+	import flash.geom.Point;
 	use namespace mx_internal;

 	/**
@@ -375,7 +376,6 @@
      */
 	mx_internal function get transformX():Number
 	{
-		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
 		return _transformX;
 	}

@@ -398,7 +398,6 @@
      */
 	mx_internal function get transformY():Number
 	{
-		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
 		return _transformY;
 	}
 	//------------------------------------------------------------------------------
@@ -420,7 +419,6 @@
      */
 	mx_internal function get transformZ():Number
 	{
-		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
 		return _transformZ;
 	}

@@ -592,7 +590,7 @@
 	 * @private
 	 * a utility function for decomposing a matrix into its component scale, rotation, and translation parts.
 	 */
-	private function decomposeMatrix(v:Vector.<Number>,m:Matrix):void
+	private function decomposeMatrix(v:Vector.<Number>,m:Matrix,transformX:Number,transformY:Number):void
 	{
 	    // else decompose matrix.  Don't use MatrixDecompose(), it can return erronous values
 	    //   when negative scales (and therefore skews) are in use.
@@ -618,9 +616,19 @@
 	          Vy = -Vy;
 	    }

-	    v[2] = Math.atan2( Uy, Ux ) / RADIANS_PER_DEGREES;
-	    v[0] = m.tx;
-	    v[1] = m.ty;
+	    v[2] = Math.atan2( Uy, Ux ) / RADIANS_PER_DEGREES;
+
+	    if(transformX != 0 || transformY != 0)
+	    {
+	    	var postTransformCenter:Point = m.transformPoint(new Point(transformX,transformY));
+	    	v[0] = postTransformCenter.x - transformX;
+	    	v[1] = postTransformCenter.y - transformY;
+	    }
+	    else
+	    {
+		    v[0] = m.tx;
+		    v[1] = m.ty;
+		}
 	}

 	/**
@@ -631,25 +639,34 @@
 	 * recently set
 	 */
 	private function validatePropertiesFromMatrix():void
-	{
-
+	{
 	    if(sourceOfTruth == SOURCE_MATRIX3D)
 	    {
 	    	var result:Vector.<Vector3D> = _matrix3D.decompose();
-	    	_x = result[0].x;
-	    	_y = result[0].y;
-	    	_z = result[0].z;
-	    	_rotationX = result[1].x;
-	    	_rotationY = result[1].y;
-	    	_rotationZ = result[1].z;
+	    	_rotationX = result[1].x / RADIANS_PER_DEGREES;
+	    	_rotationY = result[1].y / RADIANS_PER_DEGREES;
+	    	_rotationZ = result[1].z / RADIANS_PER_DEGREES;
 	    	_scaleX = result[2].x;
 	    	_scaleY = result[2].y;
 	    	_scaleZ = result[2].z;
-	    	_transformX = _transformY = _transformZ = 0;
+
+			if(_transformX != 0 || _transformY != 0 || _transformZ != 0)
+			{
+				var postTransformTCenter:Vector3D = _matrix3D.transformVector(new Vector3D(_transformX,_transformY,_transformZ));
+		    	_x = postTransformTCenter.x - _transformX;
+	    		_y = postTransformTCenter.y - _transformY;
+	    		_z = postTransformTCenter.z - _transformZ;
+			}
+			else
+			{
+		    	_x = result[0].x;
+		    	_y = result[0].y;
+	    		_z = result[0].z;
+	  		}
 	    }
 	    else if(sourceOfTruth == SOURCE_MATRIX)
 	    {
-	    	decomposeMatrix(decomposition,_matrix);
+	    	decomposeMatrix(decomposition,_matrix,_transformX,_transformY);
 	    	_x = decomposition[0];
 	    	_y = decomposition[1];
 	    	_z = 0;
@@ -659,7 +676,6 @@
 	    	_scaleX = decomposition[3];
 	    	_scaleY = decomposition[4];
 	    	_scaleZ = 1;
-	    	_transformX = _transformY = _transformZ = 0;
 	    }
 	    _flags |= PROPERTIES_VALID;


FLEX-35321 CAUSE: If a component is removed from stage during a validation cycle, the LayoutManager nevertheless sets its initialized flag to true, even if it's not on stage anymore. That's because it doesn't check at the end whether the component is still on stage.

SOLUTION: Now the LayoutManager verifies that the component is still on stage before initializing it.

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -846,11 +846,14 @@
 			var obj:ILayoutManagerClient = ILayoutManagerClient(updateCompleteQueue.removeLargest());
             while (obj)
             {
-                if (!obj.initialized && obj.processedDescriptors)
-                    obj.initialized = true;
-                if (obj.hasEventListener(FlexEvent.UPDATE_COMPLETE))
-                    obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
-                obj.updateCompletePendingFlag = false;
+                if(obj.nestLevel)
+                {
+                    if (!obj.initialized && obj.processedDescriptors)
+                        obj.initialized = true;
+                    if (obj.hasEventListener(FlexEvent.UPDATE_COMPLETE))
+                        obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
+                    obj.updateCompletePendingFlag = false;
+                }
                 obj = ILayoutManagerClient(updateCompleteQueue.removeLargest());
             }

@@ -1094,12 +1097,15 @@
                 obj = ILayoutManagerClient(updateCompleteQueue.removeLargestChild(target));
                 while (obj)
                 {
-                    if (!obj.initialized)
-                        obj.initialized = true;
-
-                    if (obj.hasEventListener(FlexEvent.UPDATE_COMPLETE))
-                        obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
-                    obj.updateCompletePendingFlag = false;
+                    if(obj.nestLevel)
+                    {
+                        if (!obj.initialized)
+                            obj.initialized = true;
+
+                        if (obj.hasEventListener(FlexEvent.UPDATE_COMPLETE))
+                            obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
+                        obj.updateCompletePendingFlag = false;
+                    }
                     obj = ILayoutManagerClient(updateCompleteQueue.removeLargestChild(target));
                 }
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17274
Author:   rfrishbe@adobe.com
Date:     2010-08-11T18:08:34.293087Z

Log Message:
-----------
A lot of changes, most involving touch scrolling.

UIComponent: remove keepControlOfMouseDown, which was checked in accidentally

FocusManager: move a check for event.isPreventDefauled() from the mouseDown handler to the mouseFocusHandler.  It was probably accidentally added in the mouseDown handler in the first place since mousedown events were not prevent defaultable (they are now, though)

SystemManager: Make MouseDown events prevent defaultable.  We do this for mouseWheel handlers already.  This allows our components to communicate a little with regards to who's handling this event.  Currently only ButtonBase and ItemRenderer check for this.

Split up IconItemRenderer in to MobileItemRenderer and MobileIconItemRenderer.  MobileItemRenderer is still based on UIComponent and is in charge of drawing the background and has a single text component.  MobileIconItemRenderer will be a more complex item renderer that developers can use. I'm also moving both of these classes in to the mobilecomponents project and mapping them in the spark manifest so that developers can now use them.

ButtonBase and List: Clean up code around how we deal with touch scrolling and adding a delay to button.  We also make sure that if the Button was clicked quickly before the delay fires that we show the button in the down state for some minimum amount of time.

Scroller: clean up a lot of the touch scrolling code

QE notes: None
Doc notes: None
Bugs: SDK-27263, SDK-27173, SDK-27157, SDK-27016
Reviewer: Jason SJ for MobileItemRenderer/MobileIconItemRenderer, Hans for the rest (he's still working through it though)
Tests run: checkintests, all mustella (some mustella failed for me locally but also in a clean sandbox)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TouchScrollingEasing.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/IconItemRenderer.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/IconItemRenderer.as" copyfrom-rev="17121" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/PaddingStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/GapStyles.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -2455,12 +2455,14 @@
         if (getSandboxRoot() == this)
         {
             addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true, 1000);
-            addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, true, 1000);
+            addEventListener(MouseEvent.MOUSE_WHEEL, mouseEventHandler, true, 1000);
+            addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, true, 1000);
         }
         if (isTopLevelRoot() && stage)
         {
             stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, false, 1000);
-            stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, false, 1000);
+            stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseEventHandler, false, 1000);
+            stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 1000);
         }

         var docFrame:int = (totalFrames == 1)? 0 : 1;
@@ -2769,7 +2771,14 @@
         }
     }

-    private function mouseWheelHandler(e:MouseEvent):void
+    /**
+     *  @private
+     *  Similar to keyDownHandler above.  We want to re-dispatch
+     *  mouse events that are cancellable.  Currently we are only doing
+     *  this for a few mouse events and not all of them (MOUSE_WHEEL and
+     *  MOUSE_DOWN).
+     */
+    private function mouseEventHandler(e:MouseEvent):void
     {
         if (!e.cancelable)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11921
Author:   rfrishbe@adobe.com
Date:     2009-11-18T01:20:35.060054Z

Log Message:
-----------
Unlike with FLVPlayback, sometimes videObject can be null (when the source hasn't been set yet).  We need to code for this case in our full screen handlers.

QE notes: -
Doc notes: -
Bugs: SDK-24303
Reviewer: Kevin
Tests run: checkintests
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/VideoDisplay.as
+++ frameworks/projects/spark/src/spark/components/VideoDisplay.as
@@ -814,7 +814,13 @@
     //----------------------------------

     /**
-     *  The underlying flash player flash.media.Video object
+     *  The underlying flash player flash.media.Video object.
+     *
+     *
If the source is null, then there may be no
+     *  underlying flash.media.Video object yet.  In that
+     *  case, videoObject returns null.
+     *
+     *  @default null
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


fix DrawCall.enabled setter using a 'for each' instead of a 'for' to loop on the changed bindings

--- src/aerys/minko/render/DrawCall.as
+++ src/aerys/minko/render/DrawCall.as
@@ -131,7 +131,7 @@
 			_enabled = value;

             if (value)
-                for each (var bindingName : String in _changes)
+                for (var bindingName : String in _changes)
                 {
                     setParameter(bindingName, _changes[bindingName]);
                     delete _changes[bindingName];


patched masking (Viewport.alwaysOnTop == true) and Stage3D position update when the Viewport is resized/moved

--- src/aerys/minko/render/Viewport.as
+++ src/aerys/minko/render/Viewport.as
@@ -414,6 +414,7 @@

 			if (_alwaysOnTop)
 			{
+				stage.addEventListener(Event.RESIZE, stageResizeHandler);
 				stage.addEventListener(MouseEvent.CLICK, stageMouseHandler);
 				stage.addEventListener(MouseEvent.DOUBLE_CLICK, stageMouseHandler);
 				stage.addEventListener(MouseEvent.MOUSE_DOWN, stageMouseHandler);
@@ -426,6 +427,7 @@
 			}
 			else
 			{
+				stage.removeEventListener(Event.RESIZE, stageResizeHandler);
 				stage.removeEventListener(MouseEvent.CLICK, stageMouseHandler);
 				stage.removeEventListener(MouseEvent.DOUBLE_CLICK, stageMouseHandler);
 				stage.removeEventListener(MouseEvent.MOUSE_DOWN, stageMouseHandler);
@@ -436,6 +438,11 @@
 				stage.removeEventListener(MouseEvent.ROLL_OUT, stageMouseHandler);
 				stage.removeEventListener(MouseEvent.ROLL_OVER, stageMouseHandler);
 			}
+		}
+
+		private function stageResizeHandler(event : Event) : void
+		{
+			updateRectangle();
 		}

 		private function stageMouseHandler(event : MouseEvent) : void
@@ -497,8 +504,18 @@
 			if (!_logoIsHidden)
 				showLogo();

+			// update Stage3D position if necessary
+			if (_stage3d)
+			{
+				var positionOnStage	: Point	= localToGlobal(ZERO2);
+
+				if (_stageX != positionOnStage.x || _stageY != positionOnStage.y)
+					updateRectangle();
+			}
+
+			// handle all visitor
 			if (_visitors && _visitors.length != 0)
-			{
+			{
 				var time : Number = getTimer();

 				// create the data sources the visitors are going to write and read from during render.


Added a simple utility method to initialize an object with properties specified
in an initObject. This is a fairly common practice in flash and let's go ahead
and use it sometimes, even though it's prone to runtime errors.
Our version of this has a defaults Object as well as another Object that can be
specified to mask properties from the initObject.

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

--- src/as/com/threerings/util/Util.as
+++ src/as/com/threerings/util/Util.as
@@ -23,10 +23,41 @@

 import flash.utils.ByteArray;

-import com.threerings.util.StringBuilder;
-
 public class Util
 {
+    /**
+     * Initialize the target object with values present in the initProps object and the defaults
+     * object. Neither initProps nor defaults will be modified.
+     * @throws ReferenceError if a property cannot be set on the target object.
+     *
+     * @param target any object or class instance.
+     * @param initProps a plain Object hash containing names and properties to set on the target
+     *                  object.
+     * @param defaults a plain Object hash containing names and properties to set on the target
+     *                 object, only if the same property name does not exist in initProps.
+     * @param maskProps a plain Object hash containing names of properties to omit setting
+     *                  from the initProps object. This allows you to add custom properties to
+     *                  initProps without having to modify the value from your callers.
+     */
+    public static function init (
+        target :Object, initProps :Object, defaults :Object = null, maskProps :Object = null) :void
+    {
+        var prop :String;
+        for (prop in initProps) {
+            if (maskProps == null || !(prop in maskProps)) {
+                target[prop] = initProps[prop];
+            }
+        }
+
+        if (defaults != null) {
+            for (prop in defaults) {
+                if (!(prop in initProps)) {
+                    target[prop] = defaults[prop];
+                }
+            }
+        }
+    }
+
     /**
      * Is the specified object 'simple': one of the basic built-in flash types.
      */


Unlock a vertex stream set _locked value to false

--- src/aerys/minko/render/geometry/stream/IndexStream.as
+++ src/aerys/minko/render/geometry/stream/IndexStream.as
@@ -259,6 +259,8 @@
 		{
 			_data.position = 0;

+			_locked = false;
+
 			if (hasChanged)
 				invalidate();
 		}


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

--- frameworks/projects/automation_air/src/mx/automation/codec/FilePropertyCodec.as
+++ frameworks/projects/automation_air/src/mx/automation/codec/FilePropertyCodec.as
@@ -0,0 +1,82 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.automation.codec
+{
+
+	import flash.filesystem.File;
+
+	import mx.automation.IAutomationManager;
+	import mx.automation.IAutomationObject;
+	import mx.automation.qtp.IQTPPropertyDescriptor;
+
+	/**
+	 * Translates between internal Flex color and automation-friendly version
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class FilePropertyCodec extends DefaultPropertyCodec
+	{
+		/**
+		 * Constructor
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function FilePropertyCodec()
+		{
+			super();
+		}
+
+		/**
+		 * @private
+		 */
+		override public function encode(automationManager:IAutomationManager,
+										obj:Object,
+										propertyDescriptor:IQTPPropertyDescriptor,
+										relativeParent:IAutomationObject):Object
+		{
+			var val:Object = getMemberFromObject(automationManager, obj, propertyDescriptor);
+
+			var encodedFileString:String = "";
+
+			if (val != null)
+			{
+				if (val is File)
+				{
+					encodedFileString = (val as File).nativePath;
+				}
+			}
+
+			return encodedFileString;
+		}
+
+		/**
+		 * @private
+		 */
+		override public function decode(automationManager:IAutomationManager,
+										obj:Object,
+										value:Object,
+										propertyDescriptor:IQTPPropertyDescriptor,
+										relativeParent:IAutomationObject):void
+		{
+			var fileObj:File = new File();
+			fileObj = fileObj.resolvePath(value as String);
+			obj[propertyDescriptor.name] = fileObj;
+		}
+	}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8744
Author:   hmuller@adobe.com
Date:     2009-07-23T00:48:36.293339Z

Log Message:
-----------
Changed ScrollerLayout/updateDisplayList() to simplify the logic that deals with the case where the visible scrollbars don't fit in the available space.  In cases where a 2nd "dependent" auto scrollbar is added as a consequence of the first scrollbar consuming enough space to warrant that, if there isn't room for both scrollbars and the first scrollbar doesn't fit, then we don't show either of them.

The code has been revised to make judging the alternative configurations more straightforward.  The private utility methods vsbFits() and hsbFits() now take a boolean includesHSB,VSB parameter: if false the method checks if the scrollbar fits if the other scrollbar wasn't visible.

Added a pair of private utility methods hsbRequiredHeight(), vsbRequiredWidth() that encapsulate a common calculation.

QE Notes: Mustella tests pass (thanks Ella, Steve)
Doc Notes:
Bugs: sdk-22282
Reviewer: Chet, Carol

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
@@ -13,7 +13,6 @@
 {
 import flash.geom.Point;

-import mx.core.IInvalidating;
 import mx.core.IUIComponent;
 import mx.core.ScrollPolicy;
 import mx.utils.MatrixUtil;
@@ -115,13 +114,35 @@

     /**
      *  @private
+     *  Returns the vertical space required by the horizontal scrollbar.
+     *  That's the larger of the minViewportInset and the hsb's preferred height.
+     *
+     *  Computing this value is complicated by the fact that if the HSB is currently
+     *  hsbVisible=false, then it's scaleX,Y will be 0, and it's preferred size is 0.
+     *  For that reason we specify postLayoutTransform=false to getPreferredBoundsHeight()
+     *  and then multiply by the original scale factor, hsbScaleY.
+     */
+    private function hsbRequiredHeight():Number
+    {
+        var scroller:Scroller = getScroller();
+        var minViewportInset:Number = scroller.minViewportInset;
+        var hsb:ScrollBar = scroller.horizontalScrollBar;
+        var sy:Number = (hsbVisible) ? 1 : hsbScaleY;
+        return Math.max(minViewportInset, hsb.getPreferredBoundsHeight(hsbVisible) * sy);
+    }
+
+    /**
+     *  @private
      *  Return true if the specified dimensions provide enough space to layout
      *  the horizontal scrollbar (hsb) at its minimum size.   The HSB is assumed
      *  to be non-null and visible.
-     */
-    private function hsbFits(w:Number, h:Number):Boolean
-    {
-        if (vsbVisible)
+     *
+     *  If includeVSB is false we check to see if the HSB woudl fit if the
+     *  VSB wasn't visible.
+     */
+    private function hsbFits(w:Number, h:Number, includeVSB:Boolean=true):Boolean
+    {
+        if (vsbVisible && includeVSB)
         {
             var vsb:ScrollBar = getScroller().verticalScrollBar;
             w -= vsb.getPreferredBoundsWidth();
@@ -177,13 +198,35 @@

     /**
      *  @private
+     *  Returns the vertical space required by the horizontal scrollbar.
+     *  That's the larger of the minViewportInset and the hsb's preferred height.
+     *
+     *  Computing this value is complicated by the fact that if the HSB is currently
+     *  hsbVisible=false, then it's scaleX,Y will be 0, and it's preferred size is 0.
+     *  For that reason we specify postLayoutTransform=false to getPreferredBoundsWidth()
+     *  and then multiply by the original scale factor, vsbScaleX.
+     */
+    private function vsbRequiredWidth():Number
+    {
+        var scroller:Scroller = getScroller();
+        var minViewportInset:Number = scroller.minViewportInset;
+        var vsb:ScrollBar = scroller.verticalScrollBar;
+        var sx:Number = (vsbVisible) ? 1 : vsbScaleX;
+        return Math.max(minViewportInset, vsb.getPreferredBoundsWidth(vsbVisible) * sx);
+    }
+
+    /**
+     *  @private
      *  Return true if the specified dimensions provide enough space to layout
      *  the vertical scrollbar (vsb) at its minimum size.   The VSB is assumed
      *  to be non-null and visible.
-     */
-    private function vsbFits(w:Number, h:Number):Boolean
-    {
-        if (hsbVisible)
+     *
+     *  If includeHSB is false, we check to see if the VSB would fit if the
+     *  HSB wasn't visible.
+     */
+    private function vsbFits(w:Number, h:Number, includeHSB:Boolean=true):Boolean
+    {
+        if (hsbVisible && includeHSB)
         {
             var hsb:ScrollBar = getScroller().horizontalScrollBar;
             w -= hsb.getMinBoundsWidth();
@@ -192,7 +235,7 @@
         var vsb:ScrollBar = getScroller().verticalScrollBar;
         return (w >= vsb.getPreferredBoundsWidth()) && (h >= vsb.getMinBoundsHeight());
     }
-
+
     /**
      * @private
      *  Computes the union of the preferred size of the visible
@@ -244,15 +287,8 @@
                 break;
         }

-        if (showHSB)
-            measuredH += Math.max(minViewportInset, hsb.getPreferredBoundsHeight());
-        else
-            measuredH += minViewportInset;
-
-        if (showVSB)
-            measuredW += Math.max(minViewportInset, vsb.getPreferredBoundsWidth());
-        else
-            measuredW += minViewportInset;
+        measuredH += (showHSB) ? hsbRequiredHeight() : minViewportInset;
+        measuredW += (showVSB) ? vsbRequiredWidth() : minViewportInset;

         // The measured size of the viewport is just its preferredBounds, except:
         // don't give up space if doing so would make an auto scrollbar visible.
@@ -341,17 +377,23 @@
             contentH = contentSize.y;
         }

-        // If the viewport's size has been explicitly set (not typical) then use it
+        // If the viewport's size has been explicitly set (not typical) then use it
+        // The initial values for viewportW,H are only used to decide if auto scrollbars
+        // should be shown.
+
         var viewportUIC:IUIComponent = viewport as IUIComponent;
         var explicitViewportW:Number = viewportUIC ? viewportUIC.explicitWidth : NaN;
         var explicitViewportH:Number = viewportUIC ? viewportUIC.explicitHeight : NaN;

+        var viewportW:Number = isNaN(explicitViewportW) ? (w - (minViewportInset * 2)) : explicitViewportW;
+        var viewportH:Number = isNaN(explicitViewportH) ? (h - (minViewportInset * 2)) : explicitViewportH;
+
+        // Decide which scrollbars will be visible based on the viewport's content size
+        // and the scroller's scroll policies.
+
         var oldShowHSB:Boolean = hsbVisible;
         var oldShowVSB:Boolean = vsbVisible;

-        // Decide which scrollbars will be visible based on the viewport's content size
-        // and the scroller's scroll policies.
-
         var hAuto:Boolean = false;
         switch(scroller.getStyle("horizontalScrollPolicy"))
         {
@@ -363,8 +405,6 @@
                 if (hsb && viewport)
                 {
                     hAuto = true;
-                    var viewportW:Number =
-                        isNaN(explicitViewportW) ? (w - (minViewportInset * 2)) : explicitViewportW;
                     hsbVisible = (contentW > viewportW);
                 }
                 break;
@@ -384,8 +424,6 @@
                 if (vsb && viewport)
                 {
                     vAuto = true;
-                    var viewportH:Number =
-                        isNaN(explicitViewportH) ? (h - (minViewportInset * 2)) : explicitViewportH;
                     vsbVisible = (contentH > viewportH);
                 }
                 break;
@@ -394,83 +432,93 @@
                 vsbVisible = false;
         }

-        // Shrink the viewport's width,height for the visible scrollbars
-
-        viewportH = h - minViewportInset;
-        if (hsbVisible)
-            viewportH -= Math.max(minViewportInset, hsb.getPreferredBoundsHeight());
-
-        viewportW = w - minViewportInset;
-        if (vsbVisible)
-            viewportW -= Math.max(minViewportInset, vsb.getPreferredBoundsWidth());
-
+        // Reset the viewport's width,height to account for the visible scrollbars, unless
+        // the viewport's size was explicitly set, then we just use that.
+
+        if (isNaN(explicitViewportW))
+            viewportW = w - ((vsbVisible) ? (minViewportInset + vsbRequiredWidth()) : (minViewportInset * 2));
+        else
+            viewportW = explicitViewportW;
+
+        if (isNaN(explicitViewportH))
+            viewportH = h - ((hsbVisible) ? (minViewportInset + hsbRequiredHeight()) : (minViewportInset * 2));
+        else
+            viewportH = explicitViewportH;
+
         // If the scrollBarPolicy is auto, and we're only showing one scrollbar,
         // the viewport may have shrunk enough to require showing the other one.
-
+
+        var hsbIsDependent:Boolean = false;
+        var vsbIsDependent:Boolean = false;
+
         if (vsbVisible && !hsbVisible && hAuto && (contentW > viewportW))
-        {
-            hsbVisible = true;
-            viewportH -= Math.max(minViewportInset, hsb.getPreferredBoundsHeight());
-        }
+            hsbVisible = hsbIsDependent = true;
         else if (!vsbVisible && hsbVisible && vAuto && (contentH > viewportH))
-        {
-            vsbVisible = true;
-            viewportW -= Math.max(minViewportInset, vsb.getPreferredBoundsWidth());
-        }
-
-        // Factor in scrollBar-side viewportInsets where there aren't scrollbars
-
-        if (!hsbVisible)
-            viewportH -= minViewportInset;
-
-        if (!vsbVisible)
-            viewportW -= minViewportInset;
-
+            vsbVisible = vsbIsDependent = true;
+
         // If the HSB doesn't fit, hide it and give the space back.   Likewise for VSB.
         // If both scrollbars are supposed to be visible but they don't both fit,
-        // then prefer to show just a VSB over just a HSB.
-
-        if (hsbVisible && vsbVisible)
-        {
-            var hsbPreferredH:Number = hsb.getPreferredBoundsHeight();
-            var vsbPreferredW:Number = vsb.getPreferredBoundsWidth();
-
-            if (!hsbFits(w, h))
+        // then prefer to show the "non-dependent" auto scrollbar if we added the second
+        // "dependent" auto scrollbar because of the space consumed by the first.
+
+        if (hsbVisible && vsbVisible)
+        {
+            if (hsbFits(w, h) && vsbFits(w, h))
+            {
+                // Both scrollbars fit, we're done.
+            }
+            else if (!hsbFits(w, h, false) && !vsbFits(w, h, false))
+            {
+                // Neither scrollbar would fit, even if the other scrollbar wasn't visible.
                 hsbVisible = false;
-
-            if (!vsbFits(w, h))
+                vsbVisible = false;
+            }
+            else
             {
-                vsbVisible = false;
-                hsbVisible = true;
-                if (!hsbFits(w, h))
+                // Only one of the scrollbars will fit.  If we're showing a second "dependent"
+                // auto scrollbar because the first scrollbar consumed enough space to
+                // require it, if the first scrollbar doesn't fit, don't show either of them.
+
+                if (hsbIsDependent)
+                {
+                    if (vsbFits(w, h, false))  // VSB will fit if HSB isn't shown
+                        hsbVisible = false;
+                    else
+                        vsbVisible = hsbVisible = false;
+
+                }
+                else if (vsbIsDependent)
+                {
+                    if (hsbFits(w, h, false)) // HSB will fit if VSB isn't shown
+                        vsbVisible = false;
+                    else
+                        hsbVisible = vsbVisible = false;
+                }
+                else if (vsbFits(w, h, false)) // VSB will fit if HSB isn't shown
                     hsbVisible = false;
+                else // hsbFits(w, h, false)   // HSB will fit if VSB isn't shown
+                    vsbVisible = false;
             }
-
-            if (!hsbVisible)
-                viewportH += Math.max(minViewportInset, hsbPreferredH);
-            if (!vsbVisible)
-                viewportW += Math.max(minViewportInset, vsbPreferredW);
-        }
-        else if (hsbVisible && !hsbFits(w, h))
-        {
-            viewportH += Math.max(minViewportInset, hsb.getPreferredBoundsHeight());
+        }
+        else if (hsbVisible && !hsbFits(w, h))  // just trying to show HSB, but it doesn't fit
             hsbVisible = false;
-        }
-        else if (vsbVisible && !vsbFits(w, h))
-        {
-            viewportW += Math.max(minViewportInset, vsb.getPreferredBoundsWidth());
+        else if (vsbVisible && !vsbFits(w, h))  // just trying to show VSB, but it doesn't fit
             vsbVisible = false;
-        }
-
-        // Special case: viewport's size is explicitly set
-
-        if (!isNaN(explicitViewportW))
+
+        // Reset the viewport's width,height to account for the visible scrollbars, unless
+        // the viewport's size was explicitly set, then we just use that.
+
+        if (isNaN(explicitViewportW))
+            viewportW = w - ((vsbVisible) ? (minViewportInset + vsbRequiredWidth()) : (minViewportInset * 2));
+        else
             viewportW = explicitViewportW;

-        if (!isNaN(explicitViewportH))
+        if (isNaN(explicitViewportH))
+            viewportH = h - ((hsbVisible) ? (minViewportInset + hsbRequiredHeight()) : (minViewportInset * 2));
+        else
             viewportH = explicitViewportH;

-        // Layout the viewport scrollbars.
+        // Layout the viewport and scrollbars.

         if (viewport)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3691
Author:   chaase@adobe.com
Date:     2008-10-16T19:19:46.736687Z

Log Message:
-----------
Fixed sdk-16853, sdk-17341, sdk-16855, sdk-16681, sdk-16668, sdk-16851, sdk-16480. The main change is that the new Wait effect has gone away and its functionality (optionally waiting for an event) is instead merged into the old Pause effect. Some enhancements were added to Pause along the way. Also fixed other random effects issues, such as waiting to raise the effectStart event until after startDelay elapses (like the old Flex3 effect behavior).

reviewed by Jason and Evtim
tests: checkintests, Mustella tests/Effects, tests/ListDataEffects, tests/gumbo/effects (minus Wait and CallAction tests, which need to be updated)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PauseInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Pause.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/WaitInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Wait.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AddAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AddActionInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AddActionInstance.as
@@ -19,14 +19,15 @@

 import mx.core.mx_internal;
 import mx.effects.effectClasses.ActionEffectInstance;
+import mx.effects.AddAction;

 /**
- *  The AddChildActionInstance class implements the instance class
- *  for the AddChildAction effect.
+ *  The AddActionInstance class implements the instance class
+ *  for the AddAction effect.
  *  Flex creates an instance of this class when it plays
- *  an AddChildAction effect; you do not create one yourself.
+ *  an AddAction effect; you do not create one yourself.
  *
- *  @see mx.effects.AddChildAction
+ *  @see mx.effects.AddAction
  */
 public class AddActionInstance extends ActionEffectInstance
 {
@@ -168,7 +169,7 @@
 			{
 				switch (position)
 				{
-					case "index":
+					case AddAction.INDEX:
 					{
 						if (index == -1)
 							addChild(relativeTo, target);
@@ -178,26 +179,26 @@
 						break;
 					}

-					case "before":
+					case AddAction.BEFORE:
 					{
 						addChildAt(getContainer(relativeTo), target,
 							getChildIndex(getContainer(relativeTo), relativeTo));
 						break;
 					}

-					case "after":
+					case AddAction.AFTER:
 					{
 						addChildAt(getContainer(relativeTo), target,
 							getChildIndex(getContainer(relativeTo), relativeTo) + 1);
 						break;
 					}

-					case "firstChild":
+					case AddAction.FIRST_CHILD:
 					{
 						addChildAt(relativeTo, target, 0);
 					}

-					case "lastChild":
+					case AddAction.LAST_CHILD:
 					{
 						addChild(relativeTo, target);
 					}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4091
Author:   rfrishbe@adobe.com
Date:     2008-11-12T21:58:46.437695Z

Log Message:
-----------
FxComponent now throws RTEs when accessing the DisplayObjectContainer mutation APIs (addChild, removeChild, etc...).  Instead, one should modify the skin object directly, or if you're adding something to an FxContainer, use addItem, removeItem, etc...  I had to fix flex4tests in checkintests because it was using addChild() on a panel.

Fixed some ASDocs for FxScroller.as

Found a small bug in GraphicElement around setting blendModeChanged back to false in commitProperties (it was accidentally set to true).

Ran checkintests and mustella tests for: List, FxContainer, FxDataContainer, Button, ToggleButton, CheckBox, RadioButton.

QE Notes: We should add tests for FxComponent where one tries to call addChild, removeChild, etc... and gets an RTE.
Doc Notes: None
Bugs: SDK-17655
Reviewer: Jason, Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxContainerBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/flex4/flex4test.mxml</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/tests/flex4/flex4test_testScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -2600,7 +2600,7 @@

             if (blendModeChanged)
             {
-                blendModeChanged = true;
+                blendModeChanged = false;
                 displayObject.blendMode = _blendMode;
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3057
Author:   jimurphy@adobe.com
Date:     2008-09-02T15:18:38.819662Z

Log Message:
-----------
Merged 3.0.x revisions [2966,2969,2995,3004,3018-3019,3023,3029-3030,3046,3049,3052] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ModalWindowRequest.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/managers/dragClasses/DragProxy.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/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/PopUpRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.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/managers/systemClasses/EventProxy.as</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/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.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/managers/DragManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SizeRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/InterManagerRequest.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterManagerRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FocusRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.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/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/dividedBoxClasses/BoxDivider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootDragEvent.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/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/SandboxMouseEvent.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxMouseEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/EventUtil.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootMouseEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.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/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeRequest.as</path>

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

--- frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as
@@ -31,7 +31,7 @@
 import mx.effects.EffectManager;
 import mx.events.EffectEvent;
 import mx.events.ToolTipEvent;
-import mx.events.SandboxRootRequest;
+import mx.events.InterManagerRequest;
 import mx.managers.IToolTipManagerClient;
 import mx.styles.IStyleClient;
 import mx.validators.IValidatorListener;
@@ -99,8 +99,8 @@

 		this.systemManager = SystemManagerGlobals.topLevelSystemManagers[0] as ISystemManager;
 		sandboxRoot = this.systemManager.getSandboxRoot();
-		sandboxRoot.addEventListener(SandboxRootRequest.TOOLTIP_MANAGER_REQUEST, marshalToolTipManagerHandler, false, 0, true);
-		var me:SandboxRootRequest = new SandboxRootRequest(SandboxRootRequest.TOOLTIP_MANAGER_REQUEST);
+		sandboxRoot.addEventListener(InterManagerRequest.TOOLTIP_MANAGER_REQUEST, marshalToolTipManagerHandler, false, 0, true);
+		var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST);
 		me.name = "update";
 		// trace("--->update request for ToolTipManagerImpl", systemManager);
 		sandboxRoot.dispatchEvent(me);
@@ -241,7 +241,7 @@
     {
         _currentToolTip = value as DisplayObject;

-		var me:SandboxRootRequest = new SandboxRootRequest(SandboxRootRequest.TOOLTIP_MANAGER_REQUEST);
+		var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST);
 		me.name = "currentToolTip";
 		me.value = value;
 		// trace("-->dispatched currentToolTip for ToolTipManagerImpl", systemManager, value);
@@ -750,7 +750,7 @@
 			}
 			else
 			{
-				var me:SandboxRootRequest = new SandboxRootRequest(SandboxRootRequest.TOOLTIP_MANAGER_REQUEST);
+				var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST);
 				me.name = ToolTipEvent.TOOL_TIP_HIDE;
 				// trace("-->dispatched hide for ToolTipManagerImpl", systemManager);
 				sandboxRoot.dispatchEvent(me);
@@ -924,7 +924,7 @@

         if (isError)
         {
-            var targetGlobalBounds:Rectangle = getGlobalBounds(currentTarget);
+            var targetGlobalBounds:Rectangle = getGlobalBounds(currentTarget, currentToolTip.root);

             x = targetGlobalBounds.right + 4;
             y = targetGlobalBounds.top - 1;
@@ -992,7 +992,6 @@
             // We might be loaded and offset.
             var pos:Point = new Point(x, y);
             var ctt:IToolTip = currentToolTip;
-            pos = DisplayObject(ctt).root.globalToLocal(pos);
             x = pos.x;
             y = pos.y;
         }
@@ -1318,10 +1317,11 @@
     /**
      *  @private
      */
-    private function getGlobalBounds(obj:DisplayObject):Rectangle
+    private function getGlobalBounds(obj:DisplayObject, parent:DisplayObject):Rectangle
     {
         var upperLeft:Point = new Point(0, 0);
         upperLeft = obj.localToGlobal(upperLeft);
+        upperLeft = parent.globalToLocal(upperLeft);
         return new Rectangle(upperLeft.x, upperLeft.y, obj.width, obj.height);
     }

@@ -1438,10 +1438,10 @@
 	 */
 	private function marshalToolTipManagerHandler(event:Event):void
 	{
-		if (event is SandboxRootRequest)
+		if (event is InterManagerRequest)
 			return;

-		var me:SandboxRootRequest;
+		var me:InterManagerRequest;

 		var marshalEvent:Object = event;
 		switch (marshalEvent.name)
@@ -1460,7 +1460,7 @@
 			event.stopImmediatePropagation();
 			// update the others
 			// trace("-->marshaled update for ToolTipManagerImpl", systemManager);
-			me = new SandboxRootRequest(SandboxRootRequest.TOOLTIP_MANAGER_REQUEST);
+			me = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST);
 			me.name = "currentToolTip";
 			me.value = _currentToolTip;
 			// trace("-->dispatched currentToolTip for ToolTipManagerImpl", systemManager, true);


[FWR-j9J3LsxC] SecurityWrapper: More general event type [Bugfix]

--- src/main/flashwavrecorder/wrappers/MicrophoneWrapper.as
+++ src/main/flashwavrecorder/wrappers/MicrophoneWrapper.as
@@ -1,6 +1,7 @@
 package flashwavrecorder.wrappers {

   import flash.events.ActivityEvent;
+  import flash.events.Event;
   import flash.events.EventDispatcher;
   import flash.events.SampleDataEvent;
   import flash.events.StatusEvent;
@@ -50,7 +51,7 @@
       _microphone.setUseEchoSuppression(useEchoSuppression);
     }

-    private function forwardEvent(event:StatusEvent):void {
+    private function forwardEvent(event:Event):void {
       dispatchEvent(event);
     }


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

--- frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as
+++ frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.managers
+{
+
+[ExcludeClass]
+
+/**
+ *  @private
+ */
+public class SystemManagerGlobals
+{
+	public static var topLevelSystemManagers:Array
+												  /* of SystemManager */ = [];
+    public static var bootstrapLoaderInfoURL:String;
+}
+
+}
+


Transferred from the Adobe Open Source Subversion Repository

Revision: 7879
Author:   dloverin@adobe.com
Date:     2009-06-16T14:08:15.137863Z

Log Message:
-----------
WindowedApplication/Window P-ARB changes.

WindowedApplication/Window
•             Rename resizeAffordance to resizeAffordanceWidth
•             Change resizeAffordanceWidth from a property to a style
•             Remove showGripper property
•             Remove showTitleBar property
•             Make override functions @private
•             SkinState metadata: rename normalActive to normalAndInactive
•             SkinState metadata: rename disabledInactive to disabledAndInactive

TitleBar
•             SkinState metadata: rename maximized to normalAndMaximized
•             SkinState metadata: rename disabledMaximized to disabledAndMaximized

QE Notes: Expect testing failures do to the changes.
Doc Notes: none.
Bugs: none
Reviewer: Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/TitleBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/MacTitleBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/FlexChromeSkin.mxml</path>

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

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -869,6 +869,7 @@
     }

     /**
+     *  @private
      *  Specifies the maximum height of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.
@@ -916,6 +917,7 @@
     }

     /**
+     *  @private
      *  Specifies the maximum width of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.
@@ -951,6 +953,7 @@
     [Bindable("windowComplete")]

     /**
+     *  @private
      *  Specifies the minimum height of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.
@@ -998,6 +1001,7 @@
     [Bindable("windowComplete")]

     /**
+     *  @private
      *  Specifies the minimum width of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.


Transferred from the Adobe Open Source Subversion Repository

Revision: 17937
Author:   tkraikit@adobe.com
Date:     2010-09-29T21:21:00.234115Z

Log Message:
-----------
Fix for bug 27922: gotoFirstFrameAndStop() now goes to first frame of the first scene (previously was going to first frame of the current scene)

QE notes: n/a
Doc notes: n/a
Bugs: SDK-27922
Reviewer: Corey
Tests run: checkintests, mustella via cyclone server
Is noteworthy for integration: n/a

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as

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

--- frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as
+++ frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as
@@ -182,7 +182,7 @@
     {
         var movieClip:MovieClip = this.movieClip;
         if (movieClip)
-            movieClip.gotoAndStop(0); // go to first frame and stop
+            movieClip.gotoAndStop(0, movieClip.scenes ? movieClip.scenes[0].name : null); // go to first frame and stop
     }

     /**


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

--- frameworks/projects/framework/src/mx/formatters/ZipCodeFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/ZipCodeFormatter.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.formatters
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17398
Author:   jszeto@adobe.com
Date:     2010-08-20T00:17:08.738112Z

Log Message:
-----------
Mobile Button/CheckBox/RadioButton Bug Fixes

SDK-27494 - RTE when setting styleName at runtime for CheckBox,RadioButton

When style changed, the iconDisplay was removed in ButtonSkinBase. Added a flag to choose whether to use the icon style.

SDK-27468 - Mobile Button Skin: button does not appear if it doesn't have a label

Added a minimum width

SDK-27426 - CheckBox, RadioButton doesn't resize when changing the label to be a longer value
SDK-27507 - Mobile Button label does not respect states in some test case

Fixed a regression introduced by the MobileTextField change. When the label changes, we need to invalidate the size and layout

SDK-27414 - Button dimension not adjusted when labelPlacement changes to top or bottom

Check for the iconPlacement style changing in styleChanged.

SDK-27407 - Button dimension not adjusted when icon is added or removed from the button
SDK-27351 - RTE when removing iconClass by switching states
SDK-27296 - Setting iconClass using setStyle does not work

Invalidate the size and layout when a style has changed

SDK-27388 - Borderless button skin looks the same when in up, down, and disabled states
SDK-27294 - Skin on enabled and disabled buttons look (almost) similar

Added logic to handle the disabled state. Note that due to a Player bug, text will still appear opaque on the desktop

QE notes: lots of fixes!
Doc notes: none
Bugs: SDK-27494, SDK-27468, SDK-27426, SDK-27507, SDK-27414, SDK-27407, SDK-27351, SDK-27296, SDK-27388, SDK-27294
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as
@@ -32,6 +32,8 @@
         paddingRight = 15;
         paddingTop = 15;
         paddingBottom = 15;
+
+        useIconStyle = false;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7361
Author:   clucier@adobe.com
Date:     2009-05-28T11:35:56.561968Z

Log Message:
-----------
Adding null check for previous revision (7334).
QE Notes: None
Bugs: None

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -233,7 +233,7 @@
     override public function setText(text:String):void
     {
         super.setText(text);
-        if (textView.systemManager.stage.focus == textView)
+        if (textView.systemManager && textView.systemManager.stage.focus == textView)
         {
             var im:ISelectionManager = beginInteraction();
             im.setSelection(int.MAX_VALUE, int.MAX_VALUE);


Transferred from the Adobe Open Source Subversion Repository

Revision: 20644
Author:   mhorn@adobe.com
Date:     2011-03-07T18:49:20.181589Z

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorTabBarFirstTabSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorTabBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaVScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaVScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorTabBarLastTabSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonBarButtonClassFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaHScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaHScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as
@@ -16,7 +16,7 @@
 import spark.skins.mobile.supportClasses.MobileSkin;

 /**
- *  ActionScript-based skin for SkinnableContainer.
+ *  ActionScript-based skin for SkinnableContainer in mobile applications.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
@@ -122,6 +122,9 @@
         contentGroup.setLayoutBoundsPosition(0, 0);
     }

+    /**
+     *  @private
+     */
     override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
     {
         super.drawBackground(unscaledWidth, unscaledHeight);


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

--- frameworks/projects/advancedgrids/src/mx/controls/olapDataGridClasses/OLAPDataGridHeaderRenderer.as
+++ frameworks/projects/advancedgrids/src/mx/controls/olapDataGridClasses/OLAPDataGridHeaderRenderer.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.olapDataGridClasses
 {


remove unused imports

remove unused imports

--- src/battlecode/world/signals/RobotInfoSignal.as
+++ src/battlecode/world/signals/RobotInfoSignal.as
@@ -1,7 +1,4 @@
 package battlecode.world.signals {
-    import battlecode.common.AttackType;
-    import battlecode.common.MapLocation;
-
     public class RobotInfoSignal implements Signal {
         private var robotID:uint;
         private var health:Number;
@@ -24,5 +21,4 @@
         }

     }
-
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/framework/src/mx/core/UIComponentGlobals.as
+++ frameworks/projects/framework/src/mx/core/UIComponentGlobals.as
@@ -99,7 +99,7 @@
      */
     public static function get designMode():Boolean
     {
-        return mx_internal::designTime;
+        return designTime;
     }

     /**
@@ -107,7 +107,7 @@
      */
     public static function set designMode(value:Boolean):void
     {
-        mx_internal::designTime = value;
+        designTime = value;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/framework/src/mx/graphics/RadialGradient.as
+++ frameworks/projects/framework/src/mx/graphics/RadialGradient.as
@@ -16,6 +16,9 @@
 import flash.display.Graphics;
 import flash.geom.Matrix;
 import flash.geom.Rectangle;
+import mx.core.mx_internal;
+
+use namespace mx_internal;

 /**
  *  The RadialGradient class lets you specify a gradual color transition
@@ -201,8 +204,7 @@
         {
             _focalPointRatio = value;

-            mx_internal::dispatchGradientChangedEvent("focalPointRatio",
-                                                      oldValue, value);
+            dispatchGradientChangedEvent("focalPointRatio", oldValue, value);
         }
     }

@@ -250,7 +252,7 @@
     	if (value != oldValue && !compoundTransform)
     	{
     		_scaleY = value;
-    		mx_internal::dispatchGradientChangedEvent("scaleY", oldValue, value);
+    		dispatchGradientChangedEvent("scaleY", oldValue, value);
     	}
     }

@@ -290,8 +292,7 @@
 		if (!compoundTransform)
 		{
 	        commonMatrix.scale (w / GRADIENT_DIMENSION, h / GRADIENT_DIMENSION);
-	        commonMatrix.rotate(!isNaN(mx_internal::_angle) ?
-											mx_internal::_angle : mx_internal::rotationInRadians);
+	        commonMatrix.rotate(!isNaN(_angle) ? _angle : rotationInRadians);
 	        commonMatrix.translate(regX, regY);
 		}
 	 	else
@@ -301,9 +302,8 @@
 	 		commonMatrix.concat(compoundTransform.matrix);
 	 	}

-        target.beginGradientFill(GradientType.RADIAL, mx_internal::colors,
-								 mx_internal::alphas, mx_internal::ratios,
-								 commonMatrix, spreadMethod, interpolationMethod, focalPointRatio);
+        target.beginGradientFill(GradientType.RADIAL, colors, alphas, ratios,
+            commonMatrix, spreadMethod, interpolationMethod, focalPointRatio);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 4618
Author:   preilly@adobe.com
Date:     2009-01-22T16:36:46.767144Z

Log Message:
-----------
* Submitted user patch and fixed RemoteObject children with id's.

tests Passed: checkintests

Needs QA: YES

Needs DOC: NO

Bug fixes: SDK-18074, SDK-18702

API Change: NO

Reviewer: Me(DescribeTypeCache.as), Pete(InterfaceCompiler.java)

Code-level description of changes:

  frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as

    Modified describeType() to cache class and instance info using
    separate keys.

  modules/compiler/src/java/flex2/compiler/mxml/InterfaceCompiler.java

    Modified analyze(RemoteObjectNode) and analyze(HTTPServiceNode) to
    call super.analyze(), so children will get analyzed.

Modified Paths:
--------------
<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/modules/compiler/src/java/flex2/compiler/mxml/InterfaceCompiler.java</path>

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

--- frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as
+++ frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as
@@ -21,14 +21,14 @@

 /**
  *  @private
- *  DescribeTypeCache is a convenience class that is used to
+ *  DescribeTypeCache is a convenience class that is used to
  *  cache the return values of flash.utils.describeType()
  *  so that calls made subsequent times return faster.
  *
  *  This class also lets you set handler functions for specific value types.
  *  These will get called when the user tries to access these values on
  *  the DescribeTypeCacheRecord class.
- *
+ *
  *  @see mx.utils.DescribeTypeCacheRecord
  */
 public class DescribeTypeCache
@@ -53,7 +53,7 @@
      *  @private
      */
     private static var typeCache:Object = {};
-
+
     /**
      *  @private
      */
@@ -67,28 +67,33 @@

     /**
      *  Calls flash.utils.describeType() for the first time and caches
-         *  the return value so that subsequent calls return faster.
+         *  the return value so that subsequent calls return faster.
          *
-         *  @param o Can be either a string describing a fully qualified class name or any
+         *  @param o Can be either a string describing a fully qualified class name or any
          *  ActionScript value, including all available ActionScript types, object instances,
          *  primitive types (such as uint), and class objects.
          *
          *  @return Returns the cached record.
          *
-         *  @see flash.utils#describeType()
+         *  @see flash.utils#describeType()
      */
     public static function describeType(o:*):DescribeTypeCacheRecord
     {
         var className:String;
+        var cacheKey:String;

         if (o is String)
-            className = o;
+            cacheKey = className = o;
         else
-            className = getQualifiedClassName(o);
+            cacheKey = className = getQualifiedClassName(o);

-        if (className in typeCache)
+        //Need separate entries for describeType(Foo) and describeType(myFoo)
+        if(o is Class)
+            cacheKey += "$";
+
+        if (cacheKey in typeCache)
         {
-            return typeCache[className];
+            return typeCache[cacheKey];
         }
         else
         {
@@ -99,7 +104,7 @@
             var record:DescribeTypeCacheRecord = new DescribeTypeCacheRecord();
             record.typeDescription = typeDescription;
             record.typeName = className;
-            typeCache[className] = record;
+            typeCache[cacheKey] = record;

             return record;
         }
@@ -128,7 +133,7 @@

         return undefined;
     }
-
+
     /**
      *  @private
      */