Update comment that was wrong in global-variable-properties.as

--- test/trace/global-variable-properties.as
+++ test/trace/global-variable-properties.as
@@ -5,8 +5,8 @@
 trace_properties (_global.Infinity, "_global", "Infinity");
 trace_properties (_global.NaN, "_global", "NaN");
 trace_properties (_global.o, "_global", "o");
-// _global.flash is undefined, so we need to check extra
-//trace (hasOwnProperty (_global, "flash"));
+// Need to unhide it first on version < 8
+//ASSetPropFlags (_global, "flash", 0, 5248);
 //trace_properties (_global.flash, "_global", "flash");

 loadMovie ("FSCommand:quit", "");


OPEN - issue REPRISE-62: TextInput - validate placeholderAttribute
http://j.fork.de:8080/browse/REPRISE-62

	FIXED

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

--- src/reprise/controls/TextInput.as
+++ src/reprise/controls/TextInput.as
@@ -157,6 +157,17 @@
 				setLabel(value);
 			}
 		}
+		public override function didSucceed():Boolean
+		{
+			if (m_validator || !m_required || !m_placeholder)
+			{
+				return super.didSucceed();
+			}
+
+			var success:Boolean = value() != m_placeholder;
+			success ? markAsValid() : markAsInvalid();
+			return success;
+		}

 		/***************************************************************************


To avoid performance loss in complex scenes when the scene root is selected, avoid debug draw recursing from the root onwards.

--- Bin/Data/Scripts/Editor/EditorView.as
+++ Bin/Data/Scripts/Editor/EditorView.as
@@ -1305,7 +1305,7 @@
     if (debug is null || orbiting)
         return;

-    // Visualize the currently selected nodes as their local axes + the first drawable component
+    // Visualize the currently selected nodes
     for (uint i = 0; i < selectedNodes.length; ++i)
         DrawNodeDebug(selectedNodes[i], debug);

@@ -1337,11 +1337,17 @@
 void DrawNodeDebug(Node@ node, DebugRenderer@ debug)
 {
     debug.AddNode(node, 1.0, false);
-    for (uint j = 0; j < node.numComponents; ++j)
-        node.components[j].DrawDebugGeometry(debug, false);
-
-    for (uint k = 0; k < node.numChildren; ++k)
-        DrawNodeDebug(node.children[k], debug);
+
+    // Exception for the scene to avoid bringing the editor to its knees: drawing either the whole hierarchy or the subsystem-
+    // components can have a large performance hit
+    if (node !is editorScene)
+    {
+        for (uint j = 0; j < node.numComponents; ++j)
+            node.components[j].DrawDebugGeometry(debug, false);
+
+        for (uint k = 0; k < node.numChildren; ++k)
+            DrawNodeDebug(node.children[k], debug);
+    }
 }

 void ViewMouseMove()


Transferred from the Adobe Open Source Subversion Repository

Revision: 3605
Author:   shodgson@adobe.com
Date:     2008-10-13T22:51:11.374492Z

Log Message:
-----------
Removed [ExcludeClass] metadata from several classes per doc request.

Bug: LCDS-386 - Remove [ExcludeClass] from several classes
QA: No
Doc: Yes
Checkintests Pass: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/ISOAPDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/ISOAPEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLDecoder.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as
+++ frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as
@@ -14,8 +14,6 @@

 import flash.events.Event;
 import mx.rpc.wsdl.WSDL;
-
-[ExcludeClass]

 /**
  * The WSDLLoadEvent class represents the event object for the event dispatched


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-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.rpc.xml
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8102
Author:   cframpto@adobe.com
Date:     2009-06-23T18:26:07.711484Z

Log Message:
-----------
A couple of text changes to sync with TLF Build 458 that I just submitted.

QA Notes:
Doc Notes:
Reviewers: will be Gordon

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

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -343,8 +343,6 @@
             // Once we have a TextFlow, we can export its plain text.
             _text = staticPlainTextExporter.export(
             	_textFlow, ConversionType.STRING_TYPE) as String;
-			// Remove the trailing paragraph terminator.
-            _text = _text.substring(0, _text.length - 1);
         }

         return _text;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4706
Author:   cframpto@adobe.com
Date:     2009-01-28T15:58:30.380451Z

Log Message:
-----------
When handling the damageEvent make sure _contents gets updated with the potentially modified contents of the textFlow.  Either the contents or the style of the text flow, or both could have triggered the damage event.

QE Notes:
Doc Notes:
Bugs: SDK-18749
Reviewers: Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -682,8 +682,12 @@
         //trace("damageHandler", "damageStart", event.damageStart, "damageLength", event.damageLength);

         // The text flow changed.  It could have been either/or content or
-        // styles within the flow.
-        contentChanged = true;
+        // styles within the text flow.  Invalidate text so that it will be
+        // regenerated from the text flow.
+        textInvalid = true;
+
+        // Make sure composition is done at least once.  It will update
+        // _content with the potentially modified contents of the text flow.
         stylesChanged = true;

         // Unless both width/height were specified, need to recalc size.


Transferred from the Adobe Open Source Subversion Repository

Revision: 3552
Author:   rfrishbe@adobe.com
Date:     2008-10-09T22:07:55.906700Z

Log Message:
-----------
This patch contains multiple changes, mostly renames, outlined below:

1.Rename properties in FxComponent: skinObject -> skin, skinZZ -> skinClass.
2.Rename property in Skin: data -> fxComponent (this also means Skin doesn’t implement IDataRenderer anymore)
3.Renames in DataGroup: Mostly around "skin" to "renderer" to get terminology correct
4.Random other cleanups: For instance changing typing of "*" to "Object" in ItemsComponent and DataGroup or removing some un-used imports in Group and GroupBase.
5.Lots of cleanup in flex4tests to deal with renaming of classes and renaming of properties
6.Gumbo-manifest.mxml  - typo...some files listed as mx.componentss.* instead of mx.components.*.  This file is going away as all components are moved into the 2009 namespace, but we'll fix this for now.
7.Defaults.css – FxDataComponent should be FxDataContainer.
8.SystemManger fix: this was in the previous SystemManager but got overwritten by a bad merge.  Jim’s aware of the issue, and I’m checking in the fix for it.

QE: Yes - Joann and Steve have pre-emptively made the changes
Doc: Yes
Bugs: SDK-17056, SDK-17174
Reviewer: Chet, Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxNumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/NewEffects.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/AddItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/EffectsProperties.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/RemoveItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxSpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/AnimationPropertiesForm.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/ScrollbarFrenzy.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/CircularScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -79,10 +79,10 @@

     private function invalidateSkin():void
     {
-        if (skinObject)
-        {
-            skinObject.invalidateSize()
-            skinObject.invalidateDisplayList();
+        if (skin)
+        {
+            skin.invalidateSize()
+            skin.invalidateDisplayList();
         }
     }

@@ -133,9 +133,9 @@

     private function installViewport():void
     {
-        if (skinObject && viewport)
-        {
-            skinObject.addItemAt(viewport, 0);
+        if (skin && viewport)
+        {
+            skin.addItemAt(viewport, 0);
             viewport.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
         }

@@ -143,9 +143,9 @@

     private function uninstallViewport():void
     {
-    	if (skinObject && viewport)
+    	if (skin && viewport)
     	{
-    		skinObject.removeItem(viewport);
+    		skin.removeItem(viewport);
     		viewport.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
     	}
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4748
Author:   dsubrama@adobe.com
Date:     2009-01-30T00:31:42.781368Z

Log Message:
-----------
Externalizing strings for the flex4 project. We now produce a resource bundle swc (flex4_rb.swc) that has all of the externalized strings for the flex4 project. We include 3 new bundles: components, layout and sparkEffects for the en_US locale. Other locales will come shortly.

QA: Yes, please doublecheck error messages are thrown with the correct error message.
Checkintests: Pass
Reviewer: Gordon

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/components.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="A">/flex/sdk/trunk/layout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="A">/flex/sdk/trunk/sparkEffects.properties</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -56,6 +56,12 @@
  *  @copy mx.components.baseClasses.GroupBase#symbolColor
  */
 [Style(name="symbolColor", type="uint", format="Color", inherit="yes")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[ResourceBundle("components")]

 [DefaultProperty("viewport")]

@@ -354,7 +360,7 @@
         if (viewport && index == 0)
             return viewport;
         else
-            throw new RangeError("Index " + index + " is out of range");
+            throw new RangeError(resourceManager.getString("components", "indexOutOfRange", [index]));
     }

     /**
@@ -372,7 +378,7 @@
         if (element != null && element == viewport)
             return 0;
         else
-            throw ArgumentError(element + " is not found in this FxScroller");
+            throw ArgumentError(resourceManager.getString("components", "elementNotFoundInFxScroller", [element]));
     }

     /**
@@ -384,7 +390,7 @@
      */
     public function addElement(element:IVisualElement):IVisualElement
     {
-        throw new ArgumentError("This operation is not supported");
+        throw new ArgumentError(resourceManager.getString("components", "operationNotSupported"));
     }

     /**
@@ -396,7 +402,7 @@
      */
     public function addElementAt(element:IVisualElement, index:int):IVisualElement
     {
-        throw new ArgumentError("This operation is not supported");
+        throw new ArgumentError(resourceManager.getString("components", "operationNotSupported"));
     }

     /**
@@ -408,7 +414,7 @@
      */
     public function removeElement(element:IVisualElement):IVisualElement
     {
-        throw new ArgumentError("This operation is not supported");
+        throw new ArgumentError(resourceManager.getString("components", "operationNotSupported"));
     }

     /**
@@ -420,7 +426,7 @@
      */
     public function removeElementAt(index:int):IVisualElement
     {
-        throw new ArgumentError("This operation is not supported");
+        throw new ArgumentError(resourceManager.getString("components", "operationNotSupported"));
     }

     /**
@@ -432,7 +438,7 @@
      */
     public function setElementIndex(element:IVisualElement, index:int):void
     {
-        throw new ArgumentError("This operation is not supported");
+        throw new ArgumentError(resourceManager.getString("components", "operationNotSupported"));
     }

     /**
@@ -444,7 +450,7 @@
      */
     public function swapElements(element1:IVisualElement, element2:IVisualElement):void
     {
-        throw new ArgumentError("This operation is not supported");
+        throw new ArgumentError(resourceManager.getString("components", "operationNotSupported"));
     }

     /**
@@ -456,7 +462,7 @@
      */
     public function swapElementsAt(index1:int, index2:int):void
     {
-        throw new ArgumentError("This operation is not supported");
+        throw new ArgumentError(resourceManager.getString("components", "operationNotSupported"));
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 8386
Author:   srahim@adobe.com
Date:     2009-07-06T19:50:00.014831Z

Log Message:
-----------
ASDoc updates for Spark components

QE Notes: None
Doc Notes: None
Bugs: -
checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -103,6 +103,26 @@
  *  is preserved as the user edits. TextArea does not include any UI
  *  for changing the formatting of text; text can be changed programmatically
  *  only.

+ *
+ *
The TextArea control has the following default characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           188 pixels wide by 149 pixels high
+ *

+ *

+ *           Minimum size
+ *           36 pixels wide and 36 pixels high
+ *

+ *

+ *           Maximum size
+ *           10000 pixels wide and 10000 pixels high
+ *

+ *

  *
  *  @mxml
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 10507
Author:   egeorgie@adobe.com
Date:     2009-09-22T18:49:47.519726Z

Log Message:
-----------
Fix for http://bugs.adobe.com/jira/browse/SDK-23369 Update Path Bounds Calculations to Account for Miter Limit and Stroke

QE notes: Add test for path bounds with thick stroke and miter limit.
Doc notes: None
Bugs: SDK-23369
Reviewer: Deepa
Tests run: checkintests, mustella (spark/primitives, layout, core/group, components/radiobutton, componennts/checkbox)
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/IStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/BasicLayout.as
+++ frameworks/projects/spark/src/spark/layouts/BasicLayout.as
@@ -384,18 +384,18 @@
             if (!layoutElement || !layoutElement.includeInLayout)
                 continue;

-            var hCenter:Number = LayoutElementHelper.parseConstraintValue(layoutElement.horizontalCenter);
-            var vCenter:Number = LayoutElementHelper.parseConstraintValue(layoutElement.verticalCenter);
-            var baseline:Number      = LayoutElementHelper.parseConstraintValue(layoutElement.baseline);
-            var left:Number    = LayoutElementHelper.parseConstraintValue(layoutElement.left);
-            var right:Number   = LayoutElementHelper.parseConstraintValue(layoutElement.right);
-            var top:Number     = LayoutElementHelper.parseConstraintValue(layoutElement.top);
-            var bottom:Number  = LayoutElementHelper.parseConstraintValue(layoutElement.bottom);
-            var percentWidth:Number  = layoutElement.percentWidth;
-            var percentHeight:Number = layoutElement.percentHeight;
+            var hCenter:Number          = LayoutElementHelper.parseConstraintValue(layoutElement.horizontalCenter);
+            var vCenter:Number          = LayoutElementHelper.parseConstraintValue(layoutElement.verticalCenter);
+            var baseline:Number         = LayoutElementHelper.parseConstraintValue(layoutElement.baseline);
+            var left:Number             = LayoutElementHelper.parseConstraintValue(layoutElement.left);
+            var right:Number            = LayoutElementHelper.parseConstraintValue(layoutElement.right);
+            var top:Number              = LayoutElementHelper.parseConstraintValue(layoutElement.top);
+            var bottom:Number           = LayoutElementHelper.parseConstraintValue(layoutElement.bottom);
+            var percentWidth:Number     = layoutElement.percentWidth;
+            var percentHeight:Number    = layoutElement.percentHeight;

-            var elementMaxWidth:Number = layoutElement.getMaxBoundsWidth();
-            var elementMaxHeight:Number = layoutElement.getMaxBoundsHeight();
+            var elementMaxWidth:Number = NaN;
+            var elementMaxHeight:Number = NaN;

             // Calculate size
             var childWidth:Number = NaN;
@@ -410,7 +410,7 @@
                      availableWidth -= right;

                 childWidth = Math.round(availableWidth * Math.min(percentWidth * 0.01, 1));
-                elementMaxWidth = Math.min(elementMaxWidth,
+                elementMaxWidth = Math.min(layoutElement.getMaxBoundsWidth(),
                     maxSizeToFitIn(unscaledWidth, hCenter, left, right, layoutElement.getLayoutBoundsX()));
             }
             else if (!isNaN(left) && !isNaN(right))
@@ -427,7 +427,7 @@
                     availableHeight -= bottom;

                 childHeight = Math.round(availableHeight * Math.min(percentHeight * 0.01, 1));
-                elementMaxHeight = Math.min(elementMaxHeight,
+                elementMaxHeight = Math.min(layoutElement.getMaxBoundsHeight(),
                     maxSizeToFitIn(unscaledHeight, vCenter, top, bottom, layoutElement.getLayoutBoundsY()));
             }
             else if (!isNaN(top) && !isNaN(bottom))
@@ -439,9 +439,17 @@
             // where childWidth and childHeight are NaN, setLayoutBoundsSize will use preferredSize
             // which is already constrained between min and max.
             if (!isNaN(childWidth))
+            {
+                if (isNaN(elementMaxWidth))
+                    elementMaxWidth = layoutElement.getMaxBoundsWidth();
                 childWidth = Math.max(layoutElement.getMinBoundsWidth(), Math.min(elementMaxWidth, childWidth));
+            }
             if (!isNaN(childHeight))
+            {
+                if (isNaN(elementMaxHeight))
+                    elementMaxHeight = layoutElement.getMaxBoundsHeight();
                 childHeight = Math.max(layoutElement.getMinBoundsHeight(), Math.min(elementMaxHeight, childHeight));
+            }

             // Set the size.
             layoutElement.setLayoutBoundsSize(childWidth, childHeight);


Fix auto depth sorting according to blending destination

--- src/aerys/minko/render/material/basic/BasicShader.as
+++ src/aerys/minko/render/material/basic/BasicShader.as
@@ -7,6 +7,7 @@
 	import aerys.minko.render.shader.part.DiffuseShaderPart;
 	import aerys.minko.render.shader.part.animation.VertexAnimationShaderPart;
 	import aerys.minko.type.enum.Blending;
+	import aerys.minko.type.enum.BlendingDestination;
 	import aerys.minko.type.enum.BlendingSource;
 	import aerys.minko.type.enum.DepthTest;
 	import aerys.minko.type.enum.StencilAction;
@@ -170,7 +171,7 @@
 				BasicProperties.BLENDING, Blending.OPAQUE
 			);

-			if ((blending & 0xff) == BlendingSource.SOURCE_ALPHA)
+			if ((blending & 0xff0000) != BlendingDestination.ZERO)
 			{
 				settings.priority -= 0.5;
 				settings.depthSortDrawCalls = true;


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

--- frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as
+++ frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as
@@ -0,0 +1,104 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-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.rpc.events
+{
+
+import flash.events.Event;
+
+[ExcludeClass]
+
+/**
+ * This is a base class for events that are dispatched when an RPC service
+ * successfully loaded an XML document.
+ * @private
+ */
+public class XMLLoadEvent extends Event
+{
+    /**
+     * Creates a new XMLLoadEvent.
+     * @param type The event type; indicates the action that triggered the event.
+     * @param bubbles Specifies whether the event can bubble up the display list hierarchy.
+     * @param cancelable Specifies whether the behavior associated with the event can be prevented.
+     * @param xml The XML document loaded.
+     * @param location The path used to load the document.
+     */
+    public function XMLLoadEvent(type:String, bubbles:Boolean = false,
+        cancelable:Boolean = true, xml:XML = null, location:String = null)
+    {
+        super(type == null ? LOAD : type,
+            bubbles,
+            cancelable);
+
+        this.xml = xml;
+        this.location = location;
+    }
+
+    /**
+     * The raw XML document.
+     */
+    public var xml:XML;
+
+    /**
+     * The location from which the document was loaded.
+     */
+    public var location:String;
+
+    /**
+     * Returns a copy of this XMLLoadEvent.
+     */
+    override public function clone():Event
+    {
+        return new XMLLoadEvent(type, bubbles, cancelable, xml, location);
+    }
+
+    /**
+     * Returns a String representation of this XMLLoadEvent.
+     */
+    override public function toString():String
+    {
+        return formatToString("XMLLoadEvent", "location", "type", "bubbles",
+            "cancelable", "eventPhase");
+    }
+
+    /**
+     * A helper method to create a new XMLLoadEvent.
+     * @private
+     */
+    public static function createEvent(xml:XML = null, location:String = null):XMLLoadEvent
+    {
+        return new XMLLoadEvent(LOAD, false, true, xml, location);
+    }
+
+    /**
+     * The xmlLoad event type.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	true

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

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

+     *

+     *
+     * @eventType result
+     */
+    public static const LOAD:String = "xmlLoad";
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19527
Author:   klin@adobe.com
Date:     2010-12-23T01:22:07.328805Z

Log Message:
-----------
Enable percentWidth on ConstraintColumns in ConstraintLayout. The aligned columns of a Form will now fit inside the Form container because the content column of each FormItem has width="100%". Note that this changes the behavior for the default Spark Form. Form is now resizable by default and does not resize FormItems to fit the Form. FormItems should be set at width="100%" to fit the Form.

ConstraintLayout.as
-percentWidth on columns now works. Columns with a percentWidth will resize to fill the remaining space based on their specified percentages at layout time.
-measureAndPositionColumnsAndRows now takes two parameters, constrainedWidth and constrainedHeight, which are used to calculate the size of percent size columns and rows.
-Refactored measureColumns into three steps: Setting columns to their minimum width, finding the preferred width of each column based on elements that constrain to the column, and constraining the percent size columns to the given constrainingWidth.
-ConstraintLayout uses similar code to Horizontal and VerticalLayout to calculate the widths of the percent size columns in constrainPercentColumnWidths().

FormLayout.as
-Refactored much of the code to use and pass around a vector of the layout elements with a FormItemLayout.
-Modified updateDisplayList to first calculate the maximum column widths then constrain the percent size columns to the Form's unscaledWidth. This ensures that the columns will fit within the Form container. However, form items themselves are not resized to fit the columns. Thus, columns may spill out of each FormItem.

Skins, defaults.css
-The contentCol is now width="100%" making it fill the remaining space. Thus, Forms by default will be resizable.
-Fixed bug with bold font. We must hard code these values onto the sequenceLabel and labelDisplay because putting it in the CSS file will cause all the content to be bold too.
-Fixed bug in StackedFormItemSkin where the required indicator was included in the layout causing issues with its measuredMinWidth.

QE notes: No
Doc notes: No
Bugs: SDK-28949
Reviewer: Evtim
Tests run: cyclone to Joann, checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/FormHeadingSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/FormItemLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/FormLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/StackedFormItemSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/FormItemSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/StackedFormHeadingSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/layouts/FormLayout.as
+++ frameworks/projects/spark/src/spark/layouts/FormLayout.as
@@ -11,10 +11,11 @@

 package spark.layouts
 {
+import mx.containers.utilityClasses.ConstraintColumn;
+import mx.containers.utilityClasses.Flex;
 import mx.core.ILayoutElement;
 import mx.core.mx_internal;

-import spark.components.Form;
 import spark.components.supportClasses.GroupBase;
 import spark.components.supportClasses.SkinnableComponent;
 import spark.layouts.supportClasses.LayoutBase;
@@ -31,6 +32,91 @@
  */
 public class FormLayout extends VerticalLayout
 {
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Return the sum of all of the column widths
+     */
+    private static function calculateColumnWidthsSum(columnWidths:Vector.<Number>):Number
+    {
+        if (columnWidths == null)
+            return 0;
+
+        var sum:Number = 0;
+        var columnWidthsLength:int = columnWidths.length;
+        for (var i:int = 0; i < columnWidthsLength; i++)
+        {
+            sum += columnWidths[i];
+        }
+
+        return sum;
+    }
+
+    /**
+     *  @private
+     *  Look for the layout property of several known types.
+     *  For Form, we want the content layout.
+     *  For SkinnableComponent, we want the skin's layout.
+     *  For GroupBase, we get the layout (it has no skin).
+     *  If that layout is an IFormItemLayout, then it will
+     *  participate in the FormLayout's column alignment
+     */
+    private static function getElementLayout(elt:ILayoutElement):LayoutBase
+    {
+        var layout:LayoutBase = null;
+
+        if (elt is SkinnableComponent)
+        {
+            var skin:GroupBase = SkinnableComponent(elt).skin as GroupBase;
+            if (skin)
+                layout = skin.layout;
+        }
+        else if (elt is GroupBase)
+        {
+            layout = GroupBase(elt).layout;
+        }
+
+        return layout;
+    }
+
+    /**
+     *  @private
+     *  Returns a vector containing the layout elements that have a FormItemLayout and
+     *  thus are participating in the Form's column alignment step.
+     */
+    private static function getFormItems(layoutTarget:GroupBase):Vector.<ILayoutElement>
+    {
+        if (!layoutTarget)
+            return new Vector.<ILayoutElement>();
+
+        const nElts:int = layoutTarget.numElements;
+        var elt:ILayoutElement;
+        var formItems:Vector.<ILayoutElement> = new Vector.<ILayoutElement>();
+
+        for (var i:int = 0; i < nElts; i++)
+        {
+            elt = layoutTarget.getElementAt(i);
+            if (!elt.includeInLayout)
+                continue;
+
+            if (getElementLayout(elt) is FormItemLayout)
+                formItems.push(elt);
+        }
+
+        return formItems;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
     /**
      *  Constructor.
      *
@@ -91,13 +177,7 @@

     /**
      *  @private
-     *  Maximum width for each column.
-     */
-    private var columnMaxWidths:Vector.<Number>;
-
-    /**
-     *  @private
-     *  Caches the previously calculated column widths.
+     *  Overridden column widths value to be used.
      */
     private var columnWidthsOverride:Vector.<Number>;

@@ -106,8 +186,13 @@
      */
     public function getMeasuredColumnWidths():Vector.<Number>
     {
-        calculateColumnMaxWidths();
-        return columnMaxWidths;
+        const layoutTarget:GroupBase = target;
+        if (!layoutTarget)
+            return null;
+
+        var formItems:Vector.<ILayoutElement> = getFormItems(layoutTarget);
+
+        return calculateColumnMaxWidths(formItems);
     }

     /**
@@ -134,18 +219,21 @@
         const layoutTarget:GroupBase = target;
         if (!layoutTarget)
             return;
-
-        if (columnWidthsOverride == null)
-            calculateColumnMaxWidths();
-
-        var colWidths:Vector.<Number> = columnWidthsOverride == null ? columnMaxWidths : columnWidthsOverride;
-
-        var formWidth:Number = calculateColumnWidthsSum(colWidths);
+
+        var formItems:Vector.<ILayoutElement> = getFormItems(layoutTarget);
+
+        // Calculate preferred width based on columns
+        var columnMaxWidths:Vector.<Number> = columnWidthsOverride == null ? calculateColumnMaxWidths(formItems) : columnWidthsOverride;
+        var formWidth:Number = calculateColumnWidthsSum(columnMaxWidths);
+
+        // Calculate minimum preferred width based on columns
+        constrainPercentColumnWidths(columnMaxWidths, 0, formItems);
+        var formMinWidth:Number = calculateColumnWidthsSum(columnMaxWidths);

         // use measured column widths to set Form's measuredWidth
         // Assumes measuredWidth is already set in super.measure()
         layoutTarget.measuredWidth = Math.max(formWidth, layoutTarget.measuredWidth);
-        layoutTarget.measuredMinWidth = Math.max(formWidth, layoutTarget.measuredMinWidth);
+        layoutTarget.measuredMinWidth = Math.max(formMinWidth, layoutTarget.measuredMinWidth);
     }

     /**
@@ -154,158 +242,183 @@
     override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
         super.updateDisplayList(unscaledWidth, unscaledHeight);
-
-        // Need to get the max column widths again because they might have changed
-        // due to resolution of certain constraints
-        if (columnWidthsOverride == null)
-            calculateColumnMaxWidths();
-
-        var colWidths:Vector.<Number> = columnWidthsOverride == null ? columnMaxWidths : columnWidthsOverride;
-
-        var eltWidth:Number = calculateColumnWidthsSum(colWidths);
-
-        var layout:LayoutBase;
-        var fiLayout:FormItemLayout;
-
-        // Apply constraint columns before measuring
+
         const layoutTarget:GroupBase = target;
         if (!layoutTarget)
             return;

-        const nElts:int = layoutTarget.numElements;
-        var elt:ILayoutElement
-
-        if (colWidths != null)
-        {
-            var eltHeight:Number;
-
-            for(var i:int = 0; i < nElts; i++)
-            {
-                elt = layoutTarget.getElementAt(i);
-                if (!elt.includeInLayout)
-                    continue;
+        var formItems:Vector.<ILayoutElement> = getFormItems(layoutTarget);
+
+        // Need to get the max column widths again because they might have changed
+        // due to resolution of certain constraints
+        var columnMaxWidths:Vector.<Number> = (columnWidthsOverride == null) ? calculateColumnMaxWidths(formItems) : columnWidthsOverride;
+
+        if (columnMaxWidths.length > 0)
+        {
+            // Adjust percent size columns to fit in the Form's width
+            constrainPercentColumnWidths(columnMaxWidths, unscaledWidth, formItems);
+
+            for each (var formItem:ILayoutElement in formItems)
+            {
+                // Force each form item to use the max column widths
+                var fiLayout:FormItemLayout = getElementLayout(formItem) as FormItemLayout;
+                fiLayout.setLayoutColumnWidths(columnMaxWidths);
+            }
+
+            // Recalculate contentWidth
+            var contentWidth:Number = calculateColumnWidthsSum(columnMaxWidths);
+            layoutTarget.setContentSize(contentWidth + paddingLeft + paddingRight, layoutTarget.contentHeight);
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Iterate through all of the form items (elements with a FormItemLayout layout)
+     *  and calculate the maximum width for each column.
+     *
+     *  If a column is flexible (has percentWidth), it is treated the same as a content
+     *  width column.
+     *
+     *  @param formItems Vector of items with a FormItemLayout.
+     *
+     *  @return A vector of the maximum widths for the columns of form items.
+     */
+    private function calculateColumnMaxWidths(formItems:Vector.<ILayoutElement>):Vector.<Number>
+    {
+        // TODO (klin): Add support for columns with different types of widths across different
+        // form items. This would require additional parameter of availableWidth.
+        if (formItems.length == 0)
+            return new Vector.<Number>();
+
+        var columnMaxWidths:Vector.<Number> = new Vector.<Number>();
+        var formItem:ILayoutElement;
+        var fiLayout:FormItemLayout;
+        var lastColumnCount:Number = NaN;
+
+        // Find the preferred column widths for each form item and calculate the max.
+        for each (formItem in formItems)
+        {
+            fiLayout = getElementLayout(formItem) as FormItemLayout;
+
+            var colWidths:Vector.<Number> = fiLayout.getMeasuredColumnWidths();
+
+            if (isNaN(lastColumnCount))
+                lastColumnCount = colWidths.length;
+
+            if (columnMaxWidths.length == 0)
+            {
+                for (var j:int = 0; j < colWidths.length; j++)
+                    columnMaxWidths[j] = 0;
+            }
+
+            // TODO (jszeto) grab this error message from a resource bundle
+            if (lastColumnCount != colWidths.length)
+                throw new Error("The Form must have form items with the same number of constraint columns");
+            // TODO add logic to throw RTE if column lengths don't match
+
+            for (var k:int = 0; k < colWidths.length; k++)
+            {
+                columnMaxWidths[k] = Math.max(columnMaxWidths[k], colWidths[k]);
+            }
+        }
+
+        return columnMaxWidths;
+    }
+
+    /**
+     *  @private
+     *  Adjusts the widths of percent size columns to fill the constrainedWidth.
+     *  This method updates the provided column widths vector in place.
+     *
+     *  The percent size column widths are first reset to their minimum width.
+     *  If the given column widths from the content and fixed size columns already
+     *  fill the available width, then the percent size column widths stay at their
+     *  minimum width. Otherwise, the remaining width is distributed to the percent
+     *  size columns based on the ratio of the percentWidth to the sum of all the
+     *  percent widths.
+     */
+    private function constrainPercentColumnWidths(colWidths:Vector.<Number>, constrainedWidth:Number, formItems:Vector.<ILayoutElement>):void
+    {
+        if (formItems.length == 0)
+            return;
+
+        // TODO (klin): What happens when the form items have different types of columns?
+        const fiLayout:FormItemLayout = getElementLayout(formItems[0]) as FormItemLayout;
+        const constraintColumns:Vector.<ConstraintColumn> = fiLayout.constraintColumns;
+        const numCols:int = constraintColumns.length;
+        var col:ConstraintColumn;
+        var childInfoArray:Array /* of ColumnFlexChildInfo */ = [];
+        var childInfo:ColumnFlexChildInfo;
+        var remainingWidth:Number = constrainedWidth;
+        var percentMinWidths:Number = 0;
+        var totalPercent:Number = 0;
+
+        // Set percent width columns back to minWidth and
+        // find the remaining width.
+        for (var i:int = 0; i < numCols; i++)
+        {
+            col = constraintColumns[i];
+            if (!isNaN(col.percentWidth))
+            {
+                colWidths[i] = (!isNaN(col.minWidth)) ? Math.ceil(Math.max(col.minWidth, 0)) : 0;
+                percentMinWidths += colWidths[i];
+                totalPercent += col.percentWidth;

-                layout = getElementLayout(elt);
+                // Fill childInfoArray for distributing the width.
+                childInfo = new ColumnFlexChildInfo();
+                childInfo.index = i;
+                childInfo.percent = col.percentWidth;
+                childInfo.min = col.minWidth;
+                childInfo.max = col.maxWidth;
+                childInfoArray.push(childInfo);
+            }
+            else
+            {
+                remainingWidth -= colWidths[i];
+            }
+        }
+
+        // If there's space remaining, distribute the width to the percent size
+        // columns based on their ratio of percentWidth to sum of all the percentWidths.
+        if (remainingWidth > percentMinWidths)
+        {
+            Flex.flexChildrenProportionally(constrainedWidth,
+                                            remainingWidth,
+                                            totalPercent,
+                                            childInfoArray);
+
+            var roundOff:Number = 0;
+            for each (childInfo in childInfoArray)
+            {
+                // Make sure the calculated widths are rounded to pixel boundaries
+                var colWidth:Number = Math.round(childInfo.size + roundOff);
+                roundOff += childInfo.size - colWidth;

-                if (layout is FormItemLayout)
-                {
-                    // Force each form item to use the max column widths
-                    fiLayout = layout as FormItemLayout;
-                    fiLayout.setLayoutColumnWidths(colWidths);
-                    // Set the size of the element to use the sum of the maximum column widths
-                    // TODO (jszeto) This might not be accurate for Form if the skin has a bunch of chrome
-                    elt.setLayoutBoundsSize(Math.max(eltWidth, elt.getLayoutBoundsWidth(false)),
-                        elt.getLayoutBoundsHeight(false));
-                }
-            }
-        }
-    }
-
-
-    //--------------------------------------------------------------------------
-    //
-    //  Methods
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     *  Iterate through all of the form items (elements with a FormItemLayout layout)
-     *  and calculate the maximum width for each column.
-     */
-    private function calculateColumnMaxWidths():void
-    {
-        const layoutTarget:GroupBase = target;
-
-        var layout:LayoutBase;
-        var fiLayout:FormItemLayout;
-
-        const nElts:int = layoutTarget.numElements;
-        var elt:ILayoutElement;
-        var lastColumnCount:Number = NaN;
-
-        // Initialize the Vector. It is reset everytime measure or updateDisplayList is called
-        columnMaxWidths = new Vector.<Number>();
-
-        for(var i:int = 0; i < nElts; i++)
-        {
-            elt = layoutTarget.getElementAt(i);
-            if (!elt.includeInLayout)
-                continue;
-
-            layout = getElementLayout(elt);
-
-            if (layout is FormItemLayout)
-            {
-                fiLayout = layout as FormItemLayout;
-                var cols:Vector.<Number> = fiLayout.getMeasuredColumnWidths();
-
-                if (isNaN(lastColumnCount))
-                    lastColumnCount = cols.length;
+                colWidths[childInfo.index] = colWidth;

-                if (columnMaxWidths.length == 0)
-                {
-                    for (var j:int = 0; j < cols.length; j++)
-                        columnMaxWidths[j] = 0;
-                }
-
-                // TODO (jszeto) grab this error message from a resource bundle
-                if (lastColumnCount != cols.length)
-                    throw new Error("The Form must have form items with the same number of constraint columns");
-                // TODO add logic to throw RTE if column lengths don't match
-
-                for (var k:int = 0; k < cols.length; k++)
-                {
-                    columnMaxWidths[k] = Math.max(columnMaxWidths[k], cols[k]);
-                }
-            }
-        }
-    }
-
-    /**
-     *  @private
-     *  Return the sum of all of the column widths
-     */
-    private function calculateColumnWidthsSum(columnWidths:Vector.<Number>):Number
-    {
-        if (columnWidths == null)
-            return 0;
-
-        var sum:Number = 0;
-        for (var i:int = 0; i < columnWidths.length; i++)
-        {
-            sum += columnWidths[i];
-        }
-
-        return sum;
-    }
-
-    /**
-     *  @private
-     *  Look for the layout property of several known types.
-     *  For Form, we want the content layout.
-     *  For SkinnableComponent, we want the skin's layout.
-     *  For GroupBase, we get the layout (it has no skin).
-     *  If that layout is an IFormItemLayout, then it will
-     *  participate in the FormLayout's column alignment
-     */
-    private function getElementLayout(elt:ILayoutElement):LayoutBase
-    {
-        var layout:LayoutBase = null;
-
-        if (elt is SkinnableComponent)
-        {
-            var skin:GroupBase = SkinnableComponent(elt).skin as GroupBase;
-            if (skin)
-                layout = skin.layout;
-        }
-        else if (elt is GroupBase)
-        {
-            layout = GroupBase(elt).layout;
-        }
-
-        return layout;
+                remainingWidth -= colWidth;
+            }
+            // FIXME (klin): What do we do if there's remainingWidth after all this?
+        }
     }
 }
 }

+////////////////////////////////////////////////////////////////////////////////
+//
+//  Helper class: ColumnFlexChildInfo
+//
+////////////////////////////////////////////////////////////////////////////////
+
+import mx.containers.utilityClasses.FlexChildInfo;
+
+class ColumnFlexChildInfo extends FlexChildInfo
+{
+    public var index:int;
+}


modified for use in iOS simulator (no longer supported in simulator)

--- actionscript/src/com/freshplanet/ane/AirDeviceId/AirDeviceId.as
+++ actionscript/src/com/freshplanet/ane/AirDeviceId/AirDeviceId.as
@@ -126,7 +126,7 @@
 		}

 		private static function get isIOS():Boolean {
-			return Capabilities.manufacturer.indexOf("iOS") > -1;
+			return Capabilities.manufacturer.indexOf("iOS") > -1 && Capabilities.os.indexOf("x86_64") < 0 && Capabilities.os.indexOf("i386") < 0;
 		}

 		private static function get isAndroid():Boolean {


More asdocs

More asdocs

--- src/com/zehfernando/input/binding/KeyActionBinder.as
+++ src/com/zehfernando/input/binding/KeyActionBinder.as
@@ -58,6 +58,17 @@
 		// ================================================================================================================
 		// STATIC CONSTRUCTOR ---------------------------------------------------------------------------------------------

+		/**
+		 * Initializes the KeyActionBinder class. This is necessary to allocate global references needed by
+		 * KeyActionBinder instances.
+		 *
+		 *
Due to bugs in Flash's GameInput API (especially on OUYA and Android), this initialization should be
+		 * done in the first frame of your SWF, preferably in the root class of your movie.

+		 *
+		 * @param stage		Flash's global stage, used for adding event listeners.
+		 *
+		 * @see #KeyActionBinder()
+		 */
 		public static function init(__stage:Stage):void  {
 			stage = __stage;

@@ -184,6 +195,15 @@
 		// ================================================================================================================
 		// CONSTRUCTOR ----------------------------------------------------------------------------------------------------

+		/**
+		 * Create a new KeyActionBinder instance.
+		 *
+		 *
Each instance has its own input bindings and actions.

+		 *
+		 *
More than one KeyActionBinder instance can exist and be active at the same time.

+		 *
+		 * @see #init()
+		 */
 		public function KeyActionBinder() {
 			_alwaysPreventDefault = true;
 			_maintainPlayerPositions = false;
@@ -840,6 +860,57 @@
 			return _onDevicesChanged;
 		}

+		/**
+		 * Toggles whether KeyActionBinder tries to maintain the player positions based on unique device ids.
+		 *
+		 *
When this is set to false, the list of connected devices (via getNumDevices() and others) will
+		 * always reflect Flash's list of GameInput devices. This means that the connected gamepad devices can get
+		 * shuffled around when a device is added or removed, and potentially cause players to have their gamepads
+		 * swapped.

+		 *
+		 *
When this is true, the class uses device ids to try and maintain a consistent list of devices, without
+		 * shuffling them around. This has several implications, both positive and negative:

+		 *
+		 *
* A removed device will continue to exist in the list (as a null device), unless it's the last device listed

+		 *
* An added will try to be re-added to its previously existing position, if one can be found

+		 *
* If a previously existing position cannot be found, the device takes the first available position (first
+		 * null position, or at the end of the list if none is found)

+		 *
+		 *
In general, you should set this option before gameplay starts.

+		 *
+		 *
If you set this to false after it was set to true, it will cause a gamepad refresh, potentially shuffling
+		 * player positions around if a null device is currently listed.

+		 *
+		 *
Default is false.

+		 *
+		 *
Examples:

+		 *
+		 *

+		 * // Test 1
+		 * binder.maintainPlayerPositions = false;
+		 *
+		 * // Add controller XBOX1; List is [XBOX1]
+		 * // Add controller XBOX2; List is [XBOX1, XBOX2]
+		 * // Remove controller XBOX1; List is [XBOX2]
+		 * // Add controller XBOX1; List is [XBOX2, XBOX1]
+		 * // Remove controller XBOX2; List is [XBOX1]
+		 * // Remove controller XBOX1; List is []
+		 *
+		 * // Test 2
+		 * binder.maintainPlayerPositions = true;
+		 *
+		 * // Add controller XBOX1; List is [XBOX1]
+		 * // Add controller XBOX2; List is [XBOX1, XBOX2]
+		 * // Remove controller XBOX1; List is [null, XBOX2]
+		 * // Add controller XBOX1; List is [XBOX1, XBOX2]
+		 * // Remove controller XBOX2; List is [XBOX1]
+		 * // Remove controller XBOX1; List is []
+		 *

+		 *
+		 * @see #getNumDevices()
+		 * @see #getDeviceAt()
+		 * @see #getDeviceTypeAt()
+		 */
 		public function get maintainPlayerPositions():Boolean {
 			return _maintainPlayerPositions;
 		}
@@ -850,6 +921,12 @@
 			}
 		}

+		/**
+		 * Whether this KeyActionBinder instance is running, or not. This property is read-only.
+		 *
+		 * @see #start()
+		 * @see #stop()
+		 */
 		public function get isRunning():Boolean {
 			return _isRunning;
 		}
@@ -858,6 +935,16 @@
 			return _alwaysPreventDefault;
 		}

+		/**
+		 * Whether to run preventDefault() on Keyboard events or not.
+		 *
+		 *
When this is set to false, KeyActionBinder doesn't try stopping the propagation of
+		 * standard Keyboard behavior. In general, this is a bad idea, as certain keys (such as A on the OUYA)
+		 * tend to trigger a Keyboard.BACK key event, potentially closing your application. Only
+		 * set this to false if you are handling Keyboard events in your own code.

+		 *
+		 *
Default is true.

+		 */
 		public function set alwaysPreventDefault(__value:Boolean):void {
 			// TODO: this is a dumb getter/setter just for ASDocs reasons
 			_alwaysPreventDefault = __value;
@@ -866,20 +953,50 @@
 		/**
 		 * Returns the number of devices currently connected, regardless of whether they're valid or not.
 		 *
+		 * @see #maintainPlayerPositions
 		 * @see #getDeviceAt()
+		 * @see #getDeviceTypeAt()
 		 */
 		public function getNumDevices():uint {
 			return gameInputDevices.length;
 		}

+		/**
+		 * Returns the GameInputDevice associated with a player index, if any.
+		 *
+		 *
The value returned from this function can be null, especially if maintainPlayerPositions
+		 * is set to true and the index refers to a gamepad that has been removed.

+		 *
+		 * @see #maintainPlayerPositions
+		 * @see #getNumDevices()
+		 * @see #getDeviceTypeAt()
+		 */
 		public function getDeviceAt(__index:uint):GameInputDevice {
 			return gameInputDevices.length > __index && gameInputDevices[__index] != null ? gameInputDevices[__index] : null;
 		}

+		/**
+		 * Returns the built-in id of the gamepad type at a certain position.
+		 *
+		 *
The value returned from this function can be null if maintainPlayerPositions
+		 * is set to true and the index refers to a gamepad that has been removed, or if the gamepad at that
+		 * location has not been properly identified by KeyActionBinder.

+		 *
+		 *
Check the controllers.json file for a list of supported gamepads, and their ids.

+		 *
+		 * @see #maintainPlayerPositions
+		 * @see #getNumDevices()
+		 * @see #getDeviceAt()
+		 */
 		public function getDeviceTypeAt(__index:uint):String {
 			return gameInputDeviceDefinitions.length > __index && gameInputDeviceDefinitions[__index] != null ? gameInputDeviceDefinitions[__index].getType() : null;
 		}

+		/**
+		 * Returns the current identified platform. This is a list of strings that can contain more than one platform id.
+		 *
+		 *
Check the controllers.json file for a list of supported platforms, and their ids.

+		 */
 		public function getPlatformTypes():Vector.<String> {
 			var platforms:Vector.<String> = new Vector.<String>();
 			for (var i:int = 0; i < knownGamepadPlatforms.length; i++) {


Bump the max atlas size up to 2048

Bump the max atlas size up to 2048

--- exporter/src/main/as/flump/export/Packer.as
+++ exporter/src/main/as/flump/export/Packer.as
@@ -38,7 +38,7 @@
                 var unpacked :SwfTexture = _unpacked[ii];

                 if (unpacked.w > MAX_SIZE || unpacked.h > MAX_SIZE) {
-                    throw new Error("Too large to fit in an atlas");
+                    throw new Error("Too large to fit in an atlas: " + unpacked.w + ", " + unpacked.h + " " + unpacked.symbol);
                 }

                 for each (var atlas :Atlas in atlases) {
@@ -89,6 +89,6 @@
     protected const _unpacked :Vector.<SwfTexture> = new Vector.<SwfTexture>();

     // Maximum width or height of a texture atlas
-    private static const MAX_SIZE :int = 1024;
+    private static const MAX_SIZE :int = 2048;
 }
 }


commit

commit

--- Arguments/src/components/CategoryPanel.as
+++ Arguments/src/components/CategoryPanel.as
@@ -301,7 +301,7 @@
 				navigateToURL(new URLRequest(thisMapInfo.url), 'quote');
 			},false, 0, false);
 			rsp.invalidateDisplayList();
-		//	mapMetaDataVector = null;
+			//mapMetaDataVector = null;
 			ArgumentController.getInstance().loadMap(event.target.name);
 		}


added getUntypedState()

added getUntypedState()

--- WeaveJS/src/weavejs/path/WeavePath.as
+++ WeaveJS/src/weavejs/path/WeavePath.as
@@ -545,6 +545,29 @@
 			return null;
 		}

+		public function getUntypedState(...relativePath):Object
+		{
+			relativePath = _A(relativePath, 1);
+			var state:Object = JS.copyObject(this.getState(relativePath));
+			return _removeTypeFromState(state);
+		}
+
+		private function _removeTypeFromState(state:Object):Object
+		{
+			if (DynamicState.isDynamicStateArray(state))
+			{
+				var newState:Object = {};
+				for each (var typedState:Object in state)
+					newState[typedState[DynamicState.OBJECT_NAME] || ''] = _removeTypeFromState(typedState[DynamicState.SESSION_STATE]);
+				return newState;
+			}
+
+			if (typeof state === 'object')
+				for (var key:String in state)
+					state[key] = _removeTypeFromState(state[key]);
+			return state;
+		}
+
 		/**
 		 * Gets the changes that have occurred since previousState for the object at the current path or relative to the current path.
 		 * @param relativePath An optional Array (or multiple parameters) specifying descendant names relative to the current path.


Removes d0.as

Removes d0.as

--- src/avm2/tests/domains/d0.as
+++ src/avm2/tests/domains/d0.as
@@ -1,16 +0,0 @@
-package Shumway {
-  import flash.system.ApplicationDomain;
-  import flash.display.Loader;
-  import flash.system.LoaderContext;
-
-  class A {
-    function A() {
-      trace("Domain 0: A");
-    }
-  }
-
-  var domain: ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
-  var context: LoaderContext = new LoaderContext(false, domain);
-  var loader: Loader = new Loader();
-  loader.load(new URLRequest("d1.swf"), context);
-}


Physics bugfixes

Physics bugfixes

Switching from kinetic to static friction mode fixed.
Unlocking a locked wheel once the braking torque is low enough (but
doesn’t have to be 0 as before).

--- src/TirePhysics.as
+++ src/TirePhysics.as
@@ -22,13 +22,13 @@
     public const gravity:Number             = 9.81;
     public var wheelMass:Number             = 20;
     public var wheelRadius:Number           = 0.33;
-    public var wheelTorque:Number           = 2000;
-    public var brakeTorque:Number           = 2000;
+    public var wheelTorque:Number           = 1400;
+    public var brakeTorque:Number           = 3200;
     public var carMass:Number               = 400;
     //public var wheelInertia:Number          = 0.5 * wheelMass * wheelRadius * wheelRadius;
     public var wheelInertia:Number          = 20;

-    public var coefSF:Number                = 0.15;
+    public var coefSF:Number                = 0.9;
     public var coefKf:Number                = 1;
     public var airDensity:Number            = 1.29;
     public var frontalArea:Number           = 2.2; // = 1;
@@ -47,6 +47,10 @@
     public var useStaticFriction:Boolean    = true;
     public var wasStaticFriction:Boolean    = true;
     public var slipRatio:Number             = 0;
+    public var forceRatio:Number            = 0;
+    public var responseTorque:Number        = 0;
+    public var angAcceletarion:Number       = 0;
+    public var acceleration:Number          = 0;

     public var airDragForce:Number          = 0;
     public var airDragTorque:Number         = 0;
@@ -106,7 +110,11 @@
                 if(! sameSign(oldPosVel, wheelPosVel, false) && ! sameSign(torqueForce, wheelPosVel, false))
                     wheelPosVel = wheelAngVel = 0;

-                wasStaticFriction = true;
+                wasStaticFriction   = true;
+                forceRatio          = 1;
+                responseTorque      = torqueForce * wheelRadius;
+                acceleration        = acc;
+                angAcceletarion     = -acc / wheelRadius;
             }
             else {
                 // kinetic friction, wheel is sliding
@@ -119,8 +127,8 @@
                 var kineticResponseForce:Number = -sign(wheelSurfaceVel) * normalForce * coefKf * getLongForceRatio(slipRatio);

                 // feed friction force back into torque
-                var responseTorque:Number       = kineticResponseForce * wheelRadius;
-                var angAcc:Number               = (appliedTorque + responseTorque + brakingTorque + totalDragTorque) / wheelInertia;
+                var kineticResponseTorque:Number= kineticResponseForce * wheelRadius;
+                var angAcc:Number               = (appliedTorque + kineticResponseTorque + brakingTorque + totalDragTorque) / wheelInertia;
                 var oldAngVel:Number            = wheelAngVel;
                 wheelAngVel                    += angAcc * dt;

@@ -130,20 +138,24 @@
                 wheelPosVel            += posAcc * dt;

                 // drag was high enough to stop body's roll
-                if(! sameSign(oldAngVel, wheelAngVel, false) && (appliedTorque != 0 || brakingTorque != 0) && ! sameSign(appliedTorque, wheelAngVel, false))
+                if(! sameSign(oldAngVel, wheelAngVel, false) && (appliedTorque != 0 && ! sameSign(appliedTorque, wheelAngVel, false) || brakingTorque != 0 && sameSign(brakingTorque, wheelAngVel, false)))
                     wheelAngVel = 0;

                 // drag was high enough to stop the body
                 if(! sameSign(kOldPosVel, wheelPosVel, false) && torqueForce != 0 && ! sameSign(torqueForce, wheelPosVel, false))
                     wheelPosVel = 0;

-                var newWheelSurfaceVel:Number = wheelPosVel + wheelAngVel * wheelRadius;
+                //var newWheelSurfaceVel:Number = wheelPosVel + wheelAngVel * wheelRadius;

                 // both velocities are temporarily on par, try switching back to static friction
-                if(! sameSign(wheelSurfaceVel, newWheelSurfaceVel, false) || Math.abs(newWheelSurfaceVel) < 0.01)
-                    useStaticFriction = true;
-
-                wasStaticFriction = false;
+                //if(! sameSign(wheelSurfaceVel, newWheelSurfaceVel, false) || Math.abs(newWheelSurfaceVel) < 0.01)
+                //    useStaticFriction = true;
+
+                wasStaticFriction   = false;
+                forceRatio          = getLongForceRatio(slipRatio);
+                responseTorque      = kineticResponseTorque;
+                acceleration        = posAcc;
+                angAcceletarion     = angAcc;
             }

             // common integration
@@ -157,6 +169,9 @@
                 slipRatio = direction * (wheelAngVel * wheelRadius + wheelPosVel) / Math.abs(wheelPosVel);

             //slipRatio   = wheelPosVel != 0 ? (wheelAngVel * wheelRadius + wheelPosVel) / Math.abs(wheelPosVel) : 0.0;
+
+            if(Math.abs(slipRatio) < 0.01)
+                useStaticFriction = true;
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6196
Author:   smgilson@adobe.com
Date:     2009-04-22T17:59:05.886447Z

Log Message:
-----------
ASDoc bug fixes for l10n

QE Notes: None
Doc Notes: None
Bugs: - FLEXDOCS-746, FLEXDOCS-748, FLEXDOCS-749
checkintests - passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/IFlexContextMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/ISystemManager.as
+++ frameworks/projects/framework/src/mx/managers/ISystemManager.as
@@ -77,178 +77,178 @@
  */
 public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModuleFactory
 {
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------

     //----------------------------------
     //  cursorChildren
     //----------------------------------

-	/**
-	 *  An list of the custom cursors
-	 *  being parented by this ISystemManager.
-	 *
-	 *
An ISystemManager has various types of children,
-	 *  such as the Application, popups, top-most windows,
-	 *  tooltips, and custom cursors.
-	 *  You can access the custom cursors through
-	 *  the cursorChildren property.

-	 *
-	 *
The IChildList object has methods like getChildAt()
-	 *  and properties like numChildren.
-	 *  For example, cursorChildren.numChildren gives
-	 *  the number of custom cursors (which will be either 0 or 1)
-	 *  and, if a custom cursor exists, you can access it as
-	 *  cursorChildren.getChildAt(0).

-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get cursorChildren():IChildList;
-
+    /**
+     *  An list of the custom cursors
+     *  being parented by this ISystemManager.
+     *
+     *
An ISystemManager has various types of children,
+     *  such as the Application, popups, top-most windows,
+     *  tooltips, and custom cursors.
+     *  You can access the custom cursors through
+     *  the cursorChildren property.

+     *
+     *
The IChildList object has methods like getChildAt()
+     *  and properties like numChildren.
+     *  For example, cursorChildren.numChildren gives
+     *  the number of custom cursors (which will be either 0 or 1)
+     *  and, if a custom cursor exists, you can access it as
+     *  cursorChildren.getChildAt(0).

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get cursorChildren():IChildList;
+
     //----------------------------------
     //  document
     //----------------------------------

-	/**
-	 *  A reference to the document object.
-	 *  A document object is an Object at the top of the hierarchy of a
-	 *  Flex application, MXML component, or AS component.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get document():Object;
-
-	/**
-	 *  @private
-	 */
-	function set document(value:Object):void;
+    /**
+     *  A reference to the document object.
+     *  A document object is an Object at the top of the hierarchy of a
+     *  Flex application, MXML component, or AS component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get document():Object;
+
+    /**
+     *  @private
+     */
+    function set document(value:Object):void;

     //----------------------------------
     //  embeddedFontList
     //----------------------------------

-	/**
+    /**
      *  @private
-	 */
-	function get embeddedFontList():Object;
+     */
+    function get embeddedFontList():Object;

     //----------------------------------
     //  focusPane
     //----------------------------------

-	/**
-	 *  A single Sprite shared among components used as an overlay for drawing focus.
-	 *  You share it if you parent a focused component, not if you are IFocusManagerComponent.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get focusPane():Sprite;
-
-	/**
-	 *  @private
-	 */
-	function set focusPane(value:Sprite):void;
+    /**
+     *  A single Sprite shared among components used as an overlay for drawing focus.
+     *  You share it if you parent a focused component, not if you are IFocusManagerComponent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get focusPane():Sprite;
+
+    /**
+     *  @private
+     */
+    function set focusPane(value:Sprite):void;

     //----------------------------------
     //  loaderInfo
     //----------------------------------

-	/**
-	 *  The LoaderInfo object that represents information about the application.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get loaderInfo():LoaderInfo;
+    /**
+     *  The LoaderInfo object that represents information about the application.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get loaderInfo():LoaderInfo;

     //----------------------------------
     //  numModalWindows
     //----------------------------------

-	/**
-	 *  The number of modal windows.
-	 *
-	 *
Modal windows don't allow
-	 *  clicking in another windows which would normally
-	 *  activate the FocusManager in that window.  The PopUpManager
-	 *  modifies this count as it creates and destroy modal windows.

-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get numModalWindows():int;
-
-	/**
-	 *  @private
-	 */
-	function set numModalWindows(value:int):void;
+    /**
+     *  The number of modal windows.
+     *
+     *
Modal windows don't allow
+     *  clicking in another windows which would normally
+     *  activate the FocusManager in that window.  The PopUpManager
+     *  modifies this count as it creates and destroy modal windows.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get numModalWindows():int;
+
+    /**
+     *  @private
+     */
+    function set numModalWindows(value:int):void;

     //----------------------------------
     //  popUpChildren
     //----------------------------------

-	/**
-	 *  An list of the topMost (popup)
-	 *  windows being parented by this ISystemManager.
-	 *
-	 *
An ISystemManager has various types of children,
-	 *  such as the Application, popups,
-	 *  tooltips, and custom cursors.
-	 *  You can access the top-most windows through
-	 *  the popUpChildren property.

-	 *
-	 *
The IChildList object has methods like getChildAt()
-	 *  and properties like numChildren.
-	 *  For example, popUpChildren.numChildren gives
-	 *  the number of topmost windows and you can access them as
-	 *  popUpChildren.getChildAt(i).

-	 *
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get popUpChildren():IChildList;
+    /**
+     *  An list of the topMost (popup)
+     *  windows being parented by this ISystemManager.
+     *
+     *
An ISystemManager has various types of children,
+     *  such as the Application, popups,
+     *  tooltips, and custom cursors.
+     *  You can access the top-most windows through
+     *  the popUpChildren property.

+     *
+     *
The IChildList object has methods like getChildAt()
+     *  and properties like numChildren.
+     *  For example, popUpChildren.numChildren gives
+     *  the number of topmost windows and you can access them as
+     *  popUpChildren.getChildAt(i).

+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get popUpChildren():IChildList;

     //----------------------------------
     //  rawChildren
     //----------------------------------

-	/**
-	 *  A list of all children
-	 *  being parented by this ISystemManager.
-	 *
-	 *
An ISystemManager has various types of children,
-	 *  such as the Application, popups,
-	 *  tooltips, and custom cursors.

-	 *
-	 *
The IChildList object has methods like getChildAt()
-	 *  and properties like numChildren.

-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get rawChildren():IChildList;
-
+    /**
+     *  A list of all children
+     *  being parented by this ISystemManager.
+     *
+     *
An ISystemManager has various types of children,
+     *  such as the Application, popups,
+     *  tooltips, and custom cursors.

+     *
+     *
The IChildList object has methods like getChildAt()
+     *  and properties like numChildren.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get rawChildren():IChildList;
+
     //----------------------------------
     //  swfBridgeGroup
     //----------------------------------
@@ -268,177 +268,177 @@
     //  screen
     //----------------------------------

-	/**
-	 *  The size and position of the application window.
-	 *
-	 *  The Rectangle object contains x, y,
-	 *  width, and height properties.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get screen():Rectangle
+    /**
+     *  The size and position of the application window.
+     *
+     *  The Rectangle object contains x, y,
+     *  width, and height properties.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get screen():Rectangle

     //----------------------------------
     //  stage
     //----------------------------------

-	/**
-	 *  The flash.display.Stage that represents the application window
-	 *  mapped to this SystemManager
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get stage():Stage
+    /**
+     *  The flash.display.Stage that represents the application window
+     *  mapped to this SystemManager
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get stage():Stage

     //----------------------------------
     //  toolTipChildren
     //----------------------------------

-	/**
-	 *  A list of the tooltips
-	 *  being parented by this ISystemManager.
-	 *
-	 *
An ISystemManager has various types of children,
-	 *  such as the Application, popups, topmost windows,
-	 *  tooltips, and custom cursors.

-	 *
-	 *
The IChildList object has methods like getChildAt()
-	 *  and properties like numChildren.
-	 *  For example, toolTipChildren.numChildren gives
-	 *  the number of tooltips (which will be either 0 or 1)
-	 *  and, if a tooltip exists, you can access it as
-	 *  toolTipChildren.getChildAt(0).

-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get toolTipChildren():IChildList;
-
+    /**
+     *  A list of the tooltips
+     *  being parented by this ISystemManager.
+     *
+     *
An ISystemManager has various types of children,
+     *  such as the Application, popups, topmost windows,
+     *  tooltips, and custom cursors.

+     *
+     *
The IChildList object has methods like getChildAt()
+     *  and properties like numChildren.
+     *  For example, toolTipChildren.numChildren gives
+     *  the number of tooltips (which will be either 0 or 1)
+     *  and, if a tooltip exists, you can access it as
+     *  toolTipChildren.getChildAt(0).

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get toolTipChildren():IChildList;
+
     //----------------------------------
     //  topLevelSystemManager
     //----------------------------------

-	/**
-	 *  The ISystemManager responsible for the application window.
-	 *  This will be the same ISystemManager unless this application
-	 *  has been loaded into another application.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function get topLevelSystemManager():ISystemManager;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Registers a top-level window containing a FocusManager.
-	 *  Called by the FocusManager, generally not called by application code.
-	 *
-	 *  @param f The top-level window in the application.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function addFocusManager(f:IFocusManagerContainer):void;
-
-	/**
-	 *  Unregisters a top-level window containing a FocusManager.
-	 *  Called by the FocusManager, generally not called by application code.
-	 *
-	 *  @param f The top-level window in the application.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function removeFocusManager(f:IFocusManagerContainer):void;
-
-	/**
-	 *  Activates the FocusManager in an IFocusManagerContainer.
-	 *
-	 *  @param f IFocusManagerContainer the top-level window
-	 *  whose FocusManager should be activated.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function activate(f:IFocusManagerContainer):void;
-
-	/**
-	 *  Deactivates the FocusManager in an IFocusManagerContainer, and activate
-	 *  the FocusManager of the next highest window that is an IFocusManagerContainer.
-	 *
-	 *  @param f IFocusManagerContainer the top-level window
-	 *  whose FocusManager should be deactivated.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function deactivate(f:IFocusManagerContainer):void;
-
-	/**
-	 *  Converts the given String to a Class or package-level Function.
-	 *  Calls the appropriate ApplicationDomain.getDefinition()
-	 *  method based on
-	 *  whether you are loaded into another application or not.
-	 *
-	 *  @param name Name of class, for example "mx.video.VideoManager".
-	 *
-	 *  @return The Class represented by the name, or null.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function getDefinitionByName(name:String):Object;
-
-	/**
-	 *  Returns true if this ISystemManager is responsible
-	 *  for an application window, and false if this
-	 *  application has been loaded into another application.
-	 *
-	 *  @return true if this ISystemManager is responsible
-	 *  for an application window.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function isTopLevel():Boolean;
+    /**
+     *  The ISystemManager responsible for the application window.
+     *  This will be the same ISystemManager unless this application
+     *  has been loaded into another application.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get topLevelSystemManager():ISystemManager;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Registers a top-level window containing a FocusManager.
+     *  Called by the FocusManager, generally not called by application code.
+     *
+     *  @param f The top-level window in the application.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function addFocusManager(f:IFocusManagerContainer):void;
+
+    /**
+     *  Unregisters a top-level window containing a FocusManager.
+     *  Called by the FocusManager, generally not called by application code.
+     *
+     *  @param f The top-level window in the application.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function removeFocusManager(f:IFocusManagerContainer):void;
+
+    /**
+     *  Activates the FocusManager in an IFocusManagerContainer.
+     *
+     *  @param f IFocusManagerContainer the top-level window
+     *  whose FocusManager should be activated.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function activate(f:IFocusManagerContainer):void;
+
+    /**
+     *  Deactivates the FocusManager in an IFocusManagerContainer, and activate
+     *  the FocusManager of the next highest window that is an IFocusManagerContainer.
+     *
+     *  @param f IFocusManagerContainer the top-level window
+     *  whose FocusManager should be deactivated.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function deactivate(f:IFocusManagerContainer):void;
+
+    /**
+     *  Converts the given String to a Class or package-level Function.
+     *  Calls the appropriate ApplicationDomain.getDefinition()
+     *  method based on
+     *  whether you are loaded into another application or not.
+     *
+     *  @param name Name of class, for example "mx.video.VideoManager".
+     *
+     *  @return The Class represented by the name, or null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getDefinitionByName(name:String):Object;
+
+    /**
+     *  Returns true if this ISystemManager is responsible
+     *  for an application window, and false if this
+     *  application has been loaded into another application.
+     *
+     *  @return true if this ISystemManager is responsible
+     *  for an application window.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function isTopLevel():Boolean;

     /**
      *  Returns true if the required font face is embedded
-	 *  in this application, or has been registered globally by using the
-	 *  Font.registerFont() method.
-	 *
-	 *  @param tf The TextFormat class representing character formatting information.
-	 *
-	 *  @return true if the required font face is embedded
-	 *  in this application, or has been registered globally by using the
-	 *  Font.registerFont() method.
+     *  in this application, or has been registered globally by using the
+     *  Font.registerFont() method.
+     *
+     *  @param tf The TextFormat class representing character formatting information.
+     *
+     *  @return true if the required font face is embedded
+     *  in this application, or has been registered globally by using the
+     *  Font.registerFont() method.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -466,7 +466,7 @@
      *  Attempts to get the system manager that is the in the main application.
      *
      *  @return The main application's systemManager if allowed by
-	 *  security restrictions or null if it is in a different SecurityDomain.
+     *  security restrictions or null if it is in a different SecurityDomain.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -476,8 +476,8 @@
     function getTopLevelRoot():DisplayObject;

     /**
-     *  Gets the system manager is the root of all
-     *  top level system managers in this SecurityDomain
+     *  Gets the system manager that is the root of all
+     *  top level system managers in this SecurityDomain.
      *
      *  @return the highest-level systemManager in the sandbox
      *
@@ -518,25 +518,25 @@
      */
     function removeChildBridge(bridge:IEventDispatcher):void;

-	/**
-	 *  Dispatch a message to all parent and child applications in this SystemManager's SWF bridge group, regardless of
-	 *  whether they are in the same SecurityDomain or not. You can optionally exclude an application with this method's parameters.
-	 *
-     	 *  @param event The event to dispatch.
-     	 *
-     	 *  @param skip Specifies an IEventDispatcher that you do not want to dispatch a message to. This is typically used to skip the
-     	 *  IEventDispatcher that originated the event.
-	 *
-     	 *  @param trackClones Whether to keep a reference to the events as they are dispatched.
-     	 *
-     	 *  @param toOtherSystemManagers Whether to dispatch the event to other top-level SystemManagers in AIR.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	function dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher = null, trackClones:Boolean = false, toOtherSystemManagers:Boolean = false):void
+    /**
+     *  Dispatch a message to all parent and child applications in this SystemManager's SWF bridge group, regardless of
+     *  whether they are in the same SecurityDomain or not. You can optionally exclude an application with this method's parameters.
+     *
+         *  @param event The event to dispatch.
+         *
+         *  @param skip Specifies an IEventDispatcher that you do not want to dispatch a message to. This is typically used to skip the
+         *  IEventDispatcher that originated the event.
+     *
+         *  @param trackClones Whether to keep a reference to the events as they are dispatched.
+         *
+         *  @param toOtherSystemManagers Whether to dispatch the event to other top-level SystemManagers in AIR.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher = null, trackClones:Boolean = false, toOtherSystemManagers:Boolean = false):void

     /**
      *  Determines if the caller using this system manager