"Low Water" system to avoid bitrate change artifacts.

Also, improvements to segment begin/end logic.

--- HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
@@ -58,7 +58,7 @@
 			_timeOrigin = 0;
 			_timeOriginNeeded = true;

-			_segmentBeginSeconds = -1;
+			_segmentBeginSeconds = Number.MAX_VALUE;
 			_segmentLastSeconds = -1;

 			_firstSeekTime = 0;
@@ -87,6 +87,13 @@

 		public override function beginProcessFile(seek:Boolean, seekTime:Number):void
 		{
+			if(seek && !isBestEffort)
+			{
+				// Reset low water mark for the file handler so we don't drop stuff.
+				trace("RESETTING LOW WATER MARK");
+				flvLowWater = 0;
+			}
+
 			if( key && !key.isLoading && !key.isLoaded)
 				throw new Error("Tried to process segment with key not set to load or loaded.");

@@ -152,7 +159,7 @@
 				}
 			}

-			_segmentBeginSeconds = -1;
+			_segmentBeginSeconds = Number.MAX_VALUE;
 			_segmentLastSeconds = -1;
 			_lastInjectedSubtitleTime = -1;
 			_encryptedDataBuffer.length = 0;
@@ -336,11 +343,40 @@
 			return basicProcessFileSegment(input || new ByteArray(), true);
 		}

+
+		public static var flvLowWater:uint = 0;
+
 		private function handleFLVMessage(timestamp:uint, message:ByteArray):void
 		{
+			if(isBestEffort == false)
+			{
+				// Alway pass through SPS/PPS...
+				var alwaysPass:Boolean = false
+				if(message[0] == 9)
+				{
+					if(message[11] == FLVTags.VIDEO_CODEC_AVC_KEYFRAME
+						&& message[12] == FLVTags.AVC_MODE_AVCC)
+					{
+						trace("Got AVCC, always pass");
+						alwaysPass = true;
+					}
+				}
+
+
+				if(timestamp < flvLowWater - 100 && !alwaysPass)
+				{
+					trace("SKIPPING TOO LOW FLV TS @ " + timestamp);
+					return;
+				}
+
+				// Don't update low water if it's an always pass.
+				if(!alwaysPass)
+					flvLowWater = timestamp;
+			}
+
 			var timestampSeconds:Number = timestamp / 1000.0;

-			if(_segmentBeginSeconds < 0)
+			if(_segmentBeginSeconds > timestampSeconds)
 			{
 				_segmentBeginSeconds = timestampSeconds;
 				trace("Noting segment start time for " + segmentUri + " of " + timestampSeconds);


Bugfix: VolumetricPointLight constructor was ignoring alphas and ratios.

--- src/org/zozuar/volumetrics/VolumetricPointLight.as
+++ src/org/zozuar/volumetrics/VolumetricPointLight.as
@@ -47,8 +47,8 @@
 		public function VolumetricPointLight(width:uint, height:uint, occlusion:DisplayObject, colorOrGradient:*, alphas:Array = null, ratios:Array = null) {
 			if(colorOrGradient is Array) {
 				_colors = colorOrGradient.concat();
-				if(!ratios)	_ratios = colorOrGradient.map(function(item:*, i:int, arr:Array):int { return 0x100*i/(colorOrGradient.length+i-1) });
-				if(!alphas) _alphas = _colors.map(function(..._):Number { return 1 });
+				_ratios = ratios || colorOrGradient.map(function(item:*, i:int, arr:Array):int { return 0x100*i/(colorOrGradient.length+i-1) });
+				_alphas = alphas || _colors.map(function(..._):Number { return 1 });
 			} else {
 				_colors = [colorOrGradient, 0];
 				_ratios = [0, 255];


Added setRows() and getRows() to CustomDataGrid for viewing/editing a
2-D Array.

Change-Id: I11f107cdae5162684f18d3bbe8a5ca64366d58c8

--- WeaveUI/src/weave/ui/CustomDataGrid/CustomDataGrid.as
+++ WeaveUI/src/weave/ui/CustomDataGrid/CustomDataGrid.as
@@ -19,6 +19,7 @@

 package weave.ui.CustomDataGrid
 {
+	import mx.collections.ArrayCollection;
 	import mx.controls.DataGrid;
 	import mx.controls.dataGridClasses.DataGridColumn;
 	import mx.controls.listClasses.IListItemRenderer;
@@ -110,5 +111,60 @@
 			var columnDisplayWidth:Number = this.width - this.viewMetrics.right - this.viewMetrics.left;
 			return columnDisplayWidth;
 		}
+
+		/**
+		 * This function along with getRows() makes it easy to display and edit
+		 * a table of data stored as a two-dimensional Array.
+		 * @param tableWithHeader An Array of Arrays including a header row.
+		 */
+		public function setRows(tableWithHeader:Array):void
+		{
+			// make a copy of the data
+			var rows:Array = tableWithHeader.map(function(row:Array, i:int, a:Array):Array { return row.concat(); });
+			var header:Array = rows.shift();
+
+			dataProvider = null;
+			columns = header.map(
+				function(title:String, index:int, a:Array):DataGridColumn {
+					var dgc:DataGridColumn = new DataGridColumn(title);
+					dgc.dataField = index;
+					// if title is missing, override default headerText which is equal to dataField
+					if (!title)
+						dgc.headerText = '';
+					return dgc;
+				}
+			);
+			dataProvider = rows;
+		}
+
+		/**
+		 * This function along with setRows() makes it easy to display and edit
+		 * a table of data stored as a two-dimensional Array.
+		 * @return The (possibly) modified rows with columns in modified order.
+		 */
+		public function getRows():Array
+		{
+			var ac:ArrayCollection = dataProvider as ArrayCollection;
+			if (!ac)
+				throw new Error("dataProvider is not an ArrayCollection as expected.  setRows() must be called before getRows().");
+			var cols:Array = columns;
+			// data rows from dataProvider, reordered according to new column order
+			var rows:Array = ac.source.map(
+				function(row:Array, i:int, rows:Array):Array {
+					return row.map(
+						function(value:*, i:int, row:Array):* {
+							return row[(cols[i] as DataGridColumn).dataField];
+						}
+					);
+				}
+			);
+			// header row from possibly reordered columns
+			rows.unshift(cols.map(
+				function(col:DataGridColumn, i:int, a:Array):* {
+					return col.headerText;
+				}
+			));
+			return rows;
+		}
 	}
 }


Facebook chat updated to support new authentication with access_token instead of session_key and sig.

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

--- src/org/igniterealtime/xiff/auth/XFacebookPlatform.as
+++ src/org/igniterealtime/xiff/auth/XFacebookPlatform.as
@@ -42,9 +42,8 @@

 		public static const NS:String = "urn:ietf:params:xml:ns:xmpp-sasl";

-		public static var fb_api_key:String;
-		public static var fb_secret:String;
-		public static var fb_session_key:String;
+		public static var fb_app_id:String;
+		public static var fb_access_token:String;

 		/**
 		 * Creates a new XFacebookPlatform authentication object.
@@ -59,45 +58,6 @@
 			response.setNamespace( XFacebookPlatform.NS );

 			stage = 0;
-		}
-
-		public static function setFacebookSessionValues( api_key:String, secret:String, session_key:String ):void
-		{
-			fb_api_key = api_key;
-			fb_secret = secret;
-			fb_session_key = session_key;
-		}
-
-		/**
-		 * Construct the signature as described by Facebook api documentation.
-		 */
-		public static function formatSig( map:Dictionary ):String
-		{
-			var md5:MD5 = new MD5();
-
-			var a:Array = [];
-
-			for( var p:String in map )
-			{
-				var arg:* = map[ p ];
-
-				a.push( p + '=' + arg.toString() );
-			}
-
-			a.sort();
-
-			var s:String = a.join( '' );
-
-			if( fb_secret != null )
-			{
-				s += fb_secret;
-			}
-
-			var sig:ByteArray = new ByteArray();
-			sig.writeUTFBytes( s );
-			sig = md5.hash( sig );
-
-			return Hex.fromArray( sig );
 		}

 		/**
@@ -120,21 +80,19 @@
 			}

 			var responseMap:Dictionary = new Dictionary();
-			responseMap.api_key = fb_api_key;
+			responseMap.method = challengeMap.method;
+			responseMap.api_key = fb_app_id;
+			responseMap.access_token = fb_access_token;
 			responseMap.call_id = new Date().time;
-			responseMap.method = challengeMap.method;
+			responseMap.v = "1.0";
 			responseMap.nonce = challengeMap.nonce;
-			responseMap.session_key = fb_session_key;
-			responseMap.v = "1.0";
-			responseMap.sig = formatSig( responseMap );

-			var challengeResponse:String = "api_key=" + responseMap.api_key;
+			var challengeResponse:String = "method=" + responseMap.method;
+			challengeResponse += "&api_key=" + responseMap.api_key;
+			challengeResponse += "&access_token=" + responseMap.access_token;
 			challengeResponse += "&call_id=" + responseMap.call_id;
-			challengeResponse += "&method=" + responseMap.method;
+			challengeResponse += "&v=" + responseMap.v;
 			challengeResponse += "&nonce=" + responseMap.nonce;
-			challengeResponse += "&session_key=" + responseMap.session_key;
-			challengeResponse += "&sig=" + responseMap.sig;
-			challengeResponse += "&v=" + responseMap.v;
 			challengeResponse = Base64.encode( challengeResponse );

 			var resp:XML = response;


Convert parsed hidden layer IDs to numbers.

--- src/com/esri/viewer/managers/LayerCreator.as
+++ src/com/esri/viewer/managers/LayerCreator.as
@@ -125,7 +125,12 @@
         if (layerCreationProperties.showInLegend
             && layerCreationProperties.showInLegendHiddenLayers)
         {
-            tiledLayer.showInLegendHiddenLayers = layerCreationProperties.showInLegendHiddenLayers.split(",");
+            var hiddenLayers:Array = layerCreationProperties.showInLegendHiddenLayers.split(",");
+            for (var i:int = 0; i < hiddenLayers.length; i++)
+            {
+                hiddenLayers[i] = Number(hiddenLayers[i]); // convert to Numbers
+            }
+            tiledLayer.showInLegendHiddenLayers = hiddenLayers;
         }
         if (layerCreationProperties.displayLevels)
         {
@@ -170,7 +175,12 @@
         if (layerCreationProperties.showInLegend
             && layerCreationProperties.showInLegendHiddenLayers)
         {
-            dynLayer.showInLegendHiddenLayers = layerCreationProperties.showInLegendHiddenLayers.split(",");
+            var hiddenLayers:Array = layerCreationProperties.showInLegendHiddenLayers.split(",");
+            for (var i:int = 0; i < hiddenLayers.length; i++)
+            {
+                hiddenLayers[i] = Number(hiddenLayers[i]); // convert to Numbers
+            }
+            dynLayer.showInLegendHiddenLayers = hiddenLayers;
         }
         if (layerCreationProperties.autoRefresh > 0)
         {


Removed debug function

Removed debug function

--- src/Player.as
+++ src/Player.as
@@ -212,13 +212,5 @@
         }
       }
     }
-
-    private function debug(message:String, data:Object = null):void {
-      if (data) {
-        ExternalInterface.call("console.log", message, data);
-      } else {
-        ExternalInterface.call("console.log", message);
-      }
-    }
   }
 }


changed css class to allow rewriting of its url

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

--- src/reprise/css/CSS.as
+++ src/reprise/css/CSS.as
@@ -204,6 +204,10 @@
 		**/
 		public override function setURL(src : String) : void
 		{
+			if (!m_cssSegments)
+			{
+				m_cssSegments = new IndexedArray();
+			}
 			m_url = src;
 			m_cssFile = cssImportWithURL(src);
 			m_cssSegments[0] = m_cssFile;


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

--- frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as
+++ frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * 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.errors
+{
+
+import mx.messaging.messages.ErrorMessage;
+
+/**
+ *  This error indicates a problem serializing a message within a channel.
+ *  It provides a fault property which corresponds to an ErrorMessage generated
+ *  when this error is thrown.
+ */
+public class MessageSerializationError extends MessagingError
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  Constructs a new instance of the MessageSerializationError
+	 *  with the specified message.
+	 *
+	 *  @param msg String that contains the message that describes the error.
+     */
+    public function MessageSerializationError(msg:String, fault:ErrorMessage)
+    {
+        super(msg);
+        this.fault = fault;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Provides specific information about the fault that occurred and for
+     *  which message.
+     */
+    public var fault:ErrorMessage;
+}
+
+}


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

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

 package spark.components.gridClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18825
Author:   deeptika@adobe.com
Date:     2010-11-29T09:53:40.426187Z

Log Message:
-----------
Adding delegate for SkinnableDataContainerTabularData

QE notes:
Doc notes:
Bugs: FLEXENT-1374 (Automation delegate for spark SkinnableDataContainer is not defined)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkSkinnableDataContainerAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/manifest_automation_spark.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/tabularData/SkinnableDataContainerTabularData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/AutomationSparkClasses.as</path>

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

--- frameworks/projects/automation_spark/src/AutomationSparkClasses.as
+++ frameworks/projects/automation_spark/src/AutomationSparkClasses.as
@@ -41,6 +41,7 @@
 		import spark.automation.delegates.components.SparkPanelAutomationImpl;SparkPanelAutomationImpl;
 		import spark.automation.delegates.components.SparkRadioButtonAutomationImpl;SparkRadioButtonAutomationImpl;
 		import spark.automation.delegates.components.SparkSkinnableContainerAutomationImpl;SparkSkinnableContainerAutomationImpl;
+		import spark.automation.delegates.components.SparkSkinnableDataContainerAutomationImpl;SparkSkinnableDataContainerAutomationImpl;
 		import spark.automation.delegates.components.SparkSpinnerAutomationImpl;SparkSpinnerAutomationImpl;
 		import spark.automation.delegates.components.SparkTabBarAutomationImpl;SparkTabBarAutomationImpl;
 		import spark.automation.delegates.components.SparkTextAreaAutomationImpl;SparkTextAreaAutomationImpl;
@@ -75,6 +76,7 @@
 		import spark.automation.delegates.skins.spark.SparkUITextFieldGridItemRendererAutomationImpl;SparkUITextFieldGridItemRendererAutomationImpl;

 		import spark.automation.tabularData.SkinnableContainerTabularData;SkinnableContainerTabularData;
+		import spark.automation.tabularData.SkinnableDataContainerTabularData;SkinnableDataContainerTabularData;
 		import spark.automation.tabularData.SparkDataGridTabularData;SparkDataGridTabularData;


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

--- frameworks/projects/rpc/src/mx/messaging/events/MessageAckEvent.as
+++ frameworks/projects/rpc/src/mx/messaging/events/MessageAckEvent.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: 4665
Author:   cframpto@adobe.com
Date:     2009-01-26T15:08:35.965040Z

Log Message:
-----------
Comment out left over trace statement in damageHandler.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -2043,7 +2043,7 @@
     private function textFlow_damageHandler(
                         event:DamageEvent):void
     {
-        trace("damageHandler", event.damageStart, event.damageLength);
+        //trace("damageHandler", event.damageStart, event.damageLength);

         // The text flow changed.  It could have been either/or content or
         // styles within the flow.


Transferred from the Adobe Open Source Subversion Repository

Revision: 9592
Author:   cframpto@adobe.com
Date:     2009-08-25T21:06:23.898916Z

Log Message:
-----------
Fix SDK-22469 again (even though it isn't open) which I realized I rebroke when I removed the code to set contentWidth/Height to 0 in measure().  We don't want the scroller using old content values if we are remeasuring.

Removed code added last week to compositionCompleteHandler which if scrolling and toFit, reported the contentWidth as the compositionWidth in an attempt to make sure the scroller didn't add horizontal scroll bars.  This was the wrong approach.

QE notes: we really need a test in mustella for SDK-22469
Doc notes:
Bugs: SDK-22469
Reviewer: Gordon and Hans
Tests run: TextArea
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -2337,6 +2337,14 @@
     {
         super.measure();

+        // ScrollerLayout.measure() has heuristics for figuring out whether to
+        // use the actual content size or the preferred size when there are
+        // automatic scroll bars.  Force it to use the preferredSizes until
+        // the content sizes have been updated to accurate values.  This
+        // comes into play when remeasuring to reduce either the width/height.
+        _contentWidth = 0;
+        _contentHeight = 0;
+
         // percentWidth and/or percentHeight will come back in as constraints
         // on the remeasure if we're autoSizing.

@@ -3813,21 +3821,6 @@

         // TODO:(cframpto) handle blockProgression == RL

-        // If we are scrolling, and reflowing text to fit the width, there
-        // should never be a horizontal scroll bar. For the content width
-        // property which is in the IViewport interface, return the
-        // compositionWidth which will be more constant than the content
-        // width.  This is an attempt to minimize the scroller's confusion
-        // and many layouts due to the ever-changing content width.
-
-        if (_clipAndEnableScrolling &&
-            hostFormat.blockProgression == BlockProgression.TB &&
-            hostFormat.lineBreak == "toFit" &&
-            !isNaN(_textContainerManager.compositionWidth))
-        {
-            newContentWidth = _textContainerManager.compositionWidth;
-        }
-
         // TODO:(cframpto) Figure out if we still need these checks.
         // Error correction for rounding errors.  It shouldn't be so but
         // the contentWidth can be slightly larger than the requested


Transferred from the Adobe Open Source Subversion Repository

Revision: 5365
Author:   cframpto@adobe.com
Date:     2009-03-17T22:10:53.599213Z

Log Message:
-----------
TextView bugs.  fix setSelection and make it so there is no cursor if no focus or not active

QE Notes:
Doc Notes:
Bugs: SDK-19979, SDK-18072
Reviewers: Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -1611,8 +1611,6 @@

         // Need to regenerate text flow.
         invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();

         stylesChanged = true;
     }
@@ -2066,13 +2064,15 @@
             selectionColor, 1.0, BlendMode.NORMAL,
             0x000000, 1.0, BlendMode.INVERT);

+        // No cursor when no focus.
         interactionManager.noFocusSelectionFormat = new SelectionFormat(
             unfocusedSelectionColor, unfocusedAlpha, BlendMode.NORMAL,
-            unfocusedSelectionColor, unfocusedAlpha, BlendMode.NORMAL);
-
+            unfocusedSelectionColor, 0);
+
+        // No cursor when not active.
         interactionManager.inactiveSelectionFormat = new SelectionFormat(
             inactiveSelectionColor, inactiveAlpha, BlendMode.NORMAL,
-            inactiveSelectionColor, inactiveAlpha, BlendMode.NORMAL);
+            inactiveSelectionColor, 0);
     }

     /**
@@ -2247,8 +2247,8 @@
             _selectable = true;
         }

-        textFlow.interactionManager.setSelection(anchorPosition, activePosition);
-        textFlow.flowComposer.updateAllContainers();
+        // The damage handler will update the display.
+        textFlow.interactionManager.setSelection(anchorPosition, activePosition);
       }

     /**


Added helper function to ManagedObject class which removes object from context.

--- src/Modi/ManagedObject.as
+++ src/Modi/ManagedObject.as
@@ -386,5 +386,13 @@
         {
             _contextReference = value;
         }
+
+        public function removeSelfFromContext():void
+        {
+            if (this.contextReference != null)
+            {
+                this.contextReference.removeFromContext(this.contextId);
+            }
+        }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10503
Author:   cframpto@adobe.com
Date:     2009-09-22T16:18:51.950794Z

Log Message:
-----------
Prepping to update textLayout sources with a more recent build.  TLFTextField is no longer in textLayout since we now own it.  It is being moved to spark.swc and will live with UITLFTextField in mx.core.

QE notes:
Doc notes:
Bugs:
Reviewer: Gordon asked me to do this
Tests run: checkintests and a few of my own that use TLFTextField
Is noteworthy for integration: perhaps

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_textField</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/TextFieldFactory.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_textField/src/flashx/textLayout/controls/TLFTextField.as" copyfrom-rev="10498" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/TLFTextField.as</path>

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

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package flashx.textLayout.controls
+package mx.core
 {

 import flash.display.DisplayObject;
@@ -57,10 +57,10 @@
 import flashx.textLayout.formats.LineBreak;
 import flashx.textLayout.formats.TextDecoration;
 import flashx.textLayout.formats.TextLayoutFormat;
-import flashx.textLayout.tlf_internal;
-
-// FIXME (gosmith): mx_internal once the class moves to mx.core
-use namespace tlf_internal;
+
+import mx.core.mx_internal;
+
+use namespace mx_internal;

 /**
  *  TLFTextField is a Sprite which displays text by using the new
@@ -141,10 +141,10 @@
 	 *  @private
 	 *  TextField has fixed 2-pixel padding.
 	 */
-	tlf_internal static const PADDING_LEFT:Number = 2;
-	tlf_internal static const PADDING_TOP:Number = 2;
-	tlf_internal static const PADDING_RIGHT:Number = 2;
-	tlf_internal static const PADDING_BOTTOM:Number = 2;
+	mx_internal static const PADDING_LEFT:Number = 2;
+	mx_internal static const PADDING_TOP:Number = 2;
+	mx_internal static const PADDING_RIGHT:Number = 2;
+	mx_internal static const PADDING_BOTTOM:Number = 2;

 	/**
 	 *  @private
@@ -902,7 +902,7 @@
 	 *  The getter returns a copy of the object stored here.
 	 *  Note that No field of this TextFormat will ever be null.
 	 */
-	tlf_internal var _defaultTextFormat:TextFormat;
+	mx_internal var _defaultTextFormat:TextFormat;

 	/**
 	 *  @copy flash.text.TextField#defaultTextFormat
@@ -2949,15 +2949,16 @@
 import flash.text.engine.Kerning;

 import flashx.textLayout.container.TextContainerManager;
-import flashx.textLayout.controls.TLFTextField;
 import flashx.textLayout.elements.IConfiguration;
 import flashx.textLayout.formats.ITextLayoutFormat;
 import flashx.textLayout.formats.LeadingModel;
 import flashx.textLayout.formats.LineBreak;
 import flashx.textLayout.formats.TextDecoration;
-import flashx.textLayout.tlf_internal;
-
-use namespace tlf_internal;
+
+import mx.core.TLFTextField;
+import mx.core.mx_internal;
+
+use namespace mx_internal;

 /**
  *  @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 15526
Author:   chaase@adobe.com
Date:     2010-04-16T23:14:38.571769Z

Log Message:
-----------
Two effects fixes, one states/SetProperty fix.
The Fade fix allows objects which don't exist in the next state, but which don't have valid values set in that state for position/orientation, to fade out in place.
The states fix cleans up the layout constraint docs in UIComponent and fixes logic in SetProperty that makes it possible to actually unset these properties in MXML.
The AnimateTransform fix cleans up logic when using AnimateTransform directly to auto-animate properties that change between states.

QE notes: Fade_accessor Fade_relevantProperties_Default fails because the affectedProperties of Fade has changed with one of these fixes. The test needs to be updated.
Doc notes: None
Bugs: sdk-25389, sdk-24989, sdk-24925
Reviewer: Corey (UIComponent, SetProperty) and Jason (the rest)
Tests run: checkintests, Mustella spark/effects, mx/states
Is noteworthy for integration: yes: downstream tools wanted fix for sdk-24925

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Resize.as
+++ frameworks/projects/spark/src/spark/effects/Resize.as
@@ -264,7 +264,8 @@
     override mx_internal function captureValues(propChanges:Array,
         setStartValues:Boolean, targetsToCapture:Array = null):Array
     {
-        var propertyChanges:Array = super.captureValues(propChanges, setStartValues);
+        var propertyChanges:Array =
+            super.captureValues(propChanges, setStartValues, targetsToCapture);

         if (setStartValues)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17301
Author:   aharui@adobe.com
Date:     2010-08-12T15:00:49.178683Z

Log Message:
-----------
Handle other ways of embedding in TextUtil resolveFontLookup

QE notes: none
Doc notes: none
Bugs: SDK-25935, SDK-25337
Reviewer: Carol
Tests run: checkintests mustella/gumbo/RichEditableText
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/TextUtil.as

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

--- frameworks/projects/spark/src/spark/utils/TextUtil.as
+++ frameworks/projects/spark/src/spark/utils/TextUtil.as
@@ -13,6 +13,7 @@
 {

 import flash.text.engine.ElementFormat;
+import flash.text.engine.FontDescription;
 import flash.text.engine.FontLookup;

 import flashx.textLayout.compose.ISWFContext;
@@ -189,7 +190,11 @@
             {
                 return FontLookup.EMBEDDED_CFF;
             }
-        }
+			if (swfContext.callInContext( FontDescription.isFontCompatible, FontDescription, [name, format.fontWeight, format.fontStyle]))
+				return FontLookup.EMBEDDED_CFF;
+		}
+		else if (FontDescription.isFontCompatible(format. fontFamily, format.fontWeight, format.fontStyle))
+			return FontLookup.EMBEDDED_CFF;

         return FontLookup.DEVICE;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 2800
Author:   jimurphy@adobe.com
Date:     2008-08-11T16:49:08.694923Z

Log Message:
-----------
integrate:
Vellum build 147
player build 571

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/player/win/Install Flash Player 10 Plugin.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/lnx/flashplayer.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_importExport.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/utils/TextUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/lnx/install_flash_player_10_linux.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/win/Install Flash Player 10 ActiveX.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_model.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/lnx/libflashplayer.so.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/win/FlashPlayer.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/mac/Flash Player.app.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/player/10/playerglobal.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_edit.swc</path>

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

--- frameworks/projects/spark/src/spark/utils/TextUtil.as
+++ frameworks/projects/spark/src/spark/utils/TextUtil.as
@@ -14,9 +14,9 @@

 import flash.utils.describeType;

-import text.model.ICharacterAttributes;
-import text.model.IContainerAttributes;
-import text.model.IParagraphAttributes;
+import text.model.ICharacterFormat;
+import text.model.IContainerFormat;
+import text.model.IParagraphFormat;
 import text.model.LeafElement;
 import text.model.Paragraph;
 import text.model.TextFlow;
@@ -38,9 +38,9 @@

     /**
      *  @private
-     *  An Array of the names of all text attributes, in no particular order.
+     *  An Array of the names of all text formats, in no particular order.
      */
-    public static var ALL_ATTRIBUTE_NAMES:Array = [];
+    public static var ALL_FORMAT_NAMES:Array = [];

     /**
      *  @private
@@ -50,7 +50,7 @@
      *  marginLeft -> paragraph
      *  fontSize -> character
      */
-    public static var ATTRIBUTE_MAP:Object = {};
+    public static var FORMAT_MAP:Object = {};

     /**
      *  @private
@@ -75,34 +75,34 @@

     /**
      *  @private
-     *  Initializes the ATTRIBUTE_MAP by using describeType()
-     *  to enumerate the properties of the IContainerAttribues,
-     *  IParagraphAttributes, and ICharacterAttributes interfaces.
+     *  Initializes the FORMAT_MAP by using describeType()
+     *  to enumerate the properties of the IContainerFormat,
+     *  IParagraphFormat, and ICharacterFormat interfaces.
      */
     private static function initClass():void
     {
         var type:XML;
         var name:String;

-        type = describeType(IContainerAttributes);
+        type = describeType(IContainerFormat);
         for each (name in type.factory.accessor.@name)
         {
-            ALL_ATTRIBUTE_NAMES.push(name);
-            ATTRIBUTE_MAP[name] = CONTAINER;
+            ALL_FORMAT_NAMES.push(name);
+            FORMAT_MAP[name] = CONTAINER;
         }

-        type = describeType(IParagraphAttributes);
+        type = describeType(IParagraphFormat);
         for each (name in type.factory.accessor.@name)
         {
-            ALL_ATTRIBUTE_NAMES.push(name);
-            ATTRIBUTE_MAP[name] = PARAGRAPH;
+            ALL_FORMAT_NAMES.push(name);
+            FORMAT_MAP[name] = PARAGRAPH;
         }

-        type = describeType(ICharacterAttributes);
+        type = describeType(ICharacterFormat);
         for each (name in type.factory.accessor.@name)
         {
-            ALL_ATTRIBUTE_NAMES.push(name);
-            ATTRIBUTE_MAP[name] = CHARACTER;
+            ALL_FORMAT_NAMES.push(name);
+            FORMAT_MAP[name] = CHARACTER;
         }
     }


FIX https://issues.apache.org/jira/browse/FLEX-33813 (DataGrid goes blank when scrolled and dataProvider is changed )

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -5445,8 +5445,9 @@
                 // No caret item so reset caret and vsp.
                 else
                 {
-                    caretRowIndex = _dataProvider.length > 0 ? 0 : -1;
-                    verticalScrollPosition = 0;
+                    caretRowIndex = _dataProvider.length > 0 ? 0 : -1;
+                   validateNow();
+                   verticalScrollPosition = 0;
                 }

                 break;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5119
Author:   smgilson@adobe.com
Date:     2009-03-01T15:19:39.936226Z

Log Message:
-----------
Clean up some ASDoc tags from the addition of the @productversion/@playerversion tags

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/ResultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.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/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.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/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/NCManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/Base64Encoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/StringValidator.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_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IInteractiveObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ContainerRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/Schema.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/HexEncoder.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/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectContainerInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SoundEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISpriteInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/HaloRectBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/Operation.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -169,10 +169,10 @@
      */
     public function set allowMultipleSelection(value:Boolean):void
     {
-    	if (value == _allowMultipleSelection)
-    		return
-
-    	_allowMultipleSelection = true;
+        if (value == _allowMultipleSelection)
+            return
+
+        _allowMultipleSelection = true;
     }

     //----------------------------------
@@ -203,7 +203,7 @@
      *  @productversion Flex 4
      */
     override public function get selectedIndex():int
-    {
+    {
         if (!allowMultipleSelection)
             return super.selectedIndex;

@@ -244,11 +244,6 @@
      *  TODO: describe
      *
      *  @default null
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
      */
     /**
      *  Selected indices for this component.
@@ -291,10 +286,6 @@
      *
      *  @default null
      *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
      */
     /**
      *  Selected items for this component.


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

--- frameworks/projects/spark/src/spark/primitives/Path.as
+++ frameworks/projects/spark/src/spark/primitives/Path.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//  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: 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@1285776 13f79535-47bb-0310-9956-ffa450edef68

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

 package spark.primitives
 {


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

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


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/mx/src/mx/events/VideoEvent.as
+++ frameworks/projects/mx/src/mx/events/VideoEvent.as
@@ -0,0 +1,453 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 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.events
+{
+
+import flash.events.Event;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ *  The VideoEvent class represents the event object passed to the event listener for
+ *  events dispatched by the VideoDisplay control, and defines the values of
+ *  the VideoDisplay.state property.
+ *
+ *  @see mx.controls.VideoDisplay
+ */
+public class VideoEvent extends Event
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  immediately after a call to the
+     *  play() or load() method.
+     *
+     *
This is a responsive state. In the responsive state, calls to
+     *  the play(), load(), stop(),
+     *  and pause() methods are executed immediately.

+     */
+	public static const BUFFERING:String = "buffering";
+
+	/**
+	 *  The VideoEvent.CLOSE constant defines the value of the
+	 *  type property of the event object for a close event.
+	 *
+     *
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.

+     *
playheadTime	The location of the playhead
+     *       when the event occurs.

+     *
state	The value of the
+     *       VideoDisplay.state property when the event occurs.

+     *
stateResponsive	The value of the
+     *       VideoDisplay.stateResponsive property
+     *       when the event occurs.

+     *
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 close
+	 */
+	public static const CLOSE:String = "close";
+
+    /**
+	 *  The VideoEvent.COMPLETE constant defines the value of the
+	 *  type property of the event object for a complete event.
+	 *
+     *
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.

+     *
playheadTime	The location of the playhead
+     *       when the event occurs.

+     *
state	The value of the
+     *       VideoDisplay.state property when the event occurs.

+     *
stateResponsive	The value of the
+     *       VideoDisplay.stateResponsive property
+     *       when the event occurs.

+     *
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 complete
+     */
+    public static const COMPLETE:String = "complete";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  when the VideoDisplay control was unable to load the video stream.
+     *  This state can occur when there is no connection to a server,
+     *  the video stream is not found, or for other reasons.
+     *
+     *
This is a unresponsive state. If the control is unresponsive, calls to the
+	 *  play(), load(), stop(),
+	 *  and pause() methods are queued,
+	 *  and then executed when the control changes to the responsive state.

+     */
+    public static const CONNECTION_ERROR:String = "connectionError";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  when the video stream has timed out or is idle.
+     *
+     *
This is a responsive state. In the responsive state, calls to
+     *  the play(), load(), stop(),
+     *  and pause() methods are executed immediately.

+     */
+	public static const DISCONNECTED:String = "disconnected";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  during execution of queued command.
+     *  There will never be a stateChange event dispatched for
+     *  this state; it is for internal use only.
+     *
+     *
This is a unresponsive state. If the control is unresponsive, calls to the
+	 *  play(), load(), stop(),
+	 *  and pause() methods are queued,
+	 *  and then executed when the control changes to the responsive state.

+     */
+    public static const EXEC_QUEUED_CMD:String = "execQueuedCmd";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  immediately after a call to the
+     *  play() or load() method.
+     *
+     *
This is a unresponsive state. If the control is unresponsive, calls to the
+	 *  play(), load(), stop(),
+	 *  and pause() methods are queued,
+	 *  and then executed when the control changes to the responsive state.

+     */
+    public static const LOADING:String = "loading";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  when an FLV file is loaded, but play is paused.
+     *  This state is entered when you call the pause()
+     *  or load() method.
+     *
+     *
This is a responsive state. In the responsive state, calls to
+     *  the play(), load(), stop(),
+     *  and pause() methods are executed immediately.

+     */
+    public static const PAUSED:String = "paused";
+
+    /**
+	 *  The VideoEvent.PLAYHEAD_UPDATE constant defines the value of the
+	 *  type property of the event object for a playheadUpdate event.
+	 *
+     *
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.

+     *
playheadTime	The location of the playhead
+     *       when the event occurs.

+     *
state	The value of the
+     *       VideoDisplay.state property when the event occurs.

+     *
stateResponsive	The value of the
+     *       VideoDisplay.stateResponsive property
+     *       when the event occurs.

+     *
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 playheadUpdate
+     */
+    public static const PLAYHEAD_UPDATE:String = "playheadUpdate";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  when an FLV file is loaded and is playing.
+     *  This state is entered when you call the play()
+     *  method.
+     *
+     *
This is a responsive state. In the responsive state, calls to
+     *  the play(), load(), stop(),
+     *  and pause() methods are executed immediately.

+     */
+    public static const PLAYING:String = "playing";
+
+    /**
+	 *  The VideoEvent.READY constant defines the value of the
+	 *  type property of the event object for a ready event.
+	 *
+     *
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.

+     *
playheadTime	The location of the playhead
+     *       when the event occurs.

+     *
state	The value of the
+     *       VideoDisplay.state property when the event occurs.

+     *
stateResponsive	The value of the
+     *       VideoDisplay.stateResponsive property
+     *       when the event occurs.

+     *
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 ready
+     */
+    public static const READY:String = "ready";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  when the VideoDisplay control is resizing.
+     *
+     *
This is a unresponsive state. If the control is unresponsive, calls to the
+	 *  play(), load(), stop(),
+	 *  and pause() methods are queued,
+	 *  and then executed when the control changes to the responsive state.

+     */
+    public static const RESIZING:String = "resizing";
+
+    /**
+	 *  The VideoEvent.REWIND constant defines the value of the
+	 *  type property of the event object for a rewind event.
+	 *
+     *
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.

+     *
playheadTime	The location of the playhead
+     *       when the event occurs.

+     *
state	The value of the
+     *       VideoDisplay.state property when the event occurs.

+     *
stateResponsive	The value of the
+     *       VideoDisplay.stateResponsive property
+     *       when the event occurs.

+     *
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 rewind
+     */
+    public static const REWIND:String = "rewind";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  during an autorewind triggered
+     *  when play stops.  After the rewind completes, the state changes to
+     *  STOPPED.
+     *
+     *
This is a unresponsive state. If the control is unresponsive, calls to the
+	 *  play(), load(), stop(),
+	 *  and pause() methods are queued,
+	 *  and then executed when the control changes to the responsive state.

+     */
+    public static const REWINDING:String = "rewinding";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  for a seek occurring
+     *  due to the VideoDisplay.playHeadTime property being set.
+     *
+     *
This is a unresponsive state. If the control is unresponsive, calls to the
+	 *  play(), load(), stop(),
+	 *  and pause() methods are queued,
+	 *  and then executed when the control changes to the responsive state.

+     */
+    public static const SEEKING:String = "seeking";
+
+    /**
+	 *  The VideoEvent.STATE_CHANGE constant defines the value of the
+	 *  type property of the event object for a stateChange event.
+	 *
+     *
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.

+     *
playheadTime	The location of the playhead
+     *       when the event occurs.

+     *
state	The value of the
+     *       VideoDisplay.state property when the event occurs.

+     *
stateResponsive	The value of the
+     *       VideoDisplay.stateResponsive property
+     *       when the event occurs.

+     *
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 stateChange
+	 */
+    public static const STATE_CHANGE:String = "stateChange";
+
+    /**
+     *  The value of the VideoDisplay.state property
+     *  when an FLV file is loaded but play has stopped.
+     *  This state is entered  when you call the stop() method
+     *  or when the playhead reaches the end of the video stream.
+     *
+     *
This is a responsive state. In the responsive state, calls to
+     *  the play(), load(), stop(),
+     *  and pause() methods are executed immediately.

+     */
+    public static const STOPPED:String = "stopped";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior associated with
+	 *  the event can be prevented.
+	 *
+	 *  @param state The value of the VideoDisplay.state property
+	 *  when the event occurs.
+	 *
+	 *  @param playeheadTime The location of the playhead when the event occurs.
+     */
+	public function VideoEvent(type:String, bubbles:Boolean = false,
+							   cancelable:Boolean = false,
+							   state:String = null, playheadTime:Number = NaN)
+	{
+		super(type, bubbles, cancelable);
+
+		this.state = state;
+		this.playheadTime = playheadTime;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+	//----------------------------------
+    //  playheadTime
+    //----------------------------------
+
+    /**
+	 *  The location of the playhead of the VideoDisplay control
+	 *  when the event occurs.
+     */
+    public var playheadTime:Number;
+
+	//----------------------------------
+    //  state
+    //----------------------------------
+
+    /**
+	 *  The value of the VideoDisplay.state property
+	 *  when the event occurs.
+	 *
+	 *  @see mx.controls.VideoDisplay#state
+     */
+	public var state:String;
+
+	//----------------------------------
+    //  stateResponsive
+    //----------------------------------
+
+	/**
+	 *  The value of the VideoDisplay.stateResponsive property
+	 *  when the event occurs.
+	 *
+	 *  @see mx.controls.VideoDisplay#stateResponsive
+	 */
+	public function get stateResponsive():Boolean
+	{
+		switch (state)
+		{
+			case DISCONNECTED:
+			case STOPPED:
+			case PLAYING:
+			case PAUSED:
+			case BUFFERING:
+			{
+				return true;
+			}
+
+			default:
+			{
+				return false;
+			}
+		}
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: Event
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+     */
+	override public function clone():Event
+	{
+		return new VideoEvent(type, bubbles, cancelable,
+							  state, playheadTime);
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 577
Author:   creilly@adobe.com
Date:     2008-02-20T19:20:51.021106Z

Log Message:
-----------
Update HTTPChannel to forward fault after disconnect on IO Errors.
Other channels already work this way.

qa: yes
doc: potential release note for previous versions
checkintests: passed

Details:

** frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as
* Bug 218091: Busy cursor doesn't get removed after a WebService failover in a cluster
* the HTTPChannel was not forwarding the fault after disconnect as the ot

** frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as
* fix typo in ASDoc

The HTTPChannel was

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as
+++ frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as
@@ -79,7 +79,7 @@
 	/**
 	 *  Delegates to the fault to responder
 	 *  @param    error message.
-	 *            The error codes and informaton are contained in the
+	 *            The error codes and information are contained in the
 	 *            headers property
 	 *  @param    msg Message original message that caused the fault.
 	 *  @private


use 'in' since a missing property won't always throw

--- frameworks/projects/Binding/as/src/org/apache/flex/binding/ConstantBinding.as
+++ frameworks/projects/Binding/as/src/org/apache/flex/binding/ConstantBinding.as
@@ -134,12 +134,17 @@
             else
                 source = document;
             var val:*;
-            try
+            if (sourcePropertyName in source)
             {
-                val = source[sourcePropertyName];
-                destination[destinationPropertyName] = val;
-            }
-            catch (e:Error)
+                try {
+                    val = source[sourcePropertyName];
+                    destination[destinationPropertyName] = val;
+                }
+                catch (e:Error)
+                {
+                }
+            }
+            else if (sourcePropertyName in source.constructor)
             {
                 try {
                     val = source.constructor[sourcePropertyName];


(hola patch) initialize hola api after hls object finished init (to avoid possible crashes)

--- src/org/mangui/hls/HLS.as
+++ src/org/mangui/hls/HLS.as
@@ -50,7 +50,6 @@
         public function HLS() {
             HLSJS.init();
             id = ++hls_count;
-            HLSJS.HLSnew(this);
             _levelLoader = new LevelLoader(this);
             _altAudioLevelLoader = new AltAudioLevelLoader(this);
             _audioTrackController = new AudioTrackController(this);
@@ -63,6 +62,7 @@
             connection.connect(null);
             _hlsNetStream = new HLSNetStream(connection, this, _streamBuffer);
             this.addEventListener(HLSEvent.LEVEL_SWITCH, _levelSwitchHandler);
+            HLSJS.HLSnew(this);
         };

         /** Forward internal errors. **/


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

--- frameworks/projects/framework/src/mx/core/ClassFactory.as
+++ frameworks/projects/framework/src/mx/core/ClassFactory.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 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.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6404
Author:   rfrishbe@adobe.com
Date:     2009-04-30T00:34:09.399480Z

Log Message:
-----------
Finishing up VideoPlayer/VideoElement. Added support for streaming videos and fixed a few of the bugs.  Added the skins from XD.  These still need a little tweaking, and I'll go over them with XD. For the skins, I had to add some new sub-components, like the VideoPlayerVolumeBar and VideoPlayScrubBar.

Also added 3 new events for TrackBase (thumbDrag, thumbPress, thumbRelease).  These were in Halo's Slider, and I needed them for the VideoPlayerScrubBar.

Also fixed some other bugs, like needing to call removeDynamicPartInstance() on the Slider when the dataTip is removed.  Also fixed a bug around alternatingItemsColor for ItemRenderer.

QE Notes: -
Doc Notes: -
Bugs: SDK-19486, SDK-20105, SDK-20789
Reviewer: Glenn, Jason
tests: checkintests, some mustella tests were failing, but seemed like random 1 pixel differences in DropDownList.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBarMuteButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamItem.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarThumbSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerMuteButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerScrubBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenFullScreenButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/templates/swfobject/index.template.html</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/HSlider.as
+++ frameworks/projects/spark/src/spark/components/HSlider.as
@@ -83,7 +83,7 @@
      */
     override protected function calculateThumbSize():Number
     {
-        return thumb.getLayoutBoundsWidth();
+        return thumb ? thumb.getLayoutBoundsWidth() : 0;
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19795
Author:   rfrishbe@adobe.com
Date:     2011-01-18T19:15:14.349353Z

Log Message:
-----------
Bunch of small, mostly ASDoc cleanups:

1) Cleaning up ASDoc around alternatingItemColors (after SVN 19684) and mis-spelling "Destroy"

2) Cleaning up an un-needed style in defaults.css since it's set in Scroller.

3) In Spark ListBase, removing an un-needed FIXME, but fixing up the documentation since we were actually doing it correctly before, but the documentation was just wrong.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Menu.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/mobilecomponents/src/spark/components/ViewMenu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/List.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/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
@@ -62,7 +62,7 @@

 /**
  *  The colors to use for the background of the items in the list.
- *  The value is an Array of two or more colors.
+ *  The value is an Array of one or more colors.
  *  The backgrounds of the list items alternate among the colors in the Array.
  *
  *  @default undefined


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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
@@ -0,0 +1,660 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.dataGridClasses
+{
+
+import flash.geom.Point;
+import flash.geom.Rectangle;
+import flash.utils.getQualifiedSuperclassName;
+import flash.utils.getDefinitionByName;
+import flash.utils.getQualifiedClassName;
+import mx.controls.DataGrid;
+import mx.controls.listClasses.BaseListData;
+import mx.controls.listClasses.IDropInListItemRenderer;
+import mx.controls.listClasses.IListItemRenderer;
+import mx.core.IDataRenderer;
+import mx.core.IFlexDisplayObject;
+import mx.core.IToolTip;
+import mx.core.UIComponent;
+import mx.core.UIComponentGlobals;
+import mx.core.UITextField;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.events.ToolTipEvent;
+import mx.managers.ILayoutManagerClient;
+import mx.styles.CSSStyleDeclaration;
+import mx.styles.IStyleClient;
+import mx.styles.StyleManager;
+import mx.styles.StyleProtoChain;
+
+use namespace mx_internal;
+
+/**
+ *  Dispatched when the data property changes.
+ *
+ *
When you use a component as an item renderer,
+ *  the data property contains the data to display.
+ *  You can listen for this event and update the component
+ *  when the data property changes.

+ *
+ *  @eventType mx.events.FlexEvent.DATA_CHANGE
+ */
+[Event(name="dataChange", type="mx.events.FlexEvent")]
+
+/**
+ *  The DataGridItemRenderer class defines the default item renderer for a DataGrid control.
+ *  By default, the item renderer
+ *  draws the text associated with each item in the grid.
+ *
+ *
You can override the default item renderer by creating a custom item renderer.

+ *
+ *  @see mx.controls.DataGrid
+ *  @see mx.core.IDataRenderer
+ *  @see mx.controls.listClasses.IDropInListItemRenderer
+ */
+public class DataGridItemRenderer extends UITextField
+								  implements IDataRenderer,
+								  IDropInListItemRenderer, ILayoutManagerClient,
+								  IListItemRenderer, IStyleClient
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+	public function DataGridItemRenderer()
+	{
+		super();
+
+		tabEnabled = false;
+		mouseWheelEnabled = false;
+
+		ignorePadding = false;
+
+		addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
+
+		inheritingStyles = nonInheritingStyles =
+			UIComponent.STYLE_UNINITIALIZED;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+	private var invalidatePropertiesFlag:Boolean = false;
+
+    /**
+     *  @private
+     */
+	private var invalidateSizeFlag:Boolean = false;
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties: UIComponent
+	//
+	//--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  nestLevel
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+	override public function set nestLevel(value:int):void
+	{
+		super.nestLevel = value;
+
+		UIComponentGlobals.layoutManager.invalidateProperties(this);
+		invalidatePropertiesFlag = true;
+
+		UIComponentGlobals.layoutManager.invalidateSize(this);
+		invalidateSizeFlag = true;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  data
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _data:Object;
+
+	[Bindable("dataChange")]
+
+    /**
+	 *  The implementation of the data property as
+	 *  defined by the IDataRenderer interface.
+	 *
+	 *  The value is ignored.  Only the listData property is used.
+	 *  @see mx.core.IDataRenderer
+     */
+    public function get data():Object
+    {
+        return _data;
+    }
+
+	/**
+	 *  @private
+	 */
+	public function set data(value:Object):void
+	{
+		_data = value;
+
+		dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
+	}
+
+    //----------------------------------
+    //  listData
+    //----------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _listData:DataGridListData;
+
+	[Bindable("dataChange")]
+
+	/**
+	 *  The implementation of the listData property as
+	 *  defined by the IDropInListItemRenderer interface.
+	 *  The text of the renderer is set to the label
+	 *  property of the listData.
+	 *
+	 *  @see mx.controls.listClasses.IDropInListItemRenderer
+	 */
+	public function get listData():BaseListData
+	{
+		return _listData;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set listData(value:BaseListData):void
+	{
+		_listData = DataGridListData(value);
+		if (nestLevel && !invalidatePropertiesFlag)
+		{
+			UIComponentGlobals.layoutManager.invalidateProperties(this);
+			invalidatePropertiesFlag = true;
+			UIComponentGlobals.layoutManager.invalidateSize(this);
+			invalidateSizeFlag = true;
+		}
+	}
+
+    //----------------------------------
+    //  styleDeclaration
+    //----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the styleDeclaration property.
+	 */
+	private var _styleDeclaration:CSSStyleDeclaration;
+
+    /**
+     *  Storage for the inline inheriting styles on this object.
+	 *  This CSSStyleDeclaration is created the first time that setStyle()
+	 *  is called on this component to set an inheriting style.
+     */
+    public function get styleDeclaration():CSSStyleDeclaration
+	{
+		return _styleDeclaration;
+	}
+
+    /**
+     *  @private
+	 */
+    public function set styleDeclaration(value:CSSStyleDeclaration):void
+	{
+		_styleDeclaration = value;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: UITextField
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function initialize():void
+	{
+		regenerateStyleCache(false)
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function validateNow():void
+	{
+		if (data && parent)
+		{
+			var newColor:Number;
+
+			if (DataGridBase(_listData.owner).isItemHighlighted(_listData.uid))
+			{
+        		newColor = getStyle("textRollOverColor");
+			}
+			else if (DataGridBase(_listData.owner).isItemSelected(_listData.uid))
+			{
+        		newColor = getStyle("textSelectedColor");
+			}
+			else
+			{
+        		newColor = getStyle("color");
+			}
+
+			if (newColor != explicitColor)
+			{
+				styleChangedFlag = true;
+				explicitColor = newColor;
+				invalidateDisplayList();
+			}
+		}
+
+		super.validateNow();
+	}
+
+    /**
+     *  @copy mx.core.UIComponent#getStyle()
+	 */
+    override public function getStyle(styleProp:String):*
+    {
+        return (StyleManager.inheritingStyles[styleProp]) ?
+        	inheritingStyles[styleProp] : nonInheritingStyles[styleProp];
+    }
+
+    /**
+     *  @copy mx.core.UIComponent#setStyle()
+	 */
+    override public function setStyle(styleProp:String, newValue:*):void
+    {
+        if (styleProp == "styleName")
+        {
+            // Let the setter handle this one, see UIComponent.
+            styleName = newValue;
+
+            // Short circuit, because styleName isn't really a style.
+            return;
+        }
+
+		/*
+        if (styleProp == "themeColor")
+        {
+            // setThemeColor handles the side effects.
+            setThemeColor(newValue);
+
+            // Do not short circuit, because themeColor is a style.
+            // It just has side effects, too.
+        }
+		*/
+
+        // If this UIComponent didn't previously have any inline styles,
+        // then regenerate the UIComponent's proto chain (and the proto chains
+        // of this UIComponent's descendants).
+        var isInheritingStyle:Boolean =
+			StyleManager.isInheritingStyle(styleProp);
+        var isProtoChainInitialized:Boolean =
+			inheritingStyles != UIComponent.STYLE_UNINITIALIZED;
+        if (isInheritingStyle)
+        {
+            if (getStyle(styleProp) == newValue && isProtoChainInitialized)
+                return;
+
+            if (!styleDeclaration)
+            {
+                styleDeclaration = new CSSStyleDeclaration();
+                styleDeclaration.mx_internal::setStyle(styleProp, newValue);
+
+                // If inheritingStyles is undefined, then this object is being
+                // initialized and we haven't yet generated the proto chain.  To
+                // avoid redundant work, don't bother to create the proto chain here.
+                if (isProtoChainInitialized)
+                    regenerateStyleCache(true);
+            }
+            else
+            {
+                styleDeclaration.mx_internal::setStyle(styleProp, newValue);
+            }
+        }
+        else
+        {
+            if (getStyle(styleProp) == newValue && isProtoChainInitialized)
+                return;
+
+            if (!styleDeclaration)
+            {
+                styleDeclaration = new CSSStyleDeclaration();
+                styleDeclaration.mx_internal::setStyle(styleProp, newValue);
+
+                // If nonInheritingStyles is undefined, then this object is being
+                // initialized and we haven't yet generated the proto chain.  To
+                // avoid redundant work, don't bother to create the proto chain here.
+                if (isProtoChainInitialized)
+                    regenerateStyleCache(false);
+            }
+            else
+            {
+                styleDeclaration.mx_internal::setStyle(styleProp, newValue);
+            }
+        }
+
+        if (isProtoChainInitialized)
+        {
+            styleChanged(styleProp);
+            notifyStyleChangeInChildren(styleProp, isInheritingStyle);
+        }
+    }
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  If Flex calls the LayoutManager.invalidateProperties()
+	 *  method on this ILayoutManagerClient, then
+	 *  this function is called when it's time to commit property values.
+	 */
+	public function validateProperties():void
+	{
+		invalidatePropertiesFlag = false;
+		if (_listData)
+		{
+			var dg:DataGrid = DataGrid(_listData.owner);
+
+			var column:DataGridColumn =
+				dg.columns[_listData.columnIndex];
+
+			text = _listData.label;
+
+			if (_data is DataGridColumn)
+				wordWrap = dg.columnHeaderWordWrap(column);
+			else
+				wordWrap = dg.columnWordWrap(column);
+
+			if (DataGrid(_listData.owner).variableRowHeight)
+				multiline = true;
+
+			var dataTips:Boolean = dg.showDataTips;
+			if (column.showDataTips == true)
+				dataTips = true;
+			if (column.showDataTips == false)
+				dataTips = false;
+			if (dataTips)
+			{
+				if (!(_data is DataGridColumn) && (textWidth > width
+					|| column.dataTipFunction || column.dataTipField
+					|| dg.dataTipFunction || dg.dataTipField))
+				{
+					toolTip = column.itemToDataTip(_data);
+				}
+				else
+				{
+					toolTip = null;
+				}
+			}
+			else
+			{
+				toolTip = null;
+			}
+		}
+		else
+		{
+			text = " ";
+			toolTip = null;
+		}
+	}
+
+	/**
+	 *  If Flex calls the LayoutManager.invalidateSize()
+	 *  method on this ILayoutManagerClient, then
+	 *  this function is called when it's time to do measurements.
+	 *
+	 *  @param recursive If true, call this method
+	 *  on the object's children.
+	 */
+	public function validateSize(recursive:Boolean = false):void
+	{
+		invalidateSizeFlag = false;
+		validateNow();
+	}
+
+	/**
+	 *  If Flex calls LayoutManager.invalidateDisplayList()
+	 *  method on this ILayoutManagerClient, then
+	 *  this function is called when it's time to update the display list.
+	 */
+	public function validateDisplayList():void
+	{
+		validateNow();
+	}
+
+    /**
+     *  @copy mx.core.UIComponent#clearStyle()
+	 */
+	public function clearStyle(styleProp:String):void
+	{
+		setStyle(styleProp, undefined);
+	}
+
+    /**
+	 *  @inheritDoc
+     */
+    public function notifyStyleChangeInChildren(
+						styleProp:String, recursive:Boolean):void
+    {
+	}
+
+    /**
+	 *  Sets up the inheritingStyles
+	 *  and nonInheritingStyles objects
+	 *  and their proto chains so that the getStyle() method can work.
+     */
+    public function initProtoChain():void
+    {
+		styleChangedFlag = true;
+
+        var classSelector:CSSStyleDeclaration;
+
+        if (styleName)
+        {
+            if (styleName is CSSStyleDeclaration)
+            {
+                // Get the style sheet referenced by the styleName property
+                classSelector = CSSStyleDeclaration(styleName);
+            }
+            else if (styleName is IFlexDisplayObject)
+            {
+                // If the styleName property is a UIComponent, then there's a
+                // special search path for that case.
+                StyleProtoChain.initProtoChainForUIComponentStyleName(this);
+                return;
+            }
+            else if (styleName is String)
+            {
+                // Get the style sheet referenced by the styleName property
+                classSelector =
+					StyleManager.getStyleDeclaration("." + styleName);
+            }
+        }
+
+        // To build the proto chain, we start at the end and work forward.
+        // Referring to the list at the top of this function, we'll start by
+        // getting the tail of the proto chain, which is:
+        //  - for non-inheriting styles, the global style sheet
+        //  - for inheriting styles, my parent's style object
+		var nonInheritChain:Object = StyleManager.stylesRoot;
+		/*
+        if (nonInheritChain.effects)
+            registerEffects(nonInheritChain.effects);
+		*/
+        var p:IStyleClient = parent as IStyleClient;
+        if (p)
+        {
+            var inheritChain:Object = p.inheritingStyles;
+            if (inheritChain == UIComponent.STYLE_UNINITIALIZED)
+                inheritChain = nonInheritChain;
+        }
+        else
+        {
+        	// Pop ups inheriting chain starts at Application instead of global.
+        	// This allows popups to grab styles like themeColor that are
+        	// set on Application.
+        	// if (isPopUp)
+        		// inheritChain = Application.application.inheritingStyles;
+        	// else
+            	inheritChain = StyleManager.stylesRoot;
+        }
+
+        // Working backwards up the list, the next element in the
+        // search path is the type selector
+		var typeSelectors:Array = getClassStyleDeclarations();
+		var n:int = typeSelectors.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var typeSelector:CSSStyleDeclaration = typeSelectors[i];
+            inheritChain = typeSelector.addStyleToProtoChain(inheritChain, this);
+
+            nonInheritChain = typeSelector.addStyleToProtoChain(nonInheritChain, this);
+			/*
+            if (typeSelector.effects)
+                registerEffects(typeSelector.effects);
+			*/
+        }
+
+        // Next is the class selector
+        if (classSelector)
+        {
+            inheritChain = classSelector.addStyleToProtoChain(inheritChain, this);
+
+            nonInheritChain = classSelector.addStyleToProtoChain(nonInheritChain, this);
+			/*
+            if (classSelector.effects)
+                registerEffects(classSelector.effects);
+				*/
+        }
+
+        // Finally, we'll add the in-line styles
+		// to the head of the proto chain.
+        inheritingStyles = styleDeclaration ?
+						   styleDeclaration.addStyleToProtoChain(inheritChain, this) :
+						   inheritChain;
+
+        nonInheritingStyles = styleDeclaration ?
+							  styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
+							  nonInheritChain;
+    }
+
+    /**
+	 *  @inheritDoc
+     */
+    public function regenerateStyleCache(recursive:Boolean):void
+    {
+		initProtoChain();
+	}
+
+    /**
+     *  @inheritDoc
+     */
+    public function registerEffects(effects:Array /* of String */):void
+    {
+	}
+
+    /**
+	 *  @inheritDoc
+     */
+    public function getClassStyleDeclarations():Array
+    {
+		var className:String = getQualifiedClassName(this)
+		className = className.replace("::", ".");
+
+		var decls:Array = [];
+
+		while (className != null &&
+			   className != "mx.core.UIComponent" &&
+			   className != "mx.core.UITextField")
+		{
+			var s:CSSStyleDeclaration =
+				StyleManager.getStyleDeclaration(className);
+
+			if (s)
+			{
+			 	decls.unshift(s);
+			}
+
+			try
+			{
+				className = getQualifiedSuperclassName(getDefinitionByName(className));
+				className = className.replace("::", ".");
+			}
+			catch(e:ReferenceError)
+			{
+				className = null;
+			}
+		}
+
+		return decls;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event handlers
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  The event handler to position the tooltip.
+	 *
+	 *  @param event The event object.
+	 */
+	protected function toolTipShowHandler(event:ToolTipEvent):void
+	{
+		var toolTip:IToolTip = event.toolTip;
+
+		// Calculate global position of label.
+		var pt:Point = new Point(0, 0);
+		pt = localToGlobal(pt);
+		pt = stage.globalToLocal(pt);
+
+		toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);
+
+		var screen:Rectangle = systemManager.screen;
+		var screenRight:Number = screen.x + screen.width;
+		if (toolTip.x + toolTip.width > screenRight)
+			toolTip.move(screenRight - toolTip.width, toolTip.y);
+	}
+}
+
+}