Transferred from the Adobe Open Source Subversion Repository

Revision: 5216
Author:   rfrishbe@adobe.com
Date:     2009-03-10T01:49:28.576902Z

Log Message:
-----------
Getting rid of some compiler warnings.  In one case the compiler just wanted us to be more explicit around checks for null.  Another is caused by SDK-13070.

QE Notes: -
Doc Notes: -
Bugs: -
Reviewer: None
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/VideoElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -639,10 +639,10 @@
 		dropDown.labelField = labelField;
 		dropDown.labelFunction = labelFunction;

-		if (itemRenderer)
+		if (itemRenderer != null)
 			dropDown.itemRenderer = itemRenderer;

-		if (itemRendererFunction)
+		if (itemRendererFunction != null)
 			dropDown.itemRendererFunction = itemRendererFunction;

 		// TODO!! We force validation because when we set the selectedIndex,


Transferred from the Adobe Open Source Subversion Repository

Revision: 6608
Author:   jszeto@adobe.com
Date:     2009-05-04T22:30:02.549140Z

Log Message:
-----------
Add non-committing keyboard selection to DropDownList

Using the keyboard navigation keys no longer immediately changes the selectedIndex. Instead, we store the proposed selectedIndex and update the item renderers. When the dropDown is closed in a committing way, we set the selectedIndex to the proposed selectedIndex.

QE Notes: Update keyboard navigation tests to account for new (correct) behavior
Doc Notes: None
Bugs: None
Reviewer: Deepa

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

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -180,6 +180,8 @@
     //--------------------------------------------------------------------------

     private var labelChanged:Boolean = false;
+    // TODO (jszeto) Should this be protected?
+    private var proposedSelectedIndex:Number = -1;

 	//--------------------------------------------------------------------------
     //
@@ -560,6 +562,7 @@
     override protected function item_clickHandler(event:MouseEvent):void
 	{
 		super.item_clickHandler(event);
+		proposedSelectedIndex = selectedIndex;
 		closeDropDown(true);
 	}

@@ -569,11 +572,28 @@
 	override protected function keyDownHandler(event:KeyboardEvent) : void
 	{
 		if(!enabled)
-            return;
+            return;

-        // TODO (jszeto) Fix arrow key navigation. layout object is null.
         if (!dropDownController.processKeyDown(event))
-        	super.keyDownHandler(event);
+        {
+			if (dropDownController.isOpen)
+			{
+	        	var navigationUnit:uint = mapEventToNavigationUnit(event);
+	        	var proposedNewIndex:int = layout.getDestinationIndex(navigationUnit, proposedSelectedIndex)
+
+	        	if (proposedNewIndex != -1)
+	        	{
+	        		itemSelected(proposedSelectedIndex, false);
+	        		proposedSelectedIndex = proposedNewIndex;
+	        		itemSelected(proposedSelectedIndex, true);
+	        		ensureItemIsVisible(proposedSelectedIndex);
+	        	}
+	   		}
+	   		else
+	   		{
+	   			super.keyDownHandler(event);
+	   		}
+        }

 	}

@@ -606,6 +626,7 @@
     protected function dropDownController_openHandler(event:DropDownEvent):void
     {
     	addEventListener(FlexEvent.UPDATE_COMPLETE, open_updateCompleteHandler);
+    	proposedSelectedIndex = selectedIndex;
     	invalidateSkinState();
     }

@@ -634,8 +655,10 @@
     	addEventListener(FlexEvent.UPDATE_COMPLETE, close_updateCompleteHandler);
     	invalidateSkinState();

-    	// TODO!! Add logic to handle commitData
-    	// if (event.isDefaultPrevented())
+    	if (!event.isDefaultPrevented())
+    	{
+    		selectedIndex = proposedSelectedIndex;
+    	}
     }

 	/**


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

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

 package mx.automation.delegates
 {


176 Not feeling EventUtil.as

176 Not feeling EventUtil.as

--- raw/src/org/yellcorp/events/EventUtil.as
+++ raw/src/org/yellcorp/events/EventUtil.as
@@ -1,44 +0,0 @@
-package org.yellcorp.events
-{
-import flash.events.IEventDispatcher;
-
-
-public class EventUtil
-{
-    public static function massAddListeners(targetList:Array,
-                                            eventList:Array,
-                                            handler:Function,
-                                            useCapture:Boolean = false,
-                                            priority:int = 0,
-                                            useWeakReference:Boolean = false):void
-    {
-        var target:IEventDispatcher;
-        var eventType:String;
-
-        for each (target in targetList)
-        {
-            for each (eventType in eventList)
-            {
-                target.addEventListener(eventType, handler, useCapture, priority, useWeakReference);
-            }
-        }
-    }
-
-    public static function massRemoveListeners(targetList:Array,
-                                               eventList:Array,
-                                               handler:Function,
-                                               useCapture:Boolean = false):void
-    {
-        var target:IEventDispatcher;
-        var eventType:String;
-
-        for each (target in targetList)
-        {
-            for each (eventType in eventList)
-            {
-                target.removeEventListener(eventType, handler, useCapture);
-            }
-        }
-    }
-}
-}


388 Loosened up some Array types in MapUtil. Also mega documentation frenzy

--- raw/src/org/yellcorp/lib/core/MapUtil.as
+++ raw/src/org/yellcorp/lib/core/MapUtil.as
@@ -1,10 +1,12 @@
 package org.yellcorp.lib.core
 {
 /**
- * Generic utilities for manipulating mapping objects. That is, Objects
- * with dynamic properties, Dictionaries, Arrays, subclasses of
- * flash.utils.Proxy, anything containing values that can be accessed using
- * [ ].
+ * Generic utilities for manipulating mapping objects.  A mapping object is
+ * any object that contains values associated with keys, and supports the
+ * [] operator, for…in enumeration, and
+ * for…each enumeration.  This includes Objects with
+ * dynamic properties, Dictionaries, Arrays, and subclasses of
+ * flash.utils.Proxy.
  */
 public class MapUtil
 {
@@ -21,12 +23,15 @@
      * // obj.three == 3;
      * </listing>
      *
-     * @param keys   The keys to set on the target map.
-     * @param values The values to set each key to.
-     * @param target The target map. If omitted, will create a new Object
+     * @param keys   An Array or Vector of keys
+     *               to set on the target map.
+     * @param values An Array or Vector of values
+     *               to associate with each key.
+     * @param target The target map. If omitted or null, will
+     *               create a new Object.
      * @return       The target map.
      */
-    public static function setFromKeysValues(keys:Array, values:Array, target:* = null):*
+    public static function setFromKeysValues(keys:*, values:*, target:* = null):*
     {
         if (target === null) target = { };
         for (var i:int = 0; i < keys.length; i++)
@@ -49,12 +54,13 @@
      * // obj.three == 3;
      * </listing>
      *
-     * @param keysValues An array of alternating keys and values
+     * @param keysValues An Array or Vector of
+     *                   alternating keys and values
      * @param target     The target map. If omitted, will create a new
      *                   Object
      * @return           The target map.
      */
-    public static function setFromInterleaved(keysValues:Array, target:* = null):*
+    public static function setFromInterleaved(keysValues:*, target:* = null):*
     {
         if (target === null) target = { };
         for (var i:int = 0; i < keysValues.length; i += 2)
@@ -65,12 +71,13 @@
     }

     /**
-     * Copies the keys and values from one map to the target map. Values
-     * for source keys overwrite any identically named keys in target.
+     * Copies dynamic keys and values from one map to the target map. Values
+     * for source keys overwrite any identically named keys in
+     * target.
      *
      * @param source     The map to copy.
      * @param target     The target map. If omitted, will create a new
-     *                   Object
+     *                   Object.
      * @return           The target map.
      */
     public static function copy(source:*, target:* = null):*
@@ -85,7 +92,6 @@

     /**
      * Copies some keys and values from the source map to the target map.
-     * The keys to copy are passed in as an Array.
      *
      * @example
      * <listing version="3.0">
@@ -113,10 +119,11 @@
      *
      * @param source     The map to copy from.
      * @param target     The map to copy to.
-     * @param keyList    The list of keys to copy. If a key does not exist
-     *                   on source, it is ignored.
-     */
-    public static function copySubset(source:*, target:*, keyList:Array):void
+     * @param keyList    An Array or Vector of
+     *                   keys to copy. If a key does not exist on
+     *                   source, it is ignored.
+     */
+    public static function copySubset(source:*, target:*, keyList:*):void
     {
         for each (var key:* in keyList)
         {
@@ -130,14 +137,15 @@
     /**
      * Removes some keys and values from the source map and sets them in
      * the target map.  The keys to move are passed in as an
-     * Array.
+     * Array or Vector.
      *
      * @param source     The map to move from.
      * @param target     The map to move to.
-     * @param keyList    The list of keys to move. If a key does not exist
-     *                   on source, it is ignored.
-     */
-    public static function moveSubset(source:*, target:*, keyList:Array):void
+     * @param keyList    An Array or Vector of
+     *                   keys to move. If a key does not exist on
+     *                   source, it is ignored.
+     */
+    public static function moveSubset(source:*, target:*, keyList:*):void
     {
         for each (var key:* in keyList)
         {
@@ -150,9 +158,8 @@
     }

     /**
-     * Returns all the keys in a map as an Array. The order
-     * is undefined. This is implemented as a for...in loop, so sealed
-     * instances may return empty arrays.
+     * Returns all the dynamic keys in a map as an Array.
+     * The order is undefined.
      *
      * @param map  The map to retrieve keys from.
      * @return     An array of the map's keys.
@@ -169,8 +176,8 @@
     }

     /**
-     * Returns all the values in a map as an Array. The order
-     * is undefined.
+     * Returns all the dynamic values in a map as an Array.
+     * The order is undefined.
      *
      * @param map  The map to retrieve values from.
      * @return     An array of the map's values.
@@ -188,7 +195,7 @@

     /**
      * Returns all the keys and values as an Array of 2-member
-     * Arrays.
+     * Arrays. The order is undefined.
      * @example
      * <listing version="3.0">
      * var obj:Object = {
@@ -203,8 +210,9 @@
      * </listing>
      *
      * @param map  The map to retrieve keys and values from.
-     * @return     An array of 2-member arrays, where index 0 is a key, and
-     *             index 1 is that key's value.
+     * @return     An Array of 2-member Arrays,
+     *             with index 0 of each containing keys and index 1
+     *             containing values.
      */
     public static function mapToArray(map:*):Array
     {
@@ -218,11 +226,7 @@
     }

     /**
-     * Returns the number of keys defined in a given map.
-     *
-     * Note: This is done using a for ... in loop, so only
-     * dynamic keys will be counted.  Will likely return 0 for instances
-     * of sealed classes.
+     * Returns the number of dynamic keys defined in a given map.
      *
      * @example
      * <listing version="3.0">
@@ -238,7 +242,7 @@
      * </listing>
      *
      * @param map  The map to count
-     * @return     The number of keys defined in map.
+     * @return     The number of keys defined in the map.
      */
     public static function count(map:*):uint
     {
@@ -249,7 +253,7 @@
     }

     /**
-     * Returns true if a map contains no keys.
+     * Returns true if a map contains no dynamic keys.
      *
      * @param map  The map to test for emptiness.
      * @returns    True if the map has no keys. False otherwise.
@@ -274,7 +278,7 @@
      *                      provided, a new Object is created.
      *                      The results of indexingFunc will
      *                      be used as keys, with the keys from
-     *                      map becoming the value.
+     *                      map becoming the values.
      * @return The map containing the index.
      */
     public static function indexKeys(map:*, indexingFunc:Function, target:* = null):*
@@ -283,11 +287,11 @@
     }

     /**
-     * Creates an index of a map's values. indexingFunc is called
-     * for each key/value pair in map, passing in the key and
-     * value as arguments.  The result of this function is then used as the
-     * key in the target map, with the original value becoming
-     * the new value.
+     * Creates an index of a map's values. indexingFunc is
+     * called for each key/value pair in map, passing in the
+     * key and value as arguments.  The result of this function is then used
+     * as the key in the target map, with the original value
+     * becoming the new value.
      *
      * @param map           The map to index.
      * @param indexingFunc  A function which accepts two arguments, the key


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

--- frameworks/projects/framework/src/mx/effects/effectClasses/HideShowEffectTargetFilter.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/HideShowEffectTargetFilter.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.effects.effectClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8879
Author:   aharui@adobe.com
Date:     2009-07-28T21:57:09.564781Z

Log Message:
-----------
Fix an injection from Frame1 cleanup.  Popups in sandboxes weren't working

QE Notes: None
Doc Notes: None
Bugs: SDK-22449
Reviewer: Darrell
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as

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

--- frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as
+++ frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as
@@ -146,14 +146,6 @@
      private var lastActiveFocusManager:FocusManager;

 	 /**
-	 * @private
-	 *
-	 * True if this focus manager is a popup, false if it is a main application.
-	 *
-	 */
-	 private var popup:Boolean;
-
-	 /**
 	  *  @private
 	  *
 	  *  Used when a the skip parameter can't be passed into
@@ -177,7 +169,7 @@
             // Set up our swfBridgeGroup. If this is a pop up then the parent
             // bridge is empty, otherwise its the form's system manager's bridge.
             swfBridgeGroup = new SWFBridgeGroup(sm);
-            if (!popup)
+            if (!focusManager.popup)
                 swfBridgeGroup.parentBridge = marshalSystemManager.swfBridgeGroup.parentBridge;

 			// add ourselves to our parent focus manager if this is a bridged
@@ -242,7 +234,7 @@

 	public function showFocusIndicatorHandler(event:Event):void
 	{
-        if (!popup && swfBridgeGroup)
+        if (!focusManager.popup && swfBridgeGroup)
             dispatchSetShowFocusIndicatorRequest(focusManager.showFocusIndicator, null);
 	}

@@ -672,7 +664,7 @@
         // trace(">>dispatchEventFromSWFBridges", this, event.type);
         var sm:ISystemManager = focusManager.form.systemManager;

-        if (!popup)
+        if (!focusManager.popup)
         {
             var parentBridge:IEventDispatcher = swfBridgeGroup.parentBridge;


Transferred from the Adobe Open Source Subversion Repository

Revision: 21584
Author:   aaltman@adobe.com
Date:     2011-07-15T22:40:24.389074Z

Log Message:
-----------
Plumbed soft keyboard hint properties from SkinnableTextBase to StageText.
Fixed some excessive padding around StageText.
Added a style to control when prompt text disappears from text controls.
Changed prompt to be a non-StageText to fix z-order issues.
Added a workaround for the lack of a StageText "enter" event (only works on Android).

QE notes: The fix for SDK-30728 is only a partial workaround. It still does not work on iOS.
Doc notes:
Bugs: SDK-30781 - iOS: SoftKeyboard hints don't appear when StageText is used on iPodTouch, and iPad2
SDK-30740 - StageText: Prompt displays over content.
SDK-30737 - SoftKeyboard does not appears on the first tap on TextInput
SDK-30736 - Text prompt disappears when text got focus
SDK-30728 - "Enter" key does not work correctly in StageText
Reviewer: aharui
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as
@@ -3,15 +3,20 @@
 import flash.display.DisplayObject;
 import flash.events.Event;
 import flash.events.FocusEvent;
-import flash.geom.Rectangle;
+import flash.geom.Point;

 import mx.core.DPIClassification;
+import mx.core.mx_internal;

 import spark.components.supportClasses.SkinnableTextBase;
 import spark.components.supportClasses.StyleableStageText;
+import spark.components.supportClasses.StyleableTextField;
+import spark.core.IDisplayText;
 import spark.skins.mobile160.assets.TextInput_border;
 import spark.skins.mobile240.assets.TextInput_border;
 import spark.skins.mobile320.assets.TextInput_border;
+
+use namespace mx_internal;

 /**
  *  ActionScript-based skin for text input controls in mobile applications.
@@ -160,7 +165,7 @@
      *  @playerversion AIR 3.0
      *  @productversion Flex 4.5.2
      */
-    public var promptDisplay:StyleableStageText;
+    public var promptDisplay:IDisplayText;

     //--------------------------------------------------------------------------
     //
@@ -279,7 +284,7 @@
         else if (!showPrompt && promptDisplay)
         {
             promptDisplay.removeEventListener(FocusEvent.FOCUS_IN, promptDisplay_focusInHandler);
-            removeChild(promptDisplay);
+            removeChild(promptDisplay as DisplayObject);
             promptDisplay = null;
         }

@@ -313,18 +318,17 @@
      *  Create a control appropriate for displaying the prompt text in a mobile
      *  input field.
      */
-    protected function createPromptDisplay():StyleableStageText
-    {
-        var prompt:StyleableStageText = new StyleableStageText();
-
+    protected function createPromptDisplay():IDisplayText
+    {
+        var prompt:StyleableTextField = StyleableTextField(createInFontContext(StyleableTextField));
         prompt.styleName = this;
         prompt.editable = false;
-        prompt.commitStyles();
+        prompt.mouseEnabled = false;
+        prompt.useTightTextBounds = false;

         // StageText objects appear in their own layer on top of the display
-        // list. So, since StyleableStageText uses a StageText for display, it
-        // goes on top as well. It isn't possible to put StageText objects under
-        // any non-Stage objects.
+        // list. So, even though this prompt may be created after the StageText
+        // for textDisplay, textDisplay will still be on top.
         addChild(prompt);

         return prompt;
@@ -337,10 +341,10 @@
      */
     protected function measureTextComponent(hostComponent:SkinnableTextBase):void
     {
-        var paddingLeft:Number = getStyle("paddingLeft");
-        var paddingRight:Number = getStyle("paddingRight");
-        var paddingTop:Number = getStyle("paddingTop");
-        var paddingBottom:Number = getStyle("paddingBottom");
+        var paddingLeft:Number = getCorrectedPadding("paddingLeft");
+        var paddingRight:Number = getCorrectedPadding("paddingRight");
+        var paddingTop:Number = getCorrectedPadding("paddingTop");
+        var paddingBottom:Number = getCorrectedPadding("paddingBottom");
         var textHeight:Number = getStyle("fontSize");

         if (textDisplay)
@@ -359,6 +363,29 @@

         measuredHeight = paddingTop + textHeight + paddingBottom;
     }
+
+    /**
+     *  @private
+     *  Utility function used to get the value of any of the left, right, top,
+     *  or bottom padding styles modified to take any internal padding of the
+     *  platform text control into account.
+     */
+    protected function getCorrectedPadding(paddingStyleName:String):Number
+    {
+        var padding:Number = getStyle(paddingStyleName);
+
+        if (textDisplay)
+        {
+            var internalPadding:Point = textDisplay.calculateInternalPadding();
+
+            if (paddingStyleName == "paddingLeft" || paddingStyleName == "paddingRight")
+                padding = Math.max(0, padding - internalPadding.x);
+            else if (paddingStyleName == "paddingTop" || paddingStyleName == "paddingBottom")
+                padding = Math.max(0, padding - internalPadding.y);
+        }
+
+        return padding;
+    }

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


ver 0.3.8. Resolve #69, #151

ver 0.3.8. Resolve #69, #151

git-svn-id: 5c313c7b604ce6bf72d7224b35e7462ee01c5e2b@316 7a690eda-67ec-4556-b061-4c86d960b817

--- exe/SWPlayer/src/eu/screenwerk/SWAgent.as
+++ exe/SWPlayer/src/eu/screenwerk/SWAgent.as
@@ -140,7 +140,7 @@
 					// Only check for MD5 on smaller files
 					if (_file_size < 1024*1024)
 					{
-						_file_md5_local:String = this.getFileMD5(_file);
+						_file_md5_local = this.getFileMD5(_file);
 					}
 				}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19940
Author:   chiedozi@adobe.com
Date:     2011-01-25T22:15:05.923796Z

Log Message:
-----------
Removing Flash @playerversion tags from ASDocs for ViewNavigator components

QE notes:
Doc notes:
Bugs: SDK-29208
Reviewer: Ryan
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewReturnObject.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorAction.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewDescriptor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
@@ -89,7 +89,6 @@
  *  @see spark.skins.mobile.TabbedViewNavigatorApplicationSkin
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -107,7 +106,6 @@
      *  The main tabbedNavigator for the application.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -122,7 +120,6 @@
      *  Constructor.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -185,7 +182,6 @@
      *  @default null
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */


Fixing previous fix. Currently using http://xmpp.org/extensions/xep-0091.html which has been deprecated in favor of http://xmpp.org/extensions/xep-0203.html.

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

--- src/org/igniterealtime/xiff/data/Message.as
+++ src/org/igniterealtime/xiff/data/Message.as
@@ -126,6 +126,7 @@
 							break;

 						case "x":
+							// http://xmpp.org/extensions/xep-0091.html
 							if (children[i].attributes.xmlns == "jabber:x:delay")
 							{
 								myTimeStampNode = children[i];
@@ -138,6 +139,11 @@
 							}
 							break;

+						case "delay":
+							// http://xmpp.org/extensions/xep-0203.html
+							trace("Message used 'delay' as defined in XEP-0203.");
+							break;
+
 						case ChatState.ACTIVE :
 						case ChatState.COMPOSING :
 						case ChatState.GONE :
@@ -236,24 +242,29 @@
 		{
 			myThreadNode = replaceTextNode(getNode(), myThreadNode, "thread", value);
 		}
+
 		/**
 		 * Time of the message in case of a delay. Used only for messages
 		 * which were sent while user was offline.
+		 *
CCYY-MM-DDThh:mm:ss[.sss]TZD

 		 * @see http://xmpp.org/extensions/xep-0203.html
+		 * @see http://xmpp.org/extensions/xep-0091.html
 		 */
 		public function get time():Date
 		{
 			if(myTimeStampNode == null) return null;
 			var stamp:String = myTimeStampNode.attributes.stamp;

-			// CCYY-MM-DDThh:mm:ssZ
+			trace("myTimeStampNode: " + myTimeStampNode.toString());
+			// XEP-0203: Delayed Delivery - CCYY-MM-DDThh:mm:ssZ
+			// XEP-0091: Legacy Delayed Delivery - CCYYMMDDThh:mm:ss
 			var value:Date = new Date();
 			value.setUTCFullYear(stamp.substr(0, 4));
-			value.setUTCMonth(parseInt(stamp.substr(5, 2)) - 1);
-			value.setUTCDate(stamp.substr(8, 2));
-			value.setUTCHours(stamp.substr(11, 2));
-			value.setUTCMinutes(stamp.substr(14, 2));
-			value.setUTCSeconds(stamp.substr(17, 2));
+			value.setUTCMonth(parseInt(stamp.substr(4, 2)) - 1);
+			value.setUTCDate(stamp.substr(6, 2));
+			value.setUTCHours(stamp.substr(9, 2));
+			value.setUTCMinutes(stamp.substr(12, 2));
+			value.setUTCSeconds(stamp.substr(15, 2));
 			return value;
 		}
 		public function set time( value:Date ): void


add debug logs related to #92

add debug logs
related to #92

--- src/org/mangui/hls/stream/FragmentLoader.as
+++ src/org/mangui/hls/stream/FragmentLoader.as
@@ -820,6 +820,9 @@
                         if not, then cancel current fragment loading, next call to loadnextfragment() will load the right seqnum
                          */
                         var next_seqnum : Number = _levels[_level].getSeqNumNearestPTS(_frag_previous.data.pts_start, _frag_current.continuity) + 1;
+                        CONFIG::LOGGING {
+                            Log.debug("analyzed PTS : getSeqNumNearestPTS(level,pts,cc:" + _level + "," + _frag_previous.data.pts_start + "," + _frag_current.continuity + ")=" + next_seqnum);
+                        }
                         // CONFIG::LOGGING {
                         // Log.info("seq/next:"+ _seqnum+"/"+ next_seqnum);
                         // }


added code to handle sprites whose stage attribute is null

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

--- src/reprise/ui/renderers/AbstractTooltip.as
+++ src/reprise/ui/renderers/AbstractTooltip.as
@@ -76,6 +76,14 @@
 				}
 				case DisplayPosition.POSITION_STATIC:
 				{
+					// there seems to be a problem with sprites which are freshly inserted into the
+					// view hierarchy. most probably it takes a sec before their stage attribute is
+					// set, so we take care of this here. one frame later everything will be fine
+					// again.
+					if (!m_mousedElement.stage)
+					{
+						return;
+					}
 					pos.x = m_mousedElement.stage.mouseX + style.left;
 					pos.y = m_mousedElement.stage.mouseY + style.top;
 					break;


added what should allow for infinite recursion of grouping

--- src/ktu/utils/align/VizAlignGroup.as
+++ src/ktu/utils/align/VizAlignGroup.as
@@ -58,11 +58,15 @@
 			var s:Point = scale;
 			var offset:Point;
 			for each (var t:VizAlignTarget in _targets) {
-				offset = new Point(t.orig.x - _orig.x, t.orig.y - _orig.y);	// offset from group Origin
-				t.end.x = _end.x + (offset.x * s.x);
-				t.end.y = _end.y + (offset.y * s.y);
-				t.end.width = t.orig.width * s.x;
-				t.end.height = t.orig.height * s.y;
+				if (t is VizAlignGroup)
+					VizAlignGroup(t).updateTargetsEnds();
+				else {
+					offset = new Point(t.orig.x - _orig.x, t.orig.y - _orig.y);	// offset from group Origin
+					t.end.x = _end.x + (offset.x * s.x);
+					t.end.y = _end.y + (offset.y * s.y);
+					t.end.width = t.orig.width * s.x;
+					t.end.height = t.orig.height * s.y;
+				}
 			}
 		}


Needed to apply propertyTransformer to measureProgram as well.

--- raw/src/org/yellcorp/lib/layout/Layout.as
+++ raw/src/org/yellcorp/lib/layout/Layout.as
@@ -320,9 +320,10 @@
     {
         if (!measureProgram) measure();
         if (!updateProgram) compileUpdateProgram();
-        measuredUpdateProgram = filterProgramCopy(updateProgram, new ReadOnlyEvaluator());
-        filterProgramInPlace(measuredUpdateProgram, new ArithmeticConstFolder());
-        filterProgramInPlace(measuredUpdateProgram, new ArithmeticOptimizer());
+        measuredUpdateProgram = copyProgram(updateProgram);
+        filterProgram(measuredUpdateProgram, new ReadOnlyEvaluator());
+        filterProgram(measuredUpdateProgram, new ArithmeticConstFolder());
+        filterProgram(measuredUpdateProgram, new ArithmeticOptimizer());
     }

     public function dumpPrograms(linebuf:Array):void
@@ -348,19 +349,21 @@

     private function compileMeasureProgram():void
     {
-        measureProgram = filterProgramCopy(virtualMeasureProgram, virtualGetResolver);
+        measureProgram = copyProgram(virtualMeasureProgram);
+        filterProgram(virtualMeasureProgram, virtualGetResolver);
+        filterProgram(measureProgram, propertyTransformer);
     }

     private function compileUpdateProgram():void
     {
         resolveVirtualSetters();
-        filterProgramInPlace(updateProgram, virtualGetResolver);
-        filterProgramInPlace(updateProgram, new Max0SpanSetters());
+        filterProgram(updateProgram, virtualGetResolver);
+        filterProgram(updateProgram, new Max0SpanSetters());
         if (rounding)
         {
-            filterProgramInPlace(updateProgram, new RoundSetters());
-        }
-        filterProgramInPlace(updateProgram, propertyTransformer);
+            filterProgram(updateProgram, new RoundSetters());
+        }
+        filterProgram(updateProgram, propertyTransformer);
     }

     private function resolveVirtualSetters():void
@@ -581,7 +584,7 @@
         if (program)
         {
             dumper.clear();
-            filterProgramInPlace(program, dumper);
+            filterProgram(program, dumper);
             out.push.apply(out, dumper.lines);
         }
         else
@@ -590,7 +593,7 @@
         }
     }

-    private static function filterProgramInPlace(program:Vector.<ASTNode>, filter:ASTFilter):void
+    private static function filterProgram(program:Vector.<ASTNode>, filter:ASTFilter):void
     {
         for (var i:int = 0; i < program.length; i++)
         {
@@ -598,7 +601,7 @@
         }
     }

-    private static function filterProgramCopy(program:Vector.<ASTNode>, filter:ASTFilter):Vector.<ASTNode>
+    private static function copyProgram(program:Vector.<ASTNode>):Vector.<ASTNode>
     {
         var copy:Vector.<ASTNode> = new Vector.<ASTNode>(program.length, true);
         var deepCopier:DeepCopier = new DeepCopier();
@@ -606,7 +609,6 @@
         {
             copy[i] = deepCopier.filter(program[i]);
         }
-        filterProgramInPlace(copy, filter);
         return copy;
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17336
Author:   rfrishbe@adobe.com
Date:     2010-08-16T21:43:38.459173Z

Log Message:
-----------
Checking in MobileIconItemRenderer.  Had to change a few things in MobileItemRenderer and MobileTextField to get this to work.

The spec will be updated shortly to reflect some API changes from this.

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -433,6 +433,27 @@
      */
     public var styleProvider:IStyleClient;

+    /**
+     *  @private
+     *  An mx_internal hook developers can set to control where the styles
+     *  come from for the MobileTextField.  By default, MobileTextField
+     *  uses a function that just grabs the styles from styleProvider.
+     *
+     *
This takes precedence over styleProvider and should never
+     *  be set to null.

+     */
+    mx_internal var getStyleFunction:Function = defaultGetStyleFunction;
+
+    /**
+     *  @private
+     *  The object that provides styles for this text component. This
+     *  property must be set for the text to pick up the correct styles.
+     */
+    private function defaultGetStyleFunction(styleProp:String):*
+    {
+        return styleProvider.getStyle(styleProp);
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Methods
@@ -451,27 +472,27 @@
      */
     public function commitStyles():void
     {
-        if (styleProvider && invalidateStyleFlag)
+        if ((getStyleFunction != defaultGetStyleFunction || styleProvider) && invalidateStyleFlag)
         {
-            var align:String = styleProvider.getStyle("textAlign");
+            var align:String = getStyleFunction("textAlign");
             if (align == "start")
                 align = TextFormatAlign.LEFT;
             if (align == "end")
                 align = TextFormatAlign.RIGHT;
             textFormat.align = align;
-            textFormat.font = styleProvider.getStyle("fontFamily");
-            textFormat.bold = styleProvider.getStyle("fontWeight") == "bold";
-            textFormat.color = styleProvider.getStyle(colorName);
-            textFormat.size = styleProvider.getStyle("fontSize");
-            textFormat.italic = styleProvider.getStyle("fontStyle") == "italic";
-            textFormat.underline = styleProvider.getStyle("textDecoration") == "underline";
-            textFormat.indent = styleProvider.getStyle("textIndent");
-            textFormat.leading = styleProvider.getStyle("leading");
-            textFormat.letterSpacing = styleProvider.getStyle("letterSpacing");
+            textFormat.font = getStyleFunction("fontFamily");
+            textFormat.bold = getStyleFunction("fontWeight") == "bold";
+            textFormat.color = getStyleFunction(colorName);
+            textFormat.size = getStyleFunction("fontSize");
+            textFormat.italic = getStyleFunction("fontStyle") == "italic";
+            textFormat.underline = getStyleFunction("textDecoration") == "underline";
+            textFormat.indent = getStyleFunction("textIndent");
+            textFormat.leading = getStyleFunction("leading");
+            textFormat.letterSpacing = getStyleFunction("letterSpacing");

             // ignore padding in the text...most components deal with it themselves
-            //textFormat.leftMargin = styleProvider.getStyle("paddingLeft");
-            //textFormat.rightMargin = styleProvider.getStyle("paddingRight");
+            //textFormat.leftMargin = getStyleFunction("paddingLeft");
+            //textFormat.rightMargin = getStyleFunction("paddingRight");

             defaultTextFormat = textFormat;
             setTextFormat(textFormat);


Rather than loading all the base tiles at once (or really, all the ones in an arbitrary region), we'll load only the ones on-screen.  And then if we scroll around, we'll load the others we need.

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

--- src/as/com/threerings/miso/client/MisoScenePanel.as
+++ src/as/com/threerings/miso/client/MisoScenePanel.as
@@ -48,6 +48,12 @@
 import com.threerings.crowd.data.PlaceObject;
 import com.threerings.util.DelayUtil;
 import com.threerings.util.Log;
+import com.threerings.util.Map;
+import com.threerings.util.Maps;
+import com.threerings.util.MathUtil;
+import com.threerings.util.Set;
+import com.threerings.util.Sets;
+import com.threerings.util.StringUtil;
 import com.threerings.media.tile.Colorizer;
 import com.threerings.media.tile.NoSuchTileSetError;
 import com.threerings.media.tile.TileSet;
@@ -114,6 +120,7 @@
         var viewPt :Point = _isoView.globalToLocal(new Point(event.stageX, event.stageY));
         _isoView.centerOnPt(new Pt(viewPt.x - _isoView.width / 2 + _isoView.currentX,
             viewPt.y - _isoView.height / 2 + _isoView.currentY), false);
+        refreshBaseBlockScenes();
     }

     public function setSceneModel (model :MisoSceneModel) :void
@@ -136,21 +143,76 @@
     {
     }

-    protected function refreshScene () :void
-    {
-        // Clear it out...
-        _isoView.removeAllScenes();
-
-        var scene :IsoScene = new IsoScene();
-        scene.layoutRenderer = new ClassFactory(PrioritizedSceneLayoutRenderer);
-        var time :int = getTimer();
-        var baseArr :Array = [];
-
-        for (var si :int = -2; si < 4; si++) {
-            for (var sj :int = -1; sj < 3; sj++) {
+    protected function getBaseBlocks () :Set
+    {
+        var blocks :Set = Sets.newSetOf(int);
+
+        var size :Point = _isoView.size;
+        var topLeft :Point = _isoView.localToIso(new Point(0, 0));
+        var topRight :Point = _isoView.localToIso(new Point(size.x, 0));
+        var btmLeft :Point = _isoView.localToIso(new Point(0, size.y));
+        var btmRight :Point = _isoView.localToIso(new Point(size.x, size.y));
+
+        for (var yy :int = topRight.y - 1; yy <= btmLeft.y + 1; yy++) {
+            for (var xx :int = topLeft.x - 1; xx <= btmRight.x + 1; xx++) {
+
+                // Toss out any that aren't actually in our view.
+                var blkTop :Point = _isoView.isoToLocal(new Pt(xx, yy, 0));
+                var blkRight :Point = _isoView.isoToLocal(new Pt(xx + BLOCK_SIZE, yy, 0));
+                var blkLeft :Point = _isoView.isoToLocal(new Pt(xx, yy + BLOCK_SIZE, 0));
+                var blkBtm :Point =
+                    _isoView.isoToLocal(new Pt(xx + BLOCK_SIZE, yy + BLOCK_SIZE, 0));
+                if (blkTop.y < size.y &&
+                    blkBtm.y > 0 &&
+                    blkLeft.x < size.x &&
+                    blkRight.x > 0) {
+                    blocks.add(getBlockKey(xx, yy));
+                }
+            }
+        }
+
+        return blocks;
+    }
+
+    protected function getBlockKey (x :int, y :int) :int
+    {
+        return (MathUtil.floorDiv(x, BLOCK_SIZE) << 16 |
+            (MathUtil.floorDiv(y, BLOCK_SIZE) & 0xFFFF));
+    }
+
+    protected function getBlockX (key :int) :int
+    {
+        return (key >> 16) * BLOCK_SIZE;
+    }
+
+    protected function getBlockY (key :int) :int
+    {
+        // We really do mean to do this crazy shift left then back right thing to get our sign
+        //  back from before we encoded.
+        return (((key & 0xFFFF) * BLOCK_SIZE) << 16) >> 16;
+    }
+
+    protected function refreshBaseBlockScenes () :void
+    {
+        var blocks :Set = getBaseBlocks();
+
+        // Take out any scenes no longer in our valid blocks.
+        for each (var baseKey :int in _baseScenes.keys()) {
+            if (!blocks.contains(baseKey)) {
+                // It's not valid anymore, so toss it.
+                _isoView.removeScene(_baseScenes.remove(baseKey));
+            }
+        }
+
+        blocks.forEach(function(blockKey :int) :void {
+            if (!_baseScenes.containsKey(blockKey)) {
+                // Not already in there, let's create and add it.
+                var x :int = getBlockX(blockKey);
+                var y :int = getBlockY(blockKey);
+
                 var baseScene :IsoScene = new IsoScene();
-                for (var ii :int = 10*si; ii < 10*si + 10; ii++) {
-                    for (var jj :int = 10*sj; jj < 10*sj + 10; jj++) {
+                for (var ii :int = x; ii < x + BLOCK_SIZE; ii++) {
+                    for (var jj :int = y; jj < y + BLOCK_SIZE; jj++) {
                         var tileId :int = _model.getBaseTileId(ii, jj);
                         if (tileId <= 0) {
                             var defSet :TileSet;
@@ -186,14 +248,27 @@
                     }
                 }
                 baseScene.render();
-                _isoView.addScene(baseScene);
-            }
-        }
+                _isoView.addSceneAt(baseScene, 0);
+                _baseScenes.put(blockKey, baseScene);
+            }
+        });
+    }
+
+    protected function refreshScene () :void
+    {
+        // Clear it out...
+        _isoView.removeAllScenes();
+
+        var scene :IsoScene = new IsoScene();
+        scene.layoutRenderer = new ClassFactory(PrioritizedSceneLayoutRenderer);
+        var time :int = getTimer();
+
+        refreshBaseBlockScenes();

         var set :ObjectSet = new ObjectSet();
         _model.getObjects(new Rectangle(-100, -100, 200, 200), set);
         time = getTimer();
-        for (ii = 0; ii < set.size(); ii++) {
+        for (var ii :int = 0; ii < set.size(); ii++) {
             var objInfo :ObjectInfo = set.get(ii);
             var objTileId :int = objInfo.tileId;
             var objTileSet :TileSet;
@@ -246,7 +321,11 @@
     /** If we should do something when we hear about progress updates, this is it. */
     protected var _loadingProgressFunc :Function;

+    protected var _baseScenes :Map = Maps.newMapOf(int);
+
     protected const DEF_WIDTH :int = 985;
     protected const DEF_HEIGHT :int = 560;
+
+    protected const BLOCK_SIZE :int = 4;
 }
 }


fixed invalid markup in asdoc

fixed invalid markup in asdoc

--- FlexUnit4/src/org/flexunit/runner/Request.as
+++ FlexUnit4/src/org/flexunit/runner/Request.as
@@ -46,10 +46,10 @@
 	 *
 	 * The following static methods can be used to create requests:
 	 *

-	 *
#aClass()
-	 *
#classes()
-	 *
#runner()
-	 *
#method()
+	 *
#aClass()

+	 *
#classes()

+	 *
#runner()

+	 *
#method()

 	 *

 	 *
 	 * The key property of the Request that the FlexUnitCore needs is the


Transferred from the Adobe Open Source Subversion Repository

Revision: 20306
Author:   chiedozi@adobe.com
Date:     2011-02-11T23:51:08.085547Z

Log Message:
-----------
Added [ExcludeClass] metadata tags to ViewDescriptor and NavigationStack
Removed unnecessary imports from ViewNavigatorApplication and TabbedViewNavigatorApplication

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
@@ -14,14 +14,9 @@
 import flash.events.Event;
 import flash.events.InvokeEvent;
 import flash.events.KeyboardEvent;
-import flash.events.StageOrientationEvent;
-import flash.net.registerClassAlias;

 import mx.core.mx_internal;
-import mx.utils.BitFlagUtil;
-
-import spark.components.supportClasses.NavigationStack;
-import spark.components.supportClasses.ViewDescriptor;
+
 import spark.components.supportClasses.ViewNavigatorApplicationBase;
 import spark.components.supportClasses.ViewNavigatorBase;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12747
Author:   mhorn@adobe.com
Date:     2009-12-09T21:22:56.886279Z

Log Message:
-----------
asdoc updates for l10n

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ScrollBarDownButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/SpinnerIncrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HSliderTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ScrollBarUpButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HScrollBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TabBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TitleWindowCloseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VSliderTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/SpinnerDecrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ComboBoxButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VScrollBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TitleWindowSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ScrollBarRightButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/SpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VideoPlayerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DropDownListButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TabBarButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ScrollBarLeftButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/NumericStepperTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ApplicationSkin.mxml</path>

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

--- frameworks/projects/framework/src/mx/core/ITextInput.as
+++ frameworks/projects/framework/src/mx/core/ITextInput.as
@@ -18,7 +18,7 @@
 import mx.styles.IStyleClient;

 /**
- *  Documentation is not currently available.
+ *  Defines an interface for a single-line text field that is optionally editable.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -41,7 +41,24 @@
     //----------------------------------

     /**
-     *  Documentation is not currently available.
+     *  The zero-based index of the position after the last character
+     *  in the current selection (equivalent to the one-based index of the last
+     *  character).
+     *  If the last character in the selection, for example, is the fifth
+     *  character, this property has the value 5.
+     *  When the control gets the focus, the selection is visible if the
+     *  selectionAnchorIndex and selectionActiveIndex
+     *  properties are both set.
+     *
+     *  @default 0
+     *
+     *  @tiptext The zero-based index value of the last character
+     *  in the selection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     function get selectionActivePosition():int;

@@ -50,7 +67,23 @@
     //----------------------------------

     /**
-     *  Documentation is not currently available.
+     *  The zero-based character index value of the first character
+     *  in the current selection.
+     *  For example, the first character is 0, the second character is 1,
+     *  and so on.
+     *  When the control gets the focus, the selection is visible if the
+     *  selectionAnchorIndex and selectionActiveIndex
+     *  properties are both set.
+     *
+     *  @default 0
+     *
+     *  @tiptext The zero-based index value of the first character
+     *  in the selection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     function get selectionAnchorPosition():int;

@@ -58,9 +91,20 @@
 	//  editable
 	//----------------------------------

-	/**
-	 *  Documentation is not currently available.
-	 */
+    /**
+     *  Indicates whether the user is allowed to edit the text in this control.
+     *  If true, the user can edit the text.
+     *
+     *  @default true
+     *
+     *  @tiptext Specifies whether the component is editable or not
+     *  @helpid 3196
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
 	function get editable():Boolean;

 	/**
@@ -73,7 +117,23 @@
     //----------------------------------

     /**
-     *  Documentation is not currently available.
+     *  Pixel position in the content area of the leftmost pixel
+     *  that is currently displayed.
+     *  (The content area includes all contents of a control, not just
+     *  the portion that is currently displayed.)
+     *  This property is always set to 0, and ignores changes,
+     *  if wordWrap is set to true.
+     *
+     *  @default 0
+
+     *  @tiptext The pixel position of the left-most character
+     *  that is currently displayed
+     *  @helpid 3194
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     function get horizontalScrollPosition():Number;

@@ -86,9 +146,23 @@
 	//  maxChars
 	//----------------------------------

-	/**
-	 *  Documentation is not currently available.
-	 */
+    /**
+     *  Maximum number of characters that users can enter in the text field.
+     *  This property does not limit the length of text specified by the
+     *  setting the control's text or htmlText property.
+     *
+     *
The default value is 0, which is a special case
+     *  meaning an unlimited number.

+     *
+     *  @tiptext The maximum number of characters
+     *  that the TextInput can contain
+     *  @helpid 3191
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
 	function get maxChars():int;

 	/**
@@ -100,9 +174,14 @@
 	//  mouseChildren
 	//----------------------------------

-	/**
-	 *  Documentation is not currently available.
-	 */
+    /**
+     *  @copy flash.display.DisplayObjectContainer#mouseChildren
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
 	function get mouseChildren():Boolean;

 	/**
@@ -114,9 +193,14 @@
 	//  mouseEnabled
 	//----------------------------------

-	/**
-	 *  Documentation is not currently available.
-	 */
+    /**
+     *  @copy flash.display.InteractiveObject#mouseEnabled
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
 	function get mouseEnabled():Boolean;

 	/**
@@ -128,9 +212,19 @@
 	//  parentDrawsFocus
 	//----------------------------------

-	/**
-	 *  Documentation is not currently available.
-	 */
+    /**
+     *  If true, calls to this control's drawFocus() method are forwarded
+     *  to its parent's drawFocus() method.
+     *  This is used when a TextInput is part of a composite control
+     *  like NumericStepper or ComboBox;
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
 	function get parentDrawsFocus():Boolean;

 	/**
@@ -142,9 +236,45 @@
 	//  restrict
 	//----------------------------------

-	/**
-	 *  Documentation is not currently available.
-	 */
+    /**
+     *  Indicates the set of characters that a user can enter into the control.
+     *  If the value of the restrict property is null,
+     *  you can enter any character. If the value of the restrict
+     *  property is an empty string, you cannot enter any character.
+     *  This property only restricts user interaction; a script
+     *  can put any text into the text field. If the value of
+     *  the restrict property is a string of characters,
+     *  you may enter only characters in that string into the
+     *  text field.
+     *
+     *
Flex scans the string from left to right. You can specify a range by
+     *  using the hyphen (-) character.
+     *  If the string begins with a caret (^) character, all characters are
+     *  initially accepted and succeeding characters in the string are excluded
+     *  from the set of accepted characters. If the string does not begin with a
+     *  caret (^) character, no characters are initially accepted and succeeding
+     *  characters in the string are included in the set of accepted characters.

+     *
+     *
Because some characters have a special meaning when used
+     *  in the restrict property, you must use
+     *  backslash characters to specify the literal characters -, ^, and \.
+     *  When you use the restrict property as an attribute
+     *  in an MXML tag, use single backslashes, as in the following
+     *  example: \^\-\\.
+     *  When you set the restrict In and ActionScript expression,
+     *  use double backslashes, as in the following example: \\^\\-\\\.

+     *
+     *  @default null
+     *  @see flash.text.TextField#restrict
+     *  @tiptext The set of characters that may be entered
+     *  into the TextInput.
+     *  @helpid 3193
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
 	function get restrict():String;

 	/**
@@ -157,7 +287,12 @@
 	//----------------------------------

 	/**
-	 *  Documentation is not currently available.
+     *  A flag indicating whether the text in the TextInput can be selected.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
 	 */
 	function get selectable():Boolean;

@@ -170,9 +305,42 @@
 	//  text
 	//----------------------------------

-	/**
-	 *  Documentation is not currently available.
-	 */
+    /**
+     *  Plain text that appears in the control.
+     *  Its appearance is determined by the CSS styles of this Label control.
+     *
+     *
Any HTML tags in the text string are ignored,
+     *  and appear as entered in the string.
+     *  To display text formatted using HTML tags,
+     *  use the htmlText property instead.
+     *  If you set the htmlText property,
+     *  the HTML replaces any text you had set using this propety, and the
+     *  text property returns a plain-text version of the
+     *  HTML text, with all HTML tags stripped out. For more information
+     *  see the htmlText property.

+     *
+     *
To include the special characters left angle  bracket (<),
+     *  right angle bracket (>), or ampersand (&) in the text,
+     *  wrap the text string in the CDATA tag.
+     *  Alternatively, you can use HTML character entities for the
+     *  special characters, for example, &lt;.

+     *
+     *
If you try to set this property to null,
+     *  it is set, instead, to the empty string.
+     *  The text property can temporarily have the value null,
+     *  which indicates that the htmlText has been recently set
+     *  and the corresponding text value
+     *  has not yet been determined.

+     *
+     *  @default ""
+     *  @tiptext Gets or sets the TextInput content
+     *  @helpid 3190
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
 	function get text():String;

 	/**


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

--- frameworks/projects/framework/src/mx/utils/ColorUtil.as
+++ frameworks/projects/framework/src/mx/utils/ColorUtil.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-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: 4283
Author:   rfrishbe@adobe.com
Date:     2008-12-10T22:34:18.162845Z

Log Message:
-----------
PARB Review changes for Group and DataGroup.  The main API changes are:

- content property on Group and FxContainer renamed to mxmlContent.

- contentFactory property on FxContainer renamed to mxmlContentFactory

- New names for DataGroup methods: getRendererForItemAt(index:int):IVisualElement and getItemIndexForRenderer(renderer:IVisualElement):int.  These are now in the mxml_internal namespace (not public anymore)

- registerRenderer and unregisterRenderer are private methods (not public)

Also, I made a minor fix to ITransformable.

QE Notes: Steve's changing the mustella tests for me and will be checking in shortly.
Doc Notes: None
Bugs: SDK-18042
Reviewer: Hans
tests: checkintests, Steve ran mustella tests for all of gumbo and states

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/ITransformable.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/wireframe/FxDefaultComplexItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarTrackSkin.mxml</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/wireframe/src/wireframe/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultComplexItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -14,33 +14,18 @@

 import flash.display.BlendMode;
 import flash.display.DisplayObject;
-import flash.events.Event;
-import flash.geom.ColorTransform;
-import flash.geom.Matrix;
-import flash.geom.Rectangle;
-import flash.utils.Dictionary;
-
-import mx.events.FlexEvent;
+
+import mx.components.baseClasses.GroupBase;
+import mx.core.IUITextField;
+import mx.core.IVisualElement;
+import mx.core.IVisualElementContainer;
+import mx.core.mx_internal;
 import mx.events.ItemExistenceChangedEvent;
-import mx.layout.ILayoutElement;
-import mx.layout.LayoutElementFactory;
-
-import mx.collections.ICollectionView;
-import mx.collections.IList;
-import mx.collections.ListCollectionView;
-import mx.core.IUITextField;
-import mx.graphics.Graphic;
 import mx.graphics.IGraphicElement;
 import mx.graphics.graphicsClasses.GraphicElement;
 import mx.graphics.graphicsClasses.TextGraphicElement;
-import mx.components.baseClasses.GroupBase;
-import mx.controls.Label;
-import mx.core.IFactory;
-import mx.core.IVisualElementContainer;
-import mx.core.IVisualElement;
-import mx.core.UIComponent;
-import mx.core.mx_internal;
-import mx.events.CollectionEvent;
+import mx.layout.ILayoutElement;
+import mx.layout.LayoutElementFactory;
 import mx.styles.ISimpleStyleClient;
 import mx.styles.IStyleClient;
 import mx.styles.StyleProtoChain;
@@ -75,7 +60,7 @@
 //  Other metadata
 //--------------------------------------

-[DefaultProperty("content")]
+[DefaultProperty("mxmlContent")]

 [IconFile("Group.png")]

@@ -97,18 +82,18 @@
         super();
     }

-    private var contentChanged:Boolean = false;
+    private var mxmlContentChanged:Boolean = false;
     private var needsDisplayObjectAssignment:Boolean = false;

-    private var _content:Object;
-    private var _contentType:int;
+    private var _mxmlContent:Object;
+    private var _mxmlContentType:int;
     private var layeringMode:uint = ITEM_ORDERED_LAYERING;

     private static const ITEM_ORDERED_LAYERING:uint = 0;
     private static const SPARSE_LAYERING:uint = 1;

-    private static const CONTENT_TYPE_UNKNOWN:int = 0;
-    private static const CONTENT_TYPE_ARRAY:int = 1;
+    private static const MXML_CONTENT_TYPE_UNKNOWN:int = 0;
+    private static const MXML_CONTENT_TYPE_ARRAY:int = 1;

     //----------------------------------
     //  alpha
@@ -199,35 +184,42 @@
         invalidateProperties();
     }

-    /**
-     *  Content for this Group.
+    //----------------------------------
+    //  mxmlContent
+    //----------------------------------
+
+    /**
+     *  Content for this Group.  Do not modify this array directly.
      *
      *
The content can be an Array or a single item.
-     *  The content items can be any type.

+     *  The content items should only be IVisualItems.  An
+     *  mxmlContent Array shouldn't be shared between multiple
+     *  Groups as visual elements can only live in one Group at
+     *  a time.

      *
      *
If the content is an Array, do not modify the array
      *  directly. Use the methods defined on Group to do this.

      *
      *  @default null
      */
-    public function get content():Object
-    {
-        return _content;
-    }
-
-    /**
-     *  @private
-     */
-    public function set content(value:Object):void
-    {
-        _content = value;
-
-        if (_content is Array)
-            _contentType = CONTENT_TYPE_ARRAY;
+    public function get mxmlContent():Object
+    {
+        return _mxmlContent;
+    }
+
+    /**
+     *  @private
+     */
+    public function set mxmlContent(value:Object):void
+    {
+        _mxmlContent = value;
+
+        if (_mxmlContent is Array)
+            _mxmlContentType = MXML_CONTENT_TYPE_ARRAY;
         else
-            _contentType = CONTENT_TYPE_UNKNOWN;
-
-        contentChanged = true;
+            _mxmlContentType = MXML_CONTENT_TYPE_UNKNOWN;
+
+        mxmlContentChanged = true;
         invalidateProperties();
     }

@@ -246,11 +238,11 @@
             //itemRemoved(0);
             super.removeChildAt(0);

-        if (_content !== null)
+        if (_mxmlContent !== null)
         {
             for (var i:int = 0; i < numElements; i++)
             {
-                itemAdded(getElementAt(i), i);
+                elementAdded(getElementAt(i), i);
             }
         }

@@ -263,9 +255,9 @@
      */
     override protected function commitProperties():void
     {
-        if (contentChanged)
-        {
-            contentChanged = false;
+        if (mxmlContentChanged)
+        {
+            mxmlContentChanged = false;
             initializeChildrenArray();

             maskChanged = true;
@@ -356,7 +348,7 @@
     override public function notifyStyleChangeInChildren(
                         styleProp:String, recursive:Boolean):void
     {
-        if (contentChanged || !recursive)
+        if (mxmlContentChanged || !recursive)
             return;

         var n:int = numElements;
@@ -421,11 +413,11 @@
      */
     public function get numElements():int
     {
-        if (_content === null)
+        if (_mxmlContent === null)
             return 0;

-        if (_contentType == CONTENT_TYPE_ARRAY)
-            return _content.length;
+        if (_mxmlContentType == MXML_CONTENT_TYPE_ARRAY)
+            return _mxmlContent.length;

         return 1;
     }
@@ -438,13 +430,13 @@
         // check for RangeError:
         checkForRangeError(index);

-        if (_content === null)
+        if (_mxmlContent === null)
             return null;

-        if (_contentType == CONTENT_TYPE_ARRAY)
-            return _content[index];
-
-        return _content;
+        if (_mxmlContentType == MXML_CONTENT_TYPE_ARRAY)
+            return _mxmlContent[index];
+
+        return _mxmlContent;
     }

     /**
@@ -456,12 +448,12 @@
         // figure out the maximum allowable index
         var maxIndex:int = -1;

-        if (_content === null)
+        if (_mxmlContent === null)
             maxIndex = -1;
-        else if (_contentType == CONTENT_TYPE_UNKNOWN)
+        else if (_mxmlContentType == MXML_CONTENT_TYPE_UNKNOWN)
             maxIndex = 0;
-        else if (_contentType == CONTENT_TYPE_ARRAY)
-            maxIndex = content.length - 1;
+        else if (_mxmlContentType == MXML_CONTENT_TYPE_ARRAY)
+            maxIndex = mxmlContent.length - 1;

         // if adding an element, we allow an extra index at the end
         if (addingElement)
@@ -491,23 +483,23 @@
         checkForRangeError(index, true);

         // If we don't have any content yet, initialize it to an empty array
-        if (_content === null)
-        {
-            content = [];
-            contentChanged = false;
+        if (_mxmlContent === null)
+        {
+            mxmlContent = [];
+            mxmlContentChanged = false;
         }

         // If we have unknown content (ie a single item), convert to an Array
-        if (_contentType == CONTENT_TYPE_UNKNOWN)
-        {
-            _contentType = CONTENT_TYPE_ARRAY;
-            _content = [_content];
-        }
-
-        if (_contentType == CONTENT_TYPE_ARRAY)
-            _content.splice(index, 0, element);
-
-        itemAdded(element, index);
+        if (_mxmlContentType == MXML_CONTENT_TYPE_UNKNOWN)
+        {
+            _mxmlContentType = MXML_CONTENT_TYPE_ARRAY;
+            _mxmlContent = [_mxmlContent];
+        }
+
+        if (_mxmlContentType == MXML_CONTENT_TYPE_ARRAY)
+            _mxmlContent.splice(index, 0, element);
+
+        elementAdded(element, index);

         needsDisplayObjectAssignment = true;
         invalidateProperties();
@@ -533,28 +525,28 @@

         var element:Object;

-        if (_content === null)
+        if (_mxmlContent === null)
             return null;

         // Need to call itemRemoved before removing the item so anyone listening
         // for the event can access the item.

-        itemRemoved(index);
-
-        switch (_contentType)
-        {
-            case CONTENT_TYPE_ARRAY:
-            {
-                var removed:Array = _content.splice(index, 1);
+        elementRemoved(index);
+
+        switch (_mxmlContentType)
+        {
+            case MXML_CONTENT_TYPE_ARRAY:
+            {
+                var removed:Array = _mxmlContent.splice(index, 1);
                 if (removed && removed.length > 0)
                     element = removed[0];
                 break;
             }

-            case CONTENT_TYPE_UNKNOWN:
-            {
-                element = _content;
-                _content = null;
+            case MXML_CONTENT_TYPE_UNKNOWN:
+            {
+                element = _mxmlContent;
+                _mxmlContent = null;
                 break;
             }
         }
@@ -572,18 +564,18 @@
     {
         var index:int = -1;

-        switch (_contentType)
-        {
-            case CONTENT_TYPE_UNKNOWN:
-            {
-                if (_content == element)
+        switch (_mxmlContentType)
+        {
+            case MXML_CONTENT_TYPE_UNKNOWN:
+            {
+                if (_mxmlContent == element)
                     index = 0;
                 break;
             }

-            case CONTENT_TYPE_ARRAY:
-            {
-                index = _content.indexOf(element);
+            case MXML_CONTENT_TYPE_ARRAY:
+            {
+                index = _mxmlContent.indexOf(element);
                 break;
             }
         }
@@ -785,23 +777,23 @@
      *
      *  @param index The index where the item was added.
      */
-    protected function itemAdded(item:Object, index:int):void
+    mx_internal function elementAdded(element:Object, index:int):void
     {
         var child:DisplayObject;

-        if (item is IVisualElement && (item as IVisualElement).layer != 0)
+        if (element is IVisualElement && IVisualElement(element).layer != 0)
             invalidateLayering();

-        if (item is GraphicElement)
-        {
-            item.parent = this;
+        if (element is GraphicElement)
+        {
+            GraphicElement(element).parent = this;

             // If a styleable GraphicElement is being added,
             // build its protochain for use by getStyle().
-            if (item is IStyleClient)
-                IStyleClient(item).regenerateStyleCache(true);
-            if (item is TextGraphicElement)
-                TextGraphicElement(item).stylesInitialized();
+            if (element is IStyleClient)
+                IStyleClient(element).regenerateStyleCache(true);
+            if (element is TextGraphicElement)
+                TextGraphicElement(element).stylesInitialized();
         }
         else
         {
@@ -809,11 +801,11 @@

             // This always adds the child to the end of the display list. Any
             // ordering discrepancies will be fixed up in assignDisplayObjects().
-            child = addItemToDisplayList(DisplayObject(item), item);
+            child = addItemToDisplayList(DisplayObject(element), element);
         }

         dispatchEvent(new ItemExistenceChangedEvent(
-                      ItemExistenceChangedEvent.ITEM_ADD, false, false, item, index));
+                      ItemExistenceChangedEvent.ITEM_ADD, false, false, element, index));

         invalidateSize();
         invalidateDisplayList();
@@ -825,18 +817,18 @@
      *
      *  @param index The index of the item that is being removed.
      */
-    protected function itemRemoved(index:int):void
+    mx_internal function elementRemoved(index:int):void
     {
-        var item:Object = getElementAt(index);
-        var childDO:DisplayObject = item as DisplayObject;
+        var element:Object = getElementAt(index);
+        var childDO:DisplayObject = element as DisplayObject;

         dispatchEvent(new ItemExistenceChangedEvent(
-                      ItemExistenceChangedEvent.ITEM_REMOVE, false, false, item, index));
-        if (item && (item is GraphicElement))
-        {
-            item.parent = null;
-            item.sharedDisplayObject = null;
-            childDO = GraphicElement(item).displayObject;
+                      ItemExistenceChangedEvent.ITEM_REMOVE, false, false, element, index));
+        if (element && (element is GraphicElement))
+        {
+            element.parent = null;
+            element.sharedDisplayObject = null;
+            childDO = GraphicElement(element).displayObject;
         }

         if (childDO && childDO.parent == this)
@@ -1047,9 +1039,9 @@
     /**
      *  @private
      */
-    override public function elementLayerChanged(e:IGraphicElement):void
-    {
-        super.elementLayerChanged(e);
+    override mx_internal function graphicElementLayerChanged(e:IGraphicElement):void
+    {
+        super.graphicElementLayerChanged(e);

         // One of our children have told us they might need a displayObject
         needsDisplayObjectAssignment = true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7543
Author:   gosmith@adobe.com
Date:     2009-06-04T07:41:31.426059Z

Log Message:
-----------
Various changes to obscure Spark text styles.

The default for the 'dominantBaseline' style, as set in the global selector, is now "auto", as it is now in TLF, instead of "roman". In TLF, a value of "auto" means "ideographicCenter" if the 'locale' is Japanese (i.e., starts with "ja") or Chinese (i.e., starts with "zh"), and "roman" otherwise. SimpleText now implements this same logic.

The default for the 'firstBaselineOffset' style, as set in the global selector, is now "auto", as it is now in TLF, instead of "ascent". SimpleText does not support 'firstBaselineOffset'.

The default for the 'justificationRule' style, as set in the global selector, is now "auto" as it is now in TLF, instead of "space". In TLF, a value of "auto" means "eastAsian" if the 'locale' is Japanese or Chinese, and "space" otherwise. SimpleText now implements this same logic.

The default for the 'justificationStyle' style, as set in the global selector, is now "auto", as it is now in TLF, instead of "pushInKinsoku". In TLF, a value of "auto" means "pushInKinsoku" regardless of the locale. (I guess "auto" just sounds like a nicer default.) SimpleText now implements this same logic.

The default for the 'tabStops' style, as set in the global selector, is now null. Previously it was omitted from the global selector and the default value was therefore undefined.

The 'tracking' style has been removed. (The 'trackingLeft' and 'trackingRight' styles remain.) A 'tracking' attribute was defined in FXG 1.0 but FTE instead implemented trackingLeft and trackingRight properties. So when compiling FXG 1.0, the compiler will (soon) map 'tracking' to 'trackingRight', and 'tracking' will not be supported in MXML. SimpleText no longer pays any attention to a 'tracking' style.

The 'leadingModel' style can now be set to "ascentDescentUp", as in TLF. The default remains "auto".

The metadata for the 'backgroundAlpha' style in TextGraphicElement and RichEditableText no longer says theme="halo".

I also fixed some [Event] metadata and @eventType comments in RichEditableText.

Finally, RichEditableText now has an mx_internal createTextContainerManager() method. You can override this if you need to subclass our RichEditableTextContainerManager.

QE Notes: Some tests may need updating due to these changes.
Doc Notes: None
Bugs: SDK-21594
Reviewer: Carol

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -28,6 +28,7 @@
 import flash.text.engine.LineJustification;
 import flash.text.engine.SpaceJustifier;
 import flash.text.engine.TextBlock;
+import flash.text.engine.TextBaseline;
 import flash.text.engine.TextElement;
 import flash.text.engine.TextLine;
 import flash.text.engine.TextLineValidity;
@@ -389,7 +390,7 @@
         // SWF where the embedded font is.)
         // Otherwise, this will be null.
         embeddedFontContext = getEmbeddedFontContext();
-
+
         // Fill out a FontDescription based on the CSS styles.

         var fontDescription:FontDescription = new FontDescription();
@@ -459,7 +460,29 @@

         s = getStyle("dominantBaseline");
         if (s != null)
-        	elementFormat.dominantBaseline = s;
+		{
+        	// TLF adds the concept of a locale-based "auto" setting for
+			// dominantBaseline, so we support that in SimpleText as well
+			// so that "auto" can be used in the global selector.
+			// TLF's rule is that "auto" means "ideographicCenter"
+			// for Japanese and Chinese locales and "roman" for other locales.
+			// (See TLF's LocaleUtil, which we avoid linking in here.)
+			if (s == "auto")
+			{
+				s = TextBaseline.ROMAN;
+				var locale:String = getStyle("locale");
+				if (locale != null)
+				{
+					var lowercaseLocale:String = locale.toLowerCase();
+					if (lowercaseLocale.indexOf("ja") == 0 ||
+						lowercaseLocale.indexOf("zh") == 0)
+					{
+						s = TextBaseline.IDEOGRAPHIC_CENTER;
+					}
+				}
+			}
+			elementFormat.dominantBaseline = s;
+		}

         elementFormat.fontDescription = fontDescription;

@@ -560,9 +583,6 @@
         var trackingLeft:Object = getStyle("trackingLeft");
         var trackingRight:Object = getStyle("trackingRight");

-        if (trackingRight == null)
-            trackingRight = getStyle("tracking");
-
         var value:Number;
         var fontSize:Number = elementFormat.fontSize;

@@ -590,6 +610,32 @@
         var textAlign:String = getStyle("textAlign");
         var textAlignLast:String = getStyle("textAlignLast");
         var textJustify:String = getStyle("textJustify");
+
+        // TLF adds the concept of a locale-based "auto" setting for
+		// justificationRule and justificationStyle, so we support
+		// that in SimpleText as well so that "auto" can be used
+		// in the global selector.
+		// TLF's rule is that "auto" for justificationRule means "eastAsian"
+		// for Japanese and Chinese locales and "space" for other locales,
+		// and that "auto" for justificationStyle (which only affects
+		// the EastAsianJustifier) always means "pushInKinsoku".
+		// (See TLF's LocaleUtil, which we avoid linking in here.)
+		if (justificationRule == "auto")
+		{
+			justificationRule = "space";
+			var locale:String = getStyle("locale");
+			if (locale != null)
+			{
+				var lowercaseLocale:String = locale.toLowerCase();
+				if (lowercaseLocale.indexOf("ja") == 0 ||
+					lowercaseLocale.indexOf("zh") == 0)
+				{
+					justificationRule = "eastAsian";
+				}
+			}
+		}
+		if (justificationStyle == "auto")
+			justificationStyle = "pushInKinsoku";

 		// Set the TextBlock's content.
 		// Note: If there is no text, we do what TLF does and compose