Transferred from the Adobe Open Source Subversion Repository

Revision: 18635
Author:   aharui@adobe.com
Date:     2010-11-17T00:18:36.469040Z

Log Message:
-----------
Add estimatedSizes to the layout infrastructure to better deal with text reflow.
Add new events to layout infrastructure to deal with caching of size information

QE notes: New APIs and Interfaces
Doc notes: New APIs and interfaces
Bugs: SDK-27226, SDK-26155, SDK-25483, SDK-23621, SDK-27225, SDK-26993, SDK-25535, SDK-25521
Reviewer: Evtim
Tests run: checkintests mustella full run
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/FormTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -1545,6 +1545,7 @@
                 element.dispatchEvent(new FlexEvent(FlexEvent.ADD));
         }

+        invalidateEstimatedSizesOfChildren();
         invalidateSize();
         invalidateDisplayList();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3429
Author:   hmuller@adobe.com
Date:     2008-09-30T20:57:43.716432Z

Log Message:
-----------
Removed the flex.layout.ILayout interface.   All references to this interface
have been replaced with flex.layout.LayoutBase.

Added verticalScrollPositionDelta() and horizontalScrollPositionDelta() to
IViewport put provisional implementations in TextView.

Added LayoutBase clipContent property and exposed same in GroupBase
and TextView.  The latter is provisional.

ScrollerSkin measure() and updateDisplayList() now handle a null viewport.
This fixes bugs 17079, 17029.

ScrollerSkin updateDisplayList() now respects the minimum width for
its horizontalScrollBar and the minimum height for verticalScrollBar
(the corresponding HSB height and VSB width are already set to their
preferred sizes).

ScrollSkin's measure now ignores the min size of its viewport, it's
minimum size is only based on its visible scrollbars.  This ensures
that the viewport can get as small as possible.  This change corrects
bug 16840.

QE: Removing ILayout may break some tests
Doc: No
Checkintests: Pass
Reviewer: Evtim
Bugs:
  SDK-17079 - RTE if empty Scroller is created
  SDK-17029 - RTE when Scroller's viewport is set to null
  SDK-16840 - Scroller is unusable if height is set as a percentage height

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/DataComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/intf/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ScrollerSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -17,7 +17,6 @@
 import flex.graphics.MaskType;
 import flex.graphics.TransformUtil;
 import flex.graphics.graphicsClasses.GraphicElement;
-import flex.intf.ILayout;
 import flex.intf.ILayoutItem;
 import flex.intf.IViewport;
 import flex.layout.BasicLayout;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4922
Author:   gosmith@adobe.com
Date:     2009-02-10T22:19:49.510252Z

Log Message:
-----------
Renamed mx.graphics.graphicsClasses to mx.graphics.baseClasses, based on PARB review.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextFlowComposer.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as" copyfrom-rev="4920" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as" copyfrom-rev="4920" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>
<path kind="dir" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses" copyfrom-rev="4916" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses</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/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextBlockComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -20,8 +20,8 @@
 import flash.text.engine.TabStop;

 import mx.core.mx_internal;
-import mx.graphics.graphicsClasses.TextBlockComposer;
-import mx.graphics.graphicsClasses.TextGraphicElement;
+import mx.graphics.baseClasses.TextBlockComposer;
+import mx.graphics.baseClasses.TextGraphicElement;

 [DefaultProperty("text")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 22422
Author:   aaltman@adobe.com
Date:     2011-09-07T00:36:02.671558Z

Log Message:
-----------
Compensate for internal margins in iOS multiline StageText.
Fixed extra focus events being dispatched when focusing StyleableStageText.
Fixed flashing text and bitmap drawing artifacts during bitmap swapping.

QE notes: None
Doc notes: None
Bugs: SDK-31436 SDK-31433 SDK-31355 SDK-31177 SDK-31044 SDK-31005
Reviewer: cframpto
Tests run: checkintests mustella-mobile
Is noteworthy for integration: No

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

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as
@@ -11,11 +11,16 @@

 package spark.skins.mobile
 {
+import flash.system.Capabilities;
+
 import mx.core.DPIClassification;
+import mx.core.mx_internal;

 import spark.components.TextArea;
 import spark.components.supportClasses.StyleableTextField;
 import spark.skins.mobile.supportClasses.StageTextSkinBase;
+
+use namespace mx_internal;

 /**
  *  ActionScript-based skin for TextArea controls in mobile applications that uses a
@@ -30,6 +35,21 @@
  */
 public class StageTextAreaSkin extends StageTextSkinBase
 {
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The underlying native text control on iOS has internal margins of its
+     *  own. In order to remain faithful to the paddingTop and paddingBottom
+     *  style values that developers may specify, those internal margins need to
+     *  be compensated for. This variable contains size of that compensation in
+     *  pixels.
+     */
+    mx_internal static var iOSVerticalPaddingAdjustment:Number = 5;
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -105,9 +125,18 @@

         if (textDisplay)
         {
+            var verticalPosAdjustment:Number = 0;
+            var heightAdjustment:Number = 0;
+
+            if (Capabilities.version.indexOf("IOS") == 0)
+            {
+                verticalPosAdjustment = Math.min(iOSVerticalPaddingAdjustment, paddingTop);
+                heightAdjustment = verticalPosAdjustment + Math.min(iOSVerticalPaddingAdjustment, paddingBottom);
+            }
+
             textDisplay.commitStyles();
-            setElementSize(textDisplay, unscaledTextWidth, unscaledTextHeight);
-            setElementPosition(textDisplay, paddingLeft, paddingTop);
+            setElementSize(textDisplay, unscaledTextWidth, unscaledTextHeight + heightAdjustment);
+            setElementPosition(textDisplay, paddingLeft, paddingTop - verticalPosAdjustment);
         }

         if (promptDisplay)


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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

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

Modified Paths:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/components/TextSelectionHighlighting.as
+++ frameworks/projects/spark/src/spark/components/TextSelectionHighlighting.as
@@ -14,6 +14,11 @@

 /**
  *  Documentation is not currently available.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public final class TextSelectionVisibility
 {
@@ -27,16 +32,31 @@

     /**
      *  Documentation is not currently available.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public static const ALWAYS:String = "always";

     /**
      *  Documentation is not currently available.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public static const WHEN_ACTIVE:String = "whenActive";

     /**
      *  Documentation is not currently available.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public static const WHEN_FOCUSED:String = "whenFocused";


Transferred from the Adobe Open Source Subversion Repository

Revision: 17725
Author:   doug.lee@ssbbartgroup.com
Date:     2010-09-16T02:14:08.104020Z

Log Message:
-----------
Fixed comments and ASDoc for AccImpl.as: Form headings were called "headers," which are different things.

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/accessibility/AccImpl.as

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

--- frameworks/projects/framework/src/mx/accessibility/AccImpl.as
+++ frameworks/projects/framework/src/mx/accessibility/AccImpl.as
@@ -95,9 +95,9 @@
  *   (childID 0).

  *
If the component is inside a Form:
  *

- *
If the Form has a FormHeader, the header text is added.
+ *
If the Form has a FormHeading, the heading text is added.
  *       Developers wishing to avoid this should set the
- *       accessibilityName of the FormHeader
+ *       accessibilityName of the FormHeading
  *       to a space (" ").

  *
If the component is inside a FormItem,
  *       the FormItem label text is added.
@@ -538,7 +538,7 @@
             return (accName != null && accName != "") ? accName : null;
         }

-        // Start with form header and/or formItem label text.
+        // Start with form heading and/or formItem label text.
         // Also includes "Required Field" where appropriate.
         accName = getFormName(master);


Transferred from the Adobe Open Source Subversion Repository

Revision: 11379
Author:   aharui@adobe.com
Date:     2009-11-02T21:08:24.176200Z

Log Message:
-----------
Tweak svn 11319.  Now only Application will invalidate the SystemManager (popups and tooltips won't).  SystemManager will not dispatch a RESIZE unless its size actually did change.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -24,6 +24,7 @@
 import flash.ui.ContextMenuItem;
 import flash.utils.setInterval;
 import mx.core.FlexGlobals;
+import mx.core.IInvalidating;
 import mx.core.Singleton;
 import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
@@ -836,6 +837,26 @@
     //--------------------------------------------------------------------------

     /**
+     *  @private
+     */
+    override protected function invalidateParentSizeAndDisplayList():void
+    {
+        if (!includeInLayout)
+            return;
+
+        var p:IInvalidating = parent as IInvalidating;
+        if (!p)
+        {
+            if (parent is ISystemManager)
+                ISystemManager(parent).invalidateParentSizeAndDisplayList();
+
+            return;
+        }
+
+        super.invalidateParentSizeAndDisplayList();
+    }
+
+    /**
      *  @private
      */
     override public function initialize():void


Transferred from the Adobe Open Source Subversion Repository

Revision: 8627
Author:   jszeto@adobe.com
Date:     2009-07-16T18:40:07.408921Z

Log Message:
-----------
Adding copyright headers to filter classes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4866
Author:   hmuller@adobe.com
Date:     2009-02-05T22:14:08.037552Z

Log Message:
-----------
Bug fixes, notably support for "canceling" keyboard events that drive scrolling.  Added mouse-wheel scrolling to FxScroller.

QE Notes:
Doc Notes: None
Bugs: sdk-19027, sdk-19028, sdk-18903, sdk-18673
Reviewer: Evtim, Alex

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxRange.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTrackBase.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/FxList.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/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -638,7 +638,7 @@
         }

         if (virtualLayout)
-            updateDisplayListVirtual(i0);
+            g.invalidateDisplayList();

         setIndexInView(i0, i1);
     }
@@ -967,7 +967,7 @@
      *  for the initial layout and then, if it has changed, we loop through
      *  the layout items again and fix up the x/width values.
      */
-    private function updateDisplayListVirtual(startIndex:int = -1):void
+    private function updateDisplayListVirtual():void
     {
         var layoutTarget:GroupBase = target;
         var eltCount:int = layoutTarget.numLayoutElements;
@@ -976,14 +976,12 @@
         var maxVisibleY:Number = minVisibleY + layoutTarget.height;

         updateLLV(layoutTarget);
-        if (startIndex < 0)
-            startIndex = llv.indexOf(minVisibleY);
+        var startIndex:int = llv.indexOf(minVisibleY);

         var fixedRowHeight:Number = NaN;
         if (!variableRowHeight)
             fixedRowHeight = rowHeight;  // may query typicalLayoutElement, elt at index=0

-        layoutTarget.beginVirtualLayout(startIndex);
         var contentWidth:Number = llv.minorSize;
         var containerWidth:Number = Math.max(contentWidth, targetWidth);
         var y:Number = llv.start(startIndex);
@@ -1026,7 +1024,6 @@
         setRowCount(index - startIndex);
         setIndexInView(startIndex, endIndex);
         layoutTarget.setContentSize(contentWidth, llv.end(llv.length - 1));
-        layoutTarget.endVirtualLayout(startIndex, endIndex);
     }


Added equals method to metadata annotation

--- FlexUnit4/src/flex/lang/reflect/metadata/MetaDataAnnotation.as
+++ FlexUnit4/src/flex/lang/reflect/metadata/MetaDataAnnotation.as
@@ -133,6 +133,45 @@
 		}

 		/**
+		 * Compares two MetaDataAnnotations for name and argument equality
+		 *
+		 * @return Returns boolean indicating equality
+		 *
+		 */
+		public function equals( item:MetaDataAnnotation ):Boolean {
+			if ( !item ) {
+				return false;
+			}
+
+			var equiv:Boolean = this.name == item.name;
+			var localArgs:Array = arguments;
+			var remoteArgs:Array = item.arguments;
+
+			if ( equiv ) {
+				var localLen:int = localArgs?localArgs.length:0;
+				var remoteLen:int = remoteArgs?remoteArgs.length:0;
+
+				if ( localLen != remoteLen ) {
+					return false;
+				}
+
+				if ( localLen > 0) {
+					for ( var i:int=0; i<localLen; i++ ) {
+						var localArg:MetaDataArgument = localArgs[ i ];
+						var remoteArg:MetaDataArgument = remoteArgs[ i ];
+
+						equiv = localArg.equals( remoteArg );
+						if (!equiv) {
+							break;
+						}
+					}
+				}
+			}
+
+			return equiv;
+		}
+
+		/**
 		 * Constructor
 		 * @param metaDataXML The metaDataXML that is passed to the class to be parsed to find
 		 * 						the annotation and arguments for a piece of metadata.


Transferred from the Adobe Open Source Subversion Repository

Revision: 18635
Author:   aharui@adobe.com
Date:     2010-11-17T00:18:36.469040Z

Log Message:
-----------
Add estimatedSizes to the layout infrastructure to better deal with text reflow.
Add new events to layout infrastructure to deal with caching of size information

QE notes: New APIs and Interfaces
Doc notes: New APIs and interfaces
Bugs: SDK-27226, SDK-26155, SDK-25483, SDK-23621, SDK-27225, SDK-26993, SDK-25535, SDK-25521
Reviewer: Evtim
Tests run: checkintests mustella full run
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/FormTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -3972,6 +3972,10 @@
             child.dispatchEvent(new FlexEvent(FlexEvent.ADD));

         super.childAdded(child); // calls createChildren()
+
+        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+            if (child is ILayoutElement)
+                validateEstimatedSizesOfChild(ILayoutElement(child));
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 5389
Author:   mhorn@adobe.com
Date:     2009-03-18T16:09:24.692896Z

Log Message:
-----------
various ASDoc updates

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/CollectionEventKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -1872,7 +1872,7 @@
      *  It is not always possible to determine when a container will have a ContentPane.

      *
      *
Note:If you call the addChild or
-     *  addChildAtmethod of the rawChildren object,
+     *  addChildAt method of the rawChildren object,
      *  set tabEnabled = false on the component that you have added.
      *  Doing so prevents users from tabbing to the visual-only component
      *  that you have added.


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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


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

--- frameworks/projects/rpc/src/mx/rpc/soap/types/DataSetType.as
+++ frameworks/projects/rpc/src/mx/rpc/soap/types/DataSetType.as
@@ -0,0 +1,147 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 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.soap.types
+{
+
+import mx.rpc.soap.SOAPConstants;
+import mx.rpc.soap.SOAPDecoder;
+import mx.rpc.soap.SOAPEncoder;
+import mx.rpc.xml.ContentProxy;
+import mx.rpc.xml.Schema;
+import mx.rpc.xml.SchemaConstants;
+import mx.rpc.xml.TypeIterator;
+import mx.rpc.xml.XMLDecoder;
+import mx.utils.object_proxy;
+import mx.utils.ObjectProxy;
+
+use namespace object_proxy;
+
+[ExcludeClass]
+
+/**
+ * Marshalls between a .NET DataSet diffgram and ActionScript.
+ * @private
+ */
+public class DataSetType implements ICustomSOAPType
+{
+    public function DataSetType()
+    {
+        super();
+    }
+
+    public function encode(encoder:SOAPEncoder, parent:XML, name:QName, value:*, restriction:XML = null):void
+    {
+        throw new Error("Unsupported operation - .NET DataSet diffgrams cannot be sent from client.");
+    }
+
+    /**
+     * Decode a response part that contains a serialized DataSet.
+     *
+     * @param SOAPDecoder the decoder instance
+     * @param * parent object (content proxy)
+     * @param name ignored
+     * @param value the top level XML node. Must have two child elements, schema and diffgram.
+     * @param restriction ignored
+     *
+     * @private
+     */
+    public function decode(decoder:SOAPDecoder, parent:*, name:*, value:*, restriction:XML = null):void
+    {
+        if (parent is ContentProxy)
+            ContentProxy(parent).object_proxy::isSimple = false;
+
+        schemaConstants = decoder.schemaConstants;
+
+        var schemaXML:XML = XML(value).elements(schemaConstants.schemaQName)[0];
+
+        //TODO: handle <diffgr:before> and <diffgr:errors>
+        var rootDataXML:XML = XML(value).elements(SOAPConstants.diffgramQName)[0].elements()[0];
+        var dataSet:* = parent;
+        var tableDefinitions:Object = processTables(schemaXML);
+
+        // First create .Tables and .Columns and .Rows for each table
+        var tableCollection:* = decoder.createContent();
+        if (tableCollection is ContentProxy)
+                ContentProxy(tableCollection).object_proxy::isSimple = false;
+
+        for (var tblName:String in tableDefinitions)
+        {
+            var tableObj:* = decoder.createContent();
+            if (tableObj is ContentProxy)
+                ContentProxy(tableObj).object_proxy::isSimple = false;
+            decoder.setValue(tableObj, "Columns",
+                            processColumns(decoder, tableDefinitions[tblName]));
+            decoder.setValue(tableObj, "Rows",
+                            decoder.createIterableValue());
+            decoder.setValue(tableCollection, tblName, tableObj);
+        }
+
+        if (rootDataXML != null)
+        {
+            var schema:Schema = new Schema(schemaXML);
+            decoder.schemaManager.addSchema(schema, false);
+
+            for (tblName in tableCollection)
+            {
+                for each (var rowXML:XML in rootDataXML.elements(tblName))
+                {
+                    var rowObj:* = decoder.decode(rowXML, rowXML.name(), null, tableDefinitions[tblName]);
+                    TypeIterator.push(tableCollection[tblName]["Rows"], rowObj);
+                }
+            }
+
+            decoder.schemaManager.releaseScope();
+        }
+
+        decoder.setValue(dataSet, "Tables", tableCollection);
+    }
+
+    /**
+     * Parse table information out of the inline schema
+     */
+    private function processTables(schemaXML:XML):Object
+    {
+        // The table definitions are elements inside a choice inside
+        // a complexType inside a top-level element in the schema
+        var tblsXMLList:XMLList = schemaXML.elements(schemaConstants.elementTypeQName)[0]
+                .elements(schemaConstants.complexTypeQName)[0]
+                .elements(schemaConstants.choiceQName)[0]
+                .elements(schemaConstants.elementTypeQName);
+
+        var tables:Object = {};
+        for each (var tblXML:XML in tblsXMLList)
+            tables[tblXML.attribute("name")] = tblXML;
+
+        return tables;
+    }
+
+    /**
+     * Parse column definitions out of a table definition
+     */
+    private function processColumns(decoder:SOAPDecoder, tableXML:XML):*
+    {
+        // The column definitions are elements inside a sequence inside
+        // a complexType in the table definition element.
+        var colsXMLList:XMLList = tableXML.elements(schemaConstants.complexTypeQName)[0]
+                .elements(schemaConstants.sequenceQName)[0]
+                .elements(schemaConstants.elementTypeQName);
+
+        var columns:* = decoder.createIterableValue();
+        for each (var colXML:XML in colsXMLList)
+            TypeIterator.push(columns, colXML.attribute("name").toString());
+
+        return columns;
+    }
+
+    private var schemaConstants:SchemaConstants;
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 6290
Author:   chaase@adobe.com
Date:     2009-04-27T18:42:18.522446Z

Log Message:
-----------
Added animation behavior to scrollbars and sliders. For now, animation only happens based on mouse events (key events still have previous non-animated behavior).
Also, added shift-click behavior to ScrollBar, behaves essentially like a Slider, going to the clicked location instead of paging toward it.
Finally, fixed an unrelated bug in Animation where Animates set up with a MotionPath with no time=0 keyframe would not run properly.

These changes necessitate changes in Mustella (need to listen to 'change' event on scrollbars/sliders, not 'updateComplete' or 'click', since the animations may cause several valid 'updateComplete' events on the way to the final changed value.

QE Notes: Mustella changes in ScrollBar and Slider necessary. See note above. Changes have been made and are awaiting this checkin to update Mustella tests.
Doc Notes: None
Bugs:
Reviewer: Hans and Glenn (scrolling/sliding changes), Jason (Animation bug changes)
tests: checkintests, Mustella ScrollBar, Slider, Scroller (all required minor changes to pass)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/KeyFrame.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/flex4/flex4test_testScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/AnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/ScrollbarFrenzy.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -182,18 +182,6 @@
     }

     /**
-     *  Implicitly update the viewport's verticalScrollPosition per the
-     *  specified scrolling unit, by setting the scrollbar's value.
-     *
-     *  @private
-     */
-    private function updateViewportHSP(scrollUnit:uint):void
-    {
-        var delta:Number = viewport.getHorizontalScrollPositionDelta(scrollUnit);
-        setValue(viewport.horizontalScrollPosition + delta);
-    }
-
-    /**
      *  If viewport is not null,
      *  change the horizontal scroll position for page up or page down by
      *  scrolling the viewport.
@@ -225,10 +213,35 @@
      */
     override public function page(increase:Boolean = true):void
     {
-        if (!viewport)
-            super.page(increase);
-        else
-            updateViewportHSP((increase) ? ScrollUnit.PAGE_RIGHT : ScrollUnit.PAGE_LEFT);
+        var oldPageSize:Number;
+        if (viewport)
+        {
+            // Want to use ScrollBar's page() implementation to get the same
+            // animated behavior for scrollbars with and without viewports.
+            // For now, just change pageSize temporarily and call the superclass
+            // implementation.
+            oldPageSize = pageSize;
+            pageSize = Math.abs(viewport.getHorizontalScrollPositionDelta(
+                (increase) ? ScrollUnit.PAGE_RIGHT : ScrollUnit.PAGE_LEFT));
+        }
+        super.page(increase);
+        if (viewport)
+            pageSize = oldPageSize;
+    }
+
+    /**
+     * @private
+     */
+    override protected function animatePaging(newValue:Number, pageSize:Number):void
+    {
+        if (viewport)
+        {
+            var vpPageSize:Number = Math.abs(viewport.getHorizontalScrollPositionDelta(
+                (newValue > value) ? ScrollUnit.PAGE_RIGHT : ScrollUnit.PAGE_LEFT));
+            super.animatePaging(newValue, vpPageSize);
+            return;
+        }
+        super.animatePaging(newValue, pageSize);
     }

     /**
@@ -263,10 +276,20 @@
      */
     override public function step(increase:Boolean = true):void
     {
-        if (!viewport)
-            super.step(increase);
-        else
-            updateViewportHSP((increase) ? ScrollUnit.RIGHT : ScrollUnit.LEFT);
+        var oldStepSize:Number;
+        if (viewport)
+        {
+            // Want to use ScrollBar's step() implementation to get the same
+            // animated behavior for scrollbars with and without viewports.
+            // For now, just change pageSize temporarily and call the superclass
+            // implementation.
+            oldStepSize = stepSize;
+            stepSize = Math.abs(viewport.getHorizontalScrollPositionDelta(
+                (increase) ? ScrollUnit.RIGHT : ScrollUnit.LEFT));
+        }
+        super.step(increase);
+        if (viewport)
+            stepSize = oldStepSize;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 20179
Author:   egeorgie@adobe.com
Date:     2011-02-07T23:15:47.659707Z

Log Message:
-----------
Fix for http://bugs.adobe.com/jira/browse/SDK-25445 matrix and matrix3D don't set each other to null on UIComponent or its sub classes

In this change:
- document the UIComponent behavior
- fix a bug for is3D property where we return "true" after "matrix" is set.

QE notes:
Doc notes: Sanity-check UIComponent#transform ASDoc comment
Bugs: SDK-25445
Reviewer: Jason S
Tests run: full mustella
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>

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

--- frameworks/projects/framework/src/mx/geom/CompoundTransform.as
+++ frameworks/projects/framework/src/mx/geom/CompoundTransform.as
@@ -158,7 +158,7 @@
 		if (value == _x)
 			return;
 		translateBy(value-_x,0,0);
-		invalidate(INVALIDATE_FROM_PROPERTY,false);
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
 	}
     /**
      * @private
@@ -183,7 +183,7 @@
 		if (value == _y)
 			return;
 		translateBy(0,value-_y,0);
-		invalidate(INVALIDATE_FROM_PROPERTY,false);
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
 	}

     /**
@@ -209,7 +209,7 @@
 		if (value == _z)
 			return;
 		translateBy(0,0,value-_z);
-		invalidate(INVALIDATE_FROM_PROPERTY,true);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
 	}

     /**
@@ -242,7 +242,7 @@
 		if (value == _rotationX)
 			return;
 		_rotationX = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,true);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
 	}

     /**
@@ -272,7 +272,7 @@
 		if (value == _rotationY)
 			return;
 		_rotationY = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,true);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
 	}

     /**
@@ -302,7 +302,7 @@
 		if (value == _rotationZ)
 			return;
 		_rotationZ = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,false);
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
 	}

     /**
@@ -331,7 +331,7 @@
 		if (value == _scaleX)
 			return;
 		_scaleX = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,false);
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
 	}

     /**
@@ -357,7 +357,7 @@
 		if (value == _scaleY)
 			return;
 		_scaleY = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,false);
+		invalidate(INVALIDATE_FROM_PROPERTY, false /*affects3D*/);
 	}

     /**
@@ -384,7 +384,7 @@
 		if (value == _scaleZ)
 			return;
 		_scaleZ = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,true);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
 	}

     /**
@@ -423,7 +423,7 @@
 		if (value == _transformX)
 			return;
 		_transformX = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,true);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
 	}

     /**
@@ -449,7 +449,7 @@
 		if (value == _transformY)
 			return;
 		_transformY = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,true);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
 	}

     /**
@@ -474,7 +474,7 @@
 		if (value == _transformZ)
 			return;
 		_transformZ = value;
-		invalidate(INVALIDATE_FROM_PROPERTY,true);
+		invalidate(INVALIDATE_FROM_PROPERTY, true /*affects3D*/);
 	}

     /**
@@ -496,7 +496,7 @@
      * @param dispatchChangeEvent - if true, the CompoundTransform will dispatch a change indicating that its underlying transforms
      * have been modified.
   	 */
-	private function invalidate(reason:uint,affects3D:Boolean):void
+	private function invalidate(reason:uint, affects3D:Boolean):void
 	{
 		//race("invalidating: " + reason);
 		switch(reason)
@@ -572,14 +572,14 @@

 	/**
-    *  Applies the delta to the transform's translation component. Unlike setting the x, y, or z properties directly,
-	*  this method can be safely called without changing the transform's concept of 'the source of truth'.
-	*
-	*  @langversion 3.0
-	*  @playerversion Flash 9
-	*  @playerversion AIR 1.1
-	*  @productversion Flex 3
-	*/
+     *  Applies the delta to the transform's translation component. Unlike setting the x, y, or z properties directly,
+	 *  this method can be safely called without changing the transform's concept of 'the source of truth'.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
 	public function translateBy(x:Number,y:Number,z:Number = 0):void
 	{
 		if (_flags & MATRIX_VALID)
@@ -601,7 +601,7 @@
 			data[14] += z;
 			_matrix3D.rawData = data;
 		}
-		invalidate(INVALIDATE_FROM_NONE,z != 0);
+		invalidate(INVALIDATE_FROM_NONE, z != 0 /*affects3D*/);
 	}

@@ -651,7 +651,9 @@
 			_matrix.identity();
 			_matrix.concat(v);
 		}
-		invalidate(INVALIDATE_FROM_MATRIX,false);
+
+        // affects3D is true since setting matrix changes the transform to 2D
+		invalidate(INVALIDATE_FROM_MATRIX, true /*affects3D*/);
 	}

 	/**
@@ -753,7 +755,7 @@
 			if (v)
 				_matrix3D.append(v);
 		}
-		invalidate(INVALIDATE_FROM_MATRIX3D,true);
+		invalidate(INVALIDATE_FROM_MATRIX3D, true /*affects3D*/);
 	}

 }


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

--- frameworks/projects/framework/src/mx/graphics/GradientEntry.as
+++ frameworks/projects/framework/src/mx/graphics/GradientEntry.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-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.graphics
 {


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

--- frameworks/projects/framework/src/mx/managers/IFocusManager.as
+++ frameworks/projects/framework/src/mx/managers/IFocusManager.as
@@ -0,0 +1,220 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.managers
+{
+
+import flash.display.InteractiveObject;
+import flash.display.Sprite;
+import mx.core.IButton;
+import mx.core.IUIComponent;
+
+/**
+ *  The IFocusManager interface defines the interface that components must implement
+ *  to manage the focus on components in response to mouse activity or
+ *  keyboard activity (Tab key), and to support a default button.
+ *
+ *  @see mx.managers.FocusManager
+ */
+public interface IFocusManager
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  defaultButton
+    //----------------------------------
+
+    /**
+     *  A reference to the original default Button control.
+     *  Pressing the Enter key while the focus is on any control
+     *  activates the Button control by dispatching a click event
+     *  on the Button control, just as if it was clicked with the mouse.
+     *  The actual default Button control changes if focus is given to another
+     *  Button control, but switches back to the original if focus is not
+     *  on a button.
+     *
+     *
This property is managed by Flex containers; do not set it directly
+     *  to specify the default button.

+     *
+     *
The defaultButton must be of class
+     *  mx.controls.Button even though this property
+     *  is of type IUIComponent.

+     */
+    function get defaultButton():IButton;
+
+    /**
+     *  @private
+     */
+    function set defaultButton(value:IButton):void;
+
+    //----------------------------------
+    //  defaultButtonEnabled
+    //----------------------------------
+
+    /**
+     *  A flag that indicates whether the FocusManager should
+     *  check for the Enter key being pressed to activate the default button.
+     *  TextArea and other components that want to recognize
+     *  the Enter key
+     *  set this property to false to disable the Enter
+     *  key from dispatching a click event on the
+     *  default button, if it exists.
+     */
+    function get defaultButtonEnabled():Boolean;
+
+    /**
+     *  @private
+     */
+    function set defaultButtonEnabled(value:Boolean):void;
+
+    //----------------------------------
+    //  focusPane
+    //----------------------------------
+
+    /**
+     *  A single Sprite that is moved from container to container
+     *  as the focus moves to those containers.
+     *  The Sprite is used as the parent of the visual indicator
+     *  that a component has focus.
+     */
+    function get focusPane():Sprite;
+
+    /**
+     *  @private
+     */
+    function set focusPane(value:Sprite):void;
+
+    //----------------------------------
+    //  nextTabIndex
+    //----------------------------------
+
+    /**
+     *  The next unique tab index to use in this tab loop.
+     */
+    function get nextTabIndex():int;
+
+    //----------------------------------
+    //  showFocusIndicator
+    //----------------------------------
+
+    /**
+     *  A flag that indicates whether to display an indicator that
+     *  a component has focus.
+     *  If true a component receiving focus
+     *  draws a visible indicator that it has focus.
+     *
+     *
By default, this is false until the user uses
+     *  the Tab key, then it is set to true.

+     *
+     *
In general it is better to use
+     *  the showFocus() and hideFocus() methods
+     *  to change this property as those methods also update the
+     *  visual indicator that a component has focus.

+     */
+    function get showFocusIndicator():Boolean;
+
+    /**
+     *  @private
+     */
+    function set showFocusIndicator(value:Boolean):void;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Gets the IFocusManagerComponent component that currently has the focus.
+     *  Calling this method is recommended instead of using the Stage object
+     *  because it indicates which component has focus.
+     *  The Stage might return a subcomponent in that component.
+     *
+     *  @return IFocusManagerComponent object that has focus.
+     */
+    function getFocus():IFocusManagerComponent;
+
+    /**
+     *  Sets focus to an IFocusManagerComponent component.  Does not check for
+     *  the components visibility, enabled state, or any other conditions.
+     *
+     *  @param o A component that can receive focus.
+     */
+    function setFocus(o:IFocusManagerComponent):void;
+
+    /**
+     *  Sets showFocusIndicator to true
+     *  and draws the visual focus indicator on the focused object, if any.
+     */
+    function showFocus():void;
+
+    /**
+     *  Sets showFocusIndicator to false
+     *  and removes the visual focus indicator from the focused object, if any.
+     */
+    function hideFocus():void;
+
+    /**
+     *  The SystemManager activates and deactivates a FocusManager
+     *  if more than one IFocusManagerContainer is visible at the same time.
+     *  If the mouse is clicked in an IFocusManagerContainer with a deactivated
+     *  FocusManager, the SystemManager will call
+     *  the activate() method on that FocusManager.
+     *  The FocusManager that was activated will have its deactivate() method
+     *  called prior to the activation of another FocusManager.
+     */
+    function activate():void;
+
+    /**
+     *  The SystemManager activates and deactivates a FocusManager
+     *  if more than one IFocusManagerContainer is visible at the same time.
+     *  If the mouse is clicked in an IFocusManagerContainer with a deactivated
+     *  FocusManager, the SystemManager will call
+     *  the activate() method on that FocusManager.
+     *  The FocusManager that was activated will have its deactivate() method
+     *  called prior to the activation of another FocusManager.
+     */
+    function deactivate():void;
+
+    /**
+     *  Returns the IFocusManagerComponent that contains the given object, if any.
+     *  Because the player can set focus to a subcomponent of a Flex component
+     *  this method determines which IFocusManagerComponent has focus from
+     *  the component perspective.
+     *
+     *  @param o An object that can have player-level focus.
+     *
+     *  @return The IFOcusManagerComponent containing o or
+     *  null
+     */
+    function findFocusManagerComponent(o:InteractiveObject):IFocusManagerComponent;
+
+    /**
+     *  Returns the IFocusManagerComponent that would receive focus
+     *  if the user pressed the Tab key to navigate to another component.
+     *  It will return the same component as the current focused component
+     *  if there are no other valid components in the application.
+     *
+     *  @param backward If true, return the object
+     *  as if the Shift-Tab keys were pressed.
+     *
+     *  @return The component that would receive focus.
+     */
+    function getNextFocusManagerComponent(
+                            backward:Boolean = false):IFocusManagerComponent;
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 15871
Author:   dloverin@adobe.com
Date:     2010-05-03T19:14:33.392012Z

Log Message:
-----------
Changes so modules and sub-applications will not load RSLs that are already loaded.

Changes to support not loading RSLs that are already loaded.

frameworks/projects/framework/src/mx/core/RSLData.as
            New class to allow access to RSL properties in a structured way.

frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as
            Used new format of rsl data. Cleaned up  constructor.

frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
frameworks/projects/framework/src/mx/managers/SystemManager.as
            Checked if an RSL is already loaded before loading it. In the future this check could retrieve the module factory  of where the RSL should be loaded.

frameworks/projects/framework/src/mx/utils/LoaderUtil.as
            New method to check for loaded RSLs.

modules/compiler/src/java/flex2/tools/PreLink.java
            Generate RSL data in new format. Digests are now always present even when verify-digests is false. The value of verify digests is passed as an RSL property. Cache the value of info().

QE notes: None.
Doc notes: New feature.
Bugs:
Reviewer: Alex
Tests run: checkintests, submitted patch to testing service.
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/RSLData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -1863,17 +1863,30 @@
         var i:int;
         if (cdRsls && cdRsls.length > 0)
         {
+            var parentModuleFactory:IFlexModuleFactory = null;
+            if (!isTopLevel())
+            {
+                var request:Request = new Request(Request.GET_PARENT_FLEX_MODULE_FACTORY_REQUEST);
+                dispatchEvent(request);
+                parentModuleFactory = request.value as IFlexModuleFactory;
+            }
+
             var normalizedURL:String = LoaderUtil.normalizeURL(this.loaderInfo);
             var crossDomainRSLItem:Class = Class(getDefinitionByName("mx.core::CrossDomainRSLItem"));
             n = cdRsls.length;
             for (i = 0; i < n; i++)
             {
+                var rslWithFailoverArray:Array = cdRsls[i];
+
+                if (parentModuleFactory &&
+                    LoaderUtil.getRSLLoadData(parentModuleFactory,
+                                              cdRsls[i][0]["digest"]))
+                {
+                    continue; // if the rsl is already loaded then skip loading it.
+                }
+
                 // If crossDomainRSLItem is null, then this is a compiler error. It should not be null.
-                var cdNode:Object = new crossDomainRSLItem(cdRsls[i]["rsls"],
-                                                    cdRsls[i]["policyFiles"],
-                                                    cdRsls[i]["digests"],
-                                                    cdRsls[i]["types"],
-                                                    cdRsls[i]["isSigned"],
+                var cdNode:Object = new crossDomainRSLItem(rslWithFailoverArray,
                                                     normalizedURL,
                                                     this);
                 rslList.push(cdNode);