Transferred from the Adobe Open Source Subversion Repository

Revision: 3983
Author:   hmuller@adobe.com
Date:     2008-10-31T19:10:19.937648Z

Log Message:
-----------
Fixed 17820, 17834, various small improvements to the viewport et al ASDoc.

QE Notes: viewport and scroller mustella tests pass
Doc Notes: None
Bugs: sdk-17820, sdk-17834
Reviewer:

Modified Paths:
--------------
<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/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.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/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -16,7 +16,6 @@
 import flash.geom.Rectangle;
 import flash.events.Event;
 import flash.events.EventDispatcher;
-import flash.ui.Keyboard;

 import mx.components.baseClasses.GroupBase;
 import mx.core.ScrollUnit;
@@ -106,14 +105,7 @@
     [Inspectable(category="General")]

     /**
-     *  Specifies the number of items to display.
-     *
-     *  If columnCount is -1, then all of them items are displayed.
-     *
-     *  This value implies the layout's measuredWidth.
-     *
-     *  If the width of the target has been explicitly set,
-     *  then this property has no effect.
+     *  Returns the current number of visible items.
      *
      *  @default -1
      */
@@ -123,8 +115,8 @@
     }

     /**
-     *  Sets the columnCount property without causing
-     *  invalidation.
+     *  Sets the columnCount property and dispatches
+     *  a PropertyChangeEvent.
      *
      *  This method is intended to be used by subclass updateDisplayList()
      *  methods to sync the columnCount property with the actual number
@@ -155,10 +147,10 @@
      *
      *  If requestedColumnCount is -1, then all of them items are displayed.
      *
-     *  This value implies the layout's measuredWidth.
+     *  This property implies the layout's measuredWidth.
      *
      *  If the width of the target has been explicitly set,
-     *  this property has no effect.
+     *  then this property has no effect.
      *
      *  @default -1
      */
@@ -396,6 +388,9 @@
         var li:ILayoutItem = g.getLayoutItemAt(index);
         if ((li == null) || !li.includeInLayout)
             return 0.0;
+
+        if (!clipContent)
+            return 1.0;

         var c0:int = firstIndexInView;
         var c1:int = lastIndexInView;
@@ -431,15 +426,6 @@
      *
      *  Returns the index of the item that contains x, or -1.
      *
-     *  Implementation note: currently the inclusion test is slightly
-     *  incorrect, since we're comparing y with the _closed_ interval
-     *  from p.x to p.x + s.x + gap.  This is to accomodate checking the
-     *  "right" of the scrollRect, see the computation of i1 in
-     *  scrollPositionChanged.  One alternative that would restore
-     *  the more correct open ended interval, would be to check
-     *  the right of the scrollRect less some infintesimally small
-     *  amount.
-     *
      * @private
      */
     private static function findIndexAt(x:Number, gap:int, g:GroupBase, i0:int, i1:int):int
@@ -449,7 +435,7 @@
         var p:Point = item.actualPosition;
         var s:Point = item.actualSize;
         // TBD: deal with null item, includeInLayout false.
-        if ((x >= p.x) && (x <= p.x + s.x + gap))
+        if ((x >= p.x) && (x < p.x + s.x + gap))
             return index;
         else if (i0 == i1)
             return -1;
@@ -510,8 +496,15 @@
             return;
         }

+        // We're going to use findIndexAt to find the index of
+        // the items that overlap the left and right edges of the scrollRect.
+        // Values that are exactly equal to scrollRect.right aren't actually
+        // rendered, since the left,right interval is only half open.
+        // To account for that we back away from the right edge by a
+        // hopefully infinitesimal amount.
+
         var x0:Number = scrollR.left;
-        var x1:Number = scrollR.right;
+        var x1:Number = scrollR.right - .0001;
         if (x1 <= x0)
         {
             setIndexInView(-1, -1);
@@ -522,7 +515,6 @@

         var i0:int = findIndexAt(x0 + gap, gap, g, 0, n);
         var i1:int = findIndexAt(x1, gap, g, 0, n);
-
         // Special case: no item overlaps x0, is index 0 visible?
         if (i0 == -1)
         {
@@ -698,7 +690,7 @@
                 break;

             case ScrollUnit.PAGE_RIGHT:
-                if ((itemR.left < scrollR.left) && (itemR.right >= scrollR.right))
+                if ((itemR.left <= scrollR.left) && (itemR.right > scrollR.right))
                     delta = Math.min(scrollR.width, itemR.right - scrollR.right);
                 else
                     delta = itemR.left - scrollR.left;
@@ -888,7 +880,8 @@
             var dx:Number = layoutItem.actualSize.x;
             maxX = Math.max(maxX, x + dx);
             maxY = Math.max(maxY, y + dy);
-            if (((x < maxVisibleX) && ((x + dx) > minVisibleX)) ||
+            if (!clipContent ||
+                ((x < maxVisibleX) && ((x + dx) > minVisibleX)) ||
                 ((dx <= 0) && ((x == maxVisibleX) || (x == minVisibleX))))
             {
                 visibleColumns += 1;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3009
Author:   hmuller@adobe.com
Date:     2008-08-26T23:52:25.905531Z

Log Message:
-----------
Final piece of the "Group as Viewport" feature.

In Horizontal,VerticalLayout: if variableRowHeight or
variableColumnWidth is true, but an explicit value for rowHeight or
columnWidth wasn't provided, use the corresponding size of the first
item.

QE: Yes
Doc: No
Checkintests: Pass
Reviewer: Chet

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -358,8 +358,18 @@

     private function fixedColumnWidthMeasure(layoutTarget:Group):void
     {
-        // TBD init columnWidth if explicitColumnWidth isNaN
         var cols:uint = layoutTarget.numLayoutItems;
+
+		var columnWidth:Number = this.columnWidth;
+        if (isNaN(explicitColumnWidth))
+        {
+            if (cols == 0)
+            	columnWidth = 0;
+            else
+      			columnWidth = layoutTarget.getLayoutItemAt(0).preferredSize.x;
+        	setColumnWidth(columnWidth);
+        }
+
         var visibleCols:uint = (explicitColumnCount == -1) ? cols : explicitColumnCount;
         var contentWidth:Number = (cols * columnWidth) + ((cols > 1) ? (gap * (cols - 1)) : 0);
         var visibleWidth:Number = (visibleCols * columnWidth) + ((visibleCols > 1) ? (gap * (visibleCols - 1)) : 0);


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

--- frameworks/projects/authoringsupport/src/FlashComponentPlaceholder.as
+++ frameworks/projects/authoringsupport/src/FlashComponentPlaceholder.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 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
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3930
Author:   egreenfi@adobe.com
Date:     2008-10-28T16:30:24.729265Z

Log Message:
-----------
Step 1 of memory improvements
GraphicElement now optimizes away its AdvancedLayoutFeatures as long is has a trivial (translation only) transform matrix.
Added a new OnDemandEventDispatcher class that only allocates memory for event dispatcher functionality when it gets its first listener.
GraphicElement, OverrideBase, and LayoutBase extend OnDemandEventDispatcher.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/OverrideBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradient.as</path>

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

--- frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
+++ frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
@@ -0,0 +1,90 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2008 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.utils
+{
+    import flash.events.IEventDispatcher;
+    import flash.events.Event;
+    import flash.events.EventDispatcher;
+
+	/**
+	 * OnDemandEventDispatcher serves as a base class for classes that dispatch events but expect listeners
+	 * to be infrequent.  When a class extends OnDemandEventDispatcher instead of the standard EventDispatcher,
+	 * it is trading off a small overhead on every single instance for a slightly larger overhead on only the instances
+	 * that actually have listeners attached to them.
+	 */
+    public class OnDemandEventDispatcher implements IEventDispatcher
+    {
+        private var _dispatcher:EventDispatcher;
+
+
+	//--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+        public function OnDemandEventDispatcher()
+        {
+        }
+
+    /**
+     *  @copy flash.events.EventDispatcher#addEventListener
+     */
+        public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
+        {
+            if(_dispatcher == null)
+            {
+                _dispatcher = new EventDispatcher(this);
+            }
+            _dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference);
+        }
+
+
+    /**
+     *  @copy flash.events.EventDispatcher#dispatchEvent
+     */
+        public function dispatchEvent(event:Event):Boolean
+        {
+            if(_dispatcher != null)
+                return _dispatcher.dispatchEvent(event);
+            return true;
+        }
+
+    /**
+     *  @copy flash.events.EventDispatcher#hasEventListener
+     */
+        public function hasEventListener(type:String):Boolean
+        {
+            if(_dispatcher != null)
+                return _dispatcher.hasEventListener(type);
+            return false;
+        }
+
+    /**
+     *  @copy flash.events.EventDispatcher#removeEventListener
+     */
+        public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
+        {
+            if(_dispatcher != null)
+                _dispatcher.removeEventListener(type,listener,useCapture);
+        }
+
+    /**
+     *  @copy flash.events.EventDispatcher#willTrigger
+     */
+        public function willTrigger(type:String):Boolean
+        {
+            if(_dispatcher != null)
+                return _dispatcher.willTrigger(type);
+            return false;
+        }
+
+    }
+}


fix RenderingController.createDrawCalls() to initialize DrawCall.enabled using Mesh.computedVisibility

--- src/aerys/minko/scene/controller/scene/RenderingController.as
+++ src/aerys/minko/scene/controller/scene/RenderingController.as
@@ -610,7 +610,7 @@
 				// create drawcall
 				var drawCall		: DrawCall			= new DrawCall();

-				drawCall.enabled = mesh.visible;
+				drawCall.enabled = mesh.visible && mesh.computedVisibility;
 				if (passInstance.program != null)
 				{
 					drawCall.configure(


MenuPanel updated to have a translation added

--- Arguments/src/components/MenuPanel.as
+++ Arguments/src/components/MenuPanel.as
@@ -42,6 +42,8 @@
 	import spark.components.Button;
 	import spark.components.HGroup;
 	import spark.components.VGroup;
+
+	import classes.Language;

 	public class MenuPanel extends GridPanel
 	{
@@ -129,7 +131,7 @@
 			hgroup = new HGroup;
 			vgroup.addElement(hgroup);
 			addReasonBtn = new Button;
-			addReasonBtn.label = "add..";
+			addReasonBtn.label = Language.lookup("Add")+"...";
 			hgroup.gap = 0;
 			vgroup.percentWidth = 100;
 			addReasonBtn.percentWidth = 100;


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

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

 package mx.charts.chartClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3677
Author:   clucier@adobe.com
Date:     2008-10-16T14:21:15.699901Z

Log Message:
-----------
Chipping away at the size of pure Flex 4 SWFs. We no longer inadvertedly link in the legacy Halo Container, Button, and Scrollbar, for pure Flex 4 applets. Baseline Flex 4 SWF drops to about 177K now (down from 220K).
Checkin Tests: Pass
Reviewer: Glenn
QE: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as
+++ frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as
@@ -12,7 +12,7 @@
 package mx.containers.utilityClasses
 {

-import mx.core.Container;
+import mx.core.IChildList;
 import mx.core.IUIComponent;
 import mx.core.FlexVersion;

@@ -54,7 +54,7 @@
 	 *  after growing all children to their maxWidth.
 	 */
 	public static function flexChildWidthsProportionally(
-								parent:Container,
+								parent:IChildList,
 								spaceForChildren:Number,
 								h:Number):Number
 	{
@@ -183,7 +183,7 @@
 	 *  @param w width for all children.
 	 */
 	public static function flexChildHeightsProportionally(
-								parent:Container,
+								parent:IChildList,
 								spaceForChildren:Number,
 								w:Number):Number
 	{
@@ -425,7 +425,7 @@
 	 *  @param spaceForChildren The total space for all children
 	 */
 	public static function distributeExtraHeight(
-								parent:Container,
+								parent:IChildList,
 								spaceForChildren:Number):void
 	{
 		// We should only get here after distributing the majority of the
@@ -533,7 +533,7 @@
 	 *  @param spaceForChildren The total space for all children
 	 */
 	public static function distributeExtraWidth(
-								parent:Container,
+								parent:IChildList,
 								spaceForChildren:Number):void
 	{
 		// We should only get here after distributing the majority of the


Transferred from the Adobe Open Source Subversion Repository

Revision: 20097
Author:   jasonsj@adobe.com
Date:     2011-02-03T17:48:25.773740Z

Log Message:
-----------
Remove use of minWidth and minHeight where possible from mobile skins to fix constraint use cases. Replace usage of minWidth/minHeight and layoutMeasuredWidth/layoutMeasuredHeight with MobileSkin property measuredDefaultWidth/measuredDefaultHeight.

Use minWidth/minHeight for skins that do not scale down: Beveled buttons, CheckBox, RadioButton, and scroll bars.

Doc notes:
Bugs:
SDK-28715 Cannot size and position button correctly in i4 build.
Reviewer: egeorgie
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonBarFirstButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaVScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonBarMiddleButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorTabBarTabSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonBarLastButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ImageSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaHScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -69,9 +69,8 @@
             {
                 borderClass = spark.skins.mobile320.assets.TextInput_border;
                 layoutCornerEllipseSize = 24;
-                layoutMeasuredWidth = 612;
-                minWidth = 48;
-                minHeight = 106;
+                measuredDefaultWidth = 612;
+                measuredDefaultHeight = 106;
                 layoutBorderSize = 2;

                 break;
@@ -80,9 +79,8 @@
             {
                 borderClass = spark.skins.mobile240.assets.TextInput_border;
                 layoutCornerEllipseSize = 12;
-                layoutMeasuredWidth = 440;
-                minWidth = 24;
-                minHeight = 70;
+                measuredDefaultWidth = 440;
+                measuredDefaultHeight = 70;
                 layoutBorderSize = 1;

                 break;
@@ -91,9 +89,8 @@
             {
                 borderClass = spark.skins.mobile160.assets.TextInput_border;
                 layoutCornerEllipseSize = 12;
-                layoutMeasuredWidth = 306;
-                minWidth = 24;
-                minHeight = 53;
+                measuredDefaultWidth = 306;
+                measuredDefaultHeight = 53;
                 layoutBorderSize = 1;

                 break;
@@ -125,12 +122,6 @@
     //  Variables
     //
     //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     *  Default width per DPI.
-     */
-    private var layoutMeasuredWidth:Number;

     /**
      *  @private
@@ -239,7 +230,7 @@
         // You can set an explicit width and the height will adjust accordingly. The opposite
         // is not true: setting an explicit height will not adjust the width accordingly.

-        measuredWidth = layoutMeasuredWidth;
+        measuredWidth = measuredDefaultWidth;

         // now we need to measure textDisplay's height.  Unfortunately, this is tricky and
         // is dependent on textDisplay's width.  Let's use the heuristic that our width


Transferred from the Adobe Open Source Subversion Repository

Revision: 11452
Author:   klin@adobe.com
Date:     2009-11-05T01:43:45.759633Z

Log Message:
-----------
Couple of various fixes.

ComboBox.as - The dropDown was not receiving changes to styles nor dataproviders. This was a result of not recreating the dropDown each time it was shown. I've changed the default of the flag for destroying the dropDown to be true. I've also modified the code to only not destroy the dropDown when it is showing or being shown.

ButtonBar.as - In one case, when calculating the percentage that each button takes of the width, there was a rounding error that caused the total percentage to be less than 100%. I've changed the code to use Numbers to avoid the rounding error.

DropDownList.as - I've fixed the page down code to take into account the case when selectedIndex==-1.

Label.as, SWFLoader.as, TextInput.as - Excluded baseColor style.

TitleWindowBoundsEvent.as - ASDoc change. "afterBounds" is always null when the "windowMoveStart" event is dispatched

QE notes: No
Doc notes: No
Bugs: SDK-21715, SDK-23338, SDK-23512, SDK-23838, SDK-23660
Reviewer: Chet
Tests run: checkintests, ButtonBar, ToggleButtonBar, tabnavigator
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/TitleWindowBoundsEvent.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Label.as
+++ frameworks/projects/mx/src/mx/controls/Label.as
@@ -158,6 +158,7 @@
 [Exclude(name="focusPane", kind="property")]
 [Exclude(name="mouseFocusEnabled", kind="property")]
 [Exclude(name="tabEnabled", kind="property")]
+[Exclude(name="baseColor", kind="style")]
 [Exclude(name="focusBlendMode", kind="style")]
 [Exclude(name="focusSkin", kind="style")]
 [Exclude(name="focusThickness", kind="style")]


Fixed fullscreen resolution on seek.

Fixed fullscreen resolution on seek.

--- src/flash/FlashMediaElement.as
+++ src/flash/FlashMediaElement.as
@@ -658,7 +658,7 @@

 			stage.displayState = StageDisplayState.FULL_SCREEN;

-			repositionVideo(true);
+			repositionVideo();
 			positionControls();
 			updateControls(HtmlMediaEvent.FULLSCREENCHANGE);

@@ -708,7 +708,7 @@
 			try {
 				_controlBar.visible = true;
 				setFullscreen(!_isFullScreen);
-				repositionVideo(_isFullScreen);
+				repositionVideo();
 			} catch (error:Error) {
 			}
 		}
@@ -721,7 +721,7 @@
 			try {
 				_controlBar.visible = true;
 				setFullscreen(true);
-				repositionVideo(true);
+				repositionVideo();
 				positionControls();
 			} catch (error:Error) {
 			}
@@ -840,9 +840,15 @@
 		// END: external interface

-		function repositionVideo(fullscreen:Boolean = false):void {
-
-			_output.appendText("positioning video\n");
+		function repositionVideo():void {
+
+			if (stage.displayState == "fullScreen") {
+				fullscreen = true;
+			} else {
+				fullscreen = false;
+			}
+
+			_output.appendText("positioning video "+stage.displayState+"\n");

 			if (_mediaElement is VideoElement) {

@@ -860,7 +866,7 @@
 				if(fullscreen == true) {
 					stageRatio = flash.system.Capabilities.screenResolutionX/flash.system.Capabilities.screenResolutionY;
 					nativeRatio = _nativeVideoWidth/_nativeVideoHeight;
-
+
 					// adjust size and position
 					if (nativeRatio > stageRatio) {
 						_mediaElement.setSize(flash.system.Capabilities.screenResolutionX, _nativeVideoHeight * flash.system.Capabilities.screenResolutionX / _nativeVideoWidth);
@@ -875,7 +881,6 @@
 				} else {
 					stageRatio = _stageWidth/_stageHeight;
 					nativeRatio = _nativeVideoWidth/_nativeVideoHeight;
-

 					// adjust size and position
 					if (nativeRatio > stageRatio) {
@@ -924,12 +929,11 @@
 				_output.appendText(_nativeVideoWidth.toString() + "x" + _nativeVideoHeight.toString() + "\n");

-				 if(stage.displayState == "fullScreen" ) {
+				if(stage.displayState == "fullScreen" ) {
 					setVideoSize(_nativeVideoWidth, _nativeVideoHeight);
-					repositionVideo(true);
-				 } else {
-					repositionVideo();
-				 }
+				}
+				repositionVideo();
+
 			}

 			updateControls(eventName);


Расширение возможностей FilePathUtils

Расширение возможностей FilePathUtils

--- src/main/org/shypl/common/util/FilePathUtils.as
+++ src/main/org/shypl/common/util/FilePathUtils.as
@@ -53,5 +53,19 @@

 			return index;
 		}
+
+		public static function resolveSibling(path:String, sibling:String):String {
+			var index:int = path.lastIndexOf(UNIX_SEPARATOR);
+
+			if (index === -1) {
+				index = path.lastIndexOf(WINDOWS_SEPARATOR);
+			}
+
+			if (index === -1) {
+				return sibling;
+			}
+
+			return path.substring(0, index + 1) + sibling;
+		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/messaging/management/MBeanInfo.as
+++ frameworks/projects/rpc/src/mx/messaging/management/MBeanInfo.as
@@ -0,0 +1,69 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.messaging.management
+{
+
+import mx.utils.ObjectUtil;
+
+[RemoteClass(alias='flex.management.jmx.MBeanInfo')]
+
+/**
+ * Client representation of metadata for a MBean.
+ */
+public class MBeanInfo
+{
+    /**
+     *  Creates a new instance of an empty MBeanInfo.
+     */
+	public function MBeanInfo()
+	{
+		super();
+	}
+
+	/**
+	 * The class name for the MBean.
+	 */
+	public var className:String;
+
+	/**
+	 * The description for the MBean.
+	 */
+	public var description:String;
+
+	/**
+	 * The attributes exposed by the MBean.
+	 */
+	public var attributes:Array;
+
+	/**
+	 * The constructors exposed by the MBean.
+	 */
+	public var constructors:Array;
+
+	/**
+	 * The operations provided by the MBean.
+	 */
+	public var operations:Array;
+
+	/**
+     *  Returns a string representation of the MBean info.
+     *
+     *  @return String representation of the MBean info.
+     */
+	public function toString():String
+    {
+        return ObjectUtil.toString(this);
+    }
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8385
Author:   smgilson@adobe.com
Date:     2009-07-06T19:38:43.090419Z

Log Message:
-----------
ASDoc updates for Spark layouts and core

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

Modified Paths:
--------------
<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/layouts/supportClasses/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/RowAlign.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/ISharedDisplayObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalAlign.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/MaskType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/NavigationUnit.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/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalAlign.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/DisplayObjectSharingMode.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/layouts/ColumnAlign.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileOrientation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>

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

--- frameworks/projects/spark/src/spark/core/ISharedDisplayObject.as
+++ frameworks/projects/spark/src/spark/core/ISharedDisplayObject.as
@@ -11,18 +11,17 @@
 package spark.core
 {
 /**
- *  ISharedDisplayObject defines the minimum requirements for a
- *  DisplayObject to be shared between IGraphicElement
- *  objects.
+ *  The ISharedDisplayObject interface defines the minimum requirements
+ *  that a DisplayObject must implement to be shared between
+ *  IGraphicElement objects.
  *
- *  Group uses ISharedDisplayObject to manage
- *  invalidation and redrawing of sequences of IGraphicElement
- *  objects that share a DisplayObject.
+ *  The Group class uses the ISharedDisplayObject interface to manage
+ *  invalidation and redrawing of sequences of IGraphicElement
+ *  objects that share a DisplayObject.
  *
- *  Typically when implementing a custom IGraphicElement
- *  Developers also implement this interface for the DisplayObject
- *  that the custom IGraphicElement creates.
- *
+ *
Typically, when implementing a custom IGraphicElement class,
+ *  you also implement this interface for the DisplayObject
+ *  that the custom IGraphicElement creates.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -32,10 +31,11 @@
 public interface ISharedDisplayObject
 {
     /**
-     *  True when any of the IGraphicElement objects, that share
-     *  this DisplayObject, needs to redraw.  This is used internally
-     *  by the Group class and developers don't typically use this.
-     *  The Group sets and reads back this property in order to
+     *  Contains true when any of the IGraphicElement objects that share
+     *  this DisplayObject need to redraw.
+     *  This property is used internally by the Group class
+     *  and you do not typically use it.
+     *  The Group class sets and reads back this property to
      *  determine which graphic elements to validate.
      *
      *  @langversion 3.0


live HDS: add padding to dvr window size

--- kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
@@ -154,6 +154,10 @@
 		private var _inDvr:Boolean = false;

 		private var _dvrWinSize:Number = 0;
+		/**
+		 * in akamai dvr window size is actually dvrWindow - dvrPadding
+		 */
+		private var _dvrPadding:int = 48;

 		/**
 		 * Constructor
@@ -228,6 +232,9 @@
 			{
 				disableOnScreenClick();
 			}
+
+			if (_flashvars.dvrWindowPadding)
+				_dvrPadding = _flashvars.dvrWindowPadding;
 		}

 		public function centerMediator () : void
@@ -337,6 +344,8 @@
 					{
 						_mediaProxy.vo.canSeek = true;
 						_dvrWinSize = (_mediaProxy.vo.entry as KalturaLiveStreamEntry).dvrWindow * 60;
+						if (isAkamaiHD())
+							_dvrWinSize -= _dvrPadding;
 						sendNotification( NotificationType.DURATION_CHANGE , {newValue:_dvrWinSize});
 					}


Tweaked Reflector.classExtendsOrImplements() so the superclass name lookup happens as late as possible.

--- src/org/swiftsuspenders/Reflector.as
+++ src/org/swiftsuspenders/Reflector.as
@@ -27,12 +27,8 @@
 		public function classExtendsOrImplements(classOrClassName : Object,
 			superclass : Class, application : ApplicationDomain = null) : Boolean
 		{
-            var superclassName : String = getQualifiedClassName(superclass);
-
             var actualClass : Class;

-
-
             if (classOrClassName is Class)
             {
                 actualClass = Class(classOrClassName);
@@ -59,12 +55,11 @@
             if (actualClass == superclass)
                 return true;

-			// trace("describeType(actualClass): " + (describeType(actualClass)));
             var factoryDescription : XML = describeType(actualClass).factory[0];

 			return (factoryDescription.children().(
             	name() == "implementsInterface" || name() == "extendsClass").(
-            	attribute("type") == superclassName).length() > 0);
+            	attribute("type") == getQualifiedClassName(superclass)).length() > 0);
 		}

 		public function getClass(


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/IDeferredInstance.as
+++ frameworks/projects/framework/src/mx/core/IDeferredInstance.as
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+/**
+ *  The IDeferredInstance interface defines the Flex deferred instance factory interface.
+ *  An implementation of IDeferredInstance creates a particular instance value
+ *  when the getInstance() method is first called, and returns a reference to that value
+ *  when the getInstance() method is called subsequently.
+ *
+ *
The Flex compiler performs the following automatic coercions when it
+ *  encounters MXML that assigns a value to a property with the
+ *  IDeferredInstance type:

+ *
+ *

+ *
If you assign a property of type IDeferredInstance a value that is
+ *          an MXML child tag representing a class, such as a component
+ *          tag, the compiler creates an IDeferredInstance implementation
+ *          whose getInstance() method returns an instance
+ *          of the class, configured as specified in the MXML code.
+ *          The following example shows this format; in this example,
+ *          MyComp is a custom component that has a variable called
+ *          myDeferredInstanceProperty of type IDeferredInstance. The compiler
+ *          generates an IDeferredInstance1 implementation whose
+ *          getInstance() method returns an instance of the
+ *          Label class, with its text property set to
+ *          "This is a deferred label":
+ *

+ *          <MyComp>
+ *              <myDeferredInstanceProperty>
+ *                  <Label text="This is a deferred label"/>
+ *              </myDeferredInstanceProperty>
+ *          </MyComp>

+ *

+ *
If you assign a text string to a property of type IDeferredInstance,
+ *          the compiler interprets the string as a fully qualified class name,
+ *          and creates an
+ *          IDeferredInstance implementation whose getInstance()
+ *          method returns a new instance of the specified class.
+ *          The specified class must have a constructor with no arguments.
+ *          The following example shows this format; in this example, the compiler
+ *          generates an IDeferredInstance1 implementation whose
+ *          getInstance() method returns an instance of the
+ *          MyClass class:
+ *

+ *          <MyComp myDeferredInstanceProperty="myPackage.MyClass/>

+ *

+ *

+ *
+ *
Use the IDeferredInstance interface when an ActionScript class defers
+ *  the instantiation of a property value.
+ *  You cannot use IDeferredInstance if an ActionScript class requires
+ *  multiple instances of the same value.
+ *  In those situations, use the IFactory interface.

+ *
+ *
The states.AddChild class includes a childFactory
+ *  property that is of type IDeferredInstance.

+ *
+ *  @see mx.states.AddChild
+ */
+public interface IDeferredInstance
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Creates an instance Object from a class or function,
+     *  if the instance does not yet exist.
+     *
+     *  @return The instance Object.
+     */
+    function getInstance():Object;
+}
+
+}


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

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

 package mx.effects
 {


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19635
Author:   aharui@adobe.com
Date:     2011-01-07T00:25:18.039632Z

Log Message:
-----------
revert the layout changes from svn 18635.  Management feels that there isn't enough time to thoroughly test the changes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.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@1261709 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -21,7 +21,6 @@
 import mx.core.UIComponent;
 import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
-import mx.core.FlexVersion;
 import mx.events.DynamicEvent;
 import mx.events.FlexEvent;
 import mx.managers.layoutClasses.PriorityQueue;
@@ -626,27 +625,6 @@
     }

     /**
-     *  Validates the estimatedWidth and estimatedHeight on
-     *  components in the queue.  It goes top-down even though
-     *  it uses a copy of the invalidateSize queue which goes
-     *  bottom-up
-     */
-    private function validateEstimatedSizes(queue:PriorityQueue):void
-    {
-        var obj:ILayoutManagerClient = ILayoutManagerClient(queue.removeSmallest());
-        while (obj)
-        {
-            var client:ILayoutManagerContainerClient = obj as ILayoutManagerContainerClient;
-            if (client && client.nestLevel)
-            {
-                currentObject = obj;
-                client.validateEstimatedSizesOfChildren();
-            }
-            obj = ILayoutManagerClient(queue.removeSmallest());
-        }
-    }
-
-    /**
      *  Validates all components whose properties have changed and have called
      *  the invalidateSize() method.
      *  It calls the validateSize() method on those components
@@ -670,9 +648,6 @@
             perfUtil.markTime("validateSize().start");
         }

-        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-            validateEstimatedSizes(invalidateSizeQueue.clone());
-
         var obj:ILayoutManagerClient = ILayoutManagerClient(invalidateSizeQueue.removeLargest());
         while (obj)
         {
@@ -998,9 +973,7 @@
                 invalidatePropertiesFlag = false;
                 invalidateClientPropertiesFlag = false;
             }
-
-            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-                validateEstimatedSizes(invalidateSizeQueue.clone(target))
+
             // trace("--- LayoutManager: validateSize --->");

             obj = ILayoutManagerClient(invalidateSizeQueue.removeLargestChild(target));


Transferred from the Adobe Open Source Subversion Repository

Revision: 8509
Author:   smgilson@adobe.com
Date:     2009-07-10T17:58:51.724217Z

Log Message:
-----------
- Explicitly list the default skins for Spark components as part of the fix for SDK-18639
- Fix some bad @see links

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/StreamItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/ToggleButton.as
+++ frameworks/projects/spark/src/spark/components/ToggleButton.as
@@ -45,6 +45,10 @@
  *           Maximum size
  *           10000 pixels wide and 10000 pixels high
  *

+ *

+ *           Default skin class
+ *           spark.skins.spark.ToggleButtonSkin
+ *

  *

  *
  *  @mxml


Clean up.

Clean up.

--- src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as
+++ src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as
@@ -317,13 +317,20 @@
         {
             if (layer is ArcGISDynamicMapServiceLayer || layer is ArcGISTiledMapServiceLayer)
             {
-                layer["getDetails"](layerInfo.layerId,
-                                    new AsyncResponder(resultHandler,
-                                                       faultHandler,
-                                                       {
-                                                           parentTocItem: parentTocItem,
-                                                           layerId: layerInfo.layerId
-                                                       }));
+                var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler);
+
+                var dynamicLayer:ArcGISDynamicMapServiceLayer = layer as ArcGISDynamicMapServiceLayer;
+                if(dynamicLayer)
+                {
+                    dynamicLayer.getDetails(layerInfo.layerId, responder);
+                    continue;
+                }
+
+                var tiledLayer:ArcGISTiledMapServiceLayer = layer as ArcGISTiledMapServiceLayer;
+                if(tiledLayer)
+                {
+                    tiledLayer.getDetails(layerInfo.layerId, responder);
+                }
             }
         }


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

--- frameworks/projects/framework/src/mx/events/EffectEvent.as
+++ frameworks/projects/framework/src/mx/events/EffectEvent.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 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: 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@1262494 13f79535-47bb-0310-9956-ffa450edef68

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 9777
Author:   dsubrama@adobe.com
Date:     2009-08-28T23:16:15.936854Z

Log Message:
-----------
Checking in the FXG 2.0 cornerRadius work on behalf of Glenn.

We now add 8 new properties: topLeftRadiusX/topLeftRadiusY/topRightRadiusX/topRightRadiusY/bottomLeftRadiusX/bottomLeftRadiusY/bottomRightRadiusX/bottomRightRadiusY to control the x/y radii of each individual corner. Convenience properties radiusX and radiusY exist to propagate values down to the explicit per-corner properties.

QE notes: Please add tests
Doc notes: Yes, please doc
Bugs: None
Reviewer: Evtim, Deepa
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/GraphicsUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Rect.as</path>

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

--- frameworks/projects/framework/src/mx/utils/GraphicsUtil.as
+++ frameworks/projects/framework/src/mx/utils/GraphicsUtil.as
@@ -35,17 +35,17 @@
 	//  Class methods
 	//
 	//--------------------------------------------------------------------------
-
-	/**
-	 * Draws a rounded rectangle using the size of a radius to draw the rounded corners.
-	 * You must set the line style, fill, or both
-	 * on the Graphics object before
-	 * you call the drawRoundRectComplex() method
-	 * by calling the linestyle(),
-	 * lineGradientStyle(), beginFill(),
-	 * beginGradientFill(), or
-	 * beginBitmapFill() method.
-	 *
+
+    /**
+     * Draws a rounded rectangle using the size of a radius to draw the rounded corners.
+     * You must set the line style, fill, or both
+     * on the Graphics object before
+     * you call the drawRoundRectComplex() method
+     * by calling the linestyle(),
+     * lineGradientStyle(), beginFill(),
+     * beginGradientFill(), or
+     * beginBitmapFill() method.
+     *
      * @param graphics The Graphics object that draws the rounded rectangle.
      *
      * @param x The horizontal position relative to the
@@ -60,7 +60,7 @@
      *
      * @param topLeftRadius The radius of the upper-left corner, in pixels.
      *
-     * @param toRightRadius The radius of the upper-right corner, in pixels.
+     * @param topRightRadius The radius of the upper-right corner, in pixels.
      *
      * @param bottomLeftRadius The radius of the bottom-left corner, in pixels.
      *
@@ -72,60 +72,219 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-	public static function drawRoundRectComplex(graphics:Graphics, x:Number, y:Number,
-							  width:Number, height:Number,
-                              topLeftRadius:Number, topRightRadius:Number,
-                              bottomLeftRadius:Number, bottomRightRadius:Number):void
-	{
-		var xw:Number = x + width;
-		var yh:Number = y + height;
-
-		// Make sure none of the radius values are greater than w/h.
-		// These are all inlined to avoid function calling overhead
-		var minSize:Number = width < height ? width * 2 : height * 2;
-		topLeftRadius = topLeftRadius < minSize ? topLeftRadius : minSize;
-		topRightRadius = topRightRadius < minSize ? topRightRadius : minSize;
-		bottomLeftRadius = bottomLeftRadius < minSize ? bottomLeftRadius : minSize;
-		bottomRightRadius = bottomRightRadius < minSize ? bottomRightRadius : minSize;
-
-		// Math.sin and Math,tan values for optimal performance.
-		// Math.rad = Math.PI / 180 = 0.0174532925199433
-		// r * Math.sin(45 * Math.rad) =  (r * 0.707106781186547);
-		// r * Math.tan(22.5 * Math.rad) = (r * 0.414213562373095);
-		//
-		// We can save further cycles by precalculating
-		// 1.0 - 0.707106781186547 = 0.292893218813453 and
-		// 1.0 - 0.414213562373095 = 0.585786437626905
-
-		// bottom-right corner
-		var a:Number = bottomRightRadius * 0.292893218813453;		// radius - anchor pt;
-		var s:Number = bottomRightRadius * 0.585786437626905; 	// radius - control pt;
-		graphics.moveTo(xw, yh - bottomRightRadius);
-		graphics.curveTo(xw, yh - s, xw - a, yh - a);
-		graphics.curveTo(xw - s, yh, xw - bottomRightRadius, yh);
-
-		// bottom-left corner
-		a = bottomLeftRadius * 0.292893218813453;
-		s = bottomLeftRadius * 0.585786437626905;
-		graphics.lineTo(x + bottomLeftRadius, yh);
-		graphics.curveTo(x + s, yh, x + a, yh - a);
-		graphics.curveTo(x, yh - s, x, yh - bottomLeftRadius);
-
-		// top-left corner
-		a = topLeftRadius * 0.292893218813453;
-		s = topLeftRadius * 0.585786437626905;
-		graphics.lineTo(x, y + topLeftRadius);
-		graphics.curveTo(x, y + s, x + a, y + a);
-		graphics.curveTo(x + s, y, x + topLeftRadius, y);
-
-		// top-right corner
-		a = topRightRadius * 0.292893218813453;
-		s = topRightRadius * 0.585786437626905;
-		graphics.lineTo(xw - topRightRadius, y);
-		graphics.curveTo(xw - s, y, xw - a, y + a);
-		graphics.curveTo(xw, y + s, xw, y + topRightRadius);
-		graphics.lineTo(xw, yh - bottomRightRadius);
-	}
+    public static function drawRoundRectComplex(graphics:Graphics, x:Number, y:Number,
+                                                width:Number, height:Number,
+                                                topLeftRadius:Number, topRightRadius:Number,
+                                                bottomLeftRadius:Number, bottomRightRadius:Number):void
+    {
+        var xw:Number = x + width;
+        var yh:Number = y + height;
+
+        // Make sure none of the radius values are greater than w/h.
+        // These are all inlined to avoid function calling overhead
+        var minSize:Number = width < height ? width * 2 : height * 2;
+        topLeftRadius = topLeftRadius < minSize ? topLeftRadius : minSize;
+        topRightRadius = topRightRadius < minSize ? topRightRadius : minSize;
+        bottomLeftRadius = bottomLeftRadius < minSize ? bottomLeftRadius : minSize;
+        bottomRightRadius = bottomRightRadius < minSize ? bottomRightRadius : minSize;
+
+        // Math.sin and Math,tan values for optimal performance.
+        // Math.rad = Math.PI / 180 = 0.0174532925199433
+        // r * Math.sin(45 * Math.rad) =  (r * 0.707106781186547);
+        // r * Math.tan(22.5 * Math.rad) = (r * 0.414213562373095);
+        //
+        // We can save further cycles by precalculating
+        // 1.0 - 0.707106781186547 = 0.292893218813453 and
+        // 1.0 - 0.414213562373095 = 0.585786437626905
+
+        // bottom-right corner
+        var a:Number = bottomRightRadius * 0.292893218813453;		// radius - anchor pt;
+        var s:Number = bottomRightRadius * 0.585786437626905; 	// radius - control pt;
+        graphics.moveTo(xw, yh - bottomRightRadius);
+        graphics.curveTo(xw, yh - s, xw - a, yh - a);
+        graphics.curveTo(xw - s, yh, xw - bottomRightRadius, yh);
+
+        // bottom-left corner
+        a = bottomLeftRadius * 0.292893218813453;
+        s = bottomLeftRadius * 0.585786437626905;
+        graphics.lineTo(x + bottomLeftRadius, yh);
+        graphics.curveTo(x + s, yh, x + a, yh - a);
+        graphics.curveTo(x, yh - s, x, yh - bottomLeftRadius);
+
+        // top-left corner
+        a = topLeftRadius * 0.292893218813453;
+        s = topLeftRadius * 0.585786437626905;
+        graphics.lineTo(x, y + topLeftRadius);
+        graphics.curveTo(x, y + s, x + a, y + a);
+        graphics.curveTo(x + s, y, x + topLeftRadius, y);
+
+        // top-right corner
+        a = topRightRadius * 0.292893218813453;
+        s = topRightRadius * 0.585786437626905;
+        graphics.lineTo(xw - topRightRadius, y);
+        graphics.curveTo(xw - s, y, xw - a, y + a);
+        graphics.curveTo(xw, y + s, xw, y + topRightRadius);
+        graphics.lineTo(xw, yh - bottomRightRadius);
+    }
+
+    /**
+     * Draws a rounded rectangle using the size of individual x and y radii to
+     * draw the rounded corners.
+     * You must set the line style, fill, or both
+     * on the Graphics object before
+     * you call the drawRoundRectComplex2() method
+     * by calling the linestyle(),
+     * lineGradientStyle(), beginFill(),
+     * beginGradientFill(), or
+     * beginBitmapFill() method.
+     *
+     * @param graphics The Graphics object that draws the rounded rectangle.
+     *
+     * @param x The horizontal position relative to the
+     * registration point of the parent display object, in pixels.
+     *
+     * @param y The vertical position relative to the
+     * registration point of the parent display object, in pixels.
+     *
+     * @param width The width of the round rectangle, in pixels.
+     *
+     * @param height The height of the round rectangle, in pixels.
+     *
+     * @param radiusX The default radiusX to use, if corner-specific values are not specified.
+     * This value must be specified.
+     *
+     * @param radiusY The default radiusY to use, if corner-specific values are not specified.
+     * If 0, the value of radiusX is used.
+     *
+     * @param topLeftRadiusX The x radius of the upper-left corner, in pixels. If NaN,
+     * the value of radiusX is used.
+     *
+     * @param topLeftRadiusY The y radius of the upper-left corner, in pixels. If NaN,
+     * the value of topLeftRadiusX is used.
+     *
+     * @param topRightRadiusX The x radius of the upper-right corner, in pixels. If NaN,
+     * the value of radiusX is used.
+     *
+     * @param topRightRadiusY The y radius of the upper-right corner, in pixels. If NaN,
+     * the value of topRightRadiusX is used.
+     *
+     * @param bottomLeftRadiusX The x radius of the bottom-left corner, in pixels. If NaN,
+     * the value of radiusX is used.
+     *
+     * @param bottomLeftRadiusY The y radius of the bottom-left corner, in pixels. If NaN,
+     * the value of bottomLeftRadiusX is used.
+     *
+     * @param bottomRightRadiusX The x radius of the bottom-right corner, in pixels. If NaN,
+     * the value of radiusX is used.
+     *
+     * @param bottomRightRadiusY The y radius of the bottom-right corner, in pixels. If NaN,
+     * the value of bottomRightRadiusX is used.
+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public static function drawRoundRectComplex2(graphics:Graphics, x:Number, y:Number,
+                                                width:Number, height:Number,
+                                                radiusX:Number, radiusY:Number,
+                                                topLeftRadiusX:Number, topLeftRadiusY:Number,
+                                                topRightRadiusX:Number, topRightRadiusY:Number,
+                                                bottomLeftRadiusX:Number, bottomLeftRadiusY:Number,
+                                                bottomRightRadiusX:Number, bottomRightRadiusY:Number):void
+    {
+        var xw:Number = x + width;
+        var yh:Number = y + height;
+        var maxXRadius:Number = width / 2;
+        var maxYRadius:Number = height / 2;
+
+        // Rules for determining radius for each corner:
+        //  - If explicit nnnRadiusX value is set, use it. Otherwise use radiusX.
+        //  - If explicit nnnRadiusY value is set, use it. Otherwise use corresponding nnnRadiusX.
+        if (radiusY == 0)
+            radiusY = radiusX;
+        if (isNaN(topLeftRadiusX))
+            topLeftRadiusX = radiusX;
+        if (isNaN(topLeftRadiusY))
+            topLeftRadiusY = topLeftRadiusX;
+        if (isNaN(topRightRadiusX))
+            topRightRadiusX = radiusX;
+        if (isNaN(topRightRadiusY))
+            topRightRadiusY = topRightRadiusX;
+        if (isNaN(bottomLeftRadiusX))
+            bottomLeftRadiusX = radiusX;
+        if (isNaN(bottomLeftRadiusY))
+            bottomLeftRadiusY = bottomLeftRadiusX;
+        if (isNaN(bottomRightRadiusX))
+            bottomRightRadiusX = radiusX;
+        if (isNaN(bottomRightRadiusY))
+            bottomRightRadiusY = bottomRightRadiusX;
+
+        // Pin radius values to half of the width/height
+        if (topLeftRadiusX > maxXRadius)
+            topLeftRadiusX = maxXRadius;
+        if (topLeftRadiusY > maxYRadius)
+            topLeftRadiusY = maxYRadius;
+        if (topRightRadiusX > maxXRadius)
+            topRightRadiusX = maxXRadius;
+        if (topRightRadiusY > maxYRadius)
+            topRightRadiusY = maxYRadius;
+        if (bottomLeftRadiusX > maxXRadius)
+            bottomLeftRadiusX = maxXRadius;
+        if (bottomLeftRadiusY > maxYRadius)
+            bottomLeftRadiusY = maxYRadius;
+        if (bottomRightRadiusX > maxXRadius)
+            bottomRightRadiusX = maxXRadius;
+        if (bottomRightRadiusY > maxYRadius)
+            bottomRightRadiusY = maxYRadius;
+
+        // Math.sin and Math,tan values for optimal performance.
+        // Math.rad = Math.PI / 180 = 0.0174532925199433
+        // r * Math.sin(45 * Math.rad) =  (r * 0.707106781186547);
+        // r * Math.tan(22.5 * Math.rad) = (r * 0.414213562373095);
+        //
+        // We can save further cycles by precalculating
+        // 1.0 - 0.707106781186547 = 0.292893218813453 and
+        // 1.0 - 0.414213562373095 = 0.585786437626905
+
+        // bottom-right corner
+        var aX:Number = bottomRightRadiusX * 0.292893218813453;		// radius - anchor pt;
+        var aY:Number = bottomRightRadiusY * 0.292893218813453;		// radius - anchor pt;
+        var sX:Number = bottomRightRadiusX * 0.585786437626905; 	// radius - control pt;
+        var sY:Number = bottomRightRadiusY * 0.585786437626905; 	// radius - control pt;
+        graphics.moveTo(xw, yh - bottomRightRadiusY);
+        graphics.curveTo(xw, yh - sY, xw - aX, yh - aY);
+        graphics.curveTo(xw - sX, yh, xw - bottomRightRadiusX, yh);
+
+        // bottom-left corner
+        aX = bottomLeftRadiusX * 0.292893218813453;
+        aY = bottomLeftRadiusY * 0.292893218813453;
+        sX = bottomLeftRadiusX * 0.585786437626905;
+        sY = bottomLeftRadiusY * 0.585786437626905;
+        graphics.lineTo(x + bottomLeftRadiusX, yh);
+        graphics.curveTo(x + sX, yh, x + aX, yh - aY);
+        graphics.curveTo(x, yh - sY, x, yh - bottomLeftRadiusY);
+
+        // top-left corner
+        aX = topLeftRadiusX * 0.292893218813453;
+        aY = topLeftRadiusY * 0.292893218813453;
+        sX = topLeftRadiusX * 0.585786437626905;
+        sY = topLeftRadiusY * 0.585786437626905;
+        graphics.lineTo(x, y + topLeftRadiusY);
+        graphics.curveTo(x, y + sY, x + aX, y + aY);
+        graphics.curveTo(x + sX, y, x + topLeftRadiusX, y);
+
+        // top-right corner
+        aX = topRightRadiusX * 0.292893218813453;
+        aY = topRightRadiusY * 0.292893218813453;
+        sX = topRightRadiusX * 0.585786437626905;
+        sY = topRightRadiusY * 0.585786437626905;
+        graphics.lineTo(xw - topRightRadiusX, y);
+        graphics.curveTo(xw - sX, y, xw - aX, y + aY);
+        graphics.curveTo(xw, y + sY, xw, y + topRightRadiusY);
+        graphics.lineTo(xw, yh - bottomRightRadiusY);
+    }
 }

 }


Fixed regression in 4.12RC2  (labelPlacement style conflict)

--- frameworks/projects/spark/src/spark/components/CheckBox.as
+++ frameworks/projects/spark/src/spark/components/CheckBox.as
@@ -87,7 +87,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="labelPlacement", type="String", enumeration="top,bottom,left,right", inherit="no", defaultValue="right")]
+[Style(name="labelPlacement", type="String", enumeration="top,bottom,left,right", inherit="yes")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 19736
Author:   cframpto@adobe.com
Date:     2011-01-12T20:13:30.109764Z

Log Message:
-----------
Determined that sortByColumns() should not dispatch the VALUE_COMMIT event because the mx grid sort does not.  Worked on the ASdoc for sort events a bit more.

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

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

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -465,18 +465,23 @@

 /**
  *  Dispatched before the sort has been applied to the data provder's collection.
- *  Calling the preventDefault() method
- *  on the event prevents the sort from being applied.
- *  Alternatively you can modify the columnIndices and
- *  newSortFields parameters of the event if you want to change the default
- *  behavior of the sort.
+ *  Typically this is when the user releases the mouse button on a column header
+ *  to request the control to sort the grid contents based on the contents of the column.
+ *  Only dispatched if the column is sortable and the data provider supports sorting.

  *
+ *
The DataGrid control has a default handler for this event that implements
+ *  a single-column sort and updates the visibleSortIndices in the grid's
+ *  columnHeaderGroup with the columnIndices.
+ *  Multiple-column sort can be implemented by calling the preventDefault() method
+ *  to prevent the single column sort and setting the columnIndices and
+ *  newSortFields parameters of the event to change the default behavior.
+ *
  *
This event is dispatched when the user interacts with the control.
  *  When you sort the data provider's collection programmatically,
  *  the component does not dispatch the sortChanging event.

  *
  *  @eventType spark.events.GridSelectionEvent.SORT_CHANGING
- *
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 2.5
@@ -486,11 +491,12 @@

 /**
  *  Dispatched after the sort has been applied to the data provder's collection.
+ *  Typcically this is after the user releases the mouse button on a column header and
+ *  the sort has been applied to the data provider's collection.
  *
  *
This event is dispatched when the user interacts with the control.
  *  When you sort the data provider's collection programmatically,
- *  the component does not dispatch the sortChanging event.
- *  In either case it dispatches the valueCommit event as well.

+ *  the component does not dispatch the sortChanging event.

  *
  *  @eventType spark.events.GridSelectionEvent.SELECTION_CHANGE
  *
@@ -3679,9 +3685,6 @@
                 columnHeaderGroup.visibleSortIndicatorIndices = columnIndices;
         }

-        // Dispatch the "valueCommit" event.
-        dispatchFlexEvent(FlexEvent.VALUE_COMMIT);
-
         return true;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12363
Author:   cframpto@adobe.com
Date:     2009-12-02T14:40:10.582696Z

Log Message:
-----------
Add back support for mask, luminosityClip, and luminosityInvert which was lost when RichText was changed from a GraphicElement to a UIComponent.

QE notes:
Doc notes:
Bugs: SDK-23930
Reviewer: Deepa
Tests run: checkintests, fxg, primitives
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/MaskUtil.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -35,11 +35,14 @@
 import mx.core.IFontContextComponent;
 import mx.core.IUIComponent;
 import mx.core.Singleton;
+import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.managers.ISystemManager;

 import spark.components.supportClasses.TextBase;
 import spark.core.CSSTextLayoutFormat;
+import spark.core.MaskType;
+import spark.utils.MaskUtil;
 import spark.utils.TextUtil;

 use namespace mx_internal;
@@ -649,6 +652,236 @@
 		invalidateDisplayList();
     }

+    //----------------------------------
+    //  mask
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var maskChanged:Boolean;
+
+    /**
+     *  @private
+     */
+    override public function set mask(value:DisplayObject):void
+    {
+        if (super.mask == value)
+            return;
+
+        var oldMask:UIComponent = super.mask as UIComponent;
+
+        super.mask = value;
+
+        // If the old mask was attached by us, then we need to
+        // undo the attachment logic
+        if (oldMask && oldMask.$parent === this)
+        {
+            if (oldMask.parent is UIComponent)
+                UIComponent(oldMask.parent).childRemoved(oldMask);
+            oldMask.$parent.removeChild(oldMask);
+        }
+
+        maskChanged = true;
+        maskTypeChanged = true;
+
+        invalidateProperties();
+        invalidateDisplayList();
+    }
+
+    //----------------------------------
+    //  maskType
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the maskType property.
+     */
+    private var _maskType:String = MaskType.CLIP;
+
+    /**
+     *  @private
+     */
+    private var maskTypeChanged:Boolean;
+
+    /**
+     *
The maskType defines how the mask is applied to the component.

+     *
+     *
The possible values are MaskType.CLIP, MaskType.ALPHA and
+     *  MaskType.LUMINOSITY.

+     *
+     *
Clip Masking

+     *
+     *
When masking in clip mode, a clipping masks is reduced to 1-bit.  This means that a mask will
+     *  not affect the opacity of a pixel in the source content; it either leaves the value unmodified,
+     *  if the corresponding pixel in the mask is has a non-zero alpha value, or makes it fully
+     *  transparent, if the mask pixel value has an alpha value of zero.

+     *
+     *
When clip masking is used, only the actual path and shape vectors and fills defined by the
+     *  mask are used to determine the effect on the source content.  strokes and bitmap filters
+     *  defined on the mask are ignored.  Any filled region in the mask is considered filled, and renders
+     *  the source content.  The type and parameters of the fill is irrelevant;  a solid color fill,
+     *  gradient fill, or bitmap fill in a mask will all render the underlying source content, regardless
+     *  of the alpha values of the mask fill.

+     *
+     *
BitmapGraphics are treated as bitmap filled rectangles when used in a clipping mask.  As a
+     *  result, the alpha channel of the source bitmap is irrelevant when part of a mask -- the bitmap
+     *  affects the mask in the same manner as solid filled rectangle of equivalent dimensions.

+     *
+     *
Alpha Masking

+     *
+     *
In alpha mode, the opacity of each pixel in the source content is multiplied by the opacity
+     *  of the corresponding region of the mask.  i.e., a pixel in the source content with an opacity of
+     *  1 that is masked by a region of opacity of .5 will have a resulting opacity of .5.  A source pixel
+     *  with an opacity of .8 masked by a region with opacity of .5 will have a resulting opacity of .4.

+     *
+     *
Conceptually, alpha masking is equivalent to rendering the transformed mask and source content
+     *  into separate RGBA surfaces, and multiplying the alpha channel of the mask content into the alpha
+     *  channel of the source content.  All of the mask content is rendered into its surface before
+     *  compositing into the source content's surface. As a result, all FXG features, such as strokes,
+     *  bitmap filters, and fill opacity will affect the final composited content.

+     *
+     *
When in alpha mode, the alpha channel of any bitmap data is composited normally into the mask
+     *  alpha channel, and will affect the final rendered content. This holds true for both BitmapGraphics
+     *  and bitmap filled shapes and paths.

+     *
+     *
Luminosity Masking

+     *
+     *
A luminosity mask, sometimes called a 'soft mask', works very similarly to an alpha mask
+     *  except that both the opacity and RGB color value of a pixel in the source content is multiplied
+     *  by the opacity and RGB color value of the corresponding region in the mask.

+     *
+     *
Conceptually, luminosity masking is equivalent to rendering the transformed mask and source content
+     *  into separate RGBA surfaces, and multiplying the alpha channel and the RGB color value of the mask
+     *  content into the alpha channel and RGB color value of the source content.  All of the mask content is
+     *  rendered into its surface before compositing into the source content's surface. As a result, all FXG
+     *  features, such as strokes, bitmap filters, and fill opacity will affect the final composited
+     *  content.

+     *
+     *
Luminosity masking is not native to Flash but is common in Adobe Creative Suite tools like Adobe
+     *  Illustrator and Adobe Photoshop. In order to accomplish the visual effect of a luminosity mask in
+     *  Flash-rendered content, a graphic element specifying a luminosity mask actually instantiates a shader
+     *  filter that mimics the visual look of a luminosity mask as rendered in Adobe Creative Suite tools.

+     *
+     *
Objects being masked by luminosity masks can set properties to control the RGB color value and
+     *  clipping of the mask. See the luminosityInvert and luminosityClip attributes.

+     *
+     *  @default MaskType.CLIP
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get maskType():String
+    {
+        return _maskType;
+    }
+
+    /**
+     *  @private
+     */
+    public function set maskType(value:String):void
+    {
+        if (_maskType == value)
+            return;
+
+        _maskType = value;
+        maskTypeChanged = true;
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  luminosityInvert
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the luminosityInvert property.
+     */
+    private var _luminosityInvert:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var luminositySettingsChanged:Boolean;
+
+    /**
+     *  A property that controls the calculation of the RGB
+     *  color value of a graphic element being masked by
+     *  a luminosity mask. If true, the RGB color value of a
+     *  pixel in the source content is inverted and multipled
+     *  by the corresponding region in the mask. If false,
+     *  the source content's pixel's RGB color value is used
+     *  directly.
+     *
+     *  @default false
+     *  @see #maskType
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get luminosityInvert():Boolean
+    {
+        return _luminosityInvert;
+    }
+
+    /**
+     *  @private
+     */
+    public function set luminosityInvert(value:Boolean):void
+    {
+        if (_luminosityInvert == value)
+            return;
+
+        _luminosityInvert = value;
+        luminositySettingsChanged = true;
+    }
+
+    //----------------------------------
+    //  luminosityClip
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the luminosityClip property.
+     */
+    private var _luminosityClip:Boolean = false;
+
+    /**
+     *  A property that controls whether the luminosity
+     *  mask clips the masked content. This property can
+     *  only have an effect if the graphic element has a
+     *  mask applied to it that is of type
+     *  MaskType.LUMINOSITY.
+     *
+     *  @default false
+     *  @see #maskType
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get luminosityClip():Boolean
+    {
+        return _luminosityClip;
+    }
+
+    /**
+     *  @private
+     */
+    public function set luminosityClip(value:Boolean):void
+    {
+        if (_luminosityClip == value)
+            return;
+
+        _luminosityClip = value;
+        luminositySettingsChanged = true;
+    }
+
 	//----------------------------------
 	//  textFlow
 	//----------------------------------
@@ -857,6 +1090,29 @@
             _textFlow.addEventListener(DamageEvent.DAMAGE,
                                        textFlow_damageHandler);
 		}
+
+        if (maskChanged)
+        {
+            MaskUtil.applyMask(mask, parent);
+
+            maskChanged = false;
+        }
+
+        if (luminositySettingsChanged)
+        {
+            MaskUtil.applyLuminositySettings(
+                mask, _maskType, _luminosityInvert, _luminosityClip);
+
+            luminositySettingsChanged = false;
+        }
+
+        if (maskTypeChanged)
+        {
+            MaskUtil.applyMaskType(
+                mask, _maskType, _luminosityInvert, _luminosityClip, this);
+
+            maskTypeChanged = false;
+        }
 	}

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 3499
Author:   rfrishbe@adobe.com
Date:     2008-10-06T23:57:04.003486Z

Log Message:
-----------
Code cleanup:

1.  Remove IDisplayObjectElement and IAssignableDisplayObjectElement.  No one was actually using these interfaces...a few classes were implementing them though.

2.  Big ASDoc comment scrub for Group, DataGroup, and GroupBase.  Fixed some ASDoc in LayoutBase, IViewport, and ResizeMode.

3.  Spit and finish on Group.  No more variables or parameters typed as "*".  Got the content APIs in-line with Flash's DisplayObjectContainer, which means exceptions are now thrown where appropriate.

4.  Fixed a bug in DataGround where graphic items with item renderers had trouble in itemRemoved() (SDK-17175)

QE: Yes - Please revamp the excluded test cases to look for the new exceptions.
Doc: Yes
Bugs: SDK-17175
Reviewer: Glenn

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/core/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/ResizeMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/GroupBase.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/IDisplayObjectElement.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/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/IAssignableDisplayObjectElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/intf/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -49,7 +49,6 @@
  *  Documentation is not currently avilable.
  */
 public class TextGraphic extends TextGraphicElement
-	implements IDisplayObjectElement
 {
 	include "../core/Version.as";