Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/accessibility/ComboBoxAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/ComboBoxAccImpl.as
@@ -23,6 +23,11 @@
 /**
  *  ComboBoxAccImpl is a subclass of AccessibilityImplementation
  *  which implements accessibility for the ComboBox class.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ComboBoxAccImpl extends ComboBaseAccImpl
 {
@@ -42,6 +47,11 @@
 	 *  Afterwards, when instances of ComboBox are initialized,
 	 *  their accessibilityImplementation property
 	 *  will be set to an instance of this class.

+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static function enableAccessibility():void
 	{
@@ -75,6 +85,11 @@
 	 *
 	 *  @param master The UIComponent instance that this AccImpl instance
 	 *  is making accessible.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function ComboBoxAccImpl(master:UIComponent)
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 3222
Author:   jimurphy@adobe.com
Date:     2008-09-16T14:09:08.134976Z

Log Message:
-----------
Merged 3.0.x revisions 3157,3162,3165-3166,3168,3177,3180-3183,3185,3187,3189,3199 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TileList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</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/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.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/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.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/dataGridClasses/DataGridHeader.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/events/InterManagerRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
@@ -4904,6 +4904,10 @@
         var o:Sprite;
         var g:Graphics;
         var contentHolder:ListBaseContentHolder = DisplayObject(item).parent as ListBaseContentHolder;
+
+        if (!contentHolder)
+        	return;
+
         var rowInfo:Array = contentHolder.rowInfo;
         var selectionLayer:Sprite = contentHolder.selectionLayer;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10950
Author:   jimurphy@adobe.com
Date:     2009-10-09T15:05:04.160257Z

Log Message:
-----------
Merge 3.x revs 10470,10689,10819
blocked 10775,10868

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>

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

--- frameworks/projects/mx/src/mx/controls/listClasses/TileBase.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/TileBase.as
@@ -594,8 +594,9 @@
                 item = createItemRenderer(data);
             item.owner = this;
             item.styleName = listContent;
-            item.visible = true;
-        }
+        }
+        if (!item.parent)
+            listContent.addChild(DisplayObject(item));

         rowData = ListData(makeListData(data, uid, rowNum, colNum));
         rowMap[item.name] = rowData;
@@ -605,8 +606,6 @@
         if (wrappedData != data)
             dataItemWrappersByRenderer[item] = wrappedData;

-        if (!item.parent)
-            listContent.addChild(DisplayObject(item));
         item.visible = true;
         if (uid)
             visibleData[uid] = item;


FLEX-33058 Lengthening test's timeout even more.

--- frameworks/projects/advancedgrids/tests/mx/controls/FLEX_33058_Tests.as
+++ frameworks/projects/advancedgrids/tests/mx/controls/FLEX_33058_Tests.as
@@ -69,7 +69,7 @@
             noEnterFramesRemaining = NaN;
         }

-        [Test(async, timeout=1000)]
+        [Test(async, timeout=1600)]
         public function test_sorting_doesnt_throw_fatal():void
         {
             //given
@@ -81,7 +81,7 @@
             //then wait a few frames
             noEnterFramesRemaining = NO_ENTER_FRAMES_TO_ALLOW;
             UIImpersonator.testDisplay.addEventListener(Event.ENTER_FRAME, onEnterFrame);
-            Async.handleEvent(this, _finishNotifier, Event.COMPLETE, onGridAddedToStage, 300);
+            Async.handleEvent(this, _finishNotifier, Event.COMPLETE, onGridAddedToStage, 500);
         }

         private function onGridAddedToStage(event:Event, passThroughData:Object):void
@@ -92,7 +92,7 @@
             //then - wait a few more frames
             noEnterFramesRemaining = NO_ENTER_FRAMES_TO_ALLOW;
             UIImpersonator.testDisplay.addEventListener(Event.ENTER_FRAME, onEnterFrame);
-            Async.handleEvent(this, _finishNotifier, Event.COMPLETE, onGridDrawn, 300);
+            Async.handleEvent(this, _finishNotifier, Event.COMPLETE, onGridDrawn, 500);
         }

         private function onGridDrawn(event:Event, passThroughData:Object):void
@@ -106,7 +106,7 @@
             //then - wait a few more frames
             noEnterFramesRemaining = NO_ENTER_FRAMES_TO_ALLOW;
             UIImpersonator.testDisplay.addEventListener(Event.ENTER_FRAME, onEnterFrame);
-            Async.handleEvent(this, _finishNotifier, Event.COMPLETE, onGridSetupComplete, 300);
+            Async.handleEvent(this, _finishNotifier, Event.COMPLETE, onGridSetupComplete, 500);
         }

         private static function onGridSetupComplete(event:Event, passThroughData:Object):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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

 package mx.charts.chartClasses
 {


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

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

 package mx.charts.chartClasses
 {


Added SetExactURL and defined a var as an Object

--- protogeni/demo/shared/Operation.as
+++ protogeni/demo/shared/Operation.as
@@ -1,149 +1,154 @@
-/* GENIPUBLIC-COPYRIGHT
- * Copyright (c) 2008, 2009 University of Utah and the Flux Group.
- * All rights reserved.
- *
- * Permission to use, copy, modify and distribute this software is hereby
- * granted provided that (1) source code retains these copyright, permission,
- * and disclaimer notices, and (2) redistributions including binaries
- * reproduce the notices in supporting documentation.
- *
- * THE UNIVERSITY OF UTAH ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  THE UNIVERSITY OF UTAH DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- */
-
-package
-{
-  import flash.events.ErrorEvent;
-  import flash.events.Event;
-  import flash.utils.Dictionary;
-  import flash.system.Security;
-  import com.mattism.http.xmlrpc.ConnectionImpl;
-
-  public class Operation
-  {
-    public function Operation(qualifiedMethod : Array) : void
-    {
-      server = null;
-      reset(qualifiedMethod);
-    }
-
-    public function reset(qualifiedMethod : Array) : void
-    {
-      if (qualifiedMethod != null)
-      {
-        module = qualifiedMethod[0];
-        method = qualifiedMethod[1];
-      }
-      clearFields();
-      resetUrl();
-      if (server != null)
-      {
-        server.cleanup();
-        server = null;
-      }
-      success = null;
-      failure = null;
-    }
-
-    public function resetUrl() : void
-    {
-      url = "https://" + XMLRPC_SERVER + SERVER_PATH + module;
-    }
-
-    public function setUrl(newUrl : String) : void
-    {
-      url = newUrl + "/" + module;
-    }
-
-    public function getUrl() : String
-    {
-      return url;
-    }
-
-    public function addField(key : String, value : Object) : void
-    {
-      param[key] = value;
-    }
-
-    public function clearFields() : void
-    {
-      param = new Object();
-    }
-
-    public function call(newSuccess : Function, newFailure : Function) : void
-    {
-      try
-      {
-        if (visitedSites[url] != true)
-        {
-          visitedSites[url] = true;
-          var hostPattern : RegExp = /^(http(s?):\/\/([^\/]+))(\/.*)?$/;
-          var match = hostPattern.exec(url);
-          if (match != null)
-          {
-            var host : String = match[1];
-            Security.loadPolicyFile(host + "/protogeni/crossdomain.xml");
-          }
-        }
-        success = newSuccess;
-        failure = newFailure;
-        server = new ConnectionImpl(url);
-        server.addEventListener(Event.COMPLETE, callSuccess);
-        server.addEventListener(ErrorEvent.ERROR, callFailure);
-        server.addParam(param, "struct");
-        server.call(method);
-      }
-      catch (e : Error)
-      {
-        Main.getConsole().appendText("\n\nException on XMLRPC Call: "
-                                     + e.toString() + "\n\n");
-      }
-    }
-
-    public function getSendXml() : String
-    {
-      return server._method.getXml().toString();
-    }
-
-    public function getResponseXml() : String
-    {
-      return String(server._response.data);
-    }
-
-    private function callSuccess(event : Event) : void
-    {
-      cleanup();
-      success(Number(server.getResponse().code),
-//              server.getResponse().value.toString(),
-//              String(server.getResponse().output),
-              server.getResponse());
-    }
-
-    private function callFailure(event : ErrorEvent) : void
-    {
-      cleanup();
-      failure(event, server.getFault());
-    }
-
-    public function cleanup() : void
-    {
-      server.removeEventListener(Event.COMPLETE, callSuccess);
-      server.removeEventListener(ErrorEvent.ERROR, callFailure);
-    }
-
-    private var module : String;
-    private var method : String;
-    private var url : String;
-    private var param : Object;
-    private var server : ConnectionImpl;
-    private var success : Function;
-    private var failure : Function;
-
-    private static var XMLRPC_SERVER : String = "boss.emulab.net:443";
-//    private static var XMLRPC_SERVER : String = "myboss.jonlab.geni.emulab.net:443";
-    private static var SERVER_PATH : String = "/protogeni/xmlrpc/";
-
-    private static var visitedSites : Dictionary = new Dictionary();
-  }
-}
+/* GENIPUBLIC-COPYRIGHT
+ * Copyright (c) 2008, 2009 University of Utah and the Flux Group.
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software is hereby
+ * granted provided that (1) source code retains these copyright, permission,
+ * and disclaimer notices, and (2) redistributions including binaries
+ * reproduce the notices in supporting documentation.
+ *
+ * THE UNIVERSITY OF UTAH ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  THE UNIVERSITY OF UTAH DISCLAIMS ANY LIABILITY OF ANY KIND
+ * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ */
+
+package
+{
+  import flash.events.ErrorEvent;
+  import flash.events.Event;
+  import flash.utils.Dictionary;
+  import flash.system.Security;
+  import com.mattism.http.xmlrpc.ConnectionImpl;
+
+  public class Operation
+  {
+    public function Operation(qualifiedMethod : Array) : void
+    {
+      server = null;
+      reset(qualifiedMethod);
+    }
+
+    public function reset(qualifiedMethod : Array) : void
+    {
+      if (qualifiedMethod != null)
+      {
+        module = qualifiedMethod[0];
+        method = qualifiedMethod[1];
+      }
+      clearFields();
+      resetUrl();
+      if (server != null)
+      {
+        server.cleanup();
+        server = null;
+      }
+      success = null;
+      failure = null;
+    }
+
+    public function resetUrl() : void
+    {
+      url = "https://" + XMLRPC_SERVER + SERVER_PATH + module;
+    }
+
+    public function setUrl(newUrl : String) : void
+    {
+      url = newUrl + "/" + module;
+    }
+
+    public function setExactUrl(newUrl : String) : void
+    {
+      url = newUrl;
+    }
+
+    public function getUrl() : String
+    {
+      return url;
+    }
+
+    public function addField(key : String, value : Object) : void
+    {
+      param[key] = value;
+    }
+
+    public function clearFields() : void
+    {
+      param = new Object();
+    }
+
+    public function call(newSuccess : Function, newFailure : Function) : void
+    {
+      try
+      {
+        if (visitedSites[url] != true)
+        {
+          visitedSites[url] = true;
+          var hostPattern : RegExp = /^(http(s?):\/\/([^\/]+))(\/.*)?$/;
+          var match : Object = hostPattern.exec(url);
+          if (match != null)
+          {
+            var host : String = match[1];
+            Security.loadPolicyFile(host + "/protogeni/crossdomain.xml");
+          }
+        }
+        success = newSuccess;
+        failure = newFailure;
+        server = new ConnectionImpl(url);
+        server.addEventListener(Event.COMPLETE, callSuccess);
+        server.addEventListener(ErrorEvent.ERROR, callFailure);
+        server.addParam(param, "struct");
+        server.call(method);
+      }
+      catch (e : Error)
+      {
+        Main.getConsole().appendText("\n\nException on XMLRPC Call: "
+                                     + e.toString() + "\n\n");
+      }
+    }
+
+    public function getSendXml() : String
+    {
+      return server._method.getXml().toString();
+    }
+
+    public function getResponseXml() : String
+    {
+      return String(server._response.data);
+    }
+
+    private function callSuccess(event : Event) : void
+    {
+      cleanup();
+      success(Number(server.getResponse().code),
+//              server.getResponse().value.toString(),
+//              String(server.getResponse().output),
+              server.getResponse());
+    }
+
+    private function callFailure(event : ErrorEvent) : void
+    {
+      cleanup();
+      failure(event, server.getFault());
+    }
+
+    public function cleanup() : void
+    {
+      server.removeEventListener(Event.COMPLETE, callSuccess);
+      server.removeEventListener(ErrorEvent.ERROR, callFailure);
+    }
+
+    private var module : String;
+    private var method : String;
+    private var url : String;
+    private var param : Object;
+    private var server : ConnectionImpl;
+    private var success : Function;
+    private var failure : Function;
+
+    private static var XMLRPC_SERVER : String = "boss.emulab.net:443";
+//    private static var XMLRPC_SERVER : String = "myboss.jonlab.geni.emulab.net:443";
+    private static var SERVER_PATH : String = "/protogeni/xmlrpc/";
+
+    private static var visitedSites : Dictionary = new Dictionary();
+  }
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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

 package mx.automation.delegates.controls


Transferred from the Adobe Open Source Subversion Repository

Revision: 17265
Author:   gruehle@adobe.com
Date:     2010-08-11T01:04:24.987005Z

Log Message:
-----------
Initial checkin of MobileTextField, IDisplayText, and IEditableText. Nothing is using these classes/interfaces yet, so there are no functional changes. Checking in now so Ryan can start using it in item renderers.

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

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IDisplayText.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileTextField.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IEditableText.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -0,0 +1,582 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.components.supportClasses
+{
+import flash.text.TextField;
+import flash.text.TextFieldType;
+import flash.text.TextFormat;
+import flash.text.TextFormatAlign;
+
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.styles.IStyleClient;
+
+import spark.core.IEditableText;
+
+use namespace mx_internal;
+
+// TODO:
+//  - load truncation indicator from resource
+//  - verify focusEnabled functionality
+//  - implement heightInLines/widthInChars (or remove)
+//  - implement scrollToRange()
+//  - dispatch isTruncatedChanged
+//
+//
+// To use:
+//   in createChildren():
+//       var tf:MobileTextField = new MobileTextField();
+//       tf.styleProvider = this;
+//       tf.editable = true|false;   // for editable text
+//       tf.multiline = true|false;  // for multiline text
+//       tf.wordWrap = true|false;   // for word wrapping
+//       addChild(tf);
+//
+//   in commitProperties():
+//       tf.text = "...." - if needed
+//
+//   in measure();
+//       Use UIComponent.measureText()
+//
+//   in updateDisplayList():
+//       tf.commitStyles();    // Always call this. No-op if styles already applied.
+//       tf.x = ...
+//       tf.y = ...
+//       tf.width = ...
+//       tf.height = ...
+//       // if you want truncated text:
+//       tf.truncateToFit();
+//
+//   in styleChanged():
+//       tf.styleChanged(styleProp);
+//
+// Supported styles: textAlign, fontFamily, fontWeight, "colorName", fontSize, fontStyle, textDecoration, textIndent, leading, letterSpacing, paddingLeft, paddingRight
+
+/**
+ *  The MobileTextField class is a text primitive for use in ActionScript
+ *  skins and item renderers. It cannot be used in MXML markup.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+public class MobileTextField extends TextField implements IEditableText
+{
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    public function MobileTextField()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  IDisplayText implementation
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  text
+    //----------------------------------
+
+    /**
+     *  The text displayed by this text component.
+     *
+     *
The formatting of this text is controlled by CSS styles.
+     *  The supported styles depend on the subclass.

+     *
+     *  @default ""
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    override public function get text():String
+    {
+        return super.text;
+    }
+
+    override public function set text(value:String):void
+    {
+        super.text = value;
+        dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+    }
+
+    //----------------------------------
+    //  isTruncated
+    //----------------------------------
+
+    /**
+     *  A flag that indicates whether the text has been truncated.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get isTruncated():Boolean
+    {
+        return _isTruncated;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  IEditableText implementation
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  editable
+    //----------------------------------
+
+    /**
+     *  Flag that indicates whether the text is editable.
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get editable():Boolean
+    {
+        return type == TextFieldType.INPUT;
+    }
+
+    public function set editable(value:Boolean):void
+    {
+        type = value ? TextFieldType.INPUT : TextFieldType.DYNAMIC;
+    }
+
+    //----------------------------------
+    //  focusEnabled
+    //----------------------------------
+
+    private var _focusEnabled:Boolean = true;
+
+    /**
+     *  @copy mx.core.UIComponent#focusEnabled
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get focusEnabled():Boolean
+    {
+        return _focusEnabled;
+    }
+
+    public function set focusEnabled(value:Boolean):void
+    {
+        _focusEnabled = value;
+    }
+
+    //----------------------------------
+    //  enabled
+    //----------------------------------
+
+    private var _enabled:Boolean = true;
+
+    /**
+     *  @copy mx.core.UIComponent#enabled
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get enabled():Boolean
+    {
+        return _enabled;
+    }
+
+    public function set enabled(value:Boolean):void
+    {
+        _enabled = mouseEnabled = value;
+    }
+
+    //----------------------------------
+    //  horizontalScrollPostion
+    //----------------------------------
+
+    /**
+     *  The horizontal scroll position of the text.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get horizontalScrollPosition():Number
+    {
+        return scrollH;
+    }
+
+    public function set horizontalScrollPosition(value:Number):void
+    {
+        // TODO: range check?
+        scrollH = int(value);
+    }
+
+    //----------------------------------
+    //  selectionAnchorPosition
+    //----------------------------------
+
+    /**
+     *  The anchor, or first clicked position, of the selection.
+     *  If the implementation does not support selection anchor
+     *  this is the first character of the selection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get selectionAnchorPosition():int
+    {
+        // TextField doesn't have selection "anchor" position
+        return selectionBeginIndex;
+    }
+
+    //----------------------------------
+    //  selectionActivePosition
+    //----------------------------------
+
+    /**
+     *  The active, or last clicked position, of the selection.
+     *  If the implementation does not support selection anchor
+     *  this is the last character of the selection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get selectionActivePosition():int
+    {
+        // TextField doesn't have selection "active" position
+        return selectionEndIndex;
+    }
+
+
+    ///////
+    /// TODO: Figure out if we can implement these properties. If not, they should
+    //  be removed from this class and IEditableText.
+    ///////
+
+    public function get heightInLines():Number
+    {
+        // TODO: implement me (or remove)
+        return 1;
+    }
+
+    public function set heightInLines(value:Number):void
+    {
+        // TODO: implement me (or remove)
+    }
+
+    public function get widthInChars():Number
+    {
+        // TODO: implement me (or remove)
+        return 1;
+    }
+
+    public function set widthInChars(value:Number):void
+    {
+        // TODO: implement me (or remove)
+    }
+
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  IEditableText Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Scroll so the specified range is in view.
+     *
+     *  @param anchorPosition The anchor position of the selection range.
+     *  @param activePosition The active position of the selection range.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function scrollToRange(anchorPosition:int, activePosition:int):void
+    {
+        // TODO: implement me
+    }
+
+    /**
+     *  Inserts the specified text into the text component
+     *  as if you had typed it.
+     *
+     *
If a range was selected, the new text replaces the selected text.
+     *  If there was an insertion point, the new text is inserted there.

+     *
+     *
An insertion point is then set after the new text.
+     *  If necessary, the text will scroll to ensure
+     *  that the insertion point is visible.

+     *
+     *  @param text The text to be inserted.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function insertText(text:String):void
+    {
+        replaceSelectedText(text);
+    }
+
+    /**
+     *  Selects a specified range of characters.
+     *
+     *
If either position is negative, it will deselect the text range.

+     *
+     *  @param anchorPosition The character position specifying the end
+     *  of the selection that stays fixed when the selection is extended.
+     *
+     *  @param activePosition The character position specifying the end
+     *  of the selection that moves when the selection is extended.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function selectRange(anchorIndex:int, activeIndex:int):void
+    {
+        // TODO: normalize?
+        setSelection(anchorIndex, activeIndex);
+    }
+
+    /**
+     *  Selects all of the text.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function selectAll():void
+    {
+        setSelection(0, length);
+    }
+
+    /**
+     *  Set focus to this text field.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function setFocus():void
+    {
+        stage.focus = this;
+    }
+
+    // TODO: consider adding lineBreak property instead of using a style.
+    public function setStyle(styleProp:String, value:*):void // Only used for setStyle("lineBreak", "explicit")
+    {
+        if (styleProp == "lineBreak")
+            wordWrap = !(value == "explicit");
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  styleProvider
+    //----------------------------------
+
+   /**
+     *  The object that provides styles for this text component. This
+     *  property must be set for the text to pick up the correct styles.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public var styleProvider:IStyleClient;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Commit the styles into the TextField. This method must be called
+     *  before the text is displayed, and any time the styles have changed.
+     *  This method does nothing if the styles have already been committed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function commitStyles():void
+    {
+        if (styleProvider && invalidateStyleFlag)
+        {
+            var align:String = styleProvider.getStyle("textAlign");
+            if (align == "start")
+                align = TextFormatAlign.LEFT;
+            if (align == "end")
+                align = TextFormatAlign.RIGHT;
+            textFormat.align = align;
+            textFormat.font = styleProvider.getStyle("fontFamily");
+            textFormat.bold = styleProvider.getStyle("fontWeight") == "bold";
+            textFormat.color = styleProvider.getStyle(colorName);
+            textFormat.size = styleProvider.getStyle("fontSize");
+            textFormat.italic = styleProvider.getStyle("fontStyle") == "italic";
+            textFormat.underline = styleProvider.getStyle("textDecoration") == "underline";
+            textFormat.indent = styleProvider.getStyle("textIndent");
+            textFormat.leading = styleProvider.getStyle("leading");
+            textFormat.letterSpacing = styleProvider.getStyle("letterSpacing");
+            textFormat.leftMargin = styleProvider.getStyle("paddingLeft");
+            textFormat.rightMargin = styleProvider.getStyle("paddingRight");
+
+            defaultTextFormat = textFormat;
+            setTextFormat(textFormat);
+            invalidateStyleFlag = false;
+        }
+    }
+
+    /**
+     *  Notify the text field that a style is changed. This method is typically
+     *  called by the styleChanged() method of the style provider.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function styleChanged(styleProp:String):void
+    {
+        if (styleProp == null || styleProp == "styleName"
+            || supportedStyles.indexOf(styleProp) >= 0
+            || styleProp == colorName)
+        {
+            invalidateStyleFlag = true;
+        }
+    }
+
+    /**
+     *  Truncate text to make it fit horizontally in the area defined for the control,
+     *  and append an ellipsis, three periods (...), to the text.
+     *
+     *  @param truncationIndicator The text to be appended after truncation.
+     *  If you pass null, a localizable string
+     *  such as "..." will be used.
+     *
+     *  @return true if the text needed truncation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function truncateToFit(truncationIndicator:String = "..."):Boolean
+    {
+    //    if (!truncationIndicator)
+    //          truncationIndicator = truncationIndicatorResource;
+
+        // Ensure that the proper CSS styles get applied to the textField
+        // before measuring text.
+        // Otherwise the callLater(validateNow) in styleChanged()
+        // can apply the CSS styles too late.
+    //     commitStyles();
+
+        var originalText:String = super.text;
+
+        untruncatedText = originalText;
+
+        var w:Number = width;
+
+        _isTruncated = false;
+
+        // Need to check if we should truncate, but it
+        // could be due to rounding error.  Let's check that it's not.
+        // Examples of rounding errors happen with "South Africa" and "Game"
+        // with verdana.ttf.
+        if (originalText != "" && textWidth + TEXT_WIDTH_PADDING > w + 0.00000000000001)
+        {
+            // This should get us into the ballpark.
+            var s:String = super.text = originalText;
+            originalText.slice(0,
+                Math.floor((w / (textWidth + TEXT_WIDTH_PADDING)) * originalText.length));
+
+            while (s.length > 1 && textWidth + TEXT_WIDTH_PADDING > w)
+            {
+                s = s.slice(0, -1);
+                super.text = s + truncationIndicator;
+            }
+
+            _isTruncated = true;
+            return true;
+        }
+
+        return false;
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    // Name of the style to use for determining the text color
+    mx_internal var colorName:String = "color";
+
+
+    private static var supportedStyles:String = "textAlign fontFamily fontWeight color fontSize textDecoration textIndent leading letterSpacing paddingLeft paddingRight"
+    private var invalidateStyleFlag:Boolean = true;
+    private static var textFormat:TextFormat = new TextFormat();
+    private var untruncatedText:String;  // TODO: Use it or loose it
+    private var _isTruncated:Boolean = false;
+
+    /**
+     *  @private
+     *  The padding to be added to textWidth to get the width
+     *  of a TextField that can display the text without clipping.
+     */
+    private static const TEXT_WIDTH_PADDING:int = 5;
+
+    /**
+     *  @private
+     *  The padding to be added to textHeight to get the height
+     *  of a TextField that can display the text without clipping.
+     */
+    private static const TEXT_HEIGHT_PADDING:int = 4;
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19724
Author:   jasonsj@adobe.com
Date:     2011-01-12T01:07:20.451197Z

Log Message:
-----------
Moved ActionBar font color style declaration to #titleDisplay part and subclasses of ButtonBase
Replaced MobileSkin usage of layoutMeasuredWidth/Height with minWidth/Height

QE notes: Some mustella baselines for ActionBar custom content will need to be regenerated. In particular, usage of TextInput with text content.
Doc notes:
Bugs:
SDK-28948 The default color for text in TextInput on ActionBar is white so it looks invisible
SDK-28953 Button width not adjusted as expected when changing percentWidth at runtime
Reviewer: rfrishbe, chiedozi
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaVScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaHScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorButtonBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionRoundedButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as
@@ -95,7 +95,7 @@
                 downSymbolIconSelectedClass = spark.skins.mobile320.assets.CheckBox_downSymbolSelected;

                 layoutGap = 20;
-                layoutMeasuredWidth = 64;
+                minWidth = 64;
                 layoutBorderSize = 4;

                 break;
@@ -112,7 +112,7 @@
                 downSymbolIconSelectedClass = spark.skins.mobile240.assets.CheckBox_downSymbolSelected;

                 layoutGap = 15;
-                layoutMeasuredWidth = 48;
+                minWidth = 48;
                 layoutBorderSize = 2;

                 break;
@@ -130,7 +130,7 @@
                 downSymbolIconSelectedClass = spark.skins.mobile160.assets.CheckBox_downSymbolSelected;

                 layoutGap = 10;
-                layoutMeasuredWidth = 32;
+                minWidth = 32;
                 layoutBorderSize = 2;

                 break;


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

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

 package mx.controls.treeClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22213
Author:   jszeto@adobe.com
Date:     2011-08-25T17:43:50.030021Z

Log Message:
-----------
Change BorderContainerSkin minHeight back to 112.

(The world isn't quite ready for a smaller BorderContainer)

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

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

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

--- frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as
@@ -63,8 +63,8 @@
 	{
 	    super();

-        minWidth = 30;
-        minHeight = 30;
+        minWidth = 112;
+        minHeight = 112;

 	    states = [
             new State({name:"normal"}),


Transferred from the Adobe Open Source Subversion Repository

Revision: 20965
Author:   chiedozi@adobe.com
Date:     2011-03-24T18:24:45.892711Z

Log Message:
-----------
Merging hero_private revision 20953 into trunk

Modified Paths:
--------------
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -1751,7 +1751,28 @@
         {
             if (contentCache.getCacheEntry(source))
             {
+                // We know we have this item cached (or atleast have attempted
+                // to load this item and cache it).  Because we're not sure whether
+                // this item has finished loading or not, let's set the icon's
+                // source to the placeholder (or null) first so that we can make sure
+                // we don't leave in a stale image while the load is still happening.
+                iconDisplay.source = iconPlaceholder;
+
+                // while we're loading,if iconPlaceholder is set,
+                // we'll keep that image up while we're loading
+                // the external content
+                iconDisplay.clearOnLoad = (iconPlaceholder == null);
+
+                // need to call validateProperties because we need this iconPlaceholder
+                // to actually get loaded up since we set iconDisplay.source to a remote
+                // image on the next line.  BitmapImage doesn't actually attempt to load
+                // up the image (even if it's a locally embedded asset) until commitProperties()
+                iconDisplay.validateProperties();
+
+                // now attempt to load up our other image (or grab it from the cache
+                // if the load had finished already)
                 iconDisplay.source = source;
+
                 return;
             }
         }
@@ -1768,7 +1789,10 @@
         // if we're off-screen, don't do anything
         // when we get re-included, our data will be reset as well
         if (!includeInLayout)
+        {
+            iconSourceToLoad = null;
             return;
+        }

         if (iconDisplay)
             iconDisplay.source = iconSourceToLoad;


Optimization: skip rendering if intensity <= 0.

--- src/org/zozuar/volumetrics/EffectContainer.as
+++ src/org/zozuar/volumetrics/EffectContainer.as
@@ -134,6 +134,7 @@
 		* @param e In case you want to make this an event listener.
 		*/
 		public function render(e:Event = null):void {
+			if(!(_lightBmp.visible = intensity > 0)) return;
 			var savedQuality:String = stage.quality;
 			if(rasterQuality) stage.quality = rasterQuality;
 			var mul:Number = colorIntegrity ? intensity : intensity/(1<<passes);


reset test suite

reset test suite

--- test/AllTests.as
+++ test/AllTests.as
@@ -9,18 +9,30 @@

 	import as3spec.*;
 	import com.gigya.WildfireTest;
-	import ras3r.controls.TextTest;
+	import ras3r.HashTest;
+	import ras3r.reaction_view.helpers.BoxHelperTest;
+	import ras3r.reaction_view.helpers.ComboBoxHelperTest;
 	import ras3r.reaction_view.helpers.ImageHelperTest;
 	import ras3r.reaction_view.helpers.TextFieldHelperTest;
+	import ras3r.reaction_view.helpers.TextInputHelperTest;
+	import ras3r.ReactionControllerTest;
+	import ras3r.ReactionViewTest;
+	import ras3r.reactive_resource.ResponseTest;

 	public class AllTests extends Suite
 	{
 		public function AllTests ()
 		{
 			add(com.gigya.WildfireTest);
-			add(ras3r.controls.TextTest);
+			add(ras3r.HashTest);
+			add(ras3r.reaction_view.helpers.BoxHelperTest);
+			add(ras3r.reaction_view.helpers.ComboBoxHelperTest);
 			add(ras3r.reaction_view.helpers.ImageHelperTest);
 			add(ras3r.reaction_view.helpers.TextFieldHelperTest);
+			add(ras3r.reaction_view.helpers.TextInputHelperTest);
+			add(ras3r.ReactionControllerTest);
+			add(ras3r.ReactionViewTest);
+			add(ras3r.reactive_resource.ResponseTest);
 		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17943
Author:   jszeto@adobe.com
Date:     2010-09-29T22:22:15.975011Z

Log Message:
-----------
ViewMenu initial checkin

Implemented ViewMenu, ViewMenuItem, ViewMenuLayout and all relevant skins.
Integrated into MobileApplicationBase and MobileApplication
Includes PARB review changes
Appearance will change once the visual design has been completed

QE notes: Ready to test!
Doc notes: Needs an ASDoc pass
Bugs: none
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/layouts/ViewMenuLayout.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/layouts</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.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/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenuItem.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.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/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/layouts/ViewMenuLayout.as
+++ frameworks/projects/mobilecomponents/src/spark/layouts/ViewMenuLayout.as
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.layouts
+{
+import flash.display.DisplayObject;
+import flash.display.Graphics;
+
+import mx.core.IVisualElement;
+
+import spark.components.ViewMenu;
+import spark.components.Group;
+import spark.components.supportClasses.GroupBase;
+import spark.layouts.TileLayout;
+
+/**
+ *  ViewMenuLayout is a specialized TileLayout for ViewMenu.
+ */
+public class ViewMenuLayout extends TileLayout
+{
+    /**
+     *  Constructor
+     */
+    public function ViewMenuLayout()
+    {
+        super();
+    }
+
+    private var _maxColumnCount:int = -1;
+
+    /**
+     *  @private
+     */
+    override public function set requestedColumnCount(value:int):void
+    {
+        _maxColumnCount = value;
+        super.requestedColumnCount = value;
+
+        if (target)
+            target.invalidateDisplayList();
+    }
+
+    /**
+     *  @private
+     */
+    override public function measure():void
+    {
+        var layoutTarget:GroupBase = target;
+        if (!layoutTarget)
+            return;
+
+        var numItems:int = layoutTarget.numElements;
+
+        var numRows:int = Math.ceil(numItems / _maxColumnCount);
+        var numColumns:int = Math.ceil(numItems / numRows);
+
+        requestedRowCount = numRows;
+        super.requestedColumnCount = numColumns;
+
+        super.measure();
+    }
+
+    /**
+     *  @private
+     */
+    override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+    {
+        var newColumnWidth:Number = (unscaledWidth - (horizontalGap * (requestedColumnCount-1))) / requestedColumnCount;
+
+        // If the column width has changed, make sure to clear the tile size cache
+        if (newColumnWidth != columnWidth)
+        {
+            columnWidth = newColumnWidth;
+            clearVirtualLayoutCache();
+        }
+
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+    }
+}
+}


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

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

 package mx.controls.dataGridClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18143
Author:   cframpto@adobe.com
Date:     2010-10-13T13:41:32.573545Z

Log Message:
-----------
Added missing last parameters to itemToString() call in itemToDataTip().

QE notes:
Doc notes:
Bugs: SDK-27766
Reviewer: Hans
Tests run: cyclone
Is noteworthy for integration:

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

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
@@ -1045,7 +1045,7 @@
         const tipField:String = (dataTipField) ? dataTipField : grid.dataTipField;
         const tipPath:Array = (tipField) ? [tipField] : dataFieldPath;

-        return itemToString(item, tipPath, tipFunction);
+        return itemToString(item, tipPath, tipFunction, this);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 5198
Author:   hmuller@adobe.com
Date:     2009-03-06T22:47:28.478141Z

Log Message:
-----------
Added GroupBase::getVirtualElement() per PARB.  This is the final PARB viewport/virtualization change.

Note that although this is a new public method, it should not be called directly by tests or apps.

QE Notes: Mustella DataGroup tests pass
Doc Notes: This is a new method.
Bugs:
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -261,7 +261,7 @@
     public function get typicalLayoutElement():ILayoutElement
     {
         if (!_typicalLayoutElement && target && (target.numElements > 0))
-            _typicalLayoutElement = target.getElementAt(0);
+            _typicalLayoutElement = target.getVirtualElementAt(0);
         return _typicalLayoutElement;
     }


abcdump now ignores version number when decoding (r+andre)


Fix 647184 - exactgc generator script should track conditional compilation directives: ignore comments (r=rulohani)

--- utils/exactgc.as
+++ utils/exactgc.as
@@ -833,13 +833,14 @@
             if (gcIndex == -1 && cppIndex == -1 && nativeIndex == -1)
                 continue;

+            // The start we found above may be inside a comment.  Here we handle
+            // line comments; it would be better if we could handle block comments too.
+            // Bugzilla 649333 tracks the block comment issue.
+
+            if (line.match(/^\s*\/\//))
+                continue;
+
             errorContext = "On " + filename + " line " + lineno;
-
-            // For line matching we match only at the start of the
-            // line after taking the substring starting at the
-            // known-good index.  This yields the same performance as
-            // using a global regex and setting lastIndex to indicate
-            // where we want to start matching.

             if (cppIndex >= 0) {
                 // CPP macro?
@@ -856,7 +857,11 @@
                 // lexicographically so clauses may become reorganized on output; this does not lead
                 // to bugs but makes the code confusing to read.

-                if ((result = (/^#\s*(ifdef|ifndef|if|elif|else|endif|define)/).exec(line.substring(cppIndex))) != null) {
+                // Match the whole line to make it more likely to weed out lines inside block comments,
+                // for example we'll catch the typical column of asterisks inside a block comment this way.
+                // It's heuristic; bugzilla 649333 tracks the problem.
+
+                if ((result = (/^\s*#\s*(ifdef|ifndef|if|elif|else|endif|define)/).exec(line)) != null) {
                     var rest = sanitizeCondition(line.substring(cppIndex + result[0].length));
                     var directive = result[1];
                     switch (directive) {
@@ -899,6 +904,12 @@
                     }
                 }
             }
+
+            // For line matching of GC_ directives we match only at
+            // the start of the line after taking the substring
+            // starting at the known-good index.  This yields the same
+            // performance as using a global regex and setting
+            // lastIndex to indicate where we want to start matching.

             if (gcIndex >= 0) {
                 // C++ annotations.


Transferred from the Adobe Open Source Subversion Repository

Revision: 1098
Author:   jimurphy@adobe.com
Date:     2008-04-03T21:50:39.896200Z

Log Message:
-----------
Merge 3.0.x -- 362:394, 427:429, 603:608, 644:645, 651:663, 672:676, 755:756, 763:766, 785:790, 812:814, 854:861, 862:866, 866:933,971:1009, 1050:1056 --> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/DefaultDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IList.as</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/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IRepeaterClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.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/framework/src/mx/resources/Locale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/SOAPMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IBrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ComponentDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.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/collections/IViewCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/IMenuItemRenderer.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/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ILayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Spacer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Fault.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/XMLListCollection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SliderEvent.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/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="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ScrollEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/CuePointManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/NumericStepperEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/CursorBookmark.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/LoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/FlexClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/SubscriptionInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/LogLogger.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/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</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/rpc/src/mx/rpc/events/HeaderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/build.xml</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/controls/dataGridClasses/DataGridDragProxy.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/controls/treeClasses/ITreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as
@@ -881,7 +881,7 @@

     /**
      *  The minimum width of the column.
-     *  @default 20.
+     *  @default 20
      */
     public function get minWidth():Number
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/mx/src/mx/skins/halo/DataGridHeaderBackgroundSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/DataGridHeaderBackgroundSkin.as
@@ -0,0 +1,81 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.skins.halo
+{
+
+import flash.display.GradientType;
+import flash.display.Graphics;
+import flash.geom.Matrix;
+import mx.styles.StyleManager;
+import mx.skins.ProgrammaticSkin;
+
+
+/**
+ *  The skin for the background of the column headers in a DataGrid control.
+ *
+ *  @see mx.controls.DataGrid
+ */
+public class DataGridHeaderBackgroundSkin extends ProgrammaticSkin
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function DataGridHeaderBackgroundSkin()
+	{
+		super();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override protected function updateDisplayList(w:Number, h:Number):void
+	{
+		var g:Graphics = graphics;
+		g.clear();
+
+		var colors:Array = getStyle("headerColors");
+		StyleManager.getColorNames(colors);
+
+		var matrix:Matrix = new Matrix();
+		matrix.createGradientBox(w, h + 1, Math.PI/2, 0, 0);
+
+		colors = [ colors[0], colors[0], colors[1] ];
+		var ratios:Array = [ 0, 60, 255 ];
+		var alphas:Array = [ 1.0, 1.0, 1.0 ];
+
+		g.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix);
+		g.lineStyle(0, 0x000000, 0);
+		g.moveTo(0, 0);
+		g.lineTo(w, 0);
+		g.lineTo(w, h - 0.5);
+		g.lineStyle(0, getStyle("borderColor"), 100);
+		g.lineTo(0, h - 0.5);
+		g.lineStyle(0, 0x000000, 0);
+		g.endFill();
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17154
Author:   hmuller@adobe.com
Date:     2010-08-02T20:17:37.686021Z

Log Message:
-----------
GridLayout/layoutLinearElements now passes the "lastIndex" parameter (used for separators) along to GridLayout/freeLinearElements().

Changing Grid/dataProvider now clears cached layout state (clearVirtualLayout() cache) at commitProperties() time.

QE notes: DataGrid
Doc notes:
Bugs: SDK-27081, SDK-26873, SDK-27097
Reviewer:
Tests run: DataGrid 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/supportClasses/GridLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -94,10 +94,32 @@

     /**
      *  @private
+     *  Clear everything.
      */
     override public function clearVirtualLayoutCache():void
     {
-        // TBD(hmuller):DTRT when the target changes
+        freeGridElements(visibleRowBackgrounds);
+        freeGridElements(visibleRowSeparators);
+        visibleRowIndices.length = 0;
+
+        freeGridElements(visibleColumnBackgrounds);
+        freeGridElements(visibleColumnSeparators);
+        visibleColumnIndices.length = 0;
+
+        freeItemRenderers(visibleItemRenderers);
+
+        freeGridElements(visibleSelectionIndicators);
+        visibleRowSelectionIndices.length = 0;
+        visibleColumnSelectionIndices.length = 0;
+
+        freeGridElement(hoverIndicator)
+        hoverIndicator = null;
+
+        freeGridElement(caretIndicator);
+        caretIndicator = null;
+
+        visibleItemRenderersBounds.setEmpty();
+        visibleGridBounds.setEmpty();
     }

     /**
@@ -942,6 +964,15 @@
     private var visibleRowSeparators:Vector.<IVisualElement> = new Vector.<IVisualElement>(0);
     private var visibleColumnSeparators:Vector.<IVisualElement> = new Vector.<IVisualElement>(0);

+    /**
+     *  @private
+     *  Common code for laying out the rowBackround, rowSeparator, columnSeparator visual elements.
+     *
+     *  For row,columnSeparators, lastIndex identifies the element in the new layout for which
+     *  no separator is drawn.  If the previous layout - oldVisibleIndices - included the lastIndex,
+     *  it needs to be freed, even though it exists in the new layout (newVisibleIndices).   See
+     *  freeLinearElements().
+     */
     private function layoutLinearElements (
         factory:IFactory,
         container:IVisualElementContainer,
@@ -966,8 +997,8 @@

         // Free and clear oldVisibleElements that are no long visible

-        freeLinearElements(oldVisibleElements, oldVisibleIndices, newVisibleIndices);
-
+        freeLinearElements(oldVisibleElements, oldVisibleIndices, newVisibleIndices, lastIndex);
+
         // Create, layout, and return newVisibleElements

         const newVisibleElementCount:uint = newVisibleIndices.length;
@@ -1067,26 +1098,30 @@
      *  order.  When an element is freed, the corresponding member of the vector parameter
      *  is set to null.
      *
-     *  This method is a somewhat more efficient implementation of the following:
+     *  This method is [supposed to be a] somewhat more efficient implementation of the following:
      *
      *  for (var i:int = 0; i < elements.length; i++)
-     *     if (newIndices.indexOf(oldIndices[i]) == -1)
      *     {
+     *     if ((oldIndices[i] == lastIndex) || (newIndices.indexOf(oldIndices[i]) == -1))
      *         freeGridElement(elements[i]);
      *         elements[i] = null;
      *     }
      *
+     *  The lastIndex parameter is used to handle row and column separators, where the last
+     *  element is left out since separators only appear in between elements.  If the lastIndex
+     *  appears in oldIndices, we're not going to need the old element.
      */
     private function freeLinearElements (
         elements:Vector.<IVisualElement>,
         oldIndices:Vector.<int>,
-        newIndices:Vector.<int>):void
+        newIndices:Vector.<int>,
+        lastIndex:int):void
     {
         // TBD(hmuller): rewrite this, should be one pass (no indexOf)
         for (var i:int = 0; i < elements.length; i++)
         {
             const offset:int = newIndices.indexOf(oldIndices[i]);
-            if (offset == -1)
+            if ((oldIndices[i] == lastIndex) || (newIndices.indexOf(oldIndices[i]) == -1))
             {
                 const elt:IVisualElement = elements[i];
                 if (elt)
@@ -1580,29 +1615,7 @@
      */
     private function dataProviderCollectionReset(event:CollectionEvent):Boolean
     {
-        freeGridElements(visibleRowBackgrounds);
-        freeGridElements(visibleRowSeparators);
-        visibleRowIndices.length = 0;
-
-        freeGridElements(visibleColumnBackgrounds);
-        freeGridElements(visibleColumnSeparators);
-        visibleColumnIndices.length = 0;
-
-        freeItemRenderers(visibleItemRenderers);
-
-        freeGridElements(visibleSelectionIndicators);
-        visibleRowSelectionIndices.length = 0;
-        visibleColumnSelectionIndices.length = 0;
-
-        freeGridElement(hoverIndicator)
-        hoverIndicator = null;
-
-        freeGridElement(caretIndicator);
-        caretIndicator = null;
-
-        visibleItemRenderersBounds.setEmpty();
-        visibleGridBounds.setEmpty();
-
+        clearVirtualLayoutCache();
         return true;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17370
Author:   klin@adobe.com
Date:     2010-08-18T22:37:24.607666Z

Log Message:
-----------
Fix for two DataGrid bugs.

-Use preferredHeight/Width for column and row separators instead of 1. This fixes the separators being crooked when the stroke's weight is greater than one.
-Added clearGridLayoutCache() method to Grid which is used by Grid and GridColumn to clear the layout's renderers and grid dimensions cache.

QE notes: No
Doc notes: No
Bugs: SDK-27421, SDK-27446
Reviewer: Hans
Tests run: checkintests, DataGrid
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/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>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -1251,7 +1251,7 @@
     {
         const r:Rectangle = visibleItemRenderersBounds;
         const width:Number = r.width;
-        const height:Number = 1; // TBD: should be max(1, colGap)
+        const height:Number = separator.getPreferredBoundsHeight();
         const x:Number = r.x;
         const rowCount:int = gridDimensions.rowCount;
         const bounds:Rectangle = (rowIndex < rowCount)
@@ -1261,21 +1261,21 @@
         if (!bounds)
             return;

-        const y:Number = bounds.bottom;
+        const y:Number = bounds.bottom; // TBD: should center on gap here.
         layoutGridElement(separator, x, y, width, height);
     }

     private function layoutColumnSeparator(separator:IVisualElement, columnIndex:int):void
     {
         const r:Rectangle = visibleItemRenderersBounds;
-        const width:Number = 1;  // TBD: should be max(1, rowGap)
+        const width:Number = separator.getPreferredBoundsWidth();
         const height:Number = Math.max(r.height, visibleGridBounds.height);
         const bounds:Rectangle = gridDimensions.getColumnBounds(columnIndex);

         if (!bounds)
             return;

-        const x:Number = bounds.right;
+        const x:Number = bounds.right; // TBD: should center on gap here.
         const y:Number = r.y;
         layoutGridElement(separator, x, y, width, height);
     }
@@ -1283,13 +1283,14 @@
     private function layoutHeaderSeparator(separator:IVisualElement, columnIndex:int):void
     {
         var columnHeaderBar:ColumnHeaderBar = getColumnHeaderBar();
-        const width:Number = 1;  // TBD: should be max(1, rowGap)
+        const width:Number = separator.getPreferredBoundsWidth();
         const height:Number = columnHeaderBar.height;
         const columnBounds:Rectangle = gridDimensions.getColumnBounds(columnIndex);

         if (!columnBounds)
             return;

+        // TBD: should center on gap here.
         const x:Number = columnBounds.right;
         const y:Number = columnBounds.top;
         layoutGridElement(separator, x, y, width, height);


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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


fixed VertexStream.data protected setter to update min/max and minor fixes

--- src/aerys/minko/type/stream/VertexStream.as
+++ src/aerys/minko/type/stream/VertexStream.as
@@ -2,8 +2,8 @@
 {
 	import aerys.minko.ns.minko_stream;
 	import aerys.minko.render.resource.VertexBuffer3DResource;
+	import aerys.minko.type.Signal;
 	import aerys.minko.type.math.Matrix4x4;
-	import aerys.minko.type.Signal;
 	import aerys.minko.type.stream.format.VertexComponent;
 	import aerys.minko.type.stream.format.VertexComponentType;
 	import aerys.minko.type.stream.format.VertexFormat;
@@ -66,8 +66,14 @@

 		protected function set data(value : Vector.<Number>) : void
 		{
+			if (value && value.length != 0 && value.length % _format.size)
+				throw new Error(
+					'Invalid data: length does not match with the size of a vertex.'
+				);
+
 			_data = value;
 			_changed.execute(this);
+			updateMinMax(true);
 		}

 		public function get locked() : Boolean
@@ -94,29 +100,22 @@
 			initialize(data, format, usage);
 		}

-		private function initialize(data 		: Vector.<Number>,
-									format		: VertexFormat,
-									usage		: uint) : void
+		private function initialize(data 	: Vector.<Number>,
+									format	: VertexFormat,
+									usage	: uint) : void
 		{
 			_changed.add(changedHandler);

 			_resource = new VertexBuffer3DResource(this);
 			_format = format || DEFAULT_FORMAT;

-			if (data && data.length && data.length % _format.dwordsPerVertex)
-				throw new Error("Incompatible vertex format: the data length does not match.");
-
-			_data = data ? data.concat() : new <Number>[];
 			_usage = usage;
-
-			changedHandler(this);
-
-			updateMinMax(true);
+			this.data = data ? data.concat() : new Vector.<Number>();
 		}

 		private function updateMinMax(forceReset : Boolean = false) : void
 		{
-			if (!_invalidMinMax)
+			if (!_invalidMinMax && !forceReset)
 				return ;

 			_invalidMinMax = false;
@@ -126,7 +125,7 @@

 			if (forceReset)
 			{
-				var size	: uint	= format.dwordsPerVertex;
+				var size	: uint	= format.size;

 				_minimum = new Vector.<Number>(size, true);
 				_maximum = new Vector.<Number>(size, true);
@@ -172,7 +171,7 @@
 			if (index > length)
 				return false;

-			_data.splice(index, _format.dwordsPerVertex);
+			_data.splice(index, _format.size);

 			if (_locked)
 			{
@@ -220,9 +219,9 @@
 		public function lock() : Vector.<Number>
 		{
 			if (_locked)
-				throw new Error("The stream is already locked.");
+				throw new Error('The stream is already locked.');
 			if (_localDispose)
-				throw new Error("Cannot lock stream data which is already disposed.");
+				throw new Error('Cannot lock stream data which is already disposed.');

 			checkWriteUsage(this);

@@ -241,7 +240,7 @@
 		public function unlock() : void
 		{
 			if (!_locked)
-				throw new Error("Cannot unlock a stream that is not locked.");
+				throw new Error('Cannot unlock a stream that is not locked.');

 			var invalidMinMax : Boolean = _invalidMinMax;

@@ -273,7 +272,7 @@

 			_data[offset] = value;

-			offset %= _format.dwordsPerVertex;
+			offset %= _format.size;
 			if (value < _minimum[offset])
 			{
 				_minimum[offset] = value;
@@ -314,13 +313,13 @@

 			var numValues 	: int 	= data.length;

-			if (numValues % _format.dwordsPerVertex)
-				throw new Error("Invalid data length.");
+			if (numValues % _format.size)
+				throw new Error('Invalid data length.');

 			for (var i : int = 0; i < numValues; i++)
 			{
 				var value 	: Number	= data[i];
-				var ii		: uint		= i % _format.dwordsPerVertex;
+				var ii		: uint		= i % _format.size;

 				if (value < _minimum[ii])
 				{
@@ -363,11 +362,11 @@
 									   transform	: Matrix4x4,
 									   normalize	: Boolean) : void
 		{
-			if (component.dwords < 3)
-				throw new Error("Not a vector component");
+			if (component.size < 3)
+				throw new Error('Vertex component \'' + component.toString() + '\' does not have a size of 3.');

 			var vertexOffset	: int				= _format.getOffsetForComponent(component);
-			var vertexLength	: int				= _format.dwordsPerVertex;
+			var vertexLength	: int				= _format.size;
 			var vertices		: Vector.<Number>	= lock();
 			var numVertices		: int				= vertices.length / vertexLength;
 			var tmpLength		: int				= numVertices * 3;
@@ -408,7 +407,7 @@
 		public function disposeLocalData(waitForUpload : Boolean = true) : void
 		{
 			if (_locked)
-				throw new Error("Stream data can not be disposed since it's locked for update");
+				throw new Error('Stream data can not be disposed since it\'s locked for update.');
 			if (waitForUpload)
 				_localDispose = true;
 			else
@@ -422,7 +421,7 @@

 		private function changedHandler(stream : VertexStream) : void
 		{
-			_length = _data.length / _format.dwordsPerVertex;
+			_length = _data.length / _format.size;
 		}

 		public static function fromPositionsAndUVs(positions 	: Vector.<Number>,
@@ -480,14 +479,14 @@
 				checkReadUsage(subVertexStream);

 				componentOffsets[k]			= subvertexFormat.getOffsetForComponent(vertexComponent);
-				componentDwordsPerVertex[k]	= subvertexFormat.dwordsPerVertex;
-				componentSizes[k]			= vertexComponent.dwords;
+				componentDwordsPerVertex[k]	= subvertexFormat.size;
+				componentSizes[k]			= vertexComponent.size;
 				componentDatas[k]			= subVertexStream._data;
 			}

 			// push vertex data into the new buffer.
 			var numVertices			: uint 				= source.length;
-			var newVertexStreamData	: Vector.<Number>	= new Vector.<Number>(numVertices * vertexFormat.dwordsPerVertex);
+			var newVertexStreamData	: Vector.<Number>	= new Vector.<Number>(numVertices * vertexFormat.size);

 			for (var vertexId : uint = 0; vertexId < numVertices; ++vertexId)
 			{
@@ -505,7 +504,7 @@
 			}

 			// avoid copying data vectors
-			var newVertexStream	 : VertexStream	= new VertexStream(usage, vertexFormat);
+			var newVertexStream	 	: VertexStream	= new VertexStream(usage, vertexFormat);

 			newVertexStream.data = newVertexStreamData;

@@ -517,8 +516,8 @@
 			if (!(stream._usage & StreamUsage.READ))
 			{
 				throw new Error(
-					"Unable to read from vertex stream: stream usage "
-					+ "is not set to StreamUsage.READ."
+					'Unable to read from vertex stream: stream usage '
+					+ 'is not set to StreamUsage.READ.'
 				);
 			}
 		}
@@ -528,20 +527,21 @@
 			if (!(stream._usage & StreamUsage.WRITE))
 			{
 				throw new Error(
-					"Unable to write in vertex stream: stream usage "
-					+ "is not set to StreamUsage.WRITE."
+					'Unable to write in vertex stream: stream usage '
+					+ 'is not set to StreamUsage.WRITE.'
 				);
 			}
 		}

-		public static function concat(streams : Vector.<IVertexStream>, usage : uint) : VertexStream
+		public static function concat(streams 	: Vector.<IVertexStream>,
+									  usage 	: uint	= StreamUsage.STATIC) : VertexStream
 		{
 			var format		: VertexFormat	= streams[0].format;
 			var numStreams 	: int			= streams.length;

 			for (var i : int = 0; i < numStreams; ++i)
 				if (!streams[i].format.equals(format))
-					throw new Error("All vertex streams must have the same format.");
+					throw new Error('All vertex streams must have the same format.');

 			// a bit expensive... but hey, it works :)
 			var stream	: VertexStream	= extractSubStream(streams[0], usage, format);
@@ -573,20 +573,18 @@
 			for (var k : int = 0; k < numComponents; k++)
 				nativeFormats[k] = componentsOut[k].nativeFormat;

-			data = new Vector.<Number>(formatOut.dwordsPerVertex * count, true);
+			data = new Vector.<Number>(formatOut.size * count, true);
 			for (var vertexId : int = 0; vertexId < count; ++vertexId)
 			{
 				for (var componentId : int = 0; componentId < numComponents; ++componentId)
 				{
-					bytes.position = start + formatIn.dwordsPerVertex * vertexId * dwordSize
+					bytes.position = start + formatIn.size * vertexId * dwordSize
 						+ formatIn.getOffsetForComponent(componentsOut[componentId]) * dwordSize;

 					var reader : Function = null;

 					if (readFunctions[componentsOut[componentId]])
 						reader = readFunctions[componentsOut[componentId]];
-					else if (readFunctions["defaut"])
-						reader = readFunctions["defaut"];
 					else
 						reader = bytes.readFloat;

@@ -605,7 +603,7 @@
 				}
 			}
 			// make sure the ByteArray position is at the end of the buffer
-			bytes.position = start + formatIn.dwordsPerVertex * count * dwordSize;
+			bytes.position = start + formatIn.size * count * dwordSize;

 			stream.data = data;


added ASDoc for Viewport.dispose()

added ASDoc for Viewport.dispose()

--- src/aerys/minko/render/Viewport.as
+++ src/aerys/minko/render/Viewport.as
@@ -207,8 +207,6 @@

 		/**
 		 * The driver informations provided by the Stage3D API.
-		 * @return
-		 *
 		 */
 		public function get driverInfo() : String
 		{
@@ -297,6 +295,10 @@
 			setSize(width, height);
 		}

+		/**
+		 * Dispose the Viewport and all the Stage3D related objects. After this operation,
+		 * the Viewport cannot be used anymore and is ready for garbage collection.
+		 */
 		public function dispose():void
 		{
 			if (_stage3d != null)


Mesh.DEFAULT_MATERIAL is now a BasicMaterial

--- src/aerys/minko/scene/node/Mesh.as
+++ src/aerys/minko/scene/node/Mesh.as
@@ -4,6 +4,7 @@
 	import aerys.minko.render.Effect;
 	import aerys.minko.render.geometry.Geometry;
 	import aerys.minko.render.material.Material;
+	import aerys.minko.render.material.basic.BasicMaterial;
 	import aerys.minko.render.material.basic.BasicShader;
 	import aerys.minko.scene.controller.AbstractController;
 	import aerys.minko.scene.controller.mesh.MeshVisibilityController;
@@ -29,9 +30,7 @@
 	 */
 	public class Mesh extends AbstractSceneNode
 	{
-		public static const DEFAULT_MATERIAL	: Material	= new Material(
-			new Effect(new BasicShader())
-		);
+		public static const DEFAULT_MATERIAL	: Material	= new BasicMaterial();

 		private var _geometry			: Geometry					= null;
 		private var _properties			: DataProvider				= null;


[Dev] Slider: Added property mouseWheelDelta to override the MouseEvent.delta which is a default OS property (usually = 3). mouseWheelDelta = 1 means scrolling of 1 * snapInterval. 3 = 3 snapInterval (now default)

--- src/com/sibirjak/asdpcbeta/slider/Slider.as
+++ src/com/sibirjak/asdpcbeta/slider/Slider.as
@@ -63,6 +63,7 @@
 		private var _enabled : Boolean = true;
 		private var _liveDragging : Boolean = true;
 		private var _snapInterval : uint = 1;
+		private var _mouseWheelDelta : uint = 3;

 		/* changeable properties or styles */
 		private const UPDATE_PROPERTY_ACTIVATION : String = "activation";
@@ -188,6 +189,14 @@
 			return _snapInterval;
 		}

+		public function set mouseWheelDelta(mouseWheelDelta : uint) : void {
+			_mouseWheelDelta = mouseWheelDelta;
+		}
+
+		public function get mouseWheelDelta() : uint {
+			return _mouseWheelDelta;
+		}
+
 		/*
 		 * View life cycle
 		 */
@@ -297,8 +306,19 @@

 		private function mouseScrollHandler(event : MouseEvent) : void {
 			if (!sliderEnabled) return;
-
-			value = snapValue(_value - event.delta * _snapInterval);
+
+			var eventDelta : int = event.delta / Math.abs(event.delta);
+
+			var value : Number = snapValue(_value - (eventDelta * _mouseWheelDelta) * _snapInterval);
+
+			// always snap thumb position
+			_thumb.position = valueToThumbPosition(value);
+
+			if (value == _value) return;
+
+			_value = value;
+
+			dispatchChange();
 		}

 		private function thumbMoveHandler(event : Event) : void {
@@ -470,6 +490,6 @@

 			return rectangle;
 		}
-
+
 	}
 }


Minor fix

Minor fix

--- lib/openfl/display/Graphics.as
+++ lib/openfl/display/Graphics.as
@@ -147,7 +147,7 @@
 		 *                            a `focalPointRatio` set to 0.75:
 		 * @throws ArgumentError If the `type` parameter is not valid.
 		 */
-		public function beginGradientFill (type:GradientType, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = null, interpolationMethod:String = null, focalPointRatio:Number = 0):void {}
+		public function beginGradientFill (type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = null, interpolationMethod:String = null, focalPointRatio:Number = 0):void {}

 		public function beginShaderFill (shader:Shader, matrix:Matrix = null):void {}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17472
Author:   jszeto@adobe.com
Date:     2010-08-24T23:21:15.307099Z

Log Message:
-----------
Mobile Button Skin fixes

SDK-27007 - Button gradient fill bleeds through the border as width and height increase

Updated the fxg assets viewHeight to match the actual content height.

SDK-27571 -  Mxml component as button icon not displayed

Added logic to ButtonSkinBase to handle when the icon is a UIComponent

SDK-27535 - Setting percentWidth, percentHeight not applied on CheckBox and RadioButton

Changed the min width to be the icon width since the TextField can truncate as it shrinks

SDK-27468 - Mobile Button Skin: button does not appear if it doesn't have a label

Always add in padding even if we don't have a label or icon.

QE notes: need to regenerate baseline images
Doc notes: none
Bugs: SDK-27571, SDK-27007, SDK-27535, SDK-27468
Reviewer: Jason San Jose
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
@@ -188,7 +188,7 @@
         graphics.clear();

         // Draw the gradient background
-        matrix.createGradientBox(unscaledWidth - 1, unscaledHeight - 2, Math.PI / 2, 0, 0);
+        matrix.createGradientBox(unscaledWidth - 1, unscaledHeight - 1, Math.PI / 2, 0, 0);
         var chromeColor:uint = getStyle("chromeColor");
         colors[0] = ColorUtil.adjustBrightness2(chromeColor, 20);
         colors[1] = chromeColor;
@@ -198,7 +198,7 @@

         // Draw the background rectangle within the border, so the corners of the rect don't
         // spill over into the rounded corners of the Button
-        graphics.drawRect(1, 1, unscaledWidth - 1, unscaledHeight - 2);
+        graphics.drawRect(1, 1, unscaledWidth - 1, unscaledHeight - 1);
         graphics.endFill();
     }