Transferred from the Adobe Open Source Subversion Repository

Revision: 11696
Author:   hmuller@adobe.com
Date:     2009-11-12T16:00:33.064482Z

Log Message:
-----------
Exclude layout property from HGroup, VGroup, TileLayout.

QE notes:
Doc notes:
Bugs: sdk-23730
Reviewer: Chet
Tests run:
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/VGroup.as
+++ frameworks/projects/spark/src/spark/components/VGroup.as
@@ -16,6 +16,8 @@
 import spark.layouts.supportClasses.LayoutBase;

 [IconFile("VGroup.png")]
+
+[Exclude(name="layout", kind="property")]

 /**
  *  The VGroup container is an instance of the Group container


Fix phongShaderPart value

Fix phongShaderPart value

--- src/aerys/minko/render/shader/part/phong/PhongShaderPart.as
+++ src/aerys/minko/render/shader/part/phong/PhongShaderPart.as
@@ -453,7 +453,7 @@
 					else if (type == SpotLight.LIGHT_TYPE)
 						contribution = getSpotLightSpecular(lightId, normal);
 					else if (type == PointLight.LIGHT_TYPE)
-						contribution = getPointLightContribution(lightId, normal);
+						contribution = getPointLightContribution(lightId, true, true, normal);

 					if (contribution)
 						specular = specular ? add(specular, contribution) : contribution;


Removed unnecessary code.

Removed unnecessary code.

--- WeaveUISpark/src/weave/visualization/layers/PlotTask.as
+++ WeaveUISpark/src/weave/visualization/layers/PlotTask.as
@@ -112,8 +112,6 @@
 			for each (var dependency:ILinkableObject in list)
 				registerLinkableChild(_dependencies, dependency);

-			getCallbackCollection(_plotter.filteredKeySet).addImmediateCallback(this, handleKeySetChange, true);
-
 			_dependencies.addImmediateCallback(this, asyncStart, true);

 			linkBindableProperty(_layerSettings.visible, completedBitmap, 'visible');
@@ -177,7 +175,6 @@
 		private var _progress:Number = 0;
 		private var _delayInit:Boolean = false;
 		private var _pendingInit:Boolean = false;
-		private var _keyToSortIndex:Dictionary;

 		/**
 		 * This function must be called to set the size of the BitmapData buffer.
@@ -192,20 +189,6 @@
 				_unscaledHeight = height;
 				_dependencies.triggerCallbacks();
 			}
-		}
-
-		private function handleKeySetChange():void
-		{
-			// save a lookup from key to sorted index
-			// this is very fast
-			_keyToSortIndex = new Dictionary(true);
-			var sorted:Array = _plotter.filteredKeySet.keys;
-			for (var i:int = sorted.length; i--;)
-				_keyToSortIndex[sorted[i]] = i;
-		}
-		private function cachedKeyCompare(key1:IQualifiedKey, key2:IQualifiedKey):int
-		{
-			return ObjectUtil.numericCompare(_keyToSortIndex[key1], _keyToSortIndex[key2]);
 		}

 		/**


Moved player control logic out of tick mehthod.

--- src/engine/tetragon/systems/racetrack/RacetrackSystem.as
+++ src/engine/tetragon/systems/racetrack/RacetrackSystem.as
@@ -49,7 +49,6 @@
 	import tetragon.signals.RTPlaySoundSignal;
 	import tetragon.systems.ISystem;
 	import tetragon.view.render.canvas.IRenderCanvas;
-	import tetragon.view.render.scroll.ParallaxLayer;
 	import tetragon.view.render2d.display.Image2D;
 	import tetragon.view.render2d.extensions.scrollimage.ScrollImage2D;
 	import tetragon.view.render2d.extensions.scrollimage.ScrollTile2D;
@@ -273,7 +272,7 @@

 		/**
-		 * Ticks the racetrack non-render logic.
+		 * Ticks the racetrack system's non-render logic.
 		 */
 		public function tick():void
 		{
@@ -281,11 +280,7 @@
 			if (!_started) return;

 			_speedPercent = _speed / _maxSpeed;
-
-			var i:int,
-				playerSegment:RTSegment = findSegment(_position + _playerZ),
-				dx:Number = _dt * 2 * _speedPercent,
-				bgLayer:ParallaxLayer;
+			var i:int, playerSegment:RTSegment = findSegment(_position + _playerZ);

 			updateCars(_dt, playerSegment, _playerWidth);

@@ -295,43 +290,7 @@
 			/* Handle player interaction. */
 			if (_allowControls)
 			{
-				if (_isJump)
-				{
-					if (_playerOffsetY <= _playerJumpHeight)
-					{
-						_isJump = false;
-						_isFall = true;
-					}
-					else
-					{
-						_playerOffsetY -= (1.1 - _speedPercent) * 0.36;
-					}
-				}
-				else if (_isFall)
-				{
-					if (_playerOffsetY < -1.0)
-					{
-						_playerOffsetY += (1.1 - _speedPercent) * 0.36;
-					}
-					else
-					{
-						_playerOffsetY = -1.0;
-						_isFall = false;
-					}
-				}
-				else
-				{
-					/* Update left/right steering. */
-					if (_isSteeringLeft) _playerX = _playerX - dx;
-					else if (_isSteeringRight) _playerX = _playerX + dx;
-
-					_playerX = _playerX - (dx * _speedPercent * playerSegment.curve * _centrifugal);
-
-					/* Update acceleration & decceleration. */
-					if (_isAccelerating) _speed = accel(_speed, _acceleration, _dt);
-					else if (_isBraking) _speed = accel(_speed, _braking, _dt);
-					else _speed = accel(_speed, _deceleration, _dt);
-				}
+				processPlayerControls(playerSegment);
 			}

 			/* Check if the segment the player is on has any triggers. */
@@ -906,6 +865,52 @@
 			if (car.offset < -0.9) return 0.1;
 			else if (car.offset > 0.9) return -0.1;
 			else return 0;
+		}
+
+
+		/**
+		 * @private
+		 */
+		private function processPlayerControls(segment:RTSegment):void
+		{
+			if (_isJump)
+			{
+				if (_playerOffsetY <= _playerJumpHeight)
+				{
+					_isJump = false;
+					_isFall = true;
+				}
+				else
+				{
+					_playerOffsetY -= (1.1 - _speedPercent) * 0.36;
+				}
+			}
+			else if (_isFall)
+			{
+				if (_playerOffsetY < -1.0)
+				{
+					_playerOffsetY += (1.1 - _speedPercent) * 0.36;
+				}
+				else
+				{
+					_playerOffsetY = -1.0;
+					_isFall = false;
+				}
+			}
+			else
+			{
+				var dx:Number = _dt * 2 * _speedPercent;
+				/* Update left/right steering. */
+				if (_isSteeringLeft) _playerX = _playerX - dx;
+				else if (_isSteeringRight) _playerX = _playerX + dx;
+
+				_playerX = _playerX - (dx * _speedPercent * segment.curve * _centrifugal);
+
+				/* Update acceleration & decceleration. */
+				if (_isAccelerating) _speed = accel(_speed, _acceleration, _dt);
+				else if (_isBraking) _speed = accel(_speed, _braking, _dt);
+				else _speed = accel(_speed, _deceleration, _dt);
+			}
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10867
Author:   aharui@adobe.com
Date:     2009-10-05T16:50:12.517430Z

Log Message:
-----------
FIx up createInFontContext for when there are no embedded fonts

QE Notes: None
Doc Notes: None
Bugs: SDK-23563
Reviewer: Carol
API Change: Yes
Is noteworthy for integration: No
tests: checkintests

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

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -11413,18 +11413,23 @@
         // depending on the version number
         // and the value of the textFieldClass style.
         if (className == "mx.core::UITextField")
+        {
             className = getTextFieldClassName();
+            if (className == "mx.core::UITLFTextField")
+                classObj = Class(ApplicationDomain.currentDomain.
+                                                    getDefinition(className));
+        }

         // Not in font registry, so create in this font context.
         var obj:Object = createInModuleContext(moduleContext, className);
+
+        if (obj == null)
+            obj = new classObj();

         // If we just created a UITLFTextField, set its textLineCreator property
         // so that it knows what module to use for creating its TextLines.
         if (className == "mx.core::UITLFTextField")
             obj.textLineCreator = moduleContext;
-
-        if (obj == null)
-            obj = new classObj();

         return obj;
     }


Added disposeLocalData in TextureAtlas

Added disposeLocalData in TextureAtlas

--- src/aerys/minko/render/resource/texture/TextureAtlas.as
+++ src/aerys/minko/render/resource/texture/TextureAtlas.as
@@ -97,5 +97,17 @@

 			return getRectangle(width, height, rootId * 2 + 2);
 		}
+
+		public function disposeLocalData():void
+		{
+			for(var b : * in _bitmapDataToRectangle)
+			{
+				BitmapData(b).dispose();
+			}
+			_atlasBitmapData.dispose();
+
+			_bitmapDataToRectangle = null;
+			_atlasBitmapData = null;
+		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 16727
Author:   jszeto@adobe.com
Date:     2010-06-29T20:42:03.768739Z

Log Message:
-----------
Form and ComboBox Bug Fixes

SDK-25765 - ComboBox does not commit item when closed if Enter key is pressed

I changed the fix for this bug.

Instead of only committing the selection in ComboBox.applySelection if the dropDown is closed, we keep track of the user defined selection in DropDownList.keyDownHandler.

SDK-26268 - ComboBox does not commit value with TAB when openOnInput = false

Removed the restriction in ComboBox.applySelection that the dropDown must be open in order to commit

SDK-26442 -  When arrowing between the first two items in a flex combo box the selection is always on the secodn item

Fixed logic bug in ComboBox.changeHighlightedSelection.

SDK-26752 - error string no longer appears for Spark or MX components

The errorString was getting set in MXML. At that time, the component is not parented and not hooked up to its styles. So the call to get the showErrorTip style was returning false.

I moved this logic to commitProperties which solves the timing issue.

SDK-26497 - Spark Form displays errors in a seemingly random order

Changed the dictionary of invalid elements into a sorted array.
An element's sort order is based on its position in the display list tree using a depth first search. The position is represented by a Vector.<int>, with each item being the child index of the element's ancestor at that depth. For example, the second child of the first child of the root would have a Vector like this [0,0,1].

Whenever an element is invalid, we add it to the sorted array and perform a re-sort. We can live with using a heavy data structure like a Vector of ints because there should only be a few errors at a time in a Form. The alternative is to traverse the entire tree and store a pointer and the sort order for each node.

We make an assumption that the order in the display list tree is equivalent to the visual order of the Form's input controls. Since the Form's layout is based on VerticalLayout, this is a valid assumption. This same algorithm would work if the Form was switched to a horizontal layout.

SDK-26697 - Cannot reset Spark Form to original state if form had validation errors

Added logic to Form to listen for the errorStringChanged event on an invalid element. We don't use the same technique as in FormItem, which listens for errorStringChanged in the capture phase on the FormItem's contentGroup. This is because FormItem's errorString is set to the combined errorStrings of its children. If Form used the same technique, the error strings would appear twice.

QE notes: retest SDK-25765
Doc notes: none
Bugs: SDK-25765, SDK-26268, SDK-26442, SDK-26752, SDK-26497, SDK-26697
Reviewer: Kevin
Tests run: full run
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Form.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -6784,6 +6784,12 @@
      *  Storage for errorString property.
      */
     mx_internal var _errorString:String = "";
+
+    /**
+     *  @private
+     *  Storage for previous errorString property.
+     */
+    private var oldErrorString:String = "";

     /**
      *  @private
@@ -6838,13 +6844,8 @@
      */
     public function set errorString(value:String):void
     {
-        var oldValue:String = _errorString;
+        oldErrorString = _errorString;
         _errorString = value;
-
-        var showErrorTip:Boolean = getStyle("showErrorTip");
-
-        if (showErrorTip)
-            ToolTipManager.registerErrorString(this, oldValue, value);

         errorStringChanged = true;
         invalidateProperties();
@@ -8103,8 +8104,13 @@
         if (errorStringChanged)
         {
             errorStringChanged = false;
+
+            if (getStyle("showErrorTip"))
+                ToolTipManager.registerErrorString(this, oldErrorString, errorString);
+
             setBorderColorForErrorString();
         }
+
         if (blendModeChanged)
         {
             blendModeChanged = false;


(Better) fix for localToWorld update on children of already updated localToWorld groups

--- src/aerys/minko/scene/controller/TransformController.as
+++ src/aerys/minko/scene/controller/TransformController.as
@@ -219,8 +219,9 @@
 					childLocalToWorld.lock();

 				childLocalToWorld
-				.copyFrom(childTransform)
+					.copyFrom(childTransform)
 					.append(localToWorld);
+

 				if (childFlags & FLAG_LOCK_TRANSFORMS)
 					childLocalToWorld.unlock();
@@ -264,7 +265,8 @@

 			while (tmpNodeId >= 0)
 			{
-				if ((_transforms[tmpNodeId] as Matrix4x4)._hasChanged
+				if ((_transforms[tmpNodeId] as Matrix4x4)._hasChanged
+					|| _localToWorldTransforms[tmpNodeId]._hasChanged
 					|| !(_flags[nodeId] & FLAG_INIT_LOCAL_TO_WORLD))
 					dirtyRoot = tmpNodeId;


REPLACED token callback with 'idsAvailable' method

--- actionscript/src/com/marpies/ane/onesignal/OneSignal.as
+++ actionscript/src/com/marpies/ane/onesignal/OneSignal.as
@@ -38,7 +38,7 @@
         private static const POST_NOTIFICATION_ERROR:String = "postNotificationError";

         /* Callbacks */
-        private static var mTokenCallbacks:Vector.<Function> = new <Function>[];
+        private static var mIdsAvailableCallback:Function;
         private static var mNotificationCallbacks:Vector.<Function> = new <Function>[];
         private static var mCallbackMap:Dictionary;
         private static var mCallbackIdCounter:int;
@@ -301,39 +301,23 @@

         /**
          * Adds callback that will be called when user registers for notifications and push token is received.
+         *
+         *
There can only be one callback registered at a time, and it is automatically removed when
+         * the push token is received. You can remove it manually by passing in null.

+         *
          * @param callback Function with the following signature:
          * <listing version="3.0">
          * function callback( oneSignalUserId:String, pushToken:String ):void {
          *    // pushToken may be null if there's an error (server side, connection error...)
          * };
          * </listing>
-         *
-         * @see #removeTokenReceivedCallback()
-         */
-        public static function addTokenReceivedCallback( callback:Function ):void {
-            if( !isSupported ) return;
-
-            if( callback === null ) throw new ArgumentError( "Parameter callback cannot be null." );
-
-            if( mTokenCallbacks.indexOf( callback ) < 0 ) {
-                mTokenCallbacks[mTokenCallbacks.length] = callback;
-            }
-        }
-
-        /**
-         * Removes callback that was added earlier using OneSignal.addTokenReceivedCallback
-         * @param callback Function to remove.
-         *
-         * @see #addTokenReceivedCallback()
-         */
-        public static function removeTokenReceivedCallback( callback:Function ):void {
-            if( !isSupported ) return;
-
-            if( callback === null ) throw new ArgumentError( "Parameter callback cannot be null." );
-
-            var index:int = mTokenCallbacks.indexOf( callback );
-            if( index >= 0 ) {
-                mTokenCallbacks.removeAt( index );
+         */
+        public static function idsAvailable( callback:Function ):void {
+            if( !isSupported || !initExtensionContext() ) return;
+
+            mIdsAvailableCallback = callback;
+            if( mIdsAvailableCallback !== null ) {
+                mContext.call( "idsAvailable" );
             }
         }

@@ -383,6 +367,9 @@
             if( !isSupported ) return;
             validateExtensionContext();

+            mIdsAvailableCallback = null;
+            mNotificationCallbacks.length = 0;
+
             mContext.removeEventListener( StatusEvent.STATUS, onStatus );

             mContext.dispose();
@@ -496,7 +483,14 @@
             var callback:Function = null;
             switch( event.code ) {
                 case TOKEN_RECEIVED:
-                    triggerTokenCallbacks( event.level );
+                    if( mIdsAvailableCallback !== null ) {
+                        responseJSON = JSON.parse( event.level );
+                        mIdsAvailableCallback( responseJSON.userId, responseJSON.pushToken );
+                        /* Remove the callback if the push token is available */
+                        if( "pushToken" in responseJSON ) {
+                            mIdsAvailableCallback = null;
+                        }
+                    }
                     return;
                 case NOTIFICATION_RECEIVED:
                     triggerNotificationCallbacks( event.level );
@@ -529,26 +523,6 @@
         }

         /**
-         * Calls the registered token callbacks.
-         *
-         * @param eventResponse String JSON that contains OneSignal user id and possibly also push token.
-         */
-        private static function triggerTokenCallbacks( eventResponse:String ):void {
-            var length:int = mTokenCallbacks.length;
-            /* Create callbacks copy because a callback may be removed when triggered */
-            if( length > 0 ) {
-                var responseJSON:Object = JSON.parse( eventResponse );
-                var tempCallbacks:Vector.<Function> = new <Function>[];
-                for( var i:int = 0; i < length; ++i ) {
-                    tempCallbacks[i] = mTokenCallbacks[i];
-                }
-                for( i = 0; i < length; ++i ) {
-                    tempCallbacks[i]( responseJSON.userId, responseJSON.pushToken );
-                }
-            }
-        }
-
-        /**
          * Calls the registered notification callbacks.
          *
          * @param eventResponse String JSON that contains data about received notification.


Transferred from the Adobe Open Source Subversion Repository

Revision: 19989
Author:   klin@adobe.com
Date:     2011-01-27T23:32:03.687643Z

Log Message:
-----------
Revert 19979. Need to look into some breaking effects tests.

QE notes: no
Doc notes: no
Bugs: n/a
Reviewer: n/a
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/TransformUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -99,7 +99,6 @@
 import mx.utils.MatrixUtil;
 import mx.utils.NameUtil;
 import mx.utils.StringUtil;
-import mx.utils.TransformUtil;
 import mx.validators.IValidatorListener;
 import mx.validators.ValidationResult;

@@ -13139,15 +13138,6 @@
      */
     protected function initAdvancedLayoutFeatures():void
     {
-        internal_initAdvancedLayoutFeatures();
-    }
-
-    /**
-     *  Passed to TransformUtil to create the layout features when performing
-     *  transformation operations.
-     */
-    private function internal_initAdvancedLayoutFeatures():AdvancedLayoutFeatures
-    {
         var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();

         _hasComplexLayoutMatrix = true;
@@ -13164,7 +13154,6 @@
         features.layoutWidth = width;  // for the mirror transform
         _layoutFeatures = features;
         invalidateTransform();
-        return features;
     }

     /**
@@ -13405,6 +13394,8 @@
             validateMatrix();
     }

+    private static var xformPt:Point;
+
     /**
      *  @copy mx.core.ILayoutElement#transformAround()
      *
@@ -13431,29 +13422,46 @@
             _includeInLayout = false;
         }

-        var prevX:Number = x;
-        var prevY:Number = y;
-        var prevZ:Number = z;
-
-        TransformUtil.transformAround(this,
-                                      transformCenter,
-                                      scale,
-                                      rotation,
-                                      translation,
-                                      postLayoutScale,
-                                      postLayoutRotation,
-                                      postLayoutTranslation,
-                                      _layoutFeatures,
-                                      internal_initAdvancedLayoutFeatures);
-
+        // TODO (chaase): Would be nice to put this function in a central place
+        // to be used by UIComponent, SpriteVisualElement, UIMovieClip, and
+        // GraphicElement, since they all have similar or identical functions
+        if (_layoutFeatures == null)
+        {
+            // TODO (chaase): should provide a way to return to having no
+            // layoutFeatures if we call this later with a more trivial
+            // situation
+            var needAdvancedLayout:Boolean =
+                (scale != null && ((!isNaN(scale.x) && scale.x != 1) ||
+                    (!isNaN(scale.y) && scale.y != 1) ||
+                    (!isNaN(scale.z) && scale.z != 1))) ||
+                (rotation != null && ((!isNaN(rotation.x) && rotation.x != 0) ||
+                    (!isNaN(rotation.y) && rotation.y != 0) ||
+                    (!isNaN(rotation.z) && rotation.z != 0))) ||
+                (translation != null && translation.z != 0 && !isNaN(translation.z)) ||
+                postLayoutScale != null ||
+                postLayoutRotation != null ||
+                (postLayoutTranslation != null &&
+                    (translation == null ||
+                     postLayoutTranslation.x != translation.x ||
+                     postLayoutTranslation.y != translation.y ||
+                     postLayoutTranslation.z != translation.z));
+            if (needAdvancedLayout)
+                initAdvancedLayoutFeatures();
+        }
         if (_layoutFeatures != null)
         {
+            var prevX:Number = _layoutFeatures.layoutX;
+            var prevY:Number = _layoutFeatures.layoutY;
+            var prevZ:Number = _layoutFeatures.layoutZ;
+            _layoutFeatures.transformAround(transformCenter, scale, rotation,
+                translation, postLayoutScale, postLayoutRotation,
+                postLayoutTranslation);
             invalidateTransform();

             // Will not invalidate parent if we have set _includeInLayout to false
             // in the beginning of the method
             invalidateParentSizeAndDisplayList();
-
+
             if (prevX != _layoutFeatures.layoutX)
                 dispatchEvent(new Event("xChanged"));
             if (prevY != _layoutFeatures.layoutY)
@@ -13461,24 +13469,70 @@
             if (prevZ != _layoutFeatures.layoutZ)
                 dispatchEvent(new Event("zChanged"));
         }
+        else
+        {
+            if (translation == null && transformCenter != null)
+            {
+                if (xformPt == null)
+                    xformPt = new Point();
+                xformPt.x = transformCenter.x;
+                xformPt.y = transformCenter.y;
+                var xformedPt:Point =
+                    transform.matrix.transformPoint(xformPt);
+            }
+            if (rotation != null && !isNaN(rotation.z))
+                this.rotation = rotation.z;
+            if (scale != null)
+            {
+                scaleX = scale.x;
+                scaleY = scale.y;
+            }
+            if (transformCenter == null)
+            {
+                if (translation != null)
+                {
+                    x = translation.x;
+                    y = translation.y;
+                }
+            }
+            else
+            {
+                if (xformPt == null)
+                    xformPt = new Point();
+                xformPt.x = transformCenter.x;
+                xformPt.y = transformCenter.y;
+                var postXFormPoint:Point =
+                    transform.matrix.transformPoint(xformPt);
+                if (translation != null)
+                {
+                    x += translation.x - postXFormPoint.x;
+                    y += translation.y - postXFormPoint.y;
+                }
+                else
+                {
+                    x += xformedPt.x - postXFormPoint.x;
+                    y += xformedPt.y - postXFormPoint.y;
+                }
+            }
+        }

         if (!invalidateLayout)
             _includeInLayout = oldIncludeInLayout;
     }

     /**
-     *  A utility method to transform a point specified in the local
-     *  coordinates of this object to its location in the object's parent's
-     *  coordinates. The pre-layout and post-layout result is set on
-     *  the position and postLayoutPosition
-     *  parameters, if they are non-null.
-     *
-     *  @param localPosition The point to be transformed, specified in the
-     *  local coordinates of the object.
-     *  @position A Vector3D point that holds the pre-layout
-     *  result. If null, the parameter is ignored.
-     *  @postLayoutPosition A Vector3D point that holds the post-layout
-     *  result. If null, the parameter is ignored.
+     * A utility method to transform a point specified in the local
+     * coordinates of this object to its location in the object's parent's
+     * coordinates. The pre-layout and post-layout result is set on
+     * the position and postLayoutPosition
+     * parameters, if they are non-null.
+     *
+     * @param localPosition The point to be transformed, specified in the
+     * local coordinates of the object.
+     * @position A Vector3D point that holds the pre-layout
+     * result. If null, the parameter is ignored.
+     * @postLayoutPosition A Vector3D point that holds the post-layout
+     * result. If null, the parameter is ignored.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -13489,11 +13543,41 @@
                                            position:Vector3D,
                                            postLayoutPosition:Vector3D):void
     {
-        TransformUtil.transformPointToParent(this,
-                                             localPosition,
-                                             position,
-                                             postLayoutPosition,
-                                             _layoutFeatures);
+        if (_layoutFeatures != null)
+        {
+            _layoutFeatures.transformPointToParent(true, localPosition,
+                position, postLayoutPosition);
+        }
+        else
+        {
+            if (xformPt == null)
+                xformPt = new Point();
+            if (localPosition)
+            {
+                xformPt.x = localPosition.x;
+                xformPt.y = localPosition.y;
+            }
+            else
+            {
+                xformPt.x = 0;
+                xformPt.y = 0;
+            }
+            var tmp:Point = (transform.matrix != null) ?
+                transform.matrix.transformPoint(xformPt) :
+                xformPt;
+            if (position != null)
+            {
+                position.x = tmp.x;
+                position.y = tmp.y;
+                position.z = 0;
+            }
+            if (postLayoutPosition != null)
+            {
+                postLayoutPosition.x = tmp.x;
+                postLayoutPosition.y = tmp.y;
+                postLayoutPosition.z = 0;
+            }
+        }
     }

     /**
@@ -13639,6 +13723,7 @@
     //  ILayoutElement
     //
     //--------------------------------------------------------------------------
+

     /**
      *  @inheritDoc


Transferred from the Adobe Open Source Subversion Repository

Revision: 9091
Author:   egeorgie@adobe.com
Date:     2009-08-04T23:11:37.853788Z

Log Message:
-----------
Fix bug http://bugs.adobe.com/jira/browse/SDK-22181 LayoutBoundsHeight and LayoutBoundWidth has rounding errors for rotated paths + optimizations

Fix: Path used to draw into a shape to determine the bounds, which had rounding error to the 1/20th of the pixel. Calculate the bounds directly by going through the segments instead - this yields full double precision.
Additional changes:
1. Reduce the number of dynamic Points allocated
2. Remove the CloseSegment and replace it with a LineSegment
3. Optimize the bounds() code to look at each line segment's points only once

Additional changes bring 10% speed improvement in path layout over the trunk baseline for a test case of 5,000 star paths in a TileLayout (each with 9 line segments and 1 close segment).

QE notes: None
Doc notes: None
Bugs: SDK-22181
Reviewer: Jason
Tests run: checkintests, gumbo/layout, graphicTags, gumbo/core/Group

Is noteworthy for integration: Yes, bug SDK-22181 came from the Thermo team

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>

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

--- frameworks/projects/framework/src/mx/utils/MatrixUtil.as
+++ frameworks/projects/framework/src/mx/utils/MatrixUtil.as
@@ -29,12 +29,32 @@
     include "../core/Version.as";

 	private static const RADIANS_PER_DEGREES:Number = Math.PI / 180;
+
+	private static var staticPoint:Point = new Point();

     //--------------------------------------------------------------------------
     //
     //  Class methods
     //
     //--------------------------------------------------------------------------
+
+	/**
+	 *  Retunrns a static Point object with the result.
+	 *  If matrix is null, point is untransformed.
+	 */
+	public static function transformPoint(x:Number, y:Number, m:Matrix):Point
+	{
+		if (!m)
+		{
+			staticPoint.x = x;
+			staticPoint.y = y;
+			return staticPoint;
+		}
+
+		staticPoint.x = m.a * x + m.c * y + m.tx;
+		staticPoint.y = m.b * x + m.d * y + m.ty;
+		return staticPoint;
+	}

     public static function composeMatrix(x:Number = 0,
                                          y:Number = 0,
@@ -231,7 +251,7 @@
      *  @param y2 y coordinate of the third control point
      *  @param sx The pre-transform scale factor for x coordinates.
      *  @param sy The pre-transform scale factor for y coordinates.
-     *  @param matrix The transformation matrix.
+     *  @param matrix The transformation matrix. Can be null for identity transformation.
      *  @param rect If non-null, rect will be updated to the union of rect and
      *  the segment bounding box.
      *  @return Returns the union of the post-transformed quadratic
@@ -249,41 +269,50 @@
                                                  matrix:Matrix,
                                                  rect:Rectangle):Rectangle
     {
-        var pt0:Point = matrix.transformPoint(new Point(x0 * sx, y0 * sy));
-        var pt1:Point = matrix.transformPoint(new Point(x1 * sx, y1 * sy));
-        var pt2:Point = matrix.transformPoint(new Point(x2 * sx, y2 * sy));
-
-        var minX:Number = Math.min(pt0.x, pt2.x);
-        var maxX:Number = Math.max(pt0.x, pt2.x);
-
-        var minY:Number = Math.min(pt0.y, pt2.y);
-        var maxY:Number = Math.max(pt0.y, pt2.y);
-
-        var txDiv:Number = pt0.x - 2 * pt1.x + pt2.x;
-        if (txDiv != 0)
-        {
-            var tx:Number = (pt0.x - pt1.x) / txDiv;
-            if (0 <= tx && tx <= 1)
-            {
-                var x:Number = (1 - tx) * (1 - tx) * pt0.x + 2 * tx * (1 - tx) * pt1.x + tx * tx * pt2.x;
-                minX = Math.min(x, minX);
-                maxX = Math.max(x, maxX);
-            }
-        }
-
-        var tyDiv:Number = pt0.y - 2 * pt1.y + pt2.y;
-        if (tyDiv != 0)
-        {
-            var ty:Number = (pt0.y - pt1.y) / tyDiv;
-            if (0 <= ty && ty <= 1)
-            {
-                var y:Number = (1 - ty) * (1 - ty) * pt0.y + 2 * ty * (1 - ty) * pt1.y + ty * ty * pt2.y;
-                minY = Math.min(y, minY);
-                maxY = Math.max(y, maxY);
-            }
-        }
-
-        return rectUnion(minX, minY, maxX, maxY, rect);
+		var pt:Point;
+		pt = MatrixUtil.transformPoint(x0 * sx, y0 * sy, matrix);
+		x0 = pt.x;
+		y0 = pt.y;
+
+		pt = MatrixUtil.transformPoint(x1 * sx, y1 * sy, matrix);
+		x1 = pt.x;
+		y1 = pt.y;
+
+		pt = MatrixUtil.transformPoint(x2 * sx, y2 * sy, matrix);
+		x2 = pt.x;
+		y2 = pt.y;
+
+		var minX:Number = Math.min(x0, x2);
+		var maxX:Number = Math.max(x0, x2);
+
+		var minY:Number = Math.min(y0, y2);
+		var maxY:Number = Math.max(y0, y2);
+
+		var txDiv:Number = x0 - 2 * x1 + x2;
+		if (txDiv != 0)
+		{
+			var tx:Number = (x0 - x1) / txDiv;
+			if (0 <= tx && tx <= 1)
+			{
+				var x:Number = (1 - tx) * (1 - tx) * x0 + 2 * tx * (1 - tx) * x1 + tx * tx * x2;
+				minX = Math.min(x, minX);
+				maxX = Math.max(x, maxX);
+			}
+		}
+
+		var tyDiv:Number = y0 - 2 * y1 + y2;
+		if (tyDiv != 0)
+		{
+			var ty:Number = (y0 - y1) / tyDiv;
+			if (0 <= ty && ty <= 1)
+			{
+				var y:Number = (1 - ty) * (1 - ty) * y0 + 2 * ty * (1 - ty) * y1 + ty * ty * y2;
+				minY = Math.min(y, minY);
+				maxY = Math.max(y, maxY);
+			}
+		}
+
+		return rectUnion(minX, minY, maxX, maxY, rect);
     }

 	/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 1098
Author:   jimurphy@adobe.com
Date:     2008-04-03T21:50:39.896200Z

Log Message:
-----------
Merge 3.0.x -- 362:394, 427:429, 603:608, 644:645, 651:663, 672:676, 755:756, 763:766, 785:790, 812:814, 854:861, 862:866, 866:933,971:1009, 1050:1056 --> 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="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/DefaultDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IRepeaterClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/Locale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/SOAPMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IBrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ComponentDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IViewCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.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/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/IMenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ILayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Spacer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Fault.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/XMLListCollection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SliderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<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/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ScrollEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/CuePointManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/NumericStepperEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/CursorBookmark.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/LoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/FlexClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/SubscriptionInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/LogLogger.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/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</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/rpc/src/mx/rpc/events/HeaderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/build.xml</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/dataGridClasses/DataGridDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/ITreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
+++ frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
@@ -927,6 +927,9 @@
     * This method should be overriden by subclasses
     *
     * @param msg The message for which the existence of pending requests is checked.
+    *
+    * @return Returns true if there are any pending requests for the
+    * passed in message.
     */
     public function hasPendingRequestForMessage(msg:IMessage):Boolean
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 9914
Author:   aharui@adobe.com
Date:     2009-09-02T06:40:28.776053Z

Log Message:
-----------
Revert 9892.  Panel is used in too many other tests.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/WireframeClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ApplicationSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Panel.as
+++ frameworks/projects/spark/src/spark/components/Panel.as
@@ -89,10 +89,6 @@
     public function Panel()
     {
         super();
-
-        // default skin uses graphical dropshadow which
-        // we don't want to be hittable
-        mouseEnabled=false;
     }

     //--------------------------------------------------------------------------


changes to bitmap constructor parameters

Change-Id: Ifc8cc909c722e1a1e1abb7eb3e2f688763473705

--- WeaveUI/src/weave/visualization/layers/PlotLayer.as
+++ WeaveUI/src/weave/visualization/layers/PlotLayer.as
@@ -82,7 +82,7 @@
 			percentWidth = 100;
 			percentHeight = 100;

-			this.addChild(plotBitmap);
+			this.addChild(_plotBitmap);

 			// make selectionFilter appear in session state.
 			registerLinkableChild(this, selectionFilter);
@@ -104,7 +104,7 @@
 		{
 			// clean up everything that does not get cleaned up automatically.
 			disposeObjects(
-				plotBitmap.bitmapData
+				_plotBitmap.bitmapData
 			);
 			if (!usingExternalSpatialIndex)
 				disposeObjects(spatialIndex);
@@ -228,7 +228,7 @@
 		public var showMissingRecords:Boolean = false;

 		// these bitmaps will be added as a children
-		protected const plotBitmap:Bitmap = new Bitmap(null, PixelSnapping.AUTO, true);
+		private const _plotBitmap:Bitmap = new Bitmap(null, PixelSnapping.ALWAYS, false);

 		/**
 		 * @private
@@ -289,7 +289,7 @@
 		{
 			//trace("sizeChanged",unscaledWidth,unscaledHeight);

-			var bitmapChanged:Boolean = PlotterUtils.setBitmapDataSize(plotBitmap, unscaledWidth, unscaledHeight);
+			var bitmapChanged:Boolean = PlotterUtils.setBitmapDataSize(_plotBitmap, unscaledWidth, unscaledHeight);
 			if (bitmapChanged)
 				invalidateDisplayList();
 		}
@@ -320,18 +320,18 @@
 				validateSpatialIndex();

 			// draw plot
-			if (!PlotterUtils.bitmapDataIsEmpty(plotBitmap))
-			{
-				PlotterUtils.clear(plotBitmap.bitmapData);
+			if (!PlotterUtils.bitmapDataIsEmpty(_plotBitmap))
+			{
+				PlotterUtils.clear(_plotBitmap.bitmapData);
 				// get keys for plot, then draw the records

 				if (shouldDraw)
 				{
 					if (!isOverlay.value)
-						plotter.drawBackground(_dataBounds, _screenBounds, plotBitmap.bitmapData);
+						plotter.drawBackground(_dataBounds, _screenBounds, _plotBitmap.bitmapData);

 					var keys:Array = getSelectedKeys() || []; // use empty Array if keys are null
-					plotter.drawPlot(keys, _dataBounds, _screenBounds, plotBitmap.bitmapData);
+					plotter.drawPlot(keys, _dataBounds, _screenBounds, _plotBitmap.bitmapData);
 				}
 			}
 			//trace(name,'end updateDisplayList', _dataBounds);


Now nice.

Now nice.

git-svn-id: c197267f952b24206666de142881703007ca05d5@13259 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/data/stream/IBBDataExtension.as
+++ src/org/igniterealtime/xiff/data/stream/IBBDataExtension.as
@@ -98,7 +98,7 @@
 		public function get data():String
 		{
 			xml.normalize();
-			return xml.children().toXMLString().replace(" ", "");
+			return xml.children().toXMLString().replace(/\s/mg, "");
 		}
 		public function set data( value:String ):void
 		{


expose hls so we can bind to hlsevents in osmf implementation

--- src/org/mangui/osmf/plugins/traits/HLSNetStreamLoadTrait.as
+++ src/org/mangui/osmf/plugins/traits/HLSNetStreamLoadTrait.as
@@ -45,6 +45,10 @@
             return _time_total;
         }

+        public function get hls() : HLS {
+            return _hls;
+        }
+
         /**  **/
         private function _mediaTimeHandler(event : HLSEvent) : void {
             var time_total : Number = Math.round(10 * event.mediatime.duration) / 10;


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

--- frameworks/projects/mx/src/mx/containers/ControlBar.as
+++ frameworks/projects/mx/src/mx/containers/ControlBar.as
@@ -0,0 +1,250 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-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.containers
+{
+
+import mx.core.Container;
+import mx.core.ScrollPolicy;
+import mx.core.mx_internal;
+import mx.core.UIComponent;
+import mx.styles.IStyleClient;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="direction", kind="property")]
+[Exclude(name="horizontalScrollPolicy", kind="property")]
+[Exclude(name="verticalScrollPolicy", kind="property")]
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+
+[Exclude(name="backgroundColor", kind="style")]
+[Exclude(name="borderColor", kind="style")]
+[Exclude(name="borderSides", kind="style")]
+[Exclude(name="borderStyle", kind="style")]
+[Exclude(name="borderThickness", kind="style")]
+[Exclude(name="dropShadowColor", kind="style")]
+[Exclude(name="dropShadowEnabled", kind="style")]
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+[Exclude(name="shadowDirection", kind="style")]
+[Exclude(name="shadowDistance", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[IconFile("ControlBar.png")]
+
+/**
+ *  The ControlBar container lets you place controls
+ *  at the bottom of a Panel or TitleWindow container.
+ *  The <mx:ControlBar> tag must be the last child tag
+ *  of the enclosing tag for the Panel or TitleWindow container.
+ *
+ *
The ControlBar is a Box with a background
+ *  and default style properties.

+ *
+ *
A ControlBar container has the following default sizing characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           Height is the default or explicit height of the tallest child, plus the top and bottom padding of the container.
+ *               Width is large enough to hold all of its children at the default or explicit width of the children,
+ *               plus any horizontal gap between the children, plus the left and right padding of the container.
+ *

+ *

+ *           Default padding
+ *           10 pixels for the top, bottom, left, and right values.
+ *

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:ControlBar> tag inherits all the tag
+ *  attributes but adds no additional attributes:

+ *
+ *

+ *  <mx:ControlBar>
+ *    ...
+ *      child tags
+ *    ...
+ *  </mx:ControlBar>
+ *

+ *
+ *  @includeExample examples/SimpleControlBarExample.mxml
+ */
+public class ControlBar extends Box
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function ControlBar()
+	{
+		super();
+
+        // ControlBar defaults to direction="horizontal", but can be changed
+		// later if desired
+		direction = BoxDirection.HORIZONTAL;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  enabled
+	//----------------------------------
+
+    [Inspectable(category="General", enumeration="true,false", defaultValue="true")]
+
+	/**
+	 *  @private
+	 */
+	override public function set enabled(value:Boolean):void
+	{
+		if (value != super.enabled)
+		{
+			super.enabled = value;
+
+			// Since ControlBar typically has a transparent background and sits on top
+			// of a translucent part of the panel, we don't want the default overlay.
+			// Instead of the overlay, set the alpha value here.
+			alpha = value ? 1 : 0.4;
+		}
+	}
+
+	//----------------------------------
+	//  horizontalScrollPolicy
+	//----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  @private
+	 */
+	override public function get horizontalScrollPolicy():String
+	{
+		return ScrollPolicy.OFF;
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function set horizontalScrollPolicy(value:String):void
+	{
+		// A ControlBar never scrolls.
+		// Its horizontalScrollPolicy is initialized to "off" and can't be changed.
+	}
+
+	//----------------------------------
+	//  includeInLayout
+	//----------------------------------
+
+    [Inspectable(category="General", defaultValue="true")]
+
+	/**
+	 *  @private
+	 */
+	override public function set includeInLayout(value:Boolean):void
+	{
+		if (includeInLayout != value)
+		{
+			super.includeInLayout = value;
+
+			var p:Container = parent as Container;
+			if (p)
+				p.invalidateViewMetricsAndPadding();
+		}
+	}
+
+	//----------------------------------
+	//  verticalScrollPolicy
+	//----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  @private
+	 */
+	override public function get verticalScrollPolicy():String
+	{
+		return ScrollPolicy.OFF;
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function set verticalScrollPolicy(value:String):void
+	{
+		// A ControlBar never scrolls.
+		// Its verticalScrollPolicy is initialized to "off" and can't be changed.
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function invalidateSize():void
+	{
+		super.invalidateSize();
+
+		// Since controlbar isn't a "child" of Panel, we need to call
+		// invalidateViewMetricsAndPadding() here when our size is invalidated.
+		// This causes our parent Panel to adjust size.
+		if (parent)
+			Container(parent).invalidateViewMetricsAndPadding();
+	}
+
+	/**
+	 *  @private
+	 */
+	override protected function updateDisplayList(unscaledWidth:Number,
+												  unscaledHeight:Number):void
+	{
+		super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+		// Make sure we don't have an opaque background for the ControlBar,
+		// otherwise the background turns white.
+		if (contentPane)
+			contentPane.opaqueBackground = null;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16547
Author:   cframpto@adobe.com
Date:     2010-06-14T16:12:06.398660Z

Log Message:
-----------
The following changes apply to Spark DataGrid and Tree only.   Code reviews have been deferred until the implementation is closer to completion.

Move Han's implementation of Press-Drag-Release Mouse Gesture Handling from Grid to EventUtil.  The mini-spec is http://zerowing.corp.adobe.com/display/flex/Conventional+Press-Drag-Release+Mouse+Gesture+Handling.  This will be used by the ColumnHeaderBar as well.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/EventUtil.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -35,6 +35,7 @@
 import mx.events.SandboxMouseEvent;
 import mx.graphics.SolidColor;
 import mx.managers.IFocusManagerComponent;
+import mx.utils.EventUtil;
 import mx.utils.MatrixUtil;

 import spark.components.Button;
@@ -236,7 +237,10 @@
         overlayGroup.layout = new NullLayout();
         addElement(overlayGroup);

-        addDownDragUpHandler(this, grid_mouseDownDragUpHandler);
+        EventUtil.addDownDragUpListeners(this,
+                                        grid_mouseDownDragUpHandler,
+                                        grid_mouseDownDragUpHandler,
+                                        grid_mouseDownDragUpHandler);
         addEventListener(MouseEvent.MOUSE_MOVE, grid_mouseMoveHandler);
         addEventListener(MouseEvent.ROLL_OUT, grid_mouseRollOutHandler);
         addEventListener(MouseEvent.CLICK, grid_clickHandler);
@@ -1183,7 +1187,7 @@
         if (_typicalItem == value)
             return;

-        typicalItem = value;
+        _typicalItem = value;
         typicalItemChanged = true;

         invalidateProperties();
@@ -2300,59 +2304,7 @@
                 e.ctrlKey, e.altKey, e.shiftKey, e.buttonDown, e.delta);
         e.target.dispatchEvent(cancelableEvent);
     }
-
-    /**
-     *  @private
-     */
-    private static function addDownDragUpHandler(target:UIComponent, handler:Function):void
-    {
-        var f:Function = function(e:Event):void
-        {
-            var sbr:IEventDispatcher;
-            switch(e.type)
-            {
-                case MouseEvent.MOUSE_DOWN:
-                    if (e.isDefaultPrevented())
-                        break;
-                    handler(e);
-                    sbr = target.systemManager.getSandboxRoot();
-                    sbr.addEventListener(MouseEvent.MOUSE_MOVE, f, true);
-                    sbr.addEventListener(MouseEvent.MOUSE_UP, f, true );
-                    sbr.addEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, f, true);
-                    break;
-                case MouseEvent.MOUSE_MOVE:
-                    handler(e);
-                    break;
-                case MouseEvent.MOUSE_UP:
-                    handler(e);
-                    sbr = target.systemManager.getSandboxRoot();
-                    sbr.removeEventListener(MouseEvent.MOUSE_MOVE, f, true);
-                    sbr.removeEventListener(MouseEvent.MOUSE_UP, f, true);
-                    sbr.removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, f, true);
-                    break;
-                case "removeHandler":
-                    target.removeEventListener("removeHandler", f);
-                    target.removeEventListener(MouseEvent.MOUSE_DOWN, f);
-                    sbr = target.systemManager.getSandboxRoot();
-                    sbr.removeEventListener(MouseEvent.MOUSE_MOVE, f, true);
-                    sbr.removeEventListener(MouseEvent.MOUSE_UP, f, true);
-                    sbr.removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, f, true);
-                    break;
-            }
-        }
-        target.addEventListener(MouseEvent.MOUSE_DOWN, f);
-        target.addEventListener("removeHandler", f);
-    }
-
-    /**
-     *  @private
-     */
-    private static function removeDownDragUpHandler(target:UIComponent, handler:Function):void
-    {
-        target.dispatchEvent(new RemoveHandlerEvent(handler));
-    }
-
-
+
     //--------------------------------------------------------------------------
     //
     //  IList listeners: columns, dataProvider
@@ -2503,16 +2455,6 @@

 import spark.layouts.supportClasses.LayoutBase;

-class RemoveHandlerEvent extends flash.events.Event
-{
-    public var handler:Function;
-    public function RemoveHandlerEvent(handler:Function)
-    {
-        this.handler = handler;
-        super("removeHandler");
-    }
-}
-
 class NullLayout extends LayoutBase
 {
     public function NullLayout()


Removed debugging code

Removed debugging code


Replace a few tabs with spaces.

Replace a few tabs with spaces.


only push AVC HEADER in case of AVCC change this should minimize video decoder switching and freeze on Win7/Chrome

--- src/org/mangui/hls/demux/TSDemuxer.as
+++ src/org/mangui/hls/demux/TSDemuxer.as
@@ -625,12 +625,14 @@
             if (sps_found && pps_found) {
                 var avcc : ByteArray = AVCC.getAVCC(sps, ppsvect);
                 // only push AVCC tag if never pushed or avcc different from previous one
-                _avcc = avcc;
-                var avccTag : FLVTag = new FLVTag(FLVTag.AVC_HEADER, pes.pts, pes.dts, true);
-                avccTag.push(avcc, 0, avcc.length);
-                avccTag.build();
-                // Log.debug("TS:AVC:push AVC HEADER");
-                _tags.push(avccTag);
+                if (_avcc == null || !compareByteArray(_avcc, avcc)) {
+                    _avcc = avcc;
+                    var avccTag : FLVTag = new FLVTag(FLVTag.AVC_HEADER, pes.pts, pes.dts, true);
+                    avccTag.push(avcc, 0, avcc.length);
+                    avccTag.build();
+                    // Log.debug("TS:AVC:push AVC HEADER");
+                    _tags.push(avccTag);
+                }
             }

             /*
@@ -680,6 +682,26 @@
                     }
                 }
             }
+        }
+
+        // return true if same Byte Array
+        private function compareByteArray(ba1 : ByteArray, ba2 : ByteArray) : Boolean {
+            // compare the lengths
+            var size : uint = ba1.length;
+            if (ba1.length == ba2.length) {
+                ba1.position = 0;
+                ba2.position = 0;
+
+                // then the bytes
+                while (ba1.position < size) {
+                    var v1 : int = ba1.readByte();
+                    if (v1 != ba2.readByte()) {
+                        return false;
+                    }
+                }
+                return true;
+            }
+            return false;
         }

         /** parse ID3 PES packet **/


Test getUGCDownloadProgress

Test getUGCDownloadProgress

--- test/src/FRESteamWorksTest.as
+++ test/src/FRESteamWorksTest.as
@@ -366,6 +366,8 @@
 						ugcHandle = res.fileHandle;
 						apiCall = Steamworks.UGCDownload(res.fileHandle, 0);
 						log("UGCDownload(...) == " + apiCall);
+						var progress:Array = Steamworks.getUGCDownloadProgress(res.fileHandle);
+						log("getUGCDownloadProgress(...) == " + progress);
 					}
 					break;
 				case SteamConstants.RESPONSE_OnUGCDownload:


- change: removed ForcibleLoader from ImageResource

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

--- src/reprise/external/ImageResource.as
+++ src/reprise/external/ImageResource.as
@@ -11,7 +11,6 @@

 package reprise.external
 {
-	import org.libspark.utils.ForcibleLoader;
 	import flash.display.BitmapData;
 	import flash.display.DisplayObject;
 	import flash.display.Loader;
@@ -19,7 +18,7 @@
 	import flash.events.HTTPStatusEvent;
 	import flash.events.IOErrorEvent;
 	import flash.system.ApplicationDomain;
-	import flash.system.LoaderContext;
+	import flash.system.LoaderContext;
 	import flash.utils.getDefinitionByName;

 	public class ImageResource extends AbstractResource
@@ -30,7 +29,6 @@
 		protected var m_loader : Loader;
 		protected var m_resource : DisplayObject;
 		protected var m_attachMode : Boolean;
-		private var m_forcible : ForcibleLoader;

 		/***************************************************************************
@@ -131,10 +129,7 @@
 			m_loader.contentLoaderInfo.addEventListener(Event.INIT, loader_init);
 			m_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_error);
 			var context : LoaderContext = new LoaderContext(m_checkPolicyFile, ApplicationDomain.currentDomain);
-//			m_loader.load(m_request, context);
-//			m_loader.close();
-			m_forcible = new ForcibleLoader(m_loader);
-			m_forcible.load(m_request);
+			m_loader.load(m_request, context);
 		}

 		protected override function doCancel() : void


[swc] Fix off-by-one

[swc] Fix off-by-one

--- lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
+++ lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
@@ -212,7 +212,7 @@

 			var data:String = stdout.readUTFBytes(avail)
 			var newline:uint = data.indexOf("\n");
-			var buf:String = data.substring(newline);
+			var buf:String = data.substring(newline + 1);
 			var length:uint = parseInt(data.substring(0, newline), 10);

 			while(buf.length < length) {


Made possible rendering outside input texture bounds

--- extension/src/starling/textures/TextureProcessor.as
+++ extension/src/starling/textures/TextureProcessor.as
@@ -149,15 +149,15 @@

         var w:Number = texture.width, h:Number = texture.height;

-        mVertexData.setPosition(0, 0, 0);
-        mVertexData.setPosition(1, w, 0);
-        mVertexData.setPosition(2, 0, h);
-        mVertexData.setPosition(3, w, h);
+        mVertexData.setPosition(0, 0 - 10*w, 0 - 10*h);
+        mVertexData.setPosition(1, w + 10*w, 0 - 10*h);
+        mVertexData.setPosition(2, 0 - 10*w, h + 10*h);
+        mVertexData.setPosition(3, w + 10*w, h + 10*h);

-        mVertexData.setTexCoords(0, 0, 0);
-        mVertexData.setTexCoords(1, 1, 0);
-        mVertexData.setTexCoords(2, 0, 1);
-        mVertexData.setTexCoords(3, 1, 1);
+        mVertexData.setTexCoords(0, 0 - 10, 0 - 10);
+        mVertexData.setTexCoords(1, 1 + 10, 0 - 10);
+        mVertexData.setTexCoords(2, 0 - 10, 1 + 10);
+        mVertexData.setTexCoords(3, 1 + 10, 1 + 10);

         texture.adjustVertexData(mVertexData, 0, 4);


Transferred from the Adobe Open Source Subversion Repository

Revision: 8483
Author:   smgilson@adobe.com
Date:     2009-07-09T17:52:48.367800Z

Log Message:
-----------
Second checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Move.as
+++ frameworks/projects/spark/src/spark/effects/Move.as
@@ -48,7 +48,7 @@
  *  and adds the following tag attributes:

  *
  *

- *  <mx:Move
+ *  <s:Move
  *    id="ID"
  *    xBy="val"
  *    xFrom="val"


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/spark/src/spark/components/Image.as
+++ frameworks/projects/spark/src/spark/components/Image.as
@@ -203,7 +203,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="backgroundAlpha", type="Number", inherit="no", theme="spark", minValue="0.0", maxValue="1.0")]
+[Style(name="backgroundAlpha", type="Number", inherit="no", theme="spark, mobile", minValue="0.0", maxValue="1.0")]

 /**
  *  The background color for this component.
@@ -215,7 +215,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="backgroundColor", type="uint", format="Color", inherit="no", theme="spark")]
+[Style(name="backgroundColor", type="uint", format="Color", inherit="no", theme="spark, mobile")]

 /**
  *  When true, enables the 'loading' skin state.


Transferred from the Adobe Open Source Subversion Repository

Revision: 12107
Author:   clucier@adobe.com
Date:     2009-11-23T16:13:07.943548Z

Log Message:
-----------
Speed up label updates by 24% or so, by reusing our elementFormat when possible.
QE notes: None
Doc notes: None
Bugs: SDK-24260
Reviewer: Carol
Tests run: Spark List, Button, Label
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -349,6 +349,15 @@
      *  used to create the font.
      */
     private var embeddedFontContext:IFlexModuleFactory;
+
+    /**
+     *  @private
+     *  When we render the text using FTE, this object represents the formatting
+     *  for our text element(s). Every time format related styles change, this
+     *  object is released because it is invalid. It is regenerated just in time
+     *  to render the text.
+     */
+    private var elementFormat:ElementFormat;

     //--------------------------------------------------------------------------
     //
@@ -381,6 +390,30 @@
         _fontContext = value;
     }

+    //--------------------------------------------------------------------------
+    //
+    //  Overidden Methods: ISimpleStyleClient
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function stylesInitialized():void
+    {
+        super.stylesInitialized();
+        elementFormat = null;
+    }
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        super.styleChanged(styleProp);
+        elementFormat = null;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods: TextBase
@@ -398,18 +431,19 @@
      *  Returns true if all lines were composed, otherwise false.
      */
     override mx_internal function composeTextLines(width:Number = NaN,
-												   height:Number = NaN):Boolean
+                                                   height:Number = NaN):Boolean
     {
         super.composeTextLines(width, height);

-        var elementFormat:ElementFormat = createElementFormat();
+        if (!elementFormat)
+            elementFormat = createElementFormat();

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

-		// Create the TextLines.
-		var allLinesComposed:Boolean = createTextLines(elementFormat);
+        // Create the TextLines.
+        var allLinesComposed:Boolean = createTextLines(elementFormat);

         // Need truncation if all the following are true
         // - truncation options exist (0=no trunc, -1=fill up bounds then trunc,


Transferred from the Adobe Open Source Subversion Repository

Revision: 6456
Author:   chaase@adobe.com
Date:     2009-05-01T14:12:50.839815Z

Log Message:
-----------
"Final" rename of the transform-related effects - we are replacing the previous 'Rotate3D' effect (and its superclass, Animate3D) with the class formerly known as AnimateTransformRotate3D. The new class has all of the same functionality, but it is integrated in with the rest of the transform-related effects (effects which change transform properties should collude to avoid clobbering each others results). Some of the property names have changed to be more correct or descriptive, but the functionality should be the same.

QE Notes: Mustella tests on Rotate3D and AnimateTransformRotate3D will be broken until changes are made to adjust to the rename
Doc Notes: See follow-up sdk_api_change email for property name changes
Bugs:
Reviewers: Hans
Tests: checkintests (can not run related Mustella tests until related name changes are made)

Modified Paths:
--------------
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as" copyfrom-rev="6440" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate3D.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Rotate3D.as
+++ frameworks/projects/spark/src/spark/effects/Rotate3D.as
@@ -26,7 +26,7 @@
  * effect instance on any given target at a time, which means that they will
  * share the transform center set by any of the contributing effects.</p>
  */
-public class AnimateTransformRotate3D extends AnimateTransform
+public class Rotate3D extends AnimateTransform
 {
     include "../core/Version.as";

@@ -41,7 +41,7 @@
      *
      * @param target The Object to animate with this effect.
      */
-    public function AnimateTransformRotate3D(target:Object=null)
+    public function Rotate3D(target:Object=null)
     {
         super(target);
         applyLocalProjection = true;


reverted back to revision 261

reverted back to revision 261

--- fp10/src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
+++ fp10/src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
@@ -67,9 +67,8 @@

 			// Full naive cartesian scan, see what objects are behind child[i]
 			// TODO - screen space subdivision to limit dependency scan
-			var i:uint;
 			var max:uint = children.length;
-			for (i; i < max; ++i)
+			for (var i:uint = 0; i < max; ++i)
 			{
 				var behind:Array = [];

@@ -85,16 +84,11 @@
 				//var topA:Number = objA.isoZ + objA.isoHeight;

 				// TODO - getting bounds objects REALLY slows us down, too.  It creates a new one every time you ask for it!
-				/*var rightA:Number = objA.x + objA.width;
+				var rightA:Number = objA.x + objA.width;
 				var frontA:Number = objA.y + objA.length;
-				var topA:Number = objA.z + objA.height;*/
+				var topA:Number = objA.z + objA.height;

-				var rightA:Number = objA.isoX + objA.isoWidth;
-				var frontA:Number = objA.isoY + objA.isoLength;
-				var topA:Number = objA.isoZ + objA.isoHeight;
-
-				var j:uint;
-				for (j; j < max; ++j)
+				for (var j:uint = 0; j < max; ++j)
 				{
 					var objB:IsoDisplayObject = children[j];

@@ -103,9 +97,9 @@

 					// See if B should go behind A
 					// simplest possible check, interpenetrations also count as "behind", which does do a bit more work later, but the inner loop tradeoff for a faster check makes up for it
-					if ((objB.isoX < rightA) &&
-					    (objB.isoY < frontA) &&
-						(objB.isoZ < topA) &&
+					if ((objB.x < rightA) &&
+					    (objB.y < frontA) &&
+						(objB.z < topA) &&
 						(i !== j))
 					{
 						behind.push(objB);
@@ -121,13 +115,9 @@

 			// Set the childrens' depth, using dependency ordering
 			depth = 0;
-
-			var obj:IsoDisplayObject;
-			for each (obj in children)
-			{
+			for each (var obj:IsoDisplayObject in children)
 				if (true !== visited[obj])
 					place(obj);
-			}

 			// Clear out temporary dictionary so we're not retaining memory between calls
 			visited = new Dictionary();
@@ -154,13 +144,10 @@
 		{
 			visited[obj] = true;

-			var inner:IsoDisplayObject
-			for each(inner in dependency[obj])
-			{
-				if (true !== visited[inner])
+			for each(var inner:IsoDisplayObject in dependency[obj])
+				if(true !== visited[inner])
 					place(inner);
-			}
-
+
 			if (depth != obj.depth)
 			{
 				scene.setChildIndex(obj, depth);


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

--- frameworks/projects/airframework/src/mx/controls/FileSystemList.as
+++ frameworks/projects/airframework/src/mx/controls/FileSystemList.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-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.
 //
 ////////////////////////////////////////////////////////////////////////////////