Transferred from the Adobe Open Source Subversion Repository

Revision: 5097
Author:   gauravj@adobe.com
Date:     2009-02-27T02:06:23.424936Z

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:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemTreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/WindowExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemControlHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.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/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as
+++ frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as
@@ -42,6 +42,10 @@
  *  @see mx.core.Window
  *  @see mx.core.WindowedApplication
  *
+ *
+ *  @langversion 3.0
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class TitleBar extends UIComponent
 {
@@ -69,6 +73,10 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function TitleBar():void
     {
@@ -131,6 +139,10 @@

     /**
      *  The Button object that defines the close button.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var closeButton:Button;

@@ -140,6 +152,10 @@

     /**
      *  The Button object that defines the maximize button.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var maximizeButton:Button;

@@ -149,6 +165,10 @@

     /**
      *  The Button object that defines the minimize button.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var minimizeButton:Button;

@@ -158,6 +178,10 @@

     /**
      *  Storage for the title property.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var _title:String = "";

@@ -171,6 +195,10 @@
      *  the dock or taskbar.
      *
      *  @default ""
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get title():String
     {
@@ -209,6 +237,10 @@
      *  The icon displayed in the title bar.
      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get titleIcon():Class
     {
@@ -233,6 +265,10 @@

     /**
      *  The UITextField in the title bar that displays the application title.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var titleTextField:IUITextField;

@@ -242,6 +278,10 @@

     /**
      *  The IWindow that owns this TitleBar.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private function get window():IWindow
     {
@@ -499,6 +539,10 @@
      *  @param styleProp the name of the style that's changed.
      *  In some cases, it can be null, usually when changing
      *  the global style or styleName.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function styleChanged(styleProp:String):void
     {
@@ -591,6 +635,10 @@
      *
      *  @param cornerOffset how much to indent things to take into account
      *  corner radius
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function placeButtons(align:String,
                                     unscaledWidth:Number, unscaledHeight:Number,
@@ -654,6 +702,10 @@
      *  @param rightOffset how much space to allow on right for corners, etc.
      *
      *  @param buttonAlign the way the buttons are aligned
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function placeTitle(titleAlign:String,
                                   leftOffset:Number, rightOffset:Number,
@@ -784,6 +836,10 @@

     /**
      *  Handles a doubleClick event in a platform-appropriate manner.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function doubleClickHandler(event:MouseEvent):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4957
Author:   jimurphy@adobe.com
Date:     2009-02-13T19:44:53.991275Z

Log Message:
-----------
Merge 3.x revisions 4848,4856,4886,4888,4898,4905,4912,4914-4916,4953 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToggleButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>

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

--- frameworks/projects/framework/src/mx/collections/ListCollectionView.as
+++ frameworks/projects/framework/src/mx/collections/ListCollectionView.as
@@ -1143,8 +1143,24 @@
                 var j:int = 0;
                 for (; j < updatedItems.length; j++)
                 {
-                     if (updatedItems[j].item == item)
+					if (updatedItems[j].item == item)
+					{
+						// even if it is, if a different property changed, track that too.
+						var events:Array = updatedItems[j].events;
+						var l:int = events.length;
+						for (var k:int = 0; k < l; k++)
+						{
+							if (events[k].property != updateInfo.property)
+							{
+								events.push(updateInfo);
+								break;
+							}
+							// we could also merge events for changes to the same
+							// property but that's hopefully low probability
+							// and leads to questions of event order.
+						}
                         break;
+					}
                 }

                 if (j < updatedItems.length)
@@ -1153,7 +1169,7 @@
                 }
                 else
                 {
-                    updateEntry = { item: item, move: defaultMove, event:updateInfo};
+                    updateEntry = { item: item, move: defaultMove, events: [ updateInfo ] };
                     updatedItems.push(updateEntry);
                 }

@@ -1169,6 +1185,8 @@
                     || (sort && sort.propertyAffectsSort(String(updateInfo.property)));
             }

+			// go through the items and move and send move events for ones that moved
+			// and build the list of remaining items we need to send UPDATE events for
             eventItems = [];
             for (i = 0; i < updatedItems.length; i++)
             {
@@ -1182,11 +1200,17 @@
                     eventItems.push(updateEntry.item);
                 }
             }
+
+			// now go through the updated items and add all events for all
+			// properties that changed in that item (except for those items
+			// we moved
             var temp:Array = [];
             for (var ctr:int = 0; ctr < eventItems.length; ctr++)
                 for (var ctr1:int = 0; ctr1 < updatedItems.length; ctr1++)
                     if (eventItems[ctr] == updatedItems[ctr1].item)
-                        temp.push(updatedItems[ctr1].event);
+					{
+                        temp = temp.concat(updatedItems[ctr1].events);
+					}
             eventItems = temp;
         }


Replaced tabs with spaces

Replaced tabs with spaces

--- com/rtmfpcat/rtmfp/RTMFPSocket.as
+++ com/rtmfpcat/rtmfp/RTMFPSocket.as
@@ -27,205 +27,206 @@
     import rtmfp.events.RTMFPSocketEvent;

     [Event(name="connectSuccess", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
-  	[Event(name="connectFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
-  	[Event(name="publishStart", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
-  	[Event(name="peerConnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
-  	[Event(name="peeringSuccess", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
-  	[Event(name="peeringFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
-  	[Event(name="peerDisconnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+    [Event(name="connectFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+    [Event(name="publishStart", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+    [Event(name="peerConnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+    [Event(name="peeringSuccess", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+    [Event(name="peeringFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+    [Event(name="peerDisconnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
     public class RTMFPSocket extends EventDispatcher
     {
         /* The name of the "media" to pass between peers */
         private static const DATA:String = "data";
-		    private static const DEFAULT_CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net";
-		    private static const DEFAULT_CIRRUS_KEY:String = RTMFP::CIRRUS_KEY;
-		    private static const DEFAULT_CONNECT_TIMEOUT:uint = 4000;
-
+        private static const DEFAULT_CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net";
+        private static const DEFAULT_CIRRUS_KEY:String = RTMFP::CIRRUS_KEY;
+        private static const DEFAULT_CONNECT_TIMEOUT:uint = 4000;
+
         /* Connection to the Cirrus rendezvous service */
         private var connection:NetConnection;
-
-		    /* ID of the peer to connect to */
-		    private var peerID:String;
-
-		    /* Data streams to be established with peer */
-		    private var sendStream:NetStream;
-		    private var recvStream:NetStream;
-
-		    /* Timeouts */
-		    private var connectionTimeout:int;
-		    private var peerConnectTimeout:uint;
+
+        /* ID of the peer to connect to */
+        private var peerID:String;
+
+        /* Data streams to be established with peer */
+        private var sendStream:NetStream;
+        private var recvStream:NetStream;
+
+        /* Timeouts */
+        private var connectionTimeout:int;
+        private var peerConnectTimeout:uint;

         public function RTMFPSocket(){}

         public function connect(addr:String = DEFAULT_CIRRUS_ADDRESS, key:String = DEFAULT_CIRRUS_KEY):void
         {
-          connection = new NetConnection();
-			    connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusEvent);
-			    connection.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorEvent);
-			    connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorEvent);
-          connection.connect(addr + "/" + key);
-			    connectionTimeout = setInterval(fail, DEFAULT_CONNECT_TIMEOUT);
+            connection = new NetConnection();
+            connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusEvent);
+            connection.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorEvent);
+            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorEvent);
+            connection.connect(addr + "/" + key);
+            connectionTimeout = setInterval(fail, DEFAULT_CONNECT_TIMEOUT);
         }

         public function close():void
         {
-          connection.close();
+            connection.close();
         }

         public function get id():String
         {
-          if (connection != null && connection.connected) {
-            return connection.nearID;
-          }
-
-          return null;
+            if (connection != null && connection.connected) {
+                return connection.nearID;
+            }
+
+            return null;
         }

         public function get connected():Boolean
         {
-          return (connection != null && connection.connected);
+            return (connection != null && connection.connected);
         }

         public function readBytes(bytes:ByteArray):void
         {
-          recvStream.client.bytes.readBytes(bytes);
+            recvStream.client.bytes.readBytes(bytes);
         }

         public function writeBytes(bytes:ByteArray):void
         {
-          sendStream.send("dataAvailable", bytes);
+            sendStream.send("dataAvailable", bytes);
         }

         public function get peer():String
         {
-          return this.peerID;
+            return this.peerID;
         }

         public function set peer(peerID:String):void
         {
-          if (peerID == null || peerID.length == 0) {
-            throw new Error("Peer ID is null/empty.")
-    			} else if (peerID == connection.nearID) {
-    				throw new Error("Peer ID cannot be the same as our ID.");
-    			} else if (this.peerID == peerID) {
-    			  throw new Error("Already connected to peer " + peerID + ".");
-    			} else if (this.recvStream != null) {
-            throw new Error("Cannot connect to a second peer.");
-          }
-
-          this.peerID = peerID;
-
-    			recvStream = new NetStream(connection, peerID);
-    			var client:RTMFPSocketClient = new RTMFPSocketClient();
-    			client.addEventListener(ProgressEvent.SOCKET_DATA, onDataAvailable, false, 0, true);
-    			client.addEventListener(RTMFPSocketClient.PEER_CONNECT_ACKNOWLEDGED, onPeerConnectAcknowledged, false, 0, true);
-    			recvStream.client = client;
-    			recvStream.addEventListener(NetStatusEvent.NET_STATUS, onRecvStreamEvent);
-    			recvStream.play(DATA);
-    			setTimeout(onPeerConnectTimeout, peerConnectTimeout, recvStream);
+            if (peerID == null || peerID.length == 0) {
+                throw new Error("Peer ID is null/empty.")
+            } else if (peerID == connection.nearID) {
+                throw new Error("Peer ID cannot be the same as our ID.");
+            } else if (this.peerID == peerID) {
+                throw new Error("Already connected to peer " + peerID + ".");
+            } else if (this.recvStream != null) {
+                throw new Error("Cannot connect to a second peer.");
+            }
+
+            this.peerID = peerID;
+
+            recvStream = new NetStream(connection, peerID);
+            var client:RTMFPSocketClient = new RTMFPSocketClient();
+            client.addEventListener(ProgressEvent.SOCKET_DATA, onDataAvailable, false, 0, true);
+            client.addEventListener(RTMFPSocketClient.PEER_CONNECT_ACKNOWLEDGED, onPeerConnectAcknowledged, false, 0, true);
+            recvStream.client = client;
+            recvStream.addEventListener(NetStatusEvent.NET_STATUS, onRecvStreamEvent);
+            recvStream.play(DATA);
+            setTimeout(onPeerConnectTimeout, peerConnectTimeout, recvStream);
         }

         private function startPublishStream():void
         {
-          sendStream = new NetStream(connection, NetStream.DIRECT_CONNECTIONS);
-    			sendStream.addEventListener(NetStatusEvent.NET_STATUS, onSendStreamEvent);
-    			var o:Object = new Object();
-    			o.onPeerConnect = onPeerConnect;
-    			sendStream.client = o;
-    			sendStream.publish(DATA);
+            sendStream = new NetStream(connection, NetStream.DIRECT_CONNECTIONS);
+            sendStream.addEventListener(NetStatusEvent.NET_STATUS, onSendStreamEvent);
+            var o:Object = new Object();
+            o.onPeerConnect = onPeerConnect;
+            sendStream.client = o;
+            sendStream.publish(DATA);
         }

         private function fail():void
         {
-          clearInterval(connectionTimeout);
-    			dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_FAIL));
+            clearInterval(connectionTimeout);
+            dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_FAIL));
         }

         private function onDataAvailable(event:ProgressEvent):void
         {
-          dispatchEvent(event);
+            dispatchEvent(event);
         }

         private function onIOErrorEvent(event:IOErrorEvent):void
         {
-          fail();
+            fail();
         }

         private function onNetStatusEvent(event:NetStatusEvent):void
         {
-          switch (event.info.code) {
-      			case "NetConnection.Connect.Success" :
-      				clearInterval(connectionTimeout);
-      				startPublishStream();
-      				dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_SUCCESS));
-      				break;
-      			case "NetStream.Connect.Success" :
-      				break;
-      			case "NetStream.Publish.BadName" :
-      			  fail();
-      				break;
-      			case "NetStream.Connect.Closed" :
-      			  // we've disconnected from the peer
-      			  // can reset to accept another
-      			  // clear the publish stream and re-publish another
-      			  dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_DISCONNECTED, recvStream));
-      				break;
-      		}
+            switch (event.info.code) {
+                case "NetConnection.Connect.Success" :
+                    clearInterval(connectionTimeout);
+                    startPublishStream();
+                    dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_SUCCESS));
+                    break;
+                case "NetStream.Connect.Success" :
+                    break;
+                case "NetStream.Publish.BadName" :
+                    fail();
+                    break;
+                case "NetStream.Connect.Closed" :
+                    // we've disconnected from the peer
+                    // can reset to accept another
+                    // clear the publish stream and re-publish another
+                    dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_DISCONNECTED, recvStream));
+                    break;
+            }
         }

         private function onPeerConnect(peer:NetStream):Boolean
         {
-          // establish a bidirectional stream with the peer
-          if (peerID == null) {
-            this.peer = peer.farID;
-          }
-
-          // disallow additional peers connecting to us
-          if (peer.farID != peerID) return false;
-
-          peer.send("setPeerConnectAcknowledged");
-          dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_CONNECTED, peer));
-
-          return true;
+            // establish a bidirectional stream with the peer
+            if (peerID == null) {
+                this.peer = peer.farID;
+            }
+
+            // disallow additional peers connecting to us
+            if (peer.farID != peerID) return false;
+
+            peer.send("setPeerConnectAcknowledged");
+            dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_CONNECTED, peer));
+
+            return true;
         }

         private function onPeerConnectAcknowledged(event:Event):void
         {
-    			dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_SUCCESS, recvStream));
+            dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_SUCCESS, recvStream));
         }

         private function onPeerConnectTimeout(peer:NetStream):void
         {
-          if (!recvStream.client) return;
-    			if (!RTMFPSocketClient(recvStream.client).peerConnectAcknowledged) {
-    				dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_FAIL, recvStream));
-    			}
+            if (!recvStream.client) return;
+            if (!RTMFPSocketClient(recvStream.client).peerConnectAcknowledged) {
+                dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_FAIL, recvStream));
+            }
         }

         private function onSecurityErrorEvent(event:SecurityErrorEvent):void
         {
-          fail();
+            fail();
         }

         private function onSendStreamEvent(event:NetStatusEvent):void
         {
-    			switch (event.info.code) {
-    				case ("NetStream.Publish.Start") :
-    				  dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PUBLISH_START));
-    				  break;
-    				case ("NetStream.Play.Reset") :
-    				case ("NetStream.Play.Start") :
-    					break;
-    			}
-    		}
-    		private function onRecvStreamEvent(event:NetStatusEvent):void
-    		{
-    			switch (event.info.code) {
-    				case ("NetStream.Publish.Start") :
-    				case ("NetStream.Play.Reset") :
-    				case ("NetStream.Play.Start") :
-    					break;
-    			}
-    		}
+            switch (event.info.code) {
+                case ("NetStream.Publish.Start") :
+                    dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PUBLISH_START));
+                    break;
+                case ("NetStream.Play.Reset") :
+                case ("NetStream.Play.Start") :
+                    break;
+            }
+        }
+
+        private function onRecvStreamEvent(event:NetStatusEvent):void
+        {
+            switch (event.info.code) {
+                case ("NetStream.Publish.Start") :
+                case ("NetStream.Play.Reset") :
+                case ("NetStream.Play.Start") :
+                    break;
+            }
+        }
     }
 }


added a note that clarifies this specific section of the function for me;

--- flexEditor/src/org/arisgames/editor/view/ItemEditorMediaPickerView.as
+++ flexEditor/src/org/arisgames/editor/view/ItemEditorMediaPickerView.as
@@ -130,7 +130,7 @@
                 m.type = o.type;
                 m.urlPath = o.url_path;
                 m.fileName = o.file_name;
-                m.isDefault = o.is_default;
+                m.isDefault = o.is_default; //for both default files and uploaded files

                 var node:String = "<node label='" + AppUtils.filterStringToXMLEscapeCharacters(m.name) + "' mediaId='" + m.mediaId + "' type='" + m.type + "' urlPath='" + m.urlPath + "' fileName='" + m.fileName + "' isDefault='" + m.isDefault + "'/>";


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

--- frameworks/projects/advancedgrids/src/mx/collections/SummaryField2.as
+++ frameworks/projects/advancedgrids/src/mx/collections/SummaryField2.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.collections
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2912
Author:   gcomnino@adobe.com
Date:     2008-08-20T01:54:31.237620Z

Log Message:
-----------
Added custom icon file for flash templates. Checkin tests pass. Reviewed by: TBD Jono. QA: No. Docs: No. Bugs: SDK-16449

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashComponentPlaceholder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashContainerPlaceholder.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/utilities/src/flash_component_icon_small.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/utilities/src/flash_container_icon_small.png</path>

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

--- frameworks/projects/authoringsupport/src/FlashContainerPlaceholder.as
+++ frameworks/projects/authoringsupport/src/FlashContainerPlaceholder.as
@@ -15,6 +15,7 @@
 	import mx.controls.Image;
 	import mx.flash.ContainerMovieClip;

+	[IconFile("flash_container_icon_small.png")]
 	public class FlashContainerPlaceholder extends ContainerMovieClip
 	{
 		protected var image1:Image;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5047
Author:   jszeto@adobe.com
Date:     2009-02-24T01:26:03.149191Z

Log Message:
-----------
Change default weight of Stroke from 0 to 1

SDK-19000 - Getting the default weight property of a Stroke returns 0 instead of 1

Changed default value from 0 to 1

QE Notes: This changes the size of scaled graphic elements
Doc Notes:
Bugs: SDK-19000
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as
+++ frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as
@@ -24,7 +24,7 @@
      *
      *  @param weight Specifies the line weight, in pixels.
      *  This parameter is optional,
-     *  with a default value of 0.
+     *  with a default value of 1.
      *
      *  @param pixelHinting A Boolean value that specifies
      *  whether to hint strokes to full pixels.
@@ -77,7 +77,7 @@
      *  This parameter is optional,
      *  with a default value of 0.
      */
-    public function RadialGradientStroke(weight:Number = 0,
+    public function RadialGradientStroke(weight:Number = 1,
                                          pixelHinting:Boolean = false,
                                          scaleMode:String = "normal",
                                          caps:String = null,


Transferred from the Adobe Open Source Subversion Repository

Revision: 13350
Author:   gosmith@adobe.com
Date:     2010-01-07T23:25:52.854067Z

Log Message:
-----------
Fixed a problem in ResourceManager where a var should have been typed as IResourceBundle instead of ResourceBundle.

QE notes: None
Doc notes: None
Bugs: SDK-24804
Reviewer: Deepa
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as

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

--- frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
@@ -701,7 +701,7 @@
             if (!bundleMap)
                 continue;

-            var bundle:ResourceBundle = bundleMap[bundleName];
+            var bundle:IResourceBundle = bundleMap[bundleName];
             if (!bundle)
                 continue;


Set background color based on chromeColor style value Fix for https://issues.apache.org/jira/browse/FLEX-34748

--- frameworks/projects/mobiletheme/src/spark/skins/ios7/ActionBarSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/ios7/ActionBarSkin.as
@@ -549,20 +549,8 @@

         var chromeColor:uint = getStyle("chromeColor");
         var backgroundAlphaValue:Number = getStyle("backgroundAlpha");
-        var colors:Array = [];
-
-        // apply alpha to chromeColor fill only
-        var backgroundAlphas:Array = [backgroundAlphaValue, backgroundAlphaValue];
-
-        // exclude top and bottom 1px borders
-        colorMatrix.createGradientBox(unscaledWidth, unscaledHeight - (borderSize * 2), Math.PI / 2, 0, 0);
-
-        colors[0] = ColorUtil.adjustBrightness2(chromeColor, 20);
-        colors[1] = chromeColor;
-
-        graphics.beginGradientFill(GradientType.LINEAR, colors, backgroundAlphas, ACTIONBAR_CHROME_COLOR_RATIOS, colorMatrix);
-        graphics.drawRect(0, borderSize, unscaledWidth, unscaledHeight - (borderSize * 2));
-        graphics.endFill();
+
+		applyColorTransform(this.border, 0xFFFFFF, chromeColor);
     }

 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXContext.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXContext.as
@@ -0,0 +1,212 @@
+/*************************************************************************
+ *
+ * ADOBE CONFIDENTIAL
+ * __________________
+ *
+ *  [2002] - [2007] Adobe Systems Incorporated
+ *  All Rights Reserved.
+ *
+ * NOTICE:  All information contained herein is, and remains
+ * the property of Adobe Systems Incorporated and its suppliers,
+ * if any.  The intellectual and technical concepts contained
+ * herein are proprietary to Adobe Systems Incorporated
+ * and its suppliers and may be covered by U.S. and Foreign Patents,
+ * patents in process, and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this material
+ * is strictly forbidden unless prior written permission is obtained
+ * from Adobe Systems Incorporated.
+ */
+package mx.messaging.channels.amfx
+{
+
+import mx.logging.ILogger;
+
+[ExcludeClass]
+/**
+ * Holds a list of complex object references, object trait info references,
+ * or string references generated while encoding or decoding and AMFX packet.
+ * Note that a new set of reference tables should be used per AMFX packet.
+ * Calling reset() will create new tables for each of these types of references.
+ * @private
+ */
+public class AMFXContext
+{
+    /**
+     * Constructor.
+     * Initializes object, trait info and string reference tables.
+     */
+    public function AMFXContext()
+    {
+        super();
+        reset();
+    }
+
+    /**
+     * Resets the trait info, object and string reference tables.
+     */
+    public function reset():void
+    {
+        traits = [];
+        objects = [];
+        strings = [];
+    }
+
+    /**
+     * Check whether the trait info reference table
+     * already contains this list of traits. If found,
+     * the index of the trait info is returned, starting
+     * from 0. If not found -1 is returned.
+     */
+    public function findTraitInfo(traitInfo:Object):int
+    {
+        for (var i:uint = 0; i < traits.length; i++)
+        {
+            var ti:Object = traits[i];
+
+            if (ti.alias == traitInfo.alias
+                && ti.properties.length == traitInfo.properties.length)
+            {
+                var j:uint = 0;
+                for (; j < ti.properties.length; j++)
+                {
+                    if (ti.properties[i] != traitInfo.properties[j])
+                    {
+                        break;
+                    }
+                }
+
+                if (j == traitInfo.properties.length)
+                {
+                    //Match found
+                    return i;
+                }
+            }
+        }
+
+        return -1;
+    }
+
+    /**
+     * Check whether the object reference table
+     * already contains this object. If found, the index
+     * of the object is returned, starting from 0. If
+     * not found -1 is returned.
+     */
+    public function findObject(object:Object):int
+    {
+        for (var i:uint = 0; i < objects.length; i++)
+        {
+            var o:Object = objects[i];
+            if (o === object)
+            {
+                return i;
+            }
+        }
+
+        return -1;
+    }
+
+    /**
+     * Check whether the string reference table
+     * already contains this string. If found, the index
+     * of the string is returned, starting from 0. If
+     * not found (or if the value passed is the empty string)
+     * -1 is returned.
+     */
+    public function findString(str:String):int
+    {
+        if (str != "")
+        {
+            for (var i:uint = 0; i < strings.length; i++)
+            {
+                var s:String = strings[i];
+                if (s == str)
+                {
+                    return i;
+                }
+            }
+        }
+
+        return -1;
+    }
+
+    /**
+     * Remember the trait info for an object in this context
+     * for an encoding or decoding session.
+     */
+    public function addTraitInfo(traitInfo:Object):void
+    {
+        traits.push(traitInfo);
+    }
+
+    /**
+     * Remember an object in this context for an encoding
+     * or decoding session.
+     */
+    public function addObject(obj:Object):void
+    {
+        objects.push(obj);
+    }
+
+    /**
+     * Remember a string in this context for an encoding
+     * or decoding session. Note that the empty string
+     * is not remembered as it should not be serialized
+     * by reference.
+     */
+    public function addString(str:String):void
+    {
+        if (str != "")
+        {
+            strings.push(str);
+        }
+    }
+
+
+    /**
+     * Retrieve trait info for an object by its reference
+     * table index.
+     */
+    public function getTraitInfo(ref:uint):*
+    {
+        return traits[ref];
+    }
+
+    /**
+     * Retrieve an object by its reference table index.
+     */
+    public function getObject(ref:uint):*
+    {
+        return objects[ref];
+    }
+
+    /**
+     * Retrieve a string by its reference table index.
+     */
+    public function getString(ref:uint):String
+    {
+        return strings[ref];
+    }
+
+    /**
+     * Trait Info reference table
+     */
+    internal var traits:Array;
+
+    /**
+     * Object reference table
+     */
+    internal var objects:Array;
+
+    /**
+     * Strings reference table
+     */
+    internal var strings:Array;
+
+    /**
+     * Log for the current encoder/decoder context.
+     */
+    public var log:ILogger;
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20775
Author:   smgilson@adobe.com
Date:     2011-03-10T20:03:40.415513Z

Log Message:
-----------
merge 20770 - ASDoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPopUpAnchorAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/gridClasses/SparkGridItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DataGridSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mobiletheme/src/spark/skins/mobile/TransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/tabularData/SparkDataGridTabularData.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/events/SparkValueChangeAutomationEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mobiletheme/src/spark/skins/mobile/TransparentNavigationButtonSkin.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TransparentActionButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TransparentActionButtonSkin.as
@@ -27,10 +27,10 @@
 use namespace mx_internal;

 /**
- *  The default skin class for buttons in the Spark ActionBar component in mobile applications.
+ *  The default skin class for buttons in the action area of the Spark ActionBar component
+ *  in mobile applications.
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -45,7 +45,6 @@
      *  Constructor.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 19742
Author:   chiedozi@adobe.com
Date:     2011-01-13T19:33:44.958417Z

Log Message:
-----------
ViewNavigatorApplications now properly update the orientation of a View after a suspended application is relaunched in a different orientaiton.
Fixed a bug where Views weren't being reactivated after an application was relaunched after being suspended.

QE notes:
Doc notes:
Bugs: SDK-29099, SDK-29095
Reviewer: Evtim
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
@@ -21,9 +21,9 @@
 import mx.core.mx_internal;
 import mx.utils.BitFlagUtil;

-import spark.components.supportClasses.ViewNavigatorApplicationBase;
 import spark.components.supportClasses.NavigationStack;
 import spark.components.supportClasses.ViewDescriptor;
+import spark.components.supportClasses.ViewNavigatorApplicationBase;
 import spark.layouts.supportClasses.LayoutBase;

 use namespace mx_internal;
@@ -683,6 +683,18 @@
     {
         super.invokeHandler(event);

+        // If the navigator and view are created, this means that the application
+        // is restoring its state after being suspended by the operating system.
+        // In this case, the activeView is currently deactivated and it orientation
+        // state could potentially be wrong.  Wait for the next stage resize event
+        // so that the runtime has a chance to discover its orientation and then
+        // properly update and activate the view
+        if (navigator)
+        {
+            if (navigator.activeView)
+                systemManager.stage.addEventListener(Event.RESIZE, stage_resizeHandler);
+        }
+
         // Set the stage focus to the navigator's active view
         if (systemManager.stage.focus == null && navigator)
         {
@@ -691,6 +703,21 @@
             else
                 systemManager.stage.focus = navigator;
         }
+    }
+
+    /**
+     *  @private
+     *  This method is called on the first resize event after an application
+     *  has been invoked after being suspended in the background.
+     */
+    private function stage_resizeHandler(event:Event):void
+    {
+        systemManager.stage.removeEventListener(Event.RESIZE, stage_resizeHandler);
+
+        // The active view was deactivated when the application was suspended.  We
+        // need to reactivate it here.
+        if (!activeView.isActive)
+            activeView.setActive(true);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 20062
Author:   chiedozi@adobe.com
Date:     2011-02-02T18:59:57.668632Z

Log Message:
-----------
Removed Flash @playerversion tags from ViewNavigatorApplication and ViewNavigatorApplicationBase because the components are AIR only

QE notes:
Doc notes:
Bugs:
Reviewer: Jason San Jose
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
@@ -110,7 +110,6 @@
  *  @includeExample examples/views/ViewNavigatorApplicationView2.mxml -noswf
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -176,7 +175,6 @@
      *  Constructor.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -269,7 +267,6 @@
      *  @see ViewNavigator
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -312,7 +309,6 @@
      *  @default null
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -344,7 +340,6 @@
      *  @default null
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -386,7 +381,6 @@
      *  @see spark.skins.mobile.ActionBarSkin
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -427,7 +421,6 @@
      *  @see spark.components.ViewNavigator#actionLayout
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -473,7 +466,6 @@
      *  @see spark.skins.mobile.ActionBarSkin
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -514,7 +506,6 @@
      *  @see spark.components.ViewNavigator#navigationLayout
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -559,7 +550,6 @@
      *  @see spark.components.ViewNavigator#title
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -605,7 +595,6 @@
      *  @see spark.skins.mobile.ActionBarSkin
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -646,7 +635,6 @@
      *  @see spark.components.ViewNavigator#titleLayout
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 19737
Author:   jasonsj@adobe.com
Date:     2011-01-12T22:13:58.979077Z

Log Message:
-----------
SDK-28851 Symbol was added twice when changing enabled state
SDK-28159 Account for empty and null title in ActionBar

Removed unused textAlign code in ButtonSkinBase
Removed B-feature code for focusColor in MobileSkin

QE notes: None
Doc notes:
Bugs:
SDK-28851 CheckBox icon not properly updated when iconPlacement=right, checkbox is disabled and style changed
SDK-28159 ActionBar titleDisplay should measure the same for null and empty title
Reviewer: jszeto
Tests run: checkintests
Is noteworthy for integration: No

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

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as
@@ -105,11 +105,6 @@
     //  Overridden methods
     //
     //--------------------------------------------------------------------------
-
-    override public function get isFocusColorSupported():Boolean
-    {
-        return false;
-    }

     /**
      *  @private


final changes before bed, too tired to recall

--- return_of_the_rtmfpcat.as
+++ return_of_the_rtmfpcat.as
@@ -215,6 +215,8 @@

         private function poll_for_id():void
         {
+            puts("Facilitator: got " + rcp_pairs + " connections... polling for another");
+
             var s_f:Socket = new Socket();
             s_f.addEventListener(Event.CONNECT, function (e:Event):void {
                 puts("Facilitator: connected to " + fac_addr.host + ":" + fac_addr.port + ".");
@@ -239,7 +241,8 @@
                     /* Need to clear any outstanding timers to ensure
                      * that only one timer ever runs. */
                     clearTimeout(fac_poll_timeo_id);
-                    fac_poll_timeo_id = setTimeout(poll_for_id, FACILITATOR_POLL_INTERVAL);
+                    if(rcp_pairs < MAXIMUM_RCP_PAIRS)
+                        fac_poll_timeo_id = setTimeout(poll_for_id, FACILITATOR_POLL_INTERVAL);
                 }
             });
             s_f.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (e:SecurityErrorEvent):void {


now wrapping anchor labels

now wrapping anchor labels

--- WeaveUISpark/src/weave/visualization/plotters/AnchorPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/AnchorPlotter.as
@@ -29,6 +29,7 @@
 	import weave.Weave;
 	import weave.api.data.IQualifiedKey;
 	import weave.api.newDisposableChild;
+	import weave.api.newLinkableChild;
 	import weave.api.primitives.IBounds2D;
 	import weave.api.registerLinkableChild;
 	import weave.api.ui.IPlotTask;
@@ -90,6 +91,7 @@
 		public const enableWedgeColoring:LinkableBoolean = registerLinkableChild(this, new LinkableBoolean(false), fillColorMap);
 		public const colorMap:ColorRamp = registerLinkableChild(this, new ColorRamp(ColorRamp.getColorRampXMLByName("Paired")),fillColorMap);
 		public var anchorColorMap:Dictionary;
+		public const wordWrap:LinkableNumber = registerLinkableChild(this, new LinkableNumber(200));

 		public var drawingClassLines:Boolean = false;//this divides the circle into sectors which represent classes (number of sectors = number of classes)
@@ -246,6 +248,7 @@
 				LinkableTextFormat.defaultTextFormat.copyTo(_bitmapText.textFormat);
 				_bitmapText.x = tempPoint.x;
 				_bitmapText.y = tempPoint.y;
+				_bitmapText.maxWidth = wordWrap.value;

 				// draw almost-invisible rectangle behind text
 				/*_bitmapText.getUnrotatedBounds(_tempBounds);


Transferred from the Adobe Open Source Subversion Repository

Revision: 8953
Author:   cframpto@adobe.com
Date:     2009-07-31T15:03:43.191943Z

Log Message:
-----------
Per the signoff, removed the debug code from RET.

SDK-22385.  Programatically giving focus to RET should work correctly now.

SDK-22384.  RET implements IFocusManagerComponent now so you can tab into one.

SDK-22391.  Fixed an autoSize bug in updateDisplayList().

Reworked the textFlow getter which wasn't quite right if there were uncommitted properties.

Change the selection behavior on focusIn to be consistent with Halo with one exception.  The focusIn behavior is still subject to change but this is closer to final than what we have now.

As of this change, on focusIn, if there is no selection, if multiline (ie TextArea and RET), the insertion pt is set to 0,0, and if !multiline (ie TextInput) all the text is selected.  If the text/textFlow is set while the component already has focus the insertion pt is set to 0,0 (for ex. NumericStepper clicking up or down arrow).

The only remaining difference I know of between spark and halo is for TextInput.  halo TextInput on focusIn only remembers the previous selection, whether set programatically or with the mouse, if a selection was programatically set at some point.  spark TextInput will remember a previous selection regardless of how it was set.  The halo behavior doesn't make sense to me but we may end up changing spark to match.

QE notes: since the focusIn change didn't break any TextArea/TextInput tests that means we don't have any
Doc notes:
Bugs: SDK-22385, SDK-22384, SDK-22391
Reviewer: Gordon
Tests run: mustella TextInput TextArea passed NumericStepper 2 failures because insertion pt is now 0,0 rather than end of text
Is noteworthy for integration: RET is now focusable with tab or programatically with setFocus(), insertion point on focusIn changes

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/components/supportClasses/SkinnableTextBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -72,6 +72,7 @@
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
+import mx.managers.IFocusManagerComponent;
 import mx.managers.ISystemManager;
 import mx.resources.ResourceManager;
 import mx.utils.ObjectUtil;
@@ -222,7 +223,7 @@
  *  @productversion Flex 4
  */
 public class RichEditableText extends UIComponent
-    implements IViewport, IIMESupport
+    implements IViewport, IFocusManagerComponent, IIMESupport
 {
     include "../core/Version.as";

@@ -295,14 +296,6 @@
      */
     private static var staticTextFormat:TextFormat;

-    /**
-     *  @private
-     *  Used for debugging.
-     *  Set this to true to get trace output
-     *  showing what TextContainerManager APIs are being called.
-     */
-    mx_internal static var debug:Boolean = false;
-
     //--------------------------------------------------------------------------
     //
     //  Class properties
@@ -959,6 +952,17 @@
      */
     private function get editingMode():String
     {
+        // Note: this could be called before all properties are committed.
+
+        if (enabledChanged || editableChanged || selectableChanged)
+        {
+            updateEditingMode();
+
+            enabledChanged = false;
+            editableChanged = false;
+            selectableChanged = false;
+        }
+
         return _textContainerManager.editingMode;
     }

@@ -967,9 +971,6 @@
      */
     private function set editingMode(value:String):void
     {
-        if (debug)
-            trace("editingMode = ", value);
-
         _textContainerManager.editingMode = value;
     }

@@ -1481,15 +1482,29 @@
      */
     public function get textFlow():TextFlow
     {
+        // Note: this could be called before all properties are committed.
+
         // We might not have a valid _textFlow for two reasons:
         // either because the 'text' was set (which is the state
         // after construction) or because the 'content' was set.
         if (!_textFlow)
         {
             if (_content != null)
+            {
                 _textFlow = createTextFlowFromContent(_content);
+                _content = null;
+            }
             else
+            {
                 _textFlow = staticPlainTextImporter.importToFlow(_text);
+            }
+        }
+
+        // Make sure the interactionManager is added to this textFlow.
+        if (textChanged || contentChanged || textFlowChanged)
+        {
+            _textContainerManager.setTextFlow(_textFlow);
+            textChanged = contentChanged = textFlowChanged = false;
         }

         // If not read-only, make sure the textFlow has a composer in
@@ -1588,7 +1603,7 @@

     //--------------------------------------------------------------------------
     //
-    //  Methods: UIComponent
+    //  Overridden Methods: UIComponent
     //
     //--------------------------------------------------------------------------

@@ -1640,6 +1655,64 @@
         return child.parent.removeChild(child);
     }

+    /**
+     *  @private
+     */
+    override public function setFocus():void
+    {
+        // We are about to set focus on this component.  If it is due to
+        // a programmatic focus change we have to programatically do what the
+        // mouseOverHandler and the mouseDownHandler do so that the user can
+        // type in this component without using the mouse first.
+        //
+        //   1) TCM addActivationEventListeners() called so that event handlers
+        //      are in place to catch the upcoming FocusEvent.FOCUS_IN which
+        //      will cause our focusInHandler to be called.
+        //   2) Make sure there is a textFlow with an interactionManager
+        //      in place so that selection/editing can occur.  Our focusIn
+        //      handler does this indirectly for the editable case since
+        //      to set a selection, there must be a textFlow in this state.
+        //
+        // We can't call addActivationEventListeners() directly but it is
+        // called by TCM.setTextFlow() which is called by the textFlow getter.
+        // The textFlow getter also makes sure there is an interactionManager
+        // in place.
+        //
+        // Alternatively, we could call convertToTextFlowWithComposer() if it
+        // was made accessible.  This eliminates the need for
+        // addActivationEventListeners(), since the text flow with a composer
+        // is put in place immediately.
+
+        if (editingMode != EditingMode.READ_ONLY)
+        {
+            if (_textContainerManager.handlersState ==
+                TextContainerManager.HANDLERS_NOTADDED ||
+                _textContainerManager.composeState !=
+                TextContainerManager.COMPOSE_COMPOSER)
+            {
+                textFlow;
+            }
+        }
+
+        super.setFocus();
+     }
+
+    /**
+     *  @private
+     */
+    override public function drawFocus(isFocused:Boolean):void
+    {
+        if (isFocused)
+        {
+            // For some composite components, the focused object may not
+            // be "this". If so, we don't want to draw the focus.
+            if (focusManager.getFocus() != this)
+                return;
+        }
+
+        super.drawFocus(isFocused);
+    }
+
     /**
      *  @private
      */
@@ -1659,8 +1732,6 @@
             _textContainerManager.textLineCreator =
                 ITextLineCreator(embeddedFontContext);

-            if (debug)
-                trace("hostFormat=");
             _textContainerManager.hostFormat =
             hostFormat = new CSSTextLayoutFormat(this);
             // Note: CSSTextLayoutFormat has special processing
@@ -1672,8 +1743,6 @@

         if (selectionFormatsChanged)
         {
-            if (debug)
-                trace("invalidateInteractionManager()");
             _textContainerManager.invalidateSelectionFormats();

             selectionFormatsChanged = false;
@@ -1742,11 +1811,17 @@
         if (textChanged || textFlowChanged || contentChanged)
         {
             // If the text, textFlow or content changed, there is no selection.
-            // If we already have focus, set the selection, since we've
-            // already  executed our focusIn handler where this is normally
-            // done.
-            if (getFocus() == this)
-                setSelectionBasedOnScrolling();
+            // If we already have focus, set the selection to 0,0 so there is
+            // an insertion point.  Since the text was changed programatically
+            // the caller should set the selection to the desired position.
+            if (getFocus() == this && editingMode != EditingMode.READ_ONLY)
+            {
+                var selectionManager:ISelectionManager = getSelectionManager();
+                selectionManager.selectRange(0, 0);
+                if (!selectionManager.focused)
+                    selectionManager.focusInHandler(null);
+                releaseSelectionManager();
+            }

             // Handle the case where the initial text, textFlow or content
             // is displayed as a password.
@@ -1784,13 +1859,16 @@
                 _textContainerManager.setText(_text);
             }

-            // Must preserve the selection, if there was one.
-            var selectionManager:ISelectionManager = getSelectionManager();
-
-            // The visible selection will be refreshed during the update.
-            selectionManager.selectRange(oldAnchorPosition, oldActivePosition);
-
-            releaseSelectionManager();
+            if (editingMode != EditingMode.READ_ONLY)
+            {
+                // Must preserve the selection, if there was one.
+                selectionManager = getSelectionManager();
+
+                // The visible selection will be refreshed during the update.
+                selectionManager.selectRange(oldAnchorPosition, oldActivePosition);
+
+                releaseSelectionManager();
+            }

             displayAsPasswordChanged = false;
         }
@@ -1996,12 +2074,8 @@
         // to be remeasured.  If one of the dimension changes, the text may
         // compose differently and have a different size which the layout
         // manager needs to know.
-        if (autoSize)
-        {
-            autoSize = remeasureText(unscaledWidth, unscaledHeight)
-            if (autoSize)
-                return;
-        }
+        if (autoSize && remeasureText(unscaledWidth, unscaledHeight))
+            return;

         super.updateDisplayList(unscaledWidth, unscaledHeight);

@@ -2020,9 +2094,6 @@
             _textContainerManager.compositionWidth = unscaledWidth;
             _textContainerManager.compositionHeight = unscaledHeight;
         }
-
-        if (debug)
-            trace("updateContainer()");

         _textContainerManager.updateContainer();
     }
@@ -2371,47 +2442,6 @@

         editingMode = priorEditingMode;
     }
-
-    /**
-     *  @private
-     *  When this is called the component has focus.
-     */
-    private function setSelectionBasedOnScrolling(always:Boolean=true):void
-    {
-        // No selection if read-only.
-        if (editingMode == EditingMode.READ_ONLY)
-            return;
-
-        var selectionManager:ISelectionManager = getSelectionManager();
-
-        // Only set the selection if there isn't already one.
-        if (!always && selectionManager.hasSelection())
-        {
-            releaseSelectionManager();
-            return;
-        }
-
-        // If scrolling, the selection/insertion point is at the begining.
-        // Othewise, it is at the end.
-        var position:int = _clipAndEnableScrolling ? 0 : int.MAX_VALUE;
-
-        selectionManager.selectRange(position, position);
-
-        // This should not be necessary but it is if the text is changed after
-        // the component already has focus.  Need the selectionFormatState
-        // to be SelectionFormatState.FOCUSED rather than the initial
-        // SelectionFormatState.UNFOCUSED and need _isActive to be true
-        // so that on focusOut the selectionFormatState will correctly
-        // transition to SelectionFormatState.UNFOCUSED.
-        if (!selectionManager.focused)
-            selectionManager.focusInHandler(null);
-
-        // Refresh the selection.  This does not cause a damage event.
-        selectionManager.refreshSelection();
-
-        releaseSelectionManager();
-
-    }

     /**
      *  @private
@@ -3143,10 +3173,20 @@

         if (editingMode == EditingMode.READ_WRITE)
         {
-            // If no selection, give it one so that the underlying selection
-            // manager is put in place if it isn't already there and editing
-            // will work without doing a mouse click or mouse hover first.
-            setSelectionBasedOnScrolling(false);
+            var selectionManager:ISelectionManager = getSelectionManager();
+
+            if (!selectionManager.hasSelection())
+            {
+                if (multiline)
+                    selectionManager.selectRange(0, 0);
+                else
+                    selectionManager.selectRange(0, int.MAX_VALUE);
+            }
+
+            // Refresh the selection.  This does not cause a damage event.
+            selectionManager.refreshSelection();
+
+            releaseSelectionManager();

             if (_imeMode != null)
             {
@@ -3176,7 +3216,6 @@

         if (focusManager && multiline)
             focusManager.defaultButtonEnabled = false;
-
     }

     /**


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

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

 package mx.preloaders
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17891
Author:   smgilson@adobe.com
Date:     2010-09-28T11:59:19.704021Z

Log Message:
-----------
Fix ASDoc comments to add closing </p> tags

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as
@@ -277,10 +277,10 @@
      *  spark.skins.mobile.ActionBarSkin.
      *
      *
The default ActionBarSkin class defines the navigationGroup to appear
-     *  to the left of the titleGroup area of the ActionBar.
+     *  to the left of the titleGroup area of the ActionBar.

      *
      *
Create a custom skin to change the default location and appearance of
-     *  the navigationGroup.
+     *  the navigationGroup.

      *
      *  @default null
      *
@@ -372,10 +372,10 @@
      *  ActionBar container is determined by the
      *  spark.skins.mobile.ActionBarSkin class. By default, the ActionBarSkin
      *  class defines the titleGroup to appear in the center of the ActionBar,
-     *  using the space remaining between navigationGroup and actionGroup.
+     *  using the space remaining between navigationGroup and actionGroup.

      *
      *
Create a custom skin to change the default location and appearance of
-     *  the titleGroup.
+     *  the titleGroup.

      *
      *  @default null
      *
@@ -389,7 +389,7 @@
     public function get titleContent():Array
     {
         if (titleGroup)
-			return titleGroup.getMXMLContent();
+            return titleGroup.getMXMLContent();
         else
             return contentGroupProperties[TITLE_GROUP_PROPERTIES_INDEX].content;
     }
@@ -424,7 +424,7 @@
      *
If titleContent is null, titleDisplay is displayed in place of
      *  titleGroup. In this case, titleDisplay is positioned with
      *  padded using paddingLeft and paddingRight properties of
-     *  titleLayout if defined.
+     *  titleLayout if defined.

      *
      *  @default HorizontalLayout
      *  @see #titleContent
@@ -470,10 +470,10 @@
      *  ActionBar container is determined by the skin.
      *
      *
The default ActionBarSkin class defines the actionGroup to appear
-     *  to the right of the title display area of the ActionBar.
+     *  to the right of the title display area of the ActionBar.

      *
      *
Create a custom skin to change the default location and appearance of
-     *  the actionGroup.
+     *  the actionGroup.

      *
      *  @default null
      *
@@ -629,7 +629,7 @@
         else if (instance == titleGroup)
         {
             group = titleGroup;
-            index = TITLE_GROUP_PROPERTIES_INDEX;
+            index = TITLE_GROUP_PROPERTIES_INDEX;
         }
         else if (instance == actionGroup)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19344
Author:   egeorgie@adobe.com
Date:     2010-12-14T00:38:13.222484Z

Log Message:
-----------
PARB changes for density scaling

- authorDensity -> applicationDPI, type changed to int
- DensityUtil not visible in the documentation anymore [ExcludeClass]
- DensityUtil. screenDPIToDeviceDensity() -> classifyDPI(), returns int now
- DensityUtil. getDensityScale() -> getDPIScale(), takes int now
- DeviceDensity enum -> DPIClassification enum
- ISystemManager.densityScale property has been removed.
- New property to Application -> runtimeDPI.

QE notes: can start writing automated tests now
Doc notes:
Bugs:
Reviewer: Alex, Glenn, Jason SJ,
Tests run: checkintest
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</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/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/DensityUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DeviceDensity.as" copyfrom-rev="19256" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DPIClassification.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationAngledButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DeviceDensity.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreen.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.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@1265246 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as
@@ -14,7 +14,7 @@
 import flash.display.DisplayObject;
 import flash.display.Graphics;

-import mx.core.DeviceDensity;
+import mx.core.DPIClassification;

 import spark.skins.mobile.supportClasses.SelectableButtonSkinBase;
 import spark.skins.mobile160.assets.CheckBox_down;
@@ -81,9 +81,9 @@
         layoutPaddingTop = 0;
         layoutPaddingBottom = 0;

-        switch (authorDensity)
+        switch (applicationDPI)
         {
-            case DeviceDensity.PPI_320:
+            case DPIClassification.DPI_320:
             {
                 upIconClass = spark.skins.mobile320.assets.CheckBox_up;
                 upSelectedIconClass = spark.skins.mobile320.assets.CheckBox_up;
@@ -100,7 +100,7 @@

                 break;
             }
-            case DeviceDensity.PPI_240:
+            case DPIClassification.DPI_240:
             {
                 upIconClass = spark.skins.mobile240.assets.CheckBox_up;
                 upSelectedIconClass = spark.skins.mobile240.assets.CheckBox_up;


Transferred from the Adobe Open Source Subversion Repository

Revision: 20496
Author:   jszeto@adobe.com
Date:     2011-03-01T00:06:13.865106Z

Log Message:
-----------
Percent height TextArea internal scrolling bug fix

http://bugs.adobe.com/jira/browse/SDK-29664 - soft keyboard covers textarea on device

There were two problems. First, the TextAreaSkin was not invalidating the caret position on a resize. The fix is to add a resize handler and invalidate the caret position. The second problem was the TextArea skin's Scroller's viewport didn't have the correct dimensions when the scroll snapping code was run. The fix is to call Scroller.validateNow to ensure the Scroller's viewport is the correct size.

QE notes: none
Doc notes: none
Bugs: SDK-29664
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -65,6 +65,8 @@
     public function TextAreaSkin()
     {
         super();
+
+        addEventListener(Event.RESIZE, resizeHandler);

         switch (applicationDPI)
         {
@@ -364,6 +366,7 @@
                 // Scroll the internal Scroller to ensure the caret is visible
                 if (textHeight > unscaledTextHeight)
                 {
+
                     if (charIndex == textDisplay.text.length)
                     {
                         // Make sure textDisplayGroup is validated, otherwise the
@@ -417,6 +420,8 @@
                             textDisplayGroup.verticalScrollPosition = caretTopPosition;
                         }
                     }
+
+                    scroller.validateNow();
                 }

                 // Convert to local coordinates
@@ -449,7 +454,8 @@

 		var maxVsp:Number = textDisplayGroup.contentHeight > textDisplayGroup.height ?
 			textDisplayGroup.contentHeight-textDisplayGroup.height : 0;
-		textDisplayGroup.verticalScrollPosition =
+
+        textDisplayGroup.verticalScrollPosition =
 			Math.min(Math.max(0,textDisplayGroup.verticalScrollPosition),maxVsp);
  	}

@@ -592,6 +598,16 @@
                 oldCaretBounds = newCaretBounds;
             }
         }
+    }
+
+    /**
+     *  @private
+     */
+    private function resizeHandler(event:Event):void
+    {
+        // Resizing needs to tickle the TextArea's internal auto-scroll logic
+        invalidateCaretPosition = true;
+        invalidateDisplayList();
     }

     /**