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

--- frameworks/projects/mx/src/mx/controls/videoClasses/VideoPlayer.as
+++ frameworks/projects/mx/src/mx/controls/videoClasses/VideoPlayer.as
@@ -41,6 +41,11 @@
  *  @eventType mx.events.VideoEvent.CLOSE
  *  @helpid 3482
  *  @tiptext close event
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="close", type="mx.events.VideoEvent")]

@@ -58,6 +63,11 @@
  *  @eventType mx.events.VideoEvent.COMPLETE
  *  @helpid 3482
  *  @tiptext complete event
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="complete", type="mx.events.VideoEvent")]

@@ -67,6 +77,11 @@
  *  @eventType mx.events.MetadataEvent.CUE_POINT
  *  @helpid 3483
  *  @tiptext cuePoint event
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="cuePoint", type="mx.events.MetadataEvent")]

@@ -75,6 +90,11 @@
  *
  *  @eventType mx.events.MetadataEvent.METADATA_RECEIVED
  *  @tiptext metadata event
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="metadataReceived", type="mx.events.MetadataEvent")]

@@ -86,6 +106,11 @@
  *  @eventType mx.events.VideoEvent.PLAYHEAD_UPDATE
  *  @helpid 3480
  *  @tiptext change event
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="playheadUpdate", type="mx.events.VideoEvent")]

@@ -101,6 +126,11 @@
  *  @eventType flash.events.ProgressEvent.PROGRESS
  *  @helpid 3485
  *  @tiptext progress event
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="progress", type="flash.events.ProgressEvent")]

@@ -113,6 +143,11 @@
  *  It is dispatched once for each FLV loaded.

  *
  *  @eventType mx.events.VideoEvent.READY
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="ready", type="mx.events.VideoEvent")]

@@ -120,6 +155,11 @@
  *  Dispatched when the video autorewinds.
  *
  *  @eventType mx.events.VideoEvent.REWIND
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="rewind", type="mx.events.VideoEvent")]

@@ -134,6 +174,11 @@
  *  when the player enters a responsive state.

  *
  *  @eventType mx.events.VideoEvent.STATE_CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="stateChange", type="mx.events.VideoEvent")]

@@ -182,6 +227,11 @@
      *  @see #connected
      *  @see #idleTimeout
      *  @see #close()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const DISCONNECTED:String = "disconnected";

@@ -195,6 +245,11 @@
      *  @see #state
      *  @see #stateResponsive
      *  @see #stop()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const STOPPED:String = "stopped";

@@ -208,6 +263,11 @@
      *  @see #state
      *  @see #stateResponsive
      *  @see #play()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const PLAYING:String = "playing";

@@ -222,6 +282,11 @@
      *  @see #stateResponsive
      *  @see #pause()
      *  @see #load()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const PAUSED:String = "paused";

@@ -233,6 +298,11 @@
      *
      *  @see #state
      *  @see #stateResponsive
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const BUFFERING:String = "buffering";

@@ -246,6 +316,11 @@
      *  @see #stateResponsive
      *  @see #load()
      *  @see #play()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const LOADING:String = "loading";

@@ -258,6 +333,11 @@
      *
      *  @see #state
      *  @see #stateResponsive
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const CONNECTION_ERROR:String = "connectionError";

@@ -271,6 +351,11 @@
      *  @see #state
      *  @see #autoRewind
      *  @see #stateResponsive
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const REWINDING:String = "rewinding";

@@ -283,6 +368,11 @@
      *  @see #state
      *  @see #stateResponsive
      *  @see #seek()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const SEEKING:String = "seeking";

@@ -293,6 +383,11 @@
      *
      *  @see #state
      *  @see #stateResponsive
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const RESIZING:String = "resizing";

@@ -305,6 +400,11 @@
      *
      *  @see #state
      *  @see #stateResponsive
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const EXEC_QUEUED_CMD:String = "execQueuedCmd";

@@ -360,6 +460,11 @@
      *  make all VideoPlayer objects created use that class as the
      *  default INCManager implementation.  The default value is
      *  "mx.controls.videoClasses.NCManager".

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static var DEFAULT_INCMANAGER:Class = NCManager;

@@ -610,6 +715,11 @@
      *  @see #setScale()
      *  @tiptext Specifies the horizontal scale factor
      *  @helpid 3974
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function set scaleX(xs:Number):void
     {
@@ -626,6 +736,11 @@
      *  @see #setScale()
      *  @tiptext Specifies the vertical scale factor
      *  @helpid 3975
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function set scaleY(ys:Number):void
     {
@@ -642,6 +757,11 @@
      *  @see #setSize()
      *  @see #videoWidth
      *  @helpid 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function set width(value:Number):void
     {
@@ -658,6 +778,11 @@
      *  @see #setSize()
      *  @see #videoHeight
      *  @helpid 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function set height(value:Number):void
     {
@@ -670,6 +795,11 @@
      *  undefined if no information available yet.

      *
      *  @see #width
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function get videoWidth():int
     {
@@ -699,6 +829,11 @@
      *  undefined if no information available yet.

      *
      *  @see #height
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function get videoHeight():int
     {
@@ -736,6 +871,11 @@
      *
Use this instead of _visible because we
      * sometimes do internal visibility management when doing an
      * autoresize.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function get visible():Boolean
     {
@@ -773,6 +913,11 @@
      *  reaching the end of the stream.  Meaningless for live streams.

      *
      *  @helpid 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get autoRewind():Boolean
     {
@@ -804,6 +949,11 @@
      *  @tiptext Current position of the playhead in seconds
      *  @helpid 3463
      *  @see #seek()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get playheadTime():Number
     {
@@ -840,6 +990,11 @@
      *
      *  @tiptext Holds the relative path and filename of the media to be streamed
      *  @helpid 3457
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get url():String
     {
@@ -863,6 +1018,11 @@
      *  @tiptext The volume setting in value range from 0 to 1.
      *  @helpid 3468
      *  @see #soundTransform
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get volume():Number
     {
@@ -903,6 +1063,11 @@
      *  settings to tweak.
      *
      *  @see #volume
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get soundTransform():SoundTransform
     {
@@ -926,6 +1091,11 @@
     /**
      * True if stream is RTMP download (streaming from Flash
      * Communication Server), read only.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get isRTMP():Boolean
     {
@@ -947,6 +1117,11 @@
      *
True if stream is live, read only.  isLive only makes sense when
      * streaming from FVSS or FCS, value is ignored when doing http
      * download.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get isLive():Boolean
     {
@@ -966,6 +1141,11 @@
      * Get state.  Read only.  Set with load,
      * play(), stop(),
      * pause() and seek().
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get state():String
     {
@@ -994,6 +1174,11 @@
      *  @see #RESIZING
      *  @see #CONNECTION_ERROR
      *  @see #REWINDING
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get stateResponsive():Boolean
     {
@@ -1022,6 +1207,11 @@
      *
      *  @tiptext Number of bytes already loaded
      *  @helpid 3455
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get bytesLoaded():int
     {
@@ -1042,6 +1232,11 @@
      *
      *  @tiptext Number of bytes to be loaded
      *  @helpid 3456
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get bytesTotal():int
     {
@@ -1063,6 +1258,11 @@
      *  @return The total running time of the FLV in seconds
      *  @tiptext The total length of the FLV in seconds
      *  @helpid 3467
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get totalTime():Number
     {
@@ -1083,6 +1283,11 @@
      * back stream.  For slow connections streaming over rtmp, it is
      * important to increase this from the default.  Default is
      * 0.1

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get bufferTime():Number
     {
@@ -1111,6 +1316,11 @@
      *
      *
If set when stream already idle, restarts idle timeout with
      * new value.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get idleTimeout():uint
     {
@@ -1134,6 +1344,11 @@
      * in milliseconds between each "playheadUpdate" event.

      *
      *
If set when stream is playing, will restart timer.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get playheadUpdateInterval():uint
     {
@@ -1157,6 +1372,11 @@
      * in milliseconds between each "progress" event.

      *
      *
If set when stream is playing, will restart timer.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get progressInterval():uint
     {
@@ -1187,6 +1407,11 @@
      *
One use case for this is that a custom
      * INCManager implementation may require custom
      * initialization.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get ncMgr():INCManager
     {
@@ -1212,6 +1437,11 @@
      *
      *  @see #load()
      *  @see #play()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get metadata():Object
     {
@@ -1239,6 +1469,11 @@
      *  @param height
      *  @see width
      *  @see height
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function setSize(w:Number, h:Number):void
     {
@@ -1262,6 +1497,11 @@
      *  @param scaleY
      *  @see scaleX
      *  @see scaleY
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function setScale(xs:Number, ys:Number):void
     {
@@ -1298,6 +1538,11 @@
      *  @see #connected
      *  @see #stateResponsive
      *  @see #load()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function play(url:String = null, isLive:Boolean = false, totalTime:Number = -1):void
     {
@@ -1460,6 +1705,11 @@
      *  trump this one in any case.  Default is -1.
      *  @see #connected
      *  @see #play()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function load(url:String, isLive:Boolean = false, totalTime:Number = -1):void
     {
@@ -1501,6 +1751,11 @@
      *  @see #connected
      *  @see #stateResponsive
      *  @see #play()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function pause():void
     {
@@ -1543,6 +1798,11 @@
      *  @see #stateResponsive
      *  @see #autoRewind
      *  @see #play()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function stop():void
     {
@@ -1617,6 +1877,11 @@
      *  @throws VideoError if time is < 0
      *  @see #connected
      *  @see #stateResponsive
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function seek(time:Number):void
     {
@@ -1688,6 +1953,11 @@
      *  because the idle timeout functionality will take care of this.

      *
      *  @see idleTimeout
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function close():void
     {
@@ -2683,6 +2953,11 @@
     /**
      *
Makes video visible, turns on sound and starts
      * playing if live or autoplay.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private function finishAutoResize(event:Event):void
     {
@@ -2890,6 +3165,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function VideoPlayerNetStream(connection:NetConnection,
                                          videoPlayer:VideoPlayer)


Transferred from the Adobe Open Source Subversion Repository

Revision: 3852
Author:   jimurphy@adobe.com
Date:     2008-10-23T19:02:40.862532Z

Log Message:
-----------
Merged gumbo_alpha revisions 3833,3846,3851 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxTextInputExample.mxml</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/samples/explorer/explorer.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/asdoc/en_US/mx/states/examples/StateExample1.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxTextAreaExample.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/asdoc/en_US/mx/states/examples/StateExample2.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/asdoc/en_US/mx/states/examples/StatesExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/TextViewExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -1089,8 +1089,8 @@
      */
     public function export():XML
     {
-        return TextFilter.export(textFlow, TextFilter.TEXT_LAYOUT_FORMAT,
-                                 ConversionType.XML_TYPE).children()[0];
+        return XML(TextFilter.export(textFlow, TextFilter.TEXT_LAYOUT_FORMAT,
+                                     ConversionType.XML_TYPE));
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

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

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

Added GridColumn columnName parameter; as in MX DataGridColumn.

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

Removed the (GridColumnHeaderGroup) overlayGroup property.

Replaced GridColumnHeaderBar mouseSeparatorWidth property with "separatorAffordance" style.

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

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

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

--- frameworks/projects/spark/src/spark/components/GridColumnHeaderGroup.as
+++ frameworks/projects/spark/src/spark/components/GridColumnHeaderGroup.as
@@ -219,6 +219,24 @@
 //--------------------------------------

 /**
+ *  Horizontal space on either side of a column separator that's considered to be
+ *  part of the separator for the sake of mouse event dispatching.
+ *
+ *
Separators are often just one pixel wide which makes interacting with them difficult.
+ *  This value is used by getSeparatorIndexAt() to give separators a wider
+ *  berth, so that separator events are dispatched when the mouse is closer than
+ *  separatorMouseWidth to the horizontal midpoint of a separator.

+ *
+ *  @default 5
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+*/
+[Style(name="separatorAffordance", type="Number", format="Length", inherit="no")]
+
+/**
  *  Bottom inset, in pixels, for all header renderers.
  *
  *  @default 0
@@ -302,11 +320,7 @@

         layout = new GridColumnHeaderGroupLayout();
         layout.clipAndEnableScrolling = true;
-
-        overlayGroup = new Group();
-        overlayGroup.layout = new LayoutBase(); // no layout
-        overlay.addDisplayObject(overlayGroup);
-
+
         // Event handlers that dispatch GridEvents

         MouseEventUtil.addDownDragUpListeners(this,
@@ -465,83 +479,6 @@
         if (event.property == "horizontalScrollPosition")
             horizontalScrollPosition = Number(event.newValue);
     }
-
-    //----------------------------------
-    //  overlayGroup
-    //----------------------------------
-
-    [Bindable("overlayGroupChanged")]
-
-    private var _overlayGroup:Group = null;
-
-    /**
-     *  The container for columnSeparator visual elements.  By default it's an
-     *  element of the GridColumnHeaderGroup's overlay.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4.5
-     */
-    public function get overlayGroup():Group
-    {
-        return _overlayGroup;
-    }
-
-    /**
-     *  @private
-     */
-    public function set overlayGroup(value:Group):void
-    {
-        if (_overlayGroup == value)
-            return;
-
-        _overlayGroup = value;
-        invalidateDisplayList();
-        dispatchChangeEvent("overlayGroupChanged");
-    }
-
-    //----------------------------------
-    //  separatorMouseWidth
-    //----------------------------------
-
-    [Bindable("separatorMouseWidthChanged")]
-
-    private var _separatorMouseWidth:Number = 5;
-
-    /**
-     *  Horizontal space on either side of a column separator that's considered to be
-     *  part of the separator for the sake of mouse event dispatching.
-     *
-     *
Separators are often just one pixel wide which makes interacting with them difficult.
-     *  This value is used by getSeparatorIndexAt() to give separators a wider
-     *  berth, so that separator events are dispatched when the mouse is closer than
-     *  separatorMouseWidth to the horizontal midpoint of a separator.

-     *
-     *  @default 5
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4.5
-     */
-    public function get separatorMouseWidth():Number
-    {
-        return _separatorMouseWidth;
-    }
-
-    /**
-     *  @private
-     */
-    public function set separatorMouseWidth(value:Number):void
-    {
-        if (_separatorMouseWidth == value)
-            return;
-
-        _separatorMouseWidth = value;
-        invalidateDisplayList();
-        dispatchChangeEvent("separatorMouseWidthChanged");
-    }

     //----------------------------------
     //  visibleSortIndicatorIndices


Reverting commit 8745a94d0d6885db01aad1eb31df73b262612cf1  (fix warnings in LanguageTest, changing 'insteadof' for 'is')

--- examples/LanguageTests/src/LanguageTests.as
+++ examples/LanguageTests/src/LanguageTests.as
@@ -39,28 +39,28 @@

 		var b:B = new B();

-		testResult = this is Sprite;
-		trace('this is Sprite - true: ' + testResult.toString());
-		testResult = this is B;
-		trace('this is classes.B - false: ' + testResult.toString());
-		testResult = b is classes.B;
-		trace('b is classes.B - true: ' + testResult.toString());
-		testResult = b is classes.C;
-		trace('b is classes.C - true: ' + testResult.toString());
-		testResult = b is interfaces.IC;
-		trace('b is interfaces.IC - false: ' + testResult.toString());
-		testResult = b is interfaces.IF;
-		trace('b is interfaces.IF - false: ' + testResult.toString());
-		testResult = this is IA;
-		trace('this is interfaces.IA - false: ' + testResult.toString());
-		testResult = this is IB;
-		trace('this is interfaces.IB - false: ' + testResult.toString());
-		testResult = this is IC;
-		trace('this is interfaces.IC - false: ' + testResult.toString());
-		testResult = this is ID;
-		trace('this is interfaces.ID - false: ' + testResult.toString());
-		testResult = this is IE;
-		trace('this is interfaces.IE - false: ' + testResult.toString());
+		testResult = this instanceof Sprite;
+		trace('this instanceof Sprite - true: ' + testResult.toString());
+		testResult = this instanceof B;
+		trace('this instanceof classes.B - false: ' + testResult.toString());
+		testResult = b instanceof classes.B;
+		trace('b instanceof classes.B - true: ' + testResult.toString());
+		testResult = b instanceof classes.C;
+		trace('b instanceof classes.C - true: ' + testResult.toString());
+		testResult = b instanceof interfaces.IC;
+		trace('b instanceof interfaces.IC - false: ' + testResult.toString());
+		testResult = b instanceof interfaces.IF;
+		trace('b instanceof interfaces.IF - false: ' + testResult.toString());
+		testResult = this instanceof IA;
+		trace('this instanceof interfaces.IA - false: ' + testResult.toString());
+		testResult = this instanceof IB;
+		trace('this instanceof interfaces.IB - false: ' + testResult.toString());
+		testResult = this instanceof IC;
+		trace('this instanceof interfaces.IC - false: ' + testResult.toString());
+		testResult = this instanceof ID;
+		trace('this instanceof interfaces.ID - false: ' + testResult.toString());
+		testResult = this instanceof IE;
+		trace('this instanceof interfaces.IE - false: ' + testResult.toString());
 		trace();
 		testResult = this is Sprite;
 		trace('this is Sprite - true: ' + testResult.toString());


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/BubbleSeriesAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/BubbleSeriesAutomationImpl.as
@@ -0,0 +1,117 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.charts
+{
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+
+	import mx.automation.Automation;
+	import mx.charts.ChartItem;
+	import mx.charts.series.BubbleSeries;
+	import mx.core.IFlexDisplayObject;
+	import mx.charts.series.items.BubbleSeriesItem;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines the methods and properties required to perform instrumentation for the
+	 *  BubbleSeries class.
+	 *
+	 *  @see mx.charts.series.BubbleSeries
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class BubbleSeriesAutomationImpl extends SeriesAutomationImpl
+	{
+		include "../../../core/Version.as";
+
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(BubbleSeries, BubbleSeriesAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 *  @param obj BubbleSeries object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function BubbleSeriesAutomationImpl(obj:BubbleSeries)
+		{
+			super(obj);
+
+			bubbleSeries = obj;
+		}
+
+		/**
+		 *  @private
+		 */
+		private var bubbleSeries:BubbleSeries;
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		override protected function getChartItemLocation(item:ChartItem):Point
+		{
+			if (item is BubbleSeriesItem)
+			{
+				var aItem:BubbleSeriesItem = item as BubbleSeriesItem;
+				var x:int = aItem.x;
+				var y:int = aItem.y;
+
+				var p:Point = new Point(x,y);
+				p = bubbleSeries.localToGlobal(p);
+				p = bubbleSeries.owner.globalToLocal(p);
+				return p;
+			}
+
+			return super.getChartItemLocation(item);
+		}
+
+	}
+
+}


SoundPlayType.SHARED_SOUND_GENERATOR で音量調整がおかしかったのを修正

--- project/SoundConductor/src/jp/hiiragi/managers/soundConductor/PlayingDataForSharedSoundGenerator.as
+++ project/SoundConductor/src/jp/hiiragi/managers/soundConductor/PlayingDataForSharedSoundGenerator.as
@@ -121,19 +121,19 @@
 			var len:int = byteArray.length;
 			var editedByteArray:ByteArray = new ByteArray();

-			var volumeMultipleValue:Number = masterVolumeController.value;
-			volumeMultipleValue *= volumeController.value;
-			if (soundGroupController != null)
-			{
-				volumeMultipleValue *= soundGroupController.groupVolumeController.value;
-			}
-
-			var pan:Number = panController.value;
-			var leftMultipleValue:Number = ((pan < 0) ? 1 : 1 - pan) * volumeMultipleValue;
-			var rightMultipleValue:Number = ((pan > 0) ? 1 : pan + 1) * volumeMultipleValue;
-
 			while (byteArray.bytesAvailable)
 			{
+				var volumeMultipleValue:Number = masterVolumeController.value;
+				volumeMultipleValue *= volumeController.value;
+				if (soundGroupController != null)
+				{
+					volumeMultipleValue *= soundGroupController.groupVolumeController.value;
+				}
+
+				var pan:Number = panController.value;
+				var leftMultipleValue:Number = ((pan < 0) ? 1 : 1 - pan) * volumeMultipleValue;
+				var rightMultipleValue:Number = ((pan > 0) ? 1 : pan + 1) * volumeMultipleValue;
+
 				editedByteArray.writeFloat(byteArray.readFloat() * leftMultipleValue);
 				editedByteArray.writeFloat(byteArray.readFloat() * rightMultipleValue);
 			}


Whoops, removed stray line.

Whoops, removed stray line.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@4358 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/presents/net/AuthRequest.as
+++ src/as/com/threerings/presents/net/AuthRequest.as
@@ -15,8 +15,6 @@
         var minsOffset :int = -1 * new Date().getTimezoneOffset();
         var hoursFromUTC :int = Math.abs(minsOffset) / 60;
         var minsFromUTC :int = Math.abs(minsOffset) % 60;
-
-        minsFromUTC %= 60;
         _zone = "GMT" + ((minsOffset < 0) ? "-" : "+") +
             ((hoursFromUTC < 10) ? "0" : "") + hoursFromUTC + ":" +
             ((minsFromUTC < 10) ? "0" : "") + minsFromUTC;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/HLOCSeriesBaseAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/HLOCSeriesBaseAutomationImpl.as
@@ -0,0 +1,134 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.charts
+{
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+
+	import mx.automation.Automation;
+	import mx.charts.ChartItem;
+	import mx.charts.chartClasses.HLOCSeriesBase;
+	import mx.core.IFlexDisplayObject;
+	import mx.charts.series.items.HLOCSeriesItem;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines the methods and properties required to perform instrumentation for the
+	 *  CandlestickSeries and HLOCSeries classes.
+	 *
+	 *  @see mx.charts.chartClasses.HLOCSeriesBase
+	 *  @see mx.charts.series.CandlestickSeries
+	 *  @see mx.charts.series.HLOCSeries
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class HLOCSeriesBaseAutomationImpl extends SeriesAutomationImpl
+	{
+		include "../../../core/Version.as";
+
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(HLOCSeriesBase, HLOCSeriesBaseAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 *  @param obj HLOCSeriesBase object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function HLOCSeriesBaseAutomationImpl(obj:HLOCSeriesBase)
+		{
+			super(obj);
+
+			hlocSeries = obj;
+		}
+
+		/**
+		 *  @private
+		 *  storage for the owner component
+		 */
+		private var hlocSeries:HLOCSeriesBase;
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden properties
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		override public function get automationName():String
+		{
+			return hlocSeries.openField + ";" + hlocSeries.closeField;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		override protected function getChartItemLocation(item:ChartItem):Point
+		{
+			if (item is HLOCSeriesItem)
+			{
+				var aItem:HLOCSeriesItem = item as HLOCSeriesItem;
+				var x:int = aItem.x;
+				var y:int = (aItem.open + aItem.close)/2;
+
+				var p:Point = new Point(x,y);
+				p = hlocSeries.localToGlobal(p);
+				p = hlocSeries.owner.globalToLocal(p);
+				return p;
+			}
+
+			return super.getChartItemLocation(item);
+		}
+
+	}
+
+}


modified Hello.as

modified Hello.as

--- src/Hello.as
+++ src/Hello.as
@@ -1,12 +1,10 @@
 package {
-  import flash.display.*;
-  import flash.text.*;
+    import flash.display.*;

-  public class Hello extends Sprite {
-    public function Hello() {
-      var tf:TextField = new TextField();
-      tf.text = "hello world";
-      addChild(tf);
+    public class Hello extends Sprite {
+        public function Hello() {
+            trace("hello, world");
+        }
     }
-  }
 }
+


Revert "[TSDemuxer] Revert removal of AUDs preceding AVC Header"

This reverts commit bd72a819a42614ddc9baef07e1140457a80100af.

--- src/org/mangui/hls/demux/TSDemuxer.as
+++ src/org/mangui/hls/demux/TSDemuxer.as
@@ -102,6 +102,7 @@

         /** Transmux the M2TS file into an FLV file. **/
         public function TSDemuxer(callback_audioselect : Function, callback_progress : Function, callback_complete : Function, callback_videometadata : Function, audioOnly : Boolean) {
+            _avcc = null;
             _curAudioPES = null;
             _curVideoPES = null;
             _curId3PES = null;
@@ -126,7 +127,6 @@
         /** append new TS data */
         public function append(data : ByteArray) : void {
             if (_dataVector == null) {
-                _avcc = null;
                 _dataVector = new Vector.<ByteArray>();
                 _dataComplete = false;
                 _readPosition = 0;
@@ -461,7 +461,15 @@
                             /* push current data into video tag, if any */
                             _curVideoTag.push(_curNalUnit, 0, _curNalUnit.length);
                         }
-                        _tags.push(_curVideoTag);
+                        // only push current tag if AVC HEADER has been pushed already
+                        if(_avcc) {
+                            _tags.push(_curVideoTag);
+                        }
+                        CONFIG::LOGGING {
+                            if(!_avcc) {
+                                Log.warn("TS: discarding video tag, as AVC HEADER not found yet, fragment not starting with I-Frame ?");
+                            }
+                        }
                     }
                     _curNalUnit = new ByteArray();
                     _curVideoTag = new FLVTag(FLVTag.AVC_NALU, pes.pts, pes.dts, false);


Transferred from the Adobe Open Source Subversion Repository

Revision: 5647
Author:   pfarland@adobe.com
Date:     2009-03-27T13:59:54.760468Z

Log Message:
-----------
Fixing programmatic usages of 'mx.components' to the spark equivalent after the rename.

Also fixing calls to StyleManager.getStyleDeclaration() that use an unqualified type name. Type selectors should be referenced via fully qualified ActionScript class names at runtime. When compatibility version is set to 3, getStyleDeclaration will remove the package name to match type selectors in the legacy unqualified manner.

QE: This fixes bug SDK-20253, and potentially a few other edge cases like the CursorManager RTE.
Doc: No
Checkintests: Pass

Bugs:
SDK-20253 - [rename_work] Spark RadioButton and CheckBox focus ring now highlights the label of the RadioButton

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/printing/FlexPrintJob.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/BusyCursor.as</path>

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

--- frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as
+++ frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as
@@ -293,7 +293,7 @@
         {
             // No drag image specified, use default
             var dragManagerStyleDeclaration:CSSStyleDeclaration =
-                StyleManager.getStyleDeclaration("DragManager");
+                StyleManager.getStyleDeclaration("mx.managers.DragManager");
             var dragImageClass:Class =
                 dragManagerStyleDeclaration.getStyle("defaultDragImageSkin");
             dragImage = new dragImageClass();


Transferred from the Adobe Open Source Subversion Repository

Revision: 5067
Author:   smgilson@adobe.com
Date:     2009-02-25T16:21:22.849704Z

Log Message:
-----------
In preparation for adding ASDoc version tags for Flex, remove old tags from AIR files

QE Notes: None
Doc Notes: None
Bugs: -

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

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

--- frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as
+++ frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as
@@ -46,604 +46,603 @@
 /**
  *  @private
  *
- *  @playerversion AIR 1.1
  */
 public class NativeDragManagerImpl implements IDragManager
 {

-	//--------------------------------------------------------------------------
-	//
-	//  Class variables
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	private static var sm:ISystemManager;
-
-	/**
-	 *  @private
-	 */
-	private static var instance:IDragManager;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Class methods
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	public static function getInstance():IDragManager
-	{
-		if (!instance)
-		{
-			sm = SystemManagerGlobals.topLevelSystemManagers[0];
-			instance = new NativeDragManagerImpl();
-		}
-
-		return instance;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	public function NativeDragManagerImpl()
-	{
-		super();
-
-		if (instance)
-			throw new Error("Instance already exists.");
-
-		registerSystemManager(sm);
-		sandboxRoot = sm.getSandboxRoot();
-		sandboxRoot.addEventListener(InterDragManagerEvent.DISPATCH_DRAG_EVENT, marshalDispatchEventHandler, false, 0, true);
-
-		// trace("creating DragManagerImpl", sm);
-		sandboxRoot.addEventListener(InterManagerRequest.DRAG_MANAGER_REQUEST, marshalDragManagerHandler, false, 0, true);
-		var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-		me.name = "update";
-		// trace("--->update request for DragManagerImpl", sm);
-		sandboxRoot.dispatchEvent(me);
-		// trace("<---update request for DragManagerImpl", sm);
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Variables
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 *  Object being dragged around.
-	 */
-	public var dragProxy:DragProxy;
-
-	/**
-	 *  @private
-	 */
-	private var mouseIsDown:Boolean = false;
-
-	private var _action:String;
-
-	/**
-	 *  @private
-	 */
-	private var _dragInitiator:IUIComponent;
-
-	/**
-	 *  @private
-	 */
-	private var _clipboard:Clipboard;
-
-	/**
-	 *  @private
-	 */
-	private var _dragImage:IFlexDisplayObject;
-
-	private var _offset:Point;
-
-	private var _allowedActions:NativeDragOptions;
-
-	private var _allowMove:Boolean;
-
-	private var _relatedObject:InteractiveObject;
-
-	/**
-	 *  @private
-	 *  The highest place we can listen for events in our DOM
-	 */
-	private var sandboxRoot:IEventDispatcher;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Read-only property that returns true
-	 *  if a drag is in progress.
-	 */
-	public function get isDragging():Boolean
-	{
-		return flash.desktop.NativeDragManager.isDragging;// || bDoingDrag;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------
-
-
-	/**
-	 *  Initiates a drag and drop operation.
-	 *
-	 *  @param dragInitiator IUIComponent that specifies the component initiating
-	 *  the drag.
-	 *
-	 *  @param dragSource DragSource object that contains the data
-	 *  being dragged.
-	 *
-	 *  @param mouseEvent The MouseEvent that contains the mouse information
-	 *  for the start of the drag.
-	 *
-	 *  @param dragImage The image to drag. This argument is optional.
-	 *  If omitted, a standard drag rectangle is used during the drag and
-	 *  drop operation. If you specify an image, you must explicitly set a
-	 *  height and width of the image or else it will not appear.
-	 *
-	 *  @param xOffset Number that specifies the x offset, in pixels, for the
-	 *  dragImage. This argument is optional. If omitted, the drag proxy
-	 *  is shown at the upper-left corner of the drag initiator. The offset is expressed
-	 *  in pixels from the left edge of the drag proxy to the left edge of the drag
-	 *  initiator, and is usually a negative number.
-	 *
-	 *  @param yOffset Number that specifies the y offset, in pixels, for the
-	 *  dragImage. This argument is optional. If omitted, the drag proxy
-	 *  is shown at the upper-left corner of the drag initiator. The offset is expressed
-	 *  in pixels from the top edge of the drag proxy to the top edge of the drag
-	 *  initiator, and is usually a negative number.
-	 *
-	 *  @param imageAlpha Number that specifies the alpha value used for the
-	 *  drag image. This argument is optional. If omitted, the default alpha
-	 *  value is 0.5. A value of 0.0 indicates that the image is transparent;
-	 *  a value of 1.0 indicates it is fully opaque.
-	 */
-	public function doDrag(
-			dragInitiator:IUIComponent,
-			dragSource:DragSource,
-			mouseEvent:MouseEvent,
-			dragImage:IFlexDisplayObject = null, // instance of dragged item(s)
-			xOffset:Number = 0,
-			yOffset:Number = 0,
-			imageAlpha:Number = 0.5,
-			allowMove:Boolean = true):void
-	{
-		var proxyWidth:Number;
-		var proxyHeight:Number;
-
-		// Can't start a new drag if we're already in the middle of one...
-		if (isDragging)
-			return;
-
-		// Can't do a drag if the mouse isn't down
-		if (!(mouseEvent.type == MouseEvent.MOUSE_DOWN ||
-			  mouseEvent.type == MouseEvent.CLICK ||
-			  mouseIsDown ||
-			  mouseEvent.buttonDown))
-		{
-			return;
-		}
-
-		var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-		me.name = "isDragging";
-		me.value = true;
-		// trace("-->dispatch isDragging for DragManagerImpl", sm, true);
-		sandboxRoot.dispatchEvent(me);
-		// trace("<--dispatch isDragging for DragManagerImpl", sm, true);
-
-		me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-		me.name = "mouseShield";
-		me.value = true;
-		// trace("-->dispatch add mouseShield.for DragManagerImpl", sm);
-		sandboxRoot.dispatchEvent(me);
-
-		_clipboard = new Clipboard();
-		_dragInitiator = dragInitiator;
-		_offset = new Point(xOffset, yOffset);
-		_allowMove = allowMove;
-
-		//adjust offsets for imagePlacement.
-		_offset.y -= InteractiveObject(dragInitiator).mouseY;
-		_offset.x -= InteractiveObject(dragInitiator).mouseX;
-
-		// TODO!!! We need to pass in these values as a function parameter
-		_allowedActions = new NativeDragOptions();
-		_allowedActions.allowCopy = true;
-		_allowedActions.allowLink = true;
-		_allowedActions.allowMove = allowMove;
-
-		// Transfer the dragSource into a Clipboard
-		for (var i:int = 0; i < dragSource.formats.length; i++)
-		{
-			var format:String = dragSource.formats[i] as String;
-			var data:Object = dragSource.dataForFormat(format);
-			_clipboard.setData(format, data);
-		}
-
-		if (!dragImage)
-		{
-			// No drag image specified, use default
-			var dragManagerStyleDeclaration:CSSStyleDeclaration =
-				StyleManager.getStyleDeclaration("DragManager");
-			var dragImageClass:Class =
-				dragManagerStyleDeclaration.getStyle("defaultDragImageSkin");
-			dragImage = new dragImageClass();
-			proxyWidth = dragInitiator ? dragInitiator.width : 0;
-			proxyHeight = dragInitiator ? dragInitiator.height : 0;
-			if (dragImage is IFlexDisplayObject)
-				IFlexDisplayObject(dragImage).setActualSize(proxyWidth, proxyHeight);
-		}
-		else
-		{
-			proxyWidth = dragImage.width;
-			proxyHeight = dragImage.height;
-		}
-
-		_dragImage = dragImage;
-
-		if (dragImage is IUIComponent && dragImage is ILayoutManagerClient &&
-			!ILayoutManagerClient(dragImage).initialized && dragInitiator)
-		{
-			dragImage.addEventListener(FlexEvent.UPDATE_COMPLETE,initiateDrag);
-			dragInitiator.systemManager.popUpChildren.addChild(DisplayObject(dragImage));
-
-			if (dragImage is ILayoutManagerClient )
-			{
-				UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(dragImage), true);
-			}
-
-			if(dragImage is IUIComponent)
-			{
-				dragImage.setActualSize(proxyWidth, proxyHeight);
-				proxyWidth = (dragImage as IUIComponent).getExplicitOrMeasuredWidth();
-				proxyHeight = (dragImage as IUIComponent).getExplicitOrMeasuredHeight();
-			}
-			else
-			{
-				proxyWidth = dragImage.measuredWidth;
-				proxyHeight = dragImage.measuredHeight;
-			}
-
-			if (dragImage is ILayoutManagerClient )
-			{
-				UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(dragImage));
-			}
-		}
-		else
-		{
-			initiateDrag(null, false);
-			return;
-		}
-	}
-
-	/**
-	 *  Finish up the doDrag once the dragImage has been drawn
-	 */
-	private function initiateDrag(event:FlexEvent, removeImage:Boolean = true):void
-	{
-		if (removeImage)
-			_dragImage.removeEventListener(FlexEvent.UPDATE_COMPLETE, initiateDrag);
-		var dragBitmap:BitmapData
-		if (_dragImage.width && _dragImage.height)
-			dragBitmap = new BitmapData(_dragImage.width, _dragImage.height, true, 0x000000);
-		else
-			dragBitmap = new BitmapData(1, 1, true, 0x000000);
-		dragBitmap.draw(_dragImage);
-
-		if (removeImage && _dragImage is IUIComponent && _dragInitiator)
-		{
-			_dragInitiator.systemManager.popUpChildren.removeChild(DisplayObject(_dragImage));
-		}
-
-		// TODO!!! include _dragActions as the last param
-		flash.desktop.NativeDragManager.doDrag(InteractiveObject(_dragInitiator), _clipboard, dragBitmap, _offset, _allowedActions);
-		//NativeDragManager.dropAction = _allowMove ? DragManager.MOVE : DragManager.COPY;
-	}
-
-	/**
-	 *  Call this method from your dragEnter event handler if you accept
-	 *  the drag/drop data.
-	 *  For example:
-	 *
-	 *
DragManager.acceptDragDrop(event.target);

-	 *
-	 *	@param target The drop target accepting the drag.
-	 */
-	public function acceptDragDrop(target:IUIComponent):void
-	{
-		if (isDragging)
-		{
-			// trace("NativeDragMgr.acceptDragDrop targ",target);
-			var dispObj:InteractiveObject = target as InteractiveObject;
-			if (dispObj)
-				flash.desktop.NativeDragManager.acceptDragDrop(dispObj);
-		}
-		else
-		{
-			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-			me.name = "acceptDragDrop";
-			me.value = target;
-			// trace("-->dispatch acceptDragDrop for DragManagerImpl", sm, target);
-			sandboxRoot.dispatchEvent(me);
-			// trace("<--dispatch acceptDragDrop for DragManagerImpl", sm, target);
-		}
-	}
-
-	/**
-	 *  Sets the feedback indicator for the drag and drop operation.
-	 *  Possible values are DragManager.COPY, DragManager.MOVE,
-	 *  DragManager.LINK, or DragManager.NONE.
-	 *
-	 *  @param feedback The type of feedback indicator to display.
-	 */
-	public function showFeedback(feedback:String):void
-	{
-		if (isDragging)
-		{
-			if (feedback == DragManager.MOVE && !_allowedActions.allowMove)
-				return;
-			else if (feedback == DragManager.COPY && !_allowedActions.allowCopy)
-				return;
-			else if (feedback == DragManager.LINK && !_allowedActions.allowLink)
-				return;
-			flash.desktop.NativeDragManager.dropAction = feedback;
-		}
-		else
-		{
-			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-			me.name = "showFeedback";
-			me.value = feedback;
-			// trace("-->dispatch showFeedback for DragManagerImpl", sm, feedback);
-			sandboxRoot.dispatchEvent(me);
-			// trace("<--dispatch showFeedback for DragManagerImpl", sm, feedback);
-		}
-	}
-
-	/**
-	 *  Returns the current drag and drop feedback.
-	 *
-	 *  @return  Possible return values are DragManager.COPY,
-	 *  DragManager.MOVE,
-	 *  DragManager.LINK, or DragManager.NONE.
-	 */
-	public function getFeedback():String
-	{
-		if (!isDragging)
-		{
-			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-			me.name = "getFeedback";
-			// trace("-->dispatch getFeedback for DragManagerImpl", sm);
-			sandboxRoot.dispatchEvent(me);
-			// trace("<--dispatch getFeedback for DragManagerImpl", sm);
-			return me.value as String;
-		}
-
-		return flash.desktop.NativeDragManager.dropAction;
-	}
-
-	/**
-	 *  @Review
-	 *  Not Supported by NativeDragManagerImpl
-	 */
-	public function endDrag():void
-	{
-		var me:InterManagerRequest;
-
-		me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-		me.name = "mouseShield";
-		me.value = false;
-		// trace("-->dispatch remove mouseShield.for DragManagerImpl", sm);
-		sandboxRoot.dispatchEvent(me);
-
-		me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-		me.name = "isDragging";
-		me.value = false;
-		// trace("-->dispatch isDragging for DragManagerImpl", sm, false);
-		sandboxRoot.dispatchEvent(me);
-		// trace("<--dispatch isDragging for DragManagerImpl", sm, false);
-		// trace("<--endDrag for DragManagerImpl", sm);
-
-	}
-
-	/**
-	 *  @private
-	 *  register ISystemManagers that will listen for events
-	 *  (such as those for additional windows)
-	 */
-	mx_internal function registerSystemManager(sm:ISystemManager):void
-	{
-		if (sm.isTopLevel())
-		{
-			sm.addEventListener(MouseEvent.MOUSE_DOWN, sm_mouseDownHandler);
-			sm.addEventListener(MouseEvent.MOUSE_UP, sm_mouseUpHandler);
-		}
-
-		sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, nativeDragEventHandler, true);
-		sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_COMPLETE, nativeDragEventHandler, true);
-		sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, nativeDragEventHandler, true);
-		sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT, nativeDragEventHandler, true);
-		sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_OVER, nativeDragEventHandler, true);
-		sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_START, nativeDragEventHandler, true);
-
-	}
-
-	/**
-	 *  @private
-	 *  unregister ISystemManagers that will listen for events
-	 *  (such as those for additional windows)
-	 */
-	mx_internal function unregisterSystemManager(sm:ISystemManager):void
-	{
-		if (sm.isTopLevel())
-		{
-			sm.removeEventListener(MouseEvent.MOUSE_DOWN, sm_mouseDownHandler);
-			sm.removeEventListener(MouseEvent.MOUSE_UP, sm_mouseUpHandler);
-		}
-
-		sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, nativeDragEventHandler, true);
-		sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_COMPLETE, nativeDragEventHandler, true);
-		sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_DROP, nativeDragEventHandler, true);
-		sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_EXIT, nativeDragEventHandler, true);
-		sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_OVER, nativeDragEventHandler, true);
-		sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_START, nativeDragEventHandler, true);
-
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Event handlers
-	//
-	//--------------------------------------------------------------------------
-	private function sm_mouseDownHandler(event:MouseEvent):void
-	{
-		mouseIsDown = true;
-	}
-
-	private function sm_mouseUpHandler(event:MouseEvent):void
-	{
-		mouseIsDown = false;
-	}
-
-	/**
-	 *  Listens for all NativeDragEvents and then redispatches them as DragEvents
-	 */
-	private function nativeDragEventHandler(event:NativeDragEvent):void
-	{
-		var newType:String = event.type.charAt(6).toLowerCase() + event.type.substr(7);
-		var dragSource:DragSource = new DragSource();
-		var target:DisplayObject = event.target as DisplayObject;
-		var clipboard:Clipboard = event.clipboard;
-		var origFormats:Array = clipboard.formats;
-		var len:int = origFormats.length;
-		var format:String;
-		var data:Object;
-		var me:InterManagerRequest;
-
-		_allowedActions = event.allowedActions;
-
-		//translate either commandKey or controlKey to old-style ctrlKey
-		var ctrlKey:Boolean = false;
-		if (Capabilities.os.substring(0,3) == "Mac")
-			ctrlKey = event.commandKey;
-		else
-			ctrlKey = event.controlKey;
-		//default to move if drag is from same app
-		if (NativeDragManager.dragInitiator != null)
-			flash.desktop.NativeDragManager.dropAction =  (ctrlKey || !_allowMove) ? DragManager.COPY : DragManager.MOVE;
-		// Transfer clipboard data to dragSource
-		if (event.type != NativeDragEvent.NATIVE_DRAG_EXIT)
-		{
-			for (var i:int = 0; i < len; i++)
-			{
-				format = origFormats[i];
-				if (clipboard.hasFormat(format))
-				{
-					data = clipboard.getData(format);
-					dragSource.addData(data,format);
-				}
-			}
-		}
-		if (event.type == NativeDragEvent.NATIVE_DRAG_DROP)
-			_relatedObject = event.target as InteractiveObject;
-
-
-
-		// Need a dragInitiator in NativeDragEvent
-		var dragEvent:DragEvent
-			= new DragEvent(newType, false, event.cancelable,
-							NativeDragManager.dragInitiator as IUIComponent,
-							dragSource, event.dropAction, ctrlKey,
-							event.altKey, event.shiftKey);
-		dragEvent.buttonDown = event.buttonDown;
-		dragEvent.delta = event.delta;
-		dragEvent.localX = event.localX;
-		dragEvent.localY = event.localY;
-		if (newType == DragEvent.DRAG_COMPLETE)
-			dragEvent.relatedObject = _relatedObject;
-		else
-			dragEvent.relatedObject = event.relatedObject;
-		// Resend the event as a DragEvent.
-		_dispatchDragEvent(target, dragEvent);
-
-		if (newType == DragEvent.DRAG_COMPLETE)
-		{
-		    if (sm == sandboxRoot)
-		        endDrag();
-		    else
-		    {
-    			me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-    			me.name = "endDrag";
-    			// trace("-->dispatch endDrag for DragManagerImpl", sm);
-    			sandboxRoot.dispatchEvent(me);
-    			// trace("<--dispatch endDrag for DragManagerImpl", sm);
-    		}
-		}
-	}
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private static var sm:ISystemManager;
+
+    /**
+     *  @private
+     */
+    private static var instance:IDragManager;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    public static function getInstance():IDragManager
+    {
+        if (!instance)
+        {
+            sm = SystemManagerGlobals.topLevelSystemManagers[0];
+            instance = new NativeDragManagerImpl();
+        }
+
+        return instance;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    public function NativeDragManagerImpl()
+    {
+        super();
+
+        if (instance)
+            throw new Error("Instance already exists.");
+
+        registerSystemManager(sm);
+        sandboxRoot = sm.getSandboxRoot();
+        sandboxRoot.addEventListener(InterDragManagerEvent.DISPATCH_DRAG_EVENT, marshalDispatchEventHandler, false, 0, true);
+
+        // trace("creating DragManagerImpl", sm);
+        sandboxRoot.addEventListener(InterManagerRequest.DRAG_MANAGER_REQUEST, marshalDragManagerHandler, false, 0, true);
+        var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+        me.name = "update";
+        // trace("--->update request for DragManagerImpl", sm);
+        sandboxRoot.dispatchEvent(me);
+        // trace("<---update request for DragManagerImpl", sm);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Object being dragged around.
+     */
+    public var dragProxy:DragProxy;
+
+    /**
+     *  @private
+     */
+    private var mouseIsDown:Boolean = false;
+
+    private var _action:String;
+
+    /**
+     *  @private
+     */
+    private var _dragInitiator:IUIComponent;
+
+    /**
+     *  @private
+     */
+    private var _clipboard:Clipboard;
+
+    /**
+     *  @private
+     */
+    private var _dragImage:IFlexDisplayObject;
+
+    private var _offset:Point;
+
+    private var _allowedActions:NativeDragOptions;
+
+    private var _allowMove:Boolean;
+
+    private var _relatedObject:InteractiveObject;
+
+    /**
+     *  @private
+     *  The highest place we can listen for events in our DOM
+     */
+    private var sandboxRoot:IEventDispatcher;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Read-only property that returns true
+     *  if a drag is in progress.
+     */
+    public function get isDragging():Boolean
+    {
+        return flash.desktop.NativeDragManager.isDragging;// || bDoingDrag;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+
+    /**
+     *  Initiates a drag and drop operation.
+     *
+     *  @param dragInitiator IUIComponent that specifies the component initiating
+     *  the drag.
+     *
+     *  @param dragSource DragSource object that contains the data
+     *  being dragged.
+     *
+     *  @param mouseEvent The MouseEvent that contains the mouse information
+     *  for the start of the drag.
+     *
+     *  @param dragImage The image to drag. This argument is optional.
+     *  If omitted, a standard drag rectangle is used during the drag and
+     *  drop operation. If you specify an image, you must explicitly set a
+     *  height and width of the image or else it will not appear.
+     *
+     *  @param xOffset Number that specifies the x offset, in pixels, for the
+     *  dragImage. This argument is optional. If omitted, the drag proxy
+     *  is shown at the upper-left corner of the drag initiator. The offset is expressed
+     *  in pixels from the left edge of the drag proxy to the left edge of the drag
+     *  initiator, and is usually a negative number.
+     *
+     *  @param yOffset Number that specifies the y offset, in pixels, for the
+     *  dragImage. This argument is optional. If omitted, the drag proxy
+     *  is shown at the upper-left corner of the drag initiator. The offset is expressed
+     *  in pixels from the top edge of the drag proxy to the top edge of the drag
+     *  initiator, and is usually a negative number.
+     *
+     *  @param imageAlpha Number that specifies the alpha value used for the
+     *  drag image. This argument is optional. If omitted, the default alpha
+     *  value is 0.5. A value of 0.0 indicates that the image is transparent;
+     *  a value of 1.0 indicates it is fully opaque.
+     */
+    public function doDrag(
+            dragInitiator:IUIComponent,
+            dragSource:DragSource,
+            mouseEvent:MouseEvent,
+            dragImage:IFlexDisplayObject = null, // instance of dragged item(s)
+            xOffset:Number = 0,
+            yOffset:Number = 0,
+            imageAlpha:Number = 0.5,
+            allowMove:Boolean = true):void
+    {
+        var proxyWidth:Number;
+        var proxyHeight:Number;
+
+        // Can't start a new drag if we're already in the middle of one...
+        if (isDragging)
+            return;
+
+        // Can't do a drag if the mouse isn't down
+        if (!(mouseEvent.type == MouseEvent.MOUSE_DOWN ||
+              mouseEvent.type == MouseEvent.CLICK ||
+              mouseIsDown ||
+              mouseEvent.buttonDown))
+        {
+            return;
+        }
+
+        var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+        me.name = "isDragging";
+        me.value = true;
+        // trace("-->dispatch isDragging for DragManagerImpl", sm, true);
+        sandboxRoot.dispatchEvent(me);
+        // trace("<--dispatch isDragging for DragManagerImpl", sm, true);
+
+        me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+        me.name = "mouseShield";
+        me.value = true;
+        // trace("-->dispatch add mouseShield.for DragManagerImpl", sm);
+        sandboxRoot.dispatchEvent(me);
+
+        _clipboard = new Clipboard();
+        _dragInitiator = dragInitiator;
+        _offset = new Point(xOffset, yOffset);
+        _allowMove = allowMove;
+
+        //adjust offsets for imagePlacement.
+        _offset.y -= InteractiveObject(dragInitiator).mouseY;
+        _offset.x -= InteractiveObject(dragInitiator).mouseX;
+
+        // TODO!!! We need to pass in these values as a function parameter
+        _allowedActions = new NativeDragOptions();
+        _allowedActions.allowCopy = true;
+        _allowedActions.allowLink = true;
+        _allowedActions.allowMove = allowMove;
+
+        // Transfer the dragSource into a Clipboard
+        for (var i:int = 0; i < dragSource.formats.length; i++)
+        {
+            var format:String = dragSource.formats[i] as String;
+            var data:Object = dragSource.dataForFormat(format);
+            _clipboard.setData(format, data);
+        }
+
+        if (!dragImage)
+        {
+            // No drag image specified, use default
+            var dragManagerStyleDeclaration:CSSStyleDeclaration =
+                StyleManager.getStyleDeclaration("DragManager");
+            var dragImageClass:Class =
+                dragManagerStyleDeclaration.getStyle("defaultDragImageSkin");
+            dragImage = new dragImageClass();
+            proxyWidth = dragInitiator ? dragInitiator.width : 0;
+            proxyHeight = dragInitiator ? dragInitiator.height : 0;
+            if (dragImage is IFlexDisplayObject)
+                IFlexDisplayObject(dragImage).setActualSize(proxyWidth, proxyHeight);
+        }
+        else
+        {
+            proxyWidth = dragImage.width;
+            proxyHeight = dragImage.height;
+        }
+
+        _dragImage = dragImage;
+
+        if (dragImage is IUIComponent && dragImage is ILayoutManagerClient &&
+            !ILayoutManagerClient(dragImage).initialized && dragInitiator)
+        {
+            dragImage.addEventListener(FlexEvent.UPDATE_COMPLETE,initiateDrag);
+            dragInitiator.systemManager.popUpChildren.addChild(DisplayObject(dragImage));
+
+            if (dragImage is ILayoutManagerClient )
+            {
+                UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(dragImage), true);
+            }
+
+            if(dragImage is IUIComponent)
+            {
+                dragImage.setActualSize(proxyWidth, proxyHeight);
+                proxyWidth = (dragImage as IUIComponent).getExplicitOrMeasuredWidth();
+                proxyHeight = (dragImage as IUIComponent).getExplicitOrMeasuredHeight();
+            }
+            else
+            {
+                proxyWidth = dragImage.measuredWidth;
+                proxyHeight = dragImage.measuredHeight;
+            }
+
+            if (dragImage is ILayoutManagerClient )
+            {
+                UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(dragImage));
+            }
+        }
+        else
+        {
+            initiateDrag(null, false);
+            return;
+        }
+    }
+
+    /**
+     *  Finish up the doDrag once the dragImage has been drawn
+     */
+    private function initiateDrag(event:FlexEvent, removeImage:Boolean = true):void
+    {
+        if (removeImage)
+            _dragImage.removeEventListener(FlexEvent.UPDATE_COMPLETE, initiateDrag);
+        var dragBitmap:BitmapData
+        if (_dragImage.width && _dragImage.height)
+            dragBitmap = new BitmapData(_dragImage.width, _dragImage.height, true, 0x000000);
+        else
+            dragBitmap = new BitmapData(1, 1, true, 0x000000);
+        dragBitmap.draw(_dragImage);
+
+        if (removeImage && _dragImage is IUIComponent && _dragInitiator)
+        {
+            _dragInitiator.systemManager.popUpChildren.removeChild(DisplayObject(_dragImage));
+        }
+
+        // TODO!!! include _dragActions as the last param
+        flash.desktop.NativeDragManager.doDrag(InteractiveObject(_dragInitiator), _clipboard, dragBitmap, _offset, _allowedActions);
+        //NativeDragManager.dropAction = _allowMove ? DragManager.MOVE : DragManager.COPY;
+    }
+
+    /**
+     *  Call this method from your dragEnter event handler if you accept
+     *  the drag/drop data.
+     *  For example:
+     *
+     *
DragManager.acceptDragDrop(event.target);

+     *
+     *  @param target The drop target accepting the drag.
+     */
+    public function acceptDragDrop(target:IUIComponent):void
+    {
+        if (isDragging)
+        {
+            // trace("NativeDragMgr.acceptDragDrop targ",target);
+            var dispObj:InteractiveObject = target as InteractiveObject;
+            if (dispObj)
+                flash.desktop.NativeDragManager.acceptDragDrop(dispObj);
+        }
+        else
+        {
+            var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+            me.name = "acceptDragDrop";
+            me.value = target;
+            // trace("-->dispatch acceptDragDrop for DragManagerImpl", sm, target);
+            sandboxRoot.dispatchEvent(me);
+            // trace("<--dispatch acceptDragDrop for DragManagerImpl", sm, target);
+        }
+    }
+
+    /**
+     *  Sets the feedback indicator for the drag and drop operation.
+     *  Possible values are DragManager.COPY, DragManager.MOVE,
+     *  DragManager.LINK, or DragManager.NONE.
+     *
+     *  @param feedback The type of feedback indicator to display.
+     */
+    public function showFeedback(feedback:String):void
+    {
+        if (isDragging)
+        {
+            if (feedback == DragManager.MOVE && !_allowedActions.allowMove)
+                return;
+            else if (feedback == DragManager.COPY && !_allowedActions.allowCopy)
+                return;
+            else if (feedback == DragManager.LINK && !_allowedActions.allowLink)
+                return;
+            flash.desktop.NativeDragManager.dropAction = feedback;
+        }
+        else
+        {
+            var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+            me.name = "showFeedback";
+            me.value = feedback;
+            // trace("-->dispatch showFeedback for DragManagerImpl", sm, feedback);
+            sandboxRoot.dispatchEvent(me);
+            // trace("<--dispatch showFeedback for DragManagerImpl", sm, feedback);
+        }
+    }
+
+    /**
+     *  Returns the current drag and drop feedback.
+     *
+     *  @return  Possible return values are DragManager.COPY,
+     *  DragManager.MOVE,
+     *  DragManager.LINK, or DragManager.NONE.
+     */
+    public function getFeedback():String
+    {
+        if (!isDragging)
+        {
+            var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+            me.name = "getFeedback";
+            // trace("-->dispatch getFeedback for DragManagerImpl", sm);
+            sandboxRoot.dispatchEvent(me);
+            // trace("<--dispatch getFeedback for DragManagerImpl", sm);
+            return me.value as String;
+        }
+
+        return flash.desktop.NativeDragManager.dropAction;
+    }
+
+    /**
+     *  @Review
+     *  Not Supported by NativeDragManagerImpl
+     */
+    public function endDrag():void
+    {
+        var me:InterManagerRequest;
+
+        me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+        me.name = "mouseShield";
+        me.value = false;
+        // trace("-->dispatch remove mouseShield.for DragManagerImpl", sm);
+        sandboxRoot.dispatchEvent(me);
+
+        me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+        me.name = "isDragging";
+        me.value = false;
+        // trace("-->dispatch isDragging for DragManagerImpl", sm, false);
+        sandboxRoot.dispatchEvent(me);
+        // trace("<--dispatch isDragging for DragManagerImpl", sm, false);
+        // trace("<--endDrag for DragManagerImpl", sm);
+
+    }
+
+    /**
+     *  @private
+     *  register ISystemManagers that will listen for events
+     *  (such as those for additional windows)
+     */
+    mx_internal function registerSystemManager(sm:ISystemManager):void
+    {
+        if (sm.isTopLevel())
+        {
+            sm.addEventListener(MouseEvent.MOUSE_DOWN, sm_mouseDownHandler);
+            sm.addEventListener(MouseEvent.MOUSE_UP, sm_mouseUpHandler);
+        }
+
+        sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, nativeDragEventHandler, true);
+        sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_COMPLETE, nativeDragEventHandler, true);
+        sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, nativeDragEventHandler, true);
+        sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT, nativeDragEventHandler, true);
+        sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_OVER, nativeDragEventHandler, true);
+        sm.stage.addEventListener(NativeDragEvent.NATIVE_DRAG_START, nativeDragEventHandler, true);
+
+    }
+
+    /**
+     *  @private
+     *  unregister ISystemManagers that will listen for events
+     *  (such as those for additional windows)
+     */
+    mx_internal function unregisterSystemManager(sm:ISystemManager):void
+    {
+        if (sm.isTopLevel())
+        {
+            sm.removeEventListener(MouseEvent.MOUSE_DOWN, sm_mouseDownHandler);
+            sm.removeEventListener(MouseEvent.MOUSE_UP, sm_mouseUpHandler);
+        }
+
+        sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, nativeDragEventHandler, true);
+        sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_COMPLETE, nativeDragEventHandler, true);
+        sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_DROP, nativeDragEventHandler, true);
+        sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_EXIT, nativeDragEventHandler, true);
+        sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_OVER, nativeDragEventHandler, true);
+        sm.stage.removeEventListener(NativeDragEvent.NATIVE_DRAG_START, nativeDragEventHandler, true);
+
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+    private function sm_mouseDownHandler(event:MouseEvent):void
+    {
+        mouseIsDown = true;
+    }
+
+    private function sm_mouseUpHandler(event:MouseEvent):void
+    {
+        mouseIsDown = false;
+    }
+
+    /**
+     *  Listens for all NativeDragEvents and then redispatches them as DragEvents
+     */
+    private function nativeDragEventHandler(event:NativeDragEvent):void
+    {
+        var newType:String = event.type.charAt(6).toLowerCase() + event.type.substr(7);
+        var dragSource:DragSource = new DragSource();
+        var target:DisplayObject = event.target as DisplayObject;
+        var clipboard:Clipboard = event.clipboard;
+        var origFormats:Array = clipboard.formats;
+        var len:int = origFormats.length;
+        var format:String;
+        var data:Object;
+        var me:InterManagerRequest;
+
+        _allowedActions = event.allowedActions;
+
+        //translate either commandKey or controlKey to old-style ctrlKey
+        var ctrlKey:Boolean = false;
+        if (Capabilities.os.substring(0,3) == "Mac")
+            ctrlKey = event.commandKey;
+        else
+            ctrlKey = event.controlKey;
+        //default to move if drag is from same app
+        if (NativeDragManager.dragInitiator != null)
+            flash.desktop.NativeDragManager.dropAction =  (ctrlKey || !_allowMove) ? DragManager.COPY : DragManager.MOVE;
+        // Transfer clipboard data to dragSource
+        if (event.type != NativeDragEvent.NATIVE_DRAG_EXIT)
+        {
+            for (var i:int = 0; i < len; i++)
+            {
+                format = origFormats[i];
+                if (clipboard.hasFormat(format))
+                {
+                    data = clipboard.getData(format);
+                    dragSource.addData(data,format);
+                }
+            }
+        }
+        if (event.type == NativeDragEvent.NATIVE_DRAG_DROP)
+            _relatedObject = event.target as InteractiveObject;
+
+
+
+        // Need a dragInitiator in NativeDragEvent
+        var dragEvent:DragEvent
+            = new DragEvent(newType, false, event.cancelable,
+                            NativeDragManager.dragInitiator as IUIComponent,
+                            dragSource, event.dropAction, ctrlKey,
+                            event.altKey, event.shiftKey);
+        dragEvent.buttonDown = event.buttonDown;
+        dragEvent.delta = event.delta;
+        dragEvent.localX = event.localX;
+        dragEvent.localY = event.localY;
+        if (newType == DragEvent.DRAG_COMPLETE)
+            dragEvent.relatedObject = _relatedObject;
+        else
+            dragEvent.relatedObject = event.relatedObject;
+        // Resend the event as a DragEvent.
+        _dispatchDragEvent(target, dragEvent);
+
+        if (newType == DragEvent.DRAG_COMPLETE)
+        {
+            if (sm == sandboxRoot)
+                endDrag();
+            else
+            {
+                me = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+                me.name = "endDrag";
+                // trace("-->dispatch endDrag for DragManagerImpl", sm);
+                sandboxRoot.dispatchEvent(me);
+                // trace("<--dispatch endDrag for DragManagerImpl", sm);
+            }
+        }
+    }

     /**
      *  @private
      */
     private function _dispatchDragEvent(target:DisplayObject, event:DragEvent):void
     {
-		// in trusted mode, the target could be in another application domain
-		// in untrusted mode, the mouse events shouldn't work so we shouldn't be here
-
-		// same domain
-		if (isSameOrChildApplicationDomain(target))
-			target.dispatchEvent(event);
-		else
-		{
-			// wake up all the other DragManagers
-			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.INIT_MANAGER_REQUEST);
-			me.name = "mx.managers.IDragManagerImpl";
-			sandboxRoot.dispatchEvent(me);
-			// bounce this message off the sandbox root and hope
-			// another DragManager picks it up
-			var mde:InterDragManagerEvent = new InterDragManagerEvent(InterDragManagerEvent.DISPATCH_DRAG_EVENT, false, false,
-													event.localX,
-													event.localY,
-													event.relatedObject,
-													event.ctrlKey,
-													event.altKey,
-													event.shiftKey,
-													event.buttonDown,
-													event.delta,
-													target,
-													event.type,
-													event.dragInitiator,
-													event.dragSource,
-													event.action,
-													event.draggedItem
-													);
-			sandboxRoot.dispatchEvent(mde);
-		}
-	}
-
-	private function isSameOrChildApplicationDomain(target:Object):Boolean
-	{
-		var swfRoot:DisplayObject = SystemManager.getSWFRoot(target);
+        // in trusted mode, the target could be in another application domain
+        // in untrusted mode, the mouse events shouldn't work so we shouldn't be here
+
+        // same domain
+        if (isSameOrChildApplicationDomain(target))
+            target.dispatchEvent(event);
+        else
+        {
+            // wake up all the other DragManagers
+            var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.INIT_MANAGER_REQUEST);
+            me.name = "mx.managers.IDragManagerImpl";
+            sandboxRoot.dispatchEvent(me);
+            // bounce this message off the sandbox root and hope
+            // another DragManager picks it up
+            var mde:InterDragManagerEvent = new InterDragManagerEvent(InterDragManagerEvent.DISPATCH_DRAG_EVENT, false, false,
+                                                    event.localX,
+                                                    event.localY,
+                                                    event.relatedObject,
+                                                    event.ctrlKey,
+                                                    event.altKey,
+                                                    event.shiftKey,
+                                                    event.buttonDown,
+                                                    event.delta,
+                                                    target,
+                                                    event.type,
+                                                    event.dragInitiator,
+                                                    event.dragSource,
+                                                    event.action,
+                                                    event.draggedItem
+                                                    );
+            sandboxRoot.dispatchEvent(mde);
+        }
+    }
+
+    private function isSameOrChildApplicationDomain(target:Object):Boolean
+    {
+        var swfRoot:DisplayObject = SystemManager.getSWFRoot(target);
         if (swfRoot)
             return true;

@@ -657,99 +656,99 @@
         return false;
     }

-	/**
-	 *  Marshal dispatchEvents
-	 */
-	private function marshalDispatchEventHandler(event:Event):void
-	{
-		if (event is InterDragManagerEvent)
-			return;
-
-		var marshalEvent:Object = event;
-
-		var swfRoot:DisplayObject = SystemManager.getSWFRoot(marshalEvent.dropTarget);
-		if (!swfRoot)
-			return;	// doesn't belong to this appdomain
-
-		var dragEvent:DragEvent = new DragEvent(marshalEvent.dragEventType, marshalEvent.bubbles, marshalEvent.cancelable);
-		dragEvent.localX = marshalEvent.localX;
-		dragEvent.localY = marshalEvent.localY;
-		dragEvent.action = marshalEvent.action;
-		dragEvent.ctrlKey = marshalEvent.ctrlKey;
-		dragEvent.altKey = marshalEvent.altKey;
-		dragEvent.shiftKey = marshalEvent.shiftKey;
-		dragEvent.draggedItem = marshalEvent.draggedItem;
-		dragEvent.dragSource = new DragSource();
-		var formats:Array = marshalEvent.dragSource.formats;
-		var n:int = formats.length;
-		for (var i:int = 0; i < n; i++)
-		{
-			// this will call handlers right away, so deferred clipboard will be costly
-			dragEvent.dragSource.addData(marshalEvent.dragSource.dataForFormat(formats[i]), formats[i]);
-		}
-		if (!marshalEvent.dropTarget.dispatchEvent(dragEvent))
-		{
-			event.preventDefault();
-		}
-	}
-
-	/**
-	 *  Marshal dragManager
-	 */
-	private function marshalDragManagerHandler(event:Event):void
-	{
-		if (event is InterManagerRequest)
-			return;
-
-		var marshalEvent:Object = event;
-		switch (marshalEvent.name)
-		{
-		case "isDragging":
-			// trace("--marshaled isDragging for DragManagerImpl", sm, marshalEvent.value);
-			// bDoingDrag = marshalEvent.value; // not supported in AIR right now, we'd need more info
-			break;
-		case "acceptDragDrop":
-			if (isDragging)
-			{
-				// trace("NativeDragMgr.acceptDragDrop targ",target);
-				var dispObj:InteractiveObject = marshalEvent.value as InteractiveObject;
-				if (dispObj)
-					flash.desktop.NativeDragManager.acceptDragDrop(dispObj);
-			}
-			break;
-		case "showFeedback":
-			if (isDragging)	// it is our drag
-			{
-				// trace("--marshaled showFeedback for DragManagerImpl", sm, marshalEvent.value);
-				showFeedback(marshalEvent.value);
-			}
-			break;
-		case "getFeedback":
-			if (isDragging)	// it is our drag
-			{
-				marshalEvent.value = getFeedback();
-				// trace("--marshaled getFeedback for DragManagerImpl", sm, marshalEvent.value);
-			}
-			break;
-		case "endDrag":
-			// trace("--marshaled endDrag for DragManagerImpl", sm, marshalEvent.value);
-			endDrag();
-			break;
-		case "update":
-			// if we own the drag, then redispatch to tell the new guy
-			if (isDragging)
-			{
-				// trace("-->marshaled update for DragManagerImpl", sm);
-				var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
-				me.name = "isDragging";
-				me.value = true;
-				// trace("-->dispatched isDragging for DragManagerImpl", sm, true);
-				sandboxRoot.dispatchEvent(me);
-				// trace("<--dispatched isDragging for DragManagerImpl", sm, true);
-				// trace("<--marshaled update for DragManagerImpl", sm);
-			}
-		}
-	}
+    /**
+     *  Marshal dispatchEvents
+     */
+    private function marshalDispatchEventHandler(event:Event):void
+    {
+        if (event is InterDragManagerEvent)
+            return;
+
+        var marshalEvent:Object = event;
+
+        var swfRoot:DisplayObject = SystemManager.getSWFRoot(marshalEvent.dropTarget);
+        if (!swfRoot)
+            return; // doesn't belong to this appdomain
+
+        var dragEvent:DragEvent = new DragEvent(marshalEvent.dragEventType, marshalEvent.bubbles, marshalEvent.cancelable);
+        dragEvent.localX = marshalEvent.localX;
+        dragEvent.localY = marshalEvent.localY;
+        dragEvent.action = marshalEvent.action;
+        dragEvent.ctrlKey = marshalEvent.ctrlKey;
+        dragEvent.altKey = marshalEvent.altKey;
+        dragEvent.shiftKey = marshalEvent.shiftKey;
+        dragEvent.draggedItem = marshalEvent.draggedItem;
+        dragEvent.dragSource = new DragSource();
+        var formats:Array = marshalEvent.dragSource.formats;
+        var n:int = formats.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            // this will call handlers right away, so deferred clipboard will be costly
+            dragEvent.dragSource.addData(marshalEvent.dragSource.dataForFormat(formats[i]), formats[i]);
+        }
+        if (!marshalEvent.dropTarget.dispatchEvent(dragEvent))
+        {
+            event.preventDefault();
+        }
+    }
+
+    /**
+     *  Marshal dragManager
+     */
+    private function marshalDragManagerHandler(event:Event):void
+    {
+        if (event is InterManagerRequest)
+            return;
+
+        var marshalEvent:Object = event;
+        switch (marshalEvent.name)
+        {
+        case "isDragging":
+            // trace("--marshaled isDragging for DragManagerImpl", sm, marshalEvent.value);
+            // bDoingDrag = marshalEvent.value; // not supported in AIR right now, we'd need more info
+            break;
+        case "acceptDragDrop":
+            if (isDragging)
+            {
+                // trace("NativeDragMgr.acceptDragDrop targ",target);
+                var dispObj:InteractiveObject = marshalEvent.value as InteractiveObject;
+                if (dispObj)
+                    flash.desktop.NativeDragManager.acceptDragDrop(dispObj);
+            }
+            break;
+        case "showFeedback":
+            if (isDragging) // it is our drag
+            {
+                // trace("--marshaled showFeedback for DragManagerImpl", sm, marshalEvent.value);
+                showFeedback(marshalEvent.value);
+            }
+            break;
+        case "getFeedback":
+            if (isDragging) // it is our drag
+            {
+                marshalEvent.value = getFeedback();
+                // trace("--marshaled getFeedback for DragManagerImpl", sm, marshalEvent.value);
+            }
+            break;
+        case "endDrag":
+            // trace("--marshaled endDrag for DragManagerImpl", sm, marshalEvent.value);
+            endDrag();
+            break;
+        case "update":
+            // if we own the drag, then redispatch to tell the new guy
+            if (isDragging)
+            {
+                // trace("-->marshaled update for DragManagerImpl", sm);
+                var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST);
+                me.name = "isDragging";
+                me.value = true;
+                // trace("-->dispatched isDragging for DragManagerImpl", sm, true);
+                sandboxRoot.dispatchEvent(me);
+                // trace("<--dispatched isDragging for DragManagerImpl", sm, true);
+                // trace("<--marshaled update for DragManagerImpl", sm);
+            }
+        }
+    }
 }

 }


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

--- frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as
+++ frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-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.accessibility
 {