Transferred from the Adobe Open Source Subversion Repository

Revision: 7910
Author:   egeorgie@adobe.com
Date:     2009-06-17T01:41:55.138890Z

Log Message:
-----------
P-ARB changes:

* IGraphicElement sharedIndex -> DisplayObjectSharingMode
* ScrollUnit -> NavigationUnit
* LayoutBase.getDestinationIndex -> LayoutBase.getNavigationDestinationIndex, param order reversed!!!!
* mouseOpaque -> mouseEnabledWhereTransparent
* various other small renames and changes to non-public APIs

Doc Notes: None
Bugs: N/A
Reviewer: Deepa
tests: checkintests

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/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexFXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/InvalidatingSprite.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/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/ScrollUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/NavigationUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.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/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/DisplayObjectSharingMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -18,7 +18,7 @@
 import flash.ui.Keyboard;

 import spark.components.supportClasses.GroupBase;
-import spark.core.ScrollUnit;
+import spark.core.NavigationUnit;
 import mx.core.ILayoutElement;
 import mx.utils.OnDemandEventDispatcher;
 import spark.core.NavigationUnit;
@@ -98,7 +98,7 @@
     {
         if (_target == value)
             return;
-        clearCachedVirtualLayoutState();
+        clearVirtualLayoutCache();
         _target = value;
     }

@@ -172,7 +172,7 @@
         dispatchEvent(new Event("useVirtualLayoutChanged"));

         if (_useVirtualLayout && !value)  // turning virtual layout off
-            clearCachedVirtualLayoutState();
+            clearVirtualLayoutCache();

         _useVirtualLayout = value;
         if (target)
@@ -196,7 +196,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function clearCachedVirtualLayoutState():void
+    public function clearVirtualLayoutCache():void
     {
     }

@@ -594,7 +594,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-     public function getDestinationIndex(navigationUnit:uint, currentIndex:int):int
+     public function getNavigationDestinationIndex(currentIndex:int, navigationUnit:uint):int
      {
         if (!target || target.numElements < 1)
             return -1;
@@ -894,7 +894,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function getHorizontalScrollPositionDelta(scrollUnit:uint):Number
+    public function getHorizontalScrollPositionDelta(navigationUnit:uint):Number
     {
         var g:GroupBase = target;
         if (!g)
@@ -914,26 +914,26 @@
         var maxDelta:Number = g.contentWidth - scrollRect.right;
         var minDelta:Number = -scrollRect.left;
         var getElementBounds:Rectangle;
-        switch(scrollUnit)
+        switch(navigationUnit)
         {
-            case ScrollUnit.LEFT:
-            case ScrollUnit.PAGE_LEFT:
+            case NavigationUnit.LEFT:
+            case NavigationUnit.PAGE_LEFT:
                 // Find the bounds of the first non-fully visible element
                 // to the left of the scrollRect.
                 getElementBounds = getElementBoundsLeftOfScrollRect(scrollRect);
                 break;

-            case ScrollUnit.RIGHT:
-            case ScrollUnit.PAGE_RIGHT:
+            case NavigationUnit.RIGHT:
+            case NavigationUnit.PAGE_RIGHT:
                 // Find the bounds of the first non-fully visible element
                 // to the right of the scrollRect.
                 getElementBounds = getElementBoundsRightOfScrollRect(scrollRect);
                 break;

-            case ScrollUnit.HOME:
+            case NavigationUnit.HOME:
                 return minDelta;

-            case ScrollUnit.END:
+            case NavigationUnit.END:
                 return maxDelta;

             default:
@@ -944,19 +944,19 @@
             return 0;

         var delta:Number = 0;
-        switch (scrollUnit)
+        switch (navigationUnit)
         {
-            case ScrollUnit.LEFT:
+            case NavigationUnit.LEFT:
                 // Snap the left edge of element to the left edge of the scrollRect.
                 // The element is the the first non-fully visible element left of the scrollRect.
                 delta = Math.max(getElementBounds.left - scrollRect.left, -scrollRect.width);
             break;
-            case ScrollUnit.RIGHT:
+            case NavigationUnit.RIGHT:
                 // Snap the right edge of the element to the right edge of the scrollRect.
                 // The element is the the first non-fully visible element right of the scrollRect.
                 delta = Math.min(getElementBounds.right - scrollRect.right, scrollRect.width);
             break;
-            case ScrollUnit.PAGE_LEFT:
+            case NavigationUnit.PAGE_LEFT:
             {
                 // Snap the right edge of the element to the right edge of the scrollRect.
                 // The element is the the first non-fully visible element left of the scrollRect.
@@ -969,7 +969,7 @@
                     delta = Math.max(getElementBounds.left - scrollRect.left, -scrollRect.width);
             }
             break;
-            case ScrollUnit.PAGE_RIGHT:
+            case NavigationUnit.PAGE_RIGHT:
             {
                 // Align the left edge of the element to the left edge of the scrollRect.
                 // The element is the the first non-fully visible element right of the scrollRect.
@@ -1051,7 +1051,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function getVerticalScrollPositionDelta(scrollUnit:uint):Number
+    public function getVerticalScrollPositionDelta(navigationUnit:uint):Number
     {
         var g:GroupBase = target;
         if (!g)
@@ -1071,26 +1071,26 @@
         var maxDelta:Number = g.contentHeight - scrollRect.bottom;
         var minDelta:Number = -scrollRect.top;
         var getElementBounds:Rectangle;
-        switch(scrollUnit)
+        switch(navigationUnit)
         {
-            case ScrollUnit.UP:
-            case ScrollUnit.PAGE_UP:
+            case NavigationUnit.UP:
+            case NavigationUnit.PAGE_UP:
                 // Find the bounds of the first non-fully visible element
                 // that spans right of the scrollRect.
                 getElementBounds = getElementBoundsAboveScrollRect(scrollRect);
                 break;

-            case ScrollUnit.DOWN:
-            case ScrollUnit.PAGE_DOWN:
+            case NavigationUnit.DOWN:
+            case NavigationUnit.PAGE_DOWN:
                 // Find the bounds of the first non-fully visible element
                 // that spans below the scrollRect.
                 getElementBounds = getElementBoundsBelowScrollRect(scrollRect);
                 break;

-            case ScrollUnit.HOME:
+            case NavigationUnit.HOME:
                 return minDelta;

-            case ScrollUnit.END:
+            case NavigationUnit.END:
                 return maxDelta;

             default:
@@ -1101,19 +1101,19 @@
             return 0;

         var delta:Number = 0;
-        switch (scrollUnit)
+        switch (navigationUnit)
         {
-            case ScrollUnit.UP:
+            case NavigationUnit.UP:
                 // Snap the top edge of element to the top edge of the scrollRect.
                 // The element is the the first non-fully visible element above the scrollRect.
                 delta = Math.max(getElementBounds.top - scrollRect.top, -scrollRect.height);
             break;
-            case ScrollUnit.DOWN:
+            case NavigationUnit.DOWN:
                 // Snap the bottom edge of the element to the bottom edge of the scrollRect.
                 // The element is the the first non-fully visible element below the scrollRect.
                 delta = Math.min(getElementBounds.bottom - scrollRect.bottom, scrollRect.height);
             break;
-            case ScrollUnit.PAGE_UP:
+            case NavigationUnit.PAGE_UP:
             {
                 // Snap the bottom edge of the element to the bottom edge of the scrollRect.
                 // The element is the the first non-fully visible element below the scrollRect.
@@ -1126,7 +1126,7 @@
                     delta = Math.max(getElementBounds.top - scrollRect.top, -scrollRect.height);
             }
             break;
-            case ScrollUnit.PAGE_DOWN:
+            case NavigationUnit.PAGE_DOWN:
             {
                 // Align the top edge of the element to the top edge of the scrollRect.
                 // The element is the the first non-fully visible element below the scrollRect.


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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -18,12 +18,11 @@
 import flash.ui.Keyboard;

 import flex.core.GroupBase;
-import flex.intf.ILayout;
 import flex.intf.ILayoutItem;
 import flash.events.EventDispatcher;

-public class LayoutBase extends EventDispatcher implements ILayout
+public class LayoutBase extends EventDispatcher
 {
     //--------------------------------------------------------------------------
     //
@@ -156,6 +155,47 @@
         _verticalScrollPosition = value;
         scrollPositionChanged();
     }
+
+    //----------------------------------
+    //  clipContent
+    //----------------------------------
+
+    private var _clipContent:Boolean = true;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  When scrolling is enabled, clip the target's contents by
+     *  setting its scrollRect.  If this property is set to false,
+     *  then the target's scrollRect will be null, even if its
+     *  scrollPosition is non-zero or its content size is larger
+     *  than its actual size.
+     *
+     *  @default true
+     *  @see target
+     *  @see updateScrollRect
+     *  @see verticalScrollPosition
+     *  @see horizontalScrollPosition
+     */
+    public function get clipContent():Boolean
+    {
+        return _clipContent;
+    }
+
+    /**
+     *  @private
+     */
+    public function set clipContent(value:Boolean):void
+    {
+        if (value == _clipContent)
+            return;
+
+        _clipContent = value;
+        var g:GroupBase = target;
+        if (g)
+            updateScrollRect(g.width, g.height);
+    }
+

     //--------------------------------------------------------------------------
     //
@@ -286,7 +326,6 @@
             return;

         updateScrollRect(g.width, g.height);
-        // TBD: subclasses override to update first,lastIndexInView
     }

     /**
@@ -302,13 +341,14 @@
      *  is larger than its width,height, or the target's
      *  vertical,horizontalScrollPosition is non-zero.
      *
-     *  If none of the above conditions are true, the scrollRect
-     *  is set to null.
+     *  If none of the above conditions are true, or if clipContent
+     *  is false, then the scrollRect is set to null.
      *
      *  @param w The target's unscaled width.
      *  @param h The target's unscaled height.
      *
      *  @see target
+     *  @see flash.display.DisplayObject#scrollRect
      *  @see updateDisplayList
      *  @see flex.core.GroupBase#contentWidth
      *  @see flex.core.GroupBase#contentHeight
@@ -318,6 +358,12 @@
         var g:GroupBase = target;
         if (!g)
             return;
+
+        if (!clipContent)
+        {
+            g.scrollRect = null;
+            return;
+        }

         var hsp:Number = horizontalScrollPosition;
         var vsp:Number = verticalScrollPosition;


Transferred from the Adobe Open Source Subversion Repository

Revision: 9358
Author:   dsubrama@adobe.com
Date:     2009-08-17T23:51:20.104007Z

Log Message:
-----------
More work to support FXG 2.0 in the MXML Graphics library.

1. Switch blendMode default from layer to normal. Before, we did some trickery under the covers, where even though the default blendMode was layer, we actually only set it to layer when it resulted in a rendering difference (ie: when alpha was > 0 < 1 and other overlapping cases). Now, FXG 2.0 mandates blendMode default is normal – and we don’t have to do that trickery because the FXG exporters are smarter and will set blendMode explicitly to layer when necessary. This change is for Group and all graphic primitives.

2. I’ve added new enumerations to blendMode and maskType as well as a couple of new properties as mandated by FXG 2.0. There is additional work that needs to happen there that I’ll be doing next week.

3. I’ve renamed Group’s resizeMode enumerations from ‘normal’, ‘scale’ to ‘noScale’, ‘scale’.

4. I’ve renamed BitmapImage’s resizeMode enumerations from ‘normal’, ‘scale’, ‘repeat’ to ‘noScale’, ‘scale’, ‘repeat’. The default value for BitmapImage.resizeMode went from ‘repeat’ to ‘scale’. Additionally, BitmapImage.repeat property has now been eliminated - use resizeMode="repeat".

5. I’ve deprecated BitmapFill’s ‘repeat’ property. I’ve added a ‘resizeMode’ property to BitmapFill with the same enumerations, defaults and behavior as BitmapImage. I’ve also moved BitmapImageResizeMode from spark.primitives to mx.graphics. I’ve also renamed BitmapImageResizeMode.as to BitmapResizeMode.as (a PARB-approved rename).

QE notes:  Yes! Joan and I have cycloned numerous times and QA in on-board with the changes.
Doc notes: Yes
Bugs: Several
Reviewer: Evtim/Glenn
Tests run: Pretty much the entire mustella run for Halo and Spark components
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperIncrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VScrollBarSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapResizeMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/primitives/examples/BitmapImageExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ResizeMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/GripperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperDecrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/MinimizeButtonSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImageResizeMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/RestoreButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/MaximizeButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/halo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/MacCloseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/MacMinimizeButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/MacMaximizeButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/MaskType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/CloseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/SpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ScrollBarDownButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/TitleBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/spark-air-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/HScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ScrollBarUpButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/MacTitleBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -143,7 +143,7 @@
  *    layout="BasicLayout"
  *    mask=""
  *    maskType="clip"
- *    resizeMode="normal"
+ *    resizeMode="noScale"
  *    verticalScrollPosition="no default"
  *
  *    Events
@@ -612,59 +612,18 @@
     //----------------------------------
     //  resizeMode
     //----------------------------------
-    private static const _NORMAL_UINT:uint = 0;
-    private static const _SCALE_UINT:uint = 1;
-    private var _resizeMode:uint = _NORMAL_UINT;
-
-    /**
-     *  Converts from the String to the uint
-     *  representation of the enumeration value.
-     *
-     *  @param value The String representation of the enumeration.
-     *
-     *  @return The uint value corresponding to the String.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    private static function resizeModeToUINT(value:String):uint
-    {
-        if (value == ResizeMode.SCALE)
-            return _SCALE_UINT;
-        return _NORMAL_UINT;
-    }
-
-    /**
-     *  Converts from the uint to the String
-     *  representation of the enumeration values.
-     *
-     *  @param value The uint value of the enumeration.
-     *
-     *  @return The String corresponding to the uint value.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    private static function resizeModeToString(value:uint):String
-    {
-        if (value == _SCALE_UINT)
-            return ResizeMode.SCALE;
-        return ResizeMode.NORMAL;
-    }
-
+
+    private var _resizeMode:String = ResizeMode.NOSCALE;
+
     /**
      *  The ResizeMode for this container. If the resize mode
-     *  is set to ResizeMode.NORMAL, resizing is done by laying
+     *  is set to ResizeMode.NOSCALE, resizing is done by laying
      *  out the children with the new width and height. If the
      *  resize mode is set to ResizeMode.SCALE, all of the children
      *  keep their unscaled width and height and the children
      *  are scaled to change size.
      *
-     *
The default value is ResizeMode.NORMAL, corresponding to "normal".

+     *
The default value is ResizeMode.NOSCALE, corresponding to "noScale".

      *
      * @see spark.components.ResizeMode
      *
@@ -675,17 +634,16 @@
      */
     public function get resizeMode():String
     {
-        return resizeModeToString(_resizeMode);
-    }
-
-    public function set resizeMode(stringValue:String):void
-    {
-        var value:uint = resizeModeToUINT(stringValue);
+        return _resizeMode;
+    }
+
+    public function set resizeMode(value:String):void
+    {
         if (_resizeMode == value)
             return;

         // If old value was scale, reset it
-        if (_resizeMode == _SCALE_UINT)
+        if (_resizeMode == ResizeMode.SCALE)
             setStretchXY(1, 1);

         _resizeMode = value;
@@ -754,8 +712,8 @@
         if (!_mouseEnabledWhereTransparent || !_hasMouseListeners)
             return;

-        var w:Number = (_resizeMode == _SCALE_UINT) ? measuredWidth : unscaledWidth;
-        var h:Number = (_resizeMode == _SCALE_UINT) ? measuredHeight : unscaledHeight;
+        var w:Number = (_resizeMode == ResizeMode.SCALE) ? measuredWidth : unscaledWidth;
+        var h:Number = (_resizeMode == ResizeMode.SCALE) ? measuredHeight : unscaledHeight;

         if (isNaN(w) || isNaN(h))
             return;
@@ -801,7 +759,7 @@
     override protected function skipMeasure():Boolean
     {
         // We never want to skip measure, if we resize by scaling
-        return _resizeMode == _SCALE_UINT ? false : super.skipMeasure();
+        return _resizeMode == ResizeMode.SCALE ? false : super.skipMeasure();
     }

     /**
@@ -898,7 +856,7 @@

             // Make sure that we invalidate the display list if the measured
             // size changes, as we always size our content at the measured size when in scale mode.
-            if (_resizeMode == _SCALE_UINT && (measuredWidth != oldMeasuredWidth || measuredHeight != oldMeasuredHeight))
+            if (_resizeMode == ResizeMode.SCALE && (measuredWidth != oldMeasuredWidth || measuredHeight != oldMeasuredHeight))
                 invalidateDisplayList();
         }
     }
@@ -909,7 +867,7 @@
     override protected function validateMatrix():void
     {
         // Update the stretchXY before the matrix gets validates
-        if (_resizeMode == _SCALE_UINT)
+        if (_resizeMode == ResizeMode.SCALE)
         {
             var stretchX:Number = 1;
             var stretchY:Number = 1;
@@ -929,7 +887,7 @@
      */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
-        if (_resizeMode == _SCALE_UINT)
+        if (_resizeMode == ResizeMode.SCALE)
         {
             unscaledWidth = measuredWidth;
             unscaledHeight = measuredHeight;
@@ -1413,7 +1371,7 @@
     //----------------------------------

     [Bindable("propertyChange")]
-    [Inspectable(category="General",enumeration="clip,alpha", defaultValue="clip")]
+    [Inspectable(category="General", enumeration="clip,alpha,luminosity", defaultValue="clip")]
     private var _maskType:String = MaskType.CLIP;
     private var maskTypeChanged:Boolean;
     private var originalMaskFilters:Array;
@@ -1441,12 +1399,99 @@
      */
     public function set maskType(value:String):void
     {
+    	// FIXME (dsubrama): Temporarily exit when maskType is
+    	// set to luminosity; support for this will come shortly.
+    	if (value == "luminosity")
+    		return;
+
         if (_maskType != value)
         {
             _maskType = value;
             maskTypeChanged = true;
             invalidateDisplayList();
         }
+    }
+
+    //----------------------------------
+    //  luminosityInvert
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the luminosityInvert property.
+     */
+    private var _luminosityInvert:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var luminosityInvertChanged:Boolean;
+
+    [Inspectable(category="General", enumeration="true,false", defaultValue="false")]
+
+    /**
+     *  Documentation is not currently available.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get luminosityInvert():Boolean
+    {
+        return _luminosityInvert;
+    }
+
+    /**
+     *  @private
+     */
+    public function set luminosityInvert(value:Boolean):void
+    {
+    	if (_luminosityInvert == value)
+            return;
+
+        _luminosityInvert = value;
+    }
+
+	//----------------------------------
+    //  luminosityClip
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the luminosityClip property.
+     */
+    private var _luminosityClip:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var luminosityClipChanged:Boolean;
+
+    [Inspectable(category="General", enumeration="true,false", defaultValue="false")]
+
+    /**
+     *  Documentation is not currently available.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get luminosityClip():Boolean
+    {
+        return _luminosityClip;
+    }
+
+    /**
+     *  @private
+     */
+    public function set luminosityClip(value:Boolean):void
+    {
+    	if (_luminosityClip == value)
+            return;
+
+        _luminosityClip = value;
     }

    /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 17217
Author:   hmuller@adobe.com
Date:     2010-08-06T17:47:28.904096Z

Log Message:
-----------
The following bindable, read-only DataGrid and Grid properties are now writable: selectedIndex, selectedIndices, selectedCell, selectedCells, selectedItem, and selectedItems.  The property set methods are intended to enable developers to initialize the selection declaratively, they're not intended for programatic use.

DefaultGridItemRenderer uses createInFontContext() to create its text field to enable embedded fonts, RSLs.

QE notes: DataGrid
Doc notes:
Bugs: SDK-26988, SDK-27252
Reviewer: Carol, Alex
Tests run: DataGrid mustella,checkintests cyclone
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
@@ -7,6 +7,7 @@
 import flash.geom.Rectangle;
 import flash.text.TextFieldAutoSize;

+import mx.core.IUITextField;
 import mx.core.LayoutElementUIComponentUtils;
 import mx.core.UIComponent;
 import mx.core.UITextField;
@@ -301,7 +302,7 @@
     //  labelDisplay
     //----------------------------------

-    private var _labelDisplay:UITextField = null;
+    private var _labelDisplay:IUITextField = null;

     [Bindable("labelDisplayChanged")]

@@ -311,7 +312,7 @@
      *
      *  @default null
      */
-    public function get labelDisplay():UITextField
+    public function get labelDisplay():IUITextField
     {
         return _labelDisplay
     }
@@ -319,7 +320,7 @@
     /**
      *  @private
      */
-    public function set labelDisplay(value:UITextField):void
+    public function set labelDisplay(value:IUITextField):void
     {
         if (_labelDisplay == value)
             return;
@@ -355,26 +356,40 @@
     //
     //--------------------------------------------------------------------------

+    private function createLabelDisplay():void
+    {
+        if (labelDisplay)
+            removeChild(DisplayObject(labelDisplay));
+
+        labelDisplay = IUITextField(createInFontContext(UITextField));
+        labelDisplay.multiline = true;
+        labelDisplay.wordWrap = true;
+        labelDisplay.autoSize = TextFieldAutoSize.LEFT;
+
+        addChild(DisplayObject(labelDisplay));
+        if (_label != "")
+            labelDisplay.text = _label;
+    }
+
     /**
      *  @private
      */
     override protected function createChildren():void
     {
         super.createChildren();
-
-        if (!labelDisplay)
-        {
-            labelDisplay = new UITextField();
-
-            labelDisplay.multiline = true;
-            labelDisplay.wordWrap = true;
-            labelDisplay.autoSize = TextFieldAutoSize.LEFT;
-
-            addChild(DisplayObject(labelDisplay));
-            if (_label != "")
-                labelDisplay.text = _label;
-        }
-    }
+        createLabelDisplay();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+        if (hasFontContextChanged())
+            createLabelDisplay();
+    }
+

     /**
      *  @private
@@ -429,6 +444,7 @@
         super.updateDisplayList(width, height);

         labelDisplay.setActualSize(width - 10, height - 5);  // setActualSize() side-effects labelDisplay.textHeight
+        //LayoutElementUIComponentUtils.setLayoutBoundsSize(labelDisplay, width - 10, height - 5, nonDeltaLayoutMatrix());
         updateMeasuredSize();  // See @private comment above

         // If the Grid's row heights are fixed and the labelDisplay will not fit, then clip.
@@ -446,6 +462,7 @@
         }

         labelDisplay.move(5, 5);
+        //LayoutElementUIComponentUtils.setLayoutBoundsSize(labelDisplay, 5, 5, nonDeltaLayoutMatrix());
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/charts/src/mx/charts/series/renderData/HLOCSeriesRenderData.as
+++ frameworks/projects/charts/src/mx/charts/series/renderData/HLOCSeriesRenderData.as
@@ -0,0 +1,113 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.series.renderData
+{
+
+import mx.charts.chartClasses.RenderData;
+
+/**
+ *  Represents all the information needed by the HLOCSeries and CandlestickSeries objects to render.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class HLOCSeriesRenderData extends RenderData
+{
+    include "../../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *	@param	cache	The list of HLOCSeriesItem objects representing the items in the data provider.
+	 *	@param	filteredCache	The list of HLOCSeriesItem objects representing the items in the data provider that remain after filtering.
+	 *	@param	renderedHalfWidth	Half the width of an item, in pixels.
+	 *	@param	renderedXOffset		The offset of each item from its x value, in pixels.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function  HLOCSeriesRenderData(cache:Array /* of HLOCSeriesItem */ = null,
+										  filteredCache:Array /* of HLOCSeriesItem */ = null,
+										  renderedHalfWidth:Number = 0,
+										  renderedXOffset:Number = 0)
+	{
+		super(cache, filteredCache);
+
+		this.renderedHalfWidth = renderedHalfWidth;
+		this.renderedXOffset = renderedXOffset;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  renderedHalfWidth
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  Half the width of an item, in pixels.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var renderedHalfWidth:Number;
+
+    //----------------------------------
+	//  renderedXOffset
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The offset of each item from its x value, in pixels.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var renderedXOffset:Number;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function clone():RenderData
+	{
+		return new HLOCSeriesRenderData(cache, filteredCache,
+										renderedHalfWidth, renderedXOffset);
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5220
Author:   chaase@adobe.com
Date:     2009-03-10T15:55:06.496289Z

Log Message:
-----------
New Transform effects to handle correctly doing Move, Rotate, and Scale operations simultaneously. Also, added keyframe capabilities to new effects system (necessary for the transform effects, shouldn't affect operation of other effects). Fixed various issues with effects/transition infrastructure as necessary. Added transform utility functions to UIComponent, AdvancedLayoutFeatures, and GraphicElement.

QE Notes: This will break existing new effects tests due to changes in core Animation and AnimationEvent classes, QE is disabling them for now and will add them back in as changes are made.
Doc Notes: None
Bugs:
Reviewer: Ely (transform utilities) and Jason (the rest)
tests: checkintests, Mustella tests/Effects, tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/KeyFrame.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PropertyChanges.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate3D.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/effectClasses</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateColorInstance.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/FxAnimate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/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/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/effectClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/AnimationEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AnimationProperty.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateColorInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateColorInstance.as
@@ -16,7 +16,7 @@
 import mx.styles.StyleManager;

 /**
- * The instance of the Tint effect, which animates a change in
+ * The instance of the FxAnimateColor effect, which animates a change in
  * color by interpolating the from/to values per color channel
  *
  *  @langversion 3.0
@@ -27,7 +27,7 @@
 public class FxAnimateColorInstance extends FxAnimateInstance
 {
     /**
-     * copy mx.effects.Tint#colorFrom
+     * copy mx.effects.FxAnimateColor#colorFrom
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -37,7 +37,7 @@
     public var colorFrom:uint;

     /**
-     * copy mx.effects.Tint#colorTo
+     * copy mx.effects.FxAnimateColor#colorTo
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -47,7 +47,7 @@
     public var colorTo:uint;

     /**
-     * copy mx.effects.Tint#colorPropertyName
+     * copy mx.effects.FxAnimateColor#colorPropertyName
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Set currentInstance on prepare, not on instantiation time.

--- src/flails/mxml/ResourcefulServiceInvoker.as
+++ src/flails/mxml/ResourcefulServiceInvoker.as
@@ -11,19 +11,27 @@
   import flails.resource.Resource;

   public class ResourcefulServiceInvoker extends AbstractServiceInvoker implements IAction {
+    private var _data:Array;
+
     public var resource:Resource;
-    public var data:Array;
     public var type:String;
     public var id:String;
     public var parent:Object;

     [Bindable] public var result:Object;

-    public function ResourcefulServiceInvoker() {
-      currentInstance = this;
+    public function set data(args:Object):void {
+      trace("setting data");
+
+      if (args is Array)
+        _data = args as Array;
+      else
+        _data = [args];
     }

     override protected function prepare(scope:IScope):void {
+      currentInstance = this;
+
       super.prepare(scope);
     }

@@ -42,9 +50,9 @@
         createInnerHandlers(scope, FaultEvent.FAULT, faultHandlers);
       }

-      trace("calling " + type + "()");
+      trace("calling " + type + "() with " + _data);

-      rp[type].apply(rp, data);
+      rp[type].apply(rp, _data);
     }
   }
 }


Improved naming of an injector test

Improved naming of an injector test

--- test/org/swiftsuspenders/InjectorTests.as
+++ test/org/swiftsuspenders/InjectorTests.as
@@ -91,7 +91,7 @@
 		}

 		[Test]
-		public function bindValue():void
+		public function injectorInjectsBoundValueIntoAllInjectees():void
 		{
 			var injectee:ClassInjectee = new ClassInjectee();
 			var injectee2:ClassInjectee = new ClassInjectee();


issue #1 fix from original repo

issue #1 fix from original repo

--- src/ender/threads/ThreadSchedule.as
+++ src/ender/threads/ThreadSchedule.as
@@ -1,5 +1,8 @@
 package ender.threads
 {
+
+	import flash.utils.Dictionary;
+
 	/**
 	 * The ThreadSchedule maintains the schedule of a set of threads for a specified
 	 * priority. When enough time has elapsed that these threads should be scheduled to run,
@@ -8,23 +11,21 @@
 	public class ThreadSchedule
 	{
 		/** The number of milliseconds since the last time the threads were executed. */
-		protected var _lastFiring:uint = 0;
-
+		protected var _lastFiring : uint = 0;
 		/** The threads to be executed. */
-		public var _threads:Array = [];
+		public var _threads : Array = [];
+		/** The threads scheduled for execution app-wide. */
+		public static var allThreads : Dictionary = new Dictionary(false);
+		/** Priority for this set of threads. */
+		protected var _priority : int;

-		/** The threads scheduled for execution app-wide. */
-		public static var allThreads:Object = {};
-
-		/** Priority for this set of threads. */
-		protected var _priority:int;
-
 		/**
 		 * Constructor.
 		 *
 		 * @param priority Priority to run these threads at.
 		 */
-		public function ThreadSchedule(priority:int) {
+		public function ThreadSchedule(priority : int)
+		{
 			_priority = priority;
 		}

@@ -32,63 +33,71 @@
 		 * Add the time elapsed since the last schedule check.
 		 *
 		 * @param timeInMillis The time, in milliseconds, that has elapsed since last check.
-		 */
-		public function addTime(timeInMillis:uint):void {
+		 */
+		public function addTime(timeInMillis : uint) : void
+		{
 			_lastFiring += timeInMillis;
 		}
-
+
 		/**
 		 * Returns true if the elapsed time exceeds the schedule time for these threads.
 		 *
 		 * @return Returns true if the threads should be executed, false otherwise.
 		 */
-		public function isReadyToFire():Boolean {
+		public function isReadyToFire() : Boolean
+		{
 			return ((_priority == Thread.URGENT_PRIORITY) || _lastFiring >= _priority);
 		}

 		/**
 		 * Returns true if this is the first firing of the schedule, false otherwise.
 		 */
-		public function isFirstFiring():Boolean {
+		public function isFirstFiring() : Boolean
+		{
 			return (_lastFiring == 0);
 		}

 		/**
 		 * Reset the elapsed time check, signally that execution has occurred.
 		 */
-		public function resetLastFiring():void {
+		public function resetLastFiring() : void
+		{
 			_lastFiring = 0;
 		}
-
+
 		/**
 		 * Adds a thread to this schedule.
 		 */
-		public function addThread(thread:IThread):void {
+		public function addThread(thread : IThread) : void
+		{
 			// remove existing references
 			removeThread(thread);
-
+
 			// add thread
 			_threads.push(thread);
-
+
 			// add thread to global cache
 			allThreads[thread.runnable] = this;
 		}
-
+
 		/**
 		 * Removes a thread from this schedule.
 		 */
-		public function removeThread(thread:IThread):void {
-			var index:int = _threads.indexOf(thread);
+		public function removeThread(thread : IThread) : void
+		{
+			var index : int = _threads.indexOf(thread);

-			// remove thread if it exists in the list
-			if (index != -1) {
-				_threads.splice(index, 1);
+			// remove thread if it exists in the list
+			if(index != -1)
+			{
+				_threads.splice(index, 1);
 			}
-
+
 			// remove thread from global cache
-			if (allThreads[thread.runnable]) {
+			if(allThreads[thread.runnable])
+			{
 				delete allThreads[thread.runnable];
-			}
+			}
 		}

 		/**
@@ -97,8 +106,11 @@
 		 * @param thread Thread to check for.
 		 * @return Returns true if the thread exists in the system, false otherwise.
 		 */
-		public static function isThreadKnown(thread:IThread):Boolean {
+		public static function isThreadKnown(thread : IThread) : Boolean
+		{
 			return allThreads[thread.runnable];
+			// var runner:IRunnable = allThreads[thread.runnable];
+			// return runner == thread.runnable;
 		}

 		/**
@@ -106,29 +118,33 @@
 		 *
 		 * @return Count of threads.
 		 */
-		public static function get threadCount():int {
-			var count:int = 0;
-
-			for each (var i:* in allThreads) {
+		public static function get threadCount() : int
+		{
+			var count : int = 0;
+
+			for each(var i:* in allThreads)
+			{
 				count++;
 			}
-
+
 			return count;
 		}
-
+
 		/**
 		 * Priority for this set of threads.
 		 */
-		public function get priority():int {
+		public function get priority() : int
+		{
 			return _priority;
 		}
-
+
 		/**
 		 * Returns the existing threads in the schedule.
 		 *
 		 * @return Threads in the schedule.
 		 */
-		public function get threads():Array {
+		public function get threads() : Array
+		{
 			return _threads;
 		}
 	}


Use columns passed in not internal _columns

--- frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
+++ frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
@@ -2878,10 +2878,10 @@
     protected function initializeHeaderInfo(columns:Array):Array
     {
         var newArray:Array = [];
-        var n:int = _columns.length;
+        var n:int = columns.length;
         for(var i:int = 0; i < n; i++)
         {
-            var headerInfo:AdvancedDataGridHeaderInfo = new AdvancedDataGridHeaderInfo(_columns[i],null,i, 0) ;
+            var headerInfo:AdvancedDataGridHeaderInfo = new AdvancedDataGridHeaderInfo(columns[i],null,i, 0) ;
             newArray.push(headerInfo);
         }
         return newArray;


Transferred from the Adobe Open Source Subversion Repository

Revision: 22564
Author:   tkraikit@adobe.com
Date:     2011-09-14T19:50:07.656843Z

Log Message:
-----------
Update ASDoc "@productversion Flex 4.5.2" => "@productversion Flex 4.6"

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/OnDemandDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/FlexVersion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/FormatPattern.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListScrollerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ToggleSwitchSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImageSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>
<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/mobilecomponents/src/spark/preloaders/SplashScreenImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/CalendarDate.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/DateTimeFormatterEx.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as
@@ -31,7 +31,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 public class StageTextAreaSkin extends StageTextSkinBase
 {
@@ -61,7 +61,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function StageTextAreaSkin()
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

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


refactor to get style precedence correct

--- frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as
+++ frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as
@@ -47,10 +47,20 @@
      */
 	public static function getMetrics(object:Object) : UIMetrics
 	{
-		var borderThickness:Object = ValuesManager.valuesImpl.getValue(object,"border-thickness");
+		var borderThickness:Object = ValuesManager.valuesImpl.getValue(object,"border-width");
 		var borderOffset:Number;
-		if( borderThickness == null ) {
-			borderOffset = 0;
+		if( borderThickness == null )
+        {
+            borderThickness = ValuesManager.valuesImpl.getValue(object,"border");
+            if (borderThickness != null)
+            {
+                if (borderThickness is Array)
+                    borderOffset = CSSUtils.toNumber(borderThickness[0], object.width);
+                else
+                    borderOffset = CSSUtils.toNumber(borderThickness as String, object.width);
+            }
+            else
+                borderOffset = 0;
 		}
 		else {
 			borderOffset = Number(borderThickness);
@@ -63,41 +73,14 @@
 		var paddingBottom:Object;

 		var padding:Object = ValuesManager.valuesImpl.getValue(object, "padding");
-		if (padding is Array)
-		{
-			if (padding.length == 1)
-				paddingLeft = paddingTop = padding[0];
-			else if (padding.length <= 3)
-			{
-				paddingTop = padding[0];
-				paddingLeft = padding[1];
-				paddingBottom = padding[0];
-				paddingRight = padding[1];
-			}
-			else if (padding.length == 4)
-			{
-				paddingTop = padding[0];
-				paddingLeft = padding[1];
-				paddingBottom = padding[2];
-				paddingRight = padding[3];
-			}
-		}
-		else if (padding == null)
-		{
-			paddingLeft = ValuesManager.valuesImpl.getValue(object, "padding-left");
-			paddingTop = ValuesManager.valuesImpl.getValue(object, "padding-top");
-			paddingRight = ValuesManager.valuesImpl.getValue(object, "padding-right");
-			paddingBottom = ValuesManager.valuesImpl.getValue(object, "padding-bottom");
-		}
-		else
-		{
-			paddingLeft = paddingTop = padding;
-			paddingRight = paddingBottom = padding;
-		}
-		var pl:Number = Number(paddingLeft);
-		var pt:Number = Number(paddingTop);
-		var pr:Number = Number(paddingRight);
-		var pb:Number = Number(paddingBottom);
+		paddingLeft = ValuesManager.valuesImpl.getValue(object, "padding-left");
+		paddingTop = ValuesManager.valuesImpl.getValue(object, "padding-top");
+		paddingRight = ValuesManager.valuesImpl.getValue(object, "padding-right");
+		paddingBottom = ValuesManager.valuesImpl.getValue(object, "padding-bottom");
+		var pl:Number = CSSUtils.getLeftValue(paddingLeft, padding, object.width);
+		var pt:Number = CSSUtils.getTopValue(paddingTop, padding, object.height);
+		var pr:Number = CSSUtils.getRightValue(paddingRight, padding, object.width);
+		var pb:Number = CSSUtils.getBottomValue(paddingBottom, padding, object.height);

 		var marginLeft:Object;
 		var marginRight:Object;
@@ -105,35 +88,10 @@
 		var marginBottom:Object;
 		var margin:Object;
 		margin = ValuesManager.valuesImpl.getValue(object, "margin");
-
-		if (margin is Array)
-		{
-			if (margin.length == 1)
-				marginLeft = marginTop = marginRight = marginBottom = margin[0];
-			else if (margin.length <= 3)
-			{
-				marginLeft = marginRight = margin[1];
-				marginTop = marginBottom = margin[0];
-			}
-			else if (margin.length == 4)
-			{
-				marginLeft = margin[3];
-				marginBottom = margin[2];
-				marginRight = margin[1];
-				marginTop = margin[0];
-			}
-		}
-		else if (margin == null)
-		{
-			marginLeft = ValuesManager.valuesImpl.getValue(object, "margin-left");
-			marginTop = ValuesManager.valuesImpl.getValue(object, "margin-top");
-			marginRight = ValuesManager.valuesImpl.getValue(object, "margin-right");
-			marginBottom = ValuesManager.valuesImpl.getValue(object, "margin-bottom");
-		}
-		else
-		{
-			marginLeft = marginTop = marginBottom = marginRight = margin;
-		}
+		marginLeft = ValuesManager.valuesImpl.getValue(object, "margin-left");
+		marginTop = ValuesManager.valuesImpl.getValue(object, "margin-top");
+		marginRight = ValuesManager.valuesImpl.getValue(object, "margin-right");
+		marginBottom = ValuesManager.valuesImpl.getValue(object, "margin-bottom");
 		var ml:Number;
 		var mr:Number;
 		var mt:Number;
@@ -142,26 +100,27 @@
 		if (marginLeft == "auto")
 			ml = 0;
 		else
-		{
-			ml = Number(marginLeft);
-			if (isNaN(ml))
-				ml = 0;
-		}
+        {
+            ml = CSSUtils.getLeftValue(marginLeft, margin, object.width);
+            if (isNaN(ml))
+                ml = 0;
+        }
 		if (marginRight == "auto")
 			mr = 0;
 		else
-		{
-			mr = Number(marginRight);
-			if (isNaN(mr))
-				mr = 0;
-		}
-		mt = Number(marginTop);
+        {
+            mr = CSSUtils.getRightValue(marginRight, margin, object.width);
+            if (isNaN(mr))
+                mr = 0;
+        }
+		mt = CSSUtils.getTopValue(marginTop, margin, object.height);
 		if (isNaN(mt))
 			mt = 0;
-		mb = Number(marginBottom);
+        mb = CSSUtils.getBottomValue(marginBottom, margin, object.height);
 		if (isNaN(mb))
 			mb = 0;

+        borderOffset *= 2; // border on each side
 		var result:UIMetrics = new UIMetrics();
 		result.top = borderOffset + pt;
 		result.left = borderOffset + pl;


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19862
Author:   doug.lee@ssbbartgroup.com
Date:     2011-01-21T16:14:58.915397Z

Log Message:
-----------
Updates to DataGridAccImpl to make DataGrids allow GridItemEditor accessibility implementations to be available to assistive technology when in focus:
	- DataGridAccImpl attached to a focusOwner property of DataGrid rather than to DataGrid itself so it doesn't mask AccImpls for components beneath the grid.
	- Sets STATE_SYSTEM_FOCUSED on DataGrid when focus is actually on its focusOwner.
	- Handles FOCUS_IN and GridItemEditor life cycle events to help coordinate MSAA focus events with DataGrid and GridItemEditor focus changes.
	- Applies a grid cell's accName to an editor when focused.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/accessibility/DropDownListBaseAccImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/accessibility/DataGridAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/DataGridAccImpl.as
@@ -14,6 +14,7 @@

 import flash.accessibility.Accessibility;
 import flash.events.Event;
+import flash.events.FocusEvent;
 import mx.accessibility.AccConst;
 import mx.collections.IList;
 import mx.core.UIComponent;
@@ -28,6 +29,7 @@
 import spark.events.GridCaretEvent;
 import spark.events.GridSelectionEvent;
 import spark.events.GridSelectionEventKind;
+import spark.events.GridItemEditorEvent;
 import spark.skins.spark.DefaultGridItemRenderer;

 use namespace mx_internal;
@@ -83,10 +85,14 @@
     mx_internal static function createAccessibilityImplementation(
                                 component:UIComponent):void
     {
-        component.accessibilityImplementation =
-            new DataGridAccImpl(component);
-    }
-
+        // attach AccImpl to placeholder focusOwner component so that item editors
+        // are exposed as sibling of the dataGrid allow for correct exposure in MSAA
+        // and the ability for iSimpleTextSelection interface to work as it requires
+        // that the stage focused component be the same MSAA component
+        var accImpl:DataGridAccImpl = new DataGridAccImpl(component);
+        DataGrid(component).focusOwner.accessibilityImplementation = accImpl;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -132,7 +138,8 @@
      */
     override protected function get eventsToHandle():Array
     {
-        return super.eventsToHandle.concat([GridSelectionEvent.SELECTION_CHANGE]);
+        return super.eventsToHandle.concat([GridSelectionEvent.SELECTION_CHANGE, FocusEvent.FOCUS_IN, GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_START,
+        GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_SAVE, GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_CANCEL]);
     }

     //--------------------------------------------------------------------------
@@ -181,6 +188,9 @@
     override public function get_accState(childID:uint):uint
     {
         var accState:uint = getState(childID);
+        if (childID == 0
+        && DataGrid(master).focusOwner == UIComponent(master).getFocus())
+            accState |= AccConst.STATE_SYSTEM_FOCUSED;
         if (int(childID) <= 0)
             return accState;

@@ -399,13 +409,7 @@
         // We now have only rows and data cells to consider.

         // String representation of row position.
-        var rowString:String = "";
-        if ((dgAccInfo.isCellMode && dgAccInfo.reachableColumnIndex == 0) || !dgAccInfo.isCellMode)
-        {
-            resourceManager = ResourceManager.getInstance();
-            rowString = resourceManager.getString("components", "rowMofN");
-            rowString = rowString.replace("%1", dgAccInfo.reachableRowIndex + 1).replace("%2", dgAccInfo.reachableRowCount);
-        }
+        var rowString:String = makeRowString(dgAccInfo);

         // Construct the name to return.
         var name:String = "";
@@ -665,9 +669,12 @@
                 childID = dgAccInfo.childIDFromRowAndColumn(
                     int(GridCaretEvent(event).newRowIndex),
                     int(GridCaretEvent(event).newColumnIndex)
-                );
+                )
                 if (int(childID) > 0)
-                    Accessibility.sendEvent(dgAccInfo.dataGrid, childID, AccConst.EVENT_OBJECT_FOCUS);
+                    if (!dgAccInfo.dataGrid.itemEditorInstance)
+                        Accessibility.sendEvent(dgAccInfo.dataGrid.focusOwner, childID, AccConst.EVENT_OBJECT_FOCUS);
+                    else
+                        Accessibility.sendEvent(UIComponent(dgAccInfo.dataGrid.itemEditorInstance), 0, AccConst.EVENT_OBJECT_FOCUS);
                 break;
             }
             case GridSelectionEvent.SELECTION_CHANGE:
@@ -694,9 +701,86 @@
                 || kind == GridSelectionEventKind.SET_ROWS)
                     eventID = AccConst.EVENT_OBJECT_SELECTIONWITHIN;

-                Accessibility.sendEvent(dgAccInfo.dataGrid, childID, eventID);
+                Accessibility.sendEvent(dgAccInfo.dataGrid.focusOwner, childID, eventID);
                 break;
             }
+            case FocusEvent.FOCUS_IN:
+            {
+                // do not fire focus changes for list when a child editor is focused
+                // as this causes an extra event being fired
+                if (event.target == DataGrid(master).focusOwner)
+                    Accessibility.sendEvent(DataGrid(master).focusOwner, 0, AccConst.EVENT_OBJECT_FOCUS);
+                break;
+            }
+            case GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_START:
+            {
+                dgAccInfo.setup(master, 0);
+
+                childID = dgAccInfo.childIDFromRowAndColumn(
+                    GridItemEditorEvent(event).rowIndex,
+                    GridItemEditorEvent(event).columnIndex
+                );
+                var editor:Object = event.currentTarget.itemEditorInstance;
+                var defaultGridItemEditorClass:Class = Class(getDefinition("spark.components.gridClasses.DefaultGridItemEditor", master.moduleFactory));
+                if (editor is defaultGridItemEditorClass)
+                {
+                    // The specific part with focus.
+                    try
+                    {
+                        editor = Object(editor).textArea;
+                    }
+                    catch(e:Error)
+                    {
+                    }
+                }
+                else
+                {
+                    // Try to find the specific part with focus,
+                    // falling back to the itemEditorInstance if we don't know it.
+                    var realEditor:UIComponent = null;
+                    try
+                    {
+                        realEditor = UIComponent(editor.stage.focus);
+                    }
+                    catch(e:Error)
+                    {
+                    }
+                    if (Boolean(realEditor) && editor != realEditor)
+                    {
+                        editor = realEditor;
+                    }
+                }
+                // Name the editor with this cell's name.
+                // This applies the same rules for row identification for both edit and non-edit cells.
+                if (!editor.accessibilityName)
+                {
+                    var edName:String = "";
+                    if (dgAccInfo.headerCount > 0)
+                    {
+                        var columns:IList = dgAccInfo.dataGrid.columns;
+                        var columnIndex:int = GridItemEditorEvent(event).columnIndex;
+                        edName += columns.getItemAt(columnIndex).headerText;
+                    }
+                    // For the row string, we need to indicate which cell to use.
+                    dgAccInfo.setup(master, childID);
+                    var rowString:String = makeRowString(dgAccInfo);
+                    if (rowString)
+                        edName += " " +rowString;
+                    editor.accessibilityName = edName;
+                    Accessibility.updateProperties();
+                }
+                Accessibility.sendEvent(UIComponent(editor), 0, AccConst.EVENT_OBJECT_FOCUS);
+                break;
+            }
+            case GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_SAVE, GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_CANCEL:
+            {
+                dgAccInfo.setup(master, 0);
+
+                childID = dgAccInfo.childIDFromRowAndColumn(
+                GridItemEditorEvent(event).rowIndex, GridItemEditorEvent(event).columnIndex);
+
+                Accessibility.sendEvent(DataGrid(master).focusOwner, childID, AccConst.EVENT_OBJECT_FOCUS);
+            }
         }
     }

@@ -709,11 +793,24 @@
     /**
      *  @private
      */
+    private function makeRowString(dgAccInfo:ItemAccInfo):String
+    {
+        var rowString:String = "";
+        if ((dgAccInfo.isCellMode && dgAccInfo.reachableColumnIndex == 0) || !dgAccInfo.isCellMode)
+        {
+            var resourceManager:IResourceManager = ResourceManager.getInstance();
+            rowString = resourceManager.getString("components", "rowMofN");
+            rowString = rowString.replace("%1", dgAccInfo.reachableRowIndex + 1).replace("%2", dgAccInfo.reachableRowCount);
+        }
+        return rowString;
+    }
+
+    /**
+     *  @private
+     */
     private function cellName(rowObject:Object, columnIndex:int):String
     {
         var item:Object = rowObject;
-        if (item is String)
-            return "" + item;
         var dataGrid:DataGrid = DataGrid(master);
         var columns:IList = dataGrid.columns;
         if (!columns)