M Add accessors to dataProviders

M Add accessors to dataProviders

--- src/aerys/minko/type/data/DataBindings.as
+++ src/aerys/minko/type/data/DataBindings.as
@@ -11,16 +11,22 @@

 		private static const NO_KEY	: String		= "__no_key__";

-		private var _bindings			: Dictionary		= new Dictionary(true);
-		private var _values				: Object			= new Object();
-		private var _properties			: Vector.<String>	= new <String>[];
-		private var _propertyToProvider	: Object			= {};
+		private var _bindings			: Dictionary				= new Dictionary(true);
+		private var _values				: Object					= new Object();
+		private var _properties			: Vector.<String>			= new <String>[];
+		private var _propertyToProvider	: Object					= {};
+		private var _providers			: Vector.<IDataProvider> 	= new <IDataProvider>[];

 		private var _propertyChanged	: Object			= {};

 		public function get numProperties() : uint
 		{
 			return _properties.length;
+		}
+
+		public function get numProviders() : uint
+		{
+			return _providers.length;
 		}

 		public function propertyExists(propertyName : String) : Boolean
@@ -48,6 +54,8 @@
 				addProperty(propertyName, dataProvider, key);
 			}

+			_providers.push(dataProvider);
+
 			return this;
 		}

@@ -55,6 +63,11 @@
 		{
 			if (!dataProvider)
 				throw new Error("The argument 'dataProvider' cannot be null.");
+
+			var dataProviderIndex : int = _providers.indexOf(dataProvider);
+
+			if (dataProviderIndex == -1)
+				throw new ArgumentError("No such dataProvider was added.");

 			var bindingTable	: Object	= _bindings[dataProvider];

@@ -68,6 +81,8 @@

 			dataProvider.changed.remove(dataProviderChangedHandler);

+			_providers.splice(dataProviderIndex, 1);
+
 			return this;
 		}

@@ -79,6 +94,14 @@
 				throw new Error('The property \'' + propertyName + '\' has no data provider.');

 			return provider;
+		}
+
+		public function getDataProviderAt(index : uint) : IDataProvider
+		{
+			if (index >= _providers.length)
+				throw new ArgumentError('Index out of bounds');
+
+			return _providers[index];
 		}

 		public function getProperty(propertyName : String) : Object


Add name getter/setter to providers

Add name getter/setter to providers

--- src/aerys/minko/type/data/DataProvider.as
+++ src/aerys/minko/type/data/DataProvider.as
@@ -39,6 +39,16 @@
 			return _propertyChanged;
 		}

+		public function get name() : String
+		{
+			return _name;
+		}
+
+		public function set name(v : String) : void
+		{
+			_name = v;
+		}
+
 		public function DataProvider(properties	: Object	= null,
 									 name		: String	= null,
 									 usage		: uint		= 1)


- change: Removed debugging trace

- change: Removed debugging trace

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@497 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/css/CSS.as
+++ src/reprise/css/CSS.as
@@ -492,7 +492,6 @@
 				var cssClassDefArr:Array = classesArr[i].split("{");
 				if (cssClassDefArr.length == 2)
 				{
-					log('cssClassDefArr[1]: ' + (cssClassDefArr[1]));
 					//parse all properties of this class into a declaration
 					var declaration : CSSDeclaration =
 						CSSParsingHelper.parseDeclarationString(cssClassDefArr[1], url);


rollback https://github.com/mangui/flashls/commit/1e4c40a76dbe07b8d910d494dc2c8f75fc92b1f3 related to https://github.com/mangui/flashls/issues/125

--- src/org/mangui/hls/stream/HLSNetStream.as
+++ src/org/mangui/hls/stream/HLSNetStream.as
@@ -149,24 +149,26 @@
             if (!_seek_in_progress) {
                 // check low buffer condition
                 if (buffer < HLSSettings.lowBufferLength) {
-                    if (buffer <= 0.01 && _reached_vod_end) {
-                        /* reach end of playlist + empty buffer :
-                        playback complete : stop timer, report event and switch to IDLE mode. */
-                        _timer.stop();
-                        CONFIG::LOGGING {
-                            Log.debug("reached end of VOD playlist, notify playback complete");
-                        }
-                        _hls.dispatchEvent(new HLSEvent(HLSEvent.PLAYBACK_COMPLETE));
-                        _setPlaybackState(HLSPlayStates.IDLE);
-                        _setSeekState(HLSSeekStates.IDLE);
-                        return;
-                    } else if (buffer <= 0.1 && !_reached_vod_end) {
-                        // pause Netstream in really low buffer condition
-                        super.pause();
-                        if (HLSSettings.minBufferLength == -1) {
-                            _buffer_threshold = _autoBufferManager.minBufferLength;
+                    if (buffer <= 0.1) {
+                        if (_reached_vod_end) {
+                            // reach end of playlist + playback complete (as buffer is empty).
+                            // stop timer, report event and switch to IDLE mode.
+                            _timer.stop();
+                            CONFIG::LOGGING {
+                                Log.debug("reached end of VOD playlist, notify playback complete");
+                            }
+                            _hls.dispatchEvent(new HLSEvent(HLSEvent.PLAYBACK_COMPLETE));
+                            _setPlaybackState(HLSPlayStates.IDLE);
+                            _setSeekState(HLSSeekStates.IDLE);
+                            return;
                         } else {
-                            _buffer_threshold = HLSSettings.minBufferLength;
+                            // pause Netstream in really low buffer condition
+                            super.pause();
+                            if (HLSSettings.minBufferLength == -1) {
+                                _buffer_threshold = _autoBufferManager.minBufferLength;
+                            } else {
+                                _buffer_threshold = HLSSettings.minBufferLength;
+                            }
                         }
                     }
                     // dont switch to buffering state in case we reached end of a VOD playlist


Resolved near replay "loads but doesn't play" issue

--- src/org/mangui/hls/stream/StreamBuffer.as
+++ src/org/mangui/hls/stream/StreamBuffer.as
@@ -802,14 +802,16 @@
             * not begin before the buffer is full, and use an in-buffer seek to get things
             * moving again once the minimum buffer requirement is reached.
             *
-            * Appending tags without an in-buffer seek works 99% or the time, but in that
+            * Appending tags to an insufficient buffer works 99% or the time, but in that
             * remaining 1% we see blank or frozen video, or, if we're really lucky, animated
             * rainbow patterns, especially when alt audio is used.
             */
             if (_seekingOutsideBuffer && bufferLength >= _hls.stream.bufferThresholdController.minBufferLength) {
                 _altAudioTrackSwitching = false;
-                _hls.stream.seek(-2);
-            } else if (!_seekingOutsideBuffer) {
+				_seekingOutsideBuffer = false;
+			}
+
+			if (!_seekingOutsideBuffer) {
                 var netStreamBuffer : Number = _hls.stream.netStreamBufferLength;
                 /* only append tags if seek position has been reached, otherwise wait for more tags to come
                  * this is to ensure that accurate seeking will work appropriately


- added function to evaluate the success of the observed command

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@766 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/utils/AsynchronousDelegate.as
+++ src/reprise/utils/AsynchronousDelegate.as
@@ -24,6 +24,7 @@
 		protected var m_executionDelegate : Delegate;
 		protected var m_waitsForEvent : Boolean = false;
 		protected var m_commandCompleteEventName : String;
+		protected var m_successEvaluationFunction : Function;

 		/***************************************************************************
@@ -38,6 +39,7 @@
 				m_waitsForEvent = true;
 				m_commandCompleteEventName = commandCompleteEventName;
 			}
+			m_successEvaluationFunction = function(e:Event):Boolean{return true};
 		}

 		public static function create(
@@ -78,6 +80,15 @@
 			m_commandCompleteEventName = val;
 		}

+		public function successEvaluationFunction():Function
+		{
+			return m_successEvaluationFunction;
+		}
+		public function setSuccessEvaluationFunction(f:Function):void
+		{
+			m_successEvaluationFunction = f;
+		}
+

 		/***************************************************************************
 		*							protected methods								   *
@@ -86,7 +97,7 @@
 		{
 			EventDispatcher(m_executionDelegate.scope()).removeEventListener(
 				m_commandCompleteEventName, execution_complete);
-			notifyComplete(true);
+			notifyComplete(m_successEvaluationFunction(event));
 		}
 	}
 }


Fix when a mesh is added to the scene

Fix when a mesh is added to the scene

--- src/aerys/minko/scene/controller/mesh/MeshVisibilityController.as
+++ src/aerys/minko/scene/controller/mesh/MeshVisibilityController.as
@@ -139,7 +139,7 @@

 		private function addedHandler(mesh : Mesh, ancestor : Group) : void
 		{
-			var scene : Scene = mesh.scene;
+			var scene : Scene = ancestor.scene;

 			if (!scene)
 				return ;
@@ -170,22 +170,18 @@

 			if (!scene)
 				return ;
-
+
             if (scene.renderingBegin.hasCallback(sceneRenderingBeginHandler))
                 scene.renderingBegin.remove(sceneRenderingBeginHandler);

-			if (scene.bindings.hasCallback('worldToScreen', worldToScreenChangedHandler))
-				scene.bindings.removeCallback('worldToScreen', worldToScreenChangedHandler);
+			scene.bindings.removeCallback('worldToScreen', worldToScreenChangedHandler);

 			if (_frustumCulling
                 && mesh.localToWorldTransformChanged.hasCallback(meshLocalToWorldChangedHandler))
 				mesh.localToWorldTransformChanged.remove(meshLocalToWorldChangedHandler);

-			if (mesh.computedVisibilityChanged.hasCallback(computedVisiblityChangedHandler))
-			{
 				mesh.computedVisibilityChanged.remove(computedVisiblityChangedHandler);
             	mesh.bindings.removeProvider(_data);
-			}
 		}

         private function computedVisiblityChangedHandler(node               : ISceneNode,


fix track loader to only add file selected handler once

--- src/com/ryanberdeen/echonest/api/v3/track/utils/TrackLoader.as
+++ src/com/ryanberdeen/echonest/api/v3/track/utils/TrackLoader.as
@@ -35,6 +35,7 @@
     public function TrackLoader(trackApi:TrackApi) {
       this.trackApi = trackApi;
       _fileReference = new FileReference();
+      _fileReference.addEventListener(Event.SELECT, fileReferenceSelectHandler);
       _md5Calculator = new MD5Calculator();
       _analysisLoader = new AnalysisLoader(trackApi);
       _alwaysUpload = false;
@@ -62,7 +63,6 @@

     public function load(...properties):void {
       _analysisLoader.properties = properties;
-      _fileReference.addEventListener(Event.SELECT, fileReferenceSelectHandler);
       _fileReference.browse([new FileFilter("MP3 Files", "*.mp3")]);
     }


added constans

added constans

--- src/main/actionscript/com/castlabs/dash/utils/SmoothMonitor.as
+++ src/main/actionscript/com/castlabs/dash/utils/SmoothMonitor.as
@@ -13,6 +13,8 @@
 import org.osmf.net.NetStreamCodes;

 public class SmoothMonitor {
+    private static const ACCEPTED_BUFFERING_COUNT:uint = 1;
+
     private var _bufferingCount:Number = 0;

     public function SmoothMonitor() {
@@ -33,7 +35,7 @@
     }

     public function get fix():Number {
-        var fix:Number = _bufferingCount - 1;
+        var fix:Number = _bufferingCount - ACCEPTED_BUFFERING_COUNT;
         return fix > 0 ? fix : 0;
     }
 }


- bugfix: Label#applyRasterize threw an exception if no text was set for the label

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@836 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/controls/Label.as
+++ src/reprise/controls/Label.as
@@ -892,7 +892,7 @@
 				(m_currentStyles.opacity < 1 || m_currentStyles.rasterizeDeviceFonts))
 			{
 				m_labelDisplay.visible = false;
-				if (m_currentStyles.opacity == 0)
+				if (m_currentStyles.opacity == 0 || !m_labelDisplay.width || !m_labelDisplay.height)
 				{
 					m_cacheInvalid = true;
 					return;


- bugfix: Label content wasn't ever selectable anymore - that's now fixed

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@907 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/controls/Label.as
+++ src/reprise/controls/Label.as
@@ -114,6 +114,7 @@
 		{
 			m_instanceStyles.setStyle('selectable', value ? 'true' : 'false');
 			m_labelDisplay.selectable = enabled;
+			m_labelDisplay.mouseEnabled = enabled;
 		}

 		public function get enabled () : Boolean
@@ -179,7 +180,6 @@
 			m_labelDisplay = new TextField();
 			m_labelDisplay = TextField(m_contentDisplay.addChild(m_labelDisplay));
 			m_labelDisplay.name = 'labelDisplay';
-			m_labelDisplay.mouseEnabled = false;
 			m_labelDisplay.styleSheet = CSSDeclaration.TEXT_STYLESHEET;
 			m_contentDisplay.addEventListener(MouseEvent.CLICK, labelDisplay_click);
 			m_contentDisplay.addEventListener(MouseEvent.MOUSE_MOVE, contentDisplay_mouseMove);
@@ -213,6 +213,7 @@
 //			}

 			m_labelDisplay.selectable = m_currentStyles.selectable;
+			m_labelDisplay.mouseEnabled = m_currentStyles.selectable;
 			if (m_currentStyles.color)
 			{
 				m_labelDisplay.alpha = m_currentStyles.color.opacity();
@@ -895,7 +896,7 @@
 			m_cacheInvalid = false;
 			applyRasterize();
 		}
-
+
 		/**
 		 * Applies the 'rasterize-device-fonts' CSS setting by making a bitmap copy of the text
 		 * field and displaying that instead of the text field itself. This allows text set in


support older compiler

support older compiler

--- src/org/hola/JSURLStream.as
+++ src/org/hola/JSURLStream.as
@@ -125,7 +125,9 @@
             if (!HSettings.use_worker)
                 return on_decoded_data(Base64.decode_str(str));
             var data : ByteArray = new ByteArray();
+            CONFIG::HAVE_WORKER {
             data.shareable = true;
+            }
             data.writeUTFBytes(str);
             WorkerUtils.send({cmd: "b64.decode", id: _req_id});
             WorkerUtils.send(data);


Transferred from the Adobe Open Source Subversion Repository

Revision: 13035
Author:   hneelu@adobe.com
Date:     2009-12-17T07:35:16.160630Z

Log Message:
-----------
Updating automation project to latest p4 changes.

Modified Paths:
--------------
228 paths were modified

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

--- frameworks/projects/automation/src/mx/automation/codec/TabObjectCodec.as
+++ frameworks/projects/automation/src/mx/automation/codec/TabObjectCodec.as
@@ -99,8 +99,7 @@
 				// we need to replace the above code to replace the getAutomationChildAt
 				// and numAutomationChildren with getAutomationChildren to avoid the
 				// multiple calcuation of the children.
-				//var childList:Array = aoc.getAutomationChildren();
-				var childList:Array =  Automation.automationManager2.getAutomationChildrenArray(aoc);
+				var childList:Array = aoc.getAutomationChildren();
 				if(childList)
 				{
 					var n:int  = childList.length;


Move TextSkinBase to correct package

Move TextSkinBase to correct package

--- frameworks/projects/mobiletheme/src/spark/skins/android4/TextSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/android4/TextSkinBase.as
@@ -1,212 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package spark.skins.android4.supportClasses
-{
-
-	import flash.display.DisplayObject;
-
-	import mx.core.mx_internal;
-
-	import spark.components.supportClasses.StyleableTextField;
-
-	use namespace mx_internal;
-
-	/**
-	 *  ActionScript-based skin for text input controls in mobile applications that
-	 *  uses a StyleableTextField class for the text display.
-	 *
-	 *  @see spark.components.supportClasses.StyleableTextField
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 2.5
-	 *  @productversion Flex 4.5
-	 */
-	public class TextSkinBase extends MobileSkin
-	{
-		//--------------------------------------------------------------------------
-		//
-		//  Constructor
-		//
-		//--------------------------------------------------------------------------
-		/**
-		 *  Constructor.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10
-		 *  @playerversion AIR 2.5
-		 *  @productversion Flex 4.5
-		 *
-		 */
-		public function TextSkinBase()
-		{
-			super();
-		}
-
-		//--------------------------------------------------------------------------
-		//
-		//  Graphics variables
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  Defines the border.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10
-		 *  @playerversion AIR 2.5
-		 *  @productversion Flex 4.5
-		 */
-
-		//--------------------------------------------------------------------------
-		//
-		//  Layout variables
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  Defines the corner radius.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10
-		 *  @playerversion AIR 2.5
-		 *  @productversion Flex 4.5
-		 */
-
-		protected var layoutBorderSize:uint;
-
-		//--------------------------------------------------------------------------
-		//
-		//  Variables
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  @private
-		 *
-		 *  Instance of the border graphics.
-		 */
-		protected var border:DisplayObject;
-
-		private var borderVisibleChanged:Boolean = false;
-
-		//--------------------------------------------------------------------------
-		//
-		//  Skin parts
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  textDisplay skin part.
-		 */
-		public var textDisplay:StyleableTextField;
-
-		[Bindable]
-		/**
-		 *  Bindable promptDisplay skin part. Bindings fire when promptDisplay is
-		 *  removed and added for proper updating by the SkinnableTextBase.
-		 */
-		public var promptDisplay:StyleableTextField;
-
-		//--------------------------------------------------------------------------
-		//
-		//  Overridden methods
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  @private
-		 */
-		override protected function createChildren():void
-		{
-			super.createChildren();
-
-			if (!textDisplay)
-			{
-				textDisplay = StyleableTextField(createInFontContext(StyleableTextField));
-				textDisplay.styleName = this;
-				textDisplay.editable = true;
-				textDisplay.useTightTextBounds = false;
-				addChild(textDisplay);
-			}
-		}
-
-		/**
-		 *  @private
-		 */
-		protected function createPromptDisplay():StyleableTextField
-		{
-			var prompt:StyleableTextField = StyleableTextField(createInFontContext(StyleableTextField));
-			prompt.styleName = this;
-			prompt.editable = false;
-			prompt.mouseEnabled = false;
-			prompt.useTightTextBounds = false;
-			prompt.focusEnabled = false;
-			return prompt;
-		}
-
-		/**
-		 *  @private
-		 */
-
-		override public function styleChanged(styleProp:String):void
-		{
-			var allStyles:Boolean = !styleProp || styleProp == "styleName";
-
-			if (allStyles || styleProp == "borderVisible")
-			{
-				borderVisibleChanged = true;
-				invalidateProperties();
-			}
-
-			if (allStyles || styleProp.indexOf("padding") == 0)
-			{
-				invalidateDisplayList();
-			}
-
-			super.styleChanged(styleProp);
-		}
-
-		/**
-		 *  @private
-		 */
-		override protected function commitCurrentState():void
-		{
-			super.commitCurrentState();
-
-			alpha = currentState.indexOf("disabled") == -1 ? 1 : 0.5;
-
-			var showPrompt:Boolean = currentState.indexOf("WithPrompt") >= 0;
-
-			if (showPrompt && !promptDisplay)
-			{
-				promptDisplay = createPromptDisplay();
-				addChild(promptDisplay);
-			}
-			else if (!showPrompt && promptDisplay)
-			{
-				removeChild(promptDisplay);
-				promptDisplay = null;
-			}
-
-			invalidateDisplayList();
-		}
-	}
-}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10633
Author:   dloverin@adobe.com
Date:     2009-09-28T13:24:30.559033Z

Log Message:
-----------
Use styleManager instance instead of StyleManager singleton (framework and compiler generated code)

Modified compiler generated style code for the FlexInit class. The style related changes are only available with the -keep option. AST generation is coming later.

Only the framework project is changed here. The other projects are will be changed soon.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex and Paul
Tests run: checkintests, all Mustella tests(no new failures)
Is noteworthy for integration: no.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ButtonBarButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/accordionClasses/AccordionHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/CanvasLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollArrowSkin.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/skins/halo/ButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</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/framework/src/mx/skins/halo/DateChooserMonthArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/SliderThumbSkin.as</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/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollThumbSkin.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/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleModule.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/containers/Form.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.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/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/TitleBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/NumericStepperDownSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PopUpButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/ProgrammaticSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/TabSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/textClasses/TextRange.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/AccordionHeaderSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/CheckBoxIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/NumericStepperUpSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/RadioButtonIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ComboBoxArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeaderBase.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/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/MenuBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressBarSkin.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/framework/src/mx/skins/halo/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/SliderTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/DataGridHeaderBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridHeader.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridHeader.as
@@ -371,7 +371,7 @@
         var g:Graphics = headerBG.graphics;
         g.clear();
         var colors:Array = getStyle("headerColors");
-        StyleManager.getColorNames(colors);
+        styleManager.getColorNames(colors);

         var matrix:Matrix = new Matrix();
         matrix.createGradientBox(tot, hh + 1, Math.PI/2, 0, 0);


Transferred from the Adobe Open Source Subversion Repository

Revision: 12370
Author:   smgilson@adobe.com
Date:     2009-12-02T16:48:37.124467Z

Log Message:
-----------
Fix for doc bug FLEXDOCS-1150

Added a few new examples and default sizes to Spark components

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

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/SkinnableContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/VScrollBarExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/BorderContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/HScrollBarExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TileGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/MyBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/SkinnableDataContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/ApplicationContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
@@ -124,6 +124,14 @@
  *
If you want a container of data items and don't need a skin, then
  *  it is recommended to use a DataGroup (which cannot be skinned) to
  *  improve performance and application size.

+ *
+ *
The SkinnableDataContainer container has the following default characteristics:

+ *

+ *
Characteristic	Description

+ *
Default size	Large enough to display its children

+ *
Minimum size	0 pixels

+ *
Maximum size	10000 pixels wide and 10000 pixels high

+ *

  *
  *  @mxml
  *
@@ -182,6 +190,8 @@
  *  @see SkinnableContainer
  *  @see DataGroup
  *  @see spark.skins.spark.SkinnableDataContainerSkin
+ *
+ *  @includeExample examples/SkinnableDataContainerExample.mxml
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 16648
Author:   cframpto@adobe.com
Date:     2010-06-24T13:36:09.930261Z

Log Message:
-----------
The following changes apply to Spark DataGrid only.   Code reviews have been deferred until the implementation is closer to completion.

Layout changes for Hans to review.  For now the DefaultColumnHeaderRenderer set its width to 150 and its height to 32.  In GridLayout.updateDisplayList() commend out code which reset the widths of all the columns to their initial width.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DefaultColumnHeaderRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ColumnHeaderBarLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -228,7 +228,7 @@
         grid.measuredMinWidth = grid.measuredWidth;
         grid.measuredMinHeight = grid.measuredHeight;

-       //trace("GridLayout.measure", grid.measuredWidth, grid.measuredHeight);
+       trace("GridLayout.measure", grid.measuredWidth, grid.measuredHeight);
     }

     /**
@@ -236,18 +236,20 @@
      */
     override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
-        //trace("GridLayout.udl", unscaledWidth, unscaledHeight);
-
         if (!grid)
             return;
+
+        //trace("GridLayout.udl", unscaledWidth, unscaledHeight);

         // HACK
         gridDimensions.rowCount = grid.dataProvider ? grid.dataProvider.length : 0;
         var numCols:int = gridDimensions.columnCount = grid.columns ? grid.columns.length : 0;

         // HACK #2 - copy column explicit widths to gridDimensions
+        /*
         for (var i:int = 0; i < numCols; i++)
             gridDimensions.setColumnWidth(i, GridColumn(grid.columns.getItemAt(i)).width);
+        */

         // Layout the item renderers and compute new values for visibleRowIndices et al


Transferred from the Adobe Open Source Subversion Repository

Revision: 11639
Author:   jszeto@adobe.com
Date:     2009-11-11T01:07:34.029444Z

Log Message:
-----------
ComboBox bug fix

SDK-24104 - ComboBox should scroll the matched item to the top of the list

Made an mx_internal version of LayoutBase.getScrollPositionDeltaToElementHelper that supports aligning the position to an edge. ComboBox and DropDownList scroll the highlighted item to the top except when using the navigation keys to navigate while the dropDown is open.

Removed a bunch of comments and trace statements from ComboBox.

QE notes: None
Doc notes: None
Bugs: SDK-24104
Reviewer: Evtim
Tests run: ComboBox, DropDownList
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -808,7 +808,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function getElementBounds(index:int):Rectangle
+    public function getElementBounds(index:int):Rectangle
     {
         var g:GroupBase = target;
         if (!g)
@@ -1344,17 +1344,37 @@
     */
     public function getScrollPositionDeltaToElement(index:int):Point
     {
+        return getScrollPositionDeltaToElementHelper(index);
+    }
+
+
+    /**
+     *  @private
+     *  For the offset properties, a value of NaN means don't offset from that edge. A value
+     *  of 0 means to put the element flush against that edge.
+     *
+     *  @param topOffset Number of pixels to position the element below the top edge.
+     *  @param bottomOffset Number of pixels to position the element above the bottom edge.
+     *  @param leftOffset Number of pixels to position the element to the right of the left edge.
+     *  @param rightOffset Number of pixels to position the element to the left of the right edge.
+     */
+    mx_internal function getScrollPositionDeltaToElementHelper(index:int, topOffset:Number = NaN,
+                                                               bottomOffset:Number = NaN,
+                                                               leftOffset:Number = NaN,
+                                                               rightOffset:Number = NaN):Point
+    {
         var elementR:Rectangle = getElementBounds(index);
         if (!elementR)
-           return null;
+            return null;

         var scrollR:Rectangle = getScrollRect();
         if (!scrollR || !target.clipAndEnableScrolling)
-           return null;
-
-        if (scrollR.containsRect(elementR) || elementR.containsRect(scrollR))
-           return null;
-
+            return null;
+
+        if (isNaN(topOffset) && isNaN(bottomOffset) && isNaN(leftOffset) && isNaN(rightOffset) &&
+            (scrollR.containsRect(elementR) || elementR.containsRect(scrollR)))
+            return null;
+
         var dxl:Number = elementR.left - scrollR.left;     // left justify element
         var dxr:Number = elementR.right - scrollR.right;   // right justify element
         var dyt:Number = elementR.top - scrollR.top;       // top justify element
@@ -1363,22 +1383,31 @@
         // minimize the scroll
         var dx:Number = (Math.abs(dxl) < Math.abs(dxr)) ? dxl : dxr;
         var dy:Number = (Math.abs(dyt) < Math.abs(dyb)) ? dyt : dyb;
-
+
+        if (!isNaN(topOffset))
+            dy = dyt + topOffset;
+        else if (!isNaN(bottomOffset))
+            dy = dyb - bottomOffset;
+
+        if (!isNaN(leftOffset))
+            dx = dxl + leftOffset;
+        else if (!isNaN(rightOffset))
+            dx = dxr - rightOffset;
+
         // scrollR "contains"  elementR in just one dimension
         if ((elementR.left >= scrollR.left) && (elementR.right <= scrollR.right))
-           dx = 0;
+            dx = 0;
         else if ((elementR.bottom <= scrollR.bottom) && (elementR.top >= scrollR.top))
-           dy = 0;
-
+            dy = 0;
+
         // elementR "contains" scrollR in just one dimension
         if ((elementR.left <= scrollR.left) && (elementR.right >= scrollR.right))
-           dx = 0;
+            dx = 0;
         else if ((elementR.bottom >= scrollR.bottom) && (elementR.top <= scrollR.top))
             dy = 0;
-
+
         return new Point(dx, dy);
     }
-
     //--------------------------------------------------------------------------
     //
     //  Drop methods


Bug 491084: Add Testcase (r=brbaker)

Bug 491084: Add Testcase (r=brbaker)

--- test/acceptance/ecma3/Expressions/e11_5_3.as
+++ test/acceptance/ecma3/Expressions/e11_5_3.as
@@ -145,7 +145,13 @@
     array[item++] = new TestCase( SECTION,    "66.6 % -25.4",                       15.799999999999997,               66.6 % -25.4);
     array[item++] = new TestCase( SECTION,    "-66.6 % 25.4",                       -15.799999999999997,              -66.6 % 25.4 );
     array[item++] = new TestCase( SECTION,    "-66.6 % -25.4",                       -15.799999999999997,             -66.6 % -25.4 );
-
-
+
+    // Regression for https://bugzilla.mozilla.org/show_bug.cgi?id=491084
+    array[item++] = new TestCase( SECTION,    "null % null",        NaN, null %  null);
+    array[item++] = new TestCase( SECTION,    "'a string' % null",  NaN, 'a string' %  null);
+    array[item++] = new TestCase( SECTION,    "null % 'a string'",  NaN, null % 'a string');
+    array[item++] = new TestCase( SECTION,    "Math.PI % null",     NaN, Math.PI % null);
+    array[item++] = new TestCase( SECTION,    "null % Math.PI",     0, null % Math.PI);
+
     return ( array );
 }


FragmentLoader.as: reset demux when switching level

--- src/org/mangui/hls/loader/FragmentLoader.as
+++ src/org/mangui/hls/loader/FragmentLoader.as
@@ -161,6 +161,7 @@
                             level = _hls.manuallevel;
                         }
                         if (level != _hls.level) {
+                            _demux = null;
                             _hls.dispatchEvent(new HLSEvent(HLSEvent.LEVEL_SWITCH, level));
                         }
                         _switchlevel = true;
@@ -200,6 +201,7 @@
                         // notify in case level switch occurs
                         if (level != _hls.level) {
                             _switchlevel = true;
+                            _demux = null;
                             _hls.dispatchEvent(new HLSEvent(HLSEvent.LEVEL_SWITCH, level));
                         }
                         // check if we received playlist for choosen level. if live playlist, ensure that new playlist has been refreshed
@@ -874,6 +876,7 @@
                         _hls.level = bestlevel;
                         _loading_state = LOADING_IDLE;
                         _switchlevel = true;
+                        _demux = null;
                         _hls.dispatchEvent(new HLSEvent(HLSEvent.LEVEL_SWITCH, _hls.level));
                         return;
                     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7221
Author:   dsubrama@adobe.com
Date:     2009-05-22T16:27:26.493658Z

Log Message:
-----------
-Use Drawing API-2 to render caps for every Line graphic element's strokes. As part of this, GradientStroke now implements IStroke and IStroke has a new method, generateGraphicsStroke() which returns a GraphicsStroke object representing this stroke. More refactoring to share graphics stroke logic between LinearGradientStroke and RadialGradientStroke.
-Removed some un-used imports.
-Added some comments to ItemRenderer and had modified List to use static constants for event listeners.

Fixes: SDK-17661, SDK-21353, SDK-21251

Checkintests: Pass
FXG Tests: Passed (cyclone ran by Joan)
Doc: Added ASDoc for ItemRenderer and IStroke, a glance-over would be swell.
Reviewer: Jason for SDK-17661 me for the others.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/IStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Line.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.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/skins/default/ErrorSkin.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/GradientStroke.as
+++ frameworks/projects/framework/src/mx/graphics/GradientStroke.as
@@ -1,6 +1,15 @@
 package mx.graphics
 {
+import flash.display.CapsStyle;
+import flash.display.Graphics;
+import flash.display.GraphicsGradientFill;
+import flash.display.GraphicsStroke;
+import flash.display.JointStyle;
+import flash.geom.Rectangle;
+
 import mx.core.mx_internal;
+
+use namespace mx_internal;

 /**
  *  The GradientStroke class lets you specify a gradient filled stroke.
@@ -16,7 +25,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public class GradientStroke extends GradientBase
+public class GradientStroke extends GradientBase implements IStroke
 {
     /**
      *  Constructor.
@@ -410,6 +419,74 @@
         }
     }

+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Applies the properties to the specified Graphics object.
+     *
+     *  @param g The Graphics object to which the LinearGradientStroke styles
+     *  are applied.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function apply(g:Graphics):void
+    {
+        // Sub-classes must implement
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function draw(g:Graphics, rc:Rectangle):void
+    {
+       // Sub-classes must implement
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function generateGraphicsStroke(rc:Rectangle):GraphicsStroke
+    {
+        // Construct a new GraphicsStroke object and set all of
+        // its properties to match the gradient stroke's
+        // properties
+        var graphicsStroke:GraphicsStroke = new GraphicsStroke();
+        graphicsStroke.thickness = weight;
+        graphicsStroke.miterLimit = miterLimit;
+        graphicsStroke.pixelHinting = pixelHinting;
+        graphicsStroke.scaleMode = scaleMode;
+
+        // Remove this check when SDK-18373 is fixed
+        graphicsStroke.joints = (!joints) ? JointStyle.ROUND : joints;
+
+        // There is a bug in Drawing API-2 where if no caps is
+        // specified, a value of 'none' is used instead of 'round'
+        graphicsStroke.caps = (!caps) ? CapsStyle.ROUND : caps;
+
+        // Create the GraphicsGradientFill matching the
+        // gradient stroke's properties and set that as the
+        // fill for the GraphicsStroke object
+        var graphicsGradientFill:GraphicsGradientFill =
+            new GraphicsGradientFill();
+
+        graphicsGradientFill.colors = colors;
+        graphicsGradientFill.alphas = alphas;
+        graphicsGradientFill.ratios = ratios;
+        graphicsGradientFill.spreadMethod = spreadMethod;
+        graphicsGradientFill.interpolationMethod = interpolationMethod;
+
+        graphicsStroke.fill = graphicsGradientFill;
+
+        return graphicsStroke;
+    }
+
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6018
Author:   pfarland@adobe.com
Date:     2009-04-08T15:36:36.925077Z

Log Message:
-----------
API changes from PARB review of Advanced CSS additions.

Changes include:
- Fold IStyleManager3 back into IStyleManager2
- Remove CSSSelectorKind enum as it is not needed.
- Update CSSStyleDeclaration constructor to accept either a CSSSelector or legacy String selector.
- Update CSSConditionKind enum to use Strings
- Revert concept of StyleManager.addCSSStyleDeclaration() so that we continue to use the Flex 3 restriction of one CSSStyleDeclaration per unique selector String.
- Minor renames for lower level APIs such as IAdvancedStyleClient's isPseudoSelectorMatch() -> matchesCSSState(), and isTypeSelectorMatch)() -> matchesCSSType()
- Update ASDoc comment version info for APIs that were really added in Gumbo
- Add compiler warning for unqualified type selectors (e.g. when a type selector probably needs a namespace prefix).
- Add compiler warning for unresolved qualified type selector (e.g. when a type is probably missing from a manifest).

QE: I have an update for the mustella tests of programmatic creation of CSSStyleDeclaration
Doc: Yes, if we can do an ASDoc review of CSS classes in the framework it would be much appreciated.
Checkintests: Pass
mustella StyleManager/AdvancedCSS: Pass
Reviewer: Glenn

Modified Paths:
--------------
<path kind="dir" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/flash</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</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/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager3.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleSelector.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelectorKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/UnqualifiedTypeSelector.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleCondition.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/UnresolvedQualifiedTypeSelector.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSConditionKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>

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

--- frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
+++ frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
@@ -39,7 +39,7 @@
 /**
  *  @private
  */
-public class StyleManagerImpl implements IStyleManager3
+public class StyleManagerImpl implements IStyleManager2
 {
     include "../core/Version.as";

@@ -277,7 +277,7 @@
      *  A map of CSS pseudo states. If a pseudo selector exists for a
      *  particular state name, it is likely that styles need to be recalculated.
      */
-    private var _pseudoStates:Object;
+    private var _pseudoCSSStates:Object;

     /**
      *  @private
@@ -480,9 +480,9 @@
      *  non-global class selector, pseudo selector).
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function hasAdvancedSelectors():Boolean
     {
@@ -491,35 +491,134 @@

     /**
      * @private
-     * Determines whether at least one pseudo-selector has been specified for
+     * Determines whether at least one pseudo-condition has been specified for
      * the given state.
      */
-    public function hasPseudoSelector(state:String):Boolean
-    {
-        return _pseudoStates != null && _pseudoStates[state] != null;
-    }
-
-    /**
-     *  Adds this style declaration to a collection of declarations for the
-     *  associated subject.
-     *
-     *  @param styleDeclaration The style declaration to add.
-     *  @param update Set to true to force an immediate update of
-     *  the styles. Set to false to avoid an immediate update of
-     *  the styles in the application.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function addStyleDeclaration(styleDeclaration:CSSStyleDeclaration,
-            update:Boolean=false):void
-    {
-
-        // We index by subject to help match advanced selectors
+    public function hasPseudoCondition(cssState:String):Boolean
+    {
+        return _pseudoCSSStates != null && _pseudoCSSStates[cssState] != null;
+    }
+
+    /**
+     *  Retrieve all style declarations applicable to this subject. The subject
+     *  is the right most simple type selector in a selector chain.
+     *
+     *  @param subject The subject of the style declaration's selector.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function getStyleDeclarations(subject:String):Array // of CSSStyleDeclaration
+    {
+        // For Flex 3 and earlier, if we were passed a subject with a package
+        // name, such as "mx.controls.Button", strip off the package name
+        // leaving just "Button" and look for that subject.
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
+            if (subject.charAt(0) != ".")
+            {
+                var index:int = subject.lastIndexOf(".");
+                if (index != -1)
+                    subject = subject.substr(index + 1);
+            }
+        }
+
+        return _subjects[subject] as Array;
+    }
+
+    /**
+     *  Gets the CSSStyleDeclaration object that stores the rules
+     *  for the specified CSS selector.
+     *
+     *
If the selector parameter starts with a period (.),
+     *  the returned CSSStyleDeclaration is a class selector and applies only to those instances
+     *  whose styleName property specifies that selector
+     *  (not including the period).
+     *  For example, the class selector ".bigMargins"
+     *  applies to any UIComponent whose styleName
+     *  is "bigMargins".

+     *
+     *
If the selector parameter does not start with a period,
+     *  the returned CSSStyleDeclaration is a type selector and applies to all instances
+     *  of that type.
+     *  For example, the type selector "Button"
+     *  applies to all instances of Button and its subclasses.

+     *
+     *
The global selector is similar to a type selector
+     *  and does not start with a period.

+     *
+     *  @param selector The name of the CSS selector.
+     *
+     *  @return The style declaration whose name matches the selector property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function getStyleDeclaration(selector:String):CSSStyleDeclaration
+    {
+        // For Flex 3 and earlier, if we were passed a selector with a package
+        // name, such as "mx.controls.Button", strip off the package name
+        // leaving just "Button" and look for that type selector.
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
+            if (selector.charAt(0) != ".")
+            {
+                var index:int = selector.lastIndexOf(".");
+                if (index != -1)
+                    selector = selector.substr(index + 1);
+            }
+        }
+
+        return _selectors[selector];
+    }
+
+    /**
+     *  Sets the CSSStyleDeclaration object that stores the rules
+     *  for the specified CSS selector.
+     *
+     *
If the selector parameter starts with a period (.),
+     *  the specified selector is a class selector and applies only to those instances
+     *  whose styleName property specifies that selector
+     *  (not including the period).
+     *  For example, the class selector ".bigMargins"
+     *  applies to any UIComponent whose styleName
+     *  is "bigMargins".

+     *
+     *
If the selector parameter does not start with a period,
+     *  the specified selector is a "type selector" and applies to all instances
+     *  of that type.
+     *  For example, the type selector "Button"
+     *  applies to all instances of Button and its subclasses.

+     *
+     *
The global selector is similar to a type selector
+     *  and does not start with a period.

+     *
+     *  @param selector The name of the CSS selector.
+     *  @param styleDeclaration The new style declaration.
+     *  @param update Set to true to force an immediate update of the styles.
+     *  Set to false to avoid an immediate update of the styles in the application.
+     *  The styles will be updated the next time this method or the clearStyleDeclaration() method
+     *  is called with the update property set to true.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function setStyleDeclaration(selector:String,
+                                styleDeclaration:CSSStyleDeclaration,
+                                update:Boolean):void
+    {
+        // Populate the selectors Array for this style declaration
+        styleDeclaration.selectorRefCount++;
+        _selectors[selector] = styleDeclaration;
+
+        // We also index by subject to help match advanced selectors
         var subject:String = styleDeclaration.subject;
-        var selectorKey:String = styleDeclaration.selectorString;
         if (subject != null)
         {
             var declarations:Array = _subjects[subject] as Array;
@@ -534,22 +633,20 @@
             }
         }

-        // Populate the legacy selectors Array for this style declaration
-        styleDeclaration.selectorRefCount++;
-        _selectors[selectorKey] = styleDeclaration;
-
         // Also remember subjects that have pseudo-selectors to optimize
         // styles during component state changes.
-        var pseudoSelector:String = styleDeclaration.getPseudoSelector();
-        if (pseudoSelector != null)
+        var pseudoCondition:String = styleDeclaration.getPseudoCondition();
+        if (pseudoCondition != null)
         {
-            if (_pseudoStates == null)
-                _pseudoStates = {};
-
-            _pseudoStates[pseudoSelector] = true;
+            if (_pseudoCSSStates == null)
+                _pseudoCSSStates = {};
+
+            _pseudoCSSStates[pseudoCondition] = true;
         }

-        // Record whether this is an advanced selector
+        // Record whether this is an advanced selector so that style declaration
+        // look up can be optimized for when no advanced selectors have been
+        // declared
         if (styleDeclaration.isAdvanced())
             _hasAdvancedSelectors = true;

@@ -559,125 +656,6 @@

         if (update)
             styleDeclarationsChanged();
-    }
-
-    /**
-     *  Retrieve all style declarations applicable to this subject. The subject
-     *  is the right most simple type selector in a selector chain.
-     *
-     *  @param subject The subject of the style declaration's selector.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function getStyleDeclarations(subject:String):Array // Array of CSSStyleDeclaration
-    {
-        // For Flex 3 and earlier, if we were passed a subject with a package
-        // name, such as "mx.controls.Button", strip off the package name
-        // leaving just "Button" and look for that subject.
-        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-        {
-            if (subject.charAt(0) != ".")
-            {
-                var index:int = subject.lastIndexOf(".");
-                if (index != -1)
-                    subject = subject.substr(index + 1);
-            }
-        }
-
-        return _subjects[subject] as Array;
-    }
-
-    /**
-     *  Gets the CSSStyleDeclaration object that stores the rules
-     *  for the specified CSS selector.
-     *
-     *
If the selector parameter starts with a period (.),
-     *  the returned CSSStyleDeclaration is a class selector and applies only to those instances
-     *  whose styleName property specifies that selector
-     *  (not including the period).
-     *  For example, the class selector ".bigMargins"
-     *  applies to any UIComponent whose styleName
-     *  is "bigMargins".

-     *
-     *
If the selector parameter does not start with a period,
-     *  the returned CSSStyleDeclaration is a type selector and applies to all instances
-     *  of that type.
-     *  For example, the type selector "Button"
-     *  applies to all instances of Button and its subclasses.

-     *
-     *
The global selector is similar to a type selector
-     *  and does not start with a period.

-     *
-     *  @param selector The name of the CSS selector.
-     *
-     *  @return The style declaration whose name matches the selector property.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function getStyleDeclaration(selector:String):CSSStyleDeclaration
-    {
-        // For Flex 3 and earlier, if we were passed a selector with a package
-        // name, such as "mx.controls.Button", strip off the package name
-        // leaving just "Button" and look for that type selector.
-        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-        {
-            if (selector.charAt(0) != ".")
-            {
-                var index:int = selector.lastIndexOf(".");
-                if (index != -1)
-                    selector = selector.substr(index + 1);
-            }
-        }
-
-        return _selectors[selector];
-    }
-
-    /**
-     *  Sets the CSSStyleDeclaration object that stores the rules
-     *  for the specified CSS selector.
-     *
-     *
If the selector parameter starts with a period (.),
-     *  the specified selector is a class selector and applies only to those instances
-     *  whose styleName property specifies that selector
-     *  (not including the period).
-     *  For example, the class selector ".bigMargins"
-     *  applies to any UIComponent whose styleName
-     *  is "bigMargins".

-     *
-     *
If the selector parameter does not start with a period,
-     *  the specified selector is a "type selector" and applies to all instances
-     *  of that type.
-     *  For example, the type selector "Button"
-     *  applies to all instances of Button and its subclasses.

-     *
-     *
The global selector is similar to a type selector
-     *  and does not start with a period.

-     *
-     *  @param selector The name of the CSS selector.
-     *  @param styleDeclaration The new style declaration.
-     *  @param update Set to true to force an immediate update of the styles.
-     *  Set to false to avoid an immediate update of the styles in the application.
-     *  The styles will be updated the next time this method or the clearStyleDeclaration() method
-     *  is called with the update property set to true.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function setStyleDeclaration(
-                                selector:String,
-                                styleDeclaration:CSSStyleDeclaration,
-                                update:Boolean):void
-    {
-        styleDeclaration.selectorString = selector;
-        addStyleDeclaration(styleDeclaration, update);
     }

     /**
@@ -724,7 +702,7 @@

         if (styleDeclaration && styleDeclaration.subject)
         {
-            decls = _subjects[styleDeclaration.subject];
+            decls = _subjects[styleDeclaration.subject] as Array;
             if (decls)
             {
                 for (i = 0; i < decls.length; i++)


Transferred from the Adobe Open Source Subversion Repository

Revision: 3758
Author:   hmuller@adobe.com
Date:     2008-10-20T22:14:29.779416Z

Log Message:
-----------
Fixed sdk-17427

QE Notes: None
Doc Notes: None
Bugs: sdk-17427
Reviewer: Evtim

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -417,7 +417,7 @@
             return 1.0;
         if ((ix0 >= x0) && (ix1 <= x1))
             return 1.0;
-        return (Math.max(x0, ix0) - Math.min(x1, ix1)) / (ix1 - ix0);
+        return (Math.min(x1, ix1) - Math.max(x0, ix0)) / (ix1 - ix0);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 4531
Author:   egeorgie@adobe.com
Date:     2009-01-14T22:36:14.526244Z

Log Message:
-----------
Scrolling support for TileLayout.

QE Notes:
Doc Notes:
Bugs: None
Reviewer: Hans
tests: checkintests, mustella (layout, viewport, scroller)

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -691,107 +691,21 @@
     }

     /**
-     *  Overrides the default handling of UP/DOWN and
-     *  PAGE_UP, PAGE_DOWN.
-     *
-     *

-     *
-     *

-     *  LEFT
-     *  If the firstIndexInView element is partially visible then top justify
-     *  it, otherwise top justify the element at the previous index.
-     *

-     *
-     *

-     *  RIGHT
-     *  If the lastIndexInView element is partially visible, then bottom justify
-     *  it, otherwise bottom justify the element at the following index.
-     *

-     *
-     *  PAGE_UP
-     *

-     *  If the firstIndexInView element is partially visible, then bottom
-     *  justify it, otherwise bottom justify element at the previous index.
-     *

-     *
-     *

-     *  PAGE_DOWN
-     *  If the lastIndexInView element is partially visible, then top
-     *  justify it, otherwise top justify element at the following index.
-     *

-     *
-     *

-     *
-     *  @see firstIndexInView
-     *  @see lastIndexInView
-     *  @see horizontalScrollPosition
-     */
-    override public function getHorizontalScrollPositionDelta(unit:ScrollUnit):Number
-    {
-        var g:GroupBase = target;
-        if (!g)
-            return 0;
-
-        var maxIndex:int = g.numLayoutElements -1;
-        if (maxIndex < 0)
-            return 0;
-
-        var scrollR:Rectangle = g.scrollRect;
-        if (!scrollR)
-            return 0;
-
-        var elementR:Rectangle = null;
-        switch(unit)
-        {
-            case ScrollUnit.LEFT:
-            case ScrollUnit.PAGE_LEFT:
-                elementR = findLayoutElementBounds(g, firstIndexInView, -1, scrollR);
-                break;
-
-            case ScrollUnit.RIGHT:
-            case ScrollUnit.PAGE_RIGHT:
-                elementR = findLayoutElementBounds(g, lastIndexInView, +1, scrollR);
-                break;
-
-            default:
-                return super.getHorizontalScrollPositionDelta(unit);
-        }
-
-        if (!elementR)
-            return 0;
-
-        var delta:Number = 0;
-        switch (unit)
-        {
-            case ScrollUnit.LEFT:
-                delta = Math.max(-scrollR.width, elementR.left - scrollR.left);
-                break;
-
-            case ScrollUnit.RIGHT:
-                delta = Math.min(scrollR.width, elementR.right - scrollR.right);
-                break;
-
-            case ScrollUnit.PAGE_LEFT:
-                if ((elementR.left < scrollR.left) && (elementR.right >= scrollR.right))
-                    delta = Math.max(-scrollR.width, elementR.left - scrollR.left);
-                else
-                    delta = elementR.right - scrollR.right;
-                break;
-
-            case ScrollUnit.PAGE_RIGHT:
-                if ((elementR.left <= scrollR.left) && (elementR.right > scrollR.right))
-                    delta = Math.min(scrollR.width, elementR.right - scrollR.right);
-                else
-                    delta = elementR.left - scrollR.left;
-                break;
-        }
-
-        var maxDelta:Number = g.contentWidth - scrollR.width - scrollR.x;
-        var minDelta:Number = -scrollR.x;
-        return Math.min(maxDelta, Math.max(minDelta, delta));
-    }
-
-
+     *  @private
+     */
+    override protected function elementBoundsLeftOfScrollRect(scrollRect:Rectangle):Rectangle
+    {
+        return findLayoutElementBounds(target, firstIndexInView, -1, scrollRect);
+    }
+
+    /**
+     *  @private
+     */
+    override protected function elementBoundsRightOfScrollRect(scrollRect:Rectangle):Rectangle
+    {
+        return findLayoutElementBounds(target, lastIndexInView, +1, scrollRect);
+    }
+
     /**
      *  @private
      *  Compute exact values for measuredWidth,Height and  measuredMinWidth,Height.


Transferred from the Adobe Open Source Subversion Repository

Revision: 6306
Author:   egeorgie@adobe.com
Date:     2009-04-28T01:17:42.359155Z

Log Message:
-----------
Layout PARB changes - rename "layout" package to "layouts"

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer:
tests: checkintests

Modified Paths:
--------------
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/BasicLayout.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/BasicLayout.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutElementHelper.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/RowAlign.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/RowAlign.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/Block.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/Block.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/VerticalAlign.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalAlign.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LinearLayoutVector.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBarHorizontalLayout.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/HorizontalLayout.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses</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/components/HGroup.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileLayout.as" copyfrom-rev="6301" action="A">/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/RichEditableText2.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts</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/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" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutBase.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/HorizontalAlign.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalAlign.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/components/VGroup.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/VerticalLayout.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/ColumnAlign.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/ColumnAlign.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileOrientation.as" copyfrom-rev="6301" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileOrientation.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package spark.layout
+package spark.layouts
 {
 import flash.display.DisplayObject;
 import flash.events.Event;
@@ -22,9 +22,9 @@
 import mx.events.PropertyChangeEvent;

 import spark.components.supportClasses.GroupBase;
-import spark.layout.supportClasses.LayoutBase;
-import spark.layout.supportClasses.LayoutElementHelper;
-import spark.layout.supportClasses.LinearLayoutVector;
+import spark.layouts.supportClasses.LayoutBase;
+import spark.layouts.supportClasses.LayoutElementHelper;
+import spark.layouts.supportClasses.LinearLayoutVector;

 /**
  *  The HorizontalLayout arranges the layout elements in a horizontal sequence,


Transferred from the Adobe Open Source Subversion Repository

Revision: 5097
Author:   gauravj@adobe.com
Date:     2009-02-27T02:06:23.424936Z

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:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemTreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/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/airframework/src/mx/utils/DirectoryEnumeration.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/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/WindowExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemControlHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as
+++ frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as
@@ -36,26 +36,46 @@

     /**
      *  Specifies to show files but not directories.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const FILES_ONLY:String = "filesOnly";

     /**
      *  Specifies to show directories but not files.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const DIRECTORIES_ONLY:String = "directoriesOnly";

     /**
      *  Specifies to show files first, then directories.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const FILES_FIRST:String = "filesFirst";

     /**
      *  Specifies to show directories, then files.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const DIRECTORIES_FIRST:String = "directoriesFirst";

     /**
      *  Specifies to show both files and directories, mixed together.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
      public static const FILES_AND_DIRECTORIES:String = "filesAndDirectories";
 }


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

--- frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as
+++ frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as
@@ -180,6 +180,7 @@
     protected function eventHandler(event:Event):void
     {
         var pos:int;
+
         switch (event.type)
         {
             case "errorStringChanged":
@@ -205,6 +206,7 @@
                 }

                 Accessibility.updateProperties();
+				break;
             }

             case "toolTipChanged":
@@ -230,6 +232,7 @@
                 }

                 Accessibility.updateProperties();
+				break;
             }
         }
     }