Transferred from the Adobe Open Source Subversion Repository

Revision: 20684
Author:   rfrishbe@adobe.com
Date:     2011-03-08T19:14:07.872274Z

Log Message:
-----------
ASDoc changes: some cleanups and clarifying mobile vs. spark where appropriate

QE notes: -
Doc notes:
Bugs: SDK-29845
Reviewer: Carol F
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/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -69,7 +69,8 @@
  *  The value is an array of one or more colors.
  *  The backgrounds of the list items alternate among the colors in the array.
  *
- *  @default undefined
+ *
The default value for the Spark theme is undefined.
+ *  The default value for the Mobile theme is 0xFFFFFF.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -103,9 +104,18 @@
 [Style(name="contentBackgroundAlpha", type="Number", inherit="yes", theme="spark, mobile", minValue="0.0", maxValue="1.0")]

 /**
- *  Color of the fill of an item renderer.
- *
- *  @default 0xFFFFFF
+ *  The color of the content background for this component.
+ *
+ *
For a List, changing contentBackgroundColor will
+ *  change the content background color of the List; however, if the item renderer
+ *  is opaque, the user may not see any difference.  The item renderer's color is
+ *  affected by alternatingItemColors.  In the Spark theme, by default, item
+ *  renderers are transparent (alternatingItemColors = undefined); however,
+ *  in the Mobile theme, item renderers are opaque by default
+ *  (alternatingItemColors = 0xFFFFFF).

+ *
+ *
The default value for the Spark theme is 0xFFFFFF.
+ *  The default value for the Mobile theme is 0xF0F0F0.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -132,11 +142,8 @@
  *
If downColor is set to undefined,
  *  downColor is not used.

  *
- *
The default value in the
- *  spark theme is undefined.  The default value in the
- *  mobile theme is 0xB2B2B2.

- *
- *  @default undefined
+ *
The default value for the Spark theme is undefined.
+ *  The default value for the Mobile theme is 0xE0E0E0.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
@@ -159,6 +166,8 @@

 /**
  *  Color of the highlights when the mouse is over the component.
+ *
+ *
This style is only applicable in mouse interactionMode.

  *
  *  @default 0xCEDBEF
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/FadeInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/FadeInstance.as
@@ -9,21 +9,22 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.effects.effectClasses
+package spark.effects.supportClasses
 {
 import flash.events.Event;

-import mx.components.Group;
-import mx.effects.Animation;
-import mx.effects.AnimationProperty;
-import mx.events.AnimationEvent;
+import spark.components.Group;
+import spark.effects.animation.Animation;
+import spark.effects.AnimationProperty;
+import spark.events.AnimationEvent;
 import mx.events.FlexEvent;
-import mx.graphics.baseClasses.GraphicElement;
+import spark.primitives.supportClasses.GraphicElement;
 import mx.managers.LayoutManager;
-
-public class FxFadeInstance extends FxAnimateInstance
+import mx.effects.effectClasses.PropertyChanges;
+
+public class FadeInstance extends AnimateInstance
 {
-    public function FxFadeInstance(target:Object)
+    public function FadeInstance(target:Object)
     {
         super(target);


Transferred from the Adobe Open Source Subversion Repository

Revision: 18843
Author:   dloverin@adobe.com
Date:     2010-11-29T21:51:45.548568Z

Log Message:
-----------
Fix for inline styles on default item renderer.

Rewrote the previous fix. Added a “addStyleDeclarationToProtoChain()” function that is called from TextFieldItemRendererInclude.as. DefaultGridItemRenderer and UITextFieldGridItemRenderer override this method to supply their styleDeclaration. DefaultGridItemRenderer adds the “direction” and “locale” style.

QE notes: None.
Doc notes: None.
Bugs: SDK-28672
Reviewer: Carol
Tests run: checkintests, cyclone server
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.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/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
@@ -108,50 +108,28 @@
         addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
     }

-    //--------------------------------------------------------------------------
-    //
-    //  IStyleClient Methods and Properties
-    //  (source code from mx.controls.dataGridClassses.DataGridItemRenderer.as)
-    //
-    //--------------------------------------------------------------------------
-
-    //----------------------------------
-    //  styleDeclaration
-    //----------------------------------
-
-    private var _styleDeclaration:CSSStyleDeclaration;
-
     /**
      *  @private
+     *
+     *  Called from initProtoChain() in TextFieldGridItemRendererInclude.as.
      */
-    public function get styleDeclaration():CSSStyleDeclaration
+    private function addStyleDeclarationToProtoChain(chain:Object,
+                                                       target:DisplayObject):Object
     {
-        return _styleDeclaration;
-    }
-
-    /**
-     *  @private
-     */
-    public function set styleDeclaration(value:CSSStyleDeclaration):void
-    {
+        // Add style declaration to the proto chain as usual but also add
+        // direction and locale styles.
         // The "direction" and "locale" are treated as properites instead of
         // styles by the compiler when the DefaultGridItemRenderer is used.
         // This means styleDeclaration will not include these inline styles.
         // This code adds "direction" and "locale" back into styleDeclaration
-        // so the style system sees the styles.
-        var uiFTETextField:UIFTETextField = UIFTETextField(this);
-        var styleManager:IStyleManager2 = StyleManager.getStyleManager(moduleFactory);
-        var style:CSSStyleDeclaration = new CSSStyleDeclaration(value.selector, styleManager);
+        // so the style system sees the styles.
+        var styles:Object = styleDeclaration.addStyleToProtoChain(chain, target);

-        style.defaultFactory = function():void
-        {
-            this.direction = uiFTETextField.direction;
-            this.locale = uiFTETextField.locale;
-        }
+        styles.direction = direction;
+        styles.locale = locale;

-        _styleDeclaration = new CSSMergedStyleDeclaration(style, value, value.selector,
-            styleManager);
-    }
+        return styles;
+    }

 include "TextFieldGridItemRendererInclude.as"


Transferred from the Adobe Open Source Subversion Repository

Revision: 14869
Author:   cframpto@adobe.com
Date:     2010-03-19T02:24:27.434644Z

Log Message:
-----------
Merge mirroring changes 14728-14730, 14772-14775, 14806 from 4.x to trunk.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</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/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/CheckBoxSkin.mxml</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/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>

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

--- frameworks/projects/airspark/src/spark/components/WindowedApplication.as
+++ frameworks/projects/airspark/src/spark/components/WindowedApplication.as
@@ -1736,25 +1736,26 @@
                 systemChrome == NativeWindowSystemChrome.STANDARD)
                 nativeWindow.height = chromeHeight() + _bounds.height;

-            systemManager.stage.stageWidth = _width = _bounds.width;
-            systemManager.stage.stageHeight = _height =  _bounds.height;
-
+            systemManager.stage.stageWidth = _bounds.width;
+            systemManager.stage.stageHeight = _bounds.height;
+
+            // Set _width and _height.  This will update the mirroring
+            // transform if applicable.
+            setActualSize(_bounds.width, _bounds.height);
+
             boundsChanged = false;
+        }
+
+        if (windowBoundsChanged)
+        {
+            _bounds.width = systemManager.stage.stageWidth;
+            _bounds.height = systemManager.stage.stageHeight;

-            // don't know whether height or width changed
-            dispatchEvent(new Event("widthChanged"));
-            dispatchEvent(new Event("heightChanged"));
-        }
-
-        if (windowBoundsChanged)
-        {
-            _bounds.width = _width = systemManager.stage.stageWidth;
-            _bounds.height = _height = systemManager.stage.stageHeight;
+            // Set _width and _height.  This will update the mirroring
+            // transform if applicable.
+            setActualSize(_bounds.width, _bounds.height);
+
             windowBoundsChanged = false;
-
-            // don't know whether height or width changed
-            dispatchEvent(new Event("widthChanged"));
-            dispatchEvent(new Event("heightChanged"));
         }

         if (menuChanged && !nativeWindow.closed)


Transferred from the Adobe Open Source Subversion Repository

Revision: 7198
Author:   hmuller@adobe.com
Date:     2009-05-21T22:27:07.016124Z

Log Message:
-----------
If a DataGroup changes its itemRenderer or dataProvider it needs to ensure that the
state cached for the sake of virtual layout is cleared.  Added
LayoutBase::clearVirtualLayoutState() for this.

BasicLayout.useVirtualLayout=false is now ignored (generates a warning).

QE Notes: API Change: added LayoutBase::clearVirtualLayoutState()
Doc Notes:
Bugs: sdk-19397, sdk-20443, sdk-20930
Reviewer: Evtim

Modified Paths:
--------------
<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/layouts/TileLayout.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/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LinearLayoutVector.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/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -96,6 +96,9 @@
      */
     public function set target(value:GroupBase):void
     {
+        if (_target == value)
+            return;
+        clearCachedVirtualLayoutState();
         _target = value;
     }

@@ -108,26 +111,41 @@
     [Inspectable(defaultValue="false")]

     /**
-     *  If true, subclasses will be advised that it's
-     *  preferable to lazily create layout elements as they come into view,
-     *  and to discard or recycle layout elements that are no longer in view.
-     *
-     *
You should implement virtualization support if the layout is going
-     *  to be used with data containers and you want to spend resources only
-     *  on the data items that are displayed on the screen.
-     *  To support virtualization, a layout must be implemented in such a way
-     *  that it does not iterate through all of the target's elements as anytime
-     *  you access a data container element, the container allocates an
-     *  ItemRenderer for the corresponding data item.
-     *  Instead, you should calculate and only access the elements that will be in view.
-     *  A typical implementation of a virtual layout will examine the target's
-     *  scrollRect and the size of the typicalLayoutElement to determine which
-     *  elements will be in view. Additionally some layouts, like the
-     *  VerticalLayout and the HorizontalLayout, keep a
-     *  cache of the sizes of all elements that have already been accessed
-     *  for more precise calculations for casese of bigger variations
-     *  in sizes between the typicalLayoutElement and the actual elements.

-     *
+     *  If true, subclasses must only layout elements that are in view based on the
+     *  current scrollRect.
+     *
+     *  Layout subclasses that do not support virtualization must prevent changing
+     *  this property.
+     *
+     *  When useVirtualLayout=true, layouts that support virtualization must use
+     *  target.getVirtualElementAt(), rather than getElementAt(), and must only get the
+     *  elements they anticipate will be visible given the value of getScrollRect().
+     *
+     *  To support useVirtualLayout=true, the layout class must be able to compute
+     *  the indices of the layout elements that overlap the scrollRect in its
+     *  updateDisplayList() method based exclusively on cached information, not
+     *  by getting layout elements and examining their bounds.
+     *
+     *  Typically virtual layouts update their cached information in updateDisplayList(),
+     *  based on the sizes and locations computed for the elements in view.
+     *
+     *  Similarly, at measure() time, virtual layouts should update the target's
+     *  measured size properties based on the typicalLayoutElement and other
+     *  cached layout information, not by measuring elements.
+     *
+     *  Presently only "data containers", i.e. that containers that construct
+     *  an ItemRenderer layout element for each dataProvider item, support virtualization.
+     *
+     *  DataGroup is a data container and SkinnableDataContainer (e.g. List
+     *  and DropDownList) has a DataGroup skin part.
+     *
+     *  Data containers cooperate with useVirtualLayout=true layouts by
+     *  "recycling" ItemRenderers that were previously constructed in response
+     *  to getVirtualLayoutElement() calls by are no longer in use.
+     *
+     *  An item is considered to be no longer in use if its index is not
+     *  within the range of getVirtualElementAt() indices requested during
+     *  the container's most recent updateDisplayList() invocation.
      *  @default false
      *
      *  @see #getScrollRect
@@ -151,11 +169,31 @@
         if (_useVirtualLayout == value)
             return;

-        dispatchEvent(new Event("useVirtualLayoutChanged"));
+        dispatchEvent(new Event("useVirtualLayoutChanged"));
+
+        if (_useVirtualLayout && !value)  // turning virtual layout off
+            clearCachedVirtualLayoutState();
+
         _useVirtualLayout = value;
         if (target)
             target.invalidateDisplayList();
     }
+
+    /**
+     *  When useVirtualLayout=true, this method can be used by the layout target
+     *  to clear cached layout information when target state that might invalidate
+     *  such information changes.
+     *
+     *  For example, when a DataGroup's dataProvider or itemRenderer changes, cached
+     *  elements sizes will become invalid.
+     *
+     *  When useVirtualLayout changes to false, this method is called automatically.
+     *
+     *  Subclasses that support useVirtualLayout=true must override this method.
+     */
+    public function clearCachedVirtualLayoutState():void
+    {
+    }

     //----------------------------------
     //  horizontalScrollPosition
@@ -594,7 +632,7 @@
         return new Rectangle(hsp, vsp, g.width, g.height);
     }

-    /**
+   /**
      *  Returns the specified element's layout bounds as a Rectangle or null
      *  if the index is invalid, the corresponding element is null
      *  or includeInLayout=false, or if this layout's target is null.


Transferred from the Adobe Open Source Subversion Repository

Revision: 21680
Author:   jszeto@adobe.com
Date:     2011-07-21T21:56:22.533455Z

Log Message:
-----------
Item Snapping, SpinnerList and DateSpinner Initial checkin

Merging in changes from sandbox development branch

SpinnerList and DateSpinner are in usable states, but there is still unimplemented functionality.

QE notes: none
Doc notes: none
Bugs: none
Reviewer: Tom Kraikit, Eric Day, Jason Szeto
Tests run: checkintests, full cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="A">/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/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateAndTimeRangeList.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.settings/org.eclipse.core.resources.prefs</path>
<path kind="file" action="A">/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/layouts/HorizontalLayout.as</path>
<path kind="file" action="A">/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/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalendarDate.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.settings</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/SpinnerListContainerBackground.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/SpinnerListContainerBackground.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/DateSpinnerTest-app.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/effects/ThrowEffect.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/SpinnerListContainerBackground.fxg</path>
<path kind="file" action="A">/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/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/views</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/layouts/VerticalSpinnerLayout.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.flexProperties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/libs</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="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/bundles/en_US/components.properties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/TouchScrollHelper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/TabbedViewNavigatorButtonBarFirstButton_down.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/DateSpinnerTest.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/blackberry-tablet.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/views/DateSpinnerTestHomeView.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="dir" action="M">/private/flex/sdk/branches/4.y</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/SpinnerListContainerSelectionIndicator.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/SpinnerListContainerSelectionIndicator.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.settings</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/SpinnerListContainerSelectionIndicator.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.project</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/SpinnerListContainerShadow.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/SpinnerListContainerShadow.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/SpinnerListContainerShadow.fxg</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -1601,6 +1601,68 @@

     }

+	/**
+	 *  @private
+	 *
+	 *  Given an x\y position and a compare point
+	 *  (topLeft/topRight/bottomRight/bottomLeft/center), returns the element
+	 *  who's compare point is closest to the position.
+	 *  For example, the position might be in the bounds of element A, but
+	 *  closer to the topLeft corner of element B than to the topLeft corner
+	 *  of element A.
+	 *  In which case, this function would return the index for element B.
+	 */
+	mx_internal function getElementNearestScrollPosition(
+		position:Point,
+		elementComparePoint:String = "center"):int
+	{
+		var num:int = target.numElements;
+		var minDistance:Number = Number.MAX_VALUE;
+		var minDistanceElement:int = -1;
+		var i:int;
+		var rect:Rectangle;
+		var dist:int;
+
+		// This base implementation uses brute force:  the compare point of every existing
+		// element is compared to the position and the closest one wins.  Most derived layout
+		// classes will have a better mechanism for finding the closest element without
+		// a linear search like this.
+		// TODO (eday) - possible performance optimization: Pull the switch statement out of the
+		// loop and have a separate loop for each case.
+		for (i = 0; i < num; i++)
+		{
+			rect = getElementBounds(i);
+
+			var elementPoint:Point = null;
+			switch (elementComparePoint)
+			{
+				case "topLeft":
+					elementPoint = rect.topLeft;
+					break;
+				case "bottomRight":
+					elementPoint = rect.bottomRight;
+					break;
+				case "bottomLeft":
+					elementPoint = new Point(rect.left, rect.bottom);
+					break;
+				case "topRight":
+					elementPoint = new Point(rect.right, rect.top);
+					break;
+				case "center":
+					elementPoint = new Point(rect.left + rect.width/2, rect.top + rect.height/2);
+					break;
+			}
+
+			dist = Point.distance(position, elementPoint);
+			if (dist < minDistance)
+			{
+				minDistance = dist;
+				minDistanceElement = i;
+			}
+		}
+		return minDistanceElement;
+	}
+
     //--------------------------------------------------------------------------
     //
     //  Drop methods


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

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

 package mx.automation.delegates.controls
 {


[swc] Remove debug trace

[swc] Remove debug trace

--- lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
+++ lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
@@ -214,7 +214,6 @@
 			var newline:uint = data.indexOf("\n");
 			var buf:String = data.substring(newline);
 			var length:uint = parseInt(data.substring(0, newline), 10);
-			trace("Waiting for " + length + " bytes");

 			while(buf.length < length) {
 				avail = waitForData(stdout);


Transferred from the Adobe Open Source Subversion Repository

Revision: 88
Author:   open-source-svn-admin@adobe.com
Date:     2008-01-03T22:47:56.499469Z

Log Message:
-----------
Perforce Change 191925 by proberts@proberts-laptop-flex on 2008/01/03 16:47:12 Severity: ignore Details: doc additions/clean up for FlexNativeMenu. Also FLEXDOCS-320 (update documentation for FlexNativeMenuEvent.MENU_SHOW to explain that the index, label, and item properties are null) Affected files ...

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/air/air_version.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/NoChannelAvailableError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/DirectHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessagingError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidChannelError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXContext.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/Grammar.jj</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidDestinationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXResult.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractMessageStore.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Tree.as
+++ frameworks/projects/mx/src/mx/controls/Tree.as
@@ -36,6 +36,7 @@
 import mx.controls.listClasses.IDropInListItemRenderer;
 import mx.controls.listClasses.IListItemRenderer;
 import mx.controls.listClasses.ListRowInfo;
+import mx.controls.listClasses.ListBaseSelectionDataPending;
 import mx.controls.treeClasses.DefaultDataDescriptor;
 import mx.controls.treeClasses.HierarchicalCollectionView;
 import mx.controls.treeClasses.HierarchicalViewCursor;
@@ -556,6 +557,12 @@
      */
     private var lastTreeSeekPending:TreeSeekPending;

+	/**
+	 *  @private
+	 */
+	private var bFinishArrowKeySelection:Boolean = false;
+	private var proposedSelectedItem:Object;
+
     //--------------------------------------------------------------------------
     //
     //  Overridden properties
@@ -1882,7 +1889,16 @@
                     }

                     if (more)
-                        more = iterator.moveNext();
+					{
+						try
+						{
+							more = iterator.moveNext();
+						}
+						catch (e:ItemPendingError)
+						{
+							more = false;
+						}
+					}
                 }

                 //make indicator masks
@@ -2213,7 +2229,7 @@
     		var push:Boolean = true;
     		while (!cursor.afterLast)
     		{
-				rowsAdded.push(item);
+				rowsAdded.push(cursor.current);
     			cursor.moveNext();
     		}
     	}
@@ -2247,7 +2263,7 @@
     	{
     		ce = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);
     		ce.kind = CollectionEventKind.REMOVE;
-    		ce.location = itemIndex;
+    		ce.location = itemIndex + 1;
     		ce.items = rowsRemoved;
   			retVal.push(ce);
     	}
@@ -2306,6 +2322,9 @@
             i++;
         }
         while (cursor.moveNext());
+		// set back to 0 in case a change event comes along
+		// and causes the cursor to hit an unexpected IPE
+		cursor.seek(CursorBookmark.FIRST, 0);
         return i;
     }

@@ -2746,25 +2765,8 @@
             	var parentItem:Object = getParentItem(item);
             	if (parentItem)
             	{
-	                selectedItem = parentItem;
-	                evt = new ListEvent(ListEvent.CHANGE);
-	                evt.itemRenderer = indexToItemRenderer(selectedIndex);
-	                pt = itemRendererToIndices(evt.itemRenderer);
-	                if (pt)
-	                {
-	                	evt.rowIndex = pt.y;
-	                	evt.columnIndex = pt.x;
-	                }
-	                dispatchEvent(evt);
-	                var dI:int = getItemIndex(selectedItem);
-	                if (dI != caretIndex)
-	                {
-	                    caretIndex = selectedIndex;
-	                }
-	                if (dI < _verticalScrollPosition)
-	                {
-	                    verticalScrollPosition = dI;
-	                }
+					proposedSelectedItem = parentItem;
+					finishArrowKeySelection();
 	            }
             }
             event.stopImmediatePropagation();
@@ -2784,22 +2786,15 @@
                 		{
                 			var cursor:IViewCursor  = children.createCursor();
 							if (cursor.current)
-                				selectedItem = cursor.current;
+                				proposedSelectedItem = cursor.current;
                 		}
+						else
+							proposedSelectedItem = null;
                 	}
                 	else
-                		selectedItem = null;
-                    if (caretIndex != selectedIndex)
-                        caretIndex = getItemIndex(selectedItem);
-                    evt = new ListEvent(ListEvent.CHANGE);
-                    evt.itemRenderer = indexToItemRenderer(selectedIndex);
-                    pt = itemRendererToIndices(evt.itemRenderer);
-	                if (pt)
-	                {
-	                	evt.rowIndex = pt.y;
-	                	evt.columnIndex = pt.x;
-	                }
-	                dispatchEvent(evt);
+                		selectedItem = proposedSelectedItem = null;
+
+					finishArrowKeySelection();
                 }
                 else
                 {
@@ -2853,6 +2848,48 @@
             super.keyDownHandler(event);
         }
     }
+
+    /**
+     *  @private
+     *  finish up left/right arrow key handling
+     */
+    private function finishArrowKeySelection():void
+	{
+		bFinishArrowKeySelection = false;
+
+		if (proposedSelectedItem)
+			selectedItem = proposedSelectedItem;
+
+		// now test to see if it worked, if it didn't we probably
+		// got an IPE
+		if (selectedItem === proposedSelectedItem || !proposedSelectedItem)
+		{
+			var evt:ListEvent;
+			var pt:Point;
+			evt = new ListEvent(ListEvent.CHANGE);
+			evt.itemRenderer = indexToItemRenderer(selectedIndex);
+			pt = itemRendererToIndices(evt.itemRenderer);
+			if (pt)
+			{
+				evt.rowIndex = pt.y;
+				evt.columnIndex = pt.x;
+			}
+			dispatchEvent(evt);
+			var dI:int = getItemIndex(selectedItem);
+			if (dI != caretIndex)
+			{
+				caretIndex = selectedIndex;
+			}
+			if (dI < _verticalScrollPosition)
+			{
+				verticalScrollPosition = dI;
+			}
+		}
+		else
+		{
+			bFinishArrowKeySelection = true;
+		}
+	}

     /**
@@ -3382,6 +3419,17 @@
         }
     }

+    /**
+     *
+     */
+    override mx_internal function selectionDataPendingResultHandler(
+                                    data:Object,
+                                    info:ListBaseSelectionDataPending):void
+    {
+		super.selectionDataPendingResultHandler(data, info);
+		if (bFinishArrowKeySelection && selectedItem === proposedSelectedItem)
+			finishArrowKeySelection();
+	}
 }

 }


Updated sound effects AngelScript sample to use SetAutoRemoveMode() instead of nodes.

--- bin/Data/Scripts/14_SoundEffects.as
+++ bin/Data/Scripts/14_SoundEffects.as
@@ -17,10 +17,20 @@
     "Sounds/Powerup.wav"
 };

+SoundSource@ musicSource;
+
 void Start()
 {
     // Execute the common startup for samples
     SampleStart();
+
+    // Create a scene which will not be actually rendered, but is used to hold SoundSource components while they play sounds
+    scene_ = Scene();
+
+    // Create music sound source
+    @musicSource = scene_.CreateComponent("SoundSource");
+    // Set the sound type to music so that master volume control works correctly
+    musicSource.soundType = SOUND_MUSIC;

     // Enable OS cursor
     input.mouseVisible = true;
@@ -34,9 +44,6 @@

 void CreateUI()
 {
-    // Create a scene which will not be actually rendered, but is used to hold SoundSource components while they play sounds
-    scene_ = Scene();
-
     XMLFile@ uiStyle = cache.GetResource("XMLFile", "UI/DefaultStyle.xml");
     // Set style to the UI root so that elements will inherit it
     ui.root.defaultStyle = uiStyle;
@@ -115,44 +122,29 @@

     if (sound !is null)
     {
-        // Create a scene node with a SoundSource component for playing the sound. The SoundSource component plays
+        // Create a SoundSource component for playing the sound. The SoundSource component plays
         // non-positional audio, so its 3D position in the scene does not matter. For positional sounds the
         // SoundSource3D component would be used instead
-        Node@ soundNode = scene_.CreateChild("Sound");
-        SoundSource@ soundSource = soundNode.CreateComponent("SoundSource");
+        SoundSource@ soundSource = scene_.CreateComponent("SoundSource");
+        soundSource.autoRemoveMode = REMOVE_COMPONENT;
         soundSource.Play(sound);
         // In case we also play music, set the sound volume below maximum so that we don't clip the output
         soundSource.gain = 0.7f;
-
-        // Subscribe to the "sound finished" event generated by the SoundSource for removing the node once the sound has played
-        // Note: the event is sent through the Node (similar to e.g. node physics collision and animation trigger events)
-        // to not require subscribing to the particular component
-        SubscribeToEvent(soundNode, "SoundFinished", "HandleSoundFinished");
     }
 }

 void HandlePlayMusic(StringHash eventType, VariantMap& eventData)
 {
-    // Check if the music player node/component already exist
-    if (scene_.GetChild("Music") !is null)
-        return;
-
     Sound@ music = cache.GetResource("Sound", "Music/Ninja Gods.ogg");
     // Set the song to loop
     music.looped = true;

-    // Create a scene node and a sound source for the music
-    Node@ musicNode = scene_.CreateChild("Music");
-    SoundSource@ musicSource = musicNode.CreateComponent("SoundSource");
-    // Set the sound type to music so that master volume control works correctly
-    musicSource.soundType = SOUND_MUSIC;
     musicSource.Play(music);
 }

 void HandleStopMusic(StringHash eventType, VariantMap& eventData)
 {
-    // Remove the music player node from the scene
-    scene_.RemoveChild(scene_.GetChild("Music"));
+    musicSource.Stop();
 }

 void HandleSoundVolume(StringHash eventType, VariantMap& eventData)
@@ -167,12 +159,6 @@
     audio.masterGain[SOUND_MUSIC] = newVolume;
 }

-void HandleSoundFinished(StringHash eventType, VariantMap& eventData)
-{
-    Node@ soundNode = eventData["Node"].GetPtr();
-    soundNode.Remove();
-}
-
 // Create XML patch instructions for screen joystick layout specific to this sample app
 String patchInstructions =
         "<patch>" +


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

--- frameworks/projects/charts/src/mx/charts/series/items/LineSeriesSegment.as
+++ frameworks/projects/charts/src/mx/charts/series/items/LineSeriesSegment.as
@@ -0,0 +1,181 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.items
+{
+
+import mx.charts.series.LineSeries;
+
+/**
+ *  Represents the information required
+ *  to render a segment in a LineSeries.
+ *  The LineSeries class passes a LineSeriesSegment
+ *  to its lineRenderer when rendering.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class LineSeriesSegment
+{
+    include "../../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *	@param element The owning series.
+	 *
+	 *	@param index The index of the segment in the Array of segments
+	 *  representing the line series.
+	 *
+	 *	@param items The Array of LineSeriesItems
+	 *  representing the full line series.
+	 *
+	 *	@param start The index in the items Array
+	 *  of the first item in this segment.
+	 *
+	 *	@param end The index in the items Array
+	 *  of the last item in this segment, inclusive.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function LineSeriesSegment(element:LineSeries, index:uint,
+									  items:Array /* of LineSeriesItem */, start:uint, end:uint)
+	{
+		super();
+
+		this.element = element;
+		this.items = items;
+		this.index = index;
+		this.start = start;
+		this.end = end;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  element
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The series or element that owns this segment.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var element:LineSeries;
+
+    //----------------------------------
+	//  end
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The index into the items array of the last item
+	 *  in this segment, inclusive.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var end:uint;
+
+    //----------------------------------
+	//  index
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The index of this segment in the array of segments
+	 *  representing the line series.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var index:uint;
+
+    //----------------------------------
+	//  items
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The array of chartItems representing the full line series
+	 *  that owns this segment.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var items:Array /* of LineSeriesItem */;
+
+    //----------------------------------
+	//  start
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The index into the items array of the first item in this segment.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var start:uint;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Returns a copy of this segment.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function clone():LineSeriesSegment
+	{
+		return new LineSeriesSegment(element, index, items, start, end);
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20249
Author:   smgilson@adobe.com
Date:     2011-02-09T21:30:43.406312Z

Log Message:
-----------
ASdoc updates

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -616,6 +616,10 @@
    [Bindable("lengthChanged")]
     /**
      *  Returns the number of views being managed by the navigator.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get length():int
     {
@@ -1016,9 +1020,12 @@
      *  @param data The data object to pass to the view.
      *  This argument is written to the data property of the new view.
      *
-     *  @param context An arbitrary object used to describe the context
-     *         of the push.  When the new view is created, it can
-     *         reference this property.
+     *  @param context An arbitrary object written to
+     *  the ViewNavigator.context property.
+     *  When the new view is created, it can reference this property
+     *  and perform an action based on its value.
+     *  For example, the view could display data in different ways based
+     *  on the value of context.
      *
      *  @param transition The view transition to play while switching views.
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 17780
Author:   chiedozi@adobe.com
Date:     2010-09-21T07:04:53.589885Z

Log Message:
-----------
Refactored some of the ViewNavigator validation logic to occur at the end of the frame so that it can properly capture property changes for its children that occur during a validation pass.

QE notes:
Doc notes:
Bugs: SDK-27750,SDK-27823,SDK-27898
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/ViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -415,7 +415,10 @@
                     // changes when navigator isnt active
                     var view:View = navigationStack.topView.instance;
                     if (!view)
+                    {
                         view = createViewInstance(navigationStack.topView);
+                        view.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, view_propertyChangeHandler);
+                    }

                     view.active = true;

@@ -980,21 +983,12 @@
     protected function beginViewChange():void
     {
         viewChanging = true;
-
-        if (parentNavigator)
-        {
-            explicitMouseChildren = parentNavigator.mouseChildren;
-            explicitMouseEnabled = parentNavigator.mouseEnabled;
-            parentNavigator.mouseEnabled = false;
-            parentNavigator.mouseChildren = false;
-        }
-        else
-        {
-            explicitMouseChildren = mouseChildren;
-            explicitMouseEnabled = mouseEnabled;
-            mouseEnabled = false;
-            mouseChildren = false;
-        }
+
+        // TODO (chiedozi): Figure out a pattern for disabling parent navigator as well
+        explicitMouseChildren = mouseChildren;
+        explicitMouseEnabled = mouseEnabled;
+        mouseEnabled = false;
+        mouseChildren = false;
     }

     /**
@@ -1593,16 +1587,8 @@
         // Restore mouse children properties before revalidation occurs.  This
         // needs to occur before a possible revalidation occurs so that the
         // saved mouseChildren and mouseEnabled flags aren't overwritten.
-        if (parentNavigator)
-        {
-            parentNavigator.mouseChildren = explicitMouseChildren;
-            parentNavigator.mouseEnabled = explicitMouseEnabled;
-        }
-        else
-        {
-            mouseChildren = explicitMouseChildren;
-            mouseEnabled = explicitMouseEnabled;
-        }
+        mouseChildren = explicitMouseChildren;
+        mouseEnabled = explicitMouseEnabled;

         if (revalidateWhenComplete)
         {
@@ -1660,10 +1646,14 @@
         {
             createViewInstance(pendingViewData);

-            // Put this before viewAdded() so that another validation pass can run
-            // if needed during viewAdded
             viewChangeRequested = false;
-            viewAdded(transitionsEnabled ? pendingViewTransition : null);
+
+            // Schedule the view added method to occur at a later time so to allow developers
+            // to take advantage of validation lifecycle events, such as CREATION_COMPLETE,
+            // to update properties and states on the view.  If this wasn't done, it would be
+            // possible to lose invalidation calls since ViewNavigator is still in its
+            // commitProperties call.
+            callLater(viewAdded, [(transitionsEnabled ? pendingViewTransition : null)]);
         }
         else
         {
@@ -1732,13 +1722,7 @@
             (!landscapeOrientation && view.hasState("portrait")))
         {
             view.setCurrentState(view.getCurrentViewState(landscapeOrientation), false);
-
-            // Force a validation properties pass on the view so that all state
-            // specific properties are enabled
-            view.validateProperties();
-        }
-
-        view.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, view_propertyChangeHandler);
+        }

         // TODO (chiedozi): Need to think about how to handle the multiple
         // pop use case.  The wrong view will get the return value.  Is that okay?
@@ -1814,7 +1798,11 @@

         // Store new view
         if (pendingViewData)
+        {
             pendingView = pendingViewData.instance;
+            pendingView.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
+                            view_propertyChangeHandler);
+        }

         if (transition)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7918
Author:   chaase@adobe.com
Date:     2009-06-17T16:55:30.271215Z

Log Message:
-----------
Round 2 of effects PARB changes. Some renames and removals of properties/functions, including:
AnimateTransform: removed 18 MotionPath properties, added applyChangesPostLayout property (replaces affectLayout property in subclasses), removed addMotionPath/addPostLayoutMotionPath protected functions
Animation: removed seek(), reverse()
SimpleMotionPath: removed 'duration' arg in constructor

QE Notes: Mustella will break on some of these changes (no surprise, just needs minor updates)
Doc Notes: API updates
Bugs: none
Reviewer: Jason
Tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move3D.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/Rotate.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/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/FadeInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/FadeInstance.as
@@ -19,6 +19,7 @@

 import spark.components.Group;
 import spark.effects.animation.Animation;
+import spark.effects.animation.Keyframe;
 import spark.effects.animation.MotionPath;
 import spark.effects.animation.SimpleMotionPath;
 import spark.primitives.supportClasses.GraphicElement;
@@ -90,7 +91,7 @@
     public var alphaFrom:Number;

     //----------------------------------
-    //  alphaFrom
+    //  alphaTo
     //----------------------------------

     /**
@@ -203,9 +204,10 @@
         {
             makeInvisible = true;
         }
-
-        motionPaths = new <MotionPath>[
-            new SimpleMotionPath("alpha",alphaFrom, alphaTo, duration)];
+
+        motionPaths = new <MotionPath>[new MotionPath("alpha")];
+        motionPaths[0].keyframes = new <Keyframe>[new Keyframe(0, alphaFrom),
+            new Keyframe(duration, alphaTo)];

         super.play();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12831
Author:   jon.avila@ssbbartgroup.com
Date:     2009-12-11T03:08:54.183761Z

Log Message:
-----------
Updated state information to cover displayAsPasword as this AccImpl covers TextInput, TextArea, and RichEditableText.
QE notes: none
Doc notes: none
Bugs: n/a
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/RichEditableTextAccImpl.as

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

--- frameworks/projects/spark/src/spark/accessibility/RichEditableTextAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/RichEditableTextAccImpl.as
@@ -243,6 +243,8 @@
         var accState:uint = getState(childID);
         if (!RichEditableText(master).editable)
             accState |= AccConst.STATE_SYSTEM_READONLY;
+        if (RichEditableText(master).displayAsPassword)
+            accState |= AccConst.STATE_SYSTEM_PROTECTED;
         return accState;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19202
Author:   smgilson@adobe.com
Date:     2010-12-09T14:06:10.040620Z

Log Message:
-----------
ASDoc updates based on comments from the localization team

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchInteractionEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
@@ -48,8 +48,8 @@
  *  initialized.

  *
  *
Unlike Application, ViewNavigatorApplication is not meant to accept
- *  UIComponents has children.  Instead, all visual components should
- *  children of the various views managed by the application.

+ *  UIComponent objects as children.  Instead, all visual components should
+ *  be children of the various views managed by the application.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1


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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/SWFLoaderAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/SWFLoaderAutomationImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 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: 23014
Author:   aaltman@adobe.com
Date:     2011-10-15T00:25:17.948727Z

Log Message:
-----------
If there is a modal window open, assume that it overlaps everything when determining whether to leave StageTexts interactive

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -1971,6 +1971,23 @@
         if (!localViewPort || !parent || !stageText || !awm)
             return false;

+        // Prevent the StageText from becoming interactive if there is a modal
+        // window open by assuming that the modal window overlaps everything.
+        // If the StageText is part of the topmost popup, we won't get here, so
+        // those StageTexts will remain interactive (as designed).
+        // If a StageText is part of some other popup or the application root
+        // and there is at least one modal open, the StageText will be replaced
+        // by a bitmap.
+        // This is the best we can do as far as modal popups is concerned. The
+        // association between popup and modality is private to PopUpManager, so
+        // all we can do is determine if there are any modal windows open. We
+        // can't associate a given modal window with a given popup.
+        // This means that, if somebody opens a modal popup and then opens a
+        // modeless popup on top of that, only the StageTexts in the topmost
+        // of the two popups will remain interactive.
+        if (awm.numModalWindows > 0)
+            return true;
+
         var globalRect:Rectangle = getGlobalViewPort();
         var result:Boolean = false;


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

--- frameworks/projects/advancedgrids/src/mx/controls/olapDataGridClasses/OLAPDataGridHeaderRenderer.as
+++ frameworks/projects/advancedgrids/src/mx/controls/olapDataGridClasses/OLAPDataGridHeaderRenderer.as
@@ -0,0 +1,461 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.controls.olapDataGridClasses
+{
+import flash.display.DisplayObject;
+import flash.display.Graphics;
+
+import mx.controls.OLAPDataGrid;
+import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
+import mx.controls.advancedDataGridClasses.AdvancedDataGridListData;
+import mx.controls.listClasses.BaseListData;
+import mx.controls.listClasses.IDropInListItemRenderer;
+import mx.controls.listClasses.IListItemRenderer;
+import mx.core.Container;
+import mx.core.IDataRenderer;
+import mx.core.IFactory;
+import mx.core.IUIComponent;
+import mx.events.FlexEvent;
+import mx.olap.IOLAPElement;
+import mx.styles.ISimpleStyleClient;
+
+/**
+ *  The OLAPDataGridHeaderRenderer is a container which contains
+ *  one header for each row of on the column axis. This header describes
+ *  the name of the hierarchy to which a particular member belongs.
+ *
+ *  Because of the limitation that a valid column grouping should be in a tree
+ *  form, a fake top level column is created to give the required functionality of
+ *  column axis headers to OLAPDataGrid
+ *
+ *  @see mx.controls.OLAPDataGrid
+ *  @see mx.controls.olapDataGridClasses.OLAPDataGridHeaderRendererProvider
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+
+/**
+ *  @private
+ */
+public class OLAPDataGridHeaderRenderer extends Container
+       implements IDataRenderer, IDropInListItemRenderer, IListItemRenderer
+{
+	include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function OLAPDataGridHeaderRenderer()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var listOwner:OLAPDataGrid;
+
+    private var factoriesChanged:Boolean = false;
+
+    private var dataProviderChanged:Boolean = false;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overriden Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  data
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the data property.
+     */
+    private var _data:Object;
+
+    [Bindable("dataChange")]
+
+    /**
+     *  The implementation of the data property as
+     *  defined by the IDataRenderer interface.
+     *
+     *  @see mx.core.IDataRenderer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function get data():Object
+    {
+        return _data;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set data(value:Object):void
+    {
+        _data = value;
+
+        invalidateProperties();
+
+        dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
+    }
+
+    //----------------------------------
+    //  horizontalScrollPolicy
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function set horizontalScrollPolicy(value:String):void
+    {
+        super.horizontalScrollPolicy = "off";
+    }
+
+    //----------------------------------
+    //  verticalScrollPolicy
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function set verticalScrollPolicy(value:String):void
+    {
+        super.verticalScrollPolicy = "off";
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  listData
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the listData property.
+     */
+    private var _listData:AdvancedDataGridListData;
+
+    [Bindable("dataChange")]
+
+    /**
+     *  The implementation of the listData property as
+     *  defined by the IDropInListItemRenderer interface.
+     *
+     *  @see mx.controls.listClasses.IDropInListItemRenderer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get listData():BaseListData
+    {
+        return _listData;
+    }
+
+    /**
+     *  @private
+     */
+    public function set listData(value:BaseListData):void
+    {
+        _listData = AdvancedDataGridListData(value);
+
+        invalidateProperties();
+    }
+
+
+
+    //----------------------------------
+    //  factories
+    //----------------------------------
+
+    private var _factories:Array /* of IFactory */;
+
+    /**
+     *  @private
+     */
+    public function get factories():Array /* of IFactory */
+    {
+        return _factories;
+    }
+
+    /**
+     *  @private
+     */
+    public function set factories(value:Array /* of IFactory */):void
+    {
+        if(checkIfChanged(_factories, value))
+        {
+            _factories = value;
+            factoriesChanged = true;
+            invalidateProperties();
+        }
+    }
+
+    //----------------------------------
+    //  dataProvider
+    //----------------------------------
+
+    private var _dataProvider:Array /* of IOLAPHierarchy */;
+
+    /**
+     *  @private
+     */
+    public function get dataProvider():Array /* of IOLAPHierarchy */
+    {
+        return _dataProvider;
+    }
+
+    /**
+     *  @private
+     */
+    public function set dataProvider(value:Array /* of IOLAPHierarchy */):void
+    {
+        if(checkIfChanged(_dataProvider, value))
+        {
+            _dataProvider = value;
+            dataProviderChanged = true;
+            invalidateProperties();
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overriden Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        if ((factoriesChanged || dataProviderChanged) && factories && dataProvider)
+        {
+            factoriesChanged = dataProviderChanged = false;
+
+            //Remove the children if there are any already added
+            while(this.numChildren)
+                this.removeChildAt(0);
+
+            var n:int = factories.length;
+            for (var i:int = 0; i < n; i++)
+            {
+                var factory:IFactory = factories[i];
+                var r:IListItemRenderer = factory.newInstance();
+
+                if (r is IDropInListItemRenderer)
+                {
+                    var c:AdvancedDataGridColumn;
+                    if(data is AdvancedDataGridColumn)
+                        c = AdvancedDataGridColumn(data);
+                    else
+                        c = null;
+
+                    IDropInListItemRenderer(r).listData =  makeListData(this.dataProvider[i],
+                                                                        _listData.uid,
+                                                                        _listData.rowIndex,
+                                                                        _listData.columnIndex,
+                                                                        c);
+                }
+
+                r.data = this.data;
+                this.addChild(DisplayObject(r));
+            }
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function setStyle(styleProp:String, newValue:*):void
+    {
+        super.setStyle(styleProp, newValue);
+
+        if (styleProp == "axisHeaderStyleName")
+        {
+            //Need to propagate the style value to all the child headers
+            for ( var i:int = 0; i < this.numChildren; i++)
+            {
+                var child:DisplayObject = DisplayObject(this.getChildAt(i));
+
+                if(child is ISimpleStyleClient)
+                    ISimpleStyleClient(child).styleName = newValue;
+            }
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function measure():void
+    {
+        super.measure();
+
+        var w:Number = 0;
+
+        var h:Number = 0;
+
+        for ( var i:int = 0; i < factories.length; i++)
+        {
+            var child:IUIComponent = IUIComponent(this.getChildAt(i));
+            h = Math.max(h, child.getExplicitOrMeasuredHeight());
+            w += child.getExplicitOrMeasuredWidth()+5;
+        }
+
+        if (!isNaN(explicitWidth))
+            w = explicitWidth;
+
+        measuredWidth = w;
+        measuredHeight = h;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        var startx:Number = 0;
+        var g:Graphics = this.graphics;
+        g.clear();
+
+        var color:uint = getStyle("verticalGridLineColor");
+        g.lineStyle(1, color, 100);
+
+        var n:int = factories.length;
+        for ( var i:int = 0; i < n; i++)
+        {
+            var child:IUIComponent = IUIComponent(this.getChildAt(i));
+            child.move(startx, 0);
+
+            var w:Number = (child.getExplicitOrMeasuredWidth());
+            child.setActualSize(w, child.getExplicitOrMeasuredHeight());
+
+            startx += w;
+
+            g.moveTo(startx, -5);
+            g.lineTo(startx, unscaledHeight);
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Creates a new AdvancedDataGridListData instance and populates the fields based on
+     *  the input data provider item (In case of OLAPDataGrid it is an IOLAPHierarhcy).
+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function makeListData(data:Object, uid:String,
+                                             rowNum:int, columnNum:int, column:AdvancedDataGridColumn):BaseListData
+    {
+        var text:String = "";
+        //data here is an IOLAPAttribute
+        if (data is IOLAPElement)
+            text = data.name
+
+        return new AdvancedDataGridListData(text, column ? column.dataField : "", columnNum,
+                                            uid, _listData.owner, rowNum);
+    }
+
+    /**
+     *  @private
+     */
+    private function checkIfChanged(a:Array /* of Object */, b:Array /* of Object */):Boolean
+    {
+        var mismatch:Boolean = false;
+        if(!a)
+        {
+            mismatch = true;
+        }
+        else if(b && b.length)
+        {
+            if(b.length != a.length)
+            {
+                mismatch = true;
+            }
+            else
+            {
+                for (var i:int = 0; i < b.length && i < a.length; i++)
+                {
+                    if(a[i] != b[i])
+                        mismatch = true;
+                }
+            }
+        }
+        return mismatch;
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 22675
Author:   chiedozi@adobe.com
Date:     2011-09-21T22:27:20.561972Z

Log Message:
-----------
Reverting 4y 22592 as the change didn't have the expected results.

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -21,7 +21,6 @@
 import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
 import flash.events.SoftKeyboardEvent;
-import flash.geom.Matrix;
 import flash.geom.Point;
 import flash.geom.Rectangle;
 import flash.system.Capabilities;
@@ -53,7 +52,6 @@
 import mx.managers.FocusManager;
 import mx.managers.SystemManager;
 import mx.managers.systemClasses.ActiveWindowManager;
-import mx.utils.MatrixUtil;

 import spark.components.Application;
 import spark.core.IEditableText;
@@ -1865,16 +1863,12 @@
         {
             if (stageText.stage)
             {
-                // We calculate the parent's concatenated matrix to deal with
-                // issues in the runtime where the concatenated matrix of the
-                // parent is out of sync.  See SDK-31538.
-                var m:Matrix = MatrixUtil.getConcatenatedMatrix(parent, stage);
-                var globalTopLeft:Point = m.transformPoint(localViewPort.topLeft);
+                var globalTopLeft:Point = parent.localToGlobal(localViewPort.topLeft);

                 // Transform the bottom-right corner of the local rect
                 // instead of setting width/height to account for any
                 // transformations applied to ancestor objects.
-                var globalBottomRight:Point = m.transformPoint(localViewPort.bottomRight);
+                var globalBottomRight:Point = parent.localToGlobal(localViewPort.bottomRight);
                 var globalRect:Rectangle = new Rectangle();

                 // StageText can't deal with upside-down or mirrored rectangles


Transferred from the Adobe Open Source Subversion Repository

Revision: 17352
Author:   gruehle@adobe.com
Date:     2010-08-17T18:21:58.554592Z

Log Message:
-----------
More mobile text implementation:
* Add "enter" event support to MobileTextField
* Use TextInput border for TextArea skin (this is a placeholder for now, but looks better than the old hand-drawn code).
* Fix vertical sizing issues in TextAreaSkin
* Update focus styles

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -12,10 +12,12 @@
 package spark.components.supportClasses
 {
 import flash.events.Event;
+import flash.events.KeyboardEvent;
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.text.TextFormat;
 import flash.text.TextFormatAlign;
+import flash.ui.Keyboard;

 import mx.core.mx_internal;
 import mx.events.FlexEvent;
@@ -87,6 +89,9 @@
         // Add a high priority change handler so we can capture the event
         // and re-dispatch as a TextOperationEvent
         addEventListener(Event.CHANGE, changeHandler, false, 100);
+
+        // Add a key down listener to listen for enter key
+        addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
     }

     //--------------------------------------------------------------------------
@@ -594,6 +599,21 @@
         }
     }

+    /**
+     *  @private
+     */
+    private function keyDownHandler(event:KeyboardEvent):void
+    {
+        if (event.isDefaultPrevented())
+            return;
+
+        // Dispatch an "enter" event
+        if (event.keyCode == Keyboard.ENTER)
+        {
+            dispatchEvent(new FlexEvent(FlexEvent.ENTER));
+        }
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Variables


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/skins/halo/HaloFocusRect.as
+++ frameworks/projects/framework/src/mx/skins/halo/HaloFocusRect.as
@@ -20,6 +20,11 @@

 /**
  *  Defines the skin for the focus indicator. This is the rectangle that appears around a control when it has focus.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class HaloFocusRect extends ProgrammaticSkin implements IStyleClient
 {
@@ -33,6 +38,11 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function HaloFocusRect()
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 17027
Author:   tkraikit@adobe.com
Date:     2010-07-22T23:15:25.379198Z

Log Message:
-----------
Fix for bug 25314: NumericStepper not handling numbers with comma grouping (e.g. "10,500.25") due to use of Number() to parse the text input. Changed to use flash.globalization.NumberFormatter.parseNumber()

QE notes: this test not currently being checked in mustella
Doc notes: -
Bugs: SDK-25314
Reviewer: klin
Tests run: checkintests, mustella
Is noteworthy for integration: -

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/NumericStepper.as

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -16,9 +16,11 @@
 import flash.events.Event;
 import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
-
+import flash.globalization.LocaleID;
+import flash.globalization.NumberFormatter;
+
+import mx.core.IIMESupport;
 import mx.core.mx_internal;
-import mx.core.IIMESupport;
 import mx.events.FlexEvent;
 import mx.managers.IFocusManagerComponent;

@@ -293,6 +295,17 @@

     //--------------------------------------------------------------------------
     //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var dataFormatter:NumberFormatter;
+
+    //--------------------------------------------------------------------------
+    //
     //  Overridden properties: UIComponent
     //
     //--------------------------------------------------------------------------
@@ -748,9 +761,16 @@
         var prevValue:Number = value;

         if (valueParseFunction != null)
+        {
             inputValue = valueParseFunction(textDisplay.text);
+        }
         else
-            inputValue = Number(textDisplay.text);
+        {
+            if (dataFormatter == null)
+                dataFormatter = new NumberFormatter(LocaleID.DEFAULT);
+
+            inputValue = dataFormatter.parseNumber(textDisplay.text);
+        }

         if ((textDisplay.text && textDisplay.text.length != value.toString().length)
             || textDisplay.text == "" || (inputValue != value &&


basic nested describe() support test

basic nested describe() support test

--- src/TestAS3Spec.as
+++ src/TestAS3Spec.as
@@ -90,6 +90,15 @@
 				{
 					so(23).should.equal(15);
 				});
+
+
+				describe ('with a nested describe() block', function () :void
+				{
+					it ('should succeed', function () :void
+					{
+						so(true).should.equal(true);
+					});
+				});
 			});

 			describe ('describe()', 'with', 'arbitrary', 'arguments', function () :void