Transferred from the Adobe Open Source Subversion Repository

Revision: 6404
Author:   rfrishbe@adobe.com
Date:     2009-04-30T00:34:09.399480Z

Log Message:
-----------
Finishing up VideoPlayer/VideoElement. Added support for streaming videos and fixed a few of the bugs.  Added the skins from XD.  These still need a little tweaking, and I'll go over them with XD. For the skins, I had to add some new sub-components, like the VideoPlayerVolumeBar and VideoPlayScrubBar.

Also added 3 new events for TrackBase (thumbDrag, thumbPress, thumbRelease).  These were in Halo's Slider, and I needed them for the VideoPlayerScrubBar.

Also fixed some other bugs, like needing to call removeDynamicPartInstance() on the Slider when the dataTip is removed.  Also fixed a bug around alternatingItemsColor for ItemRenderer.

QE Notes: -
Doc Notes: -
Bugs: SDK-19486, SDK-20105, SDK-20789
Reviewer: Glenn, Jason
tests: checkintests, some mustella tests were failing, but seemed like random 1 pixel differences in DropDownList.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBarMuteButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamItem.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarThumbSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerMuteButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerScrubBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenFullScreenButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenPlayPauseButtonSkin.mxml</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/templates/swfobject/index.template.html</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
+++ frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
@@ -0,0 +1,478 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.components
+{
+
+import flash.display.DisplayObject;
+import flash.events.Event;
+import flash.events.FocusEvent;
+import flash.events.KeyboardEvent;
+import flash.events.MouseEvent;
+import flash.ui.Keyboard;
+import flash.ui.Mouse;
+
+import mx.collections.IList;
+import mx.core.mx_internal;
+import mx.events.CollectionEvent;
+import mx.events.DropdownEvent;
+import mx.events.FlexEvent;
+
+import spark.components.supportClasses.ButtonBase;
+import spark.components.supportClasses.DropDownController;
+import spark.components.supportClasses.ListBase;
+import spark.primitives.supportClasses.TextGraphicElement;
+import spark.utils.LabelUtil;
+
+/**
+ *  Dispatched when the dropDown is dismissed for any reason such when
+ *  the user:
+ *

+ *
selects an item in the dropDown

+ *
mouses outside outside of the dropDown

+ *

+ *
+ *  @eventType mx.events.DropdownEvent.CLOSE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Event(name="close", type="mx.events.DropdownEvent")]
+
+/**
+ *  Dispatched when the mouses over the dropDown button
+ *  to display the dropDown.  It is also dispatched if the user
+ *  uses the keyboard and types Ctrl-Down to open the dropDown.
+ *
+ *  @eventType mx.events.DropdownEvent.OPEN
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Event(name="open", type="mx.events.DropdownEvent")]
+
+/**
+ *  Dispatched when the user presses the mute button control.
+ *
+ *  @eventType mx.events.FlexEvent
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Event(name="muteButtonClick", type="mx.events.MouseEvent")]
+
+/**
+ *  Open State of the DropDown component
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[SkinState("open")]
+
+/**
+ *  The VideoPlayerVolumeBar is a drop-down button
+ *  that functions as a mute/unmute button and also has a
+ *  pop-up to control the volume.
+ *
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+public class VideoPlayerVolumeBar extends VSlider
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  The default value for the rollover open delay of this component.
+     *
+     *
This is how long to wait while hovered over the button before the
+     *  pop up opens.

+     *
+     *  @default 200
+     */
+    private static const ROLL_OVER_OPEN_DELAY:Number = 200;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Skin Parts
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+     *  A skin part that defines the mute/unmute button.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    [SkinPart(required="false")]
+    public var muteButton:VideoPlayerVolumeBarMuteButton;
+
+
+	/**
+     *  A skin part that defines the dropDown area. When the volume slider
+     *  dropdown is open, clicking anywhere outside of the dropDown skin
+     *  part will close the  video slider dropdown.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    [SkinPart(required="false")]
+    public var dropDown:DisplayObject;
+
+	/**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+	public function VideoPlayerVolumeBar()
+	{
+		super();
+
+		if (_dropDownControllerClass)
+		{
+			_dropDownController = new _dropDownControllerClass();
+			initializeDropDownController();
+		}
+	}
+
+	//--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+	//----------------------------------
+    //  dropDownController
+    //----------------------------------
+
+	private var _dropDownController:DropDownController;
+
+	/**
+     *  Instance of the helper class that handles all of the mouse, keyboard
+     *  and focus user interactions. The type of this class is determined by the
+     *  dropDownControllerClass property.
+     *
+     *  The initializeDropDownController() function is called after
+     *  the dropDownController is created in the constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+	protected function get dropDownController():DropDownController
+	{
+		return _dropDownController;
+	}
+
+	//----------------------------------
+    //  dropDownControllerClass
+    //----------------------------------
+
+	private var _dropDownControllerClass:Class = DropDownController;
+
+	/**
+     *  The class used to create an instance for the dropDownController
+     *  property. Set this property if you want to use a
+     *  DropDownController subclass to modify the default mouse,
+     *  keyboard and focus user interactions.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+	public function set dropDownControllerClass(value:Class):void
+	{
+		if (_dropDownControllerClass == value)
+			return;
+
+		_dropDownControllerClass = value;
+		_dropDownController = new _dropDownControllerClass();
+		initializeDropDownController();
+	}
+
+	/**
+     *  @private
+     */
+	public function get dropDownControllerClass():Class
+	{
+		return _dropDownControllerClass;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  baselinePosition
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get baselinePosition():Number
+    {
+    	if (muteButton)
+    		return muteButton.baselinePosition;
+    	else
+    		return NaN;
+    }
+
+    //----------------------------------
+    //  enabled
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function set enabled(value:Boolean):void
+    {
+    	if (value == enabled)
+    		return;
+
+    	super.enabled = value;
+    	if (muteButton)
+    		muteButton.enabled = value;
+    }
+
+    //----------------------------------
+    //  value
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function set value(value:Number):void
+    {
+        if (super.value == value)
+            return;
+
+        super.value = value;
+
+        if (muteButton)
+            muteButton.value = value;
+    }
+
+ 	//--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function setValue(value:Number):void
+    {
+        super.setValue(value);
+
+        if (muteButton)
+            muteButton.value = value;
+    }
+
+	/**
+     *  Opens the dropDown.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function openDropDown():void
+    {
+    	dropDownController.openDropDown();
+    }
+
+	 /**
+     *  Closes the dropDown.
+     *
+     *  @param commitData Flag indicating if the component should commit the selected
+     *  data from the dropDown.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function closeDropDown(commitData:Boolean):void
+    {
+    	dropDownController.closeDropDown(commitData);
+    }
+
+	/**
+     *  Initializes the dropDownController after it has been created.
+     *  Override this function if you create a DropDownController subclass
+     *  and need to perform additional initialization.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+	protected function initializeDropDownController():void
+	{
+		if (dropDownController)
+		{
+			dropDownController.addEventListener(DropdownEvent.OPEN, dropDownController_openHandler);
+			dropDownController.addEventListener(DropdownEvent.CLOSE, dropDownController_closeHandler);
+
+			dropDownController.rollOverOpenDelay = ROLL_OVER_OPEN_DELAY;
+
+			if (muteButton)
+				dropDownController.button = muteButton;
+			if (dropDown)
+				dropDownController.dropDown = dropDown;
+		}
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+ 	 *  @private
+ 	 */
+    override protected function getCurrentSkinState():String
+    {
+		return !enabled ? "disabled" : dropDownController.isOpen ? "open" : "normal";
+    }
+
+    /**
+	 *  @private
+	 */
+    override protected function partAdded(partName:String, instance:Object):void
+    {
+    	super.partAdded(partName, instance);
+
+ 		if (instance == muteButton)
+    	{
+    		if (dropDownController)
+    			dropDownController.button = muteButton;
+
+    	    muteButton.addEventListener(MouseEvent.CLICK, muteButton_clickHandler);
+    		muteButton.enabled = enabled;
+    		muteButton.value = value;
+    	}
+
+    	if (instance == dropDown && dropDownController)
+    		dropDownController.dropDown = dropDown;
+    }
+
+    private function muteButton_clickHandler(event:MouseEvent):void
+    {
+        // TODO (rfrishbe): Need this to be a real event
+        var muteButtonClickEvent:MouseEvent = new MouseEvent("muteButtonClick");
+        dispatchEvent(muteButtonClickEvent);
+    }
+
+    /**
+     *  @private
+     */
+    override protected function partRemoved(partName:String, instance:Object):void
+    {
+        if (instance == muteButton)
+        {
+            muteButton.removeEventListener(MouseEvent.CLICK, muteButton_clickHandler);
+        }
+
+    	if (instance == dropDownController)
+    	{
+    		if (instance == muteButton)
+	    		dropDownController.button = null;
+
+    		if (instance == dropDown)
+    			dropDownController.dropDown = null;
+     	}
+
+        super.partRemoved(partName, instance);
+    }
+
+	/**
+     *  @private
+     */
+    override protected function focusOutHandler(event:FocusEvent):void
+    {
+		dropDownController.focusOutHandler(event);
+
+        super.focusOutHandler(event);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handling
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Event handler for the dropDownController
+     *  DropdownEvent.OPEN event. Updates the skin's state and
+     *  ensures that the selectedItem is visible.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function dropDownController_openHandler(event:DropdownEvent):void
+    {
+    	invalidateSkinState();
+
+    	dispatchEvent(event);
+    }
+
+    /**
+     *  Event handler for the dropDownController
+     *  DropdownEvent.CLOSE event. Updates the skin's state.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function dropDownController_closeHandler(event:DropdownEvent):void
+    {
+    	invalidateSkinState();
+
+    	// TODO!! Add logic to handle commitData
+    	//if (event.isDefaultPrevented())
+
+    	dispatchEvent(event);
+    }
+
+}
+}


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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -275,8 +275,8 @@
      *  @default The target's first layout element.
      *  @see target
      *  @see DataGroup#typicalItem
-     *  @see mx.layout.VerticalLayout#variableRowHeight
-     *  @see mx.layout.HorizontalLayout#variableColumnWidth
+     *  @see spark.layout.VerticalLayout#variableRowHeight
+     *  @see spark.layout.HorizontalLayout#variableColumnWidth
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Proposed a quick fix to use the specular map not only as a modulation function for Phong, but as masking for environment mapping.

--- src/aerys/minko/render/material/realistic/RealisticSinglePassShader.as
+++ src/aerys/minko/render/material/realistic/RealisticSinglePassShader.as
@@ -1,49 +1,87 @@
 package aerys.minko.render.material.realistic
 {
-    import aerys.minko.render.RenderTarget;
-    import aerys.minko.render.material.basic.BasicShader;
-    import aerys.minko.render.material.environment.EnvironmentMappingProperties;
-    import aerys.minko.render.material.phong.PhongSinglePassShader;
-    import aerys.minko.render.shader.SFloat;
-    import aerys.minko.render.shader.part.BlendingShaderPart;
-    import aerys.minko.render.shader.part.DiffuseShaderPart;
-    import aerys.minko.render.shader.part.environment.EnvironmentMappingShaderPart;
-    import aerys.minko.render.shader.part.phong.PhongShaderPart;
-    import aerys.minko.type.enum.Blending;
-    import aerys.minko.type.enum.BlendingDestination;
-    import aerys.minko.type.enum.BlendingSource;
-
-    public class RealisticSinglePassShader extends BasicShader
-    {
-        private var _diffuse            : DiffuseShaderPart;
-        private var _phong              : PhongShaderPart;
-        private var _blending           : BlendingShaderPart;
-        private var _environmentMapping : EnvironmentMappingShaderPart;
-
-        public function RealisticSinglePassShader(target      : RenderTarget  = null,
-                                                  priority    : Number        = 0.)
-        {
-            super(target, priority);
-
-            _diffuse = new DiffuseShaderPart(this);
-            _phong = new PhongShaderPart(this);
-            _blending = new BlendingShaderPart(this);
-            _environmentMapping = new EnvironmentMappingShaderPart(this);
-        }
-
-        override protected function getPixelColor() : SFloat
-        {
-            var diffuse         : SFloat    = _diffuse.getDiffuseColor();
-            var alpha           : SFloat    = diffuse.a;
-            var phong           : SFloat    = add(_phong.getDynamicLighting(), _phong.getStaticLighting());
-            var env             : SFloat    = _environmentMapping.getEnvironmentColor();
-            var envBlending     : uint      = meshBindings.getProperty(
-                EnvironmentMappingProperties.ENVIRONMENT_BLENDING, Blending.ALPHA
-            );
-
-            diffuse = _blending.blend(env, diffuse, envBlending);
-
-            return float4(multiply(diffuse.rgb, phong.rgb), alpha);
-        }
-    }
+	import aerys.minko.render.RenderTarget;
+	import aerys.minko.render.material.basic.BasicProperties;
+	import aerys.minko.render.material.basic.BasicShader;
+	import aerys.minko.render.material.environment.EnvironmentMappingProperties;
+	import aerys.minko.render.material.phong.PhongProperties;
+	import aerys.minko.render.material.phong.PhongSinglePassShader;
+	import aerys.minko.render.shader.SFloat;
+	import aerys.minko.render.shader.compiler.graph.nodes.leaf.Sampler;
+	import aerys.minko.render.shader.part.BlendingShaderPart;
+	import aerys.minko.render.shader.part.DiffuseShaderPart;
+	import aerys.minko.render.shader.part.environment.EnvironmentMappingShaderPart;
+	import aerys.minko.render.shader.part.phong.PhongShaderPart;
+	import aerys.minko.type.enum.Blending;
+	import aerys.minko.type.enum.BlendingDestination;
+	import aerys.minko.type.enum.BlendingSource;
+	import aerys.minko.type.enum.SamplerFiltering;
+	import aerys.minko.type.enum.SamplerFormat;
+	import aerys.minko.type.enum.SamplerMipMapping;
+	import aerys.minko.type.enum.SamplerWrapping;
+
+	public class RealisticSinglePassShader extends BasicShader
+	{
+		private var _diffuse            : DiffuseShaderPart;
+		private var _phong              : PhongShaderPart;
+		private var _blending           : BlendingShaderPart;
+		private var _environmentMapping : EnvironmentMappingShaderPart;
+		private var _uv					: SFloat;
+
+		public function RealisticSinglePassShader(target      : RenderTarget  = null,
+												  priority    : Number        = 0.)
+		{
+			super(target, priority);
+
+			_diffuse = new DiffuseShaderPart(this);
+			_phong = new PhongShaderPart(this);
+			_blending = new BlendingShaderPart(this);
+			_environmentMapping = new EnvironmentMappingShaderPart(this);
+		}
+
+		override protected function getVertexPosition():SFloat
+		{
+			_uv = vertexUV.xy;
+
+			if (meshBindings.propertyExists(BasicProperties.UV_SCALE))
+				_uv.scaleBy(meshBindings.getParameter(BasicProperties.UV_SCALE, 2));
+
+			if (meshBindings.propertyExists(BasicProperties.UV_OFFSET))
+				_uv.incrementBy(meshBindings.getParameter(BasicProperties.UV_OFFSET, 2));
+
+			return super.getVertexPosition();
+		}
+
+		override protected function getPixelColor() : SFloat
+		{
+			var diffuse         : SFloat    = _diffuse.getDiffuseColor();
+			var alpha           : SFloat    = diffuse.a;
+			var phong           : SFloat    = add(_phong.getDynamicLighting(), _phong.getStaticLighting());
+			var env             : SFloat    = _environmentMapping.getEnvironmentColor();
+			var envBlending     : uint      = meshBindings.getProperty(
+				EnvironmentMappingProperties.ENVIRONMENT_BLENDING, Blending.ALPHA
+			);
+
+			var envDiffuse		: SFloat	= _blending.blend(env, diffuse, envBlending);
+
+			// BigPoint trick
+			if (meshBindings.propertyExists(PhongProperties.SPECULAR_MAP))
+			{
+				var uv			: SFloat	= interpolate(_uv);
+				var map			: SFloat	= meshBindings.getTextureParameter(
+					PhongProperties.SPECULAR_MAP,
+					SamplerFiltering.LINEAR,
+					SamplerMipMapping.DISABLE,
+					SamplerWrapping.REPEAT,
+					0,
+					meshBindings.getProperty(PhongProperties.SPECULAR_MAP_FORMAT, SamplerFormat.RGBA)
+				);
+				var envWeight	: SFloat	= sampleTexture(map, uv);
+
+				envDiffuse	= mix(diffuse, envDiffuse, envWeight);
+			}
+
+			return float4(multiply(envDiffuse.rgb, phong.rgb), alpha);
+		}
+	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22584
Author:   mhorn@adobe.com
Date:     2011-09-15T20:31:21.235617Z

Log Message:
-----------
asdoc updates

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<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/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as
@@ -36,7 +36,7 @@
     //
     //--------------------------------------------------------------------------
     /**
-     *  Constructor
+     *  Constructor.
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
@@ -54,7 +54,7 @@
     //--------------------------------------------------------------------------

     /**
-     *  Factory for creating dateItem list parts
+     *  Factory for creating dateItem list parts.
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
@@ -63,7 +63,7 @@
     public var dateItemList:IFactory;

     /**
-     *  Skin part; container of dateItem list(s)
+     *  Skin part; container of dateItem list(s).
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
@@ -87,6 +87,13 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.6
+     */
     override protected function createChildren():void
     {
         listContainer = new SpinnerListContainer();
@@ -99,6 +106,13 @@
             percentHeight : 100 };
     }

+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.6
+     */
     override protected function measure():void
     {
         measuredWidth = SpinnerListContainer(listContainer).getPreferredBoundsWidth();
@@ -107,6 +121,13 @@
         measuredMinHeight = SpinnerListContainer(listContainer).getMinBoundsHeight();
     }

+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.6
+     */
     override protected function layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
     {
         super.layoutContents(unscaledWidth, unscaledHeight);


Transferred from the Adobe Open Source Subversion Repository

Revision: 22564
Author:   tkraikit@adobe.com
Date:     2011-09-14T19:50:07.656843Z

Log Message:
-----------
Update ASDoc "@productversion Flex 4.5.2" => "@productversion Flex 4.6"

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/OnDemandDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/FlexVersion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/FormatPattern.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListScrollerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ToggleSwitchSkin.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/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImageSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<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/spark/src/spark/globalization/supportClasses/CalendarDate.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/DateTimeFormatterEx.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as
@@ -28,7 +28,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 public class SpinnerListSkin extends MobileSkin
 {
@@ -63,7 +63,7 @@
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion AIR 3
-	 *  @productversion Flex 4.5.2
+	 *  @productversion Flex 4.6
 	 */
 	public var scroller:Scroller;

@@ -72,7 +72,7 @@
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion AIR 3
-	 *  @productversion Flex 4.5.2
+	 *  @productversion Flex 4.6
 	 */
 	public var dataGroup:DataGroup;


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3450
Author:   rfrishbe@adobe.com
Date:     2008-10-02T04:54:40.265411Z

Log Message:
-----------
Couple of changes to Group and DataGroup:

1.  Got rid of content_changing, content_changed, dataProvider_changing, and dataProvider_changed events.  The events both group and datagroup emit are the item add and item remove events.  Fixed up Selector, DataComponent, and ItemsComponent to not key off of these events anymore.

2.  Clean up Group's canShareDisplayObject from the blendMode change

3.  Fix up DataGroup to deal with a case where a GraphicElement's itemRenderer's group was holding on to the display object.  When the graphic element was pushed into another itemRenderer, we tried to remove the graphic element's display object from its parent, but calling removeChild() on a Group RTE's.  We need to revisit the fix here, and possibly add methods for removing display objects to Group, or don't RTE in Group on removeChild/addChild, or add some code so itemRenderer's can clean themselves up afterwards...at any rate, this fix will be revisited.

QE: Yes
Doc: Yes - event removed
Bugs: SDK-17135
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/DataComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Selector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -16,6 +16,7 @@
 import flex.events.FlexEvent;
 import flex.events.ItemExistenceChangedEvent;

+import mx.collections.IList;
 import mx.events.IndexChangedEvent;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;
@@ -68,10 +69,7 @@
 	 */
 	public function Selector()
     {
-    	addEventListener(FlexEvent.DATA_PROVIDER_CHANGING, dataProviderChangingHandler);
-    	addEventListener(FlexEvent.DATA_PROVIDER_CHANGED, dataProviderChangedHandler);
-    	if (dataProvider)
-    	    dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+    	super();
     }

     //--------------------------------------------------------------------------
@@ -84,6 +82,26 @@
 	 *  @private
 	 */
 	private var doingWholesaleChanges:Boolean = false;
+
+	//----------------------------------
+    //  dataProvider
+    //----------------------------------
+
+    private var dataProviderChanged:Boolean;
+
+    override public function set dataProvider(value:IList):void
+    {
+        if (dataProvider)
+            dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+
+        dataProviderChanged = true;
+        doingWholesaleChanges = true;
+
+        super.dataProvider = value;
+
+        if (dataProvider)
+            dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+    }

 	//----------------------------------
 	//  selectedIndex
@@ -233,6 +251,19 @@
     	var changedSelection:Boolean = false;

         super.commitProperties();
+
+        if (dataProviderChanged)
+        {
+            dataProviderChanged = false;
+            doingWholesaleChanges = false;
+
+    	    // TODO: should resetting the dataProvider clear out all of its state?
+    	    // or should we preserve selectedIndex
+        	if (selectedIndex >= 0 && dataProvider && selectedIndex < dataProvider.length)
+        	   itemSelected(dataProvider.getItemAt(selectedIndex), true);
+        	else
+        	   selectedIndex = -1;
+        }

         if (requiresSelectionChanged)
         {
@@ -411,33 +442,6 @@
         }
     }

-    /**
-     *  @private
-     */
-    private function dataProviderChangingHandler(event:FlexEvent):void
-    {
-        if (dataProvider)
-            dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
-
-    	doingWholesaleChanges = true;
-    }
-
-    /**
-     *  @private
-     */
-    private function dataProviderChangedHandler(event:FlexEvent):void
-    {
-    	doingWholesaleChanges = false;
-
-    	if (selectedIndex >= 0 && dataProvider && selectedIndex < dataProvider.length)
-    	   itemSelected(dataProvider.getItemAt(selectedIndex), true);
-    	else
-    	   selectedIndex = -1;
-
-    	if (dataProvider)
-    	    dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
-    }
-
     protected function collectionChangeHandler(event:Event):void
     {
         if (event is CollectionEvent)


added the ternary() function which acts like a conditional branch (but executes both branches anyway)

--- src/aerys/minko/render/shader/part/ShaderPart.as
+++ src/aerys/minko/render/shader/part/ShaderPart.as
@@ -574,6 +574,11 @@
 			return new SFloat(new Instruction(Instruction.M34, vectorNode, getNode(matrix)));
 		}

+		protected final function ternary(condition : SFloat, ifValue : SFloat, elseValue : SFloat) : SFloat
+		{
+			return mix(elseValue, ifValue, condition);
+		}
+
 		/*protected final function rotationX(vector : Object, angle : Object) : SFloat
 		{
 			var vectorNode 	: SFloat = getNode(vector);


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

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

 package mx.automation.delegates.core
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/automation/src/mx/automation/events/EventDetails.as
+++ frameworks/projects/automation/src/mx/automation/events/EventDetails.as
@@ -0,0 +1,38 @@
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation.events
+{
+	import flash.display.DisplayObject;
+	import flash.events.Event;
+
+	public class EventDetails
+	{
+		public var eventType:String;
+		public var handlerFunction:Function;
+		public var useCapture:Boolean;
+		public var priority:int;
+		public var useWeekRef:Boolean;
+
+		public function EventDetails(type:String, handler:Function,
+									 useCapture:Boolean= false,
+									 priority:int = 0, useWeekReferance:Boolean= false )
+		{
+			this.eventType = type;
+			this.handlerFunction = handler;
+			this.useCapture = useCapture;
+			this.priority = priority;
+			this.useWeekRef = useWeekReferance;
+		}
+
+	}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 18987
Author:   rfrishbe@adobe.com
Date:     2010-12-03T01:08:34.503999Z

Log Message:
-----------
PARB changes for sizeElement/positionElement.  MobileSkin and MobileItemRenderer's methods have been renamed: resizeElement() -> setElementSize(), positionElement() -> setElementPosition().

Also, cleaning up text reflow for TextAreaSkin

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
@@ -253,7 +253,7 @@
         var contentGroupsHeight:Number = unscaledHeight - (layoutBorderHeight * 2);

         // FXG uses scale-9, drop shadow is drawn outside the bounds
-        resizeElement(border, unscaledWidth, unscaledHeight + layoutShadowHeight);
+        setElementSize(border, unscaledWidth, unscaledHeight + layoutShadowHeight);

         // position groups, overlap of navigation and action groups is allowed
         // when overlap occurs, titleDisplay/titleGroup is not visible