Transferred from the Adobe Open Source Subversion Repository

Revision: 4035
Author:   jszeto@adobe.com
Date:     2008-11-06T23:38:55.516366Z

Log Message:
-----------
RadialGradient and GradientEntry bug fixes

SDK-17745 - MXML application with multiple identical gradient fills doesn't render correctly

RadialGradient now takes into account the x/y position of the graphic element's bounds.

SDK-17652 - AI import; non-default angle and location of gradients are not retained on import of .ai or .fxg.

RadialGradient now rotates as expected. Previously, we set rotation using the Matrix.createGradientBox function. But this only rotate the gradients themselves and not the shape of the gradient as defined by scaleX and scaleY. Instead, we need to translate the center of the gradient to 0,0, rotate it, and then translate it back to the original location.

SDK-17654 - GradientEntry ratio behavior is inconsistent between MXML and ActionScript

Changed the default value for the ratio parameter in the GradientEntry constructor from -1 to NaN. GradientEntry was probably written before we had support for NaN in the language.

Added a couple of comments and removed some dead code.

QE Notes: Please test rotation on RadialGradient and graphic elements with top/left or x/y defined and a RadialGradient fill.
Doc Notes: Change default value of ratio parameter for GradientEntry constructor.
Bugs: SDK-17745, SDK-17652, SDK-17654
Reviewer:

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientEntry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradient.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/GradientEntry.as
+++ frameworks/projects/framework/src/mx/graphics/GradientEntry.as
@@ -59,22 +59,19 @@
 	 *  the transition to the associated color.
 	 *  Flex uniformly spaces any GradientEntries
 	 *  with missing ratio values.
-	 *  The default value is -1.0.
+	 *  The default value is NaN.
 	 *
 	 *  @param alpha The alpha value for this entry in the gradient.
 	 *  This parameter is optional. The default value is 1.0.
 	 */
 	public function GradientEntry(color:uint = 0x000000,
-								  ratio:Number = -1.0,
+								  ratio:Number = NaN,
 								  alpha:Number = 1.0)
 	{
 		super();

-		this.color = color;
-
-		if (ratio >= 0.0)
-			this.ratio = ratio;
-
+		this.color = color;
+		this.ratio = ratio;
 		this.alpha = alpha;
 	}


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

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

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 1968
Author:   jimurphy@adobe.com
Date:     2008-06-05T15:31:56.961691Z

Log Message:
-----------
Merge 3.0.x revisions [1940,1954] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/airframework/src/mx/events/AIREvent.as
+++ frameworks/projects/airframework/src/mx/events/AIREvent.as
@@ -22,7 +22,7 @@
  *  @see mx.core.Window
  *  @see mx.core.WindowedApplication
  *
- *  @productversion Apollo 1.0
+ *  @playerversion AIR 1.1
  */
 public class AIREvent extends Event
 {


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

--- frameworks/projects/framework/src/mx/events/EffectEvent.as
+++ frameworks/projects/framework/src/mx/events/EffectEvent.as
@@ -0,0 +1,142 @@
+package mx.events
+{
+
+import flash.events.Event;
+import mx.effects.IEffectInstance;
+
+/**
+ *  Represents event objects that are specific to Flex effects.
+ *  Flex effects dispatch the following types of events:
+ *

+ *
effectStart

+ *
effectEnd

+ *

+ *
+ *  @see mx.effects.Effect
+ */
+public class EffectEvent extends Event
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  The EffectEvent.EFFECT_END constant defines the value of the
+     *  type property of the event object for an
+     *  effectEnd event.
+	 *
+	 *
The properties of the event object have the following values:

+	 *

+	 *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

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

+     *
effectInstance	The effect instance object
+     *       for the event.

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

+	 *

+	 *
+	 *  @see mx.effects.Effect
+     *
+     *  @eventType effectEnd
+	 */
+	public static const EFFECT_END:String = "effectEnd";
+
+	/**
+     *  The EffectEvent.EFFECT_START constant defines the value of the
+     *  type property of the event object for an
+     *  effectStart event.
+     *
+	 *
The properties of the event object have the following values:

+	 *

+	 *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

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

+     *
effectInstance	The effect instance object
+     *       for the event.

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

+	 *

+	 *
+	 *  @see mx.effects.Effect
+     *
+     *  @eventType effectStart
+	 */
+	public static const EFFECT_START:String = "effectStart";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param eventType The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble up the
+	 *  display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior associated with the event can be prevented.
+	 *
+	 *  @param effectInstance The effect instance that triggered the event.
+	 */
+	public function EffectEvent(eventType:String, bubbles:Boolean = false,
+								cancelable:Boolean = false,
+								effectInstance:IEffectInstance = null)
+	{
+		super(eventType, bubbles, cancelable);
+
+		this.effectInstance = effectInstance;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  effectInstance
+	//----------------------------------
+
+	/**
+	 *  The effect instance object for the event.
+	 *  You can use this property to access the properties of the effect
+	 *  instance object from within your event listener.
+	 */
+	public var effectInstance:IEffectInstance;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: Event
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function clone():Event
+	{
+		return new EffectEvent(type, bubbles, cancelable, effectInstance);
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19060
Author:   harishs@adobe.com
Date:     2010-12-06T17:34:15.020965Z

Log Message:
-----------
QE notes: Did checkintests, performed full cyclone run. There were 19 failures in mustella report. QE Judy (Mingzhou Gao and Joann Chung Anderson) confirmed that they are known problems.
Doc notes: As part of Sort and Sortfield updates, the asdoc comments were updated to reflect globalization changes.
Bugs: Fixed sdk-28493, 28691,28494, 28345, 28320, 28387, 28314, 28145
Reviewer: Gordon Smith
Tests run: cyclone, checkintests, bugs testfiles
Is noteworthy for integration: Sort and Sortfield updated with globalization support using the new spark globalization sort classes.
Number and CurrencyValidators support national digits and unicode minus symbols.
groupingPattern property dropped for Number and Currency Validators.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ICollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/bundles/en_US/validators.properties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/DefaultCubeImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/SortTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/SortTests.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -21,8 +21,9 @@

 import mx.collections.ICollectionView;
 import mx.collections.IList;
+import mx.collections.ISort;
+import mx.collections.ISortField;
 import mx.collections.Sort;
-import mx.collections.SortField;
 import mx.core.EventPriority;
 import mx.core.IFactory;
 import mx.core.IIMESupport;
@@ -3435,7 +3436,7 @@
         if (!dataProvider)
             return false;

-        var sort:Sort = dataProvider.sort;
+        var sort:ISort = dataProvider.sort;
         if (sort)
             sort.compareFunction = null;
         else
@@ -3478,7 +3479,7 @@
                 return null;

             const isComplexDataField:Boolean = (dataField && (dataField.indexOf(".") != -1));
-            var sortField:SortField = null;
+            var sortField:ISortField = null;
             var sortDescending:Boolean = col.sortDescending;

             // Check if we just sorted this column.
@@ -3518,12 +3519,12 @@
      *  @param fields The array of SortFields to search through.
      *  @param isComplexDataField true if the dataField is a path.
      */
-    private static function findSortField(dataField:String, fields:Array, isComplexDataField:Boolean):SortField
+    private static function findSortField(dataField:String, fields:Array, isComplexDataField:Boolean):ISortField
     {
         if (dataField == null)
             return null;

-        for each (var field:SortField in fields)
+        for each (var field:ISortField in fields)
         {
             var name:String = field.name;
             if (isComplexDataField && (field is GridSortField))
@@ -4350,4 +4351,4 @@
     }

 }
-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16998
Author:   clucier@adobe.com
Date:     2010-07-21T19:16:05.555924Z

Log Message:
-----------
Fix to allow helpContent children to be state specific.  No longer use DI factory to hold children and moved to model that Panel uses for it's control bar content.

QE notes: None
Doc notes: None
Bugs: SDK-26741
Reviewer: Jason
Tests run: Checkin
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/FormItem.as
+++ frameworks/projects/spark/src/spark/components/FormItem.as
@@ -129,33 +129,35 @@
     //----------------------------------
     //  helpContent
     //----------------------------------
-    private var _helpContent:IDeferredInstance;
+    private var _helpContent:Array;
     private var helpContentChanged:Boolean = false;

-    [Bindable("labelChanged")]
+    [Bindable("helpContentChanged")]
     [Inspectable(category="General", defaultValue="")]

-    /**
-     *  A factory object that creates the mxmlContent for the
-     *  helpContentGroup skin part.
+    /**
+     *  The set of components to include in the help content
+     *  area of the FormItem.
      *
-     *  @default undefined
-     */
-    public function set helpContent(value:IDeferredInstance):void
+     *  @default null
+     */
+    public function get helpContent():Array
+    {
+        if (helpContentGroup)
+            return helpContentGroup.getMXMLContent();
+        else
+            return _helpContent;
+    }
+
+    /**
+     *  @private
+     */
+    public function set helpContent(value:Array):void
     {
         _helpContent = value;
         helpContentChanged = true;
         invalidateProperties();
     }
-
-    /**
-     *  @private
-     */
-    public function get helpContent():IDeferredInstance
-    {
-        return _helpContent;
-    }
-

     //----------------------------------
     //  label
@@ -431,14 +433,8 @@
     {
         if (_helpContent && helpContentGroup && helpContentChanged)
         {
-            helpContentChanged = false;
-
-            var content:Object = _helpContent.getInstance();
-
-            if (!(content is Array))
-                content = [content];
-
-            helpContentGroup.mxmlContent = content as Array;
+            helpContentChanged = false;
+            helpContentGroup.mxmlContent = _helpContent;
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3756
Author:   gruehle@adobe.com
Date:     2008-10-20T21:38:18.681299Z

Log Message:
-----------
Adding placeholder icons for the Gumbo components that appear in the FB components panel. Where possible, these are simply copies of the Halo icons. There were some that didn't have a direct Halo counterpart, so the closest match was chosen.

QE Notes: None
Doc Notes: None
Bugs: SDK-17668
Reviewer: -

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextInput.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/HGroup.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/VGroup.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/HGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxCheckBox.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxCheckBox.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.png</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -27,6 +27,8 @@

 [DefaultProperty("viewport")]
+
+[IconFile("FxScroller.png")]

 /**
  *  The FxScroller component displays a single scrollable component,


Transferred from the Adobe Open Source Subversion Repository

Revision: 22209
Author:   smgilson@adobe.com
Date:     2011-08-25T16:00:14.337841Z

Log Message:
-----------
Update ASdoc for List Item Snapping and On-Demand scrollbar specs

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

Modified Paths:
--------------
<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/spark/src/spark/components/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -337,6 +337,15 @@
  *  verticalScrollPosition properties.
  *  scroll bars make it possible to view the area defined by the viewport's
  *  contentWidth and contentHeight properties.

+ *
+ *
You can directly set properties on the component wrapped by the Scroller by
+ *  using the Scroller.viewport property.
+ *  For example, you can modify the viewport's horizontalScrollPosition and
+ *  verticalScrollPosition properties.

+ *
+ *
To directly access the scroll bar instances, either HScrollBar or VScrollBar,
+ *  created by the Scroller, use the Scroller.horizontalScrollBar and
+ *  Scroller.verticalScrollBar properties.

  *
  *
You can combine scroll bars with explicit settings for the container's viewport.
  *  The viewport settings determine the initial position of the viewport,
@@ -610,9 +619,9 @@
      */
     mx_internal function set pullEnabled(value:Boolean):void
     {
-		if (_pullEnabled == value)
-			return;
-
+        if (_pullEnabled == value)
+            return;
+
         _pullEnabled = value;
         scrollRangesChanged = true;
         invalidateProperties();
@@ -636,9 +645,9 @@
      */
     mx_internal function set bounceEnabled(value:Boolean):void
     {
-		if (_bounceEnabled == value)
-			return;
-
+        if (_bounceEnabled == value)
+            return;
+
         _bounceEnabled = value;
         scrollRangesChanged = true;
         invalidateProperties();
@@ -870,7 +879,8 @@
      *  horizontalScrollBar skin part to that instance.
      *
      *  This property should be considered read-only. It is only
-     *  set by the Scroller's skin.
+     *  set by the Scroller's skin.
+     *  To access the HScrollBar instance, use horizontalScrollBar.
      */
     public var horizontalScrollBarFactory:IFactory;

@@ -953,6 +963,10 @@
      *
      *  When Scroller creates an instance of this part, it will set the
      *  verticalScrollBar skin part to that instance.
+     *
+     *  This property should be considered read-only. It is only
+     *  set by the Scroller's skin.
+     *  To access the VScrollBar instance, use verticalScrollBar.
      */
     public var verticalScrollBarFactory:IFactory;

@@ -1187,7 +1201,24 @@
     [Inspectable(category="General", defaultValue="false")]

     /**
-     *  Whether page scrolling is currently enabled for this Scroller
+     *  By default, for mobile applications, scrolling is pixel based.
+     *  The final scroll location is any pixel location based on
+     *  the drag and throw gesture.
+     *  Set pageScrollingEnabled to true to
+     *  enable page scrolling.
+     *
+     *
Note: This property is only valid when the interactionMode style
+     *  is set to touch, indicating a mobile application.

+     *
+     *
The size of the page is determined by the size of the viewport
+     *  of the scrollable component.
+     *  You can only scroll a single page at a time, regardless of the scroll gesture.

+     *
+     *
You must scroll at least 50% of the visible area of the component
+     *  to cause the page to change.
+     *  If you scroll less than 50%, the component remains on the current page.
+     *  Alternatively, if the velocity of the scroll is high enough, the next page display.
+     *  If the velocity is not high enough, the component remains on the current page.

      *
      *  @default false
      *
@@ -1229,16 +1260,34 @@
     [Inspectable(category="General", enumeration="none,leadingEdge,center,trailingEdge", defaultValue="none")]

     /**
-     *  The scroll snapping mode currently in effect for this Scroller
+     *  By default, for mobile applications, scrolling is pixel based.
+     *  The final scroll location is any pixel location based on
+     *  the drag and throw gesture.
+     *  Set pageScrollingEnabled to true to
+     *  enable scroll snapping.
+     *  With scroll snapping enabled, scrolling is pixel based,
+     *  but the content snaps to a final position based on the value of scrollSnappingMode.
      *
-     *
Changing this property to anything other than "off" may
+     *
Note: This property is only valid when the interactionMode style
+     *  is set to touch, indicating a mobile application.

+     *
+     *
For example, you scroll a List vertically with scrollSnappingMode
+     *  set to a value of leadingEdge.
+     *  The List control snaps to a final scroll position where the top list element
+     *  is aligned to the top of the list.

+     *
+     *
Changing this property to anything other than none can
      *  result in an immediate change in scroll position to ensure
-     *  an element is correctly "snapped" into position.  This change
-     *  in scroll position is not animated

+     *  an element is correctly snapped into position.
+     *  This change in scroll position is not animated

+     *
+     *
in MXML, the possible values are "leadingEdge", "center",
+     *  "trailingEdge", and "none".
+     *  ActionScript values are defined by spark.components.ScrollSnappingMode.

      *
      *  @see spark.components.ScrollSnappingMode
      *
-     *  @default "off"
+     *  @default "none"
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
@@ -1424,10 +1473,10 @@
         else if (canScrollVertically)
             scrollProperty = VERTICAL_SCROLL_POSITION;

-        // If there's an animation playing, we need
-        // to stop it before we snap the element into
-        // position.
-        stopAnimations();
+        // If there's an animation playing, we need
+        // to stop it before we snap the element into
+        // position.
+        stopAnimations();

         if (animate)
         {
@@ -1440,27 +1489,27 @@
             var snapMotionPath:Vector.<MotionPath> = Vector.<MotionPath>([new SimpleMotionPath(scrollProperty, null, snapScrollPosition)]);
             snapElementAnimation.motionPaths = snapMotionPath;
             snapElementAnimation.play();
-
-			return snapElementAnimation;
+
+            return snapElementAnimation;
         }
         else
         {
             viewport[scrollProperty] = snapScrollPosition;
-
-			return null;
-        }
-    }
-
-    /**
-     *  @private
-     */
-    private function stopAnimations():void
-    {
-        if (throwEffect && throwEffect.isPlaying)
-            throwEffect.stop();
-        if (snapElementAnimation && snapElementAnimation.isPlaying)
-            snapElementAnimation.stop();
-    }
+
+            return null;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function stopAnimations():void
+    {
+        if (throwEffect && throwEffect.isPlaying)
+            throwEffect.stop();
+        if (snapElementAnimation && snapElementAnimation.isPlaying)
+            snapElementAnimation.stop();
+    }

     //--------------------------------------------------------------------------
     //
@@ -2245,7 +2294,7 @@
     //  Touch scrolling methods
     //
     //--------------------------------------------------------------------------
-
+
     /**
      *  @private
      *  Add touch listeners
@@ -2580,11 +2629,11 @@
             {
                 installTouchListeners();

-                // Need to make sure the scroll ranges are updated now, since they may
-                // not have been if the scroller was in non-touch mode when the content
-                // was created/changed.
-                scrollRangesChanged = true;
-                invalidateProperties();
+                // Need to make sure the scroll ranges are updated now, since they may
+                // not have been if the scroller was in non-touch mode when the content
+                // was created/changed.
+                scrollRangesChanged = true;
+                invalidateProperties();

                 if (!touchScrollHelper)
                 {
@@ -3074,11 +3123,11 @@
     {
         stopThrowEffectOnMouseDown();

-        // If the snap animation is playing, we need to stop it
-        // before watching for a scroll and potentially beginning
+        // If the snap animation is playing, we need to stop it
+        // before watching for a scroll and potentially beginning
         // a new touch interaction.
-        if (snapElementAnimation && snapElementAnimation.isPlaying)
-            snapElementAnimation.stop();
+        if (snapElementAnimation && snapElementAnimation.isPlaying)
+            snapElementAnimation.stop();

         captureNextClick = false;

@@ -3091,7 +3140,7 @@
             Math.round(minSlopInches * Capabilities.screenDPI),
             dragEventThinning ? MAX_DRAG_RATE : NaN);
     }
-
+
     /**
      *  @private
      */
@@ -3114,7 +3163,7 @@

         var xMove:int = 0;
         var yMove:int = 0;
-
+
         if (canScrollHorizontally)
             xMove = dragX;

@@ -3147,7 +3196,7 @@
             newHSP = Math.min(Math.max(newHSP, -viewportWidth), maxHorizontalScrollPosition+viewportWidth);
             newVSP = Math.min(Math.max(newVSP, -viewportHeight), maxVerticalScrollPosition+viewportHeight);
         }
-
+
         viewport.horizontalScrollPosition = newHSP;
         viewport.verticalScrollPosition = newVSP;
     }
@@ -3252,141 +3301,141 @@
         // scrollbars in overlay mode
         skin.invalidateDisplayList();
     }
-
-	//--------------------------------------------------------------------------
-	//
-	//  Text selection auto scroll
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 *  When true, use the text selection scroll behavior instead of the
-	 *  typical "throw" behavior. This is only used when interactionMode="touch"
-	 */
-	mx_internal var textSelectionAutoScrollEnabled:Boolean = false;
-	private var textSelectionAutoScrollTimer:Timer;
-	private var minTextSelectionVScrollPos:int = 0;
-	private var maxTextSelectionVScrollPos:int = -1;
-	private var minTextSelectionHScrollPos:int = 0;
-	private var maxTextSelectionHScrollPos:int = -1;
-	private static const TEXT_SELECTION_AUTO_SCROLL_FPS:int = 10;
-
-	/**
-	 *  @private
-	 *  Change scroll behavior when selecting text.
-	 */
-	mx_internal function enableTextSelectionAutoScroll(enable:Boolean,
-					   minHScrollPosition:int = 0, maxHScrollPosition:int = -1,
-					   minVScrollPosition:int = 0, maxVScrollPosition:int = -1):void
-	{
-		if (getStyle("interactionMode") == InteractionMode.TOUCH)
-		{
-			this.textSelectionAutoScrollEnabled = enable;
-			this.minTextSelectionHScrollPos = minHScrollPosition;
-			this.maxTextSelectionHScrollPos = maxHScrollPosition;
-			this.minTextSelectionVScrollPos = minVScrollPosition;
-			this.maxTextSelectionVScrollPos = maxVScrollPosition;
-		}
-	}
-
-	/**
-	 *  @private
-	 */
-	mx_internal function setUpTextSelectionAutoScroll():void
-	{
-		if (!textSelectionAutoScrollTimer)
-		{
-			textSelectionAutoScrollTimer = new Timer(1000 / TEXT_SELECTION_AUTO_SCROLL_FPS);
-			textSelectionAutoScrollTimer.addEventListener(TimerEvent.TIMER,
-				textSelectionAutoScrollTimerHandler);
-
-			textSelectionAutoScrollTimer.start();
-		}
-	}
-
-	/**
-	 *  @private
-	 */
-	mx_internal function stopTextSelectionAutoScroll():void
-	{
-		if (textSelectionAutoScrollTimer)
-		{
-			textSelectionAutoScrollTimer.stop();
-			textSelectionAutoScrollTimer.removeEventListener(TimerEvent.TIMER,
-				textSelectionAutoScrollTimerHandler);
-			textSelectionAutoScrollTimer = null;
-		}
-	}
-
-	/**
-	 *  @private
-	 */
-	private function textSelectionAutoScrollTimerHandler(event:TimerEvent):void
-	{
-		const SLOW_SCROLL_THRESHOLD:int = 12;		// Distance from edge to trigger a slow scroll
-		const SLOW_SCROLL_SPEED:int = 20;			// Pixels per timer callback to scroll
-		const FAST_SCROLL_THRESHOLD:int = 3;		// Distance from edge to trigger a fast scroll
-		const FAST_SCROLL_DELTA:int = 30; 			// Added to SLOW_SCROLL_SPEED to determine fast speed
-
-		var newVSP:Number = viewport.verticalScrollPosition;
-		var newHSP:Number = viewport.horizontalScrollPosition;
-
-		if (canScrollHorizontally)
-		{
-			if (mouseX > width - SLOW_SCROLL_THRESHOLD)
-			{
-				newHSP += SLOW_SCROLL_SPEED;
-
-				if (mouseX > width - FAST_SCROLL_THRESHOLD)
-					newHSP += FAST_SCROLL_DELTA;
-
-				if (maxTextSelectionHScrollPos != -1 && newHSP > maxTextSelectionHScrollPos)
-					newHSP = maxTextSelectionHScrollPos;
-			}
-
-			if (mouseX < SLOW_SCROLL_THRESHOLD)
-			{
-				newHSP -= SLOW_SCROLL_SPEED;
-
-				if (mouseX < FAST_SCROLL_THRESHOLD)
-					newHSP -= FAST_SCROLL_DELTA;
-
-				if (newHSP < minTextSelectionHScrollPos)
-					newHSP = minTextSelectionHScrollPos;
-    		}
-		}
-
-		if (canScrollVertically)
-		{
-			if (mouseY > height - SLOW_SCROLL_THRESHOLD)
-			{
-				newVSP += SLOW_SCROLL_SPEED;
-
-				if (mouseY > height - FAST_SCROLL_THRESHOLD)
-					newVSP += FAST_SCROLL_DELTA;
-
-				if (maxTextSelectionVScrollPos != -1 && newVSP > maxTextSelectionVScrollPos)
-					newVSP = maxTextSelectionVScrollPos;
-			}
-
-			if (mouseY < SLOW_SCROLL_THRESHOLD)
-			{
-				newVSP -= SLOW_SCROLL_SPEED;
-
-				if (mouseY < FAST_SCROLL_THRESHOLD)
-					newVSP -= FAST_SCROLL_DELTA;
-
-				if (newVSP < minTextSelectionVScrollPos)
-					newVSP = minTextSelectionVScrollPos;
-			}
-		}
-
-		if (newHSP != viewport.horizontalScrollPosition)
-			viewport.horizontalScrollPosition = newHSP;
-		if (newVSP != viewport.verticalScrollPosition)
-			viewport.verticalScrollPosition = newVSP;
-	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Text selection auto scroll
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  When true, use the text selection scroll behavior instead of the
+     *  typical "throw" behavior. This is only used when interactionMode="touch"
+     */
+    mx_internal var textSelectionAutoScrollEnabled:Boolean = false;
+    private var textSelectionAutoScrollTimer:Timer;
+    private var minTextSelectionVScrollPos:int = 0;
+    private var maxTextSelectionVScrollPos:int = -1;
+    private var minTextSelectionHScrollPos:int = 0;
+    private var maxTextSelectionHScrollPos:int = -1;
+    private static const TEXT_SELECTION_AUTO_SCROLL_FPS:int = 10;
+
+    /**
+     *  @private
+     *  Change scroll behavior when selecting text.
+     */
+    mx_internal function enableTextSelectionAutoScroll(enable:Boolean,
+                       minHScrollPosition:int = 0, maxHScrollPosition:int = -1,
+                       minVScrollPosition:int = 0, maxVScrollPosition:int = -1):void
+    {
+        if (getStyle("interactionMode") == InteractionMode.TOUCH)
+        {
+            this.textSelectionAutoScrollEnabled = enable;
+            this.minTextSelectionHScrollPos = minHScrollPosition;
+            this.maxTextSelectionHScrollPos = maxHScrollPosition;
+            this.minTextSelectionVScrollPos = minVScrollPosition;
+            this.maxTextSelectionVScrollPos = maxVScrollPosition;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function setUpTextSelectionAutoScroll():void
+    {
+        if (!textSelectionAutoScrollTimer)
+        {
+            textSelectionAutoScrollTimer = new Timer(1000 / TEXT_SELECTION_AUTO_SCROLL_FPS);
+            textSelectionAutoScrollTimer.addEventListener(TimerEvent.TIMER,
+                textSelectionAutoScrollTimerHandler);
+
+            textSelectionAutoScrollTimer.start();
+        }
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function stopTextSelectionAutoScroll():void
+    {
+        if (textSelectionAutoScrollTimer)
+        {
+            textSelectionAutoScrollTimer.stop();
+            textSelectionAutoScrollTimer.removeEventListener(TimerEvent.TIMER,
+                textSelectionAutoScrollTimerHandler);
+            textSelectionAutoScrollTimer = null;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function textSelectionAutoScrollTimerHandler(event:TimerEvent):void
+    {
+        const SLOW_SCROLL_THRESHOLD:int = 12;       // Distance from edge to trigger a slow scroll
+        const SLOW_SCROLL_SPEED:int = 20;           // Pixels per timer callback to scroll
+        const FAST_SCROLL_THRESHOLD:int = 3;        // Distance from edge to trigger a fast scroll
+        const FAST_SCROLL_DELTA:int = 30;           // Added to SLOW_SCROLL_SPEED to determine fast speed
+
+        var newVSP:Number = viewport.verticalScrollPosition;
+        var newHSP:Number = viewport.horizontalScrollPosition;
+
+        if (canScrollHorizontally)
+        {
+            if (mouseX > width - SLOW_SCROLL_THRESHOLD)
+            {
+                newHSP += SLOW_SCROLL_SPEED;
+
+                if (mouseX > width - FAST_SCROLL_THRESHOLD)
+                    newHSP += FAST_SCROLL_DELTA;
+
+                if (maxTextSelectionHScrollPos != -1 && newHSP > maxTextSelectionHScrollPos)
+                    newHSP = maxTextSelectionHScrollPos;
+            }
+
+            if (mouseX < SLOW_SCROLL_THRESHOLD)
+            {
+                newHSP -= SLOW_SCROLL_SPEED;
+
+                if (mouseX < FAST_SCROLL_THRESHOLD)
+                    newHSP -= FAST_SCROLL_DELTA;
+
+                if (newHSP < minTextSelectionHScrollPos)
+                    newHSP = minTextSelectionHScrollPos;
+            }
+        }
+
+        if (canScrollVertically)
+        {
+            if (mouseY > height - SLOW_SCROLL_THRESHOLD)
+            {
+                newVSP += SLOW_SCROLL_SPEED;
+
+                if (mouseY > height - FAST_SCROLL_THRESHOLD)
+                    newVSP += FAST_SCROLL_DELTA;
+
+                if (maxTextSelectionVScrollPos != -1 && newVSP > maxTextSelectionVScrollPos)
+                    newVSP = maxTextSelectionVScrollPos;
+            }
+
+            if (mouseY < SLOW_SCROLL_THRESHOLD)
+            {
+                newVSP -= SLOW_SCROLL_SPEED;
+
+                if (mouseY < FAST_SCROLL_THRESHOLD)
+                    newVSP -= FAST_SCROLL_DELTA;
+
+                if (newVSP < minTextSelectionVScrollPos)
+                    newVSP = minTextSelectionVScrollPos;
+            }
+        }
+
+        if (newHSP != viewport.horizontalScrollPosition)
+            viewport.horizontalScrollPosition = newHSP;
+        if (newVSP != viewport.verticalScrollPosition)
+            viewport.verticalScrollPosition = newVSP;
+    }

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


For now, don't register /tell here in actionscript land.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@4625 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/crowd/chat/client/ChatDirector.as
+++ src/as/com/threerings/crowd/chat/client/ChatDirector.as
@@ -99,7 +99,7 @@
         registerCommandHandler(msg, "speak", new SpeakHandler());
         registerCommandHandler(msg, "emote", new EmoteHandler());
         registerCommandHandler(msg, "think", new ThinkHandler());
-        registerCommandHandler(msg, "tell", new TellHandler());
+//        registerCommandHandler(msg, "tell", new TellHandler());
         registerCommandHandler(msg, "broadcast", new BroadcastHandler());
     }


Added a way to suppress the feedback generated when a mute is changed.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5694 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/crowd/chat/client/MuteDirector.as
+++ src/as/com/threerings/crowd/chat/client/MuteDirector.as
@@ -95,18 +95,15 @@
     /**
      * Mute or unmute the specified user.
      */
-    public function setMuted (username :Name, mute :Boolean) :void
+    public function setMuted (username :Name, mute :Boolean, giveFeedback :Boolean = true) :void
     {
         var changed :Boolean = mute ? _mutelist.add(username) : _mutelist.remove(username);
-        var feedback :String;
-        if (mute) {
-            feedback = "m.muted";
-        } else {
-            feedback = changed ? "m.unmuted" : "m.notmuted";
+
+        if (giveFeedback) {
+            var feedback :String = mute ? "m.muted"
+                : (changed ? "m.unmuted" : "m.notmuted");
+            _chatdir.displayFeedback(null, MessageBundle.tcompose(feedback, username));
         }
-
-        // always give some feedback to the user
-        _chatdir.displayFeedback(null, MessageBundle.tcompose(feedback, username));

         // if the mutelist actually changed, notify observers
         if (changed) {


All commands ported, now needs debugging and tidying

--- src/com/angrylawyer/talkingboard/controls/Planchette.as
+++ src/com/angrylawyer/talkingboard/controls/Planchette.as
@@ -10,6 +10,7 @@
     import flash.ui.Mouse;
     import flash.ui.MouseCursor;

+    import com.greensock.TweenLite;
     import com.angrylawyer.talkingboard.helpers.Assets;
     import com.angrylawyer.talkingboard.vo.Glyph;
     import com.angrylawyer.talkingboard.helpers.SentenceBuilder;
@@ -30,6 +31,8 @@
         private var possessed:Boolean = false;
         private var currentPersonality:BasePersonality = null;

+        private var mover:TweenLite = null;
+
         public function Planchette():void
         {
             var graphic:BitmapAsset = new Assets.Planchette();
@@ -56,6 +59,7 @@
             possessionTimer = new Timer(1000 * (minimumPossessionDelay + Math.floor(Math.random() * randomPossessionDelay)), 1);
             possessionTimer.addEventListener(TimerEvent.TIMER_COMPLETE, startPossession, false, 0, true);
             possessionTimer.start();
+            //initiateMovement(SentenceBuilder.generateSentence(";:. 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
         }

         private function onMouseMove(event:MouseEvent):void
@@ -122,7 +126,7 @@
         {
             possessed = false;
             glyphs.removeAll();
-            //mover.stop();
+            killTween();
         }

         private function controlLost():void
@@ -164,21 +168,40 @@
             }

             var nextGlyph:Glyph = glyphs.removeItemAt(0) as Glyph;
-            //mover.stop();
-            //mover.duration = calculateDistance(this.x - offset.x, this.y - offset.y, nextGlyph.position.x - offset.x, nextGlyph.position.y - offset.y) / currentPersonality.getSpeed();
-            //mover.xTo = nextGlyph.position.x - offset.x;
-            //mover.yTo = nextGlyph.position.y - offset.y;
+            killTween();
+
+            var distance:Number = calculateDistance(this.x - offset.x,
+                                                    this.y - offset.y,
+                                                    nextGlyph.position.x - offset.x,
+                                                    nextGlyph.position.y - offset.y);
+
+            var duration:Number = distance / currentPersonality.getSpeed();
+
+            mover = new TweenLite(this, duration, {
+                x: nextGlyph.position.x - offset.x,
+                y: nextGlyph.position.y - offset.y,
+                onComplete: nextMove
+            });

             if (!initialPause)
             {
-                //mover.startDelay = currentPersonality.getPauseLength();
+                mover.delay = currentPersonality.getPauseLength();
             }
             else
             {
-                //mover.startDelay = currentPersonality.getPauseLength() * 2;
-            }
-
-            //mover.play();
+                mover.delay = currentPersonality.getPauseLength() * 2;
+            }
+
+            mover.play();
+        }
+
+        private function killTween():void
+        {
+            if (mover)
+            {
+                mover.kill();
+                mover = null;
+            }
         }

         private function calculateDistance(x1:Number, y1:Number, x2:Number, y2:Number):Number


Transferred from the Adobe Open Source Subversion Repository

Revision: 19940
Author:   chiedozi@adobe.com
Date:     2011-01-25T22:15:05.923796Z

Log Message:
-----------
Removing Flash @playerversion tags from ASDocs for ViewNavigator components

QE notes:
Doc notes:
Bugs: SDK-29208
Reviewer: Ryan
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewReturnObject.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorAction.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewDescriptor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
@@ -27,7 +27,6 @@
  * @see spark.components.TabbedViewNavigatorApplication
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -42,7 +41,6 @@
      *  Constructor.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -63,7 +61,6 @@
      * The tabbed navigator for the application
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -74,7 +71,6 @@
      *  Creates an action menu from this factory when the menu button is pressed
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 8618
Author:   mhorn@adobe.com
Date:     2009-07-16T14:35:58.279240Z

Log Message:
-----------
asdoc bug fixes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/netmon/NetworkMonitor.as</path>

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

--- frameworks/projects/framework/src/mx/styles/CSSSelector.as
+++ frameworks/projects/framework/src/mx/styles/CSSSelector.as
@@ -36,7 +36,7 @@
      *
      *  @param subject The plain representation of this selector without
      *  conditions or ancestors. This is typically a fully-qualified class name; for example,
-     *  "spark.components.Button".
+     *  "spark.components.Button". You can use "*" to match all components or "global" for a global selector.
      *
      *  @param conditions  An optional Array of objects of type CSSCondition that is used to match a
      *  subset of component instances. Currently only a single or a pair of


FLEX-33477: Update ComboBox.as setSelectedIndex ASDOC comments to match that of the ListBase

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -885,7 +885,12 @@
     }

     /**
-     * @private
+     *  @copy spark.components.supportClasses.ListBase#setSelectedIndex()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override public function setSelectedIndex(value:int, dispatchChangeEvent:Boolean = false, changeCaret:Boolean = true):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17042
Author:   cframpto@adobe.com
Date:     2010-07-23T16:04:29.868893Z

Log Message:
-----------
PARB changes for DataGrid selection

removed from DG and/or Grid:
allSelectedCells()
allSelectedIndices()
selectionContainsOnlyCell()
selectionContainsOnlyCellRegion()
selectionContainsOnlyIndex()
selectionContainsOnlyIndices()

these read-only properties have been added to Grid:
selectedCell
selectedCells
selectedIndex
selectedIndices
selectedItem
selectedItems
selectionLength

new CellRegion and CellPosition classes.  Return Vector.<CellPosition> rather than Vector.<Object> for cell selection.

Signature of getCellsAt changed to return Vector.<CellPosition>
Signature of GridSelectionEvent changed to have one arg, selectionChange:CellRegion.

QE notes: API changes so expect some test breakage
Doc notes:
Bugs:
Reviewer: Hans
Tests run: none
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridSelection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridSelectionEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/CellRegion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/CellPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Tree.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridContainerBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -13,6 +13,8 @@
 {
 import mx.events.FlexEvent;

+import spark.components.supportClasses.CellPosition;
+
 //--------------------------------------
 //  Events
 //--------------------------------------
@@ -167,10 +169,9 @@
     //  Public Methods
     //
     //--------------------------------------------------------------------------
-
-
+
     //----------------------------------
-    //  selection for rows and columns
+    //  selection for rows
     //----------------------------------

     /**
@@ -181,28 +182,12 @@
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    public function selectionContainsIndex(index:int):Boolean
-    {
-        if (grid)
-            return grid.selectionContainsIndex(index);
-        else
-            return gridSelection.containsRow(index);
-    }
-
-    /**
-     *  @copy spark.components.Grid#selectionContainsOnlyIndex()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function selectionContainsOnlyIndex(index:int):Boolean
-    {
-        if (grid)
-            return grid.selectionContainsOnlyIndex(index);
-        else
-            return gridSelection.containsOnlyRow(index);
+    public function selectionContainsIndex(rowIndex:int):Boolean
+    {
+        if (grid)
+            return grid.selectionContainsIndex(rowIndex);
+        else
+            return gridSelection.containsRow(rowIndex);
     }

     /**
@@ -213,30 +198,14 @@
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    public function selectionContainsIndices(indices:Vector.<int>):Boolean
-    {
-        if (grid)
-            return grid.selectionContainsIndices(indices);
-        else
-            return gridSelection.containsRows(indices);
-    }
-
-    /**
-     *  @copy spark.components.Grid#selectionContainsOnlyIndices()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function selectionContainsOnlyIndices(indices:Vector.<int>):Boolean
-    {
-        if (grid)
-            return grid.selectionContainsOnlyIndices(indices);
-        else
-            return gridSelection.containsOnlyRows(indices);
-    }
-
+    public function selectionContainsIndices(rowIndices:Vector.<int>):Boolean
+    {
+        if (grid)
+            return grid.selectionContainsIndices(rowIndices);
+        else
+            return gridSelection.containsRows(rowIndices);
+    }
+
     /**
      *  @copy spark.components.Grid#setSelectedIndex()
      *
@@ -245,17 +214,17 @@
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    public function setSelectedIndex(index:int):Boolean
-    {
-        var selectionChanged:Boolean;
-
-        if (grid)
-        {
-            selectionChanged = grid.setSelectedIndex(index);
-        }
-        else
-        {
-            selectionChanged = gridSelection.setRow(index);
+    public function setSelectedIndex(rowIndex:int):Boolean
+    {
+        var selectionChanged:Boolean;
+
+        if (grid)
+        {
+            selectionChanged = grid.setSelectedIndex(rowIndex);
+        }
+        else
+        {
+            selectionChanged = gridSelection.setRow(rowIndex);
             if (selectionChanged)
             {
                 invalidateDisplayList()
@@ -274,17 +243,17 @@
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    public function addSelectedIndex(index:int):Boolean
-    {
-        var selectionChanged:Boolean;
-
-        if (grid)
-        {
-            selectionChanged = grid.addSelectedIndex(index);
-        }
-        else
-        {
-            selectionChanged = gridSelection.addRow(index);
+    public function addSelectedIndex(rowIndex:int):Boolean
+    {
+        var selectionChanged:Boolean;
+
+        if (grid)
+        {
+            selectionChanged = grid.addSelectedIndex(rowIndex);
+        }
+        else
+        {
+            selectionChanged = gridSelection.addRow(rowIndex);
             if (selectionChanged)
             {
                 invalidateDisplayList()
@@ -303,68 +272,68 @@
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    public function removeSelectedIndex(index:int):Boolean
-    {
-        var selectionChanged:Boolean;
-
-        if (grid)
-        {
-            selectionChanged = grid.removeSelectedIndex(index);
-        }
-        else
-        {
-            selectionChanged = gridSelection.removeRow(index);
-            if (selectionChanged)
-            {
-                invalidateDisplayList()
-                dispatchFlexEvent(FlexEvent.VALUE_COMMIT);
-            }
-        }
-
-        return selectionChanged;
-    }
-
-    /**
-     *  @copy spark.components.Grid#selectIndices()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function selectIndices(indices:Vector.<int>):Boolean
-    {
-        var selectionChanged:Boolean;
-
-        if (grid)
-        {
-            selectionChanged = grid.selectIndices(indices);
-        }
-        else
-        {
-            selectionChanged = gridSelection.setRows(indices);
-            if (selectionChanged)
-            {
-                invalidateDisplayList()
-                dispatchFlexEvent(FlexEvent.VALUE_COMMIT);
-            }
-        }
-
-        return selectionChanged;
-    }
-
-    /**
-     *  @copy spark.components.Grid#allSelectedIndices()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function allSelectedIndices():Vector.<int>
-    {
-        if (grid)
-            return grid.allSelectedIndices();
+    public function removeSelectedIndex(rowIndex:int):Boolean
+    {
+        var selectionChanged:Boolean;
+
+        if (grid)
+        {
+            selectionChanged = grid.removeSelectedIndex(rowIndex);
+        }
+        else
+        {
+            selectionChanged = gridSelection.removeRow(rowIndex);
+            if (selectionChanged)
+            {
+                invalidateDisplayList()
+                dispatchFlexEvent(FlexEvent.VALUE_COMMIT);
+            }
+        }
+
+        return selectionChanged;
+    }
+
+    /**
+     *  @copy spark.components.Grid#setSelectedIndices()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function setSelectedIndices(rowIndices:Vector.<int>):Boolean
+    {
+        var selectionChanged:Boolean;
+
+        if (grid)
+        {
+            selectionChanged = grid.setSelectedIndices(rowIndices);
+        }
+        else
+        {
+            selectionChanged = gridSelection.setRows(rowIndices);
+            if (selectionChanged)
+            {
+                invalidateDisplayList()
+                dispatchFlexEvent(FlexEvent.VALUE_COMMIT);
+            }
+        }
+
+        return selectionChanged;
+    }
+
+    /**
+     *  @copy spark.components.Grid#selectedIndices()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function selectedIndices():Vector.<int>
+    {
+        if (grid)
+            return grid.selectedIndices;
         else
             return gridSelection.allRows();
     }
@@ -390,22 +359,6 @@
     }

     /**
-     *  @copy spark.components.Grid#selectionContainsOnlyCell()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function selectionContainsOnlyCell(rowIndex:int, columnIndex:int):Boolean
-    {
-        if (grid)
-            return grid.selectionContainsOnlyCell(rowIndex, columnIndex);
-        else
-            return gridSelection.containsOnlyCell(rowIndex, columnIndex);
-    }
-
-    /**
      *  @copy spark.components.Grid#selectionContainsCellRegion()
      *
      *  @langversion 3.0
@@ -427,32 +380,7 @@
                 rowIndex, columnIndex, rowCount, columnCount);
         }
     }
-
-    /**
-     *  @copy spark.components.Grid#selectionContainsOnlyCellRegion()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function selectionContainsOnlyCellRegion(rowIndex:int,
-                                                    columnIndex:int,
-                                                    rowCount:int,
-                                                    columnCount:int):Boolean
-    {
-        if (grid)
-        {
-            return grid.selectionContainsOnlyCellRegion(
-                rowIndex, columnIndex, rowCount, columnCount);
-        }
-        else
-        {
-            return gridSelection.containsOnlyCellRegion(
-                rowIndex, columnIndex, rowCount, columnCount);
-        }
-    }
-
+
     /**
      *  @copy spark.components.Grid#setSelectedCell()
      *
@@ -573,17 +501,17 @@
     }

     /**
-     *  @copy spark.components.Grid#allSelectedCells()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.0
-     *  @productversion Flex 4.5
-     */
-    public function allSelectedCells():Vector.<Object>
-    {
-        if (grid)
-            return grid.allSelectedCells();
+     *  @copy spark.components.Grid#selectedCells()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function selectedCells():Vector.<CellPosition>
+    {
+        if (grid)
+            return grid.selectedCells;
         else
             return gridSelection.allCells();
     }


Added check for null

Added check for null

Change-Id: Ib0642eae02d6dc4991eb57f37342a6d278e0c22e

--- WeaveCore/src/weave/compiler/Compiler.as
+++ WeaveCore/src/weave/compiler/Compiler.as
@@ -335,8 +335,10 @@
 		 * @return An Array containing all the tokens found in the expression.
 		 */
 		private function getTokens(expression:String):Array
-		{
+		{
 			var tokens:Array = [];
+			if (!expression)
+				return tokens;
 			var n:int = expression.length;
 			// get a flat list of tokens
 			var i:int = 0;


Transferred from the Adobe Open Source Subversion Repository

Revision: 22209
Author:   smgilson@adobe.com
Date:     2011-08-25T16:00:14.337841Z

Log Message:
-----------
Update ASdoc for List Item Snapping and On-Demand scrollbar specs

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

Modified Paths:
--------------
<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/spark/src/spark/components/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as
+++ frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as
@@ -13,15 +13,24 @@
 {

     /**
-     *  Values for the scrollSnappingMode property of the
-     *  List and Scroller classes
+     *  The ScrollSnappingMode class defines the enumeration values for
+     *  the scrollSnappingMode property of the List and Scroller classes.
      *
+     *  @see spark.components.List#scrollSnappingMode
+     *  @see spark.components.Scroller#scrollSnappingMode
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
      */
     public final class ScrollSnappingMode
     {
         /**
-         *  Scroll snapping is off
+         *  Scroll snapping is off.
          *
+         *  @langversion 3.0
+         *  @playerversion AIR 3
+         *  @productversion Flex 4.5.2
          */
         public static const NONE:String = "none";

@@ -29,12 +38,18 @@
          *  Elements are snapped to the left (horizontal) or top (vertical)
          *  edge of the viewport.
          *
+         *  @langversion 3.0
+         *  @playerversion AIR 3
+         *  @productversion Flex 4.5.2
          */
         public static const LEADING_EDGE:String = "leadingEdge";

         /**
          *  Elements are snapped to the center of the viewport.
          *
+         *  @langversion 3.0
+         *  @playerversion AIR 3
+         *  @productversion Flex 4.5.2
          */
         public static const CENTER:String = "center";

@@ -42,6 +57,9 @@
          *  Elements are snapped to the right (horizontal) or bottom (vertical)
          *  edge of the viewport.
          *
+         *  @langversion 3.0
+         *  @playerversion AIR 3
+         *  @productversion Flex 4.5.2
          */
         public static const TRAILING_EDGE:String = "trailingEdge";


Add type generics to AS3 test file.

Add type generics to AS3 test file.

--- tests/examplefiles/as3_test.as
+++ tests/examplefiles/as3_test.as
@@ -7,7 +7,7 @@
 			private static const ADD_SONG:uint = 1;
 			private static const SONG_DETAIL:uint = 2;

-			private var playList:PlayList = new PlayList();
+			private var playList:PlayList = new PlayList.<T>();

 			private function initApp():void
 			{
@@ -24,7 +24,7 @@
 			}

-			private function sortList(sortField:SortProperty):void
+			private function sortList(sortField:SortProperty.<T>):void
 			{
 				// Make all the sort type buttons enabled.
 				// The active one will be grayed-out below


Conditional Syllogism added

Conditional Syllogism added

--- Arguments/src/classes/Inference.as
+++ Arguments/src/classes/Inference.as
@@ -254,14 +254,25 @@
 			var optionsArr:Array = ["And","Or"];
 			if( (!claim.statementNegated) && claim.inference != null)
 			{
-				typeArr.splice(1,1);
-				typeArr.splice(3,1);
+				//typeArr.splice(1,1);
+				//typeArr.splice(3,1);
+				typeArr.splice(typeArr.indexOf(ParentArg.MOD_TOL,0),1);
+				typeArr.splice(typeArr.indexOf(ParentArg.NOT_ALL_SYLL,0),1);
 			}
 			else if(claim.statementNegated && claim.inference != null)
 			{
 				typeArr = ["Modus Tollens", "Not-All Syllogism"];
 			}

+			if(!claim.multiStatement)
+			{
+				typeArr.splice(typeArr.indexOf(ParentArg.COND_SYLL,0),1);
+			}
+			else
+			{
+				typeArr = [];
+				typeArr.splice(0,0,"Conditional Syllogism");
+			}

 			if(claim.multiStatement && claim.inference != null)
 			{


Bugfix for https://github.com/happyworm/jPlayer/issues/197

The stream was waiting for the buffer to sync up, but a stream never has a 'end' value.

With the 'if' I feel confident that it will not affect normal mp4 playing.

--- src/actionscript/happyworm/jPlayer/JplayerMp4.as
+++ src/actionscript/happyworm/jPlayer/JplayerMp4.as
@@ -342,6 +342,7 @@
 		}
 		public function getLoadRatio():Number {
 			if((myStatus.isLoading || myStatus.isLoaded) && myStream.bytesTotal > 0) {
+				if( myStream.bytesTotal == uint.MAX_VALUE && myStream.bytesLoaded > 2048 ) return 1; //Hackfix for AAC+ streams. 2048 is just a randomly selected number.
 				return myStream.bytesLoaded / myStream.bytesTotal;
 			} else if (myStatus.isLoaded && myStream.bytesLoaded > 0) {
 				return 1;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/ISWFLoader.as
+++ frameworks/projects/framework/src/mx/core/ISWFLoader.as
@@ -18,6 +18,11 @@
 /**
  *  The ISWFLoader interface defines an API with special properties
  *  and method required when loading compatible applications and untrusted applications.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface ISWFLoader extends ISWFBridgeProvider
 {
@@ -42,6 +47,11 @@
      *  If false, the content loaded into a child ApplicationDomain.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get loadForCompatibility():Boolean;

@@ -62,6 +72,11 @@
      *
      *  @return A Rectangle that includes the visible portion of this
      *  object. The rectangle uses global coordinates.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function getVisibleApplicationRect(allApplications:Boolean=false):Rectangle;


Transferred from the Adobe Open Source Subversion Repository

Revision: 23292
Author:   cframpto@adobe.com
Date:     2012-01-11T19:34:51.110620Z

Log Message:
-----------
Remove AdobePatentID="9999" strings per directions from legal.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/apache/modules/compiler/src/java/flex2/compiler/as3/SkinPartExtension.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/modules/compiler/src/java/flex2/compiler/mxml/gen/StatesGenerator.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/modules/compiler/src/java/flex2/compiler/CompilerAPI.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/modules/compiler/src/java/flex2/compiler/as3/SkinPartEvaluator.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/modules/compiler/src/java/flex2/compiler/as3/binding/TypeAnalyzer.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/modules/compiler/src/java/flex2/compiler/mxml/rep/StatesModel.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/apache/frameworks/projects/framework/src/mx/states/AddItems.as</path>

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