Transferred from the Adobe Open Source Subversion Repository

Revision: 10955
Author:   jszeto@adobe.com
Date:     2009-10-09T19:34:12.315199Z

Log Message:
-----------
ComboBox initial checkin

The ComboBox component is similar to a DropDownList but has a TextInput instead of a Label. A user can type into the TextInput and the dropDown will scroll to and highlight the closest match.

Users are allowed to type in an item not found in the dataProvider. With this behavior, a ComboBox acts as a list of suggested values, while a DropDownList acts as a list of possible values.

The full spec is located here:
http://opensource.adobe.com/wiki/display/flexsdk/Spark+ComboBox

This checkin includes the following:
- All public APIs implemented
- All styles implemented (except for cornerRadius)
- Basic keyboard and mouse interaction working
- Spark and Wireframe skins implemented
- Added custom selectedItem support to ListBase

What is missing:
- The keyboard and mouse interactions are partially implemented.
- The TextInput caret and selection behaviors are not implemented
- The changing event is not cancellable if setting a custom selected item
- Need to refactor DropDownList into DropDownList and DropDownListBase

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Glenn
Tests run: List, DropDownList
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ComboBoxButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/WireframeClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</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/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxButtonSkin.mxml</path>

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

--- frameworks/projects/spark/src/SparkClasses.as
+++ frameworks/projects/spark/src/SparkClasses.as
@@ -36,6 +36,9 @@
 import spark.skins.spark.ButtonBarMiddleButtonSkin; ButtonBarMiddleButtonSkin;
 import spark.skins.spark.ButtonBarLastButtonSkin; ButtonBarLastButtonSkin;
 import spark.skins.spark.CheckBoxSkin; CheckBoxSkin;
+import spark.skins.spark.ComboBoxButtonSkin; ComboBoxButtonSkin;
+import spark.skins.spark.ComboBoxSkin; ComboBoxSkin;
+import spark.skins.spark.ComboBoxTextInputSkin; ComboBoxTextInputSkin;
 import spark.skins.spark.DefaultButtonSkin; DefaultButtonSkin;
 import spark.skins.spark.DefaultComplexItemRenderer; DefaultComplexItemRenderer;
 import spark.skins.spark.DefaultItemRenderer; DefaultItemRenderer;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.charts.events
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.charts.events
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/accessibility/AccImpl.as
+++ frameworks/projects/framework/src/mx/accessibility/AccImpl.as
@@ -33,6 +33,11 @@
  *  The AccImpl class is Flex's base class for implementing accessibility
  *  in UIComponents.
  *  It is a subclass of the Flash Player's AccessibilityImplementation class.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class AccImpl extends AccessibilityImplementation
 {
@@ -77,6 +82,11 @@

     /**
      *  Method for supporting Form Accessibility.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function getFormName(component:UIComponent):String
     {
@@ -162,6 +172,11 @@
      *
      *  @param master The UIComponent instance that this AccImpl instance
      *  is making accessible.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function AccImpl(master:UIComponent)
     {
@@ -195,11 +210,21 @@
     /**
      *  A reference to the UIComponent instance that this AccImpl instance
      *  is making accessible.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected var master:UIComponent;

     /**
      *  Accessibility role of the component being made accessible.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected var role:uint;

@@ -212,6 +237,11 @@
     /**
      *  All subclasses must override this function by returning an array
      *  of strings of the events to listen for.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function get eventsToHandle():Array
     {
@@ -301,6 +331,11 @@
      *  Returns the name of the accessible component.
      *  All subclasses must implement this
      *  instead of implementing get_accName().
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function getName(childID:uint):String
     {
@@ -309,6 +344,11 @@

     /**
      *  Utility method to determine state of the accessible component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function getState(childID:uint):uint
     {
@@ -370,6 +410,11 @@
      *  Generic event handler.
      *  All AccImpl subclasses must implement this
      *  to listen for events from its master component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function eventHandler(event:Event):void
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/framework/src/mx/managers/FocusManager.as
+++ frameworks/projects/framework/src/mx/managers/FocusManager.as
@@ -162,6 +162,8 @@
 		       	if (bridge)
 	    	   	{
 	       			bridge.addEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler);
+                    bridge.addEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST,
+                                            setShowFocusIndicatorRequestHandler);
 	       		}

 	   			// add listener activate/deactivate requests
@@ -173,7 +175,7 @@
 			   				    		    bridgeEventActivateHandler);
 	   			}

-	   			// listen when the contain has been added to the stage so we can add the focusable
+	   			// listen when the container has been added to the stage so we can add the focusable
 	   			// children
 	   			container.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
 			}
@@ -305,7 +307,12 @@
      */
     public function set showFocusIndicator(value:Boolean):void
     {
+        var changed:Boolean = _showFocusIndicator != value;
+
         _showFocusIndicator = value;
+
+        if (changed && !popup && form.systemManager.swfBridgeGroup)
+            dispatchSetShowFocusIndicatorRequest(value, null);
     }

     //----------------------------------
@@ -833,7 +840,7 @@
     /**
      *  @private
      */
-    private function sortByTabIndex(a:IFocusManagerComponent, b:IFocusManagerComponent):int
+    private function sortByTabIndex(a:InteractiveObject, b:InteractiveObject):int
     {
         var aa:int = a.tabIndex;
         var bb:int = b.tabIndex;
@@ -859,11 +866,12 @@
         var n:int = focusableObjects.length;
         for (var i:int = 0; i < n; i++)
         {
-            var c:IFocusManagerComponent = focusableObjects[i];
-            if (c.tabIndex && !isNaN(Number(c.tabIndex)))
+            var c:IFocusManagerComponent = focusableObjects[i] as IFocusManagerComponent;
+            if ((c && c.tabIndex && !isNaN(Number(c.tabIndex))) ||
+                 focusableObjects[i] is ISWFLoader)
             {
                 // if we get here, it is a candidate
-                focusableCandidates.push(c);
+                focusableCandidates.push(focusableObjects[i]);
             }
         }

@@ -1054,21 +1062,6 @@
         // trace("<<addFocusables " + o);
     }

-
-	/**
-	 * @private
-	 *
-	 * Test if the display object has a focus manager bridge.
-	 */
-	private function hasFocusManagerBridge(o:DisplayObject):Boolean
-	{
-		if (o is ISWFLoader &&
-			ISWFLoader(o).swfBridge != null)
-			return true;
-
-		return false;
-	}
-
     /**
      *  @private
      *  is it really tabbable?
@@ -1221,12 +1214,10 @@
 		focusChanged = false;
 		if (o)
 		{
-			// VERSION_SKEW
 			if (o is ISWFLoader && ISWFLoader(o).swfBridge)
 			{
 				// send message to child swf to move focus.
 				// trace("pass focus from " + this.form.systemManager.loaderInfo.url + " to " + DisplayObject(o).loaderInfo.url);
-
 	    		var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.MOVE_FOCUS_REQUEST,
 	    													false, true, null,
 	    													shiftKey ? FocusRequestDirection.BOTTOM :
@@ -1826,7 +1817,7 @@

         lastAction = "MOUSEDOWN";

-		fireActivatedFocusManagerEvent(null);
+		dispatchActivatedFocusManagerEvent(null);

 		lastActiveFocusManager = this;

@@ -1850,8 +1841,6 @@
 			return;
 		}

-		// make sure we are activate.
-//		internalActivate();
 		focusSetLocally = false;

     	var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event);
@@ -1888,7 +1877,7 @@
 	  	}

 		if (focusSetLocally)
-			fireActivatedFocusManagerEvent(null);
+			dispatchActivatedFocusManagerEvent(null);
     }

     private function focusRequestActivateHandler(event:Event):void
@@ -1918,8 +1907,27 @@
 		lastActiveFocusManager = null;
 		_lastFocus = null;

-		fireActivatedFocusManagerEvent(eObj);
+		dispatchActivatedFocusManagerEvent(eObj);
 	}
+
+    /**
+     *  @private
+     *
+     *  A request across a bridge from another FocusManager to change the
+     *  value of the setShowFocusIndicator property.
+     */
+    private function setShowFocusIndicatorRequestHandler(event:Event):void
+    {
+        // ignore messages we send to ourselves.
+        if (event is SWFBridgeRequest)
+            return;
+
+        var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event);
+        _showFocusIndicator = request.data;
+
+        // relay the message to parent and children
+        dispatchSetShowFocusIndicatorRequest(_showFocusIndicator, IEventDispatcher(event.target));
+    }

 	/**
 	 * This is called on the top-level focus manager and the parent focus
@@ -1952,7 +1960,9 @@

 		bridgedFocusManagers[bridge] = 1;
    		bridge.addEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler);
-   		bridge.addEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE,
+        bridge.addEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST,
+                                setShowFocusIndicatorRequestHandler);
+  		bridge.addEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE,
    				    		    bridgeEventActivateHandler);
 	}

@@ -1978,7 +1988,9 @@
 	    	throw new Error();		// should never get here.

    		bridge.removeEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler);
-   		bridge.removeEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE,
+        bridge.removeEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST,
+                                    setShowFocusIndicatorRequestHandler);
+  		bridge.removeEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE,
    					    		    bridgeEventActivateHandler);
 		if (bridgedFocusManagers)
 			delete bridgedFocusManagers[bridge];
@@ -2000,8 +2012,6 @@
 	}

 	/**
-	 * @return true if the focus manager contains any focus manager
-	 * 		   bridges.
 	 */
 	private function removeFromParentBridge(event:Event):void
 	{
@@ -2017,6 +2027,8 @@
 		    if (bridge)
 	    	{
 	       		bridge.removeEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler);
+                bridge.removeEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST,
+                                           setShowFocusIndicatorRequestHandler);
 	       	}

 	   		// add listener activate/deactivate requests
@@ -2035,9 +2047,9 @@
 	 *
 	 *  Send a message to the parent to move focus a component in the parent.
 	 *
-	 * @param shiftKey - if true move focus to a component
+	 *  @param shiftKey - if true move focus to a component
 	 *
-	 * @return true if focus moved to parent, false otherwise.
+	 *  @return true if focus moved to parent, false otherwise.
 	 */
     private function moveFocusToParent(shiftKey:Boolean):Boolean
     {
@@ -2056,10 +2068,10 @@
     }

     /**
-    * Get the bridge to the parent focus manager.
-    *
-    * @return parent bridge or null if there is no parent bridge.
-    */
+     *  Get the bridge to the parent focus manager.
+     *
+     *  @return parent bridge or null if there is no parent bridge.
+     */
     private function getParentBridge():IEventDispatcher
     {
     	var sm:ISystemManager = _form.systemManager;
@@ -2068,16 +2080,35 @@

 		return null;
     }
+
+
+    /**
+     *  @private
+     *
+     *  Send a request for all other focus managers to update
+     *  their ShowFocusIndicator property.
+     */
+    private function dispatchSetShowFocusIndicatorRequest(value:Boolean, skip:IEventDispatcher):void
+    {
+        var request:SWFBridgeRequest = new SWFBridgeRequest(
+                                            SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST,
+                                            false,
+                                            false,
+                                            null,   // bridge is set before it is dispatched
+                                            value);
+        var sm:ISystemManager = form.systemManager;
+        sm.dispatchEventFromSWFBridges(request, skip);
+    }

 	/**
-	 * @private
+	 *  @private
 	 *
-	 * Broadcast an ACTIVATED_FOCUS_MANAGER message.
+	 *  Broadcast an ACTIVATED_FOCUS_MANAGER message.
 	 *
-	 * @param eObj if a SandboxBridgeEvent, then propagate the message,
+	 *  @param eObj if a SandboxBridgeEvent, then propagate the message,
 	 * 			   if null, start a new message.
 	 */
-	private function fireActivatedFocusManagerEvent(eObj:Object):void
+	private function dispatchActivatedFocusManagerEvent(eObj:Object):void
 	{
 		// If in a popup, then don't send this message to non-popup
 		// focus managers that are part of the application.
@@ -2094,7 +2125,7 @@
 //			active.
 //	       	if (lastActiveFocusManager == this)
 //	       	{
-//	       		// trace("FM: fireActivatedFocusManagerEvent already active, skipping messages");
+//	       		// trace("FM: dispatchActivatedFocusManagerEvent already active, skipping messages");
 //	       		return;		// already active
 //	       	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19635
Author:   aharui@adobe.com
Date:     2011-01-07T00:25:18.039632Z

Log Message:
-----------
revert the layout changes from svn 18635.  Management feels that there isn't enough time to thoroughly test the changes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.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/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.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="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.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="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.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/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.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/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -14,18 +14,13 @@
 import flash.events.Event;
 import flash.geom.Point;
 import flash.geom.Rectangle;
-import flash.utils.Dictionary;

 import mx.containers.utilityClasses.Flex;
-import mx.core.FlexVersion;
-import mx.core.IInvalidating;
 import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
 import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
-import mx.events.FlexEvent;
 import mx.events.PropertyChangeEvent;
-import mx.managers.ILayoutManagerClient;

 import spark.components.DataGroup;
 import spark.components.supportClasses.GroupBase;
@@ -131,28 +126,6 @@
      */
     private var llv:LinearLayoutVector;

-    /**
-     *  @private
-     *  total percentages of children.  used to calculate estimatedHeight
-     */
-    private var totalPercentHeight:Number;
-
-    /**
-     *  @private
-     *  actual space that is flexible.  used to calculate estimatedHeight
-     */
-    private var flexibleHeight:Number;
-
-    /**
-     *  @private
-     */
-    private var lastEstimatedWidth:Number;
-
-    /**
-     *  @private
-     */
-    private var inUpdateDisplayListVirtual:Boolean;
-
     //--------------------------------------------------------------------------
     //
     //  Class methods
@@ -221,21 +194,6 @@

     //--------------------------------------------------------------------------
     //
-    //  Variables
-    //
-    //--------------------------------------------------------------------------
-
-    // used to communicate between the loop and the event handlers
-    private var dontCacheMeasurements:Boolean;
-    private var notFinalTargets:Array;
-
-    // indexes that have reported that a size should not be cached
-    private var notFinalIndexes:Array;
-    // components that have reported that they are not final
-    private var notFinalComponents:Dictionary;
-
-    //--------------------------------------------------------------------------
-    //
     //  Properties
     //
     //--------------------------------------------------------------------------
@@ -368,14 +326,7 @@

         var layoutTarget:GroupBase = target;
         if (layoutTarget)
-        {
-            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-            {
-                layoutTarget.invalidateSize();
-                layoutTarget.invalidateEstimatedSizesOfChildren();
-            }
             layoutTarget.invalidateDisplayList();
-        }
     }

     //----------------------------------
@@ -894,56 +845,6 @@
     }

     //----------------------------------
-    //  target
-    //----------------------------------
-
-    private var _target:GroupBase;
-
-    /**
-     * @private
-     */
-    override public function set target(value:GroupBase):void
-    {
-        if (_target == value)
-            return;
-
-        if (_target)
-        {
-            if (useVirtualLayout)
-                _target.removeEventListener(FlexEvent.MEASURED_SIZE_PRELIMINARY, measuredSizePreliminaryHandler);
-        }
-        _target = value;
-        super.target = value;
-        if (value)
-        {
-            if (useVirtualLayout)
-                value.addEventListener(FlexEvent.MEASURED_SIZE_PRELIMINARY, measuredSizePreliminaryHandler, false, 0, true);
-        }
-    }
-
-    //----------------------------------
-    //  useVirtualLayout
-    //----------------------------------
-
-    /**
-     * @private
-     */
-    override public function set useVirtualLayout(value:Boolean):void
-    {
-        if (_useVirtualLayout == value)
-            return;
-
-        if (_target)
-        {
-            if (value)
-                _target.addEventListener(FlexEvent.MEASURED_SIZE_PRELIMINARY, measuredSizePreliminaryHandler, false, 0, true);
-            else
-                _target.removeEventListener(FlexEvent.MEASURED_SIZE_PRELIMINARY, measuredSizePreliminaryHandler);
-        }
-        super.useVirtualLayout = value;
-    }
-
-    //----------------------------------
     //  typicalLayoutElementBaselinePosition
     //----------------------------------

@@ -963,44 +864,6 @@
     //  Methods
     //
     //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     *  customize handling of a few cases
-     */
-    override protected function estimateSizeOfElement(layoutElement:ILayoutElement,
-                                                               percentWidth:Number,
-                                                               percentHeight:Number,
-                                                               parentEstimatedWidth:Number,
-                                                               parentEstimatedHeight:Number,
-                                                               estimatedSize:Point):void
-    {
-        super.estimateSizeOfElement(layoutElement,
-                                            percentWidth,
-                                            percentHeight * 100 / totalPercentHeight,
-                                            parentEstimatedWidth,
-                                            flexibleHeight,
-                                            estimatedSize);
-        if (isNaN(estimatedSize.x))
-        {
-            var c:Number = target.estimatedWidth;
-            if (isNaN(c) && !isNaN(target.explicitWidth))
-                c = target.explicitWidth;
-            if (!isNaN(c))
-            {
-                // if horizontalAlign is "justify" or "contentJustify",
-                // restrict the width to restrictedWidth.  Otherwise,
-                // size it normally
-                if (horizontalAlign == HorizontalAlign.JUSTIFY)
-                    estimatedSize.x = c;
-            }
-            else
-            {
-                if (!isNaN(layoutElement.percentWidth) && !isNaN(target.width) && target.width > 0)
-                    estimatedSize.x = calculatePercentWidth(layoutElement, target.width);
-            }
-        }
-    }

     /**
      *  @private
@@ -1023,66 +886,7 @@
     override public function clearVirtualLayoutCache():void
     {
         llv = null;
-    }
-
-    /**
-     * @private
-     * if the estimatedSize changed, toss the cached sizes
-     */
-    override public function estimateSizesOfElements():void
-    {
-        if (llv && target.estimatedWidth != lastEstimatedWidth && llv.minorSizeBasedOnLayoutSize)
-        {
-            llv.minorSize = 0;
-            llv.minMinorSize = 0;
-        }
-        lastEstimatedWidth = target.estimatedWidth;
-
-        var size:SizesAndLimit = new SizesAndLimit();
-        var spaceToDistribute:Number = !isNaN(target.explicitHeight) ? target.explicitHeight : target.estimatedHeight;
-        spaceToDistribute -= paddingTop + paddingBottom;
-        totalPercentHeight = useVirtualLayout ? 100 : 0;
-		if (!useVirtualLayout)
-		{
-	        var layoutElement:ILayoutElement;
-
-	        // columnWidth can be expensive to compute
-	        var ch:Number = (variableRowHeight) ? NaN : Math.ceil(rowHeight);
-	        var count:int = target.numElements;
-	        var totalCount:int = count; // number of elements to use in gap calculation
-
-	        // If the child is flexible, track total % in case of total %'s
-	        // add up to more than 100.
-	        // For non-flexible children, take its size away from the total amount
-	        // of flexible room
-	        for (var index:int = 0; index < count; index++)
-	        {
-	            layoutElement = target.getElementAt(index);
-	            if (!layoutElement || !layoutElement.includeInLayout)
-	            {
-	                totalCount--;
-	                continue;
-	            }
-
-	            if (!isNaN(layoutElement.percentHeight) && variableRowHeight)
-	            {
-	                totalPercentHeight += layoutElement.percentHeight;
-	            }
-	            else
-	            {
-	                getElementHeight(layoutElement, ch, size);
-	                spaceToDistribute -= Math.ceil(size.preferredSize);
-	            }
-	        }
-
-	        if (totalCount > 1)
-	            spaceToDistribute -= (totalCount-1) * gap;
-
-	        flexibleHeight = spaceToDistribute;
-		}
-
-        super.estimateSizesOfElements();
-    }
+    }

     /**
      *  @private
@@ -1582,9 +1386,6 @@
         var typicalElt:ILayoutElement = typicalLayoutElement;
         if (typicalElt)
         {
-            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-                if (typicalElt is ILayoutManagerClient)
-                    UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(typicalElt), true);
             var typicalWidth:Number = typicalElt.getPreferredBoundsWidth();
             var typicalHeight:Number = typicalElt.getPreferredBoundsHeight();
             llv.defaultMinorSize = typicalWidth;
@@ -1658,7 +1459,6 @@
             // paddingTop is already taken into account as the majorAxisOffset of the llv
             // Measured size according to the cached actual size:
             var measuredHeight:Number = llv.end(measuredEltCount - 1) + paddingBottom;
-            var measuredWidth:Number = llv.minorSize + hPadding;

             // For the live ItemRenderers use the preferred size
             // instead of the cached actual size:
@@ -1673,17 +1473,12 @@
                     {
                         measuredHeight -= llv.getMajorSize(i);
                         measuredHeight += element.getPreferredBoundsHeight();
-                        measuredWidth = Math.max(measuredWidth, element.getPreferredBoundsWidth() + hPadding);
                     }
                 }
             }

             layoutTarget.measuredHeight = measuredHeight;
-            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-                layoutTarget.measuredWidth = measuredWidth;
-            else
-                layoutTarget.measuredWidth = llv.minorSize + hPadding;
-
+
             if (oldLength != -1)
                 llv.length = oldLength;
         }
@@ -1691,8 +1486,8 @@
         {
             var vgap:Number = (measuredEltCount > 1) ? (measuredEltCount - 1) * gap : 0;
             layoutTarget.measuredHeight = (measuredEltCount * rowHeight) + vgap + vPadding;
-            layoutTarget.measuredWidth = llv.minorSize + hPadding;
-        }
+        }
+        layoutTarget.measuredWidth = llv.minorSize + hPadding;

         layoutTarget.measuredMinWidth = (horizontalAlign == HorizontalAlign.JUSTIFY) ?
                 llv.minMinorSize + hPadding : layoutTarget.measuredWidth;
@@ -1997,7 +1792,7 @@
         var startIndex:int = llv.indexOf(Math.max(0, minVisibleY + gap));
         if (startIndex == -1)
             return;
-
+
         var fixedRowHeight:Number = NaN;
         if (!variableRowHeight)
             fixedRowHeight = rowHeight;  // may query typicalLayoutElement, elt at index=0
@@ -2010,85 +1805,24 @@
         var y:Number = llv.start(startIndex);
         var index:int = startIndex;
         var x0:Number = paddingLeft;
-
-		var w:Number;
-		var h:Number;
-		var elt:ILayoutElement;

         // First pass: compute element x,y,width,height based on
         // current contentWidth; cache computed widths/heights in llv.
         for (; (y < maxVisibleY) && (index < eltCount); index++)
         {
-            // reset this flag so components like Image can tell us
-            // not to cache measurements
-            dontCacheMeasurements = false;
-            // reset this array so we can find out what components are
-            // not final
-			if (!notFinalTargets)
-				notFinalTargets = [];
-			// request element, but skip validation (especially of the displaylist)
-            elt = layoutTarget.getVirtualElementAt(index, eltWidth, eltHeight, true);
-			// then validate everything but the displaylist so there are valid
-			// default size
-			if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-				if (elt is ILayoutManagerClient)
-					UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(elt), true);
-            w = calculateElementWidth(elt, targetWidth, containerWidth); // can be NaN
-            h = fixedRowHeight; // NaN for variable height rows
+            var elt:ILayoutElement = layoutTarget.getVirtualElementAt(index, eltWidth, eltHeight);
+            var w:Number = calculateElementWidth(elt, targetWidth, containerWidth); // can be NaN
+            var h:Number = fixedRowHeight; // NaN for variable height rows
             elt.setLayoutBoundsSize(w, h);
-            w = elt.getLayoutBoundsWidth();
+            w = elt.getLayoutBoundsWidth();
             h = elt.getLayoutBoundsHeight();
             var x:Number = x0 + calculateElementX(elt, w, containerWidth);
             elt.setLayoutBoundsPosition(x, y);
-			// this flag potentially set by an event dispatched in the previous lines of code
-            if (dontCacheMeasurements)
-            {
-                // associate the index with the target
-                // so if the target is recycled to another
-                // index we know the current index
-                for each (var t:* in notFinalTargets)
-				{
-					if (!notFinalComponents)
-						notFinalComponents = new Dictionary(true);
-					notFinalComponents[t] = index;
-
-				}
-                notFinalTargets.length = 0;
-				if (!notFinalIndexes)
-					notFinalIndexes = [];
-                // remember that this index didn't want to be cached
-                notFinalIndexes[index] = index;
-            }
-            else
-            {
-                if (notFinalIndexes && notFinalIndexes[index] != null)
-                {
-                    // we were previously told not to cache measurements.
-                    // clear it from the table.  We'll put it back in
-                    // if needed
-                    notFinalIndexes[index] = null;
-                    // scan the components that have dispatched a notFinal
-                    // to see if any are associated with this index
-                    for each(var p:* in notFinalComponents)
-                    {
-                        if (p == index)
-                        {
-                            // still a component that isn't final
-                            // so re-add it
-                            notFinalIndexes[index] = index;
-                            break;
-                        }
-                    }
-                    if (notFinalIndexes[index] == null)
-                        llv.cacheDimensions(index, elt);
-                }
-                else
-                    llv.cacheDimensions(index, elt);
-            }
+            llv.cacheDimensions(index, elt);
             y += h + gap;
         }
         var endIndex:int = index - 1;
-
+
         // Second pass: if neccessary, fix up x and width values based
         // on the updated contentWidth
         if (!justifyWidths && (llv.minorSize != contentWidth))
@@ -2099,7 +1833,7 @@
             {
                 for (index = startIndex; index <= endIndex; index++)
                 {
-                    elt = layoutTarget.getVirtualElementAt(index, NaN, NaN, true);
+                    elt = layoutTarget.getVirtualElementAt(index, eltWidth, eltHeight);
                     w = calculateElementWidth(elt, targetWidth, containerWidth);  // can be NaN
                     elt.setLayoutBoundsSize(w, elt.getLayoutBoundsHeight());
                     w = elt.getLayoutBoundsWidth();
@@ -2129,12 +1863,13 @@
             {
                 for (index = startIndex; index <= endIndex; index++)
                 {
-                    elt = layoutTarget.getVirtualElementAt(index, NaN, NaN, true);
+                    elt = layoutTarget.getVirtualElementAt(index, NaN, NaN);
                     elt.setLayoutBoundsPosition(elt.getLayoutBoundsX(), dy + elt.getLayoutBoundsY());
                 }
                 contentHeight += dy;
             }
         }
+
         setRowCount(index - startIndex);
         setIndexInView(startIndex, endIndex);

@@ -2369,20 +2104,11 @@
             if (layoutTarget.numElements == 0)
                 layoutTarget.setContentSize(Math.ceil(paddingLeft + paddingRight),
                                             Math.ceil(paddingTop + paddingBottom));
-            if (notFinalTargets)
-                notFinalTargets.length = 0;
             return;
         }

         if (useVirtualLayout)
-        {
-            inUpdateDisplayListVirtual = true;
             updateDisplayListVirtual();
-            inUpdateDisplayListVirtual = false;
-
-            if (notFinalTargets)
-                notFinalTargets.length = 0;
-        }
         else
             updateDisplayListReal();
     }
@@ -2409,43 +2135,7 @@
         g.invalidateSize();
         g.invalidateDisplayList();
     }
-
-    /**
-     *  React to indications that measurements are not final
-     *  and should not be cached
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    private function measuredSizePreliminaryHandler(event:FlexEvent):void
-    {
-        if (!inUpdateDisplayListVirtual)
-            return;
-
-        event.target.addEventListener(FlexEvent.MEASURED_SIZE_FINAL, measuredSizeFinalHandler, false, 0, true);
-		if (!notFinalTargets)
-			notFinalTargets = [];
-        notFinalTargets.push(event.target);
-        dontCacheMeasurements = true;
-    }
-
-    /**
-     *  React to indications that measurements are final
-     *  and can be cached
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    private function measuredSizeFinalHandler(event:FlexEvent):void
-    {
-		if (notFinalComponents)
-        	delete notFinalComponents[event.target];
-    }
-
+
     //--------------------------------------------------------------------------
     //
     //  Drop methods


Tweak buffering strategy.

Tweak buffering strategy.

--- src/goplayer/Player.as
+++ src/goplayer/Player.as
@@ -87,8 +87,10 @@

     private function handleBufferingFinished() : void
     {
-      useLargeBuffer()
       _buffering = false
+
+      // Make sure to let playback resume first.
+      later(useLargeBuffer)
     }

     public function handleBufferEmptied() : void
@@ -105,6 +107,9 @@
       _buffering = true
     }

+    private function useStartBuffer() : void
+    { stream.bufferTime = START_BUFFER }
+
     private function useSmallBuffer() : void
     { stream.bufferTime = SMALL_BUFFER }

@@ -156,7 +161,10 @@
     { return stream ? stream.playheadPosition : Duration.ZERO }

     public function set playheadPosition(value : Duration) : void
-    { stream.playheadPosition = value }
+    {
+      useStartBuffer()
+      stream.playheadPosition = value
+    }

     public function seekBy(delta : Duration) : void
     { playheadPosition = playheadPosition.plus(delta) }


Transferred from the Adobe Open Source Subversion Repository

Revision: 21319
Author:   build@adobe.com
Date:     2011-06-01T17:45:41.136089Z

Log Message:
-----------
Version update to 4.5.2

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/airspark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_air/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/flex-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_spark/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark_dmv/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/rpc/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/charts/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_flashflexkit/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_dmv/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/build.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/modules/compiler/src/java/flex2/tools/VersionInfo.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/airframework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/advancedgrids/src/mx/core/Version.as</path>

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

--- frameworks/projects/rpc/src/mx/core/Version.as
+++ frameworks/projects/rpc/src/mx/core/Version.as
@@ -14,4 +14,4 @@
  *  @private
  *  Version string for this class.
  */
-mx_internal static const VERSION:String = "4.5.1.0";
+mx_internal static const VERSION:String = "4.5.2.0";


ps: dispatch relatedItemClicked when list item changes.

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@87750 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- plugins/listPlugin/src/listPluginCode.as
+++ plugins/listPlugin/src/listPluginCode.as
@@ -93,6 +93,7 @@
 		public function onListChange( evt:Event ):void
 		{
 			_dataProvider.selectedIndex = _klist.selectedIndex;
+			_facade.sendNotification("relatedItemClicked", {index: _klist.selectedIndex});
 			_klist.scrollToSelected();

 		}
@@ -128,7 +129,6 @@
 				_dataProvider = data as IDataProvider;
 				_dataProvider.addEventListener( Event.CHANGE, onDataProviderItemChange, false, 0, true );
 				_klist.dataProvider = data;
-
 			}
 		}


TextureCreator -> ImageCreator

TextureCreator -> ImageCreator

Textures are not display objects.

--- runtime/src/main/as/flump/display/StarlingResources.as
+++ runtime/src/main/as/flump/display/StarlingResources.as
@@ -80,15 +80,15 @@
     public function createMovie (symbol :String) :Movie { return Movie(idToDisplayObject(symbol)); }

    /**
-    * Creates a texture for the given symbol.
+    * Creates an image for the given symbol.
     *
-    * @param symbol the symbol name of the texture to be created
+    * @param symbol the symbol name of the image to be created
     *
     * @return a DisplayObject instance for the symbol
     *
     * @throws Error if there is no such symbol in these resources, or if the symbol isn't a texture.
     */
-    public function createTexture (symbol :String) :DisplayObject {
+    public function createImage (symbol :String) :DisplayObject {
         const disp :DisplayObject = DisplayObject(idToDisplayObject(symbol));
         // TODO - add loadDisplayObject to load either if the user doesn't care?
         if (disp is Movie) throw new Error(symbol + " is a movie, not a texture");
@@ -108,7 +108,7 @@
     public function get textureSymbols () :Vector.<String> {
         const names :Vector.<String> = new Vector.<String>();
         for (var creatorName :String in _creators) {
-            if (_creators[creatorName] is TextureCreator) names.push(creatorName);
+            if (_creators[creatorName] is ImageCreator) names.push(creatorName);
         }
         return names;
     }
@@ -203,11 +203,10 @@
         atlasFuture.succeeded.add(function (img :LoadedImage) :void {
             const baseTexture :Texture = Texture.fromBitmapData(img.bitmapData);
             for each (var atlasTexture :AtlasTextureMold in atlas.textures) {
-                const creator :TextureCreator = new TextureCreator();
-                creator.offset = atlasTexture.offset;
-                creator.texture = Texture.fromTexture(baseTexture, atlasTexture.bounds);
-                creator.symbol = atlasTexture.symbol;
-                _creators[atlasTexture.symbol] = creator;
+                _creators[atlasTexture.symbol] = new ImageCreator(
+                    Texture.fromTexture(baseTexture, atlasTexture.bounds),
+                    atlasTexture.offset,
+                    atlasTexture.symbol);
             }
         });
     }
@@ -215,10 +214,7 @@
     protected function onPngLoadingComplete (..._) :void {
         for each (var movie :MovieMold in _lib.movies) {
             movie.fillLabels();
-            var creator :MovieCreator = new MovieCreator();
-            creator.frameRate = _lib.frameRate;
-            creator.mold = movie;
-            _creators[movie.id] = creator;
+            _creators[movie.id] = new MovieCreator(movie, _lib.frameRate);
         }
         _future.succeed(new StarlingResources(_creators));
     }
@@ -236,21 +232,31 @@
     protected var _zip :FZip = new FZip();
     protected var _lib :LibraryMold;

-    protected const _creators :Dictionary = new Dictionary();//<name, TextureCreator/MovieCreator>
+    protected const _creators :Dictionary = new Dictionary();//<name, ImageCreator/MovieCreator>
     protected const _pngBytes :Dictionary = new Dictionary();//<String name, ByteArray>
     protected const _pngLoaders :Executor = new Executor(1);
 }
+
 import flash.geom.Point;
+
+import flump.display.Movie;
+import flump.mold.MovieMold;

 import starling.display.DisplayObject;
 import starling.display.Image;
 import starling.display.Sprite;
 import starling.textures.Texture;

-class TextureCreator {
+class ImageCreator {
     public var texture :Texture;
     public var offset :Point;
     public var symbol :String;
+
+    public function ImageCreator (texture :Texture, offset :Point, symbol :String) {
+        this.texture = texture;
+        this.offset = offset;
+        this.symbol = symbol;
+    }

     public function create (..._) :DisplayObject {
         const image :Image = new Image(texture);
@@ -262,15 +268,16 @@
         return holder;
     }
 }
-import flump.display.Movie;
-import flump.mold.MovieMold;
-
-import starling.display.DisplayObject;

 class MovieCreator {
     public var frameRate :Number;
     public var mold :MovieMold;

+    public function MovieCreator (mold :MovieMold, frameRate :Number) {
+        this.mold = mold;
+        this.frameRate = frameRate;
+    }
+
     public function create (idToDisplayObject :Function) :DisplayObject {
         return new Movie(mold, frameRate, idToDisplayObject);
     }


Revert "FEC-4460"

Revert "FEC-4460"

This reverts commit aa222d72bcd7871ccbfa597ced55bbffaeef4c67.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -518,7 +518,7 @@
 			if(_timeCache_liveEdge != Number.MAX_VALUE)
 			{
 				//trace(" minus " + _timeCache_liveEdgeMinusWindowDuration);
-			//	potentialNewTime -= _timeCache_liveEdgeMinusWindowDuration;
+				potentialNewTime -= _timeCache_liveEdgeMinusWindowDuration;
 			}

 			// Update cache as appropriate.


give/Take saving

give/Take saving

--- flexEditor/src/org/arisgames/editor/view/PlayerStateChangesEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/PlayerStateChangesEditorView.as
@@ -132,7 +132,6 @@
 			dg.editedItemRenderer.data = st;
 			var newAd:Number = PlayerStateChangesItemComboBoxMX(DataGrid(evt.target).itemEditorInstance).cbo.selectedItem.data;

-
 			// Close the cell editor.
 			dg.destroyItemEditor();

@@ -142,20 +141,22 @@

 			// Notify the list control to update its display.
 			pscs.refresh();
-
-
-
-
-
+
 		}

 		if (DataGrid(evt.target).itemEditorInstance is PlayerStateChangesEditorActionRendererMX)
 		{
+			trace("PlayerStateChangeEditorView: Event CBO");
 			evt.preventDefault();

 			// Get new requirement from editor for renderer to display
 			st = PlayerStateChangesEditorActionRendererMX(DataGrid(evt.target).itemEditorInstance).cbo.text;
 			dg.editedItemRenderer.data = st;
+			psc.actionHuman = st;
+			trace("PlayerStateChangeEditorView: st:" + st);
+
+
+
 		}


remove duplicate definition of Camera.project() and set the tmp Vector4 as a private static const

--- src/aerys/minko/scene/node/camera/Camera.as
+++ src/aerys/minko/scene/node/camera/Camera.as
@@ -18,9 +18,9 @@
 	public class Camera extends AbstractCamera
 	{
 		public static const DEFAULT_FOV		: Number	= Math.PI * .25;
+
+        private static const TMP_VECTOR4    : Vector4   = new Vector4();

-		private var _tmpVector:Vector4 = new Vector4();
-
 		public function get fieldOfView() : Number
 		{
 			return _cameraData.fieldOfView;
@@ -83,23 +83,12 @@
 			var width			: Number		= sceneBindings.getProperty('viewportWidth');
 			var height			: Number		= sceneBindings.getProperty('viewportHeight');
 			var translation		: Vector4		= localToWorld.getTranslation();
-			var screenPosition	: Vector4		= _cameraData.worldToScreen.projectVector(translation, _tmpVector);
-			output.x 							= width * ((screenPosition.x + 1.0) * .5);
-			output.y							= height * ((1.0 - ((screenPosition.y + 1.0) * .5)));
-
-			return output;
-		}
-
-		public function projectPoint(point : Vector4, output : Point = null) : Point
-		{
-			output ||= new Point();
-
-			var sceneBindings	: DataBindings	= (root as Scene).bindings;
-			var width			: Number		= sceneBindings.getProperty('viewportWidth');
-			var height			: Number		= sceneBindings.getProperty('viewportHeight');
-			var screenPosition	: Vector4		= _cameraData.worldToScreen.projectVector(point, _tmpVector);
-			output.x 							= width * ((screenPosition.x + 1.0) * .5);
-			output.y							= height * ((1.0 - ((screenPosition.y + 1.0) * .5)));
+			var screenPosition	: Vector4		= _cameraData.worldToScreen.projectVector(
+                translation, TMP_VECTOR4
+            );
+
+			output.x = width * ((screenPosition.x + 1.0) * .5);
+			output.y = height * ((1.0 - ((screenPosition.y + 1.0) * .5)));

 			return output;
 		}


New method to allow a command button to be activated, emulating a user click

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@676 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flex/CommandButton.as
+++ src/as/com/threerings/flex/CommandButton.as
@@ -69,6 +69,14 @@
         _arg = arg;
     }

+    /**
+     * Emulate a user click, dispatching all relevant events.
+     */
+    public function activate () :void
+    {
+        dispatchEvent(new MouseEvent(MouseEvent.CLICK));
+    }
+
     override public function set enabled (val :Boolean) :void
     {
         super.enabled = val;


add default value = false for the normalize argument of VertexStream.applyTransform()

--- src/aerys/minko/render/geometry/stream/VertexStream.as
+++ src/aerys/minko/render/geometry/stream/VertexStream.as
@@ -444,7 +444,7 @@
 		 */
 		public function applyTransform(component	: VertexComponent,
 									   transform	: Matrix4x4,
-									   normalize	: Boolean) : void
+									   normalize	: Boolean	= false) : void
 		{
 			if (component.numProperties != 3)
 				throw new Error('Vertex component \'' + component.toString() + '\' does not have a size of 3.');


Corrected generated file

Corrected generated file

git-svn-id: 27326a786375daad9d33dc990c6f272e4c8f567c@166 fda5f131-174c-0410-8613-e0905860106b


Transferred from the Adobe Open Source Subversion Repository

Revision: 12380
Author:   smgilson@adobe.com
Date:     2009-12-02T18:37:15.838623Z

Log Message:
-----------
ASDoc edits in preparation for localization

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DisplayLayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarHorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
@@ -47,7 +47,9 @@
 [SkinState("inactive")]

 /**
- *  @copy spark.components.supportClasses.GroupBase#symbolColor
+ *  @copy spark.components.supportClasses.GroupBase#style:symbolColor
+ *
+ *  @default 0x000000
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -77,7 +79,7 @@
  *  VScrollBar make the thumb visible if it's smaller than
  *  the track, unless this style is false.
  *
- *  Set this style to false to control thumb visiblity directly.
+ *  Set this style to false to control thumb visibility directly.
  *
  *  @default true
  *
@@ -174,7 +176,7 @@
  *  <s:ScrollBarBase
  *    Properties
  *    pageSize="20"
- *    snapInterval=""
+ *    snapInterval="1"
  *    viewport="null"
  *
  *    Styles
@@ -183,7 +185,7 @@
  *    repeatDelay="500"
  *    repeatInterval="35"
  *    smoothScrolling="true"
- *    symbolColor=""
+ *    symbolColor="0x000000"
  *  />
  *

  *  @see spark.core.IViewport
@@ -367,6 +369,8 @@

     /**
      *  @inheritDoc
+     *
+     *  @default 1
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -852,7 +856,7 @@
     {
         if (steppingDown || steppingUp)
         {
-        	// stopAnimation will not dispatch a changeEnd.
+            // stopAnimation will not dispatch a changeEnd.
             stopAnimation();

             dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));


Transferred from the Adobe Open Source Subversion Repository

Revision: 18797
Author:   dloverin@adobe.com
Date:     2010-11-23T12:37:29.486584Z

Log Message:
-----------
Fix "direction" and "locale" inline styles on DefaultGridItemRenderer.

Fixup the styleDeclaration setter to add the “direction” and “locale” styles. This gets the styles into style manager where the editor can inherit them.

QE notes: None.
Doc notes: None.
Bugs: SDK-28290
Reviewer: Hans, Carol
Tests run: cyclone server
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as
@@ -95,6 +95,35 @@
         addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
     }

+    //--------------------------------------------------------------------------
+    //
+    //  IStyleClient Methods and Properties
+    //  (source code from mx.controls.dataGridClassses.DataGridItemRenderer.as)
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  styleDeclaration
+    //----------------------------------
+
+    private var _styleDeclaration:CSSStyleDeclaration;
+
+    /**
+     *  @private
+     */
+    public function get styleDeclaration():CSSStyleDeclaration
+    {
+        return _styleDeclaration;
+    }
+
+    /**
+     *  @private
+     */
+    public function set styleDeclaration(value:CSSStyleDeclaration):void
+    {
+        _styleDeclaration = value;
+    }
+
 include "TextFieldGridItemRendererInclude.as"

 }


Player: Sweet gray background

Player: Sweet gray background

--- src/Player.as
+++ src/Player.as
@@ -26,7 +26,7 @@
   import com.axis.http.url;

   [SWF(frameRate="60")]
-  [SWF(backgroundColor="#000000")]
+  [SWF(backgroundColor="#efefef")]

   public class Player extends Sprite {
     private var vid:Video;


Modify KrewScenarioPlayer

Modify KrewScenarioPlayer

--- krew-framework/krewfw/builtin_actor/system/KrewScenarioPlayer.as
+++ krew-framework/krewfw/builtin_actor/system/KrewScenarioPlayer.as
@@ -7,6 +7,13 @@
      */
     //------------------------------------------------------------
     public class KrewScenarioPlayer extends KrewActor {
+
+        // You can customize object keys.
+        public var TRIGGER_KEY    :String = "trigger_key";
+        public var TRIGGER_PARAMS :String = "trigger_params";
+        public var METHOD         :String = "method";
+        public var PARAMS         :String = "params";
+        public var NEXT           :String = "next";

         private var _eventList:Array;
         private var _eventsByTrigger:Object;
@@ -57,7 +64,7 @@

             _eventsByTrigger = {};
             for each (var eventData:Object in _eventList) {
-                var triggerKey:String = eventData.trigger_key;
+                var triggerKey:String = eventData[TRIGGER_KEY];
                 if (!triggerKey) { continue; }

                 if (!_eventsByTrigger[triggerKey]) {
@@ -135,7 +142,7 @@
             listen(info.eventName, function(eventArgs:Object):void {
                 for each (var eventData:Object in _eventsByTrigger[triggerKey]) {

-                    var triggerParams:Object = eventData.trigger_params;
+                    var triggerParams:Object = eventData[TRIGGER_PARAMS];
                     if (!info.checker(eventArgs, triggerParams)) { continue; }

                     _callMethod(eventData);
@@ -144,10 +151,10 @@
         }

         private function _callMethod(eventData:Object):void {
-            var methodName:String = eventData.method;
+            var methodName:String = eventData[METHOD];
             if (!methodName) {
                 throw new Error('[KrewEventPlayer] method name not found. (trigger: '
-                                + eventData.trigger_key + ')');
+                                + eventData[TRIGGER_KEY] + ')');
                 return;
             }

@@ -157,7 +164,7 @@
                 return;
             }

-            method(eventData.params, function():void {
+            method(eventData[PARAMS], function():void {
                 _callNextMethod(eventData);
             });
         }


Made _panel protected instead of private.
Changed the name to _controlledPanel because otherwise it interfered with
subclass _panel variables. (Actionscript won't let variables be masked).

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

--- src/as/com/threerings/util/Controller.as
+++ src/as/com/threerings/util/Controller.as
@@ -11,13 +11,13 @@
      */
     protected function setControlledPanel (panel :IEventDispatcher) :void
     {
-        if (_panel != null) {
-            _panel.removeEventListener(
+        if (_controlledPanel != null) {
+            _controlledPanel.removeEventListener(
                 CommandEvent.TYPE, handleCommandEvent);
         }
-        _panel = panel;
-        if (_panel != null) {
-            _panel.addEventListener(
+        _controlledPanel = panel;
+        if (_controlledPanel != null) {
+            _controlledPanel.addEventListener(
                 CommandEvent.TYPE, handleCommandEvent);
         }
     }
@@ -28,7 +28,7 @@
      */
     public final function postAction (cmd :String, arg :Object = null) :void
     {
-        CommandEvent.dispatch(_panel, cmd, arg);
+        CommandEvent.dispatch(_controlledPanel, cmd, arg);
     }

     /**
@@ -101,6 +101,6 @@
     }

     /** The panel currently being controlled. */
-    private var _panel :IEventDispatcher;
+    protected var _controlledPanel :IEventDispatcher;
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18432
Author:   dloverin@adobe.com
Date:     2010-11-03T20:02:02.380580Z

Log Message:
-----------
Initial check-in for RSL Sharing Among Modules Feature

QE notes: testable but not PARB'd
Doc notes: None.
Bugs: SDK-27917
Reviewer: Alex
Tests run: cylone server, 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/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/config/ConfigurationException_en.properties</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ApplicationDomainTarget.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/config/ConfigurationException.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/common/RuntimeSharedLibrarySettingsConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/RSLData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>

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

--- frameworks/projects/framework/src/mx/events/RSLEvent.as
+++ frameworks/projects/framework/src/mx/events/RSLEvent.as
@@ -39,6 +39,39 @@
 	//
 	//--------------------------------------------------------------------------

+    /**
+     *  The RSLEvent.RSL_ADD_PRELOADED constant defines the value of the
+     *  type property of the event object for an
+     *  rslAddPreloaded event. This event is dispatched from an
+     *  IFlexModuleFactory after a child IFlexModuleFactory preloads an RSL
+     *  into its application domain.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
loaderInfo	The LoaderInfo instance
+     *     associated with this RSL.

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *

+     *
+     *  @eventType rslAddPreloaded
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.5
+     */
+    public static const RSL_ADD_PRELOADED:String = "rslAddPreloaded";
+
 	/**
 	 *  Dispatched when the RSL has finished downloading.
 	 *  The RSLEvent.RSL_COMPLETE constant defines the value of the
@@ -205,7 +238,8 @@
 							 bytesLoaded:int = -1, bytesTotal:int = -1,
 							 rslIndex:int = -1, rslTotal:int = -1,
 							 url:URLRequest = null, errorText:String = null,
-							 isResourceModule:Boolean = false)
+							 isResourceModule:Boolean = false,
+                             loaderInfo:LoaderInfo = null)
 	{
 		super(type, bubbles, cancelable, bytesLoaded, bytesTotal);

@@ -214,6 +248,7 @@
 		this.url = url;
 		this.errorText = errorText;
 		this.isResourceModule = isResourceModule;
+        this.loaderInfo = loaderInfo;
 	}

 	//--------------------------------------------------------------------------
@@ -312,7 +347,8 @@
 	{
 		return new RSLEvent(type, bubbles, cancelable,
 							bytesLoaded, bytesTotal, rslIndex,
-							rslTotal, url, errorText, isResourceModule);
+							rslTotal, url, errorText, isResourceModule,
+                            loaderInfo);
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3082
Author:   clucier@adobe.com
Date:     2008-09-03T18:12:36.277296Z

Log Message:
-----------
Adding patent id markers to source files per request from legal.
QA: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetEventHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/StatesGenerator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/State.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/StatesModel.java</path>

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

--- frameworks/projects/framework/src/mx/states/SetStyle.as
+++ frameworks/projects/framework/src/mx/states/SetStyle.as
@@ -6,6 +6,8 @@
 //
 //  NOTICE: Adobe permits you to use, modify, and distribute this file
 //  in accordance with the terms of the license agreement accompanying it.
+//
+//  AdobePatentID="B770"
 //
 ////////////////////////////////////////////////////////////////////////////////


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

--- frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as
+++ frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-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.
+//  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
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 4335
Author:   jszeto@adobe.com
Date:     2008-12-17T00:52:56.919040Z

Log Message:
-----------
GraphicElement Optimization

- Changed how a shared displayObject is positioned in a GraphicElement. Previously, it was always placed at (x,y). Now, it is placed at (0,0) if the displayObject can be shared (ie. it has no transforms). This solves the problem of a sharedDisplayObject getting repositioned without the GraphicElement being aware of it.

- Optimized Group.updateDisplayList so that we only redraw the GraphicElement's that share a displayObject that needs to be updated. Added a new class called InvalidatingSprite which has a single property called "invalid". If a GraphicElement needs to be redrawn, it marks its shared or unshared displayObject as invalid. Group will then only update the GraphicElements whose displayObject is marked invalid. Added invalidateDisplayList calls in a few missing places.

QE Notes: Some of the mustella bitmaps need to be regenerated. The player renders differently two transformed sprites that draw the same visuals. For example, a rotated sprite at (0,0) with a drawRect at (20,20) will look from a rotated sprite at (20,20) with a drawRect at (0,0).
Doc Notes: None
Bugs: SDK-18053
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Line.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/InvalidatingSprite.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -19,6 +19,7 @@
 import mx.core.IUITextField;
 import mx.core.IVisualElement;
 import mx.core.IVisualElementContainer;
+import mx.core.InvalidatingSprite;
 import mx.core.mx_internal;
 import mx.events.ItemExistenceChangedEvent;
 import mx.graphics.IGraphicElement;
@@ -341,26 +342,51 @@
      *  @private
      */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
-    {
+    {
         super.updateDisplayList(unscaledWidth, unscaledHeight);
-
-        // TODO EGeorgie: we need to optimize this, iterating through all the elements is slow.
-        // Iterate through the graphic elements, clear their graphics and draw them

         graphics.clear(); // Clear the group's graphic because graphic elements might be drawing to it
         // This isn't needed for DataGroup because there's no DisplayObject sharing

-        // TODO EGeorgie: we need to optimize this, iterating through all the elements is slow.
-        // Iterate through the graphic elements, clear their graphics and draw them
+        // Iterate through the graphic elements. If an element has a displayObject that has been
+        // invalidated, then validate all graphic elements that draw to this displayObject.
+        // The algorithm assumes that all of the elements that share a displayObject are in between
+        // the element with the shared displayObject and the next element that has a displayObject.
         if (numGraphicElements > 0)
         {
-            var length:int = numElements;
-            for (var i:int = 0; i < length; i++)
-            {
-                var element:IGraphicElement = getElementAt(i) as IGraphicElement;
-                if (element)
-                    element.validateDisplayList();
-            }
+	        var length:int = numElements;
+	        var currentSharedSprite:InvalidatingSprite;
+	        for (var i:int = 0; i < length; i++)
+	        {
+	            var element:IGraphicElement = getElementAt(i) as IGraphicElement;
+	            if (element)
+	            {
+	            	var elementSprite:InvalidatingSprite = element.displayObject as InvalidatingSprite;
+
+	            	// Each element must either have a displayObject or sharedDisplayObject property
+	            	if (elementSprite)
+	            	{
+	            		if (currentSharedSprite)
+	            		{
+		            		// Reached a new display object, so mark the previous DisplayObject valid
+		            		currentSharedSprite.invalid = false;
+	            		}
+
+	            		currentSharedSprite = elementSprite;
+	            	}
+
+	            	// currentSharedSprite is null if the Group is the sharedDisplayObject.
+	            	if (currentSharedSprite == null || currentSharedSprite.invalid)
+	            	{
+	            		element.validateDisplayList();
+	            	}
+
+	            }
+	        }
+
+	        // Mark the last shared displayObject valid
+	        if (currentSharedSprite)
+	        	currentSharedSprite.invalid = false;
         }
     }

@@ -1035,8 +1061,6 @@
                 }

                 element.sharedDisplayObject = mergeData.currentAssignableDO;
-                // Invalidate the element so that it redraws
-                element.invalidateDisplayList();
                 if (element.nextSiblingNeedsDisplayObject)
                     mergeData.currentAssignableDO = null;
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4065
Author:   gosmith@adobe.com
Date:     2008-11-11T01:26:44.384277Z

Log Message:
-----------
TextBox now supports lineBreak and breakOpportunity styles, like TextGraphic. It also now uses scrollRect to clip overset lines, like TextGraphic.

Both TextBox and TextGraphic avoid setting scrollRect to null if it is already null, since Player 10.0 will allocate memory even in that case.

The API for TextBlockComposer is now back in sync with that of TextFlowComposer.

QE Notes: New line-breaking and clipping functionality to test in TextBox.
Doc Notes: None
Bugs: None
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/AdvancedCharacterFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/BasicContainerFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/AdvancedContainerFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextFlowComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/BasicCharacterFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextBlockComposer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -130,11 +130,9 @@
         if (!mx_internal::styleChainInitialized)
             return;

-        var width:Number = !isNaN(explicitWidth) ? explicitWidth : Infinity;
-        var height:Number = !isNaN(explicitHeight) ? explicitHeight : Infinity;
-        compose(width, height);
-
-        var r:Rectangle = textBlockComposer.actualBounds;
+        compose(explicitWidth, explicitHeight);
+
+        var r:Rectangle = textBlockComposer.bounds;
         measuredWidth = Math.ceil(r.width);
         measuredHeight = Math.ceil(r.height);
     }
@@ -153,7 +151,20 @@
         if (!mx_internal::styleChainInitialized)
             return;

-        compose(unscaledWidth, unscaledHeight);
+        var overset:Boolean = compose(unscaledWidth, unscaledHeight);
+
+        // Use scrollRect to clip overset lines.
+        // But don't set scrollRect to null if it is already null,
+        // because this causes Player 10.0 to allocate memory.
+        if (overset)
+        {
+            displayObject.scrollRect =
+                new Rectangle(0, 0, unscaledWidth, unscaledHeight);
+        }
+        else if (displayObject.scrollRect)
+        {
+            displayObject.scrollRect = null;
+        }
     }

     //--------------------------------------------------------------------------
@@ -165,9 +176,11 @@
     /**
      *  @private
      */
-    private function compose(width:Number = Infinity,
-                             height:Number = Infinity):void
-    {
+    private function compose(width:Number = NaN, height:Number = NaN):Boolean
+    {
+        var container:DisplayObjectContainer =
+            DisplayObjectContainer(displayObject);
+
         var fontDescription:FontDescription = new FontDescription();
         fontDescription.cffHinting = getStyle("cffHinting");
         fontDescription.fontLookup = getStyle("fontLookup");
@@ -180,6 +193,7 @@
         elementFormat.alignmentBaseline = getStyle("alignmentBaseline");
         elementFormat.alpha = getStyle("textAlpha");
         elementFormat.baselineShift = getStyle("baselineShift");
+        elementFormat.breakOpportunity = getStyle("breakOpportunity");
         elementFormat.color = getStyle("color");
         elementFormat.digitCase = getStyle("digitCase");
         elementFormat.digitWidth = getStyle("digitWidth");
@@ -193,15 +207,15 @@
         setTracking(elementFormat);
         elementFormat.typographicCase = getStyle("typographicCase");

-        textBlockComposer.removeTextLines(
-            DisplayObjectContainer(displayObject));
-
-        var bounds:Rectangle = textBlockComposer.requestedBounds;
+        textBlockComposer.removeTextLines(container);
+
+        var bounds:Rectangle = textBlockComposer.bounds;
         bounds.x = 0;
         bounds.y = 0;
         bounds.width = width;
         bounds.height = height;

+        textBlockComposer.lineBreak = getStyle("lineBreak");
         textBlockComposer.lineHeight = getStyle("lineHeight");
         textBlockComposer.paddingBottom = getStyle("paddingBottom");
         textBlockComposer.paddingLeft = getStyle("paddingLeft");
@@ -212,7 +226,9 @@

         textBlockComposer.composeText(text, elementFormat);

-        textBlockComposer.addTextLines(DisplayObjectContainer(displayObject));
+        textBlockComposer.addTextLines(container);
+
+        return textBlockComposer.isOverset;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 9557
Author:   gosmith@adobe.com
Date:     2009-08-24T23:11:57.086909Z

Log Message:
-----------
Edited ASDoc for Spark text classes in response to Carol's review.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/SimpleText.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -100,7 +100,7 @@
  *        for international languages, than Label.

  *
SimpleText can display multiple lines, which Label cannot.

  *
Label can display a limited subset of HTML,
- *        while SimpleText can only display a text with uniform formatting.

+ *        while SimpleText can only display text with uniform formatting.

  *
Label can be made selectable, while SimpleText cannot.

  *
Label is a UIComponent that can be used in either MX
  *        containers such as HBox or in Spark containers such as Group.


Rather than do full removal on the heap, Ray suggested enqueueing little buddy classes whose calls for the timer's expiration we may or may not heed when the time comes.

--- tamarin-central/thane/flash/utils/Timer.as
+++ tamarin-central/thane/flash/utils/Timer.as
@@ -19,8 +19,7 @@

         _delay = delay;
         _repeatCount = repeatCount;
-        _currentCount = 0;
-        _expiration = 0;
+        reset();
     }

     public function get currentCount () :int
@@ -40,58 +39,52 @@

     public function get running () :Boolean
     {
-        return _expiration > 0;
-    }
-
-    protected function get nextExpirationStamp() :int
-    {
-        return _expiration;
+        return _buddy != null;
     }

     public function start () :void
     {
-        if (_expiration > 0) {
+        if (_buddy != null) {
             return;
         }

-        _currentCount = 0;
         queueTimer(getTimer() + _delay);
     }

     public function stop () :void
     {
-        // TODO: Find or write a free Heap implementation with a full Remove operation
-        trace("FIXME: Timer.stop() not really implemented!");
-        _expiration = 0;
+        // cut any current enqueued buddy adrift
+        _buddy = null;
     }

     public function reset () :void
     {
-        // TODO: Find or write a free Heap implementation with a full Remove operation
-        throw new Error("Timer.reset() Not implemented");
+        stop();
+        _currentCount = 0;
     }

-    protected function expire () :void
+    protected function expire (buddy :Buddy) :void
     {
-        // TODO: hack while stop() not really implemented
-        if (_expiration == 0) {
+        if (buddy != _buddy) {
+            // the timer was stopped since this buddy was enqueued
             return;
         }
         _currentCount ++;
         dispatchEvent(new TimerEvent(TimerEvent.TIMER));
         if (_currentCount < _repeatCount) {
-            queueTimer(_expiration + _delay);
+            queueTimer(buddy.expiration + _delay);

         } else {
             dispatchEvent(new TimerEvent(TimerEvent.TIMER_COMPLETE));
-            _expiration = 0;
+            _buddy = null;
         }
     }

     private function queueTimer (when :int) :void
     {
-        _expiration = when;
-        if (_heap.enqueue(this)) {
+        // spawn a new buddy and toss it on the heap
+        _buddy = new Buddy(this, when);
+        if (_heap.enqueue(_buddy)) {
             return;
         }

@@ -103,22 +96,36 @@
     {
         var now :int = getTimer();

-        while (_heap.size > 0 && _heap.front.nextExpirationStamp <= now) {
-            _heap.dequeue().expire();
+        while (_heap.size > 0 && _heap.front.expiration <= now) {
+            var buddy :Buddy = _heap.dequeue();
+            buddy.budette.expire(buddy);
         }
     }

-    private static function compareTimers (a :Timer, b :Timer) :int
+    private static function compareTimers (a :Buddy, b :Buddy) :int
     {
         // b-a rather than a-b so as to order low values before high
-        return b.nextExpirationStamp - a.nextExpirationStamp;
+        return b.expiration - a.expiration;
     }

     private var _currentCount :int;
     private var _delay :Number;
     private var _repeatCount :int;
-    private var _expiration :int;
+    private var _buddy :Buddy;

     private static var _heap :Heap;
 }
 }
+
+import flash.utils.Timer;
+
+class Buddy {
+    public var budette :Timer;
+    public var expiration :int;
+
+    public function Buddy (timer :Timer, expiration :int)
+    {
+        this.budette = timer;
+        this.expiration = expiration;
+    }
+}