Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as
@@ -25,7 +25,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  *
  */
 public class DateSpinnerSkin extends MobileSkin
@@ -40,7 +40,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function DateSpinnerSkin()
     {
@@ -58,7 +58,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public var dateItemList:IFactory;

@@ -67,7 +67,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public var listContainer:IVisualElementContainer;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12327
Author:   smgilson@adobe.com
Date:     2009-12-01T18:17:23.194369Z

Log Message:
-----------
ASDoc updates in preparation for localization

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -34,6 +34,8 @@

 /**
  *  The alpha of the border for this component.
+ *
+ *  @default 0.5
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -44,6 +46,8 @@

 /**
  *  The color of the border for this component.
+ *
+ *  @default 0x000000
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -54,6 +58,8 @@

 /**
  *  Controls the visibility of the border for this component.
+ *
+ *  @default true
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -64,6 +70,8 @@

 /**
  *  The alpha of the content background for this component.
+ *
+ *  @default 1
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -74,6 +82,8 @@

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:contentBackgroundColor
+ *
+ *  @default 0xFFFFFF
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -155,10 +165,14 @@
 *    alignmentBaseline="USE_DOMINANT_BASELINE"
 *    baselineShift="0.0"
 *    blockProgression="TB"
+*    borderAlpha="0.5"
+*    borderColor="0x000000"
+*    borderVisible="true"
 *    breakOpportunity="AUTO"
 *    cffHinting="HORIZONTAL_STEM"
 *    color="0"
-*    contentBackgroundColor=""
+*    contentBackgroundAlpha="1.0"
+*    contentBackgroundColor="0xFFFFFF"
 *    digitCase="DEFAULT"
 *    digitWidth="DEFAULT"
 *    direction="LTR"
@@ -426,7 +440,7 @@
     /**
      *  @private
      */
-	private var valueFormatFunctionChanged:Boolean;
+    private var valueFormatFunctionChanged:Boolean;

     /**
      *  Callback function that formats the value displayed
@@ -473,7 +487,7 @@
     /**
      *  @private
      */
-	private var valueParseFunctionChanged:Boolean;
+    private var valueParseFunctionChanged:Boolean;

     /**
      *  Callback function that extracts the numeric


Transferred from the Adobe Open Source Subversion Repository

Revision: 8487
Author:   smgilson@adobe.com
Date:     2009-07-09T18:57:21.985536Z

Log Message:
-----------
final checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as
+++ frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as
@@ -37,7 +37,7 @@
 * turned off if the resulting image exceeds maximum dimensions.

 *
 *  @mxml
-*
The <ConvolutionFilter> tag inherits all of the tag
+*
The <s:ConvolutionFilter> tag inherits all of the tag
 *  attributes of its superclass and adds the following tag attributes:

 *
 *


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 10002
Author:   jszeto@adobe.com
Date:     2009-09-03T20:17:09.808992Z

Log Message:
-----------
Gradient matrix transform fix

http://bugs.adobe.com/jira/browse/SDK-22928 - Gradient matrix transform applying incorrect transforms

Previously, the logic transformed the gradient to fill the shape bounds and then combined the matrix transform. Now using the same values for the discreet transform properties versus the matrix properties should result in the same appearance.

These changes are applied to LinearGradient, RadialGradient, LinearGradientStroke and RadialGradientStroke.

QE notes: Matrix transform behavior has changed
Doc notes: Need info on matrix behavior
Bugs: SDK-22928
Reviewer: Glenn
Tests run: spark/primitives
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradient.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/RadialGradient.as
+++ frameworks/projects/framework/src/mx/graphics/RadialGradient.as
@@ -333,9 +333,9 @@
 		}
 	 	else
 	 	{
-	 		commonMatrix.scale (bounds.width / GRADIENT_DIMENSION, bounds.height / GRADIENT_DIMENSION);
-	 		commonMatrix.translate(bounds.left, bounds.top);
-	 		commonMatrix.concat(compoundTransform.matrix);
+            commonMatrix.scale(1 / GRADIENT_DIMENSION, 1 / GRADIENT_DIMENSION);
+            commonMatrix.concat(compoundTransform.matrix);
+            commonMatrix.translate(bounds.left, bounds.top);
 	 	}

         target.beginGradientFill(GradientType.RADIAL, colors, alphas, ratios,


set cart as enabled in script.

set cart as enabled in script.


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

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

--- frameworks/projects/framework/src/mx/styles/ISimpleStyleClient.as
+++ frameworks/projects/framework/src/mx/styles/ISimpleStyleClient.as
@@ -0,0 +1,71 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.styles
+{
+
+/**
+ *  This interface describes the properties and methods that an object
+ *  must implement so that it can participate in the style subsystem.
+ *  This interface is intended to be used by classes that obtain their
+ *  style values from other objects rather than through locally set values
+ *  and type selectors.
+ *  This interface is implemented by ProgrammaticSkin.
+ *
+ *  @see mx.styles.IStyleClient
+ *  @see mx.styles.CSSStyleDeclaration
+ */
+public interface ISimpleStyleClient
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  styleName
+    //----------------------------------
+
+    /**
+     *  The source of this object's style values.
+     *  The value of the styleName property can be one of three possible types:
+     *
+     *

+     *
String, such as "headerStyle". The String names a class selector that is defined in a CSS style sheet.

+     *
+     *
CSSStyleDeclaration, such as StyleManager.getStyleDeclaration(".headerStyle").

+     *
+     *
UIComponent. The object that implements this interface inherits all the style values from the referenced UIComponent.

+     *

+     */
+    function get styleName():Object
+
+    /**
+     *  @private
+     */
+    function set styleName(value:Object):void
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Called when the value of a style property is changed.
+     *
+     *  @param styleProp The name of the style property that changed.
+     */
+    function styleChanged(styleProp:String):void;
+}
+
+}


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

--- frameworks/projects/mx/src/mx/accessibility/DateChooserAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/DateChooserAccImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2006 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: 7774
Author:   jszeto@adobe.com
Date:     2009-06-12T00:38:51.011501Z

Log Message:
-----------
GradientGlowFilter bug fix for default type

http://bugs.adobe.com/jira/browse/SDK-21734 - GradientGlowFilter type should default to “outer”

The constructor was calling the super constructor at the end, which caused the class variables to get reset to the parent class backing variable default values. In the process, I also noticed that the filter classes weren’t calling super() in their constructors, so I fixed that issue as well.

QE Notes: None
Doc Notes: None
Bugs: SDK-21734
Reviewer: Glenn

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

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

--- frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as
+++ frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as
@@ -113,6 +113,8 @@
 									   quality:int = 1, type:String = "outer",
 									   knockout:Boolean = false)
 	{
+		super(colors, alphas, ratios);
+
 		this.distance = distance;
 		this.angle = angle;
 		this.blurX = blurX;
@@ -121,8 +123,6 @@
 		this.quality = quality;
 		this.type = type;
 		this.knockout = knockout;
-
-		super(colors, alphas, ratios);
 	}

 	/**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22646
Author:   mhorn@adobe.com
Date:     2011-09-20T14:43:51.831864Z

Log Message:
-----------
asdoc updates

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as
@@ -34,6 +34,13 @@
  */
 public class SpinnerListSkin extends MobileSkin
 {
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.6
+     */
     public function SpinnerListSkin()
     {
         super();


FLEX-33655 softKeyboardRect is in the internal names space so in doesn't work

--- frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
@@ -1171,8 +1171,12 @@
         uninstallActiveResizeListener();

         var softKeyboardRect:Rectangle;
-		if ("softKeyboardRect" in FlexGlobals.topLevelApplication)
+		try {
 			softKeyboardRect = FlexGlobals.topLevelApplication.softKeyboardRect;
+		}
+		catch (error:Error) {
+			softKeyboardRect = null;
+		}

 		var isKeyboardOpen:Boolean = isOpen && softKeyboardRect && (softKeyboardRect.height > 0);


Transferred from the Adobe Open Source Subversion Repository

Revision: 22141
Author:   jasonsj@adobe.com
Date:     2011-08-22T22:59:31.642122Z

Log Message:
-----------
PARB approved change positionPopUp() to updatePopUpPosition(). Also changed from protected to public for SDK-31190.
Initial implementation of SoftKeyboardPopUpTransition for SkinnablePopUpContainer and Callout.

QE notes:
Doc notes:
Bugs:
SDK-31190 Callout does not reposition when the owner's bounds change
SDK-30880 Application is not resized when soft keyboard is activated in a pop up
Reviewer: tkraikit
Tests run: checkintests, mustella, mustella-mobile cyclones
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/transitions/SoftKeyboardPopUpTransition.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/transitions</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
@@ -14,11 +14,13 @@
 import flash.display.DisplayObjectContainer;
 import flash.events.Event;

+import mx.core.FlexGlobals;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.managers.PopUpManager;

 import spark.events.PopUpEvent;
+import spark.transitions.SoftKeyboardPopUpTransition;

 use namespace mx_internal;

@@ -157,6 +159,12 @@
     public function SkinnablePopUpContainer()
     {
         super();
+
+        var topLevelApp:Application = FlexGlobals.topLevelApplication as Application;
+        var softKeyboardEnabled:Boolean = (topLevelApp && Application.softKeyboardBehavior == "none");
+
+        if (softKeyboardEnabled)
+            _popUpTransition = new SoftKeyboardPopUpTransition();
     }

     //--------------------------------------------------------------------------
@@ -185,6 +193,27 @@
     //  Properties
     //
     //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var _popUpTransition:SoftKeyboardPopUpTransition;
+
+    /**
+     *  Read-only access to the SoftKeyboardPopUpTransition.
+     *
+     *  @default A SoftKeyboardPopUpTransition instance when
+     *           Application.softKeyboardBehavior="none", otherwise null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 11
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    protected function get popUpTransition():SoftKeyboardPopUpTransition
+    {
+        return _popUpTransition;
+    }

     //----------------------------------
     //  isOpen
@@ -226,6 +255,87 @@
         // NOTE: DesignView relies on this API, consult tooling before making changes.
         _isOpen = value;
         invalidateSkinState();
+    }
+
+    //----------------------------------
+    //  resizeForSoftKeyboard
+    //----------------------------------
+
+    private var _resizeForSoftKeyboard:Boolean = true;
+
+    /**
+     *  @copy spark.transitions.SoftKeyboardPopUpTransition#resizeForSoftKeyboard
+     */
+    public function get resizeForSoftKeyboard():Boolean
+    {
+        if (!popUpTransition)
+            return false;
+
+        return popUpTransition.resizeForSoftKeyboard;
+    }
+
+    /**
+     *  @private
+     */
+    public function set resizeForSoftKeyboard(value:Boolean):void
+    {
+        if (!popUpTransition)
+            return;
+
+        popUpTransition.resizeForSoftKeyboard = value;
+    }
+
+    //----------------------------------
+    //  moveForSoftKeyboard
+    //----------------------------------
+
+    private var _moveForSoftKeyboard:Boolean = true;
+
+    /**
+     *  @copy spark.transitions.SoftKeyboardPopUpTransition#moveForSoftKeyboard
+     */
+    public function get moveForSoftKeyboard():Boolean
+    {
+        if (!popUpTransition)
+            return false;
+
+        return popUpTransition.moveForSoftKeyboard;
+    }
+
+    /**
+     *  @private
+     */
+    public function set moveForSoftKeyboard(value:Boolean):void
+    {
+        if (!popUpTransition)
+            return;
+
+        popUpTransition.moveForSoftKeyboard = value;
+    }
+
+    //----------------------------------
+    //  resizeApplication
+    //----------------------------------
+
+    private var _resizeApplication:Boolean = false;
+
+    /**
+     *  @copy spark.transitions.SoftKeyboardPopUpTransition#resizeApplication
+     */
+    public function get resizeApplication():Boolean
+    {
+        if (!popUpTransition)
+            return false;
+
+        return popUpTransition.resizeApplication;
+    }
+
+    /**
+     *  @private
+     */
+    public function set resizeApplication(value:Boolean):void
+    {
+        popUpTransition.resizeApplication = value;
     }

     //--------------------------------------------------------------------------
@@ -270,11 +380,15 @@
         if (!addedToPopUpManager)
         {
             addedToPopUpManager = true;
+
+            // install transition
+            if (popUpTransition)
+                popUpTransition.popUp = this;

             // This will create the skin and attach it
             PopUpManager.addPopUp(this, owner, modal);

-            positionPopUp();
+            updatePopUpPosition();
         }

         // Change state *after* we pop up, as the skin needs to go be in the initial "closed"
@@ -288,14 +402,20 @@
     }

     /**
-     *  Positions the popUp after the popUp is added to PopUpManager but before any
-     *  state transitions occur.
+     *  Positions the pop-up after the pop-up is added to PopUpManager but
+     *  before any state transitions occur. The base implementation of open()
+     *  calls updatePopUpPosition() immediately after the pop-up is added.
+     *
+     *  This method may also be called at any time to update the pop-up's
+     *  position. Pop-ups that are positioned relative to their owner should
+     *  call this method after position or size changes occur on the owner or
+     *  it's ancestors.
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
      *  @productversion Flex 4.5.2
      */
-    protected function positionPopUp():void
+    public function updatePopUpPosition():void
     {
         // subclasses will implement custom positioning
         // e.g. PopUpManager.centerPopUp()
@@ -396,6 +516,10 @@
         }
         else
         {
+            // uninstall transition
+            if (popUpTransition)
+                popUpTransition.popUp = null;
+
             // Dispatch the close event before removing from the PopUpManager.
             dispatchEvent(closeEvent);
             closeEvent = null;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8271
Author:   dsubrama@adobe.com
Date:     2009-06-25T23:25:28.723385Z

Log Message:
-----------
Change the event type of List-based component's change, changing and caretChange events to a new event class: spark.events.IndexChangeEvent.

QA: Yes
Doc: Yes
Checkintests: Pass
Mustella: List/DDL/ButtonBar tests pass
Reviewers: Hans & Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/DropDownListExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/ListExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/IndexChangeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/ButtonBarExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/IndexChangedEvent.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -13,10 +13,11 @@
 {
 import flash.events.Event;

-import spark.events.RendererExistenceEvent;
 import spark.components.SkinnableDataContainer;
 import spark.components.IItemRendererOwner;
 import spark.components.IItemRenderer;
+import spark.events.IndexChangeEvent;
+import spark.events.RendererExistenceEvent;
 import spark.layouts.supportClasses.LayoutBase;
 import spark.utils.LabelUtil;

@@ -24,8 +25,7 @@
 import mx.core.IVisualElement;
 import mx.core.mx_internal;
 import mx.core.UIComponent;
-import mx.events.FlexEvent;
-import mx.events.IndexChangedEvent;
+import mx.events.FlexEvent;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;

@@ -36,38 +36,38 @@
  *  Calling the preventDefault() method
  *  on the event prevents the selection from changing.
  *
- *  @eventType mx.events.IndexChangedEvent.CHANGING
+ *  @eventType spark.events.IndexChangeEvent.CHANGING
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="changing", type="mx.events.IndexChangedEvent")]
+[Event(name="changing", type="spark.events.IndexChangeEvent")]

 /**
  *  Dispatched after the selection has changed.
  *
- *  @eventType mx.events.IndexChangedEvent.CHANGE
+ *  @eventType spark.events.IndexChangeEvent.CHANGE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="change", type="mx.events.IndexChangedEvent")]
+[Event(name="change", type="spark.events.IndexChangeEvent")]

 /**
  *  Dispatched after the focus has changed.
  *
- *  @eventType mx.events.IndexChangedEvent.CARET_CHANGE
+ *  @eventType spark.events.IndexChangeEvent.CARET_CHANGE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="caretChange", type="mx.events.IndexChangedEvent")]
+[Event(name="caretChange", type="spark.events.IndexChangeEvent")]

 /**
  *  The ListBase class is the base class for all components that support
@@ -631,7 +631,7 @@
      */
     override protected function commitProperties():void
     {
-        var e:IndexChangedEvent;
+        var e:IndexChangeEvent;
         var changedSelection:Boolean = false;

         super.commitProperties();
@@ -684,7 +684,7 @@
             selectedIndexAdjusted = false;
             if (!changedSelection)
             {
-                e = new IndexChangedEvent(IndexChangedEvent.CHANGE);
+                e = new IndexChangeEvent(IndexChangeEvent.CHANGE);
                 e.oldIndex = selectedIndex;
                 e.newIndex = selectedIndex;
                 dispatchEvent(e);
@@ -703,7 +703,7 @@
                 itemShowingCaret(selectedIndex, true);
                 _caretIndex = selectedIndex;

-                e = new IndexChangedEvent(IndexChangedEvent.CARET_CHANGE);
+                e = new IndexChangeEvent(IndexChangeEvent.CARET_CHANGE);
                 e.oldIndex = caretIndex;
                 e.newIndex = caretIndex;
                 dispatchEvent(e);
@@ -718,7 +718,7 @@
                 for (var i:int = 0; i < dataGroup.numChildren; i++)
                 {
                     // FIXME (rfrishbe):(dsubrama) Ryan, figure out numChildren/numElement vs. getElement/getChild
-                    //and which is more performant.
+                    //and which is more performant.
                     var renderer:IItemRenderer = dataGroup.getElementAt(i) as IItemRenderer;
                     //Push the correct text into the renderer by settings its label
                     //property
@@ -942,7 +942,7 @@

         // Step 2: dispatch the "changing" event. If preventDefault() is called
         // on this event, the selection change will be cancelled.
-        var e:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.CHANGING, false, true);
+        var e:IndexChangeEvent = new IndexChangeEvent(IndexChangeEvent.CHANGING, false, true);
         e.oldIndex = _selectedIndex;
         e.newIndex = _proposedSelectedIndex;
         if (!dispatchEvent(e))
@@ -969,13 +969,13 @@
         if (dispatchChangedEvents)
         {
             // Dispatch the change event
-            e = new IndexChangedEvent(IndexChangedEvent.CHANGE);
+            e = new IndexChangeEvent(IndexChangeEvent.CHANGE);
             e.oldIndex = oldSelectedIndex;
             e.newIndex = _selectedIndex;
             dispatchEvent(e);

             //Dispatch the caretChange event
-            e = new IndexChangedEvent(IndexChangedEvent.CARET_CHANGE);
+            e = new IndexChangeEvent(IndexChangeEvent.CARET_CHANGE);
             e.oldIndex = oldCaretIndex;
             e.newIndex = caretIndex;
             dispatchEvent(e);


Transferred from the Adobe Open Source Subversion Repository

Revision: 8044
Author:   chaase@adobe.com
Date:     2009-06-22T17:01:54.701660Z

Log Message:
-----------
Final (!) PARB changes for effects.
- renamed ArrayInterpolator to MultiValueInterpolator (and enhanced behavior to handle Vectors as well as Arrays).
- Created new AnimateTransform3D subclass of AnimateTransform (to hold 3D-specific properties/defaults), and moved Move3D, Rotate3D, Scale3D to subclass from this new class.

QE Notes: Change to default value of applyLocalProjection (matches former default on 3D effects, but not default on AnimateTransform).
Doc Notes: None
Bugs: None
Reviewer: Hans
Tests: checkintests, effects cyclone from QE

Modified Paths:
--------------
<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/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/Animate.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/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as" copyfrom-rev="7917" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/MultiValueInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/SimpleMotionPath.as
+++ frameworks/projects/spark/src/spark/effects/animation/SimpleMotionPath.as
@@ -11,7 +11,7 @@

 package spark.effects.animation
 {
-import spark.effects.interpolation.ArrayInterpolator;
+import spark.effects.interpolation.MultiValueInterpolator;

 /**
@@ -41,7 +41,8 @@
     //--------------------------------------------------------------------------

     /**
-     *  Constructor. You can specify both the valueFrom and valueTo parameters,
+     *  Constructor. You can specify both the
+     *  valueFrom and valueTo parameters,
      *  or specify the valueBy parameter and either the valueFrom
      *  or valueTo parameter.
      *  If you omit these parameters, Flex calculates them from the effect target.
@@ -63,11 +64,13 @@
         this.property = property;
         keyframes = new <Keyframe>[new Keyframe(0, valueFrom),
             new Keyframe(NaN, valueTo, valueBy)];
-        if (valueFrom is Array && valueTo is Array)
+        if (valueFrom !== null && valueTo !== null &&
+            ((valueFrom is Array && valueTo is Array) ||
+             (valueFrom is Vector.<Number> && valueTo is Vector.<Number>)))
         {
-            if (!numberArrayInterpolator)
-                numberArrayInterpolator = new ArrayInterpolator();
-            interpolator = numberArrayInterpolator;
+            if (!multiValueInterpolator)
+                multiValueInterpolator = new MultiValueInterpolator();
+            interpolator = multiValueInterpolator;
         }
     }

@@ -77,7 +80,7 @@
     //
     //--------------------------------------------------------------------------

-    private static var numberArrayInterpolator:ArrayInterpolator = null;
+    private static var multiValueInterpolator:MultiValueInterpolator = null;

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 21866
Author:   betravis@adobe.com
Date:     2011-08-05T16:21:09.333456Z

Log Message:
-----------
Increasing mouse move tolerance for ToggleSwitch
Thumb should not move until the mouse has moved at least that much

QE notes: Dragging the thumb will position it at (drag length - drag tolerance). Drag tolerance is currently .15 of the distance the thumb can travel.
Doc notes: None
Bugs:
SDK-30854 - Click doesn't trigger selection change in Android devices
Reviewer: klin
Tests run: checkintests, mustella
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/MobileSkins/src/views/ToggleSwitchView.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as
@@ -92,6 +92,12 @@
 //--------------------------------------

 [Exclude(name="textAlign", kind="style")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[IconFile("ToggleSwitch.png")]

 /**
  *  The Spark ToggleSwitch component is a component that can flip between
@@ -125,7 +131,7 @@
     /**
      * The amount the mouse can move before we consider the event a drag and not a click
      */
-    private static const MOUSE_MOVE_TOLERANCE:Number = 0.01;
+    private static const MOUSE_MOVE_TOLERANCE:Number = 0.15;

     //----------------------------------------------------------------------------------------------
     //
@@ -607,15 +613,30 @@
         lastMouseX = event.stageX;
     }

-    private function thinnedMouseDragHandler():void
+    /**
+     *  Move the thumb to line up with the current mouse position
+     *  The mouse needs to move at least MOUSE_MOVE_TOLERANCE before
+     *  the thumb begins to move.
+     *  On touch devices, the mouse position fired near mouse up can
+     *  be unreliable.
+     */
+    private function thinnedMouseDragHandler(event:Event):void
     {
         if (mouseCaptured && track && thumb)
         {
             var deltaX:Number = (lastMouseX - stageOffset.x) / getGlobalTrackRange();
-            // don't set mouseMoved unless the mouse position has changed
-            if (!mouseMoved && Math.abs(deltaX) > MOUSE_MOVE_TOLERANCE)
+            // don't set mouseMoved unless the mouse position has changed enough
+            // don't rely on the last drag handler fired as part of mouse up
+            if (!mouseMoved && Math.abs(deltaX) > MOUSE_MOVE_TOLERANCE &&
+                event.type != MouseEvent.MOUSE_UP)
                 mouseMoved = true;
-            moveToPosition(positionOffset + deltaX);
+            // only move if we have passed the threshold
+            // dampen the movement by that threshold
+            if (mouseMoved)
+            {
+                moveToPosition(positionOffset + deltaX +
+                    (selected ? MOUSE_MOVE_TOLERANCE : -MOUSE_MOVE_TOLERANCE));
+            }
         }
     }

@@ -770,9 +791,7 @@

         if (!dragTimer.running)
         {
-            mouseMoveThinnedHandler();
-            event.updateAfterEvent();
-
+            mouseMoveThinnedHandler(event);
             dragPending = false;
             dragTimer.start();
         }
@@ -786,8 +805,7 @@
     {
         if (dragPending)
         {
-            mouseMoveThinnedHandler();
-            event.updateAfterEvent();
+            mouseMoveThinnedHandler(event);
             dragPending = false;
         }
         else
@@ -802,9 +820,7 @@
         {
             if (dragPending)
             {
-                mouseMoveThinnedHandler();
-                if (event is MouseEvent)
-                    MouseEvent(event).updateAfterEvent();
+                mouseMoveThinnedHandler(event);
                 dragPending = false;
             }
             dragTimer.stop();


Transferred from the Adobe Open Source Subversion Repository

Revision: 22976
Author:   jasonsj@adobe.com
Date:     2011-10-12T01:39:21.983583Z

Log Message:
-----------
Initialize softKeyboardEffectCachedHeightExplicit on first ACTIVATE event.

QE notes:
Doc notes:
Bugs:
SDK-31830 SPUC SK Effects: SPUC move does not work when keyboard is activated
Reviewer: tkraikit
Tests run: checkintests, manual SkinnablePopUpContainer tests
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
@@ -902,6 +902,9 @@
             cachedYPosition = this.y;
             setSoftKeyboardEffectCachedHeight(this.height);

+            // Initialize softKeyboardEffectCachedHeightExplicit
+            explicitHeightChangedHandler();
+
             // reset cached keyboard height
             cachedKeyboardHeight = 0;
         }
@@ -1196,7 +1199,7 @@
     /**
      *  @private
      */
-    private function explicitHeightChangedHandler(event:Event):void
+    private function explicitHeightChangedHandler(event:Event=null):void
     {
         softKeyboardEffectCachedHeightExplicit = !isNaN(explicitHeight);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22445
Author:   jasonsj@adobe.com
Date:     2011-09-08T18:23:16.733584Z

Log Message:
-----------
PARB changes for SkinnablePopUpContainer SoftKeyboard effects.

Deleted SoftKeyboardPopUpTransition. Merged SoftKeyboardPopUpTransition to SkinnablePopUpContainer. Removed transition events. Added softKeyboardEffectDuration style. Removed override for Application.resizeForSoftKeyboard. Updated XD motion design.

SDK-31459 respect minHeight in SK effect
SDK-31437 do not access FlexGlobals.topLevelApplication in SkinnablePopUpContainer constructor

QE notes:
Doc notes:
Bugs:
SDK-31459 StageText spills out of Callout on Callout resize
SDK-31437 RTE when PopUp/Callout is defined in Declarations as a single instance
Reviewer: tkraikit
Tests run: checkintests, mustella
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="dir" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/transitions</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/defaults.css</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
@@ -11,16 +11,26 @@

 package spark.components
 {
+import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
 import flash.events.Event;
+import flash.events.SoftKeyboardEvent;
+import flash.geom.Rectangle;

 import mx.core.FlexGlobals;
 import mx.core.mx_internal;
+import mx.effects.IEffect;
+import mx.effects.Parallel;
 import mx.events.FlexEvent;
+import mx.managers.ISystemManager;
 import mx.managers.PopUpManager;
-
+import mx.managers.SystemManager;
+
+import spark.effects.Move;
+import spark.effects.Resize;
+import spark.effects.easing.IEaser;
+import spark.effects.easing.Power;
 import spark.events.PopUpEvent;
-import spark.transitions.SoftKeyboardPopUpTransition;

 use namespace mx_internal;

@@ -74,6 +84,22 @@
 [Event(name="close", type="spark.events.PopUpEvent")]

 //--------------------------------------
+//  Styles
+//--------------------------------------
+
+/**
+ *  Duration of the soft keyboard move and resize effect in milliseconds.
+ *
+ *  @default 150
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 11
+ *  @playerversion AIR 3.1
+ *  @productversion Flex 4.6
+ */
+[Style(name="softKeyboardEffectDuration", type="Number", format="Time", inherit="no", minValue="0.0")]
+
+//--------------------------------------
 //  States
 //--------------------------------------

@@ -159,12 +185,6 @@
     public function SkinnablePopUpContainer()
     {
         super();
-
-        var topLevelApp:Application = FlexGlobals.topLevelApplication as Application;
-        var softKeyboardEnabled:Boolean = (topLevelApp && Application.softKeyboardBehavior == "none");
-
-        if (softKeyboardEnabled)
-            _popUpTransition = new SoftKeyboardPopUpTransition();
     }

     //--------------------------------------------------------------------------
@@ -187,33 +207,36 @@
      *  @private
      */
     private var addedToPopUpManager:Boolean = false;
+
+    /**
+     *  @private
+     *  Soft keyboard effect.
+     */
+    private var effect:IEffect;
+
+    /**
+     *  @private
+     *  Track keyboard height to avoid unnecessary transitions.
+     */
+    private var cachedKeyboardHeight:Number;
+
+    /**
+     *  @private
+     *  Original pop-up y-position.
+     */
+    private var cachedYPosition:Number;
+
+    /**
+     *  @private
+     *  Original pop-up height.
+     */
+    private var cachedHeight:Number;

     //--------------------------------------------------------------------------
     //
     //  Properties
     //
     //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     */
-    private var _popUpTransition:SoftKeyboardPopUpTransition;
-
-    /**
-     *  Read-only access to the SoftKeyboardPopUpTransition.
-     *
-     *  @default A SoftKeyboardPopUpTransition instance when
-     *           Application.softKeyboardBehavior="none", otherwise null.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 11
-     *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
-     */
-    protected function get popUpTransition():SoftKeyboardPopUpTransition
-    {
-        return _popUpTransition;
-    }

     //----------------------------------
     //  isOpen
@@ -264,14 +287,17 @@
     private var _resizeForSoftKeyboard:Boolean = true;

     /**
-     *  @copy spark.transitions.SoftKeyboardPopUpTransition#resizeForSoftKeyboard
+     *  Enables resizing the pop-up when the soft keyboard is active.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
      */
     public function get resizeForSoftKeyboard():Boolean
     {
-        if (!popUpTransition)
-            return false;
-
-        return popUpTransition.resizeForSoftKeyboard;
+        return _resizeForSoftKeyboard;
     }

     /**
@@ -279,10 +305,10 @@
      */
     public function set resizeForSoftKeyboard(value:Boolean):void
     {
-        if (!popUpTransition)
+        if (_resizeForSoftKeyboard == value)
             return;

-        popUpTransition.resizeForSoftKeyboard = value;
+        _resizeForSoftKeyboard = value;
     }

     //----------------------------------
@@ -292,14 +318,17 @@
     private var _moveForSoftKeyboard:Boolean = true;

     /**
-     *  @copy spark.transitions.SoftKeyboardPopUpTransition#moveForSoftKeyboard
+     *  Enables moving the pop-up when the soft keyboard is active.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
      */
     public function get moveForSoftKeyboard():Boolean
     {
-        if (!popUpTransition)
-            return false;
-
-        return popUpTransition.moveForSoftKeyboard;
+        return _moveForSoftKeyboard;
     }

     /**
@@ -307,35 +336,10 @@
      */
     public function set moveForSoftKeyboard(value:Boolean):void
     {
-        if (!popUpTransition)
+        if (_moveForSoftKeyboard == value)
             return;

-        popUpTransition.moveForSoftKeyboard = value;
-    }
-
-    //----------------------------------
-    //  resizeApplication
-    //----------------------------------
-
-    private var _resizeApplication:Boolean = false;
-
-    /**
-     *  @copy spark.transitions.SoftKeyboardPopUpTransition#resizeApplication
-     */
-    public function get resizeApplication():Boolean
-    {
-        if (!popUpTransition)
-            return false;
-
-        return popUpTransition.resizeApplication;
-    }
-
-    /**
-     *  @private
-     */
-    public function set resizeApplication(value:Boolean):void
-    {
-        popUpTransition.resizeApplication = value;
+        _moveForSoftKeyboard = value;
     }

     //--------------------------------------------------------------------------
@@ -380,10 +384,6 @@
         if (!addedToPopUpManager)
         {
             addedToPopUpManager = true;
-
-            // install transition
-            if (popUpTransition)
-                popUpTransition.popUp = this;

             // This will create the skin and attach it
             PopUpManager.addPopUp(this, owner, modal);
@@ -471,6 +471,157 @@
             stateChangeComplete_handler(null); // Call directly
     }

+    /**
+     *  @private
+     */
+    private function playEffect(yTo:Number, heightTo:Number):void
+    {
+        // stop the current effect
+        if (effect && effect.isPlaying)
+            effect.stop();
+
+        var duration:Number = getStyle("softKeyboardEffectDuration");
+
+        if (duration > 0)
+            effect = createSoftKeyboardEffect(yTo, heightTo);
+
+        if (effect)
+        {
+            effect.duration = duration;
+            effect.play();
+        }
+        else
+        {
+            this.y = yTo;
+            this.height = heightTo;
+        }
+    }
+
+    /**
+     *  Called by the soft keyboard activate and deactive event handlers, this
+     *  method is responsible for creating the Spark effect played on the pop-up.
+     *
+     *  This method may be overridden by subclasses. By default, it
+     *  creates a parellel move and resize effect on the pop-up.
+     *
+     *  @return An IEffect instance serving as the move and/or resize transition
+     *  for the pop-up. This effect is played after the soft keyboard is
+     *  activated or deactivated.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    protected function createSoftKeyboardEffect(yTo:Number, heightTo:Number):IEffect
+    {
+        var move:Move;
+        var resize:Resize;
+        var easer:IEaser = new Power(0, 5);
+
+        if (yTo != this.y)
+        {
+            move = new Move();
+            move.target = this;
+            move.yTo = yTo;
+            move.disableLayout = true;
+            move.easer = easer;
+        }
+
+        if (heightTo != this.height)
+        {
+            resize = new Resize();
+            resize.target = this;
+            resize.heightTo = heightTo;
+            resize.disableLayout = true;
+            resize.easer = easer;
+        }
+
+        if (move && resize)
+        {
+            var parallel:Parallel = new Parallel();
+            parallel.addChild(move);
+            parallel.addChild(resize);
+
+            return parallel;
+        }
+        else if (move || resize)
+        {
+            return (move) ? move : resize;
+        }
+
+        return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  mx_internal properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  isSoftKeyboardEffectActive
+    //----------------------------------
+
+    private var _isSoftKeyboardEffectActive:Boolean;
+
+    /**
+     *  @private
+     *  Returns true if the soft keyboard is active and the pop-up is moved
+     *  and/or resized.
+     */
+    mx_internal function get isSoftKeyboardEffectActive():Boolean
+    {
+        return _isSoftKeyboardEffectActive;
+    }
+
+    //----------------------------------
+    //  marginTop
+    //----------------------------------
+
+    private var _marginTop:Number = 0;
+
+    /**
+     *  @private
+     *  Defines a margin at the top of the screen where the pop-up cannot be
+     *  resized or moved to.
+     */
+    mx_internal function get softKeyboardEffectMarginTop():Number
+    {
+        return _marginTop;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function set softKeyboardEffectMarginTop(value:Number):void
+    {
+        _marginTop = value;
+    }
+
+    //----------------------------------
+    //  marginBottom
+    //----------------------------------
+
+    private var _marginBottom:Number = 0;
+
+    /**
+     *  @private
+     *  Defines a margin at the bottom of the screen where the pop-up cannot be
+     *  resized or moved to.
+     */
+    mx_internal function get softKeyboardEffectMarginBottom():Number
+    {
+        return _marginBottom;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function set softKeyboardEffectMarginBottom(value:Number):void
+    {
+        _marginBottom = value;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Overridden Methods
@@ -510,19 +661,43 @@
         if (event)
             event.target.removeEventListener(FlexEvent.STATE_CHANGE_COMPLETE, stateChangeComplete_handler);

+        var topLevelApp:Application = FlexGlobals.topLevelApplication as Application;
+        var softKeyboardEffectEnabled:Boolean = (topLevelApp && Application.softKeyboardBehavior == "none");
+
         if (isOpen)
         {
             dispatchEvent(new PopUpEvent(PopUpEvent.OPEN, false, false));
+
+            if (softKeyboardEffectEnabled)
+            {
+                // Install soft keyboard event handling on the stage
+                stage.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, softKeyboardActivatingHandler);
+                stage.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, softKeyboardActivateHandler);
+                stage.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, softKeyboardDeactivateHandler);
+
+                // move and resize immediately if the soft keyboard is active
+                if (stage.softKeyboardRect.height > 0)
+                {
+                    softKeyboardActivatingHandler();
+                    softKeyboardActivateHandler();
+                }
+            }
         }
         else
         {
-            // uninstall transition
-            if (popUpTransition)
-                popUpTransition.popUp = null;
-
             // Dispatch the close event before removing from the PopUpManager.
             dispatchEvent(closeEvent);
             closeEvent = null;
+
+            if (softKeyboardEffectEnabled)
+            {
+                // Uninstall soft keyboard event handling
+                stage.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, softKeyboardActivatingHandler);
+                stage.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, softKeyboardActivateHandler);
+                stage.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, softKeyboardDeactivateHandler);
+
+                _isSoftKeyboardEffectActive = false;
+            }

             // We just finished closing, remove from the PopUpManager.
             PopUpManager.removePopUp(this);
@@ -530,5 +705,101 @@
             owner = null;
         }
     }
+
+    /**
+     *  @private
+     */
+    private function softKeyboardActivatingHandler(event:SoftKeyboardEvent=null):void
+    {
+        if (isSoftKeyboardEffectActive)
+            return;
+
+        // save the original y-position and height
+        cachedYPosition = this.y;
+        cachedHeight = this.height;
+
+        // reset cached keyboard height
+        cachedKeyboardHeight = 0;
+    }
+
+    /**
+     *  @private
+     */
+    private function softKeyboardActivateHandler(event:SoftKeyboardEvent=null):void
+    {
+        var softKeyboardRect:Rectangle = this.stage.softKeyboardRect;
+
+        // do not update if the keyboard has no height or if the height
+        // is unchanged
+        if ((softKeyboardRect.height == 0) ||
+            (cachedKeyboardHeight == softKeyboardRect.height))
+            return;
+
+        _isSoftKeyboardEffectActive = true;
+
+        cachedKeyboardHeight = softKeyboardRect.height;
+
+        var systemManager:ISystemManager = this.parent as ISystemManager;
+        var sandboxRoot:DisplayObject = systemManager.getSandboxRoot();
+        var scaleFactor:Number = 1;
+
+        if (systemManager as SystemManager)
+            scaleFactor = SystemManager(systemManager).densityScale;
+
+        // All calculations are done in stage coordinates and converted back to
+        // application coordinates when playing effects. Also note that
+        // softKeyboardRect is also in stage coordinates.
+        var overlapGlobal:Number = ((this.y + this.height) * scaleFactor) - softKeyboardRect.y;
+
+        var popUpY:Number = this.y * scaleFactor;
+        var popUpHeight:Number = this.height * scaleFactor;
+
+        var yToGlobal:Number = popUpY;
+        var heightToGlobal:Number = popUpHeight;
+
+        if (overlapGlobal > 0)
+        {
+            // shift y-position up to remove offset overlap
+            if (moveForSoftKeyboard)
+                yToGlobal = Math.max((softKeyboardEffectMarginTop * scaleFactor), (popUpY - overlapGlobal));
+
+            // adjust height based on new y-position
+            if (resizeForSoftKeyboard)
+            {
+                // compute new overlap
+                overlapGlobal = (yToGlobal + popUpHeight) - softKeyboardRect.y;
+
+                // adjust height if there is overlap
+                if (overlapGlobal > 0)
+                    heightToGlobal = popUpHeight - overlapGlobal - (softKeyboardEffectMarginBottom * scaleFactor);
+            }
+        }
+
+        // only play the effect if y-position or height changes
+        if ((yToGlobal != popUpY) ||
+            (heightToGlobal != popUpHeight))
+        {
+            // convert to application coordinates, move to pixel boundaries
+            var yToLocal:Number = Math.floor(yToGlobal / scaleFactor);
+            var heightToLocal:Number = Math.floor(heightToGlobal / scaleFactor);
+
+            // preserve minimum height
+            heightToLocal = Math.max(heightToLocal, getMinBoundsHeight());
+
+            playEffect(yToLocal, heightToLocal);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function softKeyboardDeactivateHandler(event:SoftKeyboardEvent=null):void
+    {
+        if (isSoftKeyboardEffectActive)
+        {
+            _isSoftKeyboardEffectActive = false;
+            playEffect(cachedYPosition, cachedHeight);
+        }
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7889
Author:   dsubrama@adobe.com
Date:     2009-06-16T20:01:19.393557Z

Log Message:
-----------
First batch of PARB changes to List, ListBase, ItemRenderer and IItemRenderer as documented here: https://zerowing.corp.adobe.com/display/flex/PARB_RENAME_LIST

QA: Yes
Docs: Yes
Checkintests: Pass

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/skins/spark/DefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/IItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/DefaultComplexItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/IndexChangedEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -36,38 +36,38 @@
  *  Calling the preventDefault() method
  *  on the event prevents the selection from changing.
  *
- *  @eventType mx.events.IndexChangedEvent.SELECTION_CHANGING
+ *  @eventType mx.events.IndexChangedEvent.CHANGING
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="selectionChanging", type="mx.events.IndexChangedEvent")]
+[Event(name="changing", type="mx.events.IndexChangedEvent")]

 /**
  *  Dispatched after the selection has changed.
  *
- *  @eventType mx.events.IndexChangedEvent.SELECTION_CHANGED
+ *  @eventType mx.events.IndexChangedEvent.CHANGE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="selectionChanged", type="mx.events.IndexChangedEvent")]
+[Event(name="change", type="mx.events.IndexChangedEvent")]

 /**
  *  Dispatched after the focus has changed.
  *
- *  @eventType mx.events.IndexChangedEvent.ITEM_FOCUS_CHANGED
+ *  @eventType mx.events.IndexChangedEvent.CARET_CHANGE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="itemFocusChanged", type="mx.events.IndexChangedEvent")]
+[Event(name="caretChange", type="mx.events.IndexChangedEvent")]

 /**
  *  The ListBase class is the base class for all components that support
@@ -83,15 +83,15 @@
  *    dataProvider="null"
  *    labelField="null"
  *    labelFunction="null"
- *    requiresSelection="false"
+ *    requireSelection="false"
  *    selectedIndex="-1"
  *    selectedItem="undefined"
  *    useVirtualLayout="false"
  *
  *    Events
- *    itemFocusChanged="No default"
- *    selectionChanged="No default"
- *    selectionChanging="No default"
+ *    caretChange="No default"
+ *    change="No default"
+ *    changing="No default"
  *  />
  *

  *
@@ -158,12 +158,12 @@
     //--------------------------------------------------------------------------

     //----------------------------------
-    //  currentCaretIndex
-    //----------------------------------
-
-    mx_internal var _currentCaretIndex:Number = NO_CARET;
-
-    [Bindable("itemFocusChanged")]
+    //  caretIndex
+    //----------------------------------
+
+    mx_internal var _caretIndex:Number = NO_CARET;
+
+    [Bindable("caretChange")]
     /**
      *  Item that is currently in focus.
      *
@@ -174,9 +174,9 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function get currentCaretIndex():Number
-    {
-        return _currentCaretIndex;
+    public function get caretIndex():Number
+    {
+        return _caretIndex;
     }

     /**
@@ -319,11 +319,11 @@

     /**
      *  @private
-     *  Flag that is set when the currentCaretIndex has been adjusted due to
+     *  Flag that is set when the caretIndex has been adjusted due to
      *  items being added or removed. This flag is cleared in
      *  commitProperties().
      */
-    mx_internal var currentCaretIndexAdjusted:Boolean = false;
+    mx_internal var caretIndexAdjusted:Boolean = false;

     /**
      *  @private
@@ -331,7 +331,7 @@
      */
     mx_internal var _selectedIndex:int = NO_SELECTION;

-    [Bindable("selectionChanged")]
+    [Bindable("change")]
     /**
      *  The 0-based index of the selected item, or -1 if no item is selected.
      *  Setting the selectedIndex property deselects the currently selected
@@ -345,9 +345,9 @@
      *
If the selected item is removed, the selected index is set to:

      *
      *

-     *
-1 if requiresSelection = false
+     *
-1 if requireSelection = false
      *     or there are no remaining items.

-     *
0 if requiresSelection = true
+     *
0 if requireSelection = true
      *     and there is at least one item.

      *

      *
@@ -384,7 +384,7 @@

     private var _pendingSelectedItem:*;

-    [Bindable("selectionChanged")]
+    [Bindable("change")]
     /**
      *  The item that is currently selected.
      *  Setting this property deselects the currently selected
@@ -397,9 +397,9 @@
      *
If the selected item is removed, the selected item is set to:

      *
      *

-     *
undefined if requiresSelection = false
+     *
undefined if requireSelection = false
      *      or there are no remaining items.

-     *
The first item if requiresSelection = true
+     *
The first item if requireSelection = true
      *      and there is at least one item.

      *

      *
@@ -434,20 +434,20 @@
     }

     //----------------------------------
-    //  requiresSelection
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the requiresSelection property.
-     */
-    private var _requiresSelection:Boolean = false;
-
-    /**
-     *  @private
-     *  Flag that is set when requiresSelection has changed.
-     */
-    private var requiresSelectionChanged:Boolean = false;
+    //  requireSelection
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the requireSelection property.
+     */
+    private var _requireSelection:Boolean = false;
+
+    /**
+     *  @private
+     *  Flag that is set when requireSelection has changed.
+     */
+    private var requireSelectionChanged:Boolean = false;

     /**
      *  If true, a data item must always be selected in the control.
@@ -461,26 +461,26 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function get requiresSelection():Boolean
-    {
-        return _requiresSelection;
-    }
-
-    /**
-     *  @private
-     */
-    public function set requiresSelection(value:Boolean):void
-    {
-        if (value == _requiresSelection)
+    public function get requireSelection():Boolean
+    {
+        return _requireSelection;
+    }
+
+    /**
+     *  @private
+     */
+    public function set requireSelection(value:Boolean):void
+    {
+        if (value == _requireSelection)
             return;

-        _requiresSelection = value;
+        _requireSelection = value;

         // We only need to update if the value is changing
         // from false to true
         if (value == true)
         {
-            requiresSelectionChanged = true;
+            requireSelectionChanged = true;
             invalidateProperties();
         }
     }
@@ -627,17 +627,17 @@
             // or should we preserve selectedIndex
             if (selectedIndex >= 0 && dataProvider && selectedIndex < dataProvider.length)
                itemSelected(selectedIndex, true);
-            else if (requiresSelection)
+            else if (requireSelection)
                _proposedSelectedIndex = 0;
             else
                selectedIndex = -1;
         }

-        if (requiresSelectionChanged)
-        {
-            requiresSelectionChanged = false;
-
-            if (requiresSelection &&
+        if (requireSelectionChanged)
+        {
+            requireSelectionChanged = false;
+
+            if (requireSelection &&
                     selectedIndex == NO_SELECTION &&
                     dataProvider &&
                     dataProvider.length > 0)
@@ -659,35 +659,35 @@
             changedSelection = commitSelection();

         // If the selectedIndex has been adjusted to account for items that
-        // have been added or removed, send out a "selectionChanged" event
+        // have been added or removed, send out a "change" event
         // so any bindings to selectedIndex are updated correctly.
         if (selectedIndexAdjusted)
         {
             selectedIndexAdjusted = false;
             if (!changedSelection)
             {
-                e = new IndexChangedEvent(IndexChangedEvent.SELECTION_CHANGED);
+                e = new IndexChangedEvent(IndexChangedEvent.CHANGE);
                 e.oldIndex = selectedIndex;
                 e.newIndex = selectedIndex;
                 dispatchEvent(e);
             }
         }

-        if (currentCaretIndexAdjusted)
-        {
-        	currentCaretIndexAdjusted = false;
+        if (caretIndexAdjusted)
+        {
+        	caretIndexAdjusted = false;
         	if (!changedSelection)
         	{
-        		// Put the new currentCaretIndex renderer into the
-        		// caret state and dispatch an "itemFocusChanged"
+        		// Put the new caretIndex renderer into the
+        		// caret state and dispatch an "caretChange"
         		// event to update any bindings. Additionally, update
         		// the backing variable.
-        		itemInCaret(selectedIndex, true);
-        		_currentCaretIndex = selectedIndex;
+        		itemShowingCaret(selectedIndex, true);
+        		_caretIndex = selectedIndex;

-        		e = new IndexChangedEvent(IndexChangedEvent.ITEM_FOCUS_CHANGED);
-        		e.oldIndex = currentCaretIndex;
-        		e.newIndex = currentCaretIndex;
+        		e = new IndexChangedEvent(IndexChangedEvent.CARET_CHANGE);
+        		e.oldIndex = caretIndex;
+        		e.newIndex = caretIndex;
         		dispatchEvent(e);
         	}
         }
@@ -702,11 +702,11 @@
                     //TODO: Ryan, figure out numChildren/numElement vs. getElement/getChild
                     //and which is more performant.
                     var renderer:IItemRenderer = dataGroup.getElementAt(i) as IItemRenderer;
-                    //Push the correct text into the renderer by settings its labelText
+                    //Push the correct text into the renderer by settings its label
                     //property
                     if (renderer)
                     {
-                        renderer.labelText = itemToLabel(renderer.data);
+                        renderer.label = itemToLabel(renderer.data);
                     }
                 }
             }
@@ -732,10 +732,10 @@
                 ItemRenderer(renderer).playTransitions = false;

             // TODO (dsubrama) - Go through helper methods to do this.
-            // Make itemSelected()/itemInCaret() pass around the renderer
+            // Make itemSelected()/itemShowingCaret() pass around the renderer
             // instead of index
             IItemRenderer(renderer).selected = false;
-            IItemRenderer(renderer).caret = false;
+            IItemRenderer(renderer).showsCaret = false;

             // Now turn the transitions back on by setting playTransitions
             // back to true
@@ -753,7 +753,7 @@
         if (isItemIndexSelected(index))
             itemSelected(index, true);
         if (renderer is IItemRenderer)
-            IItemRenderer(renderer).labelText = itemToLabel(IItemRenderer(renderer).data);
+            IItemRenderer(renderer).label = itemToLabel(IItemRenderer(renderer).data);
     }

     /**
@@ -821,7 +821,7 @@
      *
      *  @param index The item index that was put into caret state.
      *
-     *  @param inFocus true if the item is in the caret state,
+     *  @param showsCaret true if the item is in the caret state,
      *  and false if it is not.
      *
      *  @langversion 3.0
@@ -829,35 +829,9 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function itemInCaret(index:int, caret:Boolean):void
+    protected function itemShowingCaret(index:int, showsCaret:Boolean):void
     {
         // Subclasses must override this method to display the caret.
-    }
-
-    /**
-     *  Returns true if the item is selected by calling
-     *  isItemIndexSelected().
-     *
-     *
If multiple instances of the item are in the list,
-     *  this method only checks to see whether the item at
-     *  dataProvider.getItemIndex() (usually the first
-     *  instance of that item) is selected.

-     *
-     *  @param item The item whose selection status is being checked
-     *
-     *  @return true if the item is selected,
-     *  and false otherwise.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function isItemSelected(item:Object):Boolean
-    {
-        var index:int = dataProvider.getItemIndex(item);
-
-        return isItemIndexSelected(index);
     }

     /**
@@ -873,7 +847,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function isItemIndexSelected(index:int):Boolean
+    mx_internal function isItemIndexSelected(index:int):Boolean
     {
         return index == selectedIndex;
     }
@@ -891,9 +865,9 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function isItemInCaret(index:int):Boolean
+    mx_internal function isItemIndexShowingCaret(index:int):Boolean
     {
-        return index == currentCaretIndex;
+        return index == caretIndex;
     }

     //--------------------------------------------------------------------------
@@ -912,19 +886,19 @@
      */
     mx_internal function setCurrentCaretIndex(value:Number):void
     {
-        itemInCaret(currentCaretIndex, false);
-
-        _currentCaretIndex = value;
-
-        itemInCaret(currentCaretIndex, true);
+        itemShowingCaret(caretIndex, false);
+
+        _caretIndex = value;
+
+        itemShowingCaret(caretIndex, true);
     }

     /**
      *  @private
      *  The selection validation and commitment workhorse method.
      *  Called to commit the pending selected index. This method dispatches
-     *  the "selectionChanging" event, and if the event is not cancelled,
-     *  commits the selection change and then dispatches the "selectionChanged"
+     *  the "changing" event, and if the event is not cancelled,
+     *  commits the selection change and then dispatches the "change"
      *  event.
      *
      *  Returns true if the selection was committed, or false if the selection
@@ -935,22 +909,22 @@
         // Step 1: make sure the proposed selected index is in range.
         var maxIndex:int = dataProvider ? dataProvider.length - 1 : -1;
         var oldSelectedIndex:int = _selectedIndex;
-        var oldCaretIndex:int = _currentCaretIndex;
+        var oldCaretIndex:int = _caretIndex;

         if (_proposedSelectedIndex < NO_SELECTION)
             _proposedSelectedIndex = NO_SELECTION;
         if (_proposedSelectedIndex > maxIndex)
             _proposedSelectedIndex = maxIndex;
-        if (requiresSelection && _proposedSelectedIndex == NO_SELECTION &&
+        if (requireSelection && _proposedSelectedIndex == NO_SELECTION &&
             dataProvider && dataProvider.length > 0)
         {
             _proposedSelectedIndex = NO_PROPOSED_SELECTION;
             return false;
         }

-        // Step 2: dispatch the "selectionChanging" event. If preventDefault() is called
+        // Step 2: dispatch the "changing" event. If preventDefault() is called
         // on this event, the selection change will be cancelled.
-        var e:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.SELECTION_CHANGING, false, true);
+        var e:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.CHANGING, false, true);
         e.oldIndex = _selectedIndex;
         e.newIndex = _proposedSelectedIndex;
         if (!dispatchEvent(e))
@@ -969,23 +943,23 @@
         setCurrentCaretIndex(_proposedSelectedIndex);
         _proposedSelectedIndex = NO_PROPOSED_SELECTION;

-        // Step 4: dispatch the "selectionChanged" event and "itemFocusChanged"
+        // Step 4: dispatch the "change" event and "caretChange"
         // events based on the dispatchChangeEvents parameter. Overrides may
-        // chose to dispatch the selectionChanged/itemFocusChanged events
+        // chose to dispatch the change/caretChange events
         // themselves, in which case we wouldn't want to dispatch the event
         // here.
         if (dispatchChangedEvents)
         {
-            // Dispatch the selectionChanged event
-            e = new IndexChangedEvent(IndexChangedEvent.SELECTION_CHANGED);
+            // Dispatch the change event
+            e = new IndexChangedEvent(IndexChangedEvent.CHANGE);
             e.oldIndex = oldSelectedIndex;
             e.newIndex = _selectedIndex;
             dispatchEvent(e);

-            //Dispatch the itemFocusChanged event
-            e = new IndexChangedEvent(IndexChangedEvent.ITEM_FOCUS_CHANGED);
+            //Dispatch the caretChange event
+            e = new IndexChangedEvent(IndexChangedEvent.CARET_CHANGE);
             e.oldIndex = oldCaretIndex;
-            e.newIndex = currentCaretIndex;
+            e.newIndex = caretIndex;
             dispatchEvent(e);
         }

@@ -995,17 +969,17 @@
     /**
      *  Adjusts the selected index to account for items being added to or
      *  removed from this component. This method adjusts the selected index
-     *  value and dispatches a selectionChanged event.
-     *  It does not dispatch a selectionChanging event
+     *  value and dispatches a change event.
+     *  It does not dispatch a changing event
      *  or allow the cancellation of the selection.
      *  It also does not call the itemSelected() method,
      *  since the same item is selected;
      *  the only thing that has changed is the index of the item.
      *
-     *
A selectionChanged event is dispatched in the next call to
+     *
A change event is dispatched in the next call to
      *  the commitProperties() method.

      *
-     *
The selectionChanging event is not sent when
+     *
The changing event is not sent when
      *  the selectedIndex is adjusted.

      *
      *  @param newIndex The new index.
@@ -1026,10 +1000,17 @@
     }

     /**
-     *  @private
-     *  Called when an item has been added to this component.
-     */
-    protected function itemAddedHandler(item:*, index:int):void
+     *  Called when an item has been added to this component. Selection
+     *  and caret related properties are adjusted accordingly.
+     *
+     *  @param index The index of the item being added.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function itemAdded(index:int):void
     {
         if (selectedIndex == NO_SELECTION || doingWholesaleChanges)
             return;
@@ -1041,19 +1022,27 @@
     }

     /**
-     *  @private
-     *  Called when an item has been removed from this component.
-     */
-    protected function itemRemovedHandler(item:*, index:int):void
+     *  Called when an item has been removed from this component.
+     *  Selection and caret related properties are adjusted
+     *  accordingly.
+     *
+     *  @param index The index of the item being removed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function itemRemoved(index:int):void
     {
         if (selectedIndex == NO_SELECTION || doingWholesaleChanges)
             return;

         // If the selected item is being removed, clear the selection (or
-        // reset to the first item if requiresSelection is true)
+        // reset to the first item if requireSelection is true)
         if (index == selectedIndex)
         {
-            if (requiresSelection && dataProvider && dataProvider.length > 0)
+            if (requireSelection && dataProvider && dataProvider.length > 0)
             {
                 if (index == 0)
                 {
@@ -1102,11 +1091,11 @@

             if (ce.kind == CollectionEventKind.ADD)
             {
-                itemAddedHandler(ce.items[0], ce.location);
+                itemAdded(ce.location);
             }
             else if (ce.kind == CollectionEventKind.REMOVE)
             {
-                itemRemovedHandler(ce.items[0], ce.location);
+                itemRemoved(ce.location);
             }
             else if (ce.kind == CollectionEventKind.RESET)
             {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19942
Author:   rfrishbe@adobe.com
Date:     2011-01-25T22:49:40.674586Z

Log Message:
-----------
Cleaning up some FIXMEs assigned to me in various locations.

Also exposing some private variables as mx_internal: messageText, labelText, and oldUnscaledWidth.

QE notes: -
Doc notes:
Bugs: SDK-29226
Reviewer: Eric
Tests run: checkintests
Is noteworthy for integration: No

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -385,10 +385,10 @@
      */
     private static function getTextTopOffset(textFormat:TextFormat):Number
     {
-        // try to find the top offset for the font, size, weight and style in our table
-        // we only store offets for unique font, size, weight and style combinations
-        // FIXME (mcho)  are there more properties that affect the top offset we should
-        // take into account?
+        // Try to find the top offset for the font, size, weight and style in our table.
+        // We only store offets for unique font, size, weight and style combinations.
+        // There could be some other factors that affect textFormat...if we find
+        // more of them, we will have to change the key to take that into account.
         var key:String = textFormat.font + "_" + textFormat.size + "_" + textFormat.bold + "_" + textFormat.italic;
         var topOffset:Number = textTopOffsetTable[key];