Transferred from the Adobe Open Source Subversion Repository

Revision: 8399
Author:   dloverin@adobe.com
Date:     2009-07-06T21:15:40.550317Z

Log Message:
-----------
Update WindowedSystemManager to use ChildManager.

WindowedSystemManager:
Add new childManager property. Implement rawChildren_* methods using the new childManager.

ChildManager:
Change systemManager from type SystemManager to ISystemManager since WindowedSystemManager is not of type SystemManager. Use the array access operator to access the methods/properties that are in SystemManager but not in ISystemManager.

QE Notes: none.
Doc Notes: none.
Bugs: SDK-21673
Reviewer: Alex
tests: checkintests, components/Alert

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
@@ -15,7 +15,6 @@
 import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
 import flash.display.InteractiveObject;
-import flash.events.Event;
 import flash.events.IEventDispatcher;

 import mx.core.IFlexDisplayObject;
@@ -30,6 +29,7 @@
 import mx.managers.ISystemManagerChildManager;
 import mx.managers.SystemManager;
 import mx.messaging.config.LoaderConfig;
+import mx.preloaders.Preloader;
 import mx.styles.ISimpleStyleClient;
 import mx.styles.IStyleClient;

@@ -59,11 +59,11 @@
 	{
 		super();

-		if (systemManager is SystemManager)
-		{
-			SystemManager(systemManager).childManager = this;
-			this.systemManager = SystemManager(systemManager);
-			this.systemManager.registerImplementation("mx.managers::ISystemManagerChildManager", this);
+		if (systemManager is ISystemManager)
+		{
+            systemManager["childManager"] = this;
+            this.systemManager = ISystemManager(systemManager);
+            this.systemManager.registerImplementation("mx.managers::ISystemManagerChildManager", this);
 		}
 	}

@@ -76,7 +76,7 @@
 	/**
 	 *  @private
 	 */
-	private var systemManager:SystemManager;
+	private var systemManager:ISystemManager;

 	//--------------------------------------------------------------------------
@@ -94,12 +94,12 @@

 		// non-top level system managers may not be able to reference their parent if
 		// they are a proxy for popups.
-		if (!systemManager.topLevel && systemManager.parent)
+		if (!topLevel && DisplayObject(systemManager).parent)
 		{
 			// non-topLevel SystemManagers are buried by Flash.display.Loader and
 			// other non-framework layers so we have to figure out the nestlevel
 			// by searching up the parent chain.
-			var obj:DisplayObjectContainer = systemManager.parent.parent;
+			var obj:DisplayObjectContainer = DisplayObject(systemManager).parent.parent;
 			while (obj)
 			{
 				if (obj is ILayoutManagerClient)
@@ -110,7 +110,7 @@
 				obj = obj.parent;
 			}
 		}
-		systemManager.nestLevel = newNestLevel;
+		nestLevel = newNestLevel;

 		if (child is IUIComponent)
 			IUIComponent(child).systemManager = systemManager;
@@ -130,14 +130,14 @@
 		// The nestLevel setter will recursively set it on any
 		// descendants of the child that exist.
 		if (child is ILayoutManagerClient)
-        	ILayoutManagerClient(child).nestLevel = systemManager.nestLevel + 1;
+        	ILayoutManagerClient(child).nestLevel = nestLevel + 1;

 		if (child is InteractiveObject)
-			if (systemManager.doubleClickEnabled)
+			if (InteractiveObject(systemManager).doubleClickEnabled)
 				InteractiveObject(child).doubleClickEnabled = true;

 		if (child is IUIComponent)
-			IUIComponent(child).parentChanged(systemManager);
+			IUIComponent(child).parentChanged(DisplayObjectContainer(systemManager));

 		// Sets up the inheritingStyles and nonInheritingStyles objects
 		// and their proto chains so that getStyle() works.
@@ -217,7 +217,7 @@
 			if (child)
 				child.regenerateStyleCache(recursive);

-			if (systemManager.isTopLevelWindow(DisplayObject(child)))
+			if (isTopLevelWindow(DisplayObject(child)))
 				foundTopLevelWindow = true;

 			// Refetch numChildren because notifyStyleChangedInChildren()
@@ -229,8 +229,8 @@
 		// to the child list until late into the startup sequence.
 		// Make sure we call regenerateStyleCache()
 		// on the top level window even if it isn't a child yet.
-		if (!foundTopLevelWindow && systemManager.topLevelWindow is IStyleClient)
-			IStyleClient(systemManager.topLevelWindow).regenerateStyleCache(recursive);
+		if (!foundTopLevelWindow && topLevelWindow is IStyleClient)
+			IStyleClient(topLevelWindow).regenerateStyleCache(recursive);
 	}

 	/**
@@ -257,7 +257,7 @@
 				child.notifyStyleChangeInChildren(styleProp, recursive);
 			}

-			if (systemManager.isTopLevelWindow(DisplayObject(child)))
+			if (isTopLevelWindow(DisplayObject(child)))
 				foundTopLevelWindow = true;

 			// Refetch numChildren because notifyStyleChangedInChildren()
@@ -269,10 +269,10 @@
 		// to the child list until late into the startup sequence.
 		// Make sure we call notifyStyleChangeInChildren()
 		// on the top level window even if it isn't a child yet.
-		if (!foundTopLevelWindow && systemManager.topLevelWindow is IStyleClient)
-		{
-			IStyleClient(systemManager.topLevelWindow).styleChanged(styleProp);
-			IStyleClient(systemManager.topLevelWindow).notifyStyleChangeInChildren(
+		if (!foundTopLevelWindow && topLevelWindow is IStyleClient)
+		{
+			IStyleClient(topLevelWindow).styleChanged(styleProp);
+			IStyleClient(topLevelWindow).notifyStyleChangeInChildren(
 				styleProp, recursive);
 		}
 	}
@@ -286,8 +286,8 @@
 	{
 		var app:IUIComponent;
 		// Create a new instance of the toplevel class
-        systemManager.document = app = systemManager.topLevelWindow = IUIComponent(systemManager.create());
-
+        systemManager.document = app = topLevelWindow = IUIComponent(systemManager.create());
+
 		if (systemManager.document)
 		{
 			// Add listener for the creationComplete event
@@ -312,8 +312,8 @@
 			// Pass the application instance to the preloader.
 			// Note: preloader can be null when the user chooses
 			// Control > Play in the standalone player.
-			if (systemManager.preloader)
-				systemManager.preloader.registerApplication(app);
+			if (preloader)
+				preloader.registerApplication(app);

 			// The Application doesn't get added to the SystemManager in the standard way.
 			// We want to recursively create the entire application subtree and process
@@ -336,9 +336,9 @@
 	 */
 	private function appCreationCompleteHandler(event:FlexEvent):void
 	{
-		if (!systemManager.topLevel && systemManager.parent)
-		{
-			var obj:DisplayObjectContainer = systemManager.parent.parent;
+		if (!topLevel && DisplayObject(systemManager).parent)
+		{
+			var obj:DisplayObjectContainer = DisplayObject(systemManager).parent.parent;
 			while (obj)
 			{
 				if (obj is IInvalidating)
@@ -352,6 +352,60 @@
 		}
  	}

+    //--------------------------------------------------------------------------
+    //
+    //  Methods to implement SystemManager methods
+    //
+    //  systemManager may be a SystemManager or WindowedSystemManager
+    //  so we use the array access operertor to get at the methods/properties.
+    //
+    //--------------------------------------------------------------------------
+
+    private function isTopLevelWindow(object:DisplayObject):Boolean
+    {
+        return systemManager["isTopLevelWindow"](object);
+    }
+
+
+    private function get topLevel():Boolean
+    {
+        return systemManager["topLevel"];
+    }
+
+    private function set topLevel(topLevel:Boolean):void
+    {
+        systemManager["topLevel"] = topLevel;
+    }
+
+    private function get topLevelWindow():IUIComponent
+    {
+        return systemManager["topLevelWindow"];
+    }
+
+    private function set topLevelWindow(window:IUIComponent):void
+    {
+        systemManager["topLevelWindow"] = window;
+    }
+
+    private function get nestLevel():int
+    {
+        return systemManager["nestLevel"];
+    }
+
+    private function set nestLevel(level:int):void
+    {
+        systemManager["nestLevel"] = level;
+    }
+
+    private function get preloader():Preloader
+    {
+        return systemManager["preloader"];
+    }
+
+    private function set preloader(preloader:Preloader):void
+    {
+        systemManager["preloader"] = preloader;
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17033
Author:   chiedozi@adobe.com
Date:     2010-07-23T07:27:59.569540Z

Log Message:
-----------
Fixed a RTE that occurred when a slide transition was run when no ActionBar was visible
Fixed a RTE that occurred when the slide transition failed to generated valid bitmaps
Fixed a bug in ActionBarSkin and ViewNavigatorSkin where content groups could have negative sizes

QE notes:
Doc notes:
Bugs: SDK-26996, SDK-26997
Reviewer:
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<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/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as
@@ -39,7 +39,8 @@
         override protected function createChildren():void
         {
             contentGroup = new Group();
-
+            contentGroup.minHeight = 0;
+
             tabBar = new ButtonBar();
             tabBar.requireSelection = true;
             tabBar.height = 40;
@@ -82,8 +83,13 @@

 			if (contentGroup.includeInLayout)
 			{
+				var contentGroupHeight:Number = bottom - top;
+
+				if (contentGroupHeight < contentGroup.minHeight)
+					contentGroupHeight = contentGroup.minHeight;
+
 	            contentGroup.setLayoutBoundsPosition(0, top);
-	            contentGroup.setLayoutBoundsSize(unscaledWidth, bottom - top);
+	            contentGroup.setLayoutBoundsSize(unscaledWidth, contentGroupHeight);
 			}
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridSortField.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridSortField.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////

 package spark.components.gridClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17274
Author:   rfrishbe@adobe.com
Date:     2010-08-11T18:08:34.293087Z

Log Message:
-----------
A lot of changes, most involving touch scrolling.

UIComponent: remove keepControlOfMouseDown, which was checked in accidentally

FocusManager: move a check for event.isPreventDefauled() from the mouseDown handler to the mouseFocusHandler.  It was probably accidentally added in the mouseDown handler in the first place since mousedown events were not prevent defaultable (they are now, though)

SystemManager: Make MouseDown events prevent defaultable.  We do this for mouseWheel handlers already.  This allows our components to communicate a little with regards to who's handling this event.  Currently only ButtonBase and ItemRenderer check for this.

Split up IconItemRenderer in to MobileItemRenderer and MobileIconItemRenderer.  MobileItemRenderer is still based on UIComponent and is in charge of drawing the background and has a single text component.  MobileIconItemRenderer will be a more complex item renderer that developers can use. I'm also moving both of these classes in to the mobilecomponents project and mapping them in the spark manifest so that developers can now use them.

ButtonBase and List: Clean up code around how we deal with touch scrolling and adding a delay to button.  We also make sure that if the Button was clicked quickly before the delay fires that we show the button in the down state for some minimum amount of time.

Scroller: clean up a lot of the touch scrolling code

QE notes: None
Doc notes: None
Bugs: SDK-27263, SDK-27173, SDK-27157, SDK-27016
Reviewer: Jason SJ for MobileItemRenderer/MobileIconItemRenderer, Hans for the rest (he's still working through it though)
Tests run: checkintests, all mustella (some mustella failed for me locally but also in a clean sandbox)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata</path>
<path kind="file" action="A">/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/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TouchScrollingEasing.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/IconItemRenderer.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/IconItemRenderer.as" copyfrom-rev="17121" action="A">/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/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/PaddingStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/GapStyles.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
@@ -294,6 +294,10 @@
      *  Placeholder for mixin by ButtonAccImpl.
      */
     mx_internal static var createAccessibilityImplementation:Function;
+
+    // FIXME (rfrishbe): These should be styles
+    private static const DELAY_TO_SHOW_SELECTION_IN_TOUCH_MODE:int = 150;
+    private static const DELAY_TO_REMOVE_SELECTION_IN_TOUCH_MODE:int = 100;

     //--------------------------------------------------------------------------
     //
@@ -358,6 +362,22 @@
      *  Timer for doing auto-repeat.
      */
     private var autoRepeatTimer:Timer;
+
+    /**
+     *  @private
+     *  Timer for putting the button in the down state on a delay
+     *  timer because of touch input.
+     */
+    private var mouseDownSelectTimer:Timer;
+
+    /**
+     *  @private
+     *  Timer for putting the button in the up state.  This makes sure
+     *  even when we have a delay to select an item and someone mouses up
+     *  before that delay, the user still gets some visual feedback that
+     *  the button was actually selected.
+     */
+    private var mouseUpDeselectTimer:Timer;

     //--------------------------------------------------------------------------
     //
@@ -828,15 +848,30 @@
     {
         if (!enabled)
             return "disabled";
-
+
         if (isDown())
             return "down";
-
+
         if (hovered || mouseCaptured)
             return "over";
-
+
         return "up";
     }
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleName:String):void
+    {
+        var allStyles:Boolean = styleName == null || styleName == "styleName";
+
+        super.styleChanged(styleName);
+
+        if (allStyles || styleName == "inputMode")
+        {
+            addHandlers();
+        }
+    }

     //--------------------------------------------------------------------------
     //
@@ -849,12 +884,49 @@
      */
     protected function addHandlers():void
     {
-        addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler);
-        addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler);
+        addOrRemoveRollOverRollOutHandlers();
         addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler);
         addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler);
         addEventListener(MouseEvent.CLICK, mouseEventHandler);
-        addEventListener(TouchScrollEvent.TOUCH_SCROLL_STARTING, touchScrollDragStart);
+        addEventListener(TouchScrollEvent.TOUCH_SCROLL_START, touchScrollStartHandler);
+    }
+
+    /**
+     *  @private
+     *  Keeps track of whether rollover/rollout events were added
+     *
+     *  We need to be careful about calling add/remove event listener
+     *  in ItemRenderer because of the reference counting going on in
+     *  GroupBase.  We don't have the same issues here in ButtonBase, but
+     *  it seems safer and more consistent to follow the same pattern.
+     */
+    private var rolloverEventsAdded:Boolean = false;
+
+    /**
+     *  @private
+     *  Adds or removes handlers for rollover/rollout depending on
+     *  if inputMode == mouse or not.
+     */
+    private function addOrRemoveRollOverRollOutHandlers():void
+    {
+        if (getStyle("inputMode") == "mouse")
+        {
+            if (!rolloverEventsAdded)
+            {
+                rolloverEventsAdded = true;
+                addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler);
+                addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler);
+            }
+        }
+        else
+        {
+            if (rolloverEventsAdded)
+            {
+                rolloverEventsAdded = false;
+                removeEventListener(MouseEvent.ROLL_OVER, mouseEventHandler);
+                removeEventListener(MouseEvent.ROLL_OUT, mouseEventHandler);
+            }
+        }
     }

     /**
@@ -901,8 +973,13 @@
         if (keyboardPressed)
             return true;

-        if (mouseCaptured && (hovered || stickyHighlighting))
-            return true;
+        if (mouseCaptured)
+        {
+            // if in touch mode, we never go in to the hovered state
+            if (getStyle("inputMode") == "touch" || hovered || stickyHighlighting)
+                return true;
+        }
+
         return false;
     }

@@ -936,15 +1013,15 @@
             return;

         if (needsTimer)
-            startTimer();
+            startAutoRepeatTimer();
         else
-            stopTimer();
-    }
-
-    /**
-     *  @private
-     */
-    private function startTimer():void
+            stopAutoRepeatTimer();
+    }
+
+    /**
+     *  @private
+     */
+    private function startAutoRepeatTimer():void
     {
         autoRepeatTimer = new Timer(1);
         autoRepeatTimer.delay = getStyle("repeatDelay");
@@ -955,12 +1032,59 @@
     /**
      *  @private
      */
-    private function stopTimer():void
+    private function stopAutoRepeatTimer():void
     {
         autoRepeatTimer.stop();
         autoRepeatTimer = null;
     }
-
+
+    /**
+     *  @private
+     *  Starts timer to select the button
+     */
+    private function startSelectButtonAfterDelayTimer():void
+    {
+        mouseDownSelectTimer = new Timer(DELAY_TO_SHOW_SELECTION_IN_TOUCH_MODE, 1);
+        mouseDownSelectTimer.addEventListener(TimerEvent.TIMER_COMPLETE, mouseDownSelectTimer_timerCompleteHandler);
+        mouseDownSelectTimer.start();
+    }
+
+    /**
+     *  @private
+     */
+    private function stopSelectButtonAfterDelayTimer():void
+    {
+        if (mouseDownSelectTimer)
+        {
+            mouseDownSelectTimer.stop();
+            mouseDownSelectTimer = null;
+        }
+    }
+
+    /**
+     *  @private
+     *  Starts timer to deselect the button if the mouseup happened too quickly
+     *  after the mousedown so that no mousedown state was entered in to.
+     */
+    private function startDeselectButtonAfterDelayTimer():void
+    {
+        mouseUpDeselectTimer = new Timer(DELAY_TO_REMOVE_SELECTION_IN_TOUCH_MODE, 1);
+        mouseUpDeselectTimer.addEventListener(TimerEvent.TIMER_COMPLETE, mouseUpDeselectTimer_timerCompleteHandler);
+        mouseUpDeselectTimer.start();
+    }
+
+    /**
+     *  @private
+     */
+    private function stopDeselectButtonAfterDelayTimer():void
+    {
+        if (mouseUpDeselectTimer)
+        {
+            mouseUpDeselectTimer.stop();
+            mouseUpDeselectTimer = null;
+        }
+    }
+
     /**
      *  This method is called when handling a MouseEvent.MOUSE_UP event
      *  when the user clicks on the button. It is only called when the button
@@ -1036,17 +1160,18 @@
     /**
      *  @private
      */
-    protected function touchScrollDragStart(event:TouchScrollEvent):void
-    {
+    private function touchScrollStartHandler(event:TouchScrollEvent):void
+    {
+        // if we have a timer going on, let's stop it to make sure we don't
+        // select the button later
+        stopSelectButtonAfterDelayTimer();
+
         // cancel the rollover/clickdown on and go back to a normal state
         hovered = false;
-
-        if (mouseCaptured)
-        {
-            // FIXME (rfrishbe): do we call buttonReleased if we didn't actually get a mouseUp event?
-            buttonReleased();
-            mouseCaptured = false;
-        }
+        mouseCaptured = false;
+
+        // no need to call buttonReleased() as that's only called for a
+        // successfull down and up user gesture
     }

     /**
@@ -1076,25 +1201,45 @@
                 if (mouseEvent.buttonDown && !mouseCaptured)
                     return;
                 hovered = true;
-//                event.preventDefault();
                 break;
             }

             case MouseEvent.ROLL_OUT:
             {
                 hovered = false;
-//                event.preventDefault();
                 break;
             }

             case MouseEvent.MOUSE_DOWN:
             {
+                // since mouseDowns are cancellable, let's check to see
+                // if anyone's handled it already
+                if (event.isDefaultPrevented())
+                    break;
+
+                // if we were going to unhighlight ourselves, don't do it as we
+                // are just going to highlight again
+                stopDeselectButtonAfterDelayTimer();
+
                 // When the button is down we need to listen for mouse events outside the button so that
                 // we update the state appropriately on mouse up.  Whenever mouseCaptured changes to false,
                 // it will take care to remove those handlers.
                 addSystemMouseHandlers();
-                mouseCaptured = true;
-//                event.preventDefault();
+
+                // if we're in touchMode, let's delay our selection until later
+                // otherwise, when touch scrolling, the button might flicker
+                if (getStyle("inputMode") == "touch")
+                {
+                    startSelectButtonAfterDelayTimer();
+                }
+                else
+                {
+                    mouseCaptured = true;
+                }
+
+                // We can cancel mouseDown's thanks to re-dispatching the event in SystemManager.
+                // This prevents other people (like ItemRenderers) from handling this mouseDown as well
+                event.preventDefault();
                 break;
             }

@@ -1104,13 +1249,30 @@
                 // was captured before.
                 if (event.target == this)
                 {
-                    hovered = true;
+                    // only set hovered if we are in mouse inputMode
+                    hovered = (getStyle("inputMode") == "mouse");

                     if (mouseCaptured)
                     {
                         buttonReleased();
                         mouseCaptured = false;
-//                        event.preventDefault();
+                    }
+
+                    if (mouseDownSelectTimer && mouseDownSelectTimer.running)
+                    {
+                        // We never even flashed the down state for this click operation.
+                        // There are two possibilities for being here:
+                        //    1) mouseCaptured wasn't set to true (meaning this is the first click)
+                        //    2) mouseCaptured was true (meaning a click operation hadn't finished
+                        //       and we find ourselves in here again--perhaps it was a doublet tap).
+                        // In either case, let's make sure that down state shows up for a little bit
+                        // before going back to the up state.
+
+                        // stop the original timer, put it in mouse down state, then start a new
+                        // timer to undo the mouse down state
+                        stopSelectButtonAfterDelayTimer();
+                        mouseCaptured = true;
+                        startDeselectButtonAfterDelayTimer();
                     }
                 }
                 break;
@@ -1126,7 +1288,6 @@
                     event.stopImmediatePropagation();
                 else
                     clickHandler(MouseEvent(event));
-//                event.preventDefault();
                 return;
             }
         }
@@ -1187,6 +1348,22 @@
     /**
      *  @private
      */
+    private function mouseDownSelectTimer_timerCompleteHandler(event:TimerEvent):void
+    {
+        mouseCaptured = true;
+    }
+
+    /**
+     *  @private
+     */
+    private function mouseUpDeselectTimer_timerCompleteHandler(event:TimerEvent):void
+    {
+        mouseCaptured = false;
+    }
+
+    /**
+     *  @private
+     */
     private function labelDisplay_isTruncatedChangedHandler(event:Event):void
     {
         if (_explicitToolTip)


Flash, FileInput: Reset the list of selected files before each  selection.

--- src/flash/src/com/FileInput.as
+++ src/flash/src/com/FileInput.as
@@ -41,9 +41,7 @@
 				return;
 			}
 			Moxie.stageOccupied = true; // occupies runtime's stage
-
-			_files = [];
-
+
 			_options = Utils.extend({
 				name: 'Filedata',
 				multiple: false,
@@ -145,6 +143,8 @@
 						fileRefList = _picker.fileList;
 					}

+					_files = [];
+
 					for (var i:uint = 0; i < fileRefList.length; i++) {
 						bb = new BlobBuilder;
 						bb.append(fileRefList[i]);


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/mx/src/mx/styles/metadata/FocusStyles.as
+++ frameworks/projects/mx/src/mx/styles/metadata/FocusStyles.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  Specifies the alpha transparency value of the focus skin.
+ *
+ *  @default 0.4
+ */
+[Style(name="focusAlpha", type="Number", inherit="no")]
+
+/**
+ *  Specifies which corners of the focus rectangle should be rounded.
+ *  This value is a space-separated String that can contain any
+ *  combination of "tl", "tr", "bl"
+ *  and "br".
+ *  For example, to specify that the right side corners should be rounded,
+ *  but the left side corners should be square, use "tr br".
+ *  The cornerRadius style property specifies
+ *  the radius of the rounded corners.
+ *  The default value depends on the component class; if not overridden for
+ *  the class, default value is "tl tr bl br".
+ */
+[Style(name="focusRoundedCorners", type="String", inherit="no")]


The x/y position in the constructor was not being applied.

--- net/flashpunk/graphics/Text.as
+++ net/flashpunk/graphics/Text.as
@@ -43,6 +43,8 @@
 			_sourceRect = _source.rect;
 			super(_source);
 			update();
+			this.x = x;
+			this.y = y;
 		}

 		/** @private Updates the drawing buffer. */


update Bridge addItem, addTrans, trackTrans return values

--- src/com/google/analytics/v4/Bridge.as
+++ src/com/google/analytics/v4/Bridge.as
@@ -25,7 +25,7 @@
     import com.google.analytics.core.Utils;
     import com.google.analytics.debug.DebugConfiguration;
     import com.google.analytics.debug.VisualDebugMode;
-    import com.google.analytics.external.JavascriptProxy;
+    import com.google.analytics.external.JavascriptProxy;

     /**
      * This api use a Javascript bridge to fill the GATracker properties.
@@ -687,9 +687,8 @@
          * @param city City to associate with transaction.
          * @param state State to associate with transaction.
          * @param country Country to associate with transaction.
-         * @return The tranaction object that was modified.
-         */
-        public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):Object
+         */
+        public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void
         {
             _debug.info( "addTrans( " + [orderId,affiliation,total,tax,shipping,city,state,country].join( ", " ) + " )" );
             /* TODO:
@@ -697,7 +696,6 @@
             */
             _call( "_addTrans", orderId, affiliation, total, tax, shipping, city, state, country );

-            return null;
         }

         /**


Removed initial stability in delay levels

--- src/Components/Port.as
+++ src/Components/Port.as
@@ -17,7 +17,7 @@

 		private var cachedValue:Value;
 		private var lastValue:Value;
-		private var lastChanged:int = -1;
+		private var lastChanged:int = 0;

 		public function Port(IsOutput:Boolean, Parent:Module, Connections:Vector.<Carrier> = null) {
 			isOutput = IsOutput;
@@ -85,7 +85,7 @@

 		protected function log(...args):void {
-			if (U.DEBUG && U.DEBUG_PRINT_CONNECTIONS)
+			if (U.DEBUG_PRINT_CONNECTIONS)
 				C.log(args);
 		}

@@ -141,7 +141,7 @@

 		public function lastMinuteInit():void {
 			lastValue = findValue();
-			lastChanged = -1;
+			lastChanged = 0;
 		}

 		public function cacheValue():void {
@@ -169,7 +169,7 @@

 		public function clearDelay():void {
 			lastValue = null;
-			lastChanged = -1;
+			lastChanged = 0;
 		}


Removed regfile configs

Removed regfile configs

--- src/Modules/Regfile.as
+++ src/Modules/Regfile.as
@@ -24,7 +24,7 @@
 			outputs[0].name = "Out Reg 1";
 			outputs[1].name = "Out Reg 2";

-			configuration = new Configuration(new Range(4, 32, Width));
+			//configuration = new Configuration(new Range(4, 32, Width));
 			width = Width;
 			configurableInPlace = false;
 			delay = Math.ceil(Math.log(width) / Math.log(2)) * 2;


BasicStyle.NORMAL_MULTIPLIER is not handled in SkinnedNormal anymore

--- src/aerys/minko/render/shader/node/skinning/SkinnedNormal.as
+++ src/aerys/minko/render/shader/node/skinning/SkinnedNormal.as
@@ -41,7 +41,7 @@
 					throw new Error('Unknown SkinningMethod.');
 			}*/

-			_node = new Multiply(normal, new StyleParameter(1, BasicStyle.NORMAL_MULTIPLIER));
+			_node = normal;
 		}
 	}
 }


[as] TextDataEntry publish string has changed  to published. SDK 1.4.7-jp

--- as/src/com/mobage/air/social/jp/TextdataEntry.as
+++ as/src/com/mobage/air/social/jp/TextdataEntry.as
@@ -32,7 +32,7 @@
         public var ownerId   :String;
         public var data      :String;
         public var status    :int;
-        public var publish   :String;
+        public var published   :String;
         public var updated   :String;

         public function TextdataEntry(map:Object) {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8627
Author:   jszeto@adobe.com
Date:     2009-07-16T18:40:07.408921Z

Log Message:
-----------
Adding copyright headers to filter classes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/GlowFilter.as
+++ frameworks/projects/spark/src/spark/filters/GlowFilter.as
@@ -1,3 +1,14 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
 package spark.filters
 {
 import flash.filters.BitmapFilter;


Transferred from the Adobe Open Source Subversion Repository

Revision: 11629
Author:   egeorgie@adobe.com
Date:     2009-11-10T22:58:40.349547Z

Log Message:
-----------
Fix http://bugs.adobe.com/jira/browse/SDK-23728 List with requestedColumnCount=2 and empty dataProvider causes Flash player timeout

Problem: when there are no elements in TileLayout, but virtualization is used, the column width and row height were left as NaN, therefore NaN values propagated into the measured and actual sizes during the layout pass.

QE notes: Add a test case for this bug.
Doc notes: None
Bugs: None
Reviewer: Hans
Tests run: checkintests, mustella (TileLayout)
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as

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

--- frameworks/projects/spark/src/spark/layouts/TileLayout.as
+++ frameworks/projects/spark/src/spark/layouts/TileLayout.as
@@ -1090,6 +1090,13 @@
             for (var index:int = visibleStartIndex; index <= visibleEndIndex; index++)
                 updateVirtualTileSize(target.getVirtualElementAt(index));
         }
+
+		// Make sure that we always have non-NaN values in the cache, even
+		// when there are no elements.
+		if (isNaN(_tileWidthCached))
+			_tileWidthCached = 0;
+		if (isNaN(_tileHeightCached))
+			_tileHeightCached = 0;

         if (isNaN(_columnWidth))
             _columnWidth = _tileWidthCached;


Transferred from the Adobe Open Source Subversion Repository

Revision: 6266
Author:   egeorgie@adobe.com
Date:     2009-04-24T23:09:01.304621Z

Log Message:
-----------
Layout PARB changes

Major (most probably will require updates):
- LayoutBase.getScrollPositionDelta() -> getScrollPositionDeltaToElement()
- HorizontalLayout, VerticalLayout method inView() -> fractionOfElementInView()
- LayoutElementFactory is deleted, interface ILayoutElement is implemented by UIComponent, GraphicElement, VisualSprite, no need for casting in those cases, cast to ILayoutElement in case of type Object.
- TileLayout.elementHorizontalAlign -> horizontalAlign
- TileLayout.elementVerticalAlign -> verticalAlign
- TileJustifyRows -> RowAlign
- TileJustifyColumsn > ColumnAlign
- TileLayout.justifyRows -> rowAlign
- TileLayout.justifyColumns -> columnAling
- TileJustifyRows.NONE, "none" -> TOP, "top"
- TileJustifyRows.GAP_SIZE, "gapSize" -> JUSTIFY_USING_GAP, "justifyUsingGap"
- TileJustifyRows.ROW_SIZE, "rowSize" -> JUSTIFY_USING_HEIGHT, "justifyUsingHeight"
- TileJustifyColumns.NONE, "none" -> LEFT, "left"
- TileJustifyColumns.GAP_SIZE, "gapSize" -> JUSTIFY_USING_GAP, "justifyUsingGap"
- TileJustifyColumns.COLUMN_SIZE, "columnSize" -> JUSTIFY_USING_WIDTH, "justifyUsingWidth"
- TileLayout.set rowCount -> set requestedRowCount
- add TileLayout.get requestedRowCount
- TileLayout.set columnCount -> set requestedColumnCount
- add TileLayout.get requestedColumnCount

Minor (may require updates, but not that probable):
- get baselinePosition() is moved from IVisualElement to ILayoutElement.
- setLayoutBoundsSize() does not have default NaN values for width & height (but still logic is the same).
- name of ILayoutInterface methods' parameter "postTransform" is renamed to "postLayoutTransform".
- name of ILayoutInterface methods' parameter "triggerLayout" is renamed to "invalidateLayout".
- LayoutBase methods invalidateTargetSizeAndDisplayList() and invalidateTargetSize() are removed.
- LayoutBase method getTargetScrollRect() is renamed to getScrollRect().

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Hans, Ryan
tests: checkintests, mustella (gumbo/layout, gumbo/group, gumbo/dataGroup)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</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/primitives/supportClasses/GraphicElement.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/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/RowAlign.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileJustifyRows.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/HorizontalLayout.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/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/ColumnAlign.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBarHorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Rect.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileJustifyColumns.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/TextBaseClass.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.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/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollerLayout.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Ellipse.as
+++ frameworks/projects/spark/src/spark/primitives/Ellipse.as
@@ -87,9 +87,9 @@
      */
     override protected function transformWidthForLayout(width:Number,
                                                         height:Number,
-                                                        postTransform:Boolean = true):Number
-    {
-        if (postTransform)
+                                                        postLayoutTransform:Boolean = true):Number
+    {
+        if (postLayoutTransform)
         {
             var m:Matrix = computeMatrix();
             if (m)
@@ -105,9 +105,9 @@
      */
     override protected function transformHeightForLayout(width:Number,
                                                          height:Number,
-                                                         postTransform:Boolean = true):Number
-    {
-        if (postTransform)
+                                                         postLayoutTransform:Boolean = true):Number
+    {
+        if (postLayoutTransform)
         {
             var m:Matrix = computeMatrix();
             if (m)
@@ -126,10 +126,10 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    override public function getBoundsXAtSize(width:Number, height:Number, postTransform:Boolean = true):Number
-    {
-        var strokeExtents:Point = getStrokeExtents(postTransform);
-        var m:Matrix = postTransform ? computeMatrix() : null;
+    override public function getBoundsXAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
+    {
+        var strokeExtents:Point = getStrokeExtents(postLayoutTransform);
+        var m:Matrix = postLayoutTransform ? computeMatrix() : null;
         if (!m)
             return strokeExtents.x * -0.5 + this.x;

@@ -159,10 +159,10 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    override public function getBoundsYAtSize(width:Number, height:Number, postTransform:Boolean = true):Number
-    {
-        var strokeExtents:Point = getStrokeExtents(postTransform);
-        var m:Matrix = postTransform ? computeMatrix() : null;
+    override public function getBoundsYAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
+    {
+        var strokeExtents:Point = getStrokeExtents(postLayoutTransform);
+        var m:Matrix = postLayoutTransform ? computeMatrix() : null;
         if (!m)
             return strokeExtents.y * -0.5 + this.y;

@@ -187,11 +187,11 @@
     /**
      *  @private
      */
-    override public function getLayoutBoundsX(postTransform:Boolean = true):Number
-    {
-        var stroke:Number = -getStrokeExtents(postTransform).x * 0.5;
+    override public function getLayoutBoundsX(postLayoutTransform:Boolean = true):Number
+    {
+        var stroke:Number = -getStrokeExtents(postLayoutTransform).x * 0.5;

-        if (postTransform)
+        if (postLayoutTransform)
         {
             var m:Matrix = computeMatrix();
             if (m)
@@ -204,11 +204,11 @@
     /**
      *  @private
      */
-    override public function getLayoutBoundsY(postTransform:Boolean = true):Number
-    {
-        var stroke:Number = - getStrokeExtents(postTransform).y * 0.5;
-
-        if (postTransform)
+    override public function getLayoutBoundsY(postLayoutTransform:Boolean = true):Number
+    {
+        var stroke:Number = - getStrokeExtents(postLayoutTransform).y * 0.5;
+
+        if (postLayoutTransform)
         {
             var m:Matrix = computeMatrix();
             if (m)


Make fac_addr a local variable.

Make fac_addr a local variable.

--- swfcat.as
+++ swfcat.as
@@ -23,8 +23,6 @@
         // Socket to facilitator.
         private var s_f:Socket;

-        private var fac_addr:Object;
-
         public function puts(s:String):void
         {
             output_text.appendText(s + "\n");
@@ -49,7 +47,7 @@
         private function loaderinfo_complete(e:Event):void
         {
             var fac_spec:String;
-            var tor_spec:String;
+            var fac_addr:Object;

             puts("Parameters loaded.");
             fac_spec = this.loaderInfo.parameters["facilitator"];
@@ -64,11 +62,11 @@
                 return;
             }

-            main();
+            main(fac_addr);
         }

         /* The main logic begins here, after start-up issues are taken care of. */
-        private function main():void
+        private function main(fac_addr:Object):void
         {
             s_f = new Socket();


- created endless loop

 - created endless loop

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

--- src/reprise/controls/BitmapElement.as
+++ src/reprise/controls/BitmapElement.as
@@ -32,7 +32,7 @@
 		public function setSmoothing(enabled : Boolean) : void
 		{
 			m_smoothing = enabled;
-			if(m_image)
+			if (m_image)
 			{
 				setBitmapData(m_image.bitmapData);
 			}


fixed attach behaviour

fixed attach behaviour

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

--- src/reprise/external/ImageResource.as
+++ src/reprise/external/ImageResource.as
@@ -98,7 +98,13 @@
 				m_attachMode = true;
 	            try
 	            {
+					var pieces:Array = symbolId.split('.');
+					symbolId = pieces[0];
 	                var symbolClass : Class = getDefinitionByName(symbolId) as Class;
+					if (pieces.length > 1)
+					{
+						symbolClass = symbolClass[pieces[1]];
+					}
 					m_resource = new symbolClass() as DisplayObject;
 					m_httpStatus = new HTTPStatus(200, m_url);
 					onData(true);


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/ContextualClassFactory.as
+++ frameworks/projects/framework/src/mx/core/ContextualClassFactory.as
@@ -17,6 +17,11 @@
 /**
  *  A class factory that provides a system manager
  *  as a context of where the class should be created.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ContextualClassFactory extends ClassFactory
 {
@@ -36,6 +41,11 @@
 	 *
 	 *  @param systemManager The system manager context in which the object
 	 *  should be created.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function ContextualClassFactory(
 							generator:Class = null,
@@ -67,6 +77,11 @@
 	 *  an object in the context of the moduleFactory.

 	 *
 	 *  @default null
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public var moduleFactory:IFlexModuleFactory;

@@ -84,6 +99,11 @@
 	 *  of the IFactory interface.

 	 *
 	 *  @return The new instance that was created.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	override public function newInstance():*
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 6266
Author:   egeorgie@adobe.com
Date:     2009-04-24T23:09:01.304621Z

Log Message:
-----------
Layout PARB changes

Major (most probably will require updates):
- LayoutBase.getScrollPositionDelta() -> getScrollPositionDeltaToElement()
- HorizontalLayout, VerticalLayout method inView() -> fractionOfElementInView()
- LayoutElementFactory is deleted, interface ILayoutElement is implemented by UIComponent, GraphicElement, VisualSprite, no need for casting in those cases, cast to ILayoutElement in case of type Object.
- TileLayout.elementHorizontalAlign -> horizontalAlign
- TileLayout.elementVerticalAlign -> verticalAlign
- TileJustifyRows -> RowAlign
- TileJustifyColumsn > ColumnAlign
- TileLayout.justifyRows -> rowAlign
- TileLayout.justifyColumns -> columnAling
- TileJustifyRows.NONE, "none" -> TOP, "top"
- TileJustifyRows.GAP_SIZE, "gapSize" -> JUSTIFY_USING_GAP, "justifyUsingGap"
- TileJustifyRows.ROW_SIZE, "rowSize" -> JUSTIFY_USING_HEIGHT, "justifyUsingHeight"
- TileJustifyColumns.NONE, "none" -> LEFT, "left"
- TileJustifyColumns.GAP_SIZE, "gapSize" -> JUSTIFY_USING_GAP, "justifyUsingGap"
- TileJustifyColumns.COLUMN_SIZE, "columnSize" -> JUSTIFY_USING_WIDTH, "justifyUsingWidth"
- TileLayout.set rowCount -> set requestedRowCount
- add TileLayout.get requestedRowCount
- TileLayout.set columnCount -> set requestedColumnCount
- add TileLayout.get requestedColumnCount

Minor (may require updates, but not that probable):
- get baselinePosition() is moved from IVisualElement to ILayoutElement.
- setLayoutBoundsSize() does not have default NaN values for width & height (but still logic is the same).
- name of ILayoutInterface methods' parameter "postTransform" is renamed to "postLayoutTransform".
- name of ILayoutInterface methods' parameter "triggerLayout" is renamed to "invalidateLayout".
- LayoutBase methods invalidateTargetSizeAndDisplayList() and invalidateTargetSize() are removed.
- LayoutBase method getTargetScrollRect() is renamed to getScrollRect().

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Hans, Ryan
tests: checkintests, mustella (gumbo/layout, gumbo/group, gumbo/dataGroup)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</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/primitives/supportClasses/GraphicElement.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/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/RowAlign.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileJustifyRows.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/HorizontalLayout.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/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/ColumnAlign.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBarHorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Rect.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileJustifyColumns.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/TextBaseClass.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.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/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollerLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as
@@ -15,6 +15,7 @@
 [ExcludeClass]

 /**
+ *  @private
  *  Total "distance" for a Block is: sizesSum + (defaultCount * distanceVector.default).
  *
  *  This class is essentially a C-struct.   If it was possible to make it a static


Transferred from the Adobe Open Source Subversion Repository

Revision: 17330
Author:   chiedozi@adobe.com
Date:     2010-08-16T17:36:59.538425Z

Log Message:
-----------
Removed the sections functionality from ViewNavigator and refactored that logic into TabbedViewNavigator.  Updated dependent performance tests and components.
Introduced MobileApplicationBase and TabbedMobileApplication do support the tabbed use case for mobile.
Deleted SliderSkin from the framework.  All mobile skins now extend MobileSkin.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.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/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/ViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/PersistenceManager.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as" copyfrom-rev="17260" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ScriptRunner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ComponentCatalog.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedMobileApplicationSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewHistoryData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/IPersistenceManager.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/IViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SliderSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.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@1264696 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/managers/PersistenceManager.as
+++ frameworks/projects/mobilecomponents/src/spark/managers/PersistenceManager.as
@@ -1,84 +1,186 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// TODO (chiedozi): Should this be a singleton
 package spark.core.managers
 {
-    import flash.net.SharedObject;
+import flash.net.SharedObject;

-    public class PersistenceManager implements IPersistenceManager
+/**
+ *  The PersistenceManager class is a basic persistence manager that
+ *  is backed by a shared object.  When initialized, it will load a
+ *  shared object that matches its id.  If one is not found, one will
+ *  be created.
+ *
+ *
When storing values in the manager, it is important that all
+ *  values can be properly be written to a shared object.  Complex
+ *  objects that store classes or non-standard flash primitives will
+ *  need to implement flash.net.IExternalizable to work properly.
+ *  Saving incompatible objects will not cause an RTE, but will create
+ *  undefined behavior when read from disk.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ */
+public class PersistenceManager implements IPersistenceManager
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function PersistenceManager()
     {
-        private var so:SharedObject;
-        public var initialized:Boolean = false;
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Returns whether the persistence manager has been initialized.
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    private var initialized:Boolean = false;
+
+    /**
+     *  @private
+     *  The shared object used by the persistence manager.
+     */
+    private var so:SharedObject;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  enabled
+    //----------------------------------
+    private var _enabled:Boolean = true;
+
+    /**
+     *  @inheritDoc
+     */
+    public function get enabled():Boolean
+    {
+        return _enabled;
+    }
+    /**
+     * @private
+     */
+    public function set enabled(value:Boolean):void
+    {
+        _enabled = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  IPersistenceManager Methods
+    //
+    //--------------------------------------------------------------------------
+    /**
+     *  @inheritDoc
+     */
+    public function initialize():void
+    {
+        try
+        {
+            so = SharedObject.getLocal("FXAppCache");
+            initialized = (so != null);
+			enabled = (so != null);
+        }
+        catch (e:Error)
+        {
+            // TODO (chiedozi): Dispatch an error event for this.  Maybe a persistence_CREATE_FAIL
+            enabled = false;
+            initialized = false;
+        }
+    }
+
+    // TODO (chiedozi): Add a try/catch for all operations for custom RTE i throw
+    /**
+     *  @inheritDoc
+     */
+    public function setProperty(key:String, value:Object):void
+    {
+        if (!initialized)
+            initialize();

-        public function PersistenceManager()
+        // TODO (chiedozi): Don't call flush now
+        if (enabled)
         {
+            so.data[key] = value;
+            so.flush();
         }
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getProperty(key:String):Object
+    {
+        if (!initialized)
+            initialize();

+        if (enabled)
+            return so.data[key];

-        private var _enabled:Boolean = true;
+        return null;
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function clear():void
+    {
+        if (!initialized)
+            initialize();

-        public function get enabled():Boolean
-        {
-            return _enabled;
-        }
-
-        public function set enabled(value:Boolean):void
-        {
-            _enabled = value;
-        }
-
-        public function initialize(id:String = null):void
-        {
-            try
-            {
-                so = SharedObject.getLocal("FXAppCache");
-                initialized = true;
-				enabled = (so != null);
-            }
-            catch (e:Error)
-            {
-                // TODO (chiedozi): Should save errors to log
-                enabled = false;
-            }
-        }
-
-        public function setProperty(key:String, value:Object):void
-        {
-            if (!initialized)
-                initialize();
-
-            if (enabled)
-            {
-                so.data[key] = value;
-//                so.flush();
-            }
-        }
-
-        public function getProperty(key:String):Object
-        {
-            if (!initialized)
-                initialize();
-
-            if (enabled)
-                return so.data[key];
-
-            return null;
-        }
-
-        public function clear():void
-        {
-            if (!initialized)
-                initialize();
-
-			if (enabled)
-			{
-	            so.clear();
-	            so.flush();
-			}
-        }
-
-        public function flush():void
-        {
-			if (enabled)
-            	so.flush();
-        }
-
+		if (enabled)
+		{
+            so.clear();
+            so.flush();
+		}
     }
+
+    /**
+     *  @inheritDoc
+     */
+    public function flush():void
+    {
+		if (enabled)
+        	so.flush();
+    }
+}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 21213
Author:   jszeto@adobe.com
Date:     2011-05-06T03:16:29.337270Z

Log Message:
-----------
SoftKeyboard bug fixes

SDK-30236 - Pressing on the TextInput skin closes the softKeyboard
SDK-30356 - Tapping between TextInputs causes soft keyboard to disappear
SDK-30370 - SoftKeyboard is closed when tap into empty TextArea

When the softKeyboard is up, don't cancel the activating event. This causes the softKeyboard to close. Added fix to SkinnableTextBase.

SDK-30392 - SoftKeyboard closes when scrolling over a text component

When the softKeyboard is up, don't cancel the activating event if we start a scroll. Added fix to StyleableTextField.

QE notes: Verify on iOS and Android
Doc notes: none
Bugs: SDK-30236, SDK-30356, SDK-30370
Reviewer: Tom K
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -1387,7 +1387,14 @@
      */
     private function softKeyboardActivatingHandler(event:SoftKeyboardEvent):void
     {
-        event.preventDefault();
+        // Cancelling an ACTIVATING event will close the softKeyboard if it is
+        // currently active on iOS only. Add a check to only cancel the event
+        // if the softKeyboard is not active. Otherwise, the softKeyboard will
+        // close if you start a touch scroll from a text component.
+        var topLevelApp:Application = FlexGlobals.topLevelApplication as Application;
+
+        if (!(topLevelApp && topLevelApp.isSoftKeyboardActive))
+            event.preventDefault();
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 10640
Author:   clucier@adobe.com
Date:     2009-09-28T15:26:32.513982Z

Log Message:
-----------
Added emphasizedSkin Style metadata to mx Button.  Added symbolColor style metadata to MenuBar.  Excluded baseColor style from mx LinkButton.

QE notes: None
Doc notes: None
Bugs: SDK-22522, SDK-22257, SDK-22646
Reviewer: Glenn
Tests run: Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.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/Button.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Button.as
+++ frameworks/projects/mx/src/mx/controls/Button.as
@@ -313,6 +313,20 @@
  *  @productversion Flex 3
  */
 [Style(name="disabledSkin", type="Class", inherit="no")]
+
+/**
+ *  Name of the class to use as the skin for the button when the button
+ *  is emphasized (such as when serving as the default
+ *  button for a container).
+ *
+ *  @default "mx.skins.spark.DefaultButtonSkin"
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="emphasizedSkin", type="Class", inherit="no", states="up, over, down, disabled, selectedUp, selectedOver, selectedDown, selectedDisabled")]

 /**
  *  Name of the class to use as the skin for the background and border


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 21216
Author:   jszeto@adobe.com
Date:     2011-05-06T19:57:39.706584Z

Log Message:
-----------
SoftKeyboard deactivate fix

SDK-30352- On Playbook and Nexus One View is not resized when closing soft keyboard

Reverting changes from SDK-29973. The ACTIVATE event wasn't getting fired on a text component if we called requestSoftKeyboard and cancelled that event.

QE notes: Should be fixed on iOS, Android and QNX
Doc notes: none
Bugs: SDK-30352
Reviewer: Jason San Jose
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Application.as

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -1416,6 +1416,9 @@
             addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE,
                 softKeyboardActivateHandler, true,
                 EventPriority.DEFAULT, true);
+            addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE,
+                softKeyboardDeactivateHandler, true,
+                EventPriority.DEFAULT, true);
         }
     }

@@ -1712,10 +1715,6 @@
      */
     private function softKeyboardActivateHandler(event:SoftKeyboardEvent):void
     {
-        // Add a listener for the softKeyboard deactivate event to the event target
-        event.target.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE,
-                                      softKeyboardDeactivateHandler);
-
         if (this === FlexGlobals.topLevelApplication)
         {
             // Get the keyboard size
@@ -1751,9 +1750,6 @@
      */
     private function softKeyboardDeactivateHandler(event:SoftKeyboardEvent):void
     {
-        // Remove event listener
-        event.target.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, softKeyboardDeactivateHandler);
-
         if (this === FlexGlobals.topLevelApplication)
         {
             isSoftKeyboardActive = false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 21169
Author:   chiedozi@adobe.com
Date:     2011-04-29T17:24:48.144427Z

Log Message:
-----------
Force a application resize and validation when an orientationChanging event is received on an iOS device.  This removes flickering and rendering issues that occurred after iOS' orientation change animation.

QE notes:
Doc notes:
Bugs: SDK-30133
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration:

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

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -32,7 +32,6 @@
 import mx.core.FlexGlobals;
 import mx.core.IInvalidating;
 import mx.core.InteractionMode;
-import mx.core.RuntimeDPIProvider;
 import mx.core.Singleton;
 import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
@@ -42,8 +41,6 @@
 import mx.managers.ISystemManager;
 import mx.managers.SystemManager;
 import mx.managers.ToolTipManager;
-import mx.styles.CSSStyleDeclaration;
-import mx.styles.StyleManager;
 import mx.utils.BitFlagUtil;
 import mx.utils.DensityUtil;
 import mx.utils.LoaderUtil;
@@ -278,7 +275,21 @@
     //  Variables
     //
     //--------------------------------------------------------------------------
-
+
+    /**
+     *  @private
+     *  Flag set to true if the application has temporarily set its explicit
+     *  width and height to deal with orientation.
+     */
+    private var restoreApplicationWidthAndHeight:Boolean = false;
+
+    /**
+     *  @private
+     *  Caches the application's width and height values for the portrait
+     *  and landscape orientations.
+     */
+    private var cachedSizes:Object;
+
     /**
      *  @private
      */
@@ -1065,10 +1076,9 @@
      */
     public function get aspectRatio():String
     {
-        var stage:Stage = systemManager.stage;
-
-        // TODO (chiedozi): Should use StageAspectRatio enums once added to player (spicy)
-        return stage.stageWidth > stage.stageHeight ? "landscape" : "portrait";
+        // TODO (chiedozi): Should use StageAspectRatio enums once added to player or
+        // create new enum class
+        return width > height ? "landscape" : "portrait";
     }

     //----------------------------------
@@ -1247,6 +1257,16 @@
         if (hasEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR))
             systemManager.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorRedispatcher);

+        // To prevent a flicker described in SDK-30133, a flex application listens
+        // for orientationChanging events dispatched by iOS AIR applications.
+        // In the handler, the stage's width and height are swapped, and a validation
+        // pass is forced to allow the application to resize and re-layout itself before the
+        // orientation change animation occurs.  These events are only dispatched on iOS
+        // devices.  These events are not wrapped by iOS version checks so that they still
+        // execute in ADL
+        sm.stage.addEventListener("orientationChanging", stage_orientationChangingHandler);
+        sm.stage.addEventListener("orientationChange", stage_orientationChange);
+
         _url = LoaderUtil.normalizeURL(sm.loaderInfo);
         _parameters = sm.loaderInfo.parameters;

@@ -1264,6 +1284,119 @@
         // Note: isDebugger is true only with a Debugger Player.
         if (sm.isTopLevel() && Capabilities.isDebugger == true)
             setInterval(debugTickler, 1500);
+    }
+
+    /**
+     *  @private
+     *  This is the event handler for the stage's orientationChanging event.  It
+     *  cancels the orientation animation and manually swaps the width and height
+     *  of the application to allow the application to validate itself before
+     *  the orientation change occurs.  The orientaitonChanging event is only
+     *  dispatched on iOS devices.
+     */
+    private function stage_orientationChangingHandler(event:Event):void
+    {
+        var sm:ISystemManager = systemManager;
+
+        // Manually update orientation width and height if the application's explicit
+        // sizes aren't set.  If they are, we assume the application will handle
+        // orientation on their own.
+        if (isNaN(explicitWidth) && isNaN(explicitHeight))
+        {
+            // Cancel the current orientation change operation so that the
+            // validations below can occur before the animation starts.
+            event.preventDefault();
+
+            if (!cachedSizes)
+                cachedSizes = {};
+
+            // Cache the current percentWidth and height values.  These will
+            // be lost when width and height are set, and restored later.
+            cachedSizes.oldPercentWidth = percentWidth;
+            cachedSizes.oldPercentHeight = percentHeight;
+
+            // If the application is currently in landscape orientation
+            if (sm.stage.stageWidth > sm.stage.stageHeight)
+            {
+                if (!cachedSizes.landscapeWidth)
+                {
+                    cachedSizes.landscapeWidth = width;
+                    cachedSizes.landscapeHeight = height;
+                }
+
+                // If the size for portrait has been saved, use it.  Otherwise
+                // just swap width and height
+                if (cachedSizes.portraitWidth)
+                {
+                    width = cachedSizes.portraitWidth;
+                    height = cachedSizes.portraitHeight;
+                }
+                else
+                    swapApplicationDimensions();
+            }
+            else
+            {
+                if (!cachedSizes.portraitWidth)
+                {
+                    cachedSizes.portraitWidth = width;
+                    cachedSizes.portraitHeight = height;
+                }
+
+                // If the size for landscape has been saved, use it.  Otherwise
+                // just swap width and height
+                if (cachedSizes.landscapeWidth)
+                {
+                    width = cachedSizes.landscapeWidth;
+                    height = cachedSizes.landscapeHeight;
+                }
+                else
+                    swapApplicationDimensions();
+            }
+
+            // Indicate that the width and heigth have changed because of orientation
+            restoreApplicationWidthAndHeight = true;
+
+            // Force a validation
+            validateNow();
+
+            // Execute the initial orientation change
+            systemManager.stage["setOrientation"](event["afterOrientation"]);
+        }
+    }
+
+    /**
+     *  @private
+     *  Swaps the applications width and height
+     */
+    private function swapApplicationDimensions():void
+    {
+        var tmp:Number = width;
+        width = height;
+        height = tmp;
+    }
+
+    /**
+     *  @private
+     *  Handler for the stage orientation change event.  At this point, we need
+     *  to undo the explicit width and height that was set when the application is
+     *  reoriented on an iOS device.  See stage_orientationChangingHandler for more
+     *  information.
+     */
+    private function stage_orientationChange(event:Event):void
+    {
+        if (restoreApplicationWidthAndHeight)
+        {
+            percentWidth = cachedSizes.oldPercentWidth;
+            percentHeight = cachedSizes.oldPercentHeight;
+
+            // Reset the explicitWidth and explictHeight property so that the application
+            // resizes on the next frame to deal with situations where the landscape and
+            // portrait application dimensions aren't symetrical
+            explicitWidth = NaN;
+            explicitHeight = NaN;
+
+            restoreApplicationWidthAndHeight = false;
+        }
     }

     /**


Make trace_properties.as detect properties with "not 6" flag and mark it

This only works on versions other than 6

--- test/trace/trace_properties.as
+++ test/trace/trace_properties.as
@@ -77,7 +77,7 @@
   return hash;
 }

-function hasOwnProperty (o, prop)
+function hasOwnProperty_inner (o, prop)
 {
   if (o.hasOwnProperty != undefined)
     return o.hasOwnProperty (prop);
@@ -85,6 +85,20 @@
   o.hasOwnProperty = ASnative (101, 5);
   var result = o.hasOwnProperty (prop);
   delete o.hasOwnProperty;
+  return result;
+}
+
+function hasOwnProperty (o, prop)
+{
+  var result = hasOwnProperty_inner (o, prop);
+#if __SWF_VERSION__ != 6
+  if (result == false) {
+    ASSetPropFlags (o, prop, 0, 256);
+    result = hasOwnProperty_inner (o, prop);
+    if (result)
+      ASSetPropFlags (o, prop, 256);
+  }
+#endif
   return result;
 }

@@ -168,6 +182,23 @@
     return nextSecretId;
   }

+#if __SWF_VERSION__ != 6
+  for (var i = 0; i < all.length; i++)
+  {
+    var prop = all[i];
+
+    // try changing value
+    if (!hasOwnProperty_inner(o, prop) && hasOwnProperty(o, prop))
+    {
+      set_info (info, prop, "not6", true);
+    }
+    else
+    {
+      set_info (info, prop, "not6", false);
+    }
+  }
+#endif
+
   for (var i = 0; i < all.length; i++)
   {
     var prop = all[i];
@@ -242,6 +273,9 @@
     } else if (get_info (info, prop, "constant") == true) {
       flags += "c";
     }
+    if (get_info (info, prop, "not6") == true) {
+      flags += "6";
+    }
     if (flags != "")
       flags = " (" + flags + ")";


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

--- frameworks/projects/advancedgrids/src/mx/skins/halo/AdvancedDataGridHeaderHorizontalSeparator.as
+++ frameworks/projects/advancedgrids/src/mx/skins/halo/AdvancedDataGridHeaderHorizontalSeparator.as
@@ -0,0 +1,105 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.skins.halo
+{
+
+import flash.display.Graphics;
+import mx.skins.ProgrammaticSkin;
+
+/**
+ *  The skin for the separator between column headers in an AdvancedDataGrid control.
+ *
+ *  @see mx.controls.AdvancedDataGrid
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AdvancedDataGridHeaderHorizontalSeparator extends ProgrammaticSkin
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AdvancedDataGridHeaderHorizontalSeparator()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  measuredWidth
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get measuredWidth():Number
+    {
+        return 10;
+    }
+
+    //----------------------------------
+    //  measuredHeight
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get measuredHeight():Number
+    {
+        return 2;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(w:Number, h:Number):void
+    {
+        super.updateDisplayList(w, h);
+        var g:Graphics = graphics;
+
+        g.clear();
+
+        g.moveTo(0, 0);
+        g.lineTo(w, 0);
+        g.lineStyle(1, getStyle("borderColor"));
+        g.moveTo(0, 1);
+        g.lineTo(w, 1);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 22118
Author:   jasonsj@adobe.com
Date:     2011-08-19T22:45:54.903069Z

Log Message:
-----------
SDK-31259 CalloutSkin graphic ordering
SDK-29673 default button skins for ActionBar buttons.

Update CalloutArrow to match spec, useBackgroundGradient should be protected.

Update mobile skins test app with emphasized examples and fix Callout examples to use to contentBackgroundAppearance.

QE notes: Fixed regression from contentBackgroundAppearance. Update baselines for ActionBar accentColor tests.
Doc notes: ActionBar buttons now support emphasized (i.e. accentColor)
Bugs:
SDK-31259 slight difference in callout content for 320 and 240/160 runs
SDK-29673 accentColor not working inside ActionBarsdk
Reviewer: tkraikit, betravis
Tests run: checkintests, mustella-mobile
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultButtonSkin.as</path>
<path kind="file" action="A">/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/mobile320/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/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/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.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/supportClasses/ActionBarButtonSkinBase.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/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as
@@ -0,0 +1,68 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2011 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.skins.mobile
+{
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ *  Emphasized button uses accentColor instead of chromeColor. Replaces the
+ *  TransparentNavigationButtonSkin.
+ *
+ *  @langversion 3.0
+ *  @playerversion AIR 3
+ *  @productversion Flex 4.5.2
+ */
+public class DefaultTransparentNavigationButtonSkin extends TransparentNavigationButtonSkin
+{
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     *
+     */
+    public function DefaultTransparentNavigationButtonSkin()
+    {
+        super();
+
+        fillColorStyleName = "accentColor";
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * @private
+     */
+    override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
+    {
+        // omit super.drawBackground() to drawRect instead
+        // always draw accentColor regardless of skin state
+        graphics.beginFill(getStyle(fillColorStyleName));
+        graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
+        graphics.endFill();
+    }
+}
+}