Transferred from the Adobe Open Source Subversion Repository

Revision: 19887
Author:   jszeto@adobe.com
Date:     2011-01-22T00:21:36.826316Z

Log Message:
-----------
Mobile SoftKeyboard support updates

Changed Scroller.ensureFocusedElementIsVisible property to a function called ensureElementIsVisible
Changed Scroller auto-scroll behavior to only occur when the soft keyboard is opening

SDK-29211 - Focused TextInput doesn't autoscroll in Scroller when softKeyboard opens

Clear the focusedElement in focusOutHandler

SDK-29196 - If the SoftKeyboard is deactivated while the Scroller is currently animating a throw, the Scroller is left in a bad scroll position

Stop the throw animation when the softKeyboard is deactivated

SDK-29172 - Clicking on a nested List causes the outer scroll position to change

Removed the auto-scroll behavior of Scroller in most cases.

QE notes: none
Doc notes: Need to update the ASDoc of the new Scroller.ensureElementIsVisible function
Bugs: SDK-29211, SDK-29196, SDK-29172
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ListSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ListSkin.as
@@ -16,6 +16,7 @@
 import flash.display.Sprite;

 import mx.core.ClassFactory;
+import mx.core.mx_internal;

 import spark.components.DataGroup;
 import spark.components.List;
@@ -23,6 +24,8 @@
 import spark.layouts.HorizontalAlign;
 import spark.layouts.VerticalLayout;
 import spark.skins.mobile.supportClasses.MobileSkin;
+
+use namespace mx_internal;

 /**
  *  ActionScript-based skin for the List components in mobile applications.
@@ -134,7 +137,7 @@
             scroller = new Scroller();
             scroller.minViewportInset = 1;
             scroller.hasFocusableChildren = false;
-            scroller.ensureFocusedElementIsVisible = false;
+            scroller.ensureElementIsVisibleForSoftKeyboard = false;
             addChild(scroller);
         }


Updated VolumetricPointLight example (last bugfix kinda broke it).

--- examples/PointLightDemo.as
+++ examples/PointLightDemo.as
@@ -21,7 +21,7 @@
 			stage.scaleMode = "noScale";

 			// Create a VolumetricPointLight object, use the grid as the occlusion object.
-			fx = new VolumetricPointLight(800, 600, grid, [0xc08040, 0x4080c0, 0], [1, 1, 1], [0, 20, 30]);
+			fx = new VolumetricPointLight(800, 600, grid, [0xc08040, 0x4080c0, 0]);
 			// You can also specify a single color instead of gradient params, for example:
 			//   fx = new VolumetricPointLight(800, 600, grid, 0xc08040);
 			// is equivalent to:


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

--- frameworks/projects/advancedgrids/src/mx/olap/aggregators/SumAggregator.as
+++ frameworks/projects/advancedgrids/src/mx/olap/aggregators/SumAggregator.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.aggregators


Revert FLEX-34880 part 2

Revert FLEX-34880 part 2

This reverts commit ff4067f56651082cecbe062f9cfd2aedbe44bf60.

--- frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as
+++ frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as
@@ -25,7 +25,7 @@
     import mx.collections.Sort;
     import mx.collections.SortField;
     import mx.utils.ObjectUtil;
-    import mx.core.mx_internal;
+
     import org.flexunit.asserts.assertEquals;

     public class ListCollectionView_FLEX_34837_Tests {
@@ -87,7 +87,7 @@

             const sortByStreetAscending:Sort = new Sort();
             var sortField:SortField = new ComplexSortField("address.street", false, false, false);
-            sortField.mx_internal::compareFunction_ = compareByStreet;
+            sortField.compareFunction = compareByStreet;
             sortByStreetAscending.fields = [sortField];
             _sut.sort = sortByStreetAscending;


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/BusyIndicator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/BusyIndicator.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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: 18279
Author:   chiedozi@adobe.com
Date:     2010-10-21T21:54:20.944908Z

Log Message:
-----------
PARB changes
updatePropertiesForView was renamed updateControlsForView
exitApplicationOnBackKey is now mx_internal in ViewNavigator and MobileApplication classes

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

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/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -422,7 +422,7 @@
     /**
      *  @private
      */
-    override public function get exitApplicationOnBackKey():Boolean
+    override mx_internal function get exitApplicationOnBackKey():Boolean
     {
         return length <= 1;
     }
@@ -1095,7 +1095,7 @@
         // part in transitions. If the view change is processed during this validation,
         // the following flags will be false.
 		if (actionBarPropertyInvalidated)
-        	updatePropertiesForView(activeView);
+            updateControlsForView(activeView);

 		if (actionBarVisibilityInvalidated)
             commitVisibilityChanges();
@@ -1948,11 +1948,11 @@
         if (actionBar)
         {
             invalidateActionBarProperties();
-            updatePropertiesForView(pendingView);
+            updateControlsForView(pendingView);
         }

         if (parentNavigator)
-            parentNavigator.updatePropertiesForView(pendingView);
+            parentNavigator.updateControlsForView(pendingView);

         // Need to force state change by calling validate properties again
         if (overlayControls != pendingView.overlayControls)
@@ -2054,9 +2054,9 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    override public function updatePropertiesForView(view:View):void
-    {
-        super.updatePropertiesForView(view);
+    override public function updateControlsForView(view:View):void
+    {
+        super.updateControlsForView(view);

         if (!actionBar)
             return;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4078
Author:   jszeto@adobe.com
Date:     2008-11-12T01:41:52.278930Z

Log Message:
-----------
Add support for dataTips to Slider

SDK-16291 Implement data tip for slider

- Added new dynamic, optional skin part called "dataTip".
- Added dataTipFormatFunction, dataTipPrecision and showDataTip properties
- Added protected function positionDataTip
- Added dataTip skin part to FxHSliderSkin and FxVSliderSkin
- data tip is an IDataRenderer, so it can render any type of data

The data tip appearance is defined entirely by the skin. The position of the
data tip is calculated using a combination of the skin and the Slider controller.
The following properties were not retained from the Halo Slider:

- sliderDataTipClass (the skin part allows the developer to define the data tip type)
- dataTipStyleName (styling is defined on the skin part)
- dataTipOffset (the offset position is defined in the skin part)

SDK-16823 - Gumbo Slider does not support scroll wheel to increment / decrement value

Slider listens for scroll wheel events anywhere on or off the stage while it has focus.

QE Notes: Test new properties, functions and data tip behavior
Doc Notes: Added new properties and functions
Bugs: SDK-16291, SDK-16823
Reviewer: Glenn and Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</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/baseClasses/FxSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
@@ -13,8 +13,10 @@
 {

 import flash.events.Event;
+import flash.events.FocusEvent;
 import flash.events.MouseEvent;
 import flash.geom.Point;
+
 import mx.components.FxButton;

 /**
@@ -447,6 +449,22 @@
         var roundedValue:Number = nearestValidValue(newValue, stepSize);
         return roundedValue;
     }
+
+    /**
+     *  @private
+     */
+    override protected function focusInHandler(event:FocusEvent):void
+    {
+    	 addSystemHandlers(MouseEvent.MOUSE_WHEEL, system_mouseWheelHandler, stage_mouseWheelHandler);
+    }
+
+    /**
+     *  @private
+     */
+    override protected function focusOutHandler(event:FocusEvent):void
+    {
+    	removeSystemHandlers(MouseEvent.MOUSE_WHEEL, system_mouseWheelHandler, stage_mouseWheelHandler);
+    }

     //--------------------------------------------------------------------------
     //
@@ -470,6 +488,31 @@
             positionThumb(valueToPosition(value));
             tempTrackSize = trackSize;
         }
+    }
+
+    /**
+     *  Handles the mouseWheel event when the component is in focus. The thumb is
+     *  moved by the amount of the mouse event delta multiplied by the stepSize.
+     */
+    protected function system_mouseWheelHandler(event:MouseEvent):void
+    {
+    	var newValue:Number = nearestValidValue(value + event.delta * stepSize, stepSize);
+        positionThumb(valueToPosition(newValue));
+        setValue(newValue);
+    }
+
+    /**
+     *  @private
+     *  Handles the mouseWheel event when the component is in focus. The thumb is
+     *  moved by the amount of the mouse event delta multiplied by the stepSize.
+     */
+    protected function stage_mouseWheelHandler(event:MouseEvent):void
+    {
+    	if (event.target != stage)
+            return;
+
+        system_mouseWheelHandler(event);
+
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 1262
Author:   jimurphy@adobe.com
Date:     2008-04-16T18:53:40.899270Z

Log Message:
-----------
Merged revisions 1219,1241,1261 via svnmerge from
http://opensource.adobe.com/svn/opensource/flex/sdk/branches/3.0.x

........
  r1219 | gosmith@adobe.com | 2008-04-15 14:00:39 -0400 (Tue, 15 Apr 2008) | 1 line

  Fixed a problem with the bin/asdoc tool. asDocHelper and asDocHelper.linux in asdoc/templates need to have the svn:executable property set.
........
  r1241 | genovese@adobe.com | 2008-04-15 21:55:32 -0400 (Tue, 15 Apr 2008) | 1 line

  ASDoc updates, added missing parameter descriptions, etc.
........
  r1261 | mhorn@adobe.com | 2008-04-16 14:38:28 -0400 (Wed, 16 Apr 2008) | 1 line

  bug fix FlexDocs-420
........

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/asdoc/templates/asDocHelper.linux</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/asdoc/templates/asDocHelper</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/AbstractTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ActionEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/Consumer.as
+++ frameworks/projects/rpc/src/mx/messaging/Consumer.as
@@ -214,6 +214,9 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     * @private
+     */
     override protected function internalSend(message:IMessage, waitForClientId:Boolean = true):void
     {
         if (subtopic.length > 0)


Transferred from the Adobe Open Source Subversion Repository

Revision: 8169
Author:   jimurphy@adobe.com
Date:     2009-06-24T15:12:39.471115Z

Log Message:
-----------
Merged 3.x revisions 7748,7852,7966,8019,8033 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/DecodingContext.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/xml/XMLEncoder.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/XMLEncoder.as
@@ -15,12 +15,12 @@
 import flash.utils.ByteArray;
 import flash.utils.Dictionary;
 import mx.collections.ArrayCollection;
+import mx.collections.IList;
+import mx.messaging.config.LoaderConfig;
 import mx.utils.DescribeTypeCache;
 import mx.utils.object_proxy;
 import mx.utils.ObjectProxy;
 import mx.utils.ObjectUtil;
-import mx.collections.IList;
-import flash.system.Capabilities;

 [ExcludeClass]

@@ -35,22 +35,15 @@
     {
         super();

-        // Depending on the player type/version, xml characters in strings
-        // need or need not be escaped. AIR 1.5 ('Desktop' version 10) escapes
-        // these characters by default. For all other versions Flex needs to
+        // Depending on the target player version, xml characters in strings
+        // need or need not be escaped. Prior to version 10, Flex needs to
         // do it. The version test to determine this behavior is done here, so
         // that it's not repeated every time xml content is encoded. This is a
         // fix for bug SDK-18326.
-        if (flash.system.Capabilities.playerType == "Desktop")
-        {
-            var version:String = flash.system.Capabilities.version.split(' ')[1];
-            var majorVersion:Number = Number(version.split(',')[0]);
-            if (majorVersion >= 10)
-            {
-                _escapeXMLChars = false;
-            }
-        }
-
+        if (LoaderConfig.swfVersion >= 10)
+        {
+            _escapeXMLChars = false;
+        }
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 8483
Author:   smgilson@adobe.com
Date:     2009-07-09T17:52:48.367800Z

Log Message:
-----------
Second 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@1283765 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/effects/Scale.as
+++ frameworks/projects/spark/src/spark/effects/Scale.as
@@ -43,7 +43,7 @@
  *  and adds the following tag attributes:

  *
  *

- *  <mx:Scale
+ *  <s:Scale
  *    id="ID"
  *    scaleXBy="val"
  *    scaleXFrom="val"


added polyfill for Array.isArray()

added polyfill for Array.isArray()

--- WeaveAPI/src/JavaScript.as
+++ WeaveAPI/src/JavaScript.as
@@ -249,6 +249,8 @@
 					"var symbols = [NaN, Infinity, -Infinity];",
 					"for (var i in symbols)",
 					"    lookup[symbols[i] + JSON_SUFFIX] = symbols[i];",
+
+					"if (!Array.isArray) Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === '[object Array]'; };",

 					"function cacheProxyFunction(id) {",
 					"    var func = function() {",


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

--- frameworks/projects/advancedgrids/src/mx/olap/IOLAPQuery.as
+++ frameworks/projects/advancedgrids/src/mx/olap/IOLAPQuery.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: 14421
Author:   cframpto@adobe.com
Date:     2010-02-25T17:58:57.809794Z

Log Message:
-----------
Merge from 4.x mirroring PARB changes 14331, 14337, 14338.
Merge 14401 to fix clipping issue for right-aligned RichEditableText which had x < 0.
Merge 14402 to fix textAlignment issues for text with direction="rtl" for UIFTETextField and UITextField.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/IVisualElement.as
+++ frameworks/projects/framework/src/mx/core/IVisualElement.as
@@ -272,11 +272,14 @@

     /**
      *  Specifies the desired layout direction for a visual element: one of "ltr"
-     *  (left to right), "rtl" (right to left).
-     *
-     *  This property is typically backed by an inheriting style.  Classes like GraphicElement,
-     *  which implement IVisualElement but do not support styles, must additionally support an
-     *  explicit "inherit" value for this property.
+     *  (left to right), "rtl" (right to left), or null (inherit).
+     *
+     *  This property is typically backed by an inheriting style.  If null,
+     *  the layoutDirection style will be set to undefined.
+     *
+     *  Classes like GraphicElement, which implement IVisualElement but do not
+     *  support styles, must additionally support a null value for this property
+     *  which means the layoutDirection must be inherited from its parent.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


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

--- frameworks/projects/framework/src/mx/effects/TweenEffect.as
+++ frameworks/projects/framework/src/mx/effects/TweenEffect.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-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.
+//  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
+//
+//      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: 4958
Author:   rfrishbe@adobe.com
Date:     2009-02-13T23:07:46.243121Z

Log Message:
-----------
Change the initialization sequence of FxComponent and Group.  Basically now children (including the skin) should get created at createChildren() time and follow the correct lifecycle pattern.  Unfortunately, this change got mingled in with all my PARB changes, so I'm submitting a bunch of PARB changes for Group, DataGroup, FxContainer, and FxDataContainer, outlined below:

1.     New event classes/names for Group/FxContainer and DataGroup ("elementAdd" and "elementRemove" event of type ElementExistenceEvent for Group/FxContainer and "rendererAdd" and "rendererRemove" event of type RendererExistenceEvent for DataGroup). It was just one event class of ItemExistenceChangedEvent before.
2.     LayoutBase.clipContent->clipAndEnableScrolling (same with IViewport.clipContent and GroupBase.clipContent)
3.     GroupBase.getLayoutELementAt()->getElementAt()
4.     GroupBase.numLayoutElements -> numElements.
5.     LayoutBase.virtualLayout -> useVirtualLayout
6.     ScrollUnit constants are now changed to be uints instead of typed as ScrollUnit.  This means the signature for getHorizontalScrollPositionDelta(unit:ScrollUnit):Number has changed to getHorizontalScrollPositionDelta(scrollUnit:uint):Number (and ditto for getVerticalScrollPositionDelta())
7.  DataGroup.getRendererForItemAt() -> getElementAt()
8.  DataGroup.getItemIndexForRenderer() -> getElementIndex()

Other changes:
 - Change IVisualElement interface so that it's smaller now.  It also extends ILayoutElement now.  The properties removed from IVisualElement are: rotation, rotationX, rotationY, rotationZ, transformX, transformY, offsets, x, y, z, scaleX, scaleY, scaleZ, explicitWidth, explicitMinWidth, explicitMaxWidth, explicitHeight, explicitMinHeight, explicitMaxHeight)
-  Fix in DataGroup so we don’t remove/add elements if we’re gonna do it later anyways.  I also need to do some other work in here around cleaning up of renderers.
- AddItems fix around handling IVisualElementContainers more effeciently
- get mxmlContent now returns a copy of the Array rather than the one we're using internally
- Had to update mustella since there was special case logic for dealing with getLayoutElementAt().  I added this logic for getElementAt(), which replaces that method.

QE Notes: Thanks for changing all the tests and working on the cyclone
Doc Notes: Made some ASDoc changes to some core classes to move the comments into the interfaces.  I did update the comments a bit as well.
Bugs: SDK-18115, SDK-19004
Reviewer: Jason, Glenn, Hans for initialization sequence change and Hans for all PARB changes
tests: checkintests, all mustella tests

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/ItemExistenceChangedEvent.as" copyfrom-rev="4812" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/ElementExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IViewport.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/FxListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/RendererExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/ItemExistenceChangedEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/ScrollUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/mustella.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/ButtonBar.as
+++ frameworks/projects/spark/src/spark/components/ButtonBar.as
@@ -22,7 +22,7 @@
 import mx.core.ISelectableRenderer;
 import mx.core.IVisualElement;
 import mx.core.mx_internal;
-import mx.events.ItemExistenceChangedEvent;
+import mx.events.RendererExistenceEvent;
 import mx.managers.IFocusManagerComponent;

 [IconFile("FxButtonBar.png")]
@@ -158,7 +158,7 @@
 			for (var i:int = 0; i < n; i++)
 			{
 				var renderer:ISelectableRenderer =
-					dataGroup.getRendererForItemAt(i) as ISelectableRenderer;
+					dataGroup.getElementAt(i) as ISelectableRenderer;
 				if (renderer)
 					renderer.allowDeselection = !requiresSelection;
 			}
@@ -181,7 +181,7 @@
 				for (var i:int = 0; i < n; i++)
 				{
 					var renderer:ISelectableRenderer =
-						dataGroup.getRendererForItemAt(i) as ISelectableRenderer;
+						dataGroup.getElementAt(i) as ISelectableRenderer;
 					if (renderer)
 						renderer.enabled = enabled;
 				}
@@ -206,7 +206,7 @@
         super.itemSelected(index, selected);

         var renderer:ISelectableRenderer =
-			dataGroup.getRendererForItemAt(index) as ISelectableRenderer;
+			dataGroup.getElementAt(index) as ISelectableRenderer;

         if (renderer)
         {
@@ -224,9 +224,9 @@
         if (instance == dataGroup)
         {
             dataGroup.addEventListener(
-                ItemExistenceChangedEvent.ITEM_ADD, dataGroup_itemAddHandler);
+                RendererExistenceEvent.RENDERER_ADD, dataGroup_rendererAddHandler);
             dataGroup.addEventListener(
-                ItemExistenceChangedEvent.ITEM_REMOVE, dataGroup_itemRemoveHandler);
+                RendererExistenceEvent.RENDERER_REMOVE, dataGroup_rendererRemoveHandler);
         }
     }

@@ -238,9 +238,9 @@
         if (instance == dataGroup)
         {
             dataGroup.removeEventListener(
-                ItemExistenceChangedEvent.ITEM_ADD, dataGroup_itemAddHandler);
+                RendererExistenceEvent.RENDERER_ADD, dataGroup_rendererAddHandler);
             dataGroup.removeEventListener(
-                ItemExistenceChangedEvent.ITEM_REMOVE, dataGroup_itemRemoveHandler);
+                RendererExistenceEvent.RENDERER_REMOVE, dataGroup_rendererRemoveHandler);
         }

         super.partRemoved(partName, instance);
@@ -282,7 +282,7 @@
      *  @private
      *  Called when an item has been added to this component.
      */
-    private function dataGroup_itemAddHandler(event:ItemExistenceChangedEvent):void
+    private function dataGroup_rendererAddHandler(event:RendererExistenceEvent):void
     {
         var renderer:IEventDispatcher = IEventDispatcher(event.renderer);
         var index:int = event.index;
@@ -307,7 +307,7 @@
      *  @private
      *  Called when an item has been removed from this component.
      */
-    private function dataGroup_itemRemoveHandler(event:ItemExistenceChangedEvent):void
+    private function dataGroup_rendererRemoveHandler(event:RendererExistenceEvent):void
     {
         var renderer:Object = event.renderer;

@@ -321,7 +321,7 @@
      */
     private function item_clickHandler(event:MouseEvent):void
     {
-        var index:int = dataGroup.getItemIndexForRenderer(
+        var index:int = dataGroup.getElementIndex(
                             event.currentTarget as IVisualElement);

 		if (index == selectedIndex)
@@ -345,7 +345,7 @@
 		var n:int = dataProvider.length;
 		for (var i:int = 0; i < n; i++)
 		{
-			var renderer:IVisualElement = IVisualElement(dataGroup.getRendererForItemAt(i));
+			var renderer:IVisualElement = IVisualElement(dataGroup.getElementAt(i));
 			if (i == focusedIndex)
 				renderer.layer = 1;
 			else
@@ -366,14 +366,14 @@
             case Keyboard.UP:
             case Keyboard.LEFT:
             {
-				currentRenderer = dataGroup.getRendererForItemAt(focusedIndex) as ISelectableRenderer;
+				currentRenderer = dataGroup.getElementAt(focusedIndex) as ISelectableRenderer;
 				if (focusedIndex > 0)
 				{
 					if (currentRenderer)
 						currentRenderer.showFocusIndicator = false;
 					--focusedIndex;
 					adjustLayering(focusedIndex);
-					renderer = dataGroup.getRendererForItemAt(focusedIndex) as ISelectableRenderer;
+					renderer = dataGroup.getElementAt(focusedIndex) as ISelectableRenderer;
 					if (renderer)
 						renderer.showFocusIndicator = true;
 				}
@@ -383,14 +383,14 @@
             case Keyboard.DOWN:
             case Keyboard.RIGHT:
             {
-				currentRenderer = dataGroup.getRendererForItemAt(focusedIndex) as ISelectableRenderer;
+				currentRenderer = dataGroup.getElementAt(focusedIndex) as ISelectableRenderer;
 				if (focusedIndex < dataProvider.length - 1)
 				{
 					if (currentRenderer)
 						currentRenderer.showFocusIndicator = false;
 					++focusedIndex;
 					adjustLayering(focusedIndex);
-					renderer = dataGroup.getRendererForItemAt(focusedIndex) as ISelectableRenderer;
+					renderer = dataGroup.getElementAt(focusedIndex) as ISelectableRenderer;
 					if (renderer)
 						renderer.showFocusIndicator = true;
 				}
@@ -399,7 +399,7 @@
             }
             case Keyboard.SPACE:
             {
-				currentRenderer = dataGroup.getRendererForItemAt(focusedIndex) as ISelectableRenderer;
+				currentRenderer = dataGroup.getElementAt(focusedIndex) as ISelectableRenderer;
 				if (!currentRenderer || (currentRenderer.selected && requiresSelection))
 					return;
 				currentRenderer.selected = !currentRenderer.selected;
@@ -421,7 +421,7 @@
         if (n > 0 && index < n)
         {
 			var renderer:ISelectableRenderer =
-				dataGroup.getRendererForItemAt(index) as ISelectableRenderer;
+				dataGroup.getElementAt(index) as ISelectableRenderer;
 			if (renderer)
 				renderer.showFocusIndicator = focused;
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3148
Author:   gosmith@adobe.com
Date:     2008-09-08T22:01:15.712225Z

Log Message:
-----------
You can now use CSS styles to set the default text format for TextView. It no longer has any formatting properties. It supports the entire set of Gumbo text format styles.

SkinnableComponent and Group now also support all these styles. However, skins such as ButtonSkin, TextInputSkin, and TextAreaSkin continue for now to specify instance styles on their TextBox, TextGraphic, and TextView, in order to give them a Gumbo look rather than a Halo look. So if you try setting, for example, the fontSize on the Application, it doesn't yet affect the text format of a Button, TextInput, TextArea, etc. unless you remove the instance style in the skin.

Reviewer: Glenn
Bugs: -
QA: Lots of new stuff to test!
Doc: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -136,8 +136,8 @@
 		{
 			// Set the TextView to allow only one line of input.
             textView.heightInLines = 1;
-            textView.lineBreak = LineBreak.EXPLICIT;
 			textView.multiline = false;
+            textView.setStyle("lineBreak", "explicit");
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 6683
Author:   cframpto@adobe.com
Date:     2009-05-06T14:10:51.953172Z

Log Message:
-----------
Re-submit 6637/6639 with some mods to implement proxy model from SkinnableDataGroup in TextBase.

Fix misnamed tlf internal variable so pasting text with restrict, maxChars or displayAsPassword properties doesn't RTE.

Fix TextArea event dispatching so text/content bindings are triggered when the properties change. Previously all the bindings were only triggered if the text was interactively modified.  They weren't triggered correctly if either text or content was initially set on the TextArea.

Doc Notes:
Bugs: SDK-19980
Reviewers: Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextInput.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -100,77 +100,36 @@

     //--------------------------------------------------------------------------
     //
-    //  Properties
+    //  Overridden properties
     //
     //--------------------------------------------------------------------------

-	//----------------------------------
-	//  widthInChars
+    //----------------------------------
+    //  text
     //----------------------------------

+    [Bindable("change")]
+    [Bindable("textChanged")]
+
+    // Compiler will strip leading and trailing whitespace from text string.
+    [CollapseWhiteSpace]
+
     /**
      *  @private
      */
-    private var _widthInChars:Number = 15;
-
-    /**
-     *  @private
-     */
-    private var widthInCharsChanged:Boolean = false;
-
-    /**
-     *  The default width for the TextInput, measured in characters.
-     *  The width of the "0" character is used for the calculation,
-     *  since in most fonts the digits all have the same width.
-     *  So if you set this property to 5, it will be wide enough
-     *  to let the user enter 5 digits.
-     *
-     *  @default
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get widthInChars():Number
+    override public function set text(value:String):void
     {
-        return _widthInChars;
+        super.text = value;
+
+        // Trigger bindings to textChanged.
+        dispatchEvent(new Event("textChanged"));
     }

-    /**
-     *  @private
-     */
-    public function set widthInChars(value:Number):void
-    {
-        if (value == _widthInChars)
-            return;
-
-        _widthInChars = value;
-        widthInCharsChanged = true;
-
-        invalidateProperties();
-    }
-
     //--------------------------------------------------------------------------
     //
     //  Overridden methods
     //
     //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     *  Pushes various TextInput properties down into the RichEditableText.
-     */
-    override protected function commitProperties():void
-    {
-        super.commitProperties();
-
-        if (widthInCharsChanged)
-		{
-			textView.widthInChars = _widthInChars;
-			widthInCharsChanged = false;
-		}
-	}

     /**
      *  @private
@@ -181,14 +140,11 @@

         if (instance == textView)
         {
-            // Set the RichEditableText to allow only one line of input.
             // In default.css, the TextInput selector has a declaration
             // for lineBreak which sets it to "explicit".  It needs to be on
             // TextInput rather than RichEditableText so that if changed later it
-            // will be inherited.  It needs to be set with the default
-            // before the possibility that it is changed when TextInput is
-            // created.  In this case, setting it here, would overwrite
-            // that change.
+            // will be inherited.
+
             textView.heightInLines = 1;
             textView.multiline = false;
             textView.autoSize = false;


It's just so handy, build-in the ability to specify a callback directly
instead of a command to CommandEvent. Weirdly, a CommandEvent will never
be generated with the callback way of doing things, but now CommandMenu and
CommandButton will both support the callback syntax.

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

--- src/as/com/threerings/util/CommandEvent.as
+++ src/as/com/threerings/util/CommandEvent.as
@@ -35,16 +35,36 @@
      * Use this method to dispatch CommandEvents.
      */
     public static function dispatch (
-            disp :IEventDispatcher, cmd :String, arg :Object = null) :void
+            disp :IEventDispatcher, cmdOrFn :Object, arg :Object = null) :void
     {
-        // Create the event
-        var event :CommandEvent = create(cmd, arg);
+        if (cmdOrFn is Function) {
+            var fn :Function = (cmdOrFn as Function);
+            var args :Array = (arg as Array);
+            if (args == null && arg != null) {
+                args = [ arg ];
+            }
+            try {
+                fn.apply(null, args);
+            } catch (err :Error) {
+                var log :Log = Log.getLog(CommandEvent);
+                log.warning("Unable to call command callback, stack trace follows.");
+                log.logStackTrace(err);
+            }

-        // Dispatch it. A return value of true means that the event was
-        // never cancelled, so we complain.
-        if (disp == null || disp.dispatchEvent(event)) {
-            Log.getLog(CommandEvent).warning("Unhandled controller command " +
-                "[cmd=" + cmd + ", arg=" + arg + "].");
+        } else if (cmdOrFn is String) {
+            var cmd :String = String(cmdOrFn);
+            // Create the event to dispatch
+            var event :CommandEvent = create(cmd, arg);
+
+            // Dispatch it. A return value of true means that the event was
+            // never cancelled, so we complain.
+            if (disp == null || disp.dispatchEvent(event)) {
+                Log.getLog(CommandEvent).warning("Unhandled controller command " +
+                    "[cmd=" + cmd + ", arg=" + arg + "].");
+            }
+
+        } else {
+            throw new ArgumentError("Argument 'cmdOrFn' must be a command (String) or a Function");
         }
     }


optimize TS parsing avoid intermediate buffer. (allocation/copy...) this should save CPU cycles on high bitrate streams

--- src/org/mangui/hls/demux/TSDemuxer.as
+++ src/org/mangui/hls/demux/TSDemuxer.as
@@ -49,8 +49,8 @@
         private var _tags : Vector.<FLVTag>;
         /** Display Object used to schedule parsing **/
         private var _displayObject : DisplayObject;
-        /** Byte data to be read **/
-        private var _data : ByteArray;
+        /* Vector of buffer */
+        private var _dataVector : Vector.<ByteArray>;
         /* callback functions for audio selection, and parsing progress/complete */
         private var _callback_audioselect : Function;
         private var _callback_progress : Function;
@@ -116,15 +116,14 @@

         /** append new TS data */
         public function append(data : ByteArray) : void {
-            if (_data == null) {
-                _data = new ByteArray();
+            if (_dataVector == null) {
+                _dataVector = new Vector.<ByteArray>();
                 _data_complete = false;
                 _read_position = 0;
                 _avcc = null;
                 _displayObject.addEventListener(Event.ENTER_FRAME, _parseTimer);
             }
-            _data.position = _data.length;
-            _data.writeBytes(data, data.position);
+            _dataVector.push(data);
         }

         /** cancel demux operation */
@@ -132,7 +131,7 @@
             CONFIG::LOGGING {
                 Log.debug("TS: cancel demux");
             }
-            _data = null;
+            _dataVector = null;
             _curAudioPES = null;
             _curVideoPES = null;
             _curId3PES = null;
@@ -156,34 +155,66 @@
             return (_pmtParsed == false || _avcId != -1);
         }

+        private function getNextTSBuffer(start : int) : ByteArray {
+            // find element matching with start offset
+            for(var i : int = 0, offset : int = 0; i < _dataVector.length; i++) {
+                var buffer : ByteArray = _dataVector[i], bufferLength : int = buffer.length;
+                if(start >= offset && start <= offset + bufferLength) {
+                    buffer.position = start - offset;
+                    if(buffer.bytesAvailable >= 188) {
+                        return buffer;
+                    } else {
+                        // TS packet overlapping between 2 buffers
+                        if((i+1) < _dataVector.length) {
+                            var ba : ByteArray = new ByteArray();
+                            ba.writeBytes(buffer, buffer.position);
+                            buffer = _dataVector[i+1];
+                            buffer.position = 0;
+                            if(buffer.bytesAvailable + ba.length >=188) {
+                                ba.writeBytes(buffer,0,188-ba.position);
+                                ba.position = 0;
+                                return ba;
+                            }
+                        }
+                        // if TS overlapping but next buffer not available or next buffer not full enough, return null
+                        return null;
+                    }
+                }
+                offset += bufferLength;
+            }
+            return null;
+        }
+
         /** Parse a limited amount of packets each time to avoid blocking **/
         private function _parseTimer(e : Event) : void {
             var start_time : int = getTimer();
-            _data.position = _read_position;
+            /** Byte data to be read **/
+            var data : ByteArray = getNextTSBuffer(_read_position);
             // dont spend more than 20ms demuxing TS packets to avoid loosing frames
-            while ((_data.bytesAvailable >= 188) && ((getTimer() - start_time) < 20)) {
-                _parseTSPacket();
+            while(data  != null && ((getTimer() - start_time) < 20)) {
+                _parseTSPacket(data);
+                _read_position+=188;
+                if(data.bytesAvailable < 188) {
+                    data = getNextTSBuffer(_read_position);
+                }
             }
             if (_tags.length) {
                 _callback_progress(_tags);
                 _tags = new Vector.<FLVTag>();
             }
-            if (_data) {
-                _read_position = _data.position;
-                // finish reading TS fragment
-                if (_data_complete && _data.bytesAvailable < 188) {
-                    // free ByteArray
-                    _data = null;
-                    // first check if TS parsing was successful
-                    CONFIG::LOGGING {
-                        if (_pmtParsed == false) {
-                            Log.error("TS: no PMT found, report parsing complete");
-                        }
-                    }
-                    _displayObject.removeEventListener(Event.ENTER_FRAME, _parseTimer);
-                    _flush();
-                    _callback_complete();
-                }
+            // finish reading TS fragment
+            if (_data_complete && getNextTSBuffer(_read_position) == null) {
+                // free ByteArray
+                _dataVector = null;
+                // first check if TS parsing was successful
+                CONFIG::LOGGING {
+                    if (_pmtParsed == false) {
+                        Log.error("TS: no PMT found, report parsing complete");
+                    }
+                }
+                _displayObject.removeEventListener(Event.ENTER_FRAME, _parseTimer);
+                _flush();
+                _callback_complete();
             }
         }

@@ -380,7 +411,7 @@
             }

             /* first loop : look for AUD/SPS/PPS NAL unit :
-             * AUD (Access Unit Delimiter) are used to detect switch to new video tag
+             * AUD (Access Unit Delimiter) are used to detect switch to new video tag
              * SPS/PPS are used to generate AVC HEADER
              */

@@ -436,7 +467,7 @@
                 }
             }

-            /*
+            /*
              * second loop, handle other NAL units and push them in tags accordingly
              */
             for each (frame in frames) {
@@ -455,9 +486,9 @@
                         // +1 to skip NAL unit type
                         ba.position = frame.start + 1;
                         var eg : ExpGolomb = new ExpGolomb(ba);
-                        /* add a try/catch,
-                         * as NALu might be partial here (in case NALu/slice header is splitted accross several PES packet ... we might end up
-                         * with buffer overflow. prevent this and in case of overflow assume it is not a keyframe. should be fixed later on
+                        /* add a try/catch,
+                         * as NALu might be partial here (in case NALu/slice header is splitted accross several PES packet ... we might end up
+                         * with buffer overflow. prevent this and in case of overflow assume it is not a keyframe. should be fixed later on
                          */
                         try {
                             // discard first_mb_in_slice
@@ -537,51 +568,51 @@
         }

         /** Parse TS packet. **/
-        private function _parseTSPacket() : void {
+        private function _parseTSPacket(data : ByteArray) : void {
             // Each packet is 188 bytes.
             var todo : uint = TSDemuxer.PACKETSIZE;
             // Sync byte.
-            if (_data.readByte() != TSDemuxer.SYNCBYTE) {
-                var pos_start : uint = _data.position - 1;
-                if (probe(_data) == true) {
-                    var pos_end : uint = _data.position;
+            if (data.readByte() != TSDemuxer.SYNCBYTE) {
+                var pos_start : uint = data.position - 1;
+                if (probe(data) == true) {
+                    var pos_end : uint = data.position;
                     CONFIG::LOGGING {
                         Log.warn("TS: lost sync between offsets:" + pos_start + "/" + pos_end);
                         if (HLSSettings.logDebug2) {
                             var ba : ByteArray = new ByteArray();
-                            _data.position = pos_start;
-                            _data.readBytes(ba, 0, pos_end - pos_start);
+                            data.position = pos_start;
+                            data.readBytes(ba, 0, pos_end - pos_start);
                             Log.debug2("TS: lost sync dump:" + Hex.fromArray(ba));
                         }
                     }
-                    _data.position = pos_end + 1;
+                    data.position = pos_end + 1;
                 } else {
-                    throw new Error("TS: Could not parse file: sync byte not found @ offset/len " + _data.position + "/" + _data.length);
+                    throw new Error("TS: Could not parse file: sync byte not found @ offset/len " + data.position + "/" + data.length);
                 }
             }
             todo--;
             // Payload unit start indicator.
-            var stt : uint = (_data.readUnsignedByte() & 64) >> 6;
-            _data.position--;
+            var stt : uint = (data.readUnsignedByte() & 64) >> 6;
+            data.position--;

             // Packet ID (last 13 bits of UI16).
-            var pid : uint = _data.readUnsignedShort() & 8191;
+            var pid : uint = data.readUnsignedShort() & 8191;
             // Check for adaptation field.
             todo -= 2;
-            var atf : uint = (_data.readByte() & 48) >> 4;
+            var atf : uint = (data.readByte() & 48) >> 4;
             todo--;
             // Read adaptation field if available.
             if (atf > 1) {
                 // Length of adaptation field.
-                var len : uint = _data.readUnsignedByte();
+                var len : uint = data.readUnsignedByte();
                 todo--;
                 // Random access indicator (keyframe).
                 // var rai:uint = data.readUnsignedByte() & 64;
-                _data.position += len;
+                data.position += len;
                 todo -= len;
                 // Return if there's only adaptation field.
                 if (atf == 2 || len == 183) {
-                    _data.position += todo;
+                    data.position += todo;
                     return;
                 }
             }
@@ -589,7 +620,7 @@
             // Parse the PES, split by Packet ID.
             switch (pid) {
                 case PAT_ID:
-                    todo -= _parsePAT(stt);
+                    todo -= _parsePAT(stt,data);
                     CONFIG::LOGGING {
                         if (_pmtParsed == false) {
                             Log.debug("TS: PAT found.PMT PID:" + _pmtId);
@@ -601,7 +632,7 @@
                         CONFIG::LOGGING {
                             Log.debug("TS: PMT found");
                         }
-                        todo -= _parsePMT(stt);
+                        todo -= _parsePMT(stt,data);
                         _pmtParsed = true;
                         // if PMT was not parsed before, and some unknown packets have been skipped in between,
                         // rewind to beginning of the stream, it helps recovering bad segmented content
@@ -610,7 +641,7 @@
                             CONFIG::LOGGING {
                                 Log.warn("TS: late PMT found, rewinding at beginning of TS");
                             }
-                            _data.position = 0;
+                            _read_position = 0;
                             return;
                         }
                     }
@@ -630,7 +661,7 @@
                         _curAudioPES = new ByteArray();
                     }
                     if (_curAudioPES) {
-                        _curAudioPES.writeBytes(_data, _data.position, todo);
+                        _curAudioPES.writeBytes(data, data.position, todo);
                     }
                     CONFIG::LOGGING {
                         if (!_curAudioPES) {
@@ -650,7 +681,7 @@
                     }
                     if (_curId3PES) {
                         // store data.  will normally be in a single TS
-                        _curId3PES.writeBytes(_data, _data.position, todo);
+                        _curId3PES.writeBytes(data, data.position, todo);
                         var pes : PES = new PES(_curId3PES);
                         if (pes.len && (pes.data.length - pes.payload - pes.payload_len) >= 0) {
                             CONFIG::LOGGING {
@@ -683,7 +714,7 @@
                         _curVideoPES = new ByteArray();
                     }
                     if (_curVideoPES) {
-                        _curVideoPES.writeBytes(_data, _data.position, todo);
+                        _curVideoPES.writeBytes(data, data.position, todo);
                     }
                     CONFIG::LOGGING {
                         if (!_curVideoPES) {
@@ -698,59 +729,59 @@
                     break;
             }
             // Jump to the next packet.
-            _data.position += todo;
+            data.position += todo;
         };

         /** Parse the Program Association Table. **/
-        private function _parsePAT(stt : uint) : int {
+        private function _parsePAT(stt : uint, data : ByteArray) : int {
             var pointerField : uint = 0;
             if (stt) {
-                pointerField = _data.readUnsignedByte();
+                pointerField = data.readUnsignedByte();
                 // skip alignment padding
-                _data.position += pointerField;
+                data.position += pointerField;
             }
             // skip table id
-            _data.position += 1;
+            data.position += 1;
             // get section length
-            var sectionLen : uint = _data.readUnsignedShort() & 0x3FF;
+            var sectionLen : uint = data.readUnsignedShort() & 0x3FF;
             // Check the section length for a single PMT.
             if (sectionLen > 13) {
                 throw new Error("TS: Multiple PMT entries are not supported.");
             }
             // Grab the PMT ID.
-            _data.position += 7;
-            _pmtId = _data.readUnsignedShort() & 8191;
+            data.position += 7;
+            _pmtId = data.readUnsignedShort() & 8191;
             return 13 + pointerField;
         };

         /** Read the Program Map Table. **/
-        private function _parsePMT(stt : uint) : int {
+        private function _parsePMT(stt : uint, data : ByteArray) : int {
             var pointerField : uint = 0;

             /** audio Track List */
             var audioList : Vector.<AudioTrack> = new Vector.<AudioTrack>();

             if (stt) {
-                pointerField = _data.readUnsignedByte();
+                pointerField = data.readUnsignedByte();
                 // skip alignment padding
-                _data.position += pointerField;
+                data.position += pointerField;
             }
             // skip table id
-            _data.position += 1;
+            data.position += 1;
             // Check the section length for a single PMT.
-            var len : uint = _data.readUnsignedShort() & 0x3FF;
+            var len : uint = data.readUnsignedShort() & 0x3FF;
             var read : uint = 13;
-            _data.position += 7;
+            data.position += 7;
             // skip program info
-            var pil : uint = _data.readUnsignedShort() & 0x3FF;
-            _data.position += pil;
+            var pil : uint = data.readUnsignedShort() & 0x3FF;
+            data.position += pil;
             read += pil;
             // Loop through the streams in the PMT.
             while (read < len) {
                 // stream type
-                var typ : uint = _data.readByte();
+                var typ : uint = data.readByte();
                 // stream pid
-                var sid : uint = _data.readUnsignedShort() & 0x1fff;
+                var sid : uint = data.readUnsignedShort() & 0x1fff;
                 if (typ == 0x0F) {
                     // ISO/IEC 13818-7 ADTS AAC (MPEG-2 lower bit-rate audio)
                     audioList.push(new AudioTrack('TS/AAC ' + audioList.length, AudioTrack.FROM_DEMUX, sid, (audioList.length == 0), true));
@@ -772,8 +803,8 @@
                     }
                 }
                 // es_info_length
-                var sel : uint = _data.readUnsignedShort() & 0xFFF;
-                _data.position += sel;
+                var sel : uint = data.readUnsignedShort() & 0xFFF;
+                data.position += sel;
                 // loop to next stream
                 read += sel + 5;
             }


Fixed ASDOC error

Fixed ASDOC error

Change-Id: Ia73c49b046f740a326390ea0aead603d722ace27

--- WeaveAPI/src/weave/core/ClassRegistryImpl.as
+++ WeaveAPI/src/weave/core/ClassRegistryImpl.as
@@ -56,7 +56,7 @@
 		public const singletonImplementations:Dictionary = new Dictionary();

 		/**
-		 * interface Class -> Array<implementation Class>
+		 * interface Class -> Array<implementation Class>
 		 */
 		public const implementations:Dictionary = new Dictionary();


added check for NaN

added check for NaN

--- WeaveData/src/weave/primitives/ColorRamp.as
+++ WeaveData/src/weave/primitives/ColorRamp.as
@@ -199,7 +199,7 @@
 		{
 			validate();

-			if (normValue < 0 || normValue > 1 || _colorNodes.length == 0)
+			if (isNaN(normValue) || normValue < 0 || normValue > 1 || _colorNodes.length == 0)
 				return NaN;

 			// find index to the right of normValue


161 StringBuilder.appendv and appendva

161 StringBuilder.appendv and appendva

--- raw/src/org/yellcorp/string/StringBuilder.as
+++ raw/src/org/yellcorp/string/StringBuilder.as
@@ -23,6 +23,20 @@
         _length += string.length;
     }

+    public function appendv(textArray:Array):void
+    {
+        var string:String = textArray.join("");
+        buffer.push(string);
+        _length += string.length;
+    }
+
+    public function appendva(... textArray):void
+    {
+        var string:String = textArray.join("");
+        buffer.push(string);
+        _length += string.length;
+    }
+
     public function toString():String
     {
         return buffer.join("");


Transferred from the Adobe Open Source Subversion Repository

Revision: 21356
Author:   deeptika@adobe.com
Date:     2011-06-08T08:23:19.610911Z

Log Message:
-----------
For grouped columns, we create all columns in the beginning. So we need to add all columns width while computing list sub content's width.
QE notes:
Doc notes:
Bugs: FLEXDMV-2597 (ADG Focus Border disappears when tabbing focus using Grouped Columns)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as

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

--- frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
+++ frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
@@ -2147,10 +2147,67 @@
     {
         super.adjustListContent(unscaledWidth, unscaledHeight);

+		if(getOptimumColumns() != visibleColumns)
+		{
+			var n:int = displayableColumns.length;
+			var listSubContentWidth:int = 0;
+			for(var i:int = lockedColumnCount; i < n; i++)
+			{
+				listSubContentWidth += displayableColumns[i].width;
+			}
+
+			listSubContentWidth += getLastColumnResidualWidth() + 50; //Adding default sort renderer's width
+			listSubContent.setActualSize(listSubContentWidth,unscaledHeight);
+		}
+
         // listSubContent scrollRect needs to be updated whenever
         // listContent size is adjusted
         updateSubContent();
     }
+
+	/**
+	 *  @private
+	 */
+	private function getLastColumnResidualWidth():Number
+	{
+		var n:int = displayableColumns.length-1;
+		var displayWidth:int = unscaledWidth - viewMetrics.right - viewMetrics.left;
+		var totalWidth:Number = 0;
+		var i:int;
+		var numLockCols:int = Math.max(0, lockedColumnCount);
+
+		//Find the scrollable width i.e displayWidth - { sum of width of locked columns}
+		if (numLockCols > 0 && numLockCols < visibleColumns.length)
+		{
+			for (i = 0; i < numLockCols; i++)
+			{
+				displayWidth -= displayableColumns[i].width;
+			}
+		}
+
+		// Starting from the right most column in the displayableColumns array
+		// find out how many columns we will be able to
+		// accumulate and how much width they will take
+		// when horizontal scroll bar is at the rightmost end
+		if (n>=0)
+		{
+			totalWidth = (isNaN(displayableColumns[n].explicitWidth) ? displayableColumns[n].preferredWidth : displayableColumns[n].explicitWidth);
+		}
+
+		for (i = n-1; i >= numLockCols; i--)
+		{
+			if (totalWidth + displayableColumns[i].width <= displayWidth)
+				totalWidth += displayableColumns[i].width;
+			else
+				break;
+		}
+
+		// The residual width is the width which should be added to
+		// the last column apriori, so that in future when we have horizontally
+		// scrolled to the right most position we don't need to create larger
+		// items for that column
+		return displayWidth - totalWidth;
+	}

     // horizontal page up, page down
     /**


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

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

 package mx.messaging.messages
 {


Matrix4x4.get determinant() method

Matrix4x4.get determinant() method

--- src/aerys/minko/type/math/Matrix4x4.as
+++ src/aerys/minko/type/math/Matrix4x4.as
@@ -120,6 +120,11 @@
 		public function set scaleZ(value : Number) : void
 		{
 			setScale(NaN, NaN, value);
+		}
+
+		public function get determinant(): Number
+		{
+			return _matrix.determinant;
 		}

 		public function get locked() : Boolean
@@ -931,4 +936,4 @@
 			return (FACTORY.create() as Matrix4x4).setRawData(data, offset, transposed);
 		}
 	}
-}+}


This isn't actually a valid asdoc tag.

This isn't actually a valid asdoc tag.

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

--- src/as/com/threerings/util/EmbeddedSwfLoader.as
+++ src/as/com/threerings/util/EmbeddedSwfLoader.as
@@ -64,9 +64,6 @@
  *     var myMovie = loader.getContent();
  * ...
  * </pre></code>
- *
- * @deprecated Content packs are coming, and symbols can be embedded directly
- * by using [Embed(source="foo.swf#somesymbol")]
  */
 [Deprecated(replacement="com.threerings.util.MultiLoader")]
 public class EmbeddedSwfLoader extends EventDispatcher


Apache license 2.0 added.

Apache license 2.0 added.

--- tui_flashdevelop3/lib/touchAll/cube3D/Cube3D.as
+++ tui_flashdevelop3/lib/touchAll/cube3D/Cube3D.as
@@ -1,3 +1,20 @@
+/*
+ * Tangible User Interfacer (former TouchAll) misc code.
+ *
+ * Copyright 2016 Gonçalo Amador <g.n.p.amador@gmail.com>
+ *
+ * Licensed 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
+ *
+ *     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.
+ */
 package touchAll.cube3D
 {
 	import flash.display.*;
@@ -232,4 +249,4 @@
 			}
 		}
 	}
-}+}


conversations load correct npc

conversations load correct npc

--- flexEditor/src/org/arisgames/editor/view/ItemEditorCharacterView.as
+++ flexEditor/src/org/arisgames/editor/view/ItemEditorCharacterView.as
@@ -105,8 +105,8 @@
 		trace("ItemEditorCharaterView: reloadTheConversations() called");

 		if (objectPaletteItem != null) {
-			trace("ItemEditorCharaterView: Starting reloadTheConversations() with NpcID:" + objectPaletteItem.id);
-			AppServices.getInstance().getConversationsForNpc(GameModel.getInstance().game.gameId, objectPaletteItem.id, new Responder(handleLoadConversations, handleFault));
+			trace("ItemEditorCharaterView: Starting reloadTheConversations() with NpcID:" + objectPaletteItem.objectId);
+			AppServices.getInstance().getConversationsForNpc(GameModel.getInstance().game.gameId, objectPaletteItem.objectId, new Responder(handleLoadConversations, handleFault));
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 14002
Author:   clucier@adobe.com
Date:     2010-02-05T16:56:27.781010Z

Log Message:
-----------
Merge branch revision 4.x, 14001 --> trunk

----------------------------------------
r14001 | clucier

Per discussions with the AIR and AIR integration teams, we will no longer throttle framerate to '1' fps
by default for Flex AIR applications. SDK-25126.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -543,7 +543,7 @@
  *    Properties
  *    alwaysInFront="false"
  *    autoExit="true"
- *    backgroundFrameRate="1"
+ *    backgroundFrameRate="-1"
  *    dockIconMenu="null"
  *    maxHeight="2880 less the height of the system chrome"
  *    maxWidth="2880 less the width of the system chrome"
@@ -1270,13 +1270,13 @@
      *  @private
      *  Storage for the backgroundFrameRate property.
      */
-    private var _backgroundFrameRate:Number = 1;
+    private var _backgroundFrameRate:Number = -1;

     /**
      *  Specifies the frame rate to use when the application is inactive.
      *  When set to -1, no background frame rate throttling occurs.
      *
-     *  @default 1
+     *  @default -1
      *
      *  @langversion 3.0
      *  @playerversion AIR 1.5


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartLabel.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartLabel.as
@@ -0,0 +1,316 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.chartClasses
+{
+
+import flash.display.*;
+import flash.geom.*;
+import mx.charts.AxisLabel;
+import mx.charts.AxisRenderer;
+import mx.core.FlexBitmap;
+import mx.core.IDataRenderer;
+import mx.core.IUITextField;
+import mx.core.mx_internal;
+import mx.core.UIComponent;
+import mx.core.UITextField;
+
+use namespace mx_internal;
+
+/**
+ *  Draws data labels on chart controls.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class ChartLabel extends UIComponent implements IDataRenderer
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static var ORIGIN:Point = new Point(0, 0);
+
+	/**
+	 *  @private
+	 */
+	private static var X_UNIT:Point = new Point(1, 0);
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function ChartLabel()
+	{
+		super();
+		this.includeInLayout = false;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _label:IUITextField;
+
+	/**
+	 *  @private
+	 */
+	private var _bitmap:Bitmap;
+
+	/**
+	 *  @private
+	 */
+	private var _capturedText:BitmapData;
+
+	/**
+	 *  @private
+	 */
+	private var _text:String;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  data
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _data:Object;
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  Defines the contents of the label.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function get data():Object
+	{
+		return _data;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set data(value:Object):void
+	{
+		if (value == _data)
+			return;
+
+		_data = value;
+
+		if (value is AxisLabel)
+			_text = AxisLabel(value).text;
+		else if (value is String)
+			_text = String(value);
+
+		_label.text = _text == null ? "":_text;
+
+		invalidateSize();
+		invalidateDisplayList();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: UIComponent
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	override public function invalidateSize():void
+	{
+		super.invalidateSize();
+	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	override protected function createChildren():void
+	{
+		super.createChildren();
+
+		_label = IUITextField(createInFontContext(UITextField));
+		_label.multiline = true;
+		_label.selectable = false;
+		_label.autoSize = "left";
+		_label.styleName = this;
+
+		addChild(DisplayObject(_label));
+
+	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	override protected function measure():void
+	{
+		var oldRotation:Number = rotation;
+
+		if (parent && parent.rotation == 90)
+			rotation = -90;
+
+		_label.validateNow();
+
+		if (_label.embedFonts)
+		{
+			measuredWidth = _label.measuredWidth + 6;
+			measuredHeight = _label.measuredHeight + UITextField.TEXT_HEIGHT_PADDING;
+		}
+		else
+		{
+			measuredWidth = _label.textWidth + 6;
+			measuredHeight = _label.textHeight + UITextField.TEXT_HEIGHT_PADDING;
+		}
+		rotation = oldRotation;
+	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	override protected function updateDisplayList(unscaledWidth:Number,
+												  unscaledHeight:Number):void
+	{
+		if (parent && parent is AxisRenderer && parent.rotation == 90 && _label.embedFonts == true)
+		{
+			var p:AxisRenderer = AxisRenderer(parent);
+			if (p.getStyle('verticalAxisTitleAlignment') == 'vertical')
+			{
+				_label.rotation = 180;
+				_label.y = _label.y + _label.height;
+				_label.x = _label.x + _label.width;
+			}
+		}
+		_label.validateNow();
+
+		_label.setActualSize(unscaledWidth, unscaledHeight);
+
+		var localX:Point;
+		var localO:Point;
+		var useLabel:Boolean = true;
+
+		if (_label.embedFonts == false &&
+			unscaledWidth > 0 &&
+			unscaledHeight > 0)
+		{
+			localX = globalToLocal(X_UNIT);
+			localO = globalToLocal(ORIGIN);
+
+			useLabel = localX.x - localO.x == 1 &&
+					   localX.y - localO.y == 0;
+		}
+
+		if (useLabel)
+		{
+			if (_bitmap)
+			{
+				removeChild(_bitmap);
+				_bitmap = null;
+			}
+			_label.visible = true;
+		}
+		else
+		{
+			_label.visible = false;
+
+			if (!_capturedText ||
+				_capturedText.width != unscaledWidth ||
+				_capturedText.height != unscaledHeight)
+			{
+				_capturedText = new BitmapData(unscaledWidth, unscaledHeight);
+
+				if (_bitmap)
+				{
+					removeChild(_bitmap);
+					_bitmap = null;
+				}
+			}
+
+			if (!_bitmap)
+			{
+				_bitmap = new FlexBitmap(_capturedText);
+				_bitmap.smoothing = true;
+				addChild(_bitmap);
+			}
+
+			_capturedText.fillRect(
+				new Rectangle(0, 0, unscaledWidth, unscaledHeight), 0);
+
+			_capturedText.draw(_label);
+			if (parent && parent.rotation == 90 && parent is AxisRenderer)
+			{
+				p = AxisRenderer(parent);
+				if (p.getStyle('verticalAxisTitleAlignment')=="vertical")
+				{
+					_bitmap.rotation = 180;
+					_bitmap.y = _label.x + _bitmap.height;
+					_bitmap.x = _label.y + _bitmap.width;
+				}
+			}
+
+		}
+	}
+}
+
+}


added getChildByName method

added getChildByName method

--- as/flash/display/DisplayObjectContainer.as
+++ as/flash/display/DisplayObjectContainer.as
@@ -59,7 +59,12 @@

         /** Returns the child display object that exists with the specified name. */
         public function getChildByName(name:String):DisplayObject{
-            //
+            for(var i:int = 0; i < _displayList.length; i++){
+                if(_displayList[i].name === name){
+                    return _displayList[i];
+                }
+            }
+            return null;
         }

         /** Returns the index position of a child DisplayObject instance. */


Track the client timestamp in the actionscript way.
(Time values are ints and start at 0 when the flash player starts up,
there is a different way to read the epoch millis, returned as a double)

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

--- src/as/com/threerings/crowd/chat/data/ChatMessage.as
+++ src/as/com/threerings/crowd/chat/data/ChatMessage.as
@@ -20,6 +20,8 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

 package com.threerings.crowd.chat.data {
+
+import flash.utils.getTimer; // function import

 import com.threerings.util.ClassUtil;
 import com.threerings.util.Long;
@@ -45,7 +47,7 @@
     public var localtype :String;

     /** The client time that this message was created. */
-    public var timestamp :Long;
+    public var timestamp :int;

     public function ChatMessage (msg :String = null, bundle :String = null)
     {
@@ -62,7 +64,7 @@
         message = msg;
         this.localtype = localtype;
         bundle = null;
-        //timestamp = System.currentTimeMillis();
+        timestamp = getTimer();
     }

     /**


Check for actual difference in game device list when the game change event is received, ignoring if it's the same

--- src/com/zehfernando/input/binding/KeyActionBinder.as
+++ src/com/zehfernando/input/binding/KeyActionBinder.as
@@ -232,21 +232,39 @@

 		private function refreshGameInputDeviceList():void {
 			// The list of game devices has changed
-			removeGameInputDeviceEvents();
-			addGameInputDeviceEvents();
-
-			// Create a list of devices for easy identification
+
+			// Check if there was any actual change to the list
+			// This is necessary because some versions of Flash keep firing the changed event every second (Windows 7 + Firefox using Flash Player 12.0.0.44)
 			var i:int;
-
-			gameInputDevices = new Vector.<GameInputDevice>();
-			gameInputDeviceDefinitions = new Vector.<AutoGamepadInfo>();
-			for (i = 0; i < GameInput.numDevices; i++) {
-				gameInputDevices.push(GameInput.getDeviceAt(i));
-				gameInputDeviceDefinitions.push(findGamepadInfo(gameInputDevices[i]));
-			}
-
-			// Dispatch the signal
-			_onDevicesChanged.dispatch();
+			var hasChanged:Boolean = false;
+
+			if ((gameInputDevices == null && GameInput.numDevices > 0) || (gameInputDevices != null && GameInput.numDevices != gameInputDevices.length)) {
+				hasChanged = true;
+			} else {
+				for (i = 0; i < GameInput.numDevices; i++) {
+					if (gameInputDevices[i] != GameInput.getDeviceAt(i)) {
+						hasChanged = true;
+						break;
+					}
+				}
+			}
+
+			if (hasChanged) {
+				// List has actually changed
+				removeGameInputDeviceEvents();
+				addGameInputDeviceEvents();
+
+				// Create a list of devices for easy identification
+				gameInputDevices = new Vector.<GameInputDevice>();
+				gameInputDeviceDefinitions = new Vector.<AutoGamepadInfo>();
+				for (i = 0; i < GameInput.numDevices; i++) {
+					gameInputDevices.push(GameInput.getDeviceAt(i));
+					gameInputDeviceDefinitions.push(findGamepadInfo(gameInputDevices[i]));
+				}
+
+				// Dispatch the signal
+				_onDevicesChanged.dispatch();
+			}
 		}

 		private function findGamepadInfo(__gameInputDevice:GameInputDevice):AutoGamepadInfo {


Ensure strings only using LF before converting to lines

--- src/org/mangui/hls/utils/StringUtil.as
+++ src/org/mangui/hls/utils/StringUtil.as
@@ -66,7 +66,7 @@
 		 */
 		public static function toLines(str:String):Vector.<String>
 		{
-			var lines:Array = (str || "").split("\n");
+			var lines:Array = toLF(str).split("\n");
 			var i:uint;
 			var length:uint = lines.length;


Removed big trace statement from TextPrinterTest

--- as3/test/asunit4/printers/TextPrinterTest.as
+++ as3/test/asunit4/printers/TextPrinterTest.as
@@ -66,9 +66,6 @@
             executeAFailingTest();
             var expected:String = "testSomethingThatFails : Error: Fake Failure";
             assertTrue("Printer should fail", printer.toString().indexOf(expected) > -1);
-            trace("-----------------------");
-            trace(">> PRINTER: " + printer);
-            trace("-----------------------");
         }

         public function testPrinterDisplayed():void {


Work harder to avoid incorrect seeks when switching audio tracks.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -2316,8 +2316,27 @@
 			// from cache and quickly resume playback.
 			if (_mixer != null && event.type != "actionNeeded")
 			{
-				trace("onActionNeeded - " + event);
-				seek(time);
+				CONFIG::LOGGING
+				{
+					logger.debug("onActionNeeded - " + event);
+				}
+
+				if(!isNaN(_enhancedSeekTarget) && _enhancedSeekTarget > time)
+				{
+					CONFIG::LOGGING
+					{
+						logger.debug("Resetting to enhanced seek target @ " + _enhancedSeekTarget);
+					}
+					seek(_enhancedSeekTarget);
+				}
+				else
+				{
+					CONFIG::LOGGING
+					{
+						logger.debug("Resetting to current time @ " + time);
+					}
+					seek(time);
+				}
 			}
 		}


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

--- frameworks/projects/playerglobal/src/Empty.as
+++ frameworks/projects/playerglobal/src/Empty.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
 package
 {


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

--- frameworks/projects/automation_air/src/mx/automation/events/AutomationFlexNativeMenuEvent.as
+++ frameworks/projects/automation_air/src/mx/automation/events/AutomationFlexNativeMenuEvent.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.automation.events
 {