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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 5797
Author:   jimurphy@adobe.com
Date:     2009-03-31T15:35:34.544076Z

Log Message:
-----------
Merged revisions 3.x 5505,5526-5527,5535,5540,5542,5572,5616-5617,5656-5657,5671,5674,5683,5687-5688,5690,5698,5708-5709,5713-5716,5719-5723,5726,5728-5729,5736,5752,5754,5761,5774,5780,5784 -> trunk

most of these are user submitted patches! very cool.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/IResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToggleButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressIndeterminateSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/compiler/FlexCompilerShell-license.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/DividedBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.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/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/PhoneNumberValidator.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as" copyfrom-rev="5784" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/NumberValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/CurrencyValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Form.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.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/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/CalendarLayoutChangeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/DataGridEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpMenuButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>

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

--- frameworks/projects/framework/src/mx/managers/FocusManager.as
+++ frameworks/projects/framework/src/mx/managers/FocusManager.as
@@ -1443,7 +1443,7 @@
     public function getNextFocusManagerComponent(
                             backward:Boolean = false):IFocusManagerComponent
 	{
-		return getNextFocusManagerComponent2(false, fauxFocus).displayObject as IFocusManagerComponent;
+		return getNextFocusManagerComponent2(backward, fauxFocus).displayObject as IFocusManagerComponent;
 	}

 	/**


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

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

 package mx.managers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4692
Author:   gosmith@adobe.com
Date:     2009-01-27T22:13:03.562851Z

Log Message:
-----------
Fixed missing or misplaced 'break' statements in the eventHandler() methods of the mx.accessibility classes. These have probably been causing some unintented MSAA events to be dispatched.

Also, each accessible component now dispatches OBJ_NAMECHANGE when its toolTip or errorString property changes, because the MSAA name includes the tooltip or error tip.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TitleWindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/MenuBarAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/MenuBarAccImpl.as
@@ -342,6 +342,10 @@
 	 */
 	override protected function eventHandler(event:Event):void
 	{
+		// Let AccImpl class handle the events
+		// that all accessible UIComponents understand.
+		$eventHandler(event);
+
 		switch (event.type)
 		{
 			case "menuShow":


Transferred from the Adobe Open Source Subversion Repository

Revision: 4446
Author:   hmuller@adobe.com
Date:     2009-01-08T19:53:52.711496Z

Log Message:
-----------
Added support for virtualiztaion to HorizontalLayout.

Some refactoring and commenting of Horizontal,Verticallayout.

QE Notes: Existing mustella tests pass, virtualization tests are still TBD
Doc Notes: None
Bugs:
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.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@1285303 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -86,6 +86,7 @@
     {
         super();
     }
+

     //--------------------------------------------------------------------------
     //
@@ -102,7 +103,10 @@
     [Inspectable(category="General")]

     /**
-     *  Vertical space between rows.
+     *  The vertical space between layout elements.
+     *
+     *  Note that the gap is only applied between layout elements, so if there's
+     *  just one element, the gap has no effect on the layout.
      *
      *  @default 6
      */
@@ -171,16 +175,23 @@
      */
     private var _horizontalAlign:String = HorizontalAlign.LEFT;

-    [Inspectable(category="General")]
+    [Inspectable(category="General", enumeration="left,right,center,justify,contentJustify", defaultValue="left")]

     /**
-     *  Horizontal alignment of children in the container.
-     *  Possible values are "left", "center",
-     *  "right", "justify",
-     *  and "contentJustify".
-     *  The default value is "left", but some containers,
-     *  such as List, use a different default value.  There are constants
-     *  for these values in mx.layout.HorizontalAlign.
+     *  Horizontal alignment of layout elements.
+     *
+     *  If the value is one of "left", "right", "center"  then the
+     *  layout element is aligned relative to the target's contentWidth.
+     *
+     *  If the value is "contentJustify" then the layout element's actual
+     *  width is set to the contentWidth.
+     *
+     *  If the value is "justify" then the layout element's actual width
+     *  is set to the target's width.
+     *
+     *  This property does not affect the layout's measured size.
+     *
+     *  @default "left"
      */
     public function get horizontalAlign():String
     {
@@ -208,13 +219,15 @@
     [Inspectable(category="General")]

     /**
-     *  Specifies the number of elements to display.
-     *
-     *  If requestedRowCount is -1, then all of the elements are displayed.
-     *
-     *  This property implies the layout's measuredHeight.
-     *
-     *  If the height of the target has been explicitly set,
+     *  The measured size of this layout will be big enough to display
+     *  the first requestedRowCount layout elements.
+     *
+     *  If requesteRowCount is -1, then the measured
+     *  size will be big enough for all of the layout elements.
+     *
+     *  This property implies the layout target's measuredHeight.
+     *
+     *  If the actual size of the target has been explicitly set,
      *  then this property has no effect.
      *
      *  @default -1
@@ -245,22 +258,24 @@
     [Inspectable(category="General")]

     /**
-     *  Specifies the height of the rows if variableRowHeight
-     *  is false.
-     *
-     *  If this property isn't explicitly set, then the measured height
-     *  of the first element is returned.
+     *  If variableRowHeight="false" then
+     *  this property specifies the actual height of each layout element.
+     *
+     *  If variableRowHeight="true" (the default), then this property
+     *  has no effect.
+     *
+     *  The default value of this property is the preferred height
+     *  of the typicalLayoutElement.
      */
     public function get rowHeight():Number
     {
         if (!isNaN(_rowHeight))
             return _rowHeight;
-        else if (!target || (target.numLayoutElements <= 0))
-            return 0;
-        else if (typicalLayoutElement)
-            return typicalLayoutElement.getPreferredBoundsHeight();
-        else
-            return target.getLayoutElementAt(0).getPreferredBoundsHeight();
+        else
+        {
+            var elt:ILayoutElement = typicalLayoutElement
+            return (elt) ? elt.getPreferredBoundsHeight() : 0;
+        }
     }

     /**
@@ -287,17 +302,16 @@
     [Inspectable(category="General")]

     /**
-     *  If false, i.e. "fixed row height" is specified, the height of
-     *  each element is set to the value of rowHeight.
-     *
-     *  If the rowHeight property wasn't explicitly set,
-     *  then it's initialized with the measuredHeight of
-     *  the first element.
-     *
-     *  The elements' includeInLayout,
-     *  measuredHeight, minHeight,
-     *  and percentHeight properties are ignored when
-     *  variableRowHeight is false.
+     *  Specifies that layout elements are to be allocated their
+     *  preferred height.
+     *
+     *  Setting this property to false specifies fixed height rows.
+     *
+     *  If false, the actual height of each layout element will be
+     *  the value value of rowHeight.
+     *
+     *  Setting this property to false causes the layout to ignore
+     *  layout elements' percentHeight.
      *
      *  @default true
      */
@@ -331,10 +345,14 @@
     [Bindable("indexInViewChanged")]

 	/**
-	 *  The index of the first row that's part of the layout and within
-	 *  the layout target's scrollRect, or -1 if nothing has been displayed yet.
+	 *  The index of the first layout element that's part of the
+	 *  layout and within the layout target's scrollRect, or -1
+	 *  if nothing has been displayed yet.
+	 *
+	 *  "Part of the layout" means that the element is non-null
+	 *  and that its includeInLayout property is true.
 	 *
-	 *  Note that the row may only be partially in view.
+	 *  Note that the layout element may only be partially in view.
 	 *
 	 *  @see lastIndexInView
 	 *  @see inView
@@ -361,6 +379,9 @@
      *  The index of the last row that's part of the layout and within
      *  the layout target's scrollRect, or -1 if nothing has been displayed yet.
      *
+     *  "Part of the layout" means that the element is non-null
+     *  and that its includeInLayout property is true.
+     *
      *  Note that the row may only be partially in view.
      *
      *  @see firstIndexInView
@@ -402,8 +423,6 @@
     //  Methods
     //
     //--------------------------------------------------------------------------
-
-    private var llv:LinearLayoutVector = new LinearLayoutVector();

 	/**
 	 *  An index is "in view" if the corresponding non-null layout element is
@@ -466,7 +485,10 @@
             eltHeight = elt.getLayoutBoundsHeight();
 	    }

-        // index is first (r0) or last (r1) visible row
+        // So, index is either the first or last row in the scrollRect
+        // and potentially partially visible.
+        //   y0,y1 - scrollRect top,bottom edges
+        //   iy0, iy1 - layout element top,bottom edges
         var y0:Number = g.verticalScrollPosition;
         var y1:Number = y0 + g.height;
         var iy0:Number = eltY;
@@ -574,8 +596,6 @@
             return;
         }

-        // TBD: special case for variableRowHeight false
-
         var i0:int;
         var i1:int;
         if (virtualLayout)
@@ -615,9 +635,10 @@
                 if ((element1Y < y1) && ((element1Y + element1Height) > y0))
                     i1 = index1;
             }
-        }
+        }
+
         if (virtualLayout)
-            updateDisplayListInView(i0);  // TBD returns i1
+            updateDisplayListVirtual(i0);

         setIndexInView(i0, i1);
     }
@@ -783,161 +804,169 @@
         var minDelta:Number = -scrollR.y;
         return Math.min(maxDelta, Math.max(minDelta, delta));
     }
-
-    private function variableRowHeightMeasure(layoutTarget:GroupBase):void
-    {
-        var minWidth:Number = 0;
-        var minHeight:Number = 0;
-        var preferredWidth:Number = 0;
-        var preferredHeight:Number = 0;
-        var visibleHeight:Number = 0;
-        var visibleRows:uint = 0;
-        var reqRows:int = requestedRowCount;
-
-        var count:uint = layoutTarget.numLayoutElements;
-        var totalCount:uint = count; // How many elements will be laid out
-        for (var i:int = 0; i < count; i++)
-        {
-            var li:ILayoutElement = layoutTarget.getLayoutElementAt(i);
-            if (!li || !li.includeInLayout)
-            {
-            	totalCount--;
+
+    /**
+     *  @private
+     *  Compute exact values for measuredWidth,Height and  measuredMinWidth,Height.
+     *
+     *  If requestedRowCount is not -1, measure as many layout elements,
+     *  padding with typicalLayoutElement if needed, starting with index 0.
+     *  Otherwise measure all of the layout elements.
+     */
+    private function measureReal(layoutTarget:GroupBase):void
+    {
+        var layoutEltCount:int = layoutTarget.numLayoutElements;
+        var reqEltCount:int = requestedRowCount; // -1 means "all elements"
+        var eltCount:uint = Math.max(reqEltCount, layoutEltCount);
+        var eltInLayoutCount:uint = 0; // elts that have been measured
+
+        var preferredHeight:Number = 0; // sum of the elt preferred heights
+        var preferredWidth:Number = 0;  // max of the elt preferred widths
+        var minHeight:Number = 0; // sum of the elt minimum heights
+        var minWidth:Number = 0;  // max of the elt minimum widths
+
+        var fixedRowHeight:Number = NaN;
+        if (!variableRowHeight)
+            fixedRowHeight = rowHeight;  // may query typicalLayoutElement, elt at index=0
+
+        for (var i:uint = 0; i < eltCount; i++)
+        {
+            if ((reqEltCount != -1) && (eltInLayoutCount >= reqEltCount))
+                break;
+
+            if (i < layoutEltCount) // target.numLayoutElements
+                var elt:ILayoutElement = layoutTarget.getLayoutElementAt(i);
+            else // target.numLayoutElements < requestedElementCount, so "pad"
+                elt = typicalLayoutElement;
+            if (!elt || !elt.includeInLayout)
                 continue;
-            }
-
-            preferredWidth = Math.max(preferredWidth, li.getPreferredBoundsWidth());
-            preferredHeight += li.getPreferredBoundsHeight();
-
-            var vrr:Boolean = (reqRows != -1) && (visibleRows < reqRows);
-
-            if (vrr || (reqRows == -1))
-            {
-                var mw:Number =  hasPercentWidth(li) ? li.getMinBoundsWidth() : li.getPreferredBoundsWidth();
-                var mh:Number = hasPercentHeight(li) ? li.getMinBoundsHeight() : li.getPreferredBoundsHeight();
-                minWidth = Math.max(mw, minWidth);
-                minHeight += mh;
-            }
-
-            if (vrr)
-            {
-                visibleHeight = preferredHeight;
-                visibleRows += 1;
-            }
-        }
-
-        if (totalCount > 1)
+
+            var height:Number = isNaN(fixedRowHeight) ? elt.getPreferredBoundsHeight() : fixedRowHeight;
+            var width:Number = elt.getPreferredBoundsWidth();
+            preferredHeight += height;
+            preferredWidth = Math.max(preferredWidth, width);
+            minHeight += (isNaN(elt.percentHeight)) ? height : elt.getMinBoundsHeight();
+            minWidth = Math.max(minWidth, (isNaN(elt.percentWidth)) ? width : elt.getMinBoundsWidth());
+
+            eltInLayoutCount += 1;
+        }
+
+        if (eltInLayoutCount > 1)
         {
-            preferredHeight += gap * (totalCount - 1);
-            var vgap:Number = (visibleRows > 1) ? (gap * (visibleRows - 1)) : 0;
-            visibleHeight += vgap;
+            var vgap:Number = gap * (eltInLayoutCount - 1);
+            preferredHeight += vgap;
             minHeight += vgap;
         }

+        layoutTarget.measuredHeight = preferredHeight;
         layoutTarget.measuredWidth = preferredWidth;
-        layoutTarget.measuredHeight = (reqRows == -1) ? preferredHeight : visibleHeight;
-
-        layoutTarget.measuredMinWidth = minWidth;
         layoutTarget.measuredMinHeight = minHeight;
-
-        layoutTarget.setContentSize(preferredWidth, preferredHeight);
-    }
-
-
-    private function fixedRowHeightMeasure(layoutTarget:GroupBase):void
-    {
-    	var rows:uint = layoutTarget.numLayoutElements;
-        var visibleRows:uint = (requestedRowCount == -1) ? rows : requestedRowCount;
-
-        var rh:Number = rowHeight; // can be expensive to compute
-        var contentHeight:Number = (rows * rh) + ((rows > 1) ? (gap * (rows - 1)) : 0);
-        var visibleHeight:Number = (visibleRows * rh) + ((visibleRows > 1) ? (gap * (visibleRows - 1)) : 0);
-
-        var columnWidth:Number = layoutTarget.explicitWidth;
-        var minColumnWidth:Number = columnWidth;
-        if (isNaN(columnWidth))
-        {
-			minColumnWidth = columnWidth = 0;
-	        var count:uint = layoutTarget.numLayoutElements;
-	        for (var i:int = 0; i < count; i++)
-	        {
-	            var layoutElement:ILayoutElement = layoutTarget.getLayoutElementAt(i);
-	            if (!layoutElement || !layoutElement.includeInLayout)
-	               continue;
-	            columnWidth = Math.max(columnWidth, layoutElement.getPreferredBoundsWidth());
-	            var elementMinWidth:Number = hasPercentWidth(layoutElement) ? layoutElement.getMinBoundsWidth() : layoutElement.getPreferredBoundsWidth();
-	            minColumnWidth = Math.max(minColumnWidth, elementMinWidth);
-	        }
-        }
-
-        layoutTarget.measuredWidth = columnWidth;
-        layoutTarget.measuredHeight = visibleHeight;
-
-        layoutTarget.measuredMinWidth = minColumnWidth;
-        layoutTarget.measuredMinHeight = visibleHeight;
-
-        layoutTarget.setContentSize(columnWidth, contentHeight);
-    }
-
-
+        layoutTarget.measuredMinWidth  = minWidth;
+    }
+
+    private var llv:LinearLayoutVector = new LinearLayoutVector();
+
+    /**
+     *  @private
+     *  Syncs the LinearLayoutVector llv with typicalLayoutElement and
+     *  the target's numLayoutElements.  Calling this function accounts
+     *  for the possibility that the typicalLayoutElement has changed, or
+     *  something that its preferred size depends on has changed.
+     */
+     private function updateLLV(layoutTarget:GroupBase):void
+     {
+        var typicalElt:ILayoutElement = typicalLayoutElement;
+        if (typicalElt)
+        {
+            var typicalWidth:Number = typicalElt.getPreferredBoundsWidth();
+            var typicalHeight:Number = typicalElt.getPreferredBoundsHeight();
+            llv.minorSize = Math.max(llv.minorSize, typicalWidth);
+            llv.defaultMajorSize = typicalHeight;
+        }
+        if (layoutTarget)
+            llv.length = layoutTarget.numLayoutElements;
+     }
+
     /**
      *  @private
      *  Compute potentially approximate values for measuredWidth,Height and
      *  measuredMinWidth,Height.
      *
-     *  If requestedRows is specified, then measure and cache the dimensions of
-     *  the first requestedRows.
-     *
-     *  Otherwise all dimensions are based exclusively on the values already
-     *  cached in llv.
-     *
-     *  Note that the llv's defaultMajorSize, minorSize, and minMinorSize are
-     *  based on typicalLayoutElement.
-     */
-    private function virtualRowHeightMeasure(layoutTarget:GroupBase):void
-    {
-        var rowCount:uint = layoutTarget.numLayoutElements;
-        llv.length = rowCount;
-        llv.defaultMajorSize = typicalLayoutElement.getPreferredBoundsHeight();
-        llv.minorSize = typicalLayoutElement.getPreferredBoundsWidth();
-
-        var measuredRowCount:int = (requestedRowCount != -1) ? requestedRowCount : rowCount;
+     *  This method does not get layout elements from the target except
+     *  as a side effect of calling typicalLayoutElement.
+     *
+     *  If variableRowHeight="false" then all dimensions are based on
+     *  typicalLayoutElement and the sizes already cached in llv.  The
+     *  llv's defaultMajorSize, minorSize, and minMinorSize
+     *  are based on typicalLayoutElement.
+     */
+    private function measureVirtual(layoutTarget:GroupBase):void
+    {
+        var eltCount:uint = layoutTarget.numLayoutElements;
+        var measuredEltCount:int = (requestedRowCount != -1) ? requestedRowCount : eltCount;
+
+        updateLLV(layoutTarget);
+        if (variableRowHeight)
+            layoutTarget.measuredHeight =  llv.end(measuredEltCount - 1);
+        else
+        {
+            var vgap:Number = (measuredEltCount > 1) ? (measuredEltCount - 1) * gap : 0;
+            layoutTarget.measuredHeight = (measuredEltCount * rowHeight) + vgap;
+        }
         layoutTarget.measuredWidth = llv.minorSize;
-        layoutTarget.measuredHeight =  llv.end(measuredRowCount - 1);
-
+
         layoutTarget.measuredMinWidth = layoutTarget.measuredWidth;
         layoutTarget.measuredMinHeight = layoutTarget.measuredHeight;
     }
-
-
+
+    /**
+     *  If requestedRowCount is specified then as many layout elements
+     *  or "rows" are measured, starting with element 0, otherwise all of the
+     *  layout elements are measured.
+     *
+     *  If requestedRowCount is specified and is greater than the
+     *  number of layout elements, then the typicalLayoutElement is used
+     *  in place of the missing layout elements.
+     *
+     *  If variableRowHeight="true", then the layoutTarget's measuredHeight
+     *  is the sum of preferred heights of the layout elements, plus the sum of the
+     *  gaps between elements, and its measuredWidth is the max of the elements'
+     *  preferred widths.
+     *
+     *  If variableRowHeight="false", then the layoutTarget's measuredHeight
+     *  is rowHeight multiplied by the number or layout elements, plus the
+     *  sum of the gaps between elements.
+     *
+     *  The layoutTarget's measuredMinHeight is the sum of the minHeights of
+     *  layout elements that have specified a value for the percentHeight
+     *  property, and the preferredHeight of the elements that have not,
+     *  plus the sum of the gaps between elements.
+     *
+     *  The difference reflects the fact that elements which specify
+     *  percentHeight are considered to be "flexible" and updateDisplayList
+     *  will give flexible components at least their minHeight.
+     *
+     *  Layout elements that aren't flexible always get their preferred height.
+     *
+     *  The layoutTarget's measuredMinWidth is the max of the minWidths for
+     *  elements that have specified percentWidth (that are "flexible") and the
+     *  preferredWidth of the elements that have not.
+     *
+     *  As before the difference is due to the fact that flexible items are only
+     *  guaranteed their minWidth.
+     *
+    */
     override public function measure():void
     {
-        super.measure();
-
-    	var layoutTarget:GroupBase = target;
+        var layoutTarget:GroupBase = target;
         if (!layoutTarget)
             return;
         if (virtualLayout)
-            virtualRowHeightMeasure(layoutTarget);
-        else if (variableRowHeight)
-            variableRowHeightMeasure(layoutTarget);
+            measureVirtual(layoutTarget);
         else
-            fixedRowHeightMeasure(layoutTarget);
-
-    }
-
-    //  - virtual layout only -
-    private function calculateElementX(elt:ILayoutElement, eltWidth:Number, contentWidth:Number):Number
-    {
-       switch(horizontalAlign)
-       {
-           case HorizontalAlign.CENTER:
-               return (contentWidth - eltWidth) * 0.5;
-           case HorizontalAlign.RIGHT:
-               return contentWidth - eltWidth;
-       }
-       return 0;
-    }
-
+            measureReal(layoutTarget);
+    }
+
     //  - virtual layout only -
     private function calculateElementWidth(elt:ILayoutElement, targetWidth:Number, contentWidth:Number):Number
     {
@@ -959,9 +988,22 @@
        return elt.getPreferredBoundsWidth();
     }

+    //  - virtual layout only -
+    private function calculateElementX(elt:ILayoutElement, eltWidth:Number, contentWidth:Number):Number
+    {
+       switch(horizontalAlign)
+       {
+           case HorizontalAlign.CENTER:
+               return (contentWidth - eltWidth) * 0.5;
+           case HorizontalAlign.RIGHT:
+               return contentWidth - eltWidth;
+       }
+       return 0;  // HorizontalAlign.LEFT
+    }
+
     /**
      *  @private
-     *  Update the layout of the virtualized elements that are within
+     *  Update the layout of the virtualized elements that overlap
      *  the scrollRect's vertical extent.
      *
      *  The height of each layout element will be its preferred height, and its
@@ -1001,22 +1043,21 @@
      *  for the initial layout and then, if it has changed, we loop through
      *  the layout items again and fix up the x/width values.
      */
-    private function updateDisplayListInView(startIndex:int = -1):void
+    private function updateDisplayListVirtual(startIndex:int = -1):void
     {
         var layoutTarget:GroupBase = target;
         var eltCount:int = layoutTarget.numLayoutElements;
         var targetWidth:Number = layoutTarget.width;
         var minVisibleY:Number = layoutTarget.verticalScrollPosition;
         var maxVisibleY:Number = minVisibleY + layoutTarget.height;
-
-        // TBD: don't assume typicalLayoutElement is set, use 1st row...
-        var typicalWidth:Number = typicalLayoutElement.getPreferredBoundsWidth();
-        var typicalHeight:Number = typicalLayoutElement.getPreferredBoundsHeight();
-        llv.length = layoutTarget.numLayoutElements;
-        llv.minorSize = Math.max(llv.minorSize, typicalWidth);
-        llv.defaultMajorSize = typicalHeight;
+
+        updateLLV(layoutTarget);
         if (startIndex < 0)
-            startIndex = llv.indexOf(minVisibleY);
+            startIndex = llv.indexOf(minVisibleY);
+
+        var fixedRowHeight:Number = NaN;
+        if (!variableRowHeight)
+            fixedRowHeight = rowHeight;  // may query typicalLayoutElement, elt at index=0

         layoutTarget.beginVirtualLayout(startIndex);
         var contentWidth:Number = llv.minorSize;
@@ -1028,33 +1069,34 @@
         for (; (y < maxVisibleY) && (index < eltCount); index++)
         {
             var elt:ILayoutElement = layoutTarget.getLayoutElementAt(index);
-            var h:Number = elt.getPreferredBoundsHeight();
+            var h:Number = (isNaN(fixedRowHeight)) ? elt.getPreferredBoundsHeight() : fixedRowHeight;
             var w:Number = calculateElementWidth(elt, targetWidth, contentWidth);
             var x:Number = calculateElementX(elt, w, contentWidth);
             elt.setLayoutBoundsPosition(x, y);
-            elt.setLayoutBoundsSize(w, elt.getPreferredBoundsHeight());
+            elt.setLayoutBoundsSize(w, h);
             llv.cacheDimensions(index, elt);
             y += h + gap;
         }
+        var endIndex:int = index - 1;

         // Second pass: if neccessary, fix up x and width values based
         // on the updated contentWidth
-        var endIndex:int = index - 1;
-        var finalContentWidth:Number = llv.minorSize;
-        if ((finalContentWidth != contentWidth) &&
-            (horizontalAlign != HorizontalAlign.LEFT) &&
-            (horizontalAlign != HorizontalAlign.JUSTIFY))
-        {
-            contentWidth = finalContentWidth;
-            for (index = startIndex; index < eltCount; index++)
+        if (llv.minorSize != contentWidth)
+        {
+            contentWidth = llv.minorSize;
+            if ((horizontalAlign != HorizontalAlign.LEFT) && (horizontalAlign != HorizontalAlign.JUSTIFY))
             {
-                elt = layoutTarget.getLayoutElementAt(index);
-                w = calculateElementWidth(elt, targetWidth, contentWidth);
-                x = calculateElementX(elt, w, contentWidth);
-                elt.setLayoutBoundsPosition(x, elt.getLayoutBoundsY());
-                elt.setLayoutBoundsSize(w, elt.getLayoutBoundsHeight());
+                for (index = startIndex; index < endIndex; index++)
+                {
+                    elt = layoutTarget.getLayoutElementAt(index);
+                    w = calculateElementWidth(elt, targetWidth, contentWidth);
+                    x = calculateElementX(elt, w, contentWidth);
+                    elt.setLayoutBoundsPosition(x, elt.getLayoutBoundsY());
+                    elt.setLayoutBoundsSize(w, elt.getLayoutBoundsHeight());
+                }
             }
         }
+
         setRowCount(index - startIndex);
         setIndexInView(startIndex, endIndex);
         layoutTarget.setContentSize(contentWidth, llv.end(llv.length - 1));
@@ -1062,27 +1104,19 @@
     }

-    override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
-    {
-        super.updateDisplayList(unscaledWidth, unscaledHeight);
-
-    	var layoutTarget:GroupBase = target;
-        if (!layoutTarget)
-            return;
-
-        if (virtualLayout)
-        {
-            updateDisplayListInView();
-            return;
-        }
-
+    private function updateDisplayListReal():void
+    {
+        var layoutTarget:GroupBase = target;
+        var targetWidth:Number = layoutTarget.width;
+        var targetHeight:Number = layoutTarget.height;
+
         var layoutElement:ILayoutElement;
         var count:uint = layoutTarget.numLayoutElements;

         // If horizontalAlign is left, we don't need to figure out the contentWidth
         // Otherwise the contentWidth is used to position the element and even size
         // the element if it's "contentJustify" or "justify".
-        var contentWidth:Number = unscaledWidth;
+        var contentWidth:Number = targetWidth;

         // TODO: in the center or right case, we end up calculating percentWidth
         // twice.  Once here for the contentWidth and once in distributeHeight
@@ -1097,7 +1131,7 @@

                 var layoutElementWidth:Number;
                 if (hasPercentWidth(layoutElement))
-                    layoutElementWidth = calculatePercentWidth(layoutElement, unscaledWidth);
+                    layoutElementWidth = calculatePercentWidth(layoutElement, targetWidth);
                 else
                     layoutElementWidth = layoutElement.getPreferredBoundsWidth();

@@ -1106,16 +1140,16 @@
         }

         // If we're justifying the elements, then all widths should be set to
-        // unscaledWidth.  If we're content justifying the elements, then
+        // targetWidth.  If we're content justifying the elements, then
         // all widths should be set to the contentWidth.
         // Otherwise restrictedWidth is ignored in distributedHeight.
         var restrictedWidth:Number;
         if (horizontalAlign == HorizontalAlign.JUSTIFY)
-            restrictedWidth = unscaledWidth;
+            restrictedWidth = targetWidth;
         else if (horizontalAlign == HorizontalAlign.CONTENT_JUSTIFY)
             restrictedWidth = contentWidth;

-        distributeHeight(unscaledWidth, unscaledHeight, restrictedWidth);
+        distributeHeight(targetWidth, targetHeight, restrictedWidth);

         // default to left (0)
         var hAlign:Number = 0;
@@ -1128,7 +1162,7 @@
         // fall within the layoutTarget's scrollRect
         var visibleRows:uint = 0;
         var minVisibleY:Number = layoutTarget.verticalScrollPosition;
-        var maxVisibleY:Number = minVisibleY + unscaledHeight;
+        var maxVisibleY:Number = minVisibleY + targetHeight;

         // Finally, position the layoutElements and find the first/last
         // visible indices, the content size, and the number of
@@ -1254,6 +1288,20 @@
         }
         return spaceToDistribute;
     }
+
+    override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        var layoutTarget:GroupBase = target;
+        if (!layoutTarget)
+            return;
+
+        if (virtualLayout)
+            updateDisplayListVirtual();
+        else
+            updateDisplayListReal();
+    }
 }
 }


accessibility added

accessibility added

--- main.as
+++ main.as
@@ -13,6 +13,16 @@
 Stage.scaleMode = "noScale";
 _global.showRedrawRegions (false);

+
+if (System.capabilities.hasAccessibility) {
+  eshop._accProps = new Object();
+  eshop._accProps.name = "Talking Wear Soft Skin";
+  entrar_mc._accProps.name ="Welcome - Enter";
+  titol_mc._accProps.name="Talking Wear";
+  // TODO next items
+
+  Accessibility.updateProperties();
+}

 function initTWApp ():Void
 {


Can no longer edit while running display test

--- src/LevelStates/LevelState.as
+++ src/LevelStates/LevelState.as
@@ -535,7 +535,7 @@
 		}

 		private function checkBuildControls():void {
-			if (time.moment)
+			if (time.moment || runningDisplayTest)
 				return; //no fucking around when shit is running!

 			if (selectionArea) {


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4228
Author:   dsubrama@adobe.com
Date:     2008-12-04T00:33:03.751073Z

Log Message:
-----------
Bugfixes for NumericStepper. We now have a new property, displayFormatFunction, much like a labelFunction to format the display of the value in the NS's textInput. We also now only select the text in the NS upon focus in.

SDK-16813, SDK-18300

Review: Jason
Checkintests: Pass
Doc: Yes

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.as

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -124,6 +124,43 @@

         invalidateProperties();
     }
+
+    //---------------------------------
+    // displayFormatFunction
+    //---------------------------------
+
+    private var _displayFormatFunction:Function;
+    private var displayFormatFunctionChanged:Boolean;
+
+     /**
+     *  Callback function that formats the value displayed
+     *  in the textInput field.
+     *  The function takes a single Number as an argument
+     *  and returns a formatted String.
+     *
+     *
The function has the following signature:

+     *

+     *  funcName(value:Number):String
+     *

+
+     *  @default undefined
+     */
+    public function get displayFormatFunction():Function
+    {
+        return _displayFormatFunction;
+    }
+
+    /**
+     *  @private
+     */
+    public function set displayFormatFunction(value:Function):void
+    {
+        _displayFormatFunction = value;
+
+        displayFormatFunctionChanged = true;
+
+        invalidateProperties();
+    }

     //--------------------------------------------------------------------------
     //
@@ -209,11 +246,18 @@
     {
         super.commitProperties();

-		if (maxChanged || stepSizeChanged)
+		if (maxChanged || stepSizeChanged || displayFormatFunctionChanged)
     	{
     		textInput.widthInChars = calculateWidestValue();
     		maxChanged = false;
     		stepSizeChanged = false;
+
+    		if (displayFormatFunctionChanged)
+    		{
+                applyDisplayFormatFunction();
+
+                displayFormatFunctionChanged = false;
+    		}
     	}

         if (maxCharsChanged)
@@ -221,7 +265,7 @@
             textInput.maxChars = _maxChars;
             maxCharsChanged = false;
         }
-    }
+    }

     /**
      *  @private
@@ -229,7 +273,8 @@
     override protected function setValue(newValue:Number):void
     {
         super.setValue(newValue);
-        textInput.text = value.toString();
+
+        applyDisplayFormatFunction();
     }

     /**
@@ -287,7 +332,10 @@
     override public function setFocus():void
     {
         if (stage)
+        {
             stage.focus = textInput.textView;
+            textInput.textView.setSelection();
+        }
     }

     /**
@@ -339,9 +387,6 @@
                 dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
         }

-        // Select all the text.
-        textInput.setSelection();
-
         if (dispatchChange)
         {
             if (value != prevValue)
@@ -368,7 +413,23 @@
                               minimum :
                               maximum;
     	widestNumber += stepSize;
-    	return widestNumber.toString().length;
+
+    	if (displayFormatFunction != null)
+    	    return displayFormatFunction(widestNumber).length;
+    	else
+    	   return widestNumber.toString().length;
+    }
+
+    /**
+     *  @private
+     *  Helper method that applies the displayFormatFunction
+     */
+    private function applyDisplayFormatFunction():void
+    {
+        if (displayFormatFunction != null)
+            textInput.text = displayFormatFunction(value);
+        else
+            textInput.text = value.toString();
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 20845
Author:   mhorn@adobe.com
Date:     2011-03-14T15:29:23.391952Z

Log Message:
-----------
merge 20756,20790,20712,20805

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

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

--- frameworks/projects/spark/src/spark/globalization/StringTools.as
+++ frameworks/projects/spark/src/spark/globalization/StringTools.as
@@ -347,7 +347,7 @@
     }

     /**
-     *  @copy spark.globalization.supportClasses.CollatorBase#getAvailableLocaleIDNames
+     *  @copy spark.globalization.supportClasses.CollatorBase#getAvailableLocaleIDNames()
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1


Apply formatting.

Apply formatting.

--- src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as
+++ src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as
@@ -320,14 +320,14 @@
                 var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler);

                 var dynamicLayer:ArcGISDynamicMapServiceLayer = layer as ArcGISDynamicMapServiceLayer;
-                if(dynamicLayer)
+                if (dynamicLayer)
                 {
                     dynamicLayer.getDetails(layerInfo.layerId, responder);
                     continue;
                 }

                 var tiledLayer:ArcGISTiledMapServiceLayer = layer as ArcGISTiledMapServiceLayer;
-                if(tiledLayer)
+                if (tiledLayer)
                 {
                     tiledLayer.getDetails(layerInfo.layerId, responder);
                 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 9779
Author:   chaase@adobe.com
Date:     2009-08-29T01:17:24.968838Z

Log Message:
-----------
Fixed bug with transform effects acting on optimized FXG objects. We did not have some of the required functionality on SpriteVisualElement that would allow objects of that type (optimized FXG objects) to be animated by the flex 4 transform effects. We have added that functionality and pushed that common property (postLayoutTransformOffsets) and function (transformAround()) into interfaces implemented by  the objects that can be so transformed.
Also fixed some unrelated bugs lurking in the transformAround() and AnimateTransform code.

QE notes: None
Doc notes: None
Bugs: sdk-22576
Reviewer: Ely
Tests run: checkintests, Mustella (tests/spark/effects/AnimateTransform, Move, Rotate, Rotate3D)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/framework/src/mx/core/IVisualElement.as
+++ frameworks/projects/framework/src/mx/core/IVisualElement.as
@@ -233,5 +233,26 @@
      *  @private
      */
     function set designLayer(value:DesignLayer):void;
+
+    /**
+     *  Defines a set of adjustments that can be applied to the object's
+     *  transform in a way that is invisible to its parent's layout.
+     *  For example, if you want a layout to adjust for an object
+     *  that will be rotated 90 degrees, you set the object's
+     *  rotation property. If you want the layout to not
+     *  adjust for the object being rotated,
+     *  you set its postLayoutTransformOffsets.rotationZ property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function get postLayoutTransformOffsets():TransformOffsets;
+
+    /**
+     * @private
+     */
+    function set postLayoutTransformOffsets(value:TransformOffsets):void;
 }
 }


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

--- frameworks/projects/framework/src/mx/effects/TweenEffect.as
+++ frameworks/projects/framework/src/mx/effects/TweenEffect.as
@@ -0,0 +1,192 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects
+{
+
+import mx.effects.effectClasses.TweenEffectInstance;
+import mx.events.TweenEvent;
+import flash.events.EventDispatcher;
+
+/**
+ *  Dispatched when the tween effect starts, which corresponds to the
+ *  first call to the onTweenUpdate() method.
+ *  Flex also dispatches the first tweenUpdate event
+ *  for the effect at the same time.
+ *
+ *
The Effect.effectStart event is dispatched
+ *  before the tweenStart event.

+ *
+ *  @eventType mx.events.TweenEvent.TWEEN_START
+ */
+[Event(name="tweenStart", type="mx.events.TweenEvent")]
+
+/**
+ *  Dispatched every time the tween effect updates the target.
+ *  This event corresponds to a call to
+ *  the TweenEffectInstance.onTweenUpdate() method.
+ *
+ *  @eventType mx.events.TweenEvent.TWEEN_UPDATE
+ */
+[Event(name="tweenUpdate", type="mx.events.TweenEvent")]
+
+/**
+ *  Dispatched when the tween effect ends.
+ *  This event corresponds to a call to
+ *  the TweenEffectInstance.onTweenEnd() method.
+ *
+ *
When a tween effect plays a single time, this event occurs
+ *  at the same time as an effectEnd event.
+ *  If you configure the tween effect to repeat,
+ *  it occurs at the end of every repetition of the effect,
+ *  and the endEffect event occurs
+ *  after the effect plays for the final time.

+ *
+ *  @eventType mx.events.TweenEvent.TWEEN_END
+ */
+[Event(name="tweenEnd", type="mx.events.TweenEvent")]
+
+/**
+ *  The TweenEffect class is the superclass for all effects
+ *  that are based on the Tween object.
+ *  This class encapsulates methods and properties that are common
+ *  among all Tween-based effects, to avoid duplication of code elsewhere.
+ *
+ *
You create a subclass of the TweenEffect class to define
+ *  an effect that plays an animation over a period of time.
+ *  For example, the Resize effect modifies the size of its target
+ *  over a specified duration.

+ *
+ *  @mxml
+ *
+ *
The <mx:TweenEffect> tag
+ *  inherits all of the tag attributes of its superclass,
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:TagName
+ *    Properties
+ *    easingFunction="easing function name; no default"
+ *
+ *    Events
+ *    tweenEnd="No default"
+ *  />
+ *

+ *
+ *  @see mx.effects.Tween
+ *  @see mx.effects.effectClasses.TweenEffectInstance
+ *
+ *  @includeExample examples/SimpleTweenEffectExample.mxml
+ */
+public class TweenEffect extends Effect
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param target The Object to animate with this effect.
+     */
+    public function TweenEffect(target:Object = null)
+    {
+        super(target);
+
+        instanceClass = TweenEffectInstance;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  easingFunction
+    //----------------------------------
+
+    /**
+     *  The easing function for the animation.
+     *  The easing function is used to interpolate between the initial value
+     *  and the final value.
+     *  A trivial easing function would simply do linear interpolation,
+     *  but more sophisticated easing functions create the illusion of
+     *  acceleration and deceleration, which makes the animation seem
+     *  more natural.
+     *
+     *
If no easing function is specified, an easing function based
+     *  on the Math.sin() method is used.

+     *
+     *
The easing function follows the function signature popularized
+     *  by Robert Penner.
+     *  The function accepts four arguments.
+     *  The first argument is the "current time",
+     *  where the animation start time is 0.
+     *  The second argument is the initial value
+     *  at the beginning of the animation (a Number).
+     *  The third argument is the ending value minus the initial value.
+     *  The fourth argument is the duration of the animation.
+     *  The return value is the interpolated value for the current time.
+     *  This is usually a value between the initial value
+     *  and the ending value.

+     *
+     *
The value of this property must be a function object.

+     *
+     *
Flex includes a set of easing functions
+     *  in the mx.effects.easing package.

+     *
+     */
+    public var easingFunction:Function = null;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function initInstance(instance:IEffectInstance):void
+    {
+        super.initInstance(instance);
+
+        TweenEffectInstance(instance).easingFunction = easingFunction;
+
+        EventDispatcher(instance).addEventListener(TweenEvent.TWEEN_START, tweenEventHandler);
+        EventDispatcher(instance).addEventListener(TweenEvent.TWEEN_UPDATE, tweenEventHandler);
+        EventDispatcher(instance).addEventListener(TweenEvent.TWEEN_END, tweenEventHandler);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Called when the TweenEffect dispatches a TweenEvent.
+     *  If you override this method, ensure that you call the super method.
+     *
+     *  @param event An event object of type TweenEvent.
+     */
+    protected function tweenEventHandler(event:TweenEvent):void
+    {
+        dispatchEvent(event);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/skins/halo/ScrollArrowSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/ScrollArrowSkin.as
@@ -22,6 +22,11 @@

 /**
  *  The skin for all the states of the up or down button in a ScrollBar.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ScrollArrowSkin extends Border
 {
@@ -82,6 +87,11 @@

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4515
Author:   hmuller@adobe.com
Date:     2009-01-13T22:58:06.587808Z

Log Message:
-----------
Restored internal DataGroup.getItemIndexForRenderer() method.

QE Notes:
Doc Notes: None
Bugs:
Reviewer: None

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -612,6 +612,17 @@

     /**
      *  @private
+     *  Provisional access to the item renderers for FxList and FxButtonBar.
+     */
+    internal function getItemIndexForRenderer(renderer:IVisualElement):int
+    {
+        var child:DisplayObject = DisplayObject(renderer);
+        return (child.parent == this) ? super.getChildIndex(child) : -1;
+    }
+
+
+    /**
+     *  @private
      */
     override public function invalidateLayering():void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5573
Author:   jimurphy@adobe.com
Date:     2009-03-26T15:11:59.159776Z

Log Message:
-----------
-more updated package and class names that were missed in the first pass
-remove the mx folder

qa: probably
doc: this updated more asdoc comments so you may want to make sure that this pass made the correct updates
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/SetActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/IEaser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/PathSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxToggleButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SetAction.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -25,27 +25,27 @@
  *  Dispatched when a renderer is added to the content holder.
  * event.renderer is the renderer that was added.
  *
- *  @eventType mx.events.RendererExistenceEvent.RENDERER_ADD
+ *  @eventType spark.events.RendererExistenceEvent.RENDERER_ADD
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="rendererAdd", type="mx.events.RendererExistenceEvent")]
+[Event(name="rendererAdd", type="spark.events.RendererExistenceEvent")]

 /**
  *  Dispatched when a renderer is removed from the content holder.
  * event.renderer is the renderer that was removed.
  *
- *  @eventType mx.events.RendererExistenceEvent.ITEM_REMOVE
+ *  @eventType spark.events.RendererExistenceEvent.ITEM_REMOVE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="rendererRemove", type="mx.events.RendererExistenceEvent")]
+[Event(name="rendererRemove", type="spark.events.RendererExistenceEvent")]

 //--------------------------------------
 //  Excluded APIs
@@ -73,7 +73,7 @@
  *  The DataGroup class is the base container class for data elements.
  *  The DataGroup class converts data elements to visual elements for display.
  *
- *  @see mx.components.Group
+ *  @see spark.components.Group
  *  @includeExample examples/DataGroupExample.mxml
  *
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 7529
Author:   hmuller@adobe.com
Date:     2009-06-03T18:54:54.953122Z

Log Message:
-----------

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4/.project</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -677,7 +677,10 @@

         if(_layeringFlags & LAYERING_DIRTY)
         {
-            manageDisplayObjectLayers();
+            if (layout && layout.useVirtualLayout)
+                invalidateDisplayList();
+            else
+                manageDisplayObjectLayers();
         }

         if (typicalItemChanged)
@@ -981,6 +984,8 @@
         if (virtualLayoutUnderway)
         {
             finishVirtualLayout();
+            if(_layeringFlags & LAYERING_DIRTY)
+                manageDisplayObjectLayers();
             virtualLayoutUnderway = false;
         }
     }
@@ -1262,10 +1267,9 @@
                 insertIndex = index;

             // Quietly ignore invalid indices since they're typically caused
-            // by duplicate data items and Halo quietly ignore those
+            // by duplicate data items and Halo quietly ignored those
             if ((insertIndex >= 0) && (insertIndex < super.numChildren))
                 super.setChildIndex(child, insertIndex);
-
             return child;
         }
         else if (child.parent && child.parent is DataGroup)


Transferred from the Adobe Open Source Subversion Repository

Revision: 19238
Author:   klin@adobe.com
Date:     2010-12-09T21:51:35.152040Z

Log Message:
-----------
Add padding properties to TileLayout and TileGroup.

QE notes: Need to add tests for padding
Doc notes: No
Bugs: SDK-23159
Reviewer: Evtim
Tests run: cyclone server, checkintests
Is noteworthy for integration: Yes

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/TileGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/TileGroup.as
+++ frameworks/projects/spark/src/spark/components/TileGroup.as
@@ -48,6 +48,10 @@
  *    horizontalAlign="justify"
  *    horizontalGap="6"
  *    orientation="rows"
+ *    paddingBottom="0"
+ *    paddingLeft="0"
+ *    paddingRight="0"
+ *    paddingTop="0"
  *    requestedColumnCount"-1"
  *    requestedRowCount="-1"
  *    rowAlign="top"
@@ -271,6 +275,122 @@
     }

     //----------------------------------
+    //  paddingLeft
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  @copy spark.layouts.TileLayout#paddingLeft
+     *
+     *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get paddingLeft():Number
+    {
+        return tileLayout.paddingLeft;
+    }
+
+    /**
+     *  @private
+     */
+    public function set paddingLeft(value:Number):void
+    {
+        tileLayout.paddingLeft = value;
+    }
+
+    //----------------------------------
+    //  paddingRight
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  @copy spark.layouts.TileLayout#paddingRight
+     *
+     *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get paddingRight():Number
+    {
+        return tileLayout.paddingRight;
+    }
+
+    /**
+     *  @private
+     */
+    public function set paddingRight(value:Number):void
+    {
+        tileLayout.paddingRight = value;
+    }
+
+    //----------------------------------
+    //  paddingTop
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  @copy spark.layouts.TileLayout#paddingTop
+     *
+     *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get paddingTop():Number
+    {
+        return tileLayout.paddingTop;
+    }
+
+    /**
+     *  @private
+     */
+    public function set paddingTop(value:Number):void
+    {
+        tileLayout.paddingTop = value;
+    }
+
+    //----------------------------------
+    //  paddingBottom
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  @copy spark.layouts.TileLayout#paddingBottom
+     *
+     *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get paddingBottom():Number
+    {
+        return tileLayout.paddingBottom;
+    }
+
+    /**
+     *  @private
+     */
+    public function set paddingBottom(value:Number):void
+    {
+        tileLayout.paddingBottom = value;
+    }
+
+    //----------------------------------
     //  requestedColumnCount
     //----------------------------------


replace mx Application import with spark one

--- as3/smartform/src/com/rpath/raf/util/UIHelper.as
+++ as3/smartform/src/com/rpath/raf/util/UIHelper.as
@@ -24,7 +24,7 @@
     import flash.utils.Dictionary;

     import mx.collections.ArrayCollection;
-    import mx.core.Application;
+    import spark.components.Application;
     import mx.core.FlexGlobals;
     import mx.core.IFlexDisplayObject;
     import mx.formatters.NumberBaseRoundType;


Fix subtle side-effect-related bug.

Fix subtle side-effect-related bug.

--- src/stdio/StreamBuffer.as
+++ src/stdio/StreamBuffer.as
@@ -22,18 +22,10 @@
     private const requests: Array = []

     private function satisfy_read_requests(): void {
-      while (has_requests && next_request.ready) {
-        next_request.satisfy()
-        requests.shift()
+      while (requests.length > 0 && requests[0].ready) {
+        // Note: `shift()` must run before `satisfy()`.
+        requests.shift().satisfy()
       }
-    }
-
-    private function get has_requests(): Boolean {
-      return requests.length > 0
-    }
-
-    private function get next_request(): ReadRequest {
-      return requests[0]
     }

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


fixed bug where keys would not be initialized when hierarchy was refreshed.

--- WeaveData/src/weave/data/QKeyManager.as
+++ WeaveData/src/weave/data/QKeyManager.as
@@ -249,13 +249,14 @@
 		this.keyType = keyType;
 		this.keyStrings = keyStrings;
 		this.outputKeys = outputKeys;
+		this.i = 0;

 		outputKeys.length = keyStrings.length;
 		// high priority because all visualizations depend on key sets
 		WeaveAPI.StageUtils.startTask(relevantContext, iterate, WeaveAPI.TASK_PRIORITY_HIGH, asyncCallback, lang("Initializing {0} record identifiers", keyStrings.length));
 	}

-	private var i:int = 0;
+	private var i:int;
 	private var manager:QKeyManager;
 	private var relevantContext:ILinkableObject;
 	private var keyType:String;


DisablingButton forces a visual update after a state change is made

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@386 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flash/DisablingButton.as
+++ src/as/com/threerings/flash/DisablingButton.as
@@ -102,6 +102,10 @@

         // mouseEnabled is always false when the button is disabled
         super.mouseEnabled = super.enabled && _mouseEnabled;
+
+        // force a visual update.
+        super.enabled = !super.enabled;
+        super.enabled = !super.enabled;
     }

     protected var _disabledState :DisplayObject;


cleanup

cleanup

--- src/battlecode/client/viewer/render/DrawHUD.as
+++ src/battlecode/client/viewer/render/DrawHUD.as
@@ -1,5 +1,4 @@
 package battlecode.client.viewer.render {
-
     import battlecode.client.viewer.MatchController;
     import battlecode.common.RobotType;
     import battlecode.common.Team;
@@ -12,9 +11,7 @@
     import mx.containers.HBox;
     import mx.containers.VBox;
     import mx.controls.Label;
-import mx.controls.Spacer;
-import mx.events.ResizeEvent;
-    import mx.formatters.NumberFormatter;
+    import mx.events.ResizeEvent;

     public class DrawHUD extends VBox {
         private var controller:MatchController;
@@ -25,8 +22,6 @@
         private var winMarkerCanvas:Canvas;
         private var archonBoxes:Object; // id -> DrawHUDArchon
         private var unitBoxes:Array;
-
-        private var lastRound:uint = 0;
         private var maxArchons:uint = 0;

         public function DrawHUD(controller:MatchController, team:String) {
@@ -87,8 +82,6 @@
         }

         private function onRoundChange(e:MatchEvent):void {
-            lastRound = e.currentRound;
-
             var archons:Object = controller.currentState.getArchons(team);
             var archonCount:uint = 0;
             for each (var archon:DrawRobot in archons) {


Bugfix: horizontalScrollPosition returns 0 if no _horizontalScrollBar returns

--- src/org/openPyro/core/UIContainer.as
+++ src/org/openPyro/core/UIContainer.as
@@ -612,7 +612,10 @@
 		}

 		public function get horizontalScrollPosition():Number{
-			return _horizontalScrollBar.value;
+			if(_horizontalScrollBar){
+				return _horizontalScrollBar.value;
+			}
+			return 0;
 		}

 		private var _horizontalScrollIncrement:Number = 25;


Rename default title argument name in ResultAttributes#toResultAttributes.

--- src/widgets/supportClasses/ResultAttributes.as
+++ src/widgets/supportClasses/ResultAttributes.as
@@ -27,7 +27,7 @@
                                               featureSet:FeatureSet = null,
                                               layer:FeatureLayer = null,
                                               layerDetails:LayerDetails = null,
-                                              widgetTitle:String = null,
+                                              fallbackTitle:String = null,
                                               titleField:String = null,
                                               linkField:String = null,
                                               linkAlias:String = null):ResultAttributes
@@ -71,8 +71,9 @@
                 }
             }
         }
+
         resultAttributes.attributes = graphic.attributes;
-        resultAttributes.title = title ? title : widgetTitle;
+        resultAttributes.title = title ? title : fallbackTitle;
         resultAttributes.content = content;
         resultAttributes.link = link ? link : null;
         resultAttributes.linkAlias = linkAlias;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4744
Author:   aharui@adobe.com
Date:     2009-01-29T22:35:12.172607Z

Log Message:
-----------
sdk-16334  WindowedSystemManager can't assume its DragManager is a NativeDragManager

QE Notes: None
Doc Notes: None
Bugs: sdk-16334
Reviewer: Jason
tests: checkintests

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as

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

--- frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as
+++ frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as
@@ -4176,7 +4176,7 @@
 	 */
 	mx_internal function cleanup(e:Event):void
 	{
-		if (NativeDragManagerImpl(Singleton.getClass("mx.managers::IDragManager").getInstance())
+		if (Singleton.getClass("mx.managers::IDragManager").getInstance()
 					 is NativeDragManagerImpl)
 			NativeDragManagerImpl(Singleton.getClass("mx.managers::IDragManager").getInstance()).unregisterSystemManager(this);
 		SystemManagerGlobals.topLevelSystemManagers.splice(SystemManagerGlobals.topLevelSystemManagers.indexOf(this), 1);


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

--- frameworks/projects/framework/src/mx/controls/listClasses/BaseListData.as
+++ frameworks/projects/framework/src/mx/controls/listClasses/BaseListData.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.controls.listClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18997
Author:   smgilson@adobe.com
Date:     2010-12-03T12:34:01.997042Z

Log Message:
-----------
ASDoc updates on ViewMenu.as

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewMenuItem.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewMenuItem.as
@@ -45,6 +45,7 @@
  *  @see spark.components.ViewMenu
  *  @see spark.layouts.ViewMenuLayout
  *  @see spark.components.supportClasses.ViewNavigatorApplicationBase
+ *  @see spark.skins.mobile.ViewMenuItemSkin
  *
  *  @langversion 3.0
  *  @playerversion AIR 2.5


FLEX-33590: Added minor convenience feature to preventSelection of buttons on a buttonbar/tabbar.

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -625,7 +625,57 @@
         labelFieldOrFunctionChanged = true;
         invalidateProperties();
     }
-
+
+
+    //----------------------------------
+    //  preventSelection
+    //----------------------------------
+
+    /**
+    *  @private
+    */
+    private var _preventSelection:Boolean = false;
+
+
+    /**
+    *  If true items will be prevented from being selected.  The selectedIndex value should always be -1.
+    *  When this is set to true, it will set the requireSelection to false.
+    *  Click events will continue to be called.
+    *
+    *  @default false
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 11.1
+    *  @playerversion AIR 3.4
+    *  @productversion Flex 4.10
+    */
+    public function get preventSelection():Boolean
+    {
+        return _preventSelection;
+    }
+
+    public function set preventSelection(newValue:Boolean):void
+    {
+        if (newValue == _preventSelection)
+        {
+            return;
+        }
+
+
+        if (newValue == true)
+        {
+            //Make sure to disable requireSelection since these two properties are polar opposites.
+            requireSelection = false;
+
+            //Remove any previous selection and allow it to update before enabling the prevent selection.
+            setSelectedIndex(NO_SELECTION, false);
+            validateNow();
+        }
+
+        _preventSelection = newValue;
+    }
+
+
     //----------------------------------
     //  requireSelection
     //----------------------------------
@@ -677,6 +727,9 @@
         // from false to true
         if (value == true)
         {
+            //Make sure to disable preventSelection since these two properties are polar opposites.
+            preventSelection = false;
+
             requireSelectionChanged = true;
             invalidateProperties();
         }
@@ -1570,7 +1623,26 @@
         var oldSelectedIndex:int = _selectedIndex;
         var oldCaretIndex:int = _caretIndex;
         var e:IndexChangeEvent;
-
+
+
+        //Prevents an in item from being selected.  Stops the change before it sends out changing events.
+        if (_preventSelection == true)
+        {
+            if (_selectedIndex != NO_SELECTION)
+            {
+                itemSelected(NO_SELECTION, false);
+                _selectedIndex = NO_SELECTION;
+            }
+
+            //Cancel the selection change and return false.
+            itemSelected(_proposedSelectedIndex, false);
+            _proposedSelectedIndex = NO_PROPOSED_SELECTION;
+            dispatchChangeAfterSelection = false;
+
+            return false;
+        }
+
+
         if (!allowCustomSelectedItem || _proposedSelectedIndex != CUSTOM_SELECTED_ITEM)
         {
             if (_proposedSelectedIndex < NO_SELECTION)


Transferred from the Adobe Open Source Subversion Repository

Revision: 21947
Author:   ksimm@adobe.com
Date:     2011-08-12T01:28:00.148877Z

Log Message:
-----------
Refactor findLongestDateItem and findLongestYaerItem functions.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as
+++ frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as
@@ -142,5 +142,23 @@

         return -1;
     }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    override public function toArray():Array
+    {
+        var result:Array = [];
+        var numItems:int = length;
+
+        for (var i:int = 0; i < numItems; i++)
+            result.push(getItemAt(i));
+
+        return result;
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6792
Author:   jimurphy@adobe.com
Date:     2009-05-11T18:24:09.346026Z

Log Message:
-----------
Merged revisions 6729,6731,6746,6755,6757,6765,6767-6768,6770-6772,6775,6784-6786,6790 from http://p01weblab02.corp.adobe.com/svn/opensource/flex/sdk/branches/beta1

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashContainerPlaceholder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexFXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/TypeHelper.java</path>
<path kind="dir" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types" copyfrom-rev="6790" action="A">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/swf/FXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/RadioButtonSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types/FXGMatrix.java" copyfrom-rev="6790" action="R">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types/FXGMatrix.java</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
@@ -153,6 +153,9 @@
         var vsb:ScrollBar = scroller.verticalScrollBar;
         var minViewportInset:Number = scroller.minViewportInset;

+        var oldShowHSB:Boolean = hsb && hsb.visible;
+        var oldShowVSB:Boolean = vsb && vsb.visible;
+
         // If the viewport's size has been explicitly set (not typical) then use it
         var viewportUIC:IUIComponent = viewport as IUIComponent;
         var explicitViewportW:Number = viewportUIC ? viewportUIC.explicitWidth : NaN;
@@ -232,12 +235,23 @@
             viewportH -= minViewportInset;
         if (!showVSB)
             viewportW -= minViewportInset;
+
+        // Unless the viewport's size is explicitly set and larger than the
+        // available space, the scrollbar's size will match the viewport's.
+        var hsbW:Number = viewportW;
+        var vsbH:Number = viewportH;

         // Special case: viewport's size is explicitly set
         if (!isNaN(explicitViewportW))
+        {
             viewportW = explicitViewportW;
+            hsbW = Math.min(hsbW, viewportW);
+        }
         if (!isNaN(explicitViewportH))
+        {
             viewportH = explicitViewportH;
+            vsbH = Math.min(vsbH, viewportH);
+        }

         // layout the viewport
         if (viewport)
@@ -251,15 +265,22 @@
         if (hsb) hsb.visible = showHSB;
         if (showHSB)
         {
-            hsb.setLayoutBoundsSize(Math.max(hsb.getMinBoundsWidth(), viewportW), hsbH);
+            hsb.setLayoutBoundsSize(Math.max(hsb.getMinBoundsWidth(), hsbW), hsbH);
             hsb.setLayoutBoundsPosition(minViewportInset, h - Math.max(minViewportInset, hsbH));
         }
         if (vsb) vsb.visible = showVSB;
         if (showVSB)
         {
-            vsb.setLayoutBoundsSize(vsbW, Math.max(vsb.getMinBoundsHeight(), viewportH));
+            vsb.setLayoutBoundsSize(vsbW, Math.max(vsb.getMinBoundsHeight(), vsbH));
             vsb.setLayoutBoundsPosition(w - Math.max(minViewportInset, vsbW), minViewportInset);
         }
+
+        // If the scroller's size isn't explicit and we've added a scrollbar, then
+        // the measured size is likely to have been wrong.
+        if ((isNaN(target.explicitWidth) || isNaN(target.explicitHeight)) &&
+            ((showVSB != oldShowVSB) || (showHSB != oldShowHSB)))
+            target.invalidateSize();
+
         target.setContentSize(w, h);
     }