Transferred from the Adobe Open Source Subversion Repository

Revision: 10961
Author:   chaase@adobe.com
Date:     2009-10-09T21:55:11.382317Z

Log Message:
-----------
Fix for occasional RTE in transform effects. The problem was that an object whose parent container was 3D transformed which then underwent a 2D transform effect might try to access the 2D matrix of the display object. In some situations, that 2D matrix is null, because the 3D matrix on the display object is the one currently being used.
The fix is to allocate AdvancedLayoutFeatures and let that class handle this matrix abstraction for us.

QE notes: None
Doc notes: No
Bugs: sdk-23546
Reviewer: Evtim
Tests run: checkintests, mustella spark/effects
Is noteworthy for integration: Yes

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

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

--- frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
+++ frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
@@ -1984,9 +1984,22 @@
 	 */
 	public function getLayoutMatrix():Matrix
 	{
-		if (_layoutFeatures != null)
-		{
-			// esg: _layoutFeatures keeps a single internal copy of the layoutMatrix.
+        if (_layoutFeatures != null || super.transform.matrix == null)
+        {
+            // TODO: this is a workaround for a situation in which the
+            // object is in 2D, but used to be in 3D and the player has not
+            // yet cleaned up the matrices. So the matrix property is null, but
+            // the matrix3D property is non-null. layoutFeatures can deal with
+            // that situation, so we allocate it here and let it handle it for
+            // us. The downside is that we have now allocated layoutFeatures
+            // forever and will continue to use it for future situations that
+            // might not have required it. Eventually, we should recognize
+            // situations when we can de-allocate layoutFeatures and back off
+            // to letting the player handle transforms for us.
+            if (_layoutFeatures == null)
+                initAdvancedLayoutFeatures();
+
+            // esg: _layoutFeatures keeps a single internal copy of the layoutMatrix.
 			// since this is an internal class, we don't need to worry about developers
 			// accidentally messing with this matrix, _unless_ we hand it out. Instead,
 			// we hand out a clone.
@@ -2148,7 +2161,7 @@
                 xformPt.x = transformCenter.x;
                 xformPt.y = transformCenter.y;
                 var xformedPt:Point =
-                    super.transform.matrix.transformPoint(xformPt);
+                    transform.matrix.transformPoint(xformPt);
             }
             if (rotation != null && !isNaN(rotation.z))
                 this.rotation = rotation.z;
@@ -2172,7 +2185,7 @@
                 xformPt.x = transformCenter.x;
                 xformPt.y = transformCenter.y;
                 var postXFormPoint:Point =
-                    super.transform.matrix.transformPoint(xformPt);
+                    transform.matrix.transformPoint(xformPt);
                 if (translation != null)
                 {
                     x += translation.x - postXFormPoint.x;
@@ -2208,8 +2221,8 @@
 				xformPt.x = 0;
 				xformPt.y = 0;
 			}
-			var tmp:Point = (super.transform.matrix != null) ?
-				super.transform.matrix.transformPoint(xformPt) :
+			var tmp:Point = (transform.matrix != null) ?
+				transform.matrix.transformPoint(xformPt) :
 				xformPt;
 			if (position != null)
 			{


Transferred from the Adobe Open Source Subversion Repository

Revision: 10542
Author:   chaase@adobe.com
Date:     2009-09-23T18:52:15.384014Z

Log Message:
-----------
Fix for drift during simple rotation effects. The combination of numerical precision in the player for object position and transform and our reliance on those values for cumulative placement calculations during a rotate-only or scale-only animation adds up to a drift by some number of pixels over the course of the effect. At the end of the effect, we then 'snap' to the real location, causing a jarring artifact as the object adjusts position by one or more pixels.
The fix was to use nonzero rotation and non-one scale (for any axis) to enable advanced layout features, where we use full numerical precision for our transform, thus avoiding the player precision problem.

QE notes: 9 Mustella failures in spark/effects, but this is probably due to our different (and more correct) calculation. OK'd by QE.
Doc notes: None
Bugs: SDK-23374
Reviewer: Ely
Tests run: checkintests, Mustella spark/effects
Is noteworthy for integration: Yes

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

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

--- frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
+++ frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
@@ -2086,10 +2086,16 @@
     {
         if (_layoutFeatures == null)
         {
+            // TODO (chaase): should provide a way to return to having no
+            // layoutFeatures if we call this later with a more trivial
+            // situation
             var needAdvancedLayout:Boolean =
-                (scale != null && scale.z != 1 && !isNaN(scale.z)) ||
+                (scale != null && ((!isNaN(scale.x) && scale.x != 1) ||
+                    (!isNaN(scale.y) && scale.y != 1) ||
+                    (!isNaN(scale.z) && scale.z != 1))) ||
                 (rotation != null && ((!isNaN(rotation.x) && rotation.x != 0) ||
-                    (!isNaN(rotation.y) && rotation.y != 0))) ||
+                    (!isNaN(rotation.y) && rotation.y != 0) ||
+                    (!isNaN(rotation.z) && rotation.z != 0))) ||
                 (translation != null && translation.z != 0 && !isNaN(translation.z)) ||
                 postLayoutScale != null ||
                 postLayoutRotation != null ||


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
+++ frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
@@ -617,68 +617,6 @@
         invalidateParentSizeAndDisplayList();
     }

-    //----------------------------------
-    //  estimatedHeight
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the estimatedHeight property.
-     */
-    private var _estimatedHeight:Number;
-
-    /**
-     *  The height a component is likely to be given at layout time.  It is
-     *  determined by examining the parent's estimatedHeight, and the
-     *  component's percentHeight, explicitHeight, top and bottom constraints.
-     *  It is NaN if there isn't enough information to compute the height.
-     *  The component can use this information in calculating its
-     *  measuredWidth if the measuredWidth is dependent on the layout
-     *  height.
-     *
-     *  @default NaN
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function get estimatedHeight():Number
-    {
-        return _estimatedHeight;
-    }
-
-    //----------------------------------
-    //  estimatedWidth
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the estimatedWidth property.
-     */
-    private var _estimatedWidth:Number;
-
-    /**
-     *  The width a component is likely to be given at layout time.  It is
-     *  determined by examining the parent's estimatedWidth, and the
-     *  component's percentWidth, explicitWidth, left and right constraints.
-     *  It is NaN if there isn't enough information to compute the width.
-     *  The component can use this information in calculating its
-     *  measuredHeight if the measuredHeight is dependent on the layout
-     *  width.
-     *
-     *  @default NaN
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function get estimatedWidth():Number
-    {
-        return _estimatedWidth;
-    }
-
     //----------------------------------
     //  filters
     //----------------------------------
@@ -3128,22 +3066,6 @@
                 MaskUtil.applyMaskType(_mask, _maskType, luminosityInvert, luminosityClip, this);
         }
     }
-
-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-	public function setEstimatedSize(estimatedWidth:Number = NaN,
-                                       estimatedHeight:Number = NaN,
-									   invalidateSize:Boolean = true):void
-    {
-        _estimatedWidth = estimatedWidth;
-        _estimatedHeight = estimatedHeight;
-    }
 }
 }


check the callack actually exists at the begining of Signal.removeCallback()

--- src/aerys/minko/type/Signal.as
+++ src/aerys/minko/type/Signal.as
@@ -42,6 +42,11 @@

 		public function remove(callback : Function) : void
 		{
+			var index : int = _callbacks.indexOf(callback);
+
+			if (index < 0)
+				throw new Error('This callback does not exist.');
+
 			if (_executed)
 			{
 				if (_toRemove)
@@ -52,11 +57,6 @@

 				return ;
 			}
-
-			var index : int = _callbacks.indexOf(callback);
-
-			if (index < 0)
-				throw new Error('This callback does not exist.');

 			--_numCallbacks;
 			_callbacks[index] = _callbacks[_numCallbacks];


R deprecated ScalarLinearTimeline.target

--- src/aerys/minko/type/animation/timeline/ScalarLinearTimeline.as
+++ src/aerys/minko/type/animation/timeline/ScalarLinearTimeline.as
@@ -4,23 +4,19 @@

 	public class ScalarLinearTimeline implements ITimeline
 	{
-		private var _targetName		: String;
-		private var _propertyName	: String;
-		private var _values			: Vector.<Number>;
-		private var _timeTable		: Vector.<uint>
+		protected var _propertyName	: String;
+		protected var _timeTable	: Vector.<uint>
+		protected var _values		: Vector.<Number>;

-		public function get target()	: String	{ return _targetName; }
-		public function get propertyName()	: String	{ return _propertyName; }
-		public function get duration()		: uint		{ return _timeTable[_timeTable.length - 1]; }
+		public function get propertyName()	: String			{ return _propertyName; }
+		public function get duration()		: uint				{ return _timeTable[_timeTable.length - 1]; }
 		public function get values()		: Vector.<Number>	{ return _values; }
 		public function get timeTable()		: Vector.<uint>		{ return _timeTable; }

-		public function ScalarLinearTimeline(targetName		: String,
-											 propertyName	: String,
+		public function ScalarLinearTimeline(propertyName	: String,
 											 timeTable 		: Vector.<uint>,
 											 values			: Vector.<Number>)
 		{
-			_targetName		= targetName;
 			_propertyName	= propertyName;
 			_timeTable		= timeTable;
 			_values			= values;
@@ -75,7 +71,7 @@

 		public function clone() : ITimeline
 		{
-			return new ScalarLinearTimeline(_targetName, _propertyName, _timeTable.slice(), _values.slice());
+			return new ScalarLinearTimeline(_propertyName, _timeTable.slice(), _values.slice());
 		}

 		public function reverse() : void


Transferred from the Adobe Open Source Subversion Repository

Revision: 20742
Author:   smgilson@adobe.com
Date:     2011-03-09T21:46:11.224420Z

Log Message:
-----------
Merge 20732 - asdoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/SwitchSymbolFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/State.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/effects/effectClasses/UnconstrainItemActionInstance.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as</path>

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

--- frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
+++ frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
@@ -1515,6 +1515,8 @@

     /**
      *  Sets the context menu of the InteractiveObject to the underlying native menu.
+     *
+     *  @param data The interactive object.
      *
      *  @langversion 3.0
      *  @playerversion AIR 1.1
@@ -1541,6 +1543,8 @@
     /**
      *  Unsets the context menu of the InteractiveObject that has been set to
      *  the underlying native menu.
+     *
+     *  @param data The interactive object.
      *
      *  @langversion 3.0
      *  @playerversion AIR 1.1
@@ -1977,6 +1981,10 @@
      *  Determines the actual label to be used for the NativeMenuItem
      *  by removing underscore characters and converting escaped underscore
      *  characters, if there are any.
+     *
+     *  @param data The data to parse for the label.
+     *
+     *  @return The label.
      *
      *  @langversion 3.0
      *  @playerversion AIR 1.1
@@ -2003,6 +2011,10 @@
      *  Extracts the mnemonic index from a label based on the presence of
      *  an underscore character. It finds the leading underscore character if
      *  there is one and uses that as the index.
+     *
+     *  @param data The data to parse for the index.
+     *
+     *  @return The index.
      *
      *  @langversion 3.0
      *  @playerversion AIR 1.1


Transferred from the Adobe Open Source Subversion Repository

Revision: 19639
Author:   deeptika@adobe.com
Date:     2011-01-07T12:08:13.128258Z

Log Message:
-----------
Moving data tip w.r.t current application when marshalling is enabled

QE notes:
Doc notes:
Bugs: FLEXDMV-2536 ([Mosaic] Citibank: Setting loadForCompatibility True causes DataTips to render incorrectly when using Charts)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
@@ -36,6 +36,7 @@
 import mx.collections.XMLListCollection;
 import mx.core.DragSource;
 import mx.core.EventPriority;
+import mx.core.FlexGlobals;
 import mx.core.FlexShape;
 import mx.core.IDataRenderer;
 import mx.core.IFlexDisplayObject;
@@ -55,6 +56,7 @@
 import mx.managers.DragManager;
 import mx.managers.IFocusManagerComponent;
 import mx.managers.ILayoutManagerClient;
+import mx.managers.ISystemManager;
 import mx.styles.CSSStyleDeclaration;

 use namespace mx_internal;
@@ -3785,9 +3787,38 @@

             if (tipInstance is ILayoutManagerClient)
                 ILayoutManagerClient (tipInstance).validateSize();
-
-            data = new TipPositionData(tipInstance, hitData,
-                                       localPts.x, localPts.y, pts.x, pts.y);
+			try					//if mx.managers.systemClasses.MarshallingSupport class is found,
+								// marshalling support is enabled and localToGlobal does not give
+								// expected result because current sub application becomes top level
+								// In such cases, sub-application's offset needs to be subtracted
+								// from obtained localToGlobal values.
+								// http://bugs.adobe.com/jira/browse/FLEXDMV-2536
+			{
+				var marshallingClass:Class;
+				var sm:ISystemManager = this.systemManager;
+				if(sm)
+					marshallingClass = Class(sm.getDefinitionByName("mx.managers.systemClasses.MarshallingSupport"));
+				else
+					marshallingClass = Class(getDefinitionByName("mx.managers.systemClasses.MarshallingSupport"));
+
+				if(marshallingClass)
+				{
+					var appOffset:Point = FlexGlobals.topLevelApplication.localToGlobal(new Point(0,0));
+					data = new TipPositionData(tipInstance, hitData,
+						localPts.x, localPts.y, pts.x - appOffset.x, pts.y - appOffset.y);
+				}
+				else
+				{
+					data = new TipPositionData(tipInstance, hitData,
+						localPts.x, localPts.y, pts.x, pts.y);
+				}
+			}
+			catch (e:Error)			//mx.managers.systemClasses.MarshallingSupport class is not found
+									// means marshalling is not enabled and so we revert to normal logic.
+			{
+				data = new TipPositionData(tipInstance, hitData,
+					localPts.x, localPts.y, pts.x, pts.y);
+			}

             if (data.gy - dataTipVOffset - tipInstance.measuredHeight > 0)
                 data.py = data.gy - dataTipVOffset - tipInstance.measuredHeight;


Transferred from the Adobe Open Source Subversion Repository

Revision: 9778
Author:   aharui@adobe.com
Date:     2009-08-29T00:16:26.321581Z

Log Message:
-----------
Change default creationPolicy for NavigatorContent to null.  If null, NavigatorContent will check its parent Navigator's creationPolicy.  If the parent Navigator's creationPolicy is "all", NavigatorContent will use "all" and create all of its children.  Otherwise, NavigatorContent will use "none" as the creationPolicy.

QE Notes: default value for creationPolicy is null
Doc Notes: default value for creationPolicy is null
Bugs: None
Reviewer: Ryan
API Change: No
Is noteworthy for integration: No
tests: checkintests

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

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

--- frameworks/projects/spark/src/spark/components/NavigatorContent.as
+++ frameworks/projects/spark/src/spark/components/NavigatorContent.as
@@ -14,6 +14,7 @@
 import flash.events.Event;

 import mx.core.ContainerCreationPolicy;
+import mx.core.IDeferredContentOwner;
 import mx.core.INavigatorContent

 /**
@@ -64,7 +65,7 @@
     public function NavigatorContent()
     {
         super();
-        creationPolicy = ContainerCreationPolicy.NONE;
+        creationPolicy = null;
     }

@@ -172,6 +173,35 @@
     }

+    //--------------------------------------------------------------------------
+    //
+    //  Overridden Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Create components that are children of this Container.
+     */
+    override protected function createChildren():void
+    {
+        // if nobody has overridden creationPolicy, get it from the
+        // navigator parent
+        if (creationPolicy == null)
+        {
+            if (parent is IDeferredContentOwner)
+            {
+                var parentCreationPolicy:String = IDeferredContentOwner(parent).creationPolicy;
+                creationPolicy = parentCreationPolicy ==
+                        ContainerCreationPolicy.ALL ? ContainerCreationPolicy.ALL :
+                                                        ContainerCreationPolicy.NONE;
+
+            }
+        }
+
+        super.createChildren();
+    }
+
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4919
Author:   gosmith@adobe.com
Date:     2009-02-10T21:57:24.277259Z

Log Message:
-----------
The widthInChars property in TextView, FxTextInput, and FxTextArea is now a Number rather than an int; ditto for the heightInRows property in TextView and FxTextArea.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Jason

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

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -567,7 +567,7 @@
     /**
      *  @private
      */
-    private var _heightInLines:int = 10;
+    private var _heightInLines:Number = 10;

     /**
      *  @private
@@ -582,7 +582,7 @@
      *  to determine its measuredWidth and measuredHeight. These are
      *  similar to the cols and rows of an HTML TextArea.</p>
      */
-    public function get heightInLines():int
+    public function get heightInLines():Number
     {
         return _heightInLines;
     }
@@ -590,7 +590,7 @@
     /**
      *  @private
      */
-    public function set heightInLines(value:int):void
+    public function set heightInLines(value:Number):void
     {
         if (value == _heightInLines)
             return;
@@ -1089,7 +1089,7 @@
     /**
      *  @private
      */
-    private var _widthInChars:int = 20;
+    private var _widthInChars:Number = 20;

     /**
      *  @private
@@ -1105,7 +1105,7 @@
      *
      *  @default
      */
-    public function get widthInChars():int
+    public function get widthInChars():Number
     {
         return _widthInChars;
     }
@@ -1113,7 +1113,7 @@
     /**
      *  @private
      */
-    public function set widthInChars(value:int):void
+    public function set widthInChars(value:Number):void
     {
         if (value == _widthInChars)
             return;


Transferred from the Adobe Open Source Subversion Repository

Revision: 6641
Author:   cframpto@adobe.com
Date:     2009-05-05T15:53:49.762827Z

Log Message:
-----------
Back out 6637 and 6639 until I do some more testing.  Even though all the mustella tests are passing I'm seeing some odd behavior.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<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/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextInput.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -782,7 +782,7 @@
     /**
      *  @private
      *  The default is true.
-     *  TODO! The default should be true but the code needs to be fixed first.
+     *  TODO! The default should be true.
      */
     private var _autoSize:Boolean = false;

@@ -1656,7 +1656,7 @@

         // If autoSize, the text flow is already composed (although there are
         // certain styles that require a recompose since the composition width
-        // and height matter).  Setting the composition size will
+        // and height matter).  Setting the composition size since it will
         // trigger a damage event.
         if (!_autoSize || recomposeForStyles())
         {
@@ -1917,20 +1917,7 @@
      */
     private function getSelectionManager():ISelectionManager
     {
-        // This triggers a damage event if the interactionManager is
-        // changed.  Since changing the interactionManager doesn't change
-        // the text, there is no need to trigger the damage event.
-
-        _inputManager.removeEventListener(
-            DamageEvent.DAMAGE, inputManager_damageHandler);
-
-    	var selectionManager:SelectionManager =
-    	   SelectionManager(_inputManager.beginInteraction());
-
-        _inputManager.addEventListener(
-            DamageEvent.DAMAGE, inputManager_damageHandler);
-
-        return selectionManager;
+    	return SelectionManager(_inputManager.beginInteraction());
     }

     /**
@@ -1947,10 +1934,7 @@
      */
     private function getEditManager():IEditManager
     {
-        // This triggers a damage event if the interactionManager is
-        // changed.
-
-        return EditManager(_inputManager.beginInteraction());
+    	return EditManager(_inputManager.beginInteraction());
     }

     /**
@@ -2408,7 +2392,7 @@

         selectionManager.setSelection(anchorPosition, activePosition);

-        // Refresh the selection.  This does not cause a damage event.
+        // Update the display with the new selection.
         selectionManager.refreshSelection();

         releaseSelectionManager();
@@ -2439,12 +2423,11 @@

         // If no selection, then it's an append.
          if (!editManager.hasSelection())
-            editManager.setSelection(int.MAX_VALUE, int.MAX_VALUE);
-
-        // Our damage handler should be active.  Inserting the text invokes
-        // our damage handler to invalidate the text, maybe the size, and
-        // the display list.
+            editManager.setSelection(int.MAX_VALUE, int.MAX_VALUE);
         editManager.insertText(text);
+
+        // Update TLF display.  This initiates the InsertTextOperation.
+        _inputManager.updateContainer();

         // All done with edit manager.
         releaseEditManager();
@@ -2478,11 +2461,10 @@

         // An append is an insert with the selection set to the end.
         editManager.setSelection(int.MAX_VALUE, int.MAX_VALUE);
-
-        // Our damage handler should be active.  Inserting the text invokes
-        // our damage handler to invalidate the text, maybe the size, and
-        // the display list.
         editManager.insertText(text);
+
+        // Update TLF display.  This initiates the InsertTextOperation.
+        _inputManager.updateContainer();

         // All done with edit manager.
         releaseEditManager();
@@ -2695,11 +2677,8 @@
             return;

         var textScrap:TextScrap = op.scrapToPaste();
-
-        // If copied/cut from displayAsPassword field the pastedText
-        // is '*' characters but this is correct.
         var pastedText:String = TextUtil.extractText(
-            textScrap.tlf_internal::textFlow);
+            tlf_internal::textScrap.textFlow);

         // We know it's an EditManager or we wouldn't have gotten here.
         var editManager:IEditManager = getEditManager();


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

--- frameworks/projects/mx/src/mx/containers/VBox.as
+++ frameworks/projects/mx/src/mx/containers/VBox.as
@@ -0,0 +1,114 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.containers
+{
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="direction", kind="property")]
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[IconFile("VBox.png")]
+
+/**
+ *  The VBox container lays out its children in a single vertical column.
+ *  You use the <mx:VBox> tag instead of the
+ *  <mx:Box> tag as a shortcut to avoid having to
+ *  set the direction property to "vertical".
+ *
+ *
An VBox container has the following default sizing characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

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

+ *

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

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:VBox> tag inherits all of the tag
+ *  attributes of its superclass, except direction, and adds
+ *  no new tag attributes.

+ *
+ *  @includeExample examples/VBoxExample.mxml
+ *
+ *  @see mx.containers.Box
+ *  @see mx.containers.HBox
+ */
+public class VBox extends Box
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function VBox()
+	{
+		super();
+
+		mx_internal::layoutObject.direction = BoxDirection.VERTICAL;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  direction
+	//----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  @private
+	 *  Don't allow user to change the direction
+	 */
+	override public function set direction(value:String):void
+	{
+	}
+}
+
+}


Fix obvious semicolon error

Fix obvious semicolon error

--- Arguments/src/logic/ModusPonens.as
+++ Arguments/src/logic/ModusPonens.as
@@ -110,7 +110,7 @@
 			switch(inference.myschemeSel.selectedType) {
 				case _langTypes[0]:
 					reasonStr = "";
-					output += "If "
+					output += "If ";
 					for(i=0; i < reason.length - 1; i++)
 					{
 						output += reason[i].stmt + " and if ";


Transferred from the Adobe Open Source Subversion Repository

Revision: 21979
Author:   cframpto@adobe.com
Date:     2011-08-15T14:56:44.705540Z

Log Message:
-----------
ASdoc additions/corrections.

QE notes:
Doc notes:
Bugs: SDK-31109, SDK-31113
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -243,7 +243,8 @@

 /**
  *  The StyleableStageText class is a text primitive for use in ActionScript
- *  skins. It cannot be used in MXML markup, is not compatible with effects, and
+ *  skins which is used to present the user with a native text input field.
+ *  It cannot be used in MXML markup, is not compatible with effects, and
  *  is not compatible with transformations such as rotation, scale, and skew.
  *
  *  @see flash.text.StageText
@@ -295,7 +296,16 @@
     //--------------------------------------------------------------------------

     /**
-     *  Constructor
+     *  Constructor.
+     *
+     *
multiline determines what happens when you press the Enter key.
+     *  If it is true, the Enter key starts a new line.
+     *  If it is false, it causes a FlexEvent.ENTER
+     *  event to be dispatched.

+     *
+     *  @param multiline Set to true to allow more than one line of text to be input.
+     *
+     *  @default false
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
@@ -457,6 +467,9 @@
         return localViewPort.height;
     }

+    /**
+     *  @private
+     */
     override public function set height(value:Number):void
     {
         super.height = value;
@@ -490,6 +503,9 @@
         return _visible;
     }

+    /**
+     *  @private
+     */
     override public function set visible(value:Boolean):void
     {
         super.visible = value;
@@ -518,6 +534,9 @@
         return localViewPort.width;
     }

+    /**
+     *  @private
+     */
     override public function set width(value:Number):void
     {
         super.width = value;
@@ -549,6 +568,9 @@
         return localViewPort.x;
     }

+    /**
+     *  @private
+     */
     override public function set x(value:Number):void
     {
         super.x = value;
@@ -580,6 +602,9 @@
         return localViewPort.y;
     }

+    /**
+     *  @private
+     */
     override public function set y(value:Number):void
     {
         super.y = value;
@@ -771,6 +796,8 @@
     /**
      *  @copy flash.text.StageText#maxChars
      *
+     *  @default 0
+     *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
      *  @productversion Flex 4.5.2
@@ -835,6 +862,8 @@

     /**
      *  @copy flash.text.StageText#restrict
+     *
+     *  @default null
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
@@ -920,6 +949,8 @@
     /**
      *  @copy flash.text.StageText#text
      *
+     *  @default null
+     *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
      *  @productversion Flex 4.5.2
@@ -978,8 +1009,12 @@
     private var _autoCapitalize:String = AutoCapitalize.NONE;

     /**
-     *  @copy flash.text.StageText#autoCapitalize
-     *
+     *  @inheritDoc
+     *
+     *  @default AutoCapitalize.NONE
+     *
+     *  @see flash.text.AutoCapitalize
+     *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
      *  @productversion Flex 4.5.2
@@ -1010,8 +1045,10 @@
     private var _autoCorrect:Boolean = true;

     /**
-     *  @copy flash.text.StageText#autoCorrect
-     *
+     *  @inheritDoc
+     *
+     *  @default true
+     *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
      *  @productversion Flex 4.5.2
@@ -1039,8 +1076,12 @@
     private var _returnKeyLabel:String = ReturnKeyLabel.DEFAULT;

     /**
-     *  @copy flash.text.StageText#returnKeyLabel
-     *
+     *  @inheritDoc
+     *
+     *  @default ReturnKeyLabel.DEFAULT
+     *
+     *  @see flash.text.ReturnKeyLabel
+     *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
      *  @productversion Flex 4.5.2
@@ -1071,8 +1112,12 @@
     private var _softKeyboardType:String = SoftKeyboardType.DEFAULT;

     /**
-     *  @copy flash.text.StageText#softKeyboardType
-     *
+     *  @inheritDoc
+     *
+     *  @default SoftKeyboardType.DEFAULT
+     *
+     *  @see flash.text.SoftKeyboardType
+     *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
      *  @productversion Flex 4.5.2
@@ -1246,16 +1291,7 @@
     }

     /**
-     *  Inserts the specified text into the text component as if you had typed
-     *  it.
-     *
-     *
If a range was selected, the new text replaces the selected text. If
-     *  there was an insertion point, the new text is inserted there.

-     *
-     *
An insertion point is then set after the new text. If necessary, the
-     *  text will scroll to ensure that the insertion point is visible.

-     *
-     *  @param text The text to be inserted.
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
@@ -1306,6 +1342,9 @@
         stageText.selectRange(startIndex + text.length, startIndex + text.length);

         _text = stageText.text;
+
+        // TODO: scrollToRange so the insertion point is visible
+
         dispatchEvent(new TextOperationEvent(TextOperationEvent.CHANGE));
     }

@@ -1338,7 +1377,7 @@
     }

     /**
-     *  @copy flash.text.StageText#selectRange()
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0


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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2011 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.supportClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18871
Author:   smgilson@adobe.com
Date:     2010-11-30T20:10:44.561987Z

Log Message:
-----------
Fix ASDoc version tags

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/tabularData/SparkDataGridTabularData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultComplexItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkScrollBarBaseAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkComboBoxAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultGridHeaderRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SprakTextAreaAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGridAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultGridItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<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/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBarBaseAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/mediaClasses/SparkVolumeBarAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonBarAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SprakSkinnableTextBaseAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreen.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -358,7 +358,7 @@
     public function set editable(value:Boolean):void
     {
         type = value ? TextFieldType.INPUT : TextFieldType.DYNAMIC;
-		dispatchEvent(new Event("editableChanged"));
+        dispatchEvent(new Event("editableChanged"));
     }

     //----------------------------------
@@ -697,17 +697,17 @@
             textFormat.indent = getStyle("textIndent");
             textFormat.leading = getStyle("leading");
             textFormat.letterSpacing = getStyle("letterSpacing");
-			var kerning:* = getStyle("kerning");
-			if (kerning == "auto" || kerning == "on")
-				kerning = true;
-			else if (kerning == "default" || kerning == "off")
-				kerning = false;
-			textFormat.kerning = kerning;
-
-			antiAliasType = getStyle("fontAntiAliasType");
-			gridFitType = getStyle("fontGridFitType");
-			sharpness = getStyle("fontSharpness");
-			thickness = getStyle("fontThickness");
+            var kerning:* = getStyle("kerning");
+            if (kerning == "auto" || kerning == "on")
+                kerning = true;
+            else if (kerning == "default" || kerning == "off")
+                kerning = false;
+            textFormat.kerning = kerning;
+
+            antiAliasType = getStyle("fontAntiAliasType");
+            gridFitType = getStyle("fontGridFitType");
+            sharpness = getStyle("fontSharpness");
+            thickness = getStyle("fontThickness");

             // ignore padding in the text...most components deal with it themselves
             //textFormat.leftMargin = getStyle("paddingLeft");
@@ -718,17 +718,17 @@

             defaultTextFormat = textFormat;
             setTextFormat(textFormat);
-
-			// If our text is empty we need to force the style changes in order for
-			// textHeight to be valid. Setting the width is sufficient, and should
-			// have minimal overhead since we don't have any text.
-			if (text == "")
-			{
-				// Set the width to the fontSize + padding, which is big enough to hold one
-				// character.
-				width = textFormat.size + TEXT_WIDTH_PADDING;
-			}
-
+
+            // If our text is empty we need to force the style changes in order for
+            // textHeight to be valid. Setting the width is sufficient, and should
+            // have minimal overhead since we don't have any text.
+            if (text == "")
+            {
+                // Set the width to the fontSize + padding, which is big enough to hold one
+                // character.
+                width = textFormat.size + TEXT_WIDTH_PADDING;
+            }
+
             invalidateStyleFlag = false;
         }
     }
@@ -777,8 +777,8 @@
             _inlineStyleObject = {};

         _inlineStyleObject[styleProp] = value;
-
-		styleChanged(styleProp);
+
+        styleChanged(styleProp);
     }

     /**
@@ -804,7 +804,7 @@
     /**
      *  Truncate text to make it fit horizontally in the area defined for the control,
      *  and append an ellipsis, three periods (...), to the text. This function
-	 *  only works for single line text.
+     *  only works for single line text.
      *
      *  @param truncationIndicator The text to be appended after truncation.
      *  If you pass null, a localizable string
@@ -813,9 +813,9 @@
      *  @return true if the text needed truncation.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function truncateToFit(truncationIndicator:String = "..."):Boolean
     {
@@ -847,9 +847,9 @@
             }

             _isTruncated = true;
-
-			// Make sure all text is visible
-			scrollH = 0;
+
+            // Make sure all text is visible
+            scrollH = 0;
         }

         // Dispatch "isTruncatedChange"


SetTimeout instead ENTER_FRAME

SetTimeout instead ENTER_FRAME

--- src/com/benoitfreslon/layoutmanager/LayoutManager.as
+++ src/com/benoitfreslon/layoutmanager/LayoutManager.as
@@ -4,6 +4,7 @@
 	import flash.events.Event;
 	import flash.system.Capabilities;
 	import flash.utils.getDefinitionByName;
+	import flash.utils.setTimeout;
 	import starling.core.Starling;

 	import starling.display.Button;
@@ -73,7 +74,9 @@
 			_displayObject = displayObject;
 			_assetManager = assetManager;
 			_movieclip = new layoutClass();
-			_movieclip.addEventListener( Event.ENTER_FRAME, layoutLoaded );
+			//_movieclip.addEventListener( Event.ENTER_FRAME, layoutLoaded );
+			//_movieclip.addEventListener( Event.ADDED, layoutLoaded );
+			setTimeout (layoutLoaded,0);
 			if ( onLoad != null )
 				onLoad = callBack

@@ -97,11 +100,12 @@

 		}

-		private function layoutLoaded( e : Event ) : void {
+		private function layoutLoaded( e : Event = null ) : void {

 			if ( debug )
 				trace( "[LayoutLoader] layoutLoaded" );
-			_movieclip.removeEventListener( Event.ENTER_FRAME, layoutLoaded );
+			_movieclip.removeEventListener ( Event.ENTER_FRAME, layoutLoaded );
+			_movieclip.removeEventListener( Event.ADDED, layoutLoaded );
 			parseMovieClip( _movieclip, _rootObject, _displayObject );
 			loaded();
 		}
@@ -109,8 +113,12 @@
 		private function parseMovieClip( mc : MovieClip, root : DisplayObjectContainer, container : DisplayObjectContainer ) : void {
 			var child : BFDisplayObject;
 			var n : int = mc.numChildren;
-			for ( var i : uint = 0; i < n; ++i ) {
-				child = mc.getChildAt( i ) as BFDisplayObject;
+			if ( debug )
+				trace( "[LayoutLoader] numChildren "+ n );
+			for ( var i : uint = 0; i < n; i++ ) {
+				child = mc.getChildAt ( i ) as BFDisplayObject;
+				if ( debug )
+					trace( "[LayoutLoader] child "+i+" "+ child );
 				if ( child ) {

 					if ( child.mainClass ) {


Issue #105: Update Alert to use our own localized labels.

--- src/com/esri/builder/controllers/LocaleController.as
+++ src/com/esri/builder/controllers/LocaleController.as
@@ -21,6 +21,8 @@
 import com.esri.builder.model.Model;
 import com.esri.builder.model.WidgetTypeRegistryModel;
 import com.esri.builder.supportClasses.LogUtil;
+
+import mx.controls.Alert;

 import mx.core.FlexGlobals;
 import mx.logging.ILogger;
@@ -58,6 +60,15 @@
         applyLocaleLayoutDirection(selectedLocale);
         setPreferredLocaleFonts(selectedLocale);
         setLocaleSpecificStyles(selectedLocale);
+        updateAlertLabels();
+    }
+
+    private function updateAlertLabels():void
+    {
+        Alert.okLabel = ResourceManager.getInstance().getString("BuilderStrings", "ok");
+        Alert.cancelLabel = ResourceManager.getInstance().getString("BuilderStrings", "cancel");
+        Alert.yesLabel = ResourceManager.getInstance().getString("BuilderStrings", "yes");
+        Alert.noLabel = ResourceManager.getInstance().getString("BuilderStrings", "no");
     }

     private function applyLocaleLayoutDirection(selectedLocale:String):void


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

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

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/alertClasses/AlertForm.as
+++ frameworks/projects/mx/src/mx/controls/alertClasses/AlertForm.as
@@ -59,6 +59,11 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function AlertForm()
 	{
@@ -75,6 +80,11 @@

 	/**
 	 *  The UITextField that displays the text of the Alert control.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	mx_internal var textField:IUITextField;

@@ -92,11 +102,21 @@

 	/**
 	 *  The DisplayObject that displays the icon.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	private var icon:DisplayObject;

     /**
      *  An Array that contains any Buttons appearing in the Alert control.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	mx_internal var buttons:Array = [];


Hrm, let's make sure doing a trace() (or throwing an exception) inside the trace code doesn't cause infinite recursion.

--- tamarin-central/thane/toplevel.as
+++ tamarin-central/thane/toplevel.as
@@ -68,10 +68,22 @@
 		return Domain.currentDomain.getClass(name);
 	}

+    var tracing :Boolean = false;
+
 	// nonstandard Flash Player extensions
 	public function trace(... s) :void
 	{
         System.trace(s);
-        Thane.getTracer().dispatchEvent(new TraceEvent(TraceEvent.TRACE, false, false, s));
+        // dispatch the trace on the Thane emitter, with recursion protection
+        if (!tracing) {
+            tracing = true;
+            try {
+                Thane.getTracer().dispatchEvent(new TraceEvent(TraceEvent.TRACE, false, false, s));
+            } catch (e :Error) {
+                tracing = false;
+                throw e;
+            }
+            tracing = false;
+        }
 	}
 }


Tests: fixed AIR files in directory test on Windows

--- test/src/tests/AIROptionsTests.as
+++ test/src/tests/AIROptionsTests.as
@@ -171,9 +171,9 @@
 			var value:Array = [
 				file1
 			];
-			var fileInDir1:String = file1[AIROptions.FILES_FILE] + "/file2.txt";
-			var fileInDir2:String = file1[AIROptions.FILES_FILE] + "/file3.txt";
-			var dirPath:String = file1[AIROptions.FILES_PATH] + "/subdir";
+			var fileInDir1:String = path.join(file1[AIROptions.FILES_FILE], "file2.txt");
+			var fileInDir2:String = path.join(file1[AIROptions.FILES_FILE], "file3.txt");
+			var dirPath:String = path.join(file1[AIROptions.FILES_PATH], "subdir");
 			var args:Object = {};
 			args[AIROptions.FILES] = value;
 			var result:Array = AIROptionsParser.parse(AIRPlatformType.IOS, false, "application.xml", "test.swf", args);


Some nice commenting to explain WTF it's doing.

--- flash/org/windmill/Windmill.as
+++ flash/org/windmill/Windmill.as
@@ -25,7 +25,12 @@
     public static var assertMethods:Array = [];
     public static var packages:Object = {
       controller: {
+        // Ref to the namespace, since you can't
+        // do it via string lookup
         packageRef: org.windmill.WMController,
+        // Gets filled with the list of public methods --
+        // used to generate the wrapped methods exposed
+        // via ExternalInterface
         methodNames: []
       },
       assert: {
@@ -36,6 +41,19 @@

     public function Windmill():void {}

+    // Initializes the Windmill Flash code
+    // 1. Saves a reference to the stage in 'context'
+    //    this is the equivalent of the window obj in
+    //    Windmill's JS impl. See WMLocator to see how
+    //    it's used
+    // 2. Does some introspection/metaprogramming to
+    //    expose all the public methods in WMController
+    //    and WMAsserts through the ExternalInterface
+    //    as wrapped functions that return either the
+    //    Boolean true, or the Error object if an error
+    //    happens (as in the case of all failed tests)
+    // 3. Exposes the start/stop method of WMExplorer
+    //    to turn on and off the explorer
     public static function init(config:Object):void {
       var methodName:String;
       var item:*;


Summary: Newlines are not currently escaped in XML serialization.

New Features:

Bugs Fixed: LPP-3773

Technical Reviewer: max
QA Reviewer: pablo
Doc Reviewer: n/a

Documentation:

Release Notes:
XML serialization has been updated to escape newlines in attribute values.

Details:
W3 character escaping says that the canonical form of CR uses an escape code.
Server code that we're writing appears to support this.
http://www.w3.org/TR/1999/WD-xml-c14n-19991109.html#charescaping

NB that the linefeed or carriage return would be a reasonable
choice here, but I went with carriage return since that best
matches the definition of Javascript charCode 13.

Tests:
This is hard to test without server support, as the
LFC allows literal newlines in attribute values.

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@4462 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c


Don't iterate over the export confs twice.

--- exporter/src/main/as/flump/export/ProjectController.as
+++ exporter/src/main/as/flump/export/ProjectController.as
@@ -287,20 +287,14 @@
         }

         var formatNames :Array = [];
+        var hasCombined :Boolean = false;
         if (_conf != null) {
             for each (var export :ExportConf in _conf.exports) {
                 formatNames.push(export.description);
+                hasCombined ||= export.combine;
             }
         }
         _win.formatOverview.text = formatNames.join(", ");
-
-        var hasCombined :Boolean = false;
-        for each (var exportConf :ExportConf in _conf.exports) {
-            if (exportConf.combine) {
-                hasCombined = true;
-                break;
-            }
-        }
         _win.exportAll.label = hasCombined ? "Export Combined" : "Export All";
         _win.exportModified.enabled = !hasCombined;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17308
Author:   dthakkar@adobe.com
Date:     2010-08-12T23:22:20.533632Z

Log Message:
-----------
Flex integration feature (includes spark formatters and related checkintests.)
UIComponent.as - Added API's to support non visual style client
IAdvancedStyleClient.as - Added setter for StyleParent method
StyleProtoChain.as - Added else loop to verify if the component is IAdvancedStyleClient
StyleProxy.as - added setter for styleParent method (this class inherits IAdvancedStyleClient interface)

QE notes: No
Doc notes: No
Bugs: No
Reviewer: Gordon , Darrell
Tests run: CheckinTests, Mustella
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/CollatorBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/supportClasses/NumberBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/supportClasses</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/CollatorTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/SortingCollator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/StringToolsTestScript.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/AdvancedStyleClientTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest/ADVStyleTestEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/NumberFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/CurrencyFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/CollatorTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/NumberFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/DateTimeFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/CurrencyFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/DateTimeFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/AdvancedStyleClientTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/GlobalizationBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/formatters/IFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest/ADVStyleTestClass.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/LastOperationStatus.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/StringToolsTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/MatchingCollator.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -4478,6 +4478,23 @@
             }
         }

+        if (advanceStyleClientChildren != null)
+        {
+            var nAdvanceStyleChildern:int = advanceStyleClientChildren.length;
+            for (var j:int = 0; j < nAdvanceStyleChildern; j++)
+            {
+                var iAdvanceStyleClientChild:IFlexModule = advanceStyleClientChildren[j] as IFlexModule;
+                if (!iAdvanceStyleClientChild)
+                    continue;
+
+                if (iAdvanceStyleClientChild.moduleFactory == null
+                    || iAdvanceStyleClientChild.moduleFactory == _moduleFactory)
+                {
+                    iAdvanceStyleClientChild.moduleFactory = factory;
+                }
+            }
+        }
+
         _moduleFactory = factory;

         setDeferredStyles();
@@ -10646,6 +10663,11 @@
     {
         return parent as IAdvancedStyleClient;
     }
+
+    public function set styleParent(parent:IAdvancedStyleClient):void
+    {
+
+    }

     /**
      *  @inheritDoc
@@ -10776,6 +10798,21 @@
                     StyleProtoChain.initTextField(IUITextField(child));
             }
         }
+
+        // Call this method on each non-visual StyleClient
+        if (advanceStyleClientChildren != null)
+        {
+            var nAdvanceStyleChildern:int = advanceStyleClientChildren.length;
+            for (var j:int = 0; j < nAdvanceStyleChildern; j++)
+            {
+                if (advanceStyleClientChildren[j].inheritingStyles !=
+                    StyleProtoChain.STYLE_UNINITIALIZED)
+                {
+                    advanceStyleClientChildren[j].regenerateStyleCache(recursive);
+                }
+            }
+        }
+
     }

     /**
@@ -10939,6 +10976,115 @@
     }

     /**
+     *  @private
+     */
+    private var advanceStyleClientChildren:Vector.<IAdvancedStyleClient> = null;
+
+    /**
+     *  Adds a non-visual style client to this component instance. Once
+     *  this method has been called, the style client will inherit style
+     *  changes from this component instance. Style clients that are
+     *  DisplayObjects must use the addChild or
+     *  addChildAt methods to be added to a
+     *  UIComponent.
+     *
+     *  As a side effect, this method will set the styleParent
+     *  property of the styleClient parameter to reference
+     *  this instance of the UIComponent.
+     *
+     *  If the styleClient parameter already has a
+     *  styleParent, this method will call
+     *  removeStyleClient from this previous
+     *  styleParent.
+     *
+     *
+     *  @param styleClient The IAdvancedStyleClient to
+     *  add to this component's list of non-visual style clients.
+     *
+     *  @throws ArgumentError if the styleClient parameter
+     *  is a DisplayObject.
+     *
+     *  @see removeStyleClient
+     *  @see mx.styles.IAdvancedStyleClient
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    public function addStyleClient(styleClient:IAdvancedStyleClient):void
+    {
+        if(!(styleClient is DisplayObject))
+        {
+            if(styleClient.styleParent!=null)
+            {
+                var parentComponent:UIComponent = styleClient.styleParent as UIComponent;
+                if (parentComponent)
+                    parentComponent.removeStyleClient(styleClient);
+               }
+
+                if (advanceStyleClientChildren == null)
+                advanceStyleClientChildren = new Vector.<IAdvancedStyleClient>();
+
+            advanceStyleClientChildren.push(styleClient);
+            styleClient.styleParent=this;
+
+            styleClient.regenerateStyleCache(true);
+
+            styleClient.styleChanged(null);
+        }
+        else
+        {
+            var message:String = resourceManager.getString(
+                "core", "stateUndefined", [ this.className ]);
+            throw new ArgumentError(message);
+        }
+    }
+
+    /**
+     *  Removes a non-visual style client from this component instance.
+     *  Once this method has been called, the non-visual style client will
+     *  no longer inherit style changes from this component instance.
+     *
+     *  As a side effect, this method will set the
+     *  styleParent property of the styleClient
+     *  parameter to null.
+     *
+     *  If the styleClient has not been added to this
+     *  component instance, no action will be taken.
+     *
+     *  @param styleClient The IAdvancedStyleClient to remove
+     *  from this component's list of non-visual style clients.
+     *
+     *  @return The non-visual style client that was passed in as the
+     *  styleClient parameter.
+     *
+     *  @see addStyleClient
+     *  @see mx.styles.IAdvancedStyleClient
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    public function removeStyleClient(styleClient:IAdvancedStyleClient):IAdvancedStyleClient
+    {
+        if(advanceStyleClientChildren && advanceStyleClientChildren.length != 0)
+        {
+            var i:int = advanceStyleClientChildren.indexOf(styleClient);
+            if(i!=-1) {
+                advanceStyleClientChildren.splice(i, 1);
+                styleClient.styleParent = null;
+
+                styleClient.regenerateStyleCache(true);
+
+                styleClient.styleChanged(null);
+            }
+        }
+        return styleClient;
+    }
+
+    /**
      *  Propagates style changes to the children.
      *  You typically never need to call this method.
      *
@@ -10971,6 +11117,20 @@
                 // Container.notifyStyleChangeInChildren.
                 if (child is IStyleClient)
                     IStyleClient(child).notifyStyleChangeInChildren(styleProp, recursive);
+            }
+        }
+
+        if (advanceStyleClientChildren != null)
+        {
+            var nAdvanceStyleClientChildern:int = advanceStyleClientChildren.length;
+            for (var j:int = 0; j < nAdvanceStyleClientChildern; j++)
+            {
+                var iAdvanceStyleClientChild:IAdvancedStyleClient = advanceStyleClientChildren[j];
+
+                if (iAdvanceStyleClientChild)
+                {
+                    iAdvanceStyleClientChild.styleChanged(styleProp);
+                }
             }
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10479
Author:   jimurphy@adobe.com
Date:     2009-09-22T00:33:54.511456Z

Log Message:
-----------
Merged gumbo_beta2 revisions 10396,10434,10463,10472 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/CompcPreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Box.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/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/SymbolTable.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/MxmlDocument.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Tile.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/HBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/MxmlCompiler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Canvas.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/VBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/CompilerAPI.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>

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

--- frameworks/projects/mx/src/mx/containers/ControlBar.as
+++ frameworks/projects/mx/src/mx/containers/ControlBar.as
@@ -54,9 +54,11 @@
 [IconFile("ControlBar.png")]

 /**
- *  As of Flex 4, the ControlBar is no longer recommended. You can achieve the same
- *  effect by compositing groups and graphics tags in your Panel, or creating a
- *  Panel subclass that has a control bar part.
+ *  As of Flex 4, the ControlBar component is no longer required. Use
+ *  the controlBarContent property of the Spark Panel class
+ *  to specify the set of components to include in the control bar area. Use
+ *  the controlBarLayout property of the Spark Panel class
+ *  to specify the layout of the control bar area.
  */
 [Alternative(replacement="none", since="4.0")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 17992
Author:   rfrishbe@adobe.com
Date:     2010-10-01T20:59:13.104275Z

Log Message:
-----------
Making performance changes to optimize list scrolling.  Most of the changes are around gating dispatchEvent() with hasEventListener().  The biggest of these is that UIComponent SHOW and HIDE don't dispatch all the time anymore--they only dispatch if someone has attached an event listener directly to them (capture phase won't work).

Also, adding an mx_internal property for Design View on MobileIconItemRenderer, iconDisplayClass.

Also, adding a FIXME in ButtonSkinbase related to my last change around text measurement.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentRequest.as</path>
<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/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.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/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/DataRenderer.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@1259991 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -170,6 +170,9 @@

 /**
  *  Dispatched when an object's state changes from visible to invisible.
+ *
+ *
This event is only dispatched when there are one or more relevant listeners
+ *  attached to the dispatching object.

  *
  *  @eventType mx.events.FlexEvent.HIDE
  *
@@ -308,6 +311,9 @@

 /**
  *  Dispatched when an object's state changes from invisible to visible.
+ *
+ *
This event is only dispatched when there are one or more relevant listeners
+ *  attached to the dispatching object.

  *
  *  @eventType mx.events.FlexEvent.SHOW
  *
@@ -3213,9 +3219,10 @@

         if (!noEvent)
         {
-            dispatchEvent(new FlexEvent(value ?
-                                        FlexEvent.SHOW :
-                                        FlexEvent.HIDE));
+            var eventType:String = value ? FlexEvent.SHOW :FlexEvent.HIDE;
+
+            if (hasEventListener(eventType))
+                dispatchEvent(new FlexEvent(eventType));
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12430
Author:   cframpto@adobe.com
Date:     2009-12-03T14:43:39.055802Z

Log Message:
-----------
Consistent with MX, all selected indices after the first invalid index are ignored.

QE notes:
Doc notes:
Bugs: SDK-21643
Reviewer: Deepa
Tests run: checkintests, List Drag & Drop, ComboBox, DropDownList, ButtonBar, TabBar
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -930,6 +930,19 @@
         var oldSelectedIndex:Number = _selectedIndex;
         var oldCaretIndex:Number = _caretIndex;

+        // Consistent with MX, all indices after the first invalid index
+        // are ignored.
+        var count:int = _proposedSelectedIndices.length;
+        for (var i:int = 0; i < count; i++)
+        {
+            if (_proposedSelectedIndices[i] < 0 ||
+                _proposedSelectedIndices[i] >= dataProvider.length)
+            {
+                _proposedSelectedIndices.splice(i, count - i);
+                break;
+            }
+        }
+
         // Ensure that multiple selection is allowed and that proposed
         // selected indices honors it. For example, in the single
         // selection case, proposedSelectedIndices should only be a


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 20843
Author:   mhorn@adobe.com
Date:     2011-03-14T14:36:04.836183Z

Log Message:
-----------
merge

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/TabBar.as
+++ frameworks/projects/spark/src/spark/components/TabBar.as
@@ -68,9 +68,8 @@
  *  of the tabs.
  *
  *
The set of tabs is defined by the dataProvider property.
- *  The appearance of each tab is defined by the TabBarSkin class.
- *  By default, each tab is defined as a ButtonBarButton component
- *  with a skin defined by the TabBarButtonSkin class.

+ *  The appearance of the TabBar is defined by the TabBarSkin class.
+ *  The appearance of each tab is defined by the TabBarButtonSkin class.

  *
  *
You can use the TabBar control to set the active child of a ViewStack container,
  *  as the following example shows:

@@ -120,7 +119,6 @@
  *  @see mx.containers.ViewStack
  *  @see spark.skins.spark.TabBarSkin
  *  @see spark.skins.spark.TabBarButtonSkin
- *  @see spark.components.ButtonBarButton
  *
  *  @includeExample examples/TabBarExample.mxml
  *


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

--- frameworks/projects/spark/src/spark/utils/FTETextUtil.as
+++ frameworks/projects/spark/src/spark/utils/FTETextUtil.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.
 //
 ////////////////////////////////////////////////////////////////////////////////


roman -> hiragana

roman -> hiragana

--- sh/saqoo/util/StringUtil.as
+++ sh/saqoo/util/StringUtil.as
@@ -1,4 +1,5 @@
 package sh.saqoo.util {
+
 	import flash.utils.ByteArray;

@@ -47,5 +48,82 @@
 		public static function intToStringWithComma(value:int):String {
 			return value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
 		}
+
+
+		/**
+		 * roman -> hiragana
+		 * @see http://d.hatena.ne.jp/Kureduki_Maari/20100330/1269906760
+		 * @param (String) roman:
+		 * @return (String): hiragana
+		 */
+		public static function roman2hiragana(roman:String):String {
+			var hiragana:String = '',
+				table:Object = _r2hTable,
+				regex:RegExp = _r2hRx,
+				result:Array,
+				i:int, l:int;
+			for (i = 0, l = roman.length; i < l; ++i) {
+				if ((result = roman.slice(i).match(regex))) {
+					if (result[0] === 'n') {
+						hiragana += 'ん';
+					} else if ((/^([^n])\1$/).test(result[0])) {
+						hiragana += 'っ';
+						--i;
+					} else {
+						hiragana += table[result[0]];
+					}
+					i += result[0].length - 1;
+				} else {
+					hiragana += roman.charAt(i);
+				}
+			}
+			return hiragana;
+		}
+
+		private static const _r2hTable:Object = {
+			'a':'あ', 'i':'い', 'u':'う', 'e':'え', 'o':'お',
+			'ka':'か', 'ki':'き', 'ku':'く', 'ke':'け', 'ko':'こ',
+			'sa':'さ', 'si':'し', 'su':'す', 'se':'せ', 'so':'そ',
+			'ta':'た', 'ti':'ち', 'tu':'つ', 'te':'て', 'to':'と', 'chi':'ち', 'tsu':'つ',
+			'na':'な', 'ni':'に', 'nu':'ぬ', 'ne':'ね', 'no':'の',
+			'ha':'は', 'hi':'ひ', 'hu':'ふ', 'he':'へ', 'ho':'ほ', 'fu':'ふ',
+			'ma':'ま', 'mi':'み', 'mu':'む', 'me':'め', 'mo':'も',
+			'ya':'や', 'yi':'い', 'yu':'ゆ', 'ye':'いぇ', 'yo':'よ',
+			'ra':'ら', 'ri':'り', 'ru':'る', 're':'れ', 'ro':'ろ',
+			'wa':'わ', 'wyi':'ゐ', 'wu':'う', 'wye':'ゑ', 'wo':'を',
+			'nn':'ん',
+			'ga':'が', 'gi':'ぎ', 'gu':'ぐ', 'ge':'げ', 'go':'ご',
+			'za':'ざ', 'zi':'じ', 'zu':'ず', 'ze':'ぜ', 'zo':'ぞ', 'ji':'じ',
+			'da':'だ', 'di':'ぢ', 'du':'づ', 'de':'で', 'do':'ど',
+			'ba':'ば', 'bi':'び', 'bu':'ぶ', 'be':'べ', 'bo':'ぼ',
+			'pa':'ぱ', 'pi':'ぴ', 'pu':'ぷ', 'pe':'ぺ', 'po':'ぽ',
+			'kya':'きゃ', 'kyu':'きゅ', 'kyo':'きょ',
+			'sya':'しゃ', 'syu':'しゅ', 'syo':'しょ',
+			'tya':'ちゃ', 'tyi':'ちぃ', 'tyu':'ちゅ', 'tye':'ちぇ', 'tyo':'ちょ', 'cha':'ちゃ', 'chu':'ちゅ', 'che':'ちぇ', 'cho':'ちょ',
+			'nya':'にゃ', 'nyi':'にぃ', 'nyu':'にゅ', 'nye':'にぇ', 'nyo':'にょ',
+			'hya':'ひゃ', 'hyi':'ひぃ', 'hyu':'ひゅ', 'hye':'ひぇ', 'hyo':'ひょ',
+			'mya':'みゃ', 'myi':'みぃ', 'myu':'みゅ', 'mye':'みぇ', 'myo':'みょ',
+			'rya':'りゃ', 'ryi':'りぃ', 'ryu':'りゅ', 'rye':'りぇ', 'ryo':'りょ',
+			'gya':'ぎゃ', 'gyi':'ぎぃ', 'gyu':'ぎゅ', 'gye':'ぎぇ', 'gyo':'ぎょ',
+			'zya':'じゃ', 'zyi':'じぃ', 'zyu':'じゅ', 'zye':'じぇ', 'zyo':'じょ',
+			'ja':'じゃ', 'ju':'じゅ', 'je':'じぇ', 'jo':'じょ', 'jya':'じゃ', 'jyi':'じぃ', 'jyu':'じゅ', 'jye':'じぇ', 'jyo':'じょ',
+			'dya':'ぢゃ', 'dyi':'ぢぃ', 'dyu':'ぢゅ', 'dye':'ぢぇ', 'dyo':'ぢょ',
+			'bya':'びゃ', 'byi':'びぃ', 'byu':'びゅ', 'bye':'びぇ', 'byo':'びょ',
+			'pya':'ぴゃ', 'pyi':'ぴぃ', 'pyu':'ぴゅ', 'pye':'ぴぇ', 'pyo':'ぴょ',
+			'fa':'ふぁ', 'fi':'ふぃ', 'fe':'ふぇ', 'fo':'ふぉ',
+			'fya':'ふゃ', 'fyu':'ふゅ', 'fyo':'ふょ',
+			'xa':'ぁ', 'xi':'ぃ', 'xu':'ぅ', 'xe':'ぇ', 'xo':'ぉ', 'la':'ぁ', 'li':'ぃ', 'lu':'ぅ', 'le':'ぇ', 'lo':'ぉ',
+			'xya':'ゃ', 'xyu':'ゅ', 'xyo':'ょ',
+			'xtu':'っ', 'xtsu':'っ',
+			'wi':'うぃ', 'we':'うぇ',
+			'va':'ヴぁ', 'vi':'ヴぃ', 'vu':'ヴ', 've':'ヴぇ', 'vo':'ヴぉ'
+		};
+		private static const _r2hRx:RegExp = new RegExp((function():String {
+			var s:String = '^(?:', key:String;
+			for (key in _r2hTable) {
+				s += key + '|';
+			}
+			return s + '(?:n(?![aiueo]|y[aiueo]|$))|' + '([^aiueon])\\1' + ')';
+		})());
 	}
 }