Transferred from the Adobe Open Source Subversion Repository

Revision: 8679
Author:   jimurphy@adobe.com
Date:     2009-07-20T13:23:31.007823Z

Log Message:
-----------
These are Asdoc edit from 3.x rev 8623.  I somehow missed committing these when they were supposed to be committed during my previous merge.

bug: no
qa: no
doc: no
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/CallResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/IResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Producer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/MessageResponder.as
+++ frameworks/projects/rpc/src/mx/messaging/MessageResponder.as
@@ -41,19 +41,19 @@
  */
 public class MessageResponder extends Responder
 {
-	//--------------------------------------------------------------------------
-	//
-	// Constructor
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------

     /**
      *  Constructs a MessageResponder to handle the response for the specified
      *  Message for the specified MessageAgent.
      *
-     *  @param  agent The MessageAgent sending the Message.
-     *
-     *  @param  message The Message being sent.
+     *  @param agent The MessageAgent sending the Message.
+     *
+     *  @param message The Message being sent.
      *
      *  @param channel The Channel used to send.
      *
@@ -80,36 +80,36 @@
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 *  Flag indicating whether the request corresponding to this responder
-	 *  has timed out. This is used by responders that cannot close
-	 *  their underlying connection (NetConnection for instance) so they must
-	 *  instead ignore any response that is returned after the request timeout
-	 *  is reached.
-	 */
-	private var _requestTimedOut:Boolean;
-
-	/**
-	 *  @private
-	 *  Timer used to trigger a request timeout.
-	 */
-	private var _requestTimer:Timer;
+    /**
+     *  @private
+     *  Flag indicating whether the request corresponding to this responder
+     *  has timed out. This is used by responders that cannot close
+     *  their underlying connection (NetConnection for instance) so they must
+     *  instead ignore any response that is returned after the request timeout
+     *  is reached.
+     */
+    private var _requestTimedOut:Boolean;
+
+    /**
+     *  @private
+     *  Timer used to trigger a request timeout.
+     */
+    private var _requestTimer:Timer;

     /**
      * @private
      */
     private var resourceManager:IResourceManager =
-									ResourceManager.getInstance();
+                                    ResourceManager.getInstance();
     //--------------------------------------------------------------------------
     //
     // Properties
     //
     //--------------------------------------------------------------------------

-	//----------------------------------
-	//  agent
-	//----------------------------------
+    //----------------------------------
+    //  agent
+    //----------------------------------

     /**
      *  @private
@@ -130,9 +130,9 @@
         return _agent;
     }

-	//----------------------------------
-	//  channel
-	//----------------------------------
+    //----------------------------------
+    //  channel
+    //----------------------------------

     /**
      *  @private
@@ -153,9 +153,9 @@
         return _channel;
     }

-	//----------------------------------
-	//  message
-	//----------------------------------
+    //----------------------------------
+    //  message
+    //----------------------------------

     /**
      *  @private
@@ -265,11 +265,11 @@
         }
     }

-	//--------------------------------------------------------------------------
-	//
-	// Protected Members
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    // Protected Members
+    //
+    //--------------------------------------------------------------------------

     /**
      *  Constructs an ErrorMessage that can be passed to the associated
@@ -290,9 +290,9 @@
         errorMsg.correlationId = message.messageId;
         errorMsg.faultCode = "Client.Error.RequestTimeout";
         errorMsg.faultString = resourceManager.getString(
-			"messaging", "requestTimedOut");
+            "messaging", "requestTimedOut");
         errorMsg.faultDetail = resourceManager.getString(
-			"messaging", "requestTimedOut.details");
+            "messaging", "requestTimedOut.details");
         return errorMsg;
     }

@@ -338,11 +338,11 @@
      */
     protected function statusHandler(message:IMessage):void {}

-	//--------------------------------------------------------------------------
-	//
-	// Private Members
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    // Private Members
+    //
+    //--------------------------------------------------------------------------

     /**
      *  @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 12368
Author:   dsubrama@adobe.com
Date:     2009-12-02T16:37:28.078960Z

Log Message:
-----------
Rename spark.components.supportClasses.Slider to spark.components.supportClasses.SliderBase as well as spark.components.supportClasses.ScrollBar to spark.components.supportClasses.ScrollBarBase. This means the spark manifest entries have also changed (for CSS styling purposes, not for use as mxml tags) (Slider -> SliderBase, ScrollBar -> ScrollBarBase).

Change is PARB approved.

QE notes: Please check-in the updated tests
Doc notes: ASDoc has been updated. If any updates need to happen in livedocs, please do so.
Bugs: SDK-24401
Reviewer: Ryan/Jason
Tests run: Jacob ran a cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as" copyfrom-rev="12283" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderAccImpl.as" copyfrom-rev="12283" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderBaseAccImpl.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as" copyfrom-rev="12283" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderAccImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/components/CircularScrollBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -18,7 +18,7 @@
 import mx.events.PropertyChangeEvent;
 import mx.events.ResizeEvent;

-import spark.components.supportClasses.ScrollBar;
+import spark.components.supportClasses.ScrollBarBase;
 import spark.core.IViewport;
 import spark.core.NavigationUnit;

@@ -32,7 +32,7 @@
 [DefaultTriggerEvent("change")]

 /**
- *  The VScrollBar (vertical ScrollBar) control lets you control
+ *  The VScrollBar (vertical scrollbar) control lets you control
  *  the portion of data that is displayed when there is too much data
  *  to fit vertically in a display area.
  *
@@ -86,7 +86,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class VScrollBar extends ScrollBar
+public class VScrollBar extends ScrollBarBase
 {
     include "../core/Version.as";

@@ -260,7 +260,7 @@
      *  @param increase Whether the page scroll is up (true) or
      *  down (false).
      *
-     *  @see spark.components.supportClasses.ScrollBar#changeValueByPage()
+     *  @see spark.components.supportClasses.ScrollBarBase#changeValueByPage()
      *  @see spark.components.supportClasses.Range#setValue()
      *  @see spark.core.IViewport
      *  @see spark.core.IViewport#verticalScrollPosition
@@ -276,7 +276,7 @@
         var oldPageSize:Number;
         if (viewport)
         {
-            // Want to use ScrollBar's changeValueByPage() implementation to get the same
+            // Want to use ScrollBarBase's changeValueByPage() implementation to get the same
             // animated behavior for scrollbars with and without viewports.
             // For now, just change pageSize temporarily and call the superclass
             // implementation.
@@ -340,7 +340,7 @@
         var oldStepSize:Number;
         if (viewport)
         {
-            // Want to use ScrollBar's changeValueByStep() implementation to get the same
+            // Want to use ScrollBarBase's changeValueByStep() implementation to get the same
             // animated behavior for scrollbars with and without viewports.
             // For now, just change pageSize temporarily and call the superclass
             // implementation.


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

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


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

--- frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.skins.spark
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8565
Author:   jszeto@adobe.com
Date:     2009-07-14T23:16:06.956712Z

Log Message:
-----------
Fix broken build

Added missing import statements

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as
@@ -19,6 +19,7 @@
 import flash.filters.GlowFilter;
 import flash.geom.ColorTransform;
 import flash.geom.Matrix;
+import flash.geom.Matrix3D;
 import flash.geom.Point;
 import flash.geom.Rectangle;


Missed the dock spider

Missed the dock spider

--- exporter/src/main/as/flump/export/Exporter.as
+++ exporter/src/main/as/flump/export/Exporter.as
@@ -118,7 +118,7 @@
         if (root == null) return;
         _rootLen = root.nativePath.length + 1;
         if (_docFinder != null) _docFinder.shutdownNow();
-        _docFinder = new Executor(2);
+        _docFinder = new Executor(1);
         findFlashDocuments(root, _docFinder, true);
         _win.reload.enabled = true;
     }


fixed missing character escapement

fixed missing character escapement


menu bar is no longer shown until initial session state is loaded.

Change-Id: I17665b3cc0b01789766f0c6dbf8a42d3cf9af13c

--- WeaveClient/src/weave/VisApplication.as
+++ WeaveClient/src/weave/VisApplication.as
@@ -498,7 +498,12 @@
 		}

 		private function toggleMenuBar():void
-		{
+		{
+			if (!enabled)
+			{
+				callLater(toggleMenuBar);
+				return;
+			}
 			DraggablePanel.showRollOverBorders = adminService || getFlashVarEditable();
 			if (Weave.properties.enableMenuBar.value || adminService || getFlashVarEditable())
 			{
@@ -704,8 +709,6 @@
 				_weaveMenu.addMenuItemToMenu(_toolsMenu, new WeaveMenuItem(title, callback, params));
 		}

-		private var _alreadyLoaded:Boolean = false;
-		private var _stateLoaded:Boolean = false;
 		public function loadSessionState(fileContent:Object, fileName:String):void
 		{
 			DebugTimer.begin();
@@ -816,8 +819,6 @@
 			// Set the name of the CSS style we will be using for this application.  If weaveStyle.css is present, the style for
 			// this application can be defined outside the code in a CSS file.
 			this.styleName = "application";
-
-			_stateLoaded = true;
 		}

 		private function handleWeaveListChange():void


Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as
+++ frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as
@@ -38,6 +38,11 @@
 	 *  @private
 	 */
 	private static var fonts:Object = {};
+
+	/**
+	 *  @private
+	 */
+	private static var cachedFontsForObjects:Dictionary = new Dictionary(true);

 	/**
 	 *  @private
@@ -202,6 +207,12 @@
 		}
 	}

+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
 	/**
 	 *  Convert a font styles into a String as using by flash.text.FontStyle.
 	 *
@@ -216,7 +227,7 @@
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
-	public static function getFontStyle(bold:Boolean, italic:Boolean):String
+	public function getFontStyle(bold:Boolean, italic:Boolean):String
 	{
         var style:String = FontStyle.REGULAR;

@@ -229,12 +240,6 @@

 		return style;
 	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------

 	/**
      *  @inheritDoc
@@ -314,15 +319,25 @@
 	 *  @productversion Flex 3
 	 */
 	public function getAssociatedModuleFactory(
-						font:EmbeddedFont,
+						fontName:String, bold:Boolean, italic:Boolean,
+						object:Object,
 						defaultModuleFactory:IFlexModuleFactory):
 						IFlexModuleFactory
 	{
+
+		var font:EmbeddedFont;
+		font = cachedFontsForObjects[object];
+		if (!font)
+		{
+			font = new EmbeddedFont(fontName, bold, italic);
+			cachedFontsForObjects[object] = font;
+		}
+
 		var fontDictionary:Dictionary = fonts[createFontKey(font)];
 		if (fontDictionary)
 		{
 			// First lookup in the dictionary. If not found, then
-			// take the first moduelFactory in the dictionary.
+			// take the first moduleFactory in the dictionary.
 			// A module can register a font that is not unique and still
 			// use that font as long as its components specify the moduleFactory.
 			// A module can use fonts in other modules but


Transferred from the Adobe Open Source Subversion Repository

Revision: 18146
Author:   chiedozi@adobe.com
Date:     2010-10-14T00:23:22.539629Z

Log Message:
-----------
View and ViewNavigator PARB changes.

MobileApplication
canCancelBackKeyBehavior has been renamed exitApplicationOnBackKey (also impacts ViewNavigator and TabbedViewNavigator)

ViewNavigator
backKeyHandler method is now mx_internal, it is no longer part of public api
useDefaultTransitions property has been removed from the framework
canRemoveCurrentView is now mx_internal, it is no longer part of the public api
createVisibiliyAnimation() method has been removed and replaced with the createActionBarShowEffect() and createActionBarHideEffect() methods.
commitViewChange, beginViewChanged and endViewChanged have been renamed to commitNavigatorAction, committingNavigatorAction and navigatorActionCommitted.
maintainNavigationStack removed from ViewNavigator and moved to TabbedViewNavigator

View
VIEW_ACTIVATE, VIEW_DEACTIVATE and REMOVING have been removed from the FlexEvent class and added to the new ViewNavigatorEvent class.
ViewNavigatorEvent class now has a "action" property that indicates what the last committed navigation operation was
ViewNavigatorAction enum class added and is used to populate the action property of a ViewNavigatorEvent
View now dispatches a "backKeyPressed" (FlexEvent.BACK_KEY_PRESSED) event when the back device key is pressed.  This is a cancelable event.  When cancelled, the MobileApplication's default back behavior will not run.

TabbedViewNavigator
Added createTabBarShowEffect() and createTabBarHideEffect() methods
Added a maintainNavigationStack property to the view navigator.  When false, the navigation stack of a navigator is cleared when deactivated.

TabbedMobileApplication
Added maintainNavigationStack proxy property to the application

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

Modified Paths:
--------------
<path kind="file" action="M">/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/components/View.as</path>
<path kind="file" action="M">/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/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/components/TabbedMobileApplication.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorAction.as</path>
<path kind="file" action="M">/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/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/views/SearchView.mxml</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="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/View.as
+++ frameworks/projects/mobilecomponents/src/spark/components/View.as
@@ -18,6 +18,7 @@
 import mx.events.PropertyChangeEvent;

 import spark.core.ContainerDestructionPolicy;
+import spark.events.ViewNavigatorEvent;
 import spark.layouts.supportClasses.LayoutBase;

 use namespace mx_internal;
@@ -25,6 +26,20 @@
 //--------------------------------------
 //  Events
 //--------------------------------------
+
+/**
+ *  Dispatched when the back key is pressed when a view exists inside
+ *  a mobile application.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ *
+ *  @eventType mx.events.FlexEvent.BACK_KEY_PRESSED
+ *
+ */
+[Event(name="backKeyPressed", type="mx.events.FlexEvent")]

 /**
  *  Dispatched when the data property changes.
@@ -42,40 +57,40 @@
 /**
  *  Dispatched when the current view has been activated.
  *
- *  @eventType mx.events.FlexEvent.VIEW_ACTIVATE
+ *  @eventType mx.events.ViewNavigatorEvent.VIEW_ACTIVATE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
-[Event(name="viewActivate", type="mx.events.FlexEvent")]
+[Event(name="viewActivate", type="spark.events.ViewNavigatorEvent")]

 /**
  *  Dispatched when the current view has been deactivated.
  *
- *  @eventType mx.events.FlexEvent.VIEW_DEACTIVATE
+ *  @eventType mx.events.ViewNavigatorEvent.VIEW_DEACTIVATE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
-[Event(name="viewDeactivate", type="mx.events.FlexEvent")]
+[Event(name="viewDeactivate", type="spark.events.ViewNavigatorEvent")]

 /**
  *  Dispatched when the screen is about to be removed in response
  *  to a screen change.  Calling preventDefault()
  *  while handling this event will cancel the screen change.
  *
- *  @eventType mx.events.FlexEvent.REMOVING
+ *  @eventType mx.events.ViewNavigatorEvent.REMOVING
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
-[Event(name="removing", type="mx.events.FlexEvent")]
+[Event(name="removing", type="spark.events.ViewNavigatorEvent")]

 /**
  *  The View class is the base container class for all Views used by view
@@ -148,9 +163,12 @@
         {
             _active = value;

-            var eventName:String = _active ? FlexEvent.VIEW_ACTIVATE : FlexEvent.VIEW_DEACTIVATE;
+            var eventName:String = _active ?
+                ViewNavigatorEvent.VIEW_ACTIVATE :
+                ViewNavigatorEvent.VIEW_DEACTIVATE;
+
             if (hasEventListener(eventName))
-                dispatchEvent(new FlexEvent(eventName));
+                dispatchEvent(new ViewNavigatorEvent(eventName, false, false, navigator.lastAction));
         }
     }

@@ -159,6 +177,7 @@
     //----------------------------------

     /**
+     *  @private
      *  Determines if the current view can be removed by a navigator.  The default
      *  implementation dispatches a FlexEvent.REMOVING event.  If
      *  preventDefault() is called on the event, this property will return false.
@@ -170,15 +189,36 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function canRemove():Boolean
-    {
-        if (hasEventListener(FlexEvent.REMOVING))
-        {
-            var event:FlexEvent = new FlexEvent(FlexEvent.REMOVING, false, true);
+    mx_internal function canRemove():Boolean
+    {
+        if (hasEventListener(ViewNavigatorEvent.REMOVING))
+        {
+            var event:ViewNavigatorEvent =
+                new ViewNavigatorEvent(ViewNavigatorEvent.REMOVING,
+                                       false, true, navigator.lastAction);
+
             return dispatchEvent(event);
         }

         return true;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function backKeyHandler():Boolean
+    {
+        if (hasEventListener(FlexEvent.BACK_KEY_PRESSED))
+        {
+            var event:FlexEvent = new FlexEvent(FlexEvent.BACK_KEY_PRESSED, false, true);
+            var eventCanceled:Boolean = !dispatchEvent(event);
+
+            // If the event was canceled, that means the application
+            // is doing its own custom logic for the back key
+            return eventCanceled;
+        }
+
+        return false;
     }

     //----------------------------------
@@ -230,7 +270,7 @@
     //  destructionPolicy
     //----------------------------------

-    [Inspectable(category="General", enumeration="auto,always,never", defaultValue="auto")]
+    [Inspectable(category="General", enumeration="auto,never", defaultValue="auto")]
     /**
      *  Defines the destruction policy the view's navigator should use
      *  when this view is removed. If set to "auto", the navigator will


Transferred from the Adobe Open Source Subversion Repository

Revision: 17668
Author:   hmuller@adobe.com
Date:     2010-09-10T22:52:09.156291Z

Log Message:
-----------
Grid layers are now defined as type GridLayer (a private class), instead of Group.

GridLayer type no longer extends Group, it's now an object that has Group valued root property.   This makes the type's API relatively tiny - only two methods - and makes it possible for GridLayer to encapsulate the Grid itself as a layer (the item renderer layer).

Grid item renders are now consistently typed as IGridItemRenderer, rather than IVisualElement.

DefaultGridItemRenderer is now a UIFTETextField subclass and no longer supports the "textFieldClass" style.  A new UITextField based item renderer has been added, it's UITextFieldGridItemRenderer.

Support for the module implications of embedded fonts is now GridColumn's responsiblity.  GridColumn/itemToRenderer() now wraps item renderer ClassFactory item renders with a local ClassFactory subclass that delegates the newInstance() operation to the grid's moduleFactory.

QE notes:
Doc notes:
Bugs:
Reviewer: Carol, Kevin
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridItemRenderer.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ColumnHeaderBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridItemRendererOwner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/SparkClasses.as
+++ frameworks/projects/spark/src/SparkClasses.as
@@ -94,7 +94,7 @@
 import spark.skins.spark.TitleWindowSkin; TitleWindowSkin;
 import spark.skins.spark.TitleWindowCloseButtonSkin; TitleWindowCloseButtonSkin;
 import spark.skins.spark.ToggleButtonSkin; ToggleButtonSkin;
-import spark.skins.spark.VideoPlayerSkin; VideoPlayerSkin;
+import spark.skins.spark.UITextFieldGridItemRenderer; UITextFieldGridItemRenderer;
 import spark.skins.spark.VScrollBarSkin; VScrollBarSkin;
 import spark.skins.spark.VScrollBarThumbSkin; VScrollBarThumbSkin;
 import spark.skins.spark.VScrollBarTrackSkin; VScrollBarTrackSkin;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18265
Author:   hmuller@adobe.com
Date:     2010-10-21T17:03:48.301800Z

Log Message:
-----------
DataGrid Tier 2 PARB Changes

Added GridColumn columnName parameter; as in MX DataGridColumn.

The selection property set methods added for Tier 2, like selectedIndices, now only defer when they're called before the component has been initialized.

Removed the (GridColumnHeaderGroup) overlayGroup property.

Replaced GridColumnHeaderBar mouseSeparatorWidth property with "separatorAffordance" style.

QE notes: Gaurav assured me that the 7 Button (timeout) and 2 DateTimeFormatter cyclone failures aren't related to this commit
Doc notes:
Bugs:
Reviewer: Kevin
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridColumnHeaderGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/defaults.css</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -1501,9 +1501,7 @@
      *  event. When the user changes the selection programmatically, the
      *  control dispatches the valueCommit event.

      *
-     *
Attempts to set this property are deferred until commitProperties()
-     *  runs, and the dataProvider property has been set.  This property is not
-     *  intended for programatic selection updates, it can be used to initialize the
+     *
 This property is intended be used to initialize or bind to the
      *  selection in MXML markup.  The setSelectedCell() method should be used
      *  for programatic selection updates, for example when writing a keyboard
      *  or mouse event handler.

@@ -1532,15 +1530,30 @@
         const rowIndex:int = (value) ? value.rowIndex : -1;
         const columnIndex:int = (value) ? value.columnIndex : -1;

-        var f:Function = function():void
+        // Defer the selection change if we haven't been initialized
+
+        if (!initialized)
+        {
+            // Append a deferred operation function that selects the specified cell
+
+            var f:Function = function():void
+            {
+                if ((rowIndex != -1) && (columnIndex != -1))
+                    setSelectedCell(rowIndex, columnIndex);
+                else
+                    clearSelection();
+            }
+
+            deferredOperations.push(f);  // function f() to be called by commitProperties()
+            invalidateProperties();
+        }
+        else
         {
             if ((rowIndex != -1) && (columnIndex != -1))
                 setSelectedCell(rowIndex, columnIndex);
             else
-                clearSelection();
-        }
-        deferredOperations.push(f);  // function f() to be called by commitProperties()
-        invalidateProperties();
+                clearSelection();
+        }
     }

     //----------------------------------
@@ -1561,12 +1574,10 @@
      *  event. When the user changes the selection programmatically, the
      *  control dispatches the valueCommit event.

      *
-     *
Attempts to set this property are deferred until commitProperties()
-     *  runs, and the dataProvider property has been set.  This property is not
-     *  intended for programatic selection updates, it can be used to initialize the
-     *  selection in MXML markup.  The setSelectedCell(), addSelectedCell(),
-     *  and selectCellRegion() methods should be used for programatic selection
-     *  updates, for example when writing a keyboard or mouse event handler.

+     *
 This property is intended be used to initialize or bind to the
+     *  selection in MXML markup.  The setSelectedCell() method should be used
+     *  for programatic selection updates, for example when writing a keyboard
+     *  or mouse event handler.

      *
      *  @default An empty Vector.<CellPosition>
      *
@@ -1597,16 +1608,27 @@
                 valueCopy.push(new CellPosition(cell.rowIndex, cell.columnIndex));
         }

-        // Append a deferred operation function that selects the specified cells
-
-        var f:Function = function():void
+        // Defer the selection change if we haven't been initialized
+
+        if (!initialized)
+        {
+            // Append a deferred operation function that selects the specified cells
+
+            var f:Function = function():void
+            {
+                clearSelection();
+                for each (cell in valueCopy)
+                    addSelectedCell(cell.rowIndex, cell.columnIndex);
+            }
+            deferredOperations.push(f);  // function f() to be called by commitProperties()
+            invalidateProperties();
+        }
+        else
         {
             clearSelection();
             for each (cell in valueCopy)
-                addSelectedCell(cell.rowIndex, cell.columnIndex);
-        }
-        deferredOperations.push(f);  // function f() to be called by commitProperties()
-        invalidateProperties();
+                addSelectedCell(cell.rowIndex, cell.columnIndex);
+        }
     }

     //----------------------------------
@@ -1626,12 +1648,10 @@
      *  event. When the user changes the selection programmatically, the
      *  control dispatches the valueCommit event.

      *
-     *
Attempts to set this property are deferred until commitProperties()
-     *  runs, and the dataProvider property has been set.  This property is not
-     *  intended for programatic selection updates, it can be used to initialize the
-     *  selection in MXML markup.  The setSelectedIndex() method should be used
+     *
 This property is intended be used to initialize or bind to the
+     *  selection in MXML markup.  The setSelectedCell() method should be used
      *  for programatic selection updates, for example when writing a keyboard
-     *  or mouse event handler.

+     *  or mouse event handler.

      *
      *  @default -1
      *
@@ -1654,15 +1674,29 @@
      */
     public function set selectedIndex(value:int):void
     {
-        var f:Function = function():void
+        // Defer the selection change if we haven't been initialized
+
+        if (!initialized)
+        {
+            // Append a deferred operation function that selects the specified index
+
+            var f:Function = function():void
+            {
+                if (value != -1)
+                    setSelectedIndex(value);
+                else
+                    clearSelection();
+            }
+            deferredOperations.push(f);  // function f() to be called by commitProperties()
+            invalidateProperties();
+        }
+        else
         {
             if (value != -1)
                 setSelectedIndex(value);
             else
                 clearSelection();
         }
-        deferredOperations.push(f);  // function f() to be called by commitProperties()
-        invalidateProperties();
     }

     //----------------------------------
@@ -1683,12 +1717,10 @@
      *  event. When the user changes the selection programmatically, the
      *  control dispatches the valueCommit event.

      *
-     *
Attempts to set this property are deferred until commitProperties()
-     *  runs, and the dataProvider property has been set.  This property is not
-     *  intended for programatic selection updates, it can be used to initialize the
-     *  selection in MXML markup.  The setSelectedIndex(), addSelectedIndex(),
-     *  and selectIndices() methods should be used for programatic selection
-     *  updates, for example when writing a keyboard or mouse event handler.

+     *
 This property is intended be used to initialize or bind to the
+     *  selection in MXML markup.  The setSelectedCell() method should be used
+     *  for programatic selection updates, for example when writing a keyboard
+     *  or mouse event handler.
 >
      *
      *  @default An empty Vector.<int>
      *
@@ -1716,16 +1748,27 @@

         const valueCopy:Vector.<int> = (value) ? value.concat() : new Vector.<int>(0);

-        // Append a deferred operation function that selects the specified indices
-
-        var f:Function = function():void
+        // Defer the selection change if we haven't been initialized
+
+        if (!initialized)
+        {
+            // Append a deferred operation function that selects the specified indices
+
+            var f:Function = function():void
+            {
+                clearSelection();
+                for each (var index:int in valueCopy)
+                    addSelectedIndex(index);
+            }
+            deferredOperations.push(f);  // function f() to be called by commitProperties()
+            invalidateProperties();
+        }
+        else
         {
             clearSelection();
             for each (var index:int in valueCopy)
-                addSelectedIndex(index);
-        }
-        deferredOperations.push(f);  // function f() to be called by commitProperties()
-        invalidateProperties();
+                addSelectedIndex(index);
+        }
     }

     //----------------------------------
@@ -1746,12 +1789,10 @@
      *  event. When the user changes the selection programmatically, the
      *  control dispatches the valueCommit event.

      *
-     *
Attempts to set this property are deferred until commitProperties()
-     *  runs, and the dataProvider property has been set.  This property is not
-     *  intended for programatic selection updates, it can be used to initialize the
-     *  selection in MXML markup.  To programatically set the "selected item"
-     *  use dataProvider.getItemIndex() to compute the item's location
-     *  and setSelectedIndex() to change the selection.

+     *
 This property is intended be used to initialize or bind to the
+     *  selection in MXML markup.  The setSelectedCell() method should be used
+     *  for programatic selection updates, for example when writing a keyboard
+     *  or mouse event handler.

      *
      *  @default undefined
      *
@@ -1778,19 +1819,37 @@
      */
     public function set selectedItem(value:Object):void
     {
-        var f:Function = function():void
+        // Defer the selection change if we haven't been initialized
+
+        if (!initialized)
+        {
+            // Append a deferred operation function that selects the specified item
+
+            var f:Function = function():void
+            {
+                if (!dataProvider)
+                    return;
+
+                const rowIndex:int = dataProvider.getItemIndex(value);
+                if (rowIndex == -1)
+                    clearSelection();
+                else
+                    setSelectedIndex(rowIndex);
+            }
+            deferredOperations.push(f);  // function f() to be called by commitProperties()
+            invalidateProperties();
+        }
+        else
         {
             if (!dataProvider)
                 return;
-
+
             const rowIndex:int = dataProvider.getItemIndex(value);
             if (rowIndex == -1)
                 clearSelection();
             else
-                setSelectedIndex(rowIndex);
-        }
-        deferredOperations.push(f);  // function f() to be called by commitProperties()
-        invalidateProperties();
+                setSelectedIndex(rowIndex);
+        }
     }

     //----------------------------------
@@ -1810,12 +1869,10 @@
      *  event. When the user changes the selection programmatically, the
      *  control dispatches the valueCommit event.

      *
-     *
Attempts to set this property are deferred until commitProperties()
-     *  runs, and the dataProvider property has been set.  This property is not
-     *  intended for programatic selection updates, it can be used to initialize the
-     *  selection in MXML markup.  To programatically set the "selected item"
-     *  use dataProvider.getItemIndex() to compute the item's location
-     *  and setSelectedIndex() to change the selection.

+     *
 This property is intended be used to initialize or bind to the
+     *  selection in MXML markup.  The setSelectedCell() method should be used
+     *  for programatic selection updates, for example when writing a keyboard
+     *  or mouse event handler.

      *
      *  @default An empty Vector.<Object>
      *
@@ -1851,19 +1908,33 @@

         const valueCopy:Vector.<Object> = (value) ? value.concat() : new Vector.<Object>(0);

-        // Append a deferred operation function that selects the specified indices
-
-        var f:Function = function():void
+        // Defer the selection change if we haven't been initialized
+
+        if (!initialized)
+        {
+            // Append a deferred operation function that selects the specified items
+
+            var f:Function = function():void
+            {
+                if (!dataProvider)
+                    return;
+
+                clearSelection();
+                for each (var item:Object in valueCopy)
+                    addSelectedIndex(dataProvider.getItemIndex(item));
+            }
+            deferredOperations.push(f);  // function f() to be called by commitProperties()
+            invalidateProperties();
+        }
+        else
         {
             if (!dataProvider)
                 return;

             clearSelection();
             for each (var item:Object in valueCopy)
-                addSelectedIndex(dataProvider.getItemIndex(item));
-        }
-        deferredOperations.push(f);  // function f() to be called by commitProperties()
-        invalidateProperties();
+               addSelectedIndex(dataProvider.getItemIndex(item))
+        }
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 9275
Author:   egeorgie@adobe.com
Date:     2009-08-13T19:05:09.180847Z

Log Message:
-----------
Fix bug: GraphicElement.getStrokeExtents needs ASDoc

Fix: Add comment, while at it, updated the API to return a Rectangle instead.

QE notes: None
Doc notes: None
Bugs: FLEXDOCS-1032
Reviewer: Deepa
Tests run: checkintests, spark/primitives, gumbo/layout/graphicElements
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Path.as
+++ frameworks/projects/spark/src/spark/primitives/Path.as
@@ -532,7 +532,7 @@
             width = getBoundingBox(width, height, layoutFeatures.layoutMatrix).width;

         // Take stroke into account
-        return width + getStrokeExtents().x;
+        return width + getStrokeExtents(postLayoutTransform).width;
     }

     /**
@@ -546,7 +546,7 @@
             height = getBoundingBox(width, height, layoutFeatures.layoutMatrix).height;

         // Take stroke into account
-        return height + getStrokeExtents().y;
+        return height + getStrokeExtents(postLayoutTransform).height;
     }

     /**
@@ -559,27 +559,27 @@
      */
     override public function getBoundsXAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
     {
-        var strokeExtents:Point = getStrokeExtents(postLayoutTransform);
+        var strokeExtents:Rectangle = getStrokeExtents(postLayoutTransform);
         var m:Matrix = getComplexMatrix(postLayoutTransform);

         if (!m)
         {
             // Check for a common case, BasicLayout measure() always hits this:
             if (isNaN(width))
-                return strokeExtents.x * -0.5 + this.x + measuredX;
+                return strokeExtents.left + this.x + measuredX;
             else
                 width = preferredWidthPreTransform();

             var naturalBounds:Rectangle = getBounds();
             var sx:Number = (naturalBounds.width == 0 || width == 0) ? 1 : width / naturalBounds.width;
-            return strokeExtents.x * -0.5 + this.x + measuredX * sx;
+            return strokeExtents.left + this.x + measuredX * sx;
         }

         if (!isNaN(width))
-            width -= strokeExtents.x;
+            width -= strokeExtents.width;

         if (!isNaN(height))
-            height -= strokeExtents.y;
+            height -= strokeExtents.height;

         // Calculate the width and height pre-transform:
         var newSize:Point = MatrixUtil.fitBounds(width, height, m,
@@ -589,7 +589,7 @@
                                                  maxWidth, maxHeight);
         if (!newSize)
             newSize = new Point(minWidth, minHeight);
-        return strokeExtents.x * -0.5 + getBoundingBox(newSize.x, newSize.y, m).x;
+        return strokeExtents.left + getBoundingBox(newSize.x, newSize.y, m).x;
     }

     /**
@@ -602,27 +602,27 @@
      */
     override public function getBoundsYAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
     {
-        var strokeExtents:Point = getStrokeExtents(postLayoutTransform);
+        var strokeExtents:Rectangle = getStrokeExtents(postLayoutTransform);
         var m:Matrix = getComplexMatrix(postLayoutTransform);

         if (!m)
         {
             // Check for a common case, BasicLayout measure() always hits this:
             if (isNaN(height))
-                return strokeExtents.y * -0.5 + this.y + measuredY;
+                return strokeExtents.top + this.y + measuredY;
             else
                 height = preferredHeightPreTransform();

             var naturalBounds:Rectangle = getBounds();
             var sy:Number = (naturalBounds.height == 0 || height == 0) ? 1 : height / naturalBounds.height;
-            return strokeExtents.y * -0.5 + this.y + measuredY * sy;
+            return strokeExtents.top + this.y + measuredY * sy;
         }

         if (!isNaN(width))
-            width -= strokeExtents.x;
+            width -= strokeExtents.width;

         if (!isNaN(height))
-            height -= strokeExtents.y;
+            height -= strokeExtents.height;

         // Calculate the width and height pre-transform:
         var newSize:Point = MatrixUtil.fitBounds(width, height, m,
@@ -632,7 +632,7 @@
                                                  maxWidth, maxHeight);
         if (!newSize)
             newSize = new Point(minWidth, minHeight);
-        return strokeExtents.y * -0.5 + getBoundingBox(newSize.x, newSize.y, m).y;
+        return strokeExtents.top + getBoundingBox(newSize.x, newSize.y, m).y;
     }

     /**
@@ -640,7 +640,7 @@
      */
     override public function getLayoutBoundsX(postLayoutTransform:Boolean = true):Number
     {
-        var stroke:Number = -getStrokeExtents(postLayoutTransform).x * 0.5;
+        var stroke:Number = getStrokeExtents(postLayoutTransform).left;
         var m:Matrix = getComplexMatrix(postLayoutTransform);
         if (!m)
         {
@@ -658,7 +658,7 @@
      */
     override public function getLayoutBoundsY(postLayoutTransform:Boolean = true):Number
     {
-        var stroke:Number = - getStrokeExtents(postLayoutTransform).y * 0.5;
+        var stroke:Number = getStrokeExtents(postLayoutTransform).top;
         var m:Matrix = getComplexMatrix(postLayoutTransform);
         if (!m)
         {


Some more work on time

Some more work on time

--- modules/time.as
+++ modules/time.as
@@ -34,7 +34,7 @@

 /// A point in time.
 struct Time {
-  // Whole seconds (valid values are >= 0)
+  // Whole seconds (since the epoch: '0001-01-01T00:00:00')
   _sec: int64;

   // Nanoseconds (valid values are [0, 999999999])
@@ -44,13 +44,84 @@
 implement Time {
   /// Returns the duration between two points in time.
   def Sub(self, u: Time): Duration {
-    let d: int64 = 0;
+    let d = 0;
     d += (self._sec - u._sec) * int64(Second);
-    d += self._nsec - u._nsec;
+    d += (self._nsec - u._nsec);

     // FIXME: Handle over/under-flow

     return Duration(d);
+  }
+
+  /// Returns the month in the year, in the range [1, 12].
+  def Month(self): int8 {
+    let d = self.YearDay();
+    let m = d / 31;
+
+    return int8(m);
+  }
+
+  /// Returns the day of the month, in the range [0, 365].
+  def YearDay(self): int16 {
+    let d = (self._sec / 86400);
+    let y = 0;
+    let n = 0;
+
+    // Every 400 years there are a total of 97 days inserted (as leap days)
+    // This brings the total days in a cycle to 146097
+
+    // Account for the 400th year. The 400th year IS a leap year but the other
+    // century years of a cycle are not.
+
+    n = d / 146097;
+    y = 400 * n;
+    d -= 146097 * n;
+
+    // There are 36524 days in a 100-year cycle (except for every 4th cycle
+    // which has an extra day; this is why we removed the 400th year above)
+
+    // Account for the century years
+
+    n = d / 36524;
+    n -= n >> 2;
+    y += 100 * n;
+    d -= 36524 * n;
+
+    // Account for "normal" leap years (every 4th year)
+
+    n = d / 1461;
+    y += 4 * n;
+    d -= 1461 * n;
+
+    // Reduce the remaining days into years
+
+    n = d / 365;
+    n -= n >> 2;
+    y += n;
+    d -= 365 * n;
+
+    return int16(d);
+  }
+
+  /// Returns the hour within the day, in the range [0, 23].
+  def Hour(self): int8 {
+    return int8((self._sec % 86400) / 3600);
+  }
+
+  /// Returns the minute offset within the hour, in the range [0, 59].
+  def Minute(self): int8 {
+    return int8((self._sec % 3600) / 60);
+  }
+
+  /// Returns the second offset within the minute, in the range [0, 59].
+  def Second(self): int8 {
+    return int8(self._sec % 60);
+  }
+
+  /// Returns the nanosecond offset within the second,
+  /// in the range [0, 999999999].
+  def Nanosecond(self): int64 {
+    return self._nsec;
   }
 }


Added createTipLabel().

Added createTipLabel().

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

--- src/as/com/threerings/flex/FlexUtil.as
+++ src/as/com/threerings/flex/FlexUtil.as
@@ -32,16 +32,29 @@
 public class FlexUtil
 {
     /**
-     * How hard would it have been for them to make Label accept an optional text argument?
+     * Creates a label with the supplied text and tooltip, and optionally applies a style class to
+     * it.
      */
-    public static function createLabel (text :String, style :String = null) :Label
+    public static function createTipLabel (
+        text :String, toolTip :String, style :String = null) :Label
     {
         var label :Label = new Label();
         label.text = text;
+        if (toolTip != null) {
+            label.toolTip = toolTip;
+        }
         if (style != null) {
             label.styleName = style;
         }
         return label;
+    }
+
+    /**
+     * Creates a label with the supplied text, and optionally applies a style class to it.
+     */
+    public static function createLabel (text :String, style :String = null) :Label
+    {
+        return createTipLabel(text, null, style);
     }

     /**


AudioTrackController : avoid potential range error exception when audio track list is empty related to #256

--- src/org/mangui/hls/controller/AudioTrackController.as
+++ src/org/mangui/hls/controller/AudioTrackController.as
@@ -211,7 +211,7 @@

             /* if audio track not defined, or audio from external source (playlist)
             return null (demux audio not selected) */
-            if (_audioTrackId == -1 || _audioTracks[_audioTrackId].source == AudioTrack.FROM_PLAYLIST) {
+            if (_audioTrackId == -1 ||  _audioTrackId >= _audioTracks.length || _audioTracks[_audioTrackId].source == AudioTrack.FROM_PLAYLIST) {
                 return null;
             } else {
                 // source is demux,return selected audio track


Added offsetX, offsetY, and setOffset() to TiledSpritemap so the user can offset the fill-texture.

--- net/flashpunk/graphics/TiledSpritemap.as
+++ net/flashpunk/graphics/TiledSpritemap.as
@@ -44,7 +44,12 @@
 			if (_flipped) _rect.x = (_width - _rect.width) - _rect.x;

 			// render it repeated to the buffer
-			FP.point.x = FP.point.y = 0;
+			var xx:int = int(_offsetX) % _imageWidth,
+				yy:int = int(_offsetY) % _imageHeight;
+			if (xx >= 0) xx -= _imageWidth;
+			if (yy >= 0) yy -= _imageHeight;
+			FP.point.x = xx;
+			FP.point.y = yy;
 			while (FP.point.y < _imageHeight)
 			{
 				while (FP.point.x < _imageWidth)
@@ -52,7 +57,7 @@
 					_buffer.copyPixels(_source, _sourceRect, FP.point);
 					FP.point.x += _sourceRect.width;
 				}
-				FP.point.x = 0;
+				FP.point.x = xx;
 				FP.point.y += _sourceRect.height;
 			}

@@ -60,8 +65,45 @@
 			if (_tint) _buffer.colorTransform(_bufferRect, _tint);
 		}

+		/**
+		 * The x-offset of the texture.
+		 */
+		public function get offsetX():Number { return _offsetX; }
+		public function set offsetX(value:Number):void
+		{
+			if (_offsetX == value) return;
+			_offsetX = value;
+			updateBuffer();
+		}
+
+		/**
+		 * The y-offset of the texture.
+		 */
+		public function get offsetY():Number { return _offsetY; }
+		public function set offsetY(value:Number):void
+		{
+			if (_offsetY == value) return;
+			_offsetY = value;
+			updateBuffer();
+		}
+
+		/**
+		 * Sets the texture offset.
+		 * @param	x		The x-offset.
+		 * @param	y		The y-offset.
+		 */
+		public function setOffset(x:Number, y:Number):void
+		{
+			if (_offsetX == x && _offsetY == y) return;
+			_offsetX = x;
+			_offsetY = y;
+			updateBuffer();
+		}
+
 		/** @private */ private var _graphics:Graphics = FP.sprite.graphics;
 		/** @private */ private var _imageWidth:uint;
 		/** @private */ private var _imageHeight:uint;
+		/** @private */ private var _offsetX:Number = 0;
+		/** @private */ private var _offsetY:Number = 0;
 	}
 }


one more fix to fake softkeybd

one more fix to fake softkeybd

git-svn-id: f8d5f742b420a6a114b58659a4f85f335318e53c@1436802 13f79535-47bb-0310-9956-ffa450edef68

--- mustella/as3/src/mustella/FakeSoftKeyboard.as
+++ mustella/as3/src/mustella/FakeSoftKeyboard.as
@@ -92,15 +92,15 @@
 			{
 				kbd.height = portraitHeight;
 				kbd.width = root.stage.stageWidth;
-				root["document"][kbdrect] = new Rectangle(0, 0, kbd.width, kbd.height);
 				kbd.y = root.stage.stageHeight - portraitHeight;
+				root["document"][kbdrect] = new Rectangle(0, kbd.y, kbd.width, kbd.height);
 			}
 			else
 			{
 				kbd.height = landscapeHeight;
 				kbd.width = root.stage.stageWidth;
-				root["document"][kbdrect] = new Rectangle(0, 0, kbd.width, kbd.height);
 				kbd.y = root.stage.stageHeight - landscapeHeight;
+				root["document"][kbdrect] = new Rectangle(0, kbd.y, kbd.width, kbd.height);
 			}
 			trace("sent softKeyboardActivate from", comp);
 			comp.dispatchEvent(new SoftKeyboardEvent(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE,


Fixes for Flex 4 deprecation warning to use FlexGlobals.topLevelApplication instead of Application.application

--- as3/smartform/src/com/rpath/raf/util/UIHelper.as
+++ as3/smartform/src/com/rpath/raf/util/UIHelper.as
@@ -25,6 +25,7 @@

     import mx.collections.ArrayCollection;
     import mx.core.Application;
+    import mx.core.FlexGlobals;
     import mx.core.IFlexDisplayObject;
     import mx.formatters.NumberBaseRoundType;
     import mx.formatters.NumberFormatter;
@@ -116,7 +117,7 @@

         public static function createPopup(clazz:Class):*
         {
-            var popup:Object = PopUpManager.createPopUp(Application.application as Application,
+            var popup:Object = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as Application,
                 clazz, false, PopUpManagerChildList.APPLICATION) as clazz;
             return popup as IFlexDisplayObject;
         }
@@ -128,7 +129,7 @@
             popup = popupForModel(model);
             if (popup == null)
             {
-                popup = PopUpManager.createPopUp(Application.application as Application,
+                popup = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as Application,
                     clazz, false, PopUpManagerChildList.APPLICATION) as clazz;

                 popupModelMap[model] = popup;


Add in update fences with decoding into ArrayCollections. Testing reveals apps do not use this pathway in claymore

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
@@ -369,11 +369,21 @@
         // so what type did we eventually use?
         var resultTypeName:String = getQualifiedClassName(result);

+        var isCollection:Boolean = false;
+
         // thus, what type of assignment function should we use?
         var assign:Function;

-        if (XObjUtils.isTypeArray(resultType) || XObjUtils.isTypeArrayCollection(resultType))
+        if (XObjUtils.isTypeArray(resultType))
+        {
             assign = assignToArray;
+        }
+        else if (XObjUtils.isTypeArrayCollection(resultType))
+        {
+            isCollection = true;
+            assign = assignToArray;
+            (result as ArrayCollection).disableAutoUpdate();
+        }
         else
             assign = assignToProperty;

@@ -410,7 +420,9 @@
                 var seenProperties:Object = {};
                 var lastPartName:Object = {qname: null, propname: null};

-
+                // loop through all children. TODO: break this into async slices
+                // as we did with FilterIndex creation and maintenance?
+
                 for (var i:uint = 0; i < children.length; i++)
                 {
                     var partNode:XMLNode = children[i];
@@ -513,6 +525,12 @@
                 }
             }
         }
+
+        // and turn on change events again once we're done
+        if (isCollection)
+        {
+            (result as ArrayCollection).enableAutoUpdate();
+        }

         // Cycle through the attributes
         var attributes:Object = dataNode.attributes;


remove loop method

remove loop method

git-svn-id: 864080e30cc358c5edb906449bbf014f90258007@43 96db6a20-122f-0410-8d9f-89437bbe4005

--- src/com/rails2u/debug/Benchmark.as
+++ src/com/rails2u/debug/Benchmark.as
@@ -26,13 +26,7 @@
             dict[name] = getTimer();
         }

-        public static function benchmark(name:String, callback:Function, bindObject:Object = null):Number {
-            start(name);
-            callback.call(bindObject);
-            return end(name);
-        }
-
-        public static function loop(name:String, callback:Function, bindObject:Object = null, times:uint = 100):Number {
+        public static function benchmark(name:String, callback:Function, bindObject:Object = null, times:uint = 1):Number {
             start(name);
             for (var i:uint = 0; i < times; i++)
                 callback.call(bindObject);


Bugfix for wait() implementation

Bugfix for wait() implementation

--- src/org/openPyro/effects/Effect.as
+++ src/org/openPyro/effects/Effect.as
@@ -85,9 +85,12 @@
 			return this;
 		}

+		private var _isWaiting:Boolean= false;
 		public function wait(duration:Number = 1):Effect{
-			var timer:Timer = new Timer(duration*1000);
+			var timer:Timer = new Timer(duration*1000,1);
+			_isWaiting = true;
 			timer.addEventListener(TimerEvent.TIMER_COMPLETE, function():void{
+				_isWaiting = false;
 				invalidateEffectQueue();
 			});
 			timer.start();
@@ -244,7 +247,7 @@
 		 *
 		 */
 		public function invalidateEffectQueue():void{
-			if(!_areEffectsPlaying){
+			if(!_areEffectsPlaying && !_isWaiting){
 				_currentlyAnimatingTargets[this._target] = this;
 				playNextEffect();
 			}


An UNLOAD event is not dispatched on any LoaderInfo for which INIT
has not already been dispatched. This is a pain in my ass.
Make MediaContainer dispatch UNLOAD when it unloads its business,
regardless of whether things have been initialized.

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

--- src/as/com/threerings/flash/MediaContainer.as
+++ src/as/com/threerings/flash/MediaContainer.as
@@ -77,6 +77,13 @@
 [Event(name="init", type="flash.events.Event")]

 /**
+ * Dispatched when we've unloaded our content... always. The LoaderInfo's UNLOAD event
+ * is only dispatched if the INIT event has already been dispatched and not if you cancel a
+ * load before it INIT.
+ */
+[Event(name="unload", type="flash.events.Event")]
+
+/**
  * A wrapper class for all media that will be placed on the screen.
  * Subject to change.
  */
@@ -299,6 +306,7 @@
                     // ignore
                 }
                 loader.unload();
+                dispatchEvent(new Event(Event.UNLOAD));

                 removeChild(loader);
                 var extra :String  = (url == _url) ? "" : (", _url=" + _url);


Log something when we unload media.

Log something when we unload media.

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

--- src/as/com/threerings/flash/MediaContainer.as
+++ src/as/com/threerings/flash/MediaContainer.as
@@ -237,6 +237,8 @@

             if (_media is Loader) {
                 var loader :Loader = (_media as Loader);
+                var url :String = loader.contentLoaderInfo.url;
+
                 // remove any listeners
                 removeListeners(loader.contentLoaderInfo);

@@ -249,6 +251,7 @@
                 loader.unload();

                 removeChild(loader);
+                log.info("Unloaded media [url=" + url + "].");

             } else if (_media is VideoDisplayer) {
                 var vid :VideoDisplayer = (_media as VideoDisplayer);


Enhanced XML config support to support children of classes for which injection points are defined

--- src/org/swiftsuspenders/Injector.as
+++ src/org/swiftsuspenders/Injector.as
@@ -166,16 +166,17 @@

 		private function getInjectionPoints(clazz : Class) : Array
 		{
-			var injectionPoints : Array = m_injectionPointLists[clazz] = [];
-
 			var description : XML = describeType(clazz);
+			var injectionPoints : Array = [];
+			m_injectionPointLists[clazz] = injectionPoints;
+			m_injectionPointLists[description.@name.toString()] = injectionPoints;
 			var node : XML;
-

 			// This is where we have to wire in the XML...
 			if(m_xmlMetadata && description..metadata.(@name == 'Inject').length())
 			{
 				createInjectionPointsFromConfigXML(description);
+				addParentInjectionPoints(description, injectionPoints);
 			}

 			var injectionPoint : InjectionPoint;
@@ -243,5 +244,13 @@
 				typeNode.appendChild(metaNode);
 			}
 		}
+
+		private function addParentInjectionPoints(description : XML, injectionPoints : Array) : void
+		{
+			var parentClassName : String = description.factory.extendsClass.@type[0];
+			var parentInjectionPoints : Array = m_injectionPointLists[parentClassName] ||
+					getInjectionPoints(Class(getDefinitionByName(parentClassName)));
+			injectionPoints.push.apply(injectionPoints, parentInjectionPoints);
+		}
 	}
 }


Very coarse security. This needs a re-think.

--- tamarin-central/thane/as3src/Thanette.as
+++ tamarin-central/thane/as3src/Thanette.as
@@ -20,6 +20,9 @@
     public static function initializeDomain (
         domainId :String, bridge :EventDispatcher, foreignHeart :Function) :void
     {
+        if (domainId == null || domainId.length == 0) {
+            throw new Error ("Domain must be spawned with an identifier");
+        }
         if (_initialized) {
             throw new Error("This domain has already been initialized");
         }


hide debugging code

hide debugging code

--- flash/src/org/flashsocket/utils/SHA1.as
+++ flash/src/org/flashsocket/utils/SHA1.as
@@ -124,33 +124,35 @@
 			);
 		}

-		public static function test():void {
-			var tests:Array = [
-				"abc",
-				"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-				"a",
-				"0123456701234567012345670123456701234567012345670123456701234567"
-			];
-			var results:Array = [
-				"A9 99 3E 36 47 06 81 6A BA 3E 25 71 78 50 C2 6C 9C D0 D8 9D",
-				"84 98 3E 44 1C 3B D2 6E BA AE 4A A1 F9 51 29 E5 E5 46 70 F1",
-				"86 F7 E4 37 FA A5 A7 FC E1 5D 1D DC B9 EA EA EA 37 76 67 B8",
-				"E0 C0 94 E8 67 EF 46 C3 50 EF 54 A7 F5 9D D6 0B ED 92 AE 83"
-			];
-
-			for (var t:int = 0; t < tests.length; t++) {
-				trace("Test " + (t + 1) + ":   " + tests[t]);
-				trace("expected: " + results[t]);
+		CONFIG::debug {
+			public static function test():void {
+				var tests:Array = [
+					"abc",
+					"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+					"a",
+					"0123456701234567012345670123456701234567012345670123456701234567"
+				];
+				var results:Array = [
+					"A9 99 3E 36 47 06 81 6A BA 3E 25 71 78 50 C2 6C 9C D0 D8 9D",
+					"84 98 3E 44 1C 3B D2 6E BA AE 4A A1 F9 51 29 E5 E5 46 70 F1",
+					"86 F7 E4 37 FA A5 A7 FC E1 5D 1D DC B9 EA EA EA 37 76 67 B8",
+					"E0 C0 94 E8 67 EF 46 C3 50 EF 54 A7 F5 9D D6 0B ED 92 AE 83"
+				];

-				var hashed:String = hash(tests[t]);
-				var hex:Array = [];
-				for (var h:int = 0; h < hashed.length; h++) {
-					hex.push((0x100 + hashed.charCodeAt(h)).toString(16).replace('1', '').toUpperCase());
+				for (var t:int = 0; t < tests.length; t++) {
+					trace("Test " + (t + 1) + ":   " + tests[t]);
+					trace("expected: " + results[t]);
+
+					var hashed:String = hash(tests[t]);
+					var hex:Array = [];
+					for (var h:int = 0; h < hashed.length; h++) {
+						hex.push((0x100 + hashed.charCodeAt(h)).toString(16).replace('1', '').toUpperCase());
+					}
+					var result:String = hex.join(" ");
+					trace("result:   " + result);
+					trace("correct:  " + (result === results[t]));
+					trace();
 				}
-				var result:String = hex.join(" ");
-				trace("result:   " + result);
-				trace("correct:  " + (result === results[t]));
-				trace();
 			}
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16894
Author:   aharui@adobe.com
Date:     2010-07-13T00:17:08.776587Z

Log Message:
-----------
add uncaughtError to Spark Application so folks can use Global Exception Handler

QE notes: new event
Doc notes: new event
Bugs: SDK-26046
Reviewer: Corey
Tests run: checkintests mustella/spark/Application
Is noteworthy for integration: yes

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

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -16,6 +16,7 @@
 import flash.display.InteractiveObject;
 import flash.events.ContextMenuEvent;
 import flash.events.Event;
+import flash.events.UncaughtErrorEvent;
 import flash.external.ExternalInterface;
 import flash.net.URLRequest;
 import flash.net.navigateToURL;
@@ -68,6 +69,18 @@
  *  @productversion Flex 4
  */
 [Event(name="error", type="flash.events.ErrorEvent")]
+
+/**
+ *  Dispatched when an uncaught error is caught by the Global Exception Handler
+ *
+ *  @eventType flash.events.UncaughtErrorEvent.UNCAUGHT_ERROR
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Event(name="uncaughtError", type="flash.events.UncaughtErrorEvent")]

 //--------------------------------------
 //  Styles
@@ -904,6 +917,10 @@

         var sm:ISystemManager = systemManager;

+		// add listener if one is already attached
+		if (hasEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR))
+			systemManager.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorRedispatcher);
+
         _url = LoaderUtil.normalizeURL(sm.loaderInfo);
         _parameters = sm.loaderInfo.parameters;

@@ -1304,6 +1321,33 @@

         invalidateDisplayList();
     }
+
+	/**
+	 * @private
+	 */
+	override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
+	{
+		// this can get called before we know our systemManager.  Hook it up later in initialize()
+		if (type == UncaughtErrorEvent.UNCAUGHT_ERROR && systemManager)
+			systemManager.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorRedispatcher);
+		super.addEventListener(type, listener, useCapture, priority, useWeakReference)
+	}
+
+	/**
+	 * @private
+	 */
+	override public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
+	{
+		super.removeEventListener(type, listener, useCapture);
+		if (type == UncaughtErrorEvent.UNCAUGHT_ERROR && systemManager)
+			systemManager.loaderInfo.uncaughtErrorEvents.removeEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorRedispatcher);
+	}
+
+	private function uncaughtErrorRedispatcher(event:Event):void
+	{
+		if (!dispatchEvent(event))
+			event.preventDefault();
+	}
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6474
Author:   jszeto@adobe.com
Date:     2009-05-01T20:45:45.128367Z

Log Message:
-----------
SDK-20892 - Using navigation keys don't work when the DropDownList is closed

The dataGroup skin part holds the layout value. The layout was null when the DropDownList was closed because the dataGroup only exists when the DropDownList is open. The fix is to override the layout getter and return VerticalLayout if the dataGroup doesn't exist.

SDK-20850 - DropDownList dispatches open event before dropDown is visible on screen

The skin update was changed from synchronous to asynchronous, so the open event was dispatched too early. We now wait for UPDATE_COMPLETE before sending the open or close events.

SDK-19874 - Setting selectedIndex on Spark DropDownList control doesnt auto-scroll dropdown

The skin update was changed from synchronous to asynchronous, so the dataGroup skin part didn't exist when we tried to auto-scroll. We now wait for UPDATE_COMPLETE before auto-scrolling.

SDK-20810 - DropDownList does not display color style correctly when set to white

The labelElement was getting colorized to the baseColor. The DropDownListSkin has been changed to subclass Skin instead of SparkSkin. There are no visuals in the DropDownListSkin that need any of the SparkSkin functionality.

SDK-20870 - Changing Spark DropDownList skin at runtime clears the DropDownList Button label

In partAdded, when the labelElement is added, we now update the labelElement with the selectedItem's text representation

QE Notes: Fix for SDK-20850 should resolve the image snapshot problem when writing DDL mustella tests.
Doc Notes: None
Bugs: SDK-20892, SDK-20850, SDK-19874, SDK-20810, SDK-20870
Reviewer: Ryan

Modified Paths:
--------------
<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/components/DropDownList.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/skins/default/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>

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

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -60,9 +60,6 @@
 		addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
 	}

-	private var layoutWidth:Number = 0;
-	private var layoutHeight:Number = 0;
-
 	private var popUpWidth:Number = 0;
 	private var popUpHeight:Number = 0;

@@ -275,11 +272,7 @@
 	 */
 	override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
 	{
-		super.updateDisplayList(unscaledWidth, unscaledHeight);
-
-		layoutWidth = unscaledWidth;
-		layoutHeight = unscaledHeight;
-
+		super.updateDisplayList(unscaledWidth, unscaledHeight);
 		applyPopUpTransform(unscaledWidth, unscaledHeight);
 	}

@@ -300,7 +293,7 @@
 	 */
 	public function updatePopUpTransform():void
 	{
-		applyPopUpTransform(layoutWidth, layoutHeight);
+		applyPopUpTransform(width, height);
 	}

 	/**
@@ -330,12 +323,8 @@
 	 */
 	private function updatePopUpState():void
 	{
-		// If we haven't been initialized, we need to perform this function
-		// in commitProperties
 		if (!addedToStage)
-		{
-			return;
-		}
+			return;

 		/*if (popUpFactory && popUp == null && displayPopUp)
 		{
@@ -352,7 +341,7 @@
 			popUpIsDisplayed = true;
 			popUpWidth = popUp.explicitWidth;
 			popUpHeight = popUp.explicitHeight;
-			applyPopUpTransform(layoutWidth, layoutHeight);
+			applyPopUpTransform(width, height);
 		}
 		else if (popUp.parent != null && displayPopUp == false)
 		{


Transferred from the Adobe Open Source Subversion Repository

Revision: 11562
Author:   jon.avila@ssbbartgroup.com
Date:     2009-11-07T03:24:50.454141Z

Log Message:
-----------
Updated TitleWindow.as to include mixins - metadata/methods for accessibility implementation.  See recently added TitleWindowAccImpl class.
QE notes: none
Doc notes: none
Bugs: n/a
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TitleWindow.as

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


added time() and timeEnd()

added time() and timeEnd()

calls respective chrome console.* method

--- src/org/hola/ZErr.as
+++ src/org/hola/ZErr.as
@@ -9,5 +9,19 @@
             ExternalInterface.call.apply(ExternalInterface,
                 ['console.log', msg].concat(rest))
         }
+
+        public static function time(label : String) : void {
+            CONFIG::LOGGING {
+            if (ExternalInterface.available)
+                ExternalInterface.call("console.time", label);
+            }
+        }
+
+        public static function timeEnd(label : String) : void {
+            CONFIG::LOGGING {
+            if (ExternalInterface.available)
+                ExternalInterface.call("console.timeEnd", label);
+            }
+        }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3552
Author:   rfrishbe@adobe.com
Date:     2008-10-09T22:07:55.906700Z

Log Message:
-----------
This patch contains multiple changes, mostly renames, outlined below:

1.Rename properties in FxComponent: skinObject -> skin, skinZZ -> skinClass.
2.Rename property in Skin: data -> fxComponent (this also means Skin doesn’t implement IDataRenderer anymore)
3.Renames in DataGroup: Mostly around "skin" to "renderer" to get terminology correct
4.Random other cleanups: For instance changing typing of "*" to "Object" in ItemsComponent and DataGroup or removing some un-used imports in Group and GroupBase.
5.Lots of cleanup in flex4tests to deal with renaming of classes and renaming of properties
6.Gumbo-manifest.mxml  - typo...some files listed as mx.componentss.* instead of mx.components.*.  This file is going away as all components are moved into the 2009 namespace, but we'll fix this for now.
7.Defaults.css – FxDataComponent should be FxDataContainer.
8.SystemManger fix: this was in the previous SystemManager but got overwritten by a bad merge.  Jim’s aware of the issue, and I’m checking in the fix for it.

QE: Yes - Joann and Steve have pre-emptively made the changes
Doc: Yes
Bugs: SDK-17056, SDK-17174
Reviewer: Chet, Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxNumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/NewEffects.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/AddItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/EffectsProperties.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/RemoveItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxSpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/AnimationPropertiesForm.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/ScrollbarFrenzy.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/CircularScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -215,7 +215,7 @@
      */
     override protected function itemSelected(item:Object, selected:Boolean):void
     {
-        var item:* = dataGroup.getItemSkin(item);
+        var item:Object = dataGroup.getItemRenderer(item);

         if (item)
         {
@@ -361,10 +361,10 @@
      */
     private function dataGroup_itemAddHandler(event:ItemExistenceChangedEvent):void
     {
-        var skin:* = dataGroup.getItemSkin(event.relatedObject);
-
-        if (skin)
-            skin.addEventListener("click", item_clickHandler);
+        var renderer:Object = dataGroup.getItemRenderer(event.relatedObject);
+
+        if (renderer)
+            renderer.addEventListener("click", item_clickHandler);
     }

     /**
@@ -373,10 +373,10 @@
      */
     private function dataGroup_itemRemoveHandler(event:ItemExistenceChangedEvent):void
     {
-        var skin:* = dataGroup.getItemSkin(event.relatedObject);
-
-        if (skin)
-            skin.removeEventListener("click", item_clickHandler);
+        var renderer:Object = dataGroup.getItemRenderer(event.relatedObject);
+
+        if (renderer)
+            renderer.removeEventListener("click", item_clickHandler);
     }

     /**
@@ -387,7 +387,7 @@
     {
         // Multiple selection needs to be added here....

-        selectedItem = dataGroup.getSkinItem(DisplayObject(event.currentTarget));
+        selectedItem = dataGroup.getRendererItem(DisplayObject(event.currentTarget));
     }
 }


added ISceneNode.getControllersByType() method

--- src/aerys/minko/scene/node/ISceneNode.as
+++ src/aerys/minko/scene/node/ISceneNode.as
@@ -83,6 +83,9 @@
 		 *
 		 */
 		function getController(index : uint) : AbstractController;
+
+		function getControllersByType(type			: Class,
+									  controllers	: Vector.<AbstractController> = null) : Vector.<AbstractController>;
 		/**
 		 * Add a controller to the scene node.
 		 * @param controller


- changed Label to only disable mouseChildren for its m_contentDisplay and only do so if selectable is set to 'false'

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

--- src/reprise/controls/Label.as
+++ src/reprise/controls/Label.as
@@ -169,7 +169,6 @@
 		{
 			super.initialize();

-			mouseChildren = false;
 			m_xmlDefinition = new XML('<p/>');
 			m_textLinkHrefs = [];
 		}
@@ -194,6 +193,8 @@
 		{
 			super.applyStyles();
 			m_selectable = m_currentStyles.selectable;
+			m_contentDisplay.mouseChildren = m_selectable;
+
 			var fmt : TextFormat = new TextFormat();
 			if (m_currentStyles.tabStops)
 			{


Note some exceptional cases to handle

Note some exceptional cases to handle

--- src/CameraMan.as
+++ src/CameraMan.as
@@ -49,6 +49,16 @@

         public function createCamera(event:Event) : void {
             cam = Camera.getCamera();
+
+            // TODO: handle a missing camera
+            // TODO: handle a "dead" camera (fps = 0?)
+            /* TODO: handle a muted camera? we'll only get an
+             * unmuted camera to start with if they've chosen to
+             * Remember Allow. If they haven't chosen Remember Deny,
+             * they'll automatically get a dialog from attachCamera()
+             * later.
+             */
+
             cam.addEventListener("status", awesome);
             trace("got camera " + cam.name + ". muted: " + cam.muted
                 + '. size: ' + cam.width + ',' + cam.height + '. fps: '