Transferred from the Adobe Open Source Subversion Repository

Revision: 11317
Author:   rfrishbe@adobe.com
Date:     2009-10-30T18:36:29.449922Z

Log Message:
-----------
Fixing a few ItemRenderer/DefaultItemRenderer issues.

- Changed ASDoc @default for itemIndex to 0 (it was false)
- Corrected binding for ItemRenderer.label so binding should work now.
- Remove contentBackgroundColor and contentBackgroundAlpha styles from DefaultItemRenderer
- Remove localToGlobal and glocalToLocal calls from DefaultItemRenderer.baselinePosition because they aren't needed here even though they are needed in ItemRenderer.baselinePosition

QE notes: -
Doc notes: -
Bugs: SDK-23882
Reviewer: Glenn
Tests run: checkintests, mustella List, DropDownList
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
@@ -70,28 +70,6 @@
  *  @productversion Flex 4
  */
 [Style(name="alternatingItemColors", type="Array", arrayType="uint", format="Color", inherit="yes", theme="spark")]
-
-/**
- *  The alpha of the content background for this component.
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-[Style(name="contentBackgroundAlpha", type="Number", inherit="yes", theme="spark")]
-
-/**
- *  Color of the fill of an item renderer
- *
- *  @default 0xFFFFFF
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-[Style(name="contentBackgroundColor", type="uint", format="Color", inherit="yes", theme="spark")]

 /**
  *  Color of focus ring when the component is in focus
@@ -200,69 +178,28 @@

     //--------------------------------------------------------------------------
     //
+    //  Overridden properties: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  baselinePosition
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get baselinePosition():Number
+    {
+        if (!labelDisplay || !validateBaselinePosition())
+            return super.baselinePosition;
+
+        return labelDisplay.y + labelDisplay.baselinePosition;
+    }
+
+    //--------------------------------------------------------------------------
+    //
     //  Public Properties
-    //
-    //--------------------------------------------------------------------------
-
-    //----------------------------------
-    //  itemIndex
-    //----------------------------------
-
-    /**
-     *  @private
-     *  storage for the itemIndex property
-     */
-    private var _itemIndex:int;
-
-    /**
-     *  @inheritDoc
-     *
-     *  @default false
-     */
-    public function get itemIndex():int
-    {
-        return _itemIndex;
-    }
-
-    /**
-     *  @private
-     */
-    public function set itemIndex(value:int):void
-    {
-        if (value == _itemIndex)
-            return;
-
-        _itemIndex = value;
-        invalidateDisplayList();
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Overridden properties: UIComponent
-    //
-    //--------------------------------------------------------------------------
-
-    //----------------------------------
-    //  baselinePosition
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    override public function get baselinePosition():Number
-    {
-        if (!validateBaselinePosition() || !labelDisplay)
-            return super.baselinePosition;
-
-        var labelPosition:Point = globalToLocal(labelDisplay.parent.localToGlobal(
-            new Point(labelDisplay.x, labelDisplay.y)));
-
-        return labelPosition.y + labelDisplay.baselinePosition;
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Properties
     //
     //--------------------------------------------------------------------------

@@ -307,6 +244,38 @@
     }

     //----------------------------------
+    //  itemIndex
+    //----------------------------------
+
+    /**
+     *  @private
+     *  storage for the itemIndex property
+     */
+    private var _itemIndex:int;
+
+    /**
+     *  @inheritDoc
+     *
+     *  @default 0
+     */
+    public function get itemIndex():int
+    {
+        return _itemIndex;
+    }
+
+    /**
+     *  @private
+     */
+    public function set itemIndex(value:int):void
+    {
+        if (value == _itemIndex)
+            return;
+
+        _itemIndex = value;
+        invalidateDisplayList();
+    }
+
+    //----------------------------------
     //  label
     //----------------------------------

@@ -331,11 +300,13 @@
      */
     public function set label(value:String):void
     {
-        if (value != _label)
-            _label = value;
-
-        //Push the label down into the labelDisplay,
-        //if it exists
+        if (value == _label)
+            return;
+
+        _label = value;
+
+        // Push the label down into the labelDisplay,
+        // if it exists
         if (labelDisplay)
             labelDisplay.text = _label;
     }
@@ -478,7 +449,7 @@
     {
         super.measure();

-        // label had padding of 3 on left and right and padding of 5 on top and bottom.
+        // label has padding of 3 on left and right and padding of 5 on top and bottom.
         measuredWidth = labelDisplay.getExplicitOrMeasuredWidth() + 6;
         measuredHeight = labelDisplay.getExplicitOrMeasuredHeight() + 10;
     }
@@ -553,6 +524,9 @@
         addEventListener(MouseEvent.ROLL_OUT, itemRenderer_rollOutHandler);
     }

+    /**
+     *  @private
+     */
     private function anyButtonDown(event:MouseEvent):Boolean
     {
         var type:String = event.type;


Transferred from the Adobe Open Source Subversion Repository

Revision: 2464
Author:   jimurphy@adobe.com
Date:     2008-07-14T19:50:33.449468Z

Log Message:
-----------
add flex 4 to trunk

Modified Paths:
--------------
134 paths were modified

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+
+	ADOBE SYSTEMS INCORPORATED
+	Copyright 2008 Adobe Systems Incorporated
+	All Rights Reserved.
+
+	NOTICE: Adobe permits you to use, modify, and distribute this file
+	in accordance with the terms of the license agreement accompanying it.
+
+-->
+
+<ItemRenderer xmlns="http://ns.adobe.com/mxml/2009">
+
+    <states>
+		<State name="normal"/>
+		<State name="hovered"/>
+		<State name="selected"/>
+	</states>
+
+    <content>
+		<Rect left="0" right="0" top="0" bottom="0">
+			<fill>
+				<SolidColor color="0x00FFFF"
+                            alpha="0" alpha.hovered="0.2" alpha.selected="0.8" />
+			</fill>
+		</Rect>
+		<Group id="contentHolder" content="{data}"
+               left="0" right="0" top="0" bottom="0"
+               layout="flex.layout.HorizontalLayout" />
+	</content>
+
+</ItemRenderer>


Transferred from the Adobe Open Source Subversion Repository

Revision: 11946
Author:   gosmith@adobe.com
Date:     2009-11-18T19:25:26.539128Z

Log Message:
-----------
A new enum class, mx.accessibility.AccConst, now centralizes, makes public, and documents all the ROLE_XXX, STATE_XXX, and EVENT_XXX constants defined by Microsoft's Active Accessibility (MSAA) specification.

These constants are for use in writing AccessibilityImplementation subclasses. With this checkin, only the AccImpl base class has been converted to use them, but soon all of its subclasses will be converted as well.

QE notes: None
Doc notes: We need to get ALL accessibility classes showing up in ASDoc, both in the Player and in Flex.
Bugs: None
Reviewer: Ryan
Tests run: ant checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccConst.as</path>

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

--- frameworks/projects/framework/src/mx/accessibility/AccConst.as
+++ frameworks/projects/framework/src/mx/accessibility/AccConst.as
@@ -0,0 +1,1231 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.accessibility
+{
+
+/**
+ *  The AccConst class defines constants defined in
+ *  Microsoft's Active Accessibility (MSAA) specification.
+ *  They are used to implement subclasses of AccessibilityImplementation.
+ *
+ *
Since Flash Player uses MSAA to provide accessibility,
+ *  the names of the constants in this file have been taken
+ *  verbatim from Microsoft's MSAA SDK.
+ *  Their descriptions have been taken with minor modifications.
+ *  Keep in mind when reading them that Flash Player is considered
+ *  an "MSAA server application" because DisplayObjects in a SWF
+ *  provide MSAA information to MSAA clients such as screen readers,
+ *  via a COM interface called IAccessible.

+ */
+public final class AccConst
+{
+    include "../core/Version.as";
+
+	//--------------------------------------
+	//  MSAA roles
+	//--------------------------------------
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a title or caption bar for a window.
+	 */
+	public static const ROLE_SYSTEM_TITLEBAR:uint = 0x1;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents the menu bar,
+	 *  usually following (beneath) the title bar of a window,
+	 *  from which menus can be selected by the user.
+	 */
+	public static const ROLE_SYSTEM_MENUBAR:uint = 0x2;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a vertical or horizontal scroll bar,
+	 *  which can be either part of the client area or used in a control.
+	 */
+	public static const ROLE_SYSTEM_SCROLLBAR:uint = 0x3;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a special mouse pointer,
+	 *  which allows a user to manipulate
+	 *  user interface elements such as a window.
+	 *
+	 *
For example, a user can click and drag a sizing grip
+	 *  in the lower-right corner of a window to resize it.

+	 */
+	public static const ROLE_SYSTEM_GRIP:uint = 0x4;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a system sound,
+	 *  which is associated with various system events.
+	 */
+	public static const ROLE_SYSTEM_SOUND:uint = 0x5;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents the system mouse pointer.
+	 */
+	public static const ROLE_SYSTEM_CURSOR:uint = 0x6;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents the system caret.
+	 */
+	public static const ROLE_SYSTEM_CARET:uint = 0x7;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents an alert or a condition
+	 *  that a user should be notified about.
+	 *
+	 *
This role should be used only for objects that embody an alert
+	 *  but are not associated with another user interface element
+	 *  such as a message box, graphic, text, or sound.

+	 */
+	public static const ROLE_SYSTEM_ALERT:uint = 0x8;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents the window frame,
+	 *  which usually contains child objects such as a title bar,
+	 *  client, and other objects typically contained in a window.
+	 */
+	public static const ROLE_SYSTEM_WINDOW:uint = 0x9;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a window's client area.
+	 */
+	public static const ROLE_SYSTEM_CLIENT:uint = 0xA;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a menu,
+	 *  which presents a list of options from which the user
+	 *  can make a selection to perform an action.
+	 *
+	 *
All menu types must have this role,
+	 *  including drop-down menus that are displayed by selection
+	 *  from a menu bar, and shortcut menus that are displayed
+	 *  when the right mouse button is clicked.

+	 */
+	public static const ROLE_SYSTEM_MENUPOPUP:uint = 0xB;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a menu item,
+	 *  which is an entry in a menu that a user can choose
+	 *  to carry out a command, select an option, or display another menu.
+	 *
+	 *
Functionally, a menu item can be equivalent to a push button,
+	 *  radio button, check box, or menu.</pL>
+	 */
+	public static const ROLE_SYSTEM_MENUITEM:uint = 0xC;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a ToolTip that provides helpful hints.
+	 */
+	public static const ROLE_SYSTEM_TOOLTIP:uint = 0xD;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a main window for an application.
+	 */
+	public static const ROLE_SYSTEM_APPLICATION:uint = 0xE;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a document window.
+	 *
+	 *
A document window is always contained within an application window.
+	 *  This role applies only to multiple-document interface (MDI) windows
+	 *  and refers to the object that contains the MDI title bar.

+	 */
+	public static const ROLE_SYSTEM_DOCUMENT:uint = 0xF;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a pane within a frame or document window.
+	 *
+	 *
Users can navigate between panes
+	 *  and within the contents of the current pane,
+	 *  but cannot navigate between items in different panes.
+	 *  Thus, panes represent a level of grouping
+	 *  lower than frame windows or documents,
+	 *  but above individual controls.
+	 *  Typically the user navigates between panes
+	 *  by pressing TAB, F6, or CTRL+TAB, depending on the context.

+	 */
+	public static const ROLE_SYSTEM_PANE:uint = 0x10;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  he object represents a graphical image used to represent data.
+	 */
+	public static const ROLE_SYSTEM_CHART:uint = 0x11;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a dialog box or message box.
+	 */
+	public static const ROLE_SYSTEM_DIALOG:uint = 0x12;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a window border.
+	 *
+	 *
The entire border is represented by a single object,
+	 *  rather than by separate objects for each side.

+	 */
+	public static const ROLE_SYSTEM_BORDER:uint = 0x13;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object logically groups other objects.
+	 *
+	 *
There may or may not be a parent-child relationship
+	 *  between the grouping object and the objects it contains.

+	 */
+	public static const ROLE_SYSTEM_GROUPING:uint = 0x14;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object is used to visually divide a space into two regions,
+	 *  such as a separator menu item
+	 *  or a bar dividing split panes within a window.
+	 */
+	public static const ROLE_SYSTEM_SEPARATOR:uint = 0x15;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a toolbar,
+	 *  which is a grouping of controls
+	 *  that provide easy access to frequently used features.
+	 */
+	public static const ROLE_SYSTEM_TOOLBAR:uint = 0x16;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a status bar,
+	 *  which is an area typically at the bottom of a window
+	 *  that displays information about the current operation,
+	 *  state of the application, or selected object.
+	 *
+	 *
The status bar can have multiple fields,
+	 *  which display different kinds of information.

+	 */
+	public static const ROLE_SYSTEM_STATUSBAR:uint = 0x17;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a table
+	 *  containing rows and columns of cells,
+	 *  and optionally, row headers and column headers.
+	 */
+	public static const ROLE_SYSTEM_TABLE:uint = 0x18;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a column header,
+	 *  providing a visual label for a column in a table.
+	 */
+	public static const ROLE_SYSTEM_COLUMNHEADER:uint = 0x19;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a row header,
+	 *  providing a visual label for a table row.
+	 */
+	public static const ROLE_SYSTEM_ROWHEADER:uint = 0x1A;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a column of cells within a table.
+	 */
+	public static const ROLE_SYSTEM_COLUMN:uint = 0x1B;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a row of cells within a table.
+	 */
+	public static const ROLE_SYSTEM_ROW:uint = 0x1C;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a cell within a table.
+	 */
+	public static const ROLE_SYSTEM_CELL:uint = 0x1D;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a link to something else.
+	 *
+	 *
This object might look like text or a graphic,
+	 *  but it acts like a button.

+	 */
+	public static const ROLE_SYSTEM_LINK:uint = 0x1E;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object displays help in the form of a ToolTip or help balloon.
+	 */
+	public static const ROLE_SYSTEM_HELPBALLOON:uint = 0x1F;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a cartoon-like graphic object,
+	 *  such as Microsoft Office Assistant, which is typically displayed
+	 *  to provide help to users of an application.
+	 */
+	public static const ROLE_SYSTEM_CHARACTER:uint = 0x20;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a list box,
+	 *  allowing the user to select one or more items.
+	 */
+	public static const ROLE_SYSTEM_LIST:uint = 0x21;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents an item in a list box
+	 *  or the list portion of a combo box,
+	 *  drop-down list box, or drop-down combo box.
+	 */
+	public static const ROLE_SYSTEM_LISTITEM:uint = 0x22;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents an outline or tree structure,
+	 *  such as a tree view control, which displays a hierarchical list
+	 *  and usually allows the user to expand and collapse branches.
+	 */
+	public static const ROLE_SYSTEM_OUTLINE:uint = 0x23;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents an item in an outline or tree structure.
+	 */
+	public static const ROLE_SYSTEM_OUTLINEITEM:uint = 0x24;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a page tab.
+	 *  Normally the only child of a page tab control
+	 *  is a ROLE_SYSTEM_GROUPING object
+	 *  that contains the contents of the associated page.
+	 */
+	public static const ROLE_SYSTEM_PAGETAB:uint = 0x25;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a property sheet.
+	 */
+	public static const ROLE_SYSTEM_PROPERTYPAGE:uint = 0x26;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents an indicator
+	 *  such as a pointer graphic that points to the current item.
+	 */
+	public static const ROLE_SYSTEM_INDICATOR:uint = 0x27;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a picture.
+	 */
+	public static const ROLE_SYSTEM_GRAPHIC:uint = 0x28;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents read-only text
+	 *  such as labels for other controls or instructions in a dialog box.
+	 *
+	 *
Static text cannot be modified or selected.

+	 */
+	public static const ROLE_SYSTEM_STATICTEXT:uint = 0x29;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents selectable text
+	 *  that can be editable or read-only.
+	 */
+	public static const ROLE_SYSTEM_TEXT:uint = 0x2A;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a push button control.
+	 */
+	public static const ROLE_SYSTEM_PUSHBUTTON:uint = 0x2B;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a check box control,
+	 *  an option that can be turned on or off independently of other options.
+	 */
+	public static const ROLE_SYSTEM_CHECKBUTTON:uint = 0x2C;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents an option button
+	 *  (also called a radio button).
+	 *
+	 *
It is one of a group of mutually exclusive options.
+	 *  All objects sharing a single parent that have this attribute
+	 *  are assumed to be part of single mutually exclusive group.
+	 *  You can use ROLE_SYSTEM_GROUPING objects to divide them
+	 *  into separate groups when necessary.

+	 */
+	public static const ROLE_SYSTEM_RADIOBUTTON:uint = 0x2D;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a combo box;
+	 *  that is, an edit control with an associated list box
+	 *  that provides a set of predefined choices.
+	 */
+	public static const ROLE_SYSTEM_COMBOBOX:uint = 0x2E;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a drop-down list box.
+	 *
+	 *
It shows one item and allows the user to display and select
+	 *  another from a list of alternative values.

+	 */
+	public static const ROLE_SYSTEM_DROPLIST:uint = 0x2F;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a progress bar,
+	 *  dynamically showing the user the percent complete
+	 *  of an operation in progress.
+	 *
+	 *
This control usually takes no user input.

+	 */
+	public static const ROLE_SYSTEM_PROGRESSBAR:uint = 0x30;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a dial or knob.
+	 *
+	 *
This can also be a read-only object with like a speedometer.

+	 */
+	public static const ROLE_SYSTEM_DIAL:uint = 0x31;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a hot-key field that allows the user
+	 *  to enter a combination or sequence of keystrokes.
+	 */
+	public static const ROLE_SYSTEM_HOTKEYFIELD:uint = 0x32;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a slider,
+	 *  which allows the user to adjust a setting
+	 *  in given increments between minimum and maximum values.
+	 */
+	public static const ROLE_SYSTEM_SLIDER:uint = 0x33;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a spin box,
+	 *  which is a control that allows the user
+	 *  to increment or decrement the value displayed
+	 *  in a separate "buddy" control associated with the spin box.
+	 */
+	public static const ROLE_SYSTEM_SPINBUTTON:uint = 0x34;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a graphical image used to diagram data.
+	 */
+	public static const ROLE_SYSTEM_DIAGRAM:uint = 0x35;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents an animation control,
+	 *  which contains content that is changing over time,
+	 *  such as a control that displays a series of bitmap frames,
+	 *  like a film strip.
+	 *
+	 *
Animation controls are usually displayed when files
+	 *  are being copied, or when some other time-consuming task
+	 *  is being performed.

+	 */
+	public static const ROLE_SYSTEM_ANIMATION:uint = 0x36;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a mathematical equation.
+	 */
+	public static const ROLE_SYSTEM_EQUATION:uint = 0x37;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a button that drops down a list of items.
+	 */
+	public static const ROLE_SYSTEM_BUTTONDROPDOWN:uint = 0x38;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a button that drops down a menu.
+	 */
+	public static const ROLE_SYSTEM_BUTTONMENU:uint = 0x39;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a button that drops down a grid.
+	 */
+	public static const ROLE_SYSTEM_BUTTONDROPDOWNGRID:uint = 0x3A;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents blank space between other objects.
+	 */
+	public static const ROLE_SYSTEM_WHITESPACE:uint = 0x3B;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a container of page tab controls.
+	 */
+	public static const ROLE_SYSTEM_PAGETABLIST:uint = 0x3C;
+
+	/**
+	 *  An MSAA role indicating that
+	 *  the object represents a control that displays time.
+	 */
+	public static const ROLE_SYSTEM_CLOCK:uint = 0x3D;
+
+	//--------------------------------------
+	//  MSAA states
+	//--------------------------------------
+
+	/**
+	 *  A constant representing the absence of any MSAA state flags.
+	 */
+	public static const STATE_SYSTEM_NORMAL:uint = 0;
+
+	/**
+	 *  An MSAA state flag indicating that the object is unavailable.
+	 */
+	public static const STATE_SYSTEM_UNAVAILABLE:uint = 0x1;
+
+	/**
+	 *  An MSAA state flag indicating that the object is selected.
+	 */
+	public static const STATE_SYSTEM_SELECTED:uint = 0x2;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  currently has the keyboard focus.
+	 *
+	 *
Do not confuse object focus with object selection.

+	 */
+	public static const STATE_SYSTEM_FOCUSED:uint = 0x4;
+
+	/**
+	 *  An MSAA state flag indicating that the object is pressed.
+	 */
+	public static const STATE_SYSTEM_PRESSED:uint = 0x8;
+
+	/**
+	 *  An MSAA state flag indicating that the object's check box is selected.
+	 */
+	public static const STATE_SYSTEM_CHECKED:uint = 0x10;
+
+	/**
+	 *  An MSAA state flag indicating that the state of a three-state
+	 *  check box or toolbar button is not determined.
+	 *
+	 *
The check box is neither checked nor unchecked
+	 *  and is therefore in the third or mixed state.

+	 */
+	public static const STATE_SYSTEM_MIXED:uint = 0x20;
+
+	/**
+	 *  An MSAA state flag indicating that the object is read-only.
+	 */
+	public static const STATE_SYSTEM_READONLY:uint = 0x40;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  is currently hot-tracked by the mouse,
+	 *  meaning that its appearance has changed
+	 *  to indicate that the mouse pointer is located over it.
+	 */
+	public static const STATE_SYSTEM_HOTTRACKED:uint = 0x80;
+
+	/**
+	 *  An MSAA state flag indicating the default button or menu item.
+	 */
+	public static const STATE_SYSTEM_DEFAULT:uint = 0x100;
+
+	/**
+	 *  An MSAA state flag indicating that children of this object
+	 *  that have the ROLE_SYSTEM_OUTLINEITEM role are displayed.
+	 */
+	public static const STATE_SYSTEM_EXPANDED:uint = 0x200;
+
+	/**
+	 *  An MSAA state flag indicating that children of this object
+	 *  that have the ROLE_SYSTEM_OUTLINEITEM role are hidden.
+	 */
+	public static const STATE_SYSTEM_COLLAPSED:uint = 0x400;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  cannot accept input at this time.
+	 */
+	public static const STATE_SYSTEM_BUSY:uint = 0x800;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  is not clipped to the boundary of its parent object
+	 *  and does not move automatically when the parent moves.
+	 */
+	public static const STATE_SYSTEM_FLOATING:uint = 0x1000;
+
+	/**
+	 *  An MSAA state flag indicating that the object displays
+	 *  scrolling or moving text or graphics.
+	 */
+	public static const STATE_SYSTEM_MARQUEED:uint = 0x2000;
+
+	/**
+	 *  An MSAA state flag indicating that the object's appearance
+	 *  is changing rapidly or constantly.
+	 *
+	 *
Graphics that are occasionally animated, but not always,
+	 *  should be described as ROLE_SYSTEM_GRAPHIC
+	 *  with the State property set to STATE_SYSTEM_ANIMATED.
+	 *  This state should not be used to indicate
+	 *  that the object's location is changing.

+	 */
+	public static const STATE_SYSTEM_ANIMATED:uint = 0x4000;
+
+	/**
+	 *  An MSAA state flag indicating that the object is hidden or not visible.
+	 *
+	 *
A list of files names in a list box might contain
+	 *  several hundred names, but only a few are visible to the user.
+	 *  The rest are clipped by the parent
+	 *  and should have STATE_SYSTEM_INVISIBLE set.

+	 *  Objects that are never visible should be set as STATE_SYSTEM_OFFSCREEN.
+	 *  Note that an object can be considered visible
+	 *  (that is, the STATE_SYSTEM_INVISIBLE flag is not set)
+	 *  and yet be obscured by another application,
+	 *  so will not be visible to the user.
+	 *  For example, an object is considered visible
+	 *  if it appears in the main window of an application
+	 *  even though it is obscured by a dialog.

+	 */
+	public static const STATE_SYSTEM_INVISIBLE:uint = 0x8000;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  has no on-screen representation.
+	 *
+	 *
A sound or alert object would have this state,
+	 *  or a hidden window that will never be made visible.

+	 */
+	public static const STATE_SYSTEM_OFFSCREEN:uint = 0x10000;
+
+	/**
+	 *  An MSAA state flag indicating that the object can be resized.
+	 */
+	public static const STATE_SYSTEM_SIZEABLE:uint = 0x20000;
+
+	/**
+	 *  An MSAA state flag indicating that the object can be moved.
+	 */
+	public static const STATE_SYSTEM_MOVEABLE:uint = 0x40000;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  can use text-to-speech (TTS) to describe itself.
+	 *
+	 *
A speech-based accessibility aid should not announce information
+	 *  when an object with this state has the focus because the object
+	 *  will automatically announce information about itself.

+	 */
+	public static const STATE_SYSTEM_SELFVOICING:uint = 0x80000;
+
+	/**
+	 *  An MSAA state flag indicating that the object is on the active window
+	 *  and can receive keyboard focus.
+	 */
+	public static const STATE_SYSTEM_FOCUSABLE:uint = 0x100000;
+
+	/**
+	 *  An MSAA state flag indicating that the object can accept selection.
+	 */
+	public static const STATE_SYSTEM_SELECTABLE:uint = 0x200000;
+
+	/**
+	 *  An MSAA state flag indicating that the object is linked.
+	 */
+	public static const STATE_SYSTEM_LINKED:uint = 0x400000;
+
+	/**
+	 *  An MSAA state flag indicating that the object has been traversed.
+	 */
+	public static const STATE_SYSTEM_TRAVERSED:uint = 0x800000;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  can accept multiple selected items
+	 *  (that is, SELFLAG_ADDSELECTION for the IAccessible::accSelect
+	 *  method is valid).
+	 */
+	public static const STATE_SYSTEM_MULTISELECTABLE:uint = 0x1000000;
+
+	/**
+	 *  An MSAA state flag indicating that the object can extend its selection
+	 *  using SELFLAG_EXTENDSELECTION in the IAccessible::accSelect method.
+	 */
+	public static const STATE_SYSTEM_EXTSELECTABLE:uint = 0x2000000;
+
+	/**
+	 *  An MSAA state flag indicating that the object displays
+	 *  low-priority information that may not be important to the user.
+	 *
+	 *
This state could be used, for example, when Word changes
+	 *  the appearance of the TipWizard button on its toolbar
+	 *  to indicate that it has a hint for the user.

+	 */
+	public static const STATE_SYSTEM_ALERT_LOW:uint = 0x4000000;
+
+	/**
+	 *  An MSAA state flag flaindicating that the object displays
+	 *  important information that does not need to be conveyed
+	 *  to the user immediately.
+	 *
+	 *
For example, when a battery level indicator is starting
+	 *  to reach a low level, it could generate a medium-level alert.
+	 *  Blind access utilities could then generate a sound
+	 *  to let the user know that important information is available,
+	 *  without actually interrupting the user's work.
+	 *  The user could then query the alert information
+	 *  at his or her leisure.

+	 */
+	public static const STATE_SYSTEM_ALERT_MEDIUM:uint = 0x8000000;
+
+	/**
+	 *  An MSAA state flag indicating that the object displays
+	 *  important information that should be conveyed to the user immediately.
+	 *
+	 *
For example, a battery level indicator reaching a critical low level
+	 *  could transition to this state, in which case a blind access utility
+	 *  could announce this information immediately to the user,
+	 *  and a screen magnification program could scroll the screen
+	 *  so that the battery indicator is in view.
+	 *  This state is also appropriate for any prompt or operation
+	 *  that must be completed before the user can continue.

+	 */
+	public static const STATE_SYSTEM_ALERT_HIGH:uint = 0x10000000;
+
+	/**
+	 *  An MSAA state flag indicating that the object
+	 *  is a password-protected edit control.
+	 */
+	public static const STATE_SYSTEM_PROTECTED:uint = 0x20000000;
+
+	/**
+	 *  A bitmask representing all valid MSAA state flags.
+	 */
+	public static const STATE_SYSTEM_VALID:uint = 0x3fffffff;
+
+	//--------------------------------------
+	//  MSAA system events
+	//--------------------------------------
+
+	/**
+	 *  An MSAA event indicating that a sound was played.
+	 *
+	 *
The system sends this event when a system sound
+	 *  (such as for menus) is played even if no sound is audible
+	 *  (for example, lack of a sound file or sound card).
+	 *  MSAA server applications send this event
+	 *  if a custom user interface element generates a sound.

+	 */
+	public static const EVENT_SYSTEM_SOUND:uint = 0x0001;
+
+	/**
+	 *  An MSAA event indicating that an alert was generated.
+	 *
+	 *
MSAA server applications send this event
+	 *  whenever an important user interface change has occurred
+	 *  that a user might need to know about.

+	 */
+	public static const EVENT_SYSTEM_ALERT:uint = 0x0002;
+
+	/**
+	 *  An MSAA event indicating that the foreground window changed.
+	 *
+	 *
The system sends this event even if the foreground window
+	 *  is changed to another window in the same thread.
+	 *  MSAA server applications never send this event.

+	 */
+	public static const EVENT_SYSTEM_FOREGROUND:uint = 0x0003;
+
+	/**
+	 *  An MSAA event indicating that a menu item on the menu bar was selected.
+	 *
+	 *
The system sends this event for standard menus.
+	 *  MSAA server applications send this event for custom menus
+	 *  (user interface elements that function as menus
+	 *  but are not created in the standard way).
+	 *  The system may trigger more than one EVENT_SYSTEM_MENUSTART event
+	 *  that may or may not have a corresponding EVENT_SYSTEM_MENUEND event.

+	 */
+	public static const EVENT_SYSTEM_MENUSTART:uint = 0x0004;
+
+	/**
+	 *  An MSAA event indicating that a menu from the menu bar was closed.
+	 *
+	 *
The system sends this event for standard menus.
+	 *  MSAA server applications send this event for custom menus.

+	 */
+	public static const EVENT_SYSTEM_MENUEND:uint = 0x0005;
+
+	/**
+	 *  An MSAA event indicating that a pop-up menu was displayed.
+	 *
+	 *
The system sends this event for standard menus.
+	 *  MSAA servers applications send this event for custom menus
+	 *  (user interface elements that function as menus
+	 *  but are not created in the standard way).

+	 */
+	public static const EVENT_SYSTEM_MENUPOPUPSTART:uint = 0x0006;
+
+	/**
+	 *  An MSAA event indicating that a pop-up menu was closed.
+	 *
+	 *
The system sends this event for standard menus.
+	 *  MSAA server appolications send this event for custom menus.
+	 *  When a pop-up menu is closed, the client receives this message
+	 *  followed almost immediately by the EVENT_SYSTEM_MENUEND event.

+	 */
+	public static const EVENT_SYSTEM_MENUPOPUPEND:uint = 0x0007;
+
+	/**
+	 *  An MSAA event indicating that a window has received mouse capture.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.

+	 */
+	public static const EVENT_SYSTEM_CAPTURESTART:uint = 0x0008;
+
+	/**
+	 *  An MSAA event indicating that a window has lost mouse capture.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.

+	 */
+	public static const EVENT_SYSTEM_CAPTUREEND:uint = 0x0009;
+
+	/**
+	 *  An MSAA event indicating that a window is being moved or resized.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.

+	 */
+	public static const EVENT_SYSTEM_MOVESIZESTART:uint = 0x000A;
+
+	/**
+	 *  An MSAA event indicating that the movement or resizing
+	 *  of a window is finished.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.

+	 */
+	public static const EVENT_SYSTEM_MOVESIZEEND:uint = 0x000B;
+
+	/**
+	 *  An MSAA event indicating that a window
+	 *  entered context-sensitive Help mode.
+	 */
+	public static const EVENT_SYSTEM_CONTEXTHELPSTART:uint = 0x000C;
+
+	/**
+	 *  An MSAA event indicating that a window
+	 *  exited context-sensitive Help mode.
+	 */
+	public static const EVENT_SYSTEM_CONTEXTHELPEND:uint = 0x000D;
+
+	/**
+	 *  An MSAA event indicating that an application
+	 *  is about to enter drag-and-drop mode.
+	 *
+	 *
Applications that support drag-and-drop operations
+	 *  must send this event; the system does not.

+	 */
+	public static const EVENT_SYSTEM_DRAGDROPSTART:uint = 0x000E;
+
+	/**
+	 *  An MSAA event indicating that an application
+	 *  is about to exit drag-and-drop mode.
+	 *
+	 *
Applications that support drag-and-drop operations
+	 *  must send this event; the system does not.

+	 */
+	public static const EVENT_SYSTEM_DRAGDROPEND:uint = 0x000F;
+
+	/**
+	 *  An MSAA event indicating that a dialog box was displayed.
+	 *
+	 *
This event is sent by the system for standard dialog boxes.
+	 *  MSAA server applications send this event for custom dialog boxes
+	 *  (windows that function as dialog boxes
+	 *  but are not created in the standard way).

+	 */
+	public static const EVENT_SYSTEM_DIALOGSTART:uint = 0x0010;
+
+	/**
+	 *  An MSAA event indicating that a dialog box was closed.
+	 *
+	 *
This event is sent by the system for standard dialog boxes.
+	 *  MSAA server applications send this event for custom dialog boxes.

+	 */
+	public static const EVENT_SYSTEM_DIALOGEND:uint = 0x0011;
+
+	/**
+	 *  An MSAA event indicating that scrolling has started on a scroll bar.
+	 *
+	 *
This event is sent by the system for scroll bars
+	 *  attached to a window and for standard scroll bar controls.
+	 *  MSAA server applications send this event for custom scroll bars
+	 *  (user interface elements that function as scroll bars
+	 *  but are not created in the standard way).

+	 */
+	public static const EVENT_SYSTEM_SCROLLINGSTART:uint = 0x0012;
+
+	/**
+	 *  An MSAA event indicating that scrolling has ended on a scroll bar.
+	 *
+	 *
This event is sent by the system for scroll bars attached
+	 *  to a window and for standard scroll bar controls.
+	 *  MSAA server applications send this event for custom scroll bars.

+	 */
+	public static const EVENT_SYSTEM_SCROLLINGEND:uint = 0x0013;
+
+	/**
+	 *  An MSAA event indicating that the user pressed ALT+TAB,
+	 *  which activates the switch window.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.
+	 *  If only one application is running when the user presses ALT+TAB,
+	 *  the system sends an EVENT_SYSTEM_SWITCHEND event
+	 *  without a corresponding EVENT_SYSTEM_SWITCHSTART event.

+	 */
+	public static const EVENT_SYSTEM_SWITCHSTART:uint = 0x0014;
+
+	/**
+	 *  An MSAA event indicating that the user released ALT+TAB.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.
+	 *  If only one application is running when the user presses ALT+TAB,
+	 *  the system sends this event without a corresponding
+	 *  EVENT_SYSTEM_SWITCHSTART event.

+
+	 */
+	public static const EVENT_SYSTEM_SWITCHEND:uint = 0x0015;
+
+	/**
+	 *  An MSAA event indicating that a window object
+	 *  is about to be minimized or maximized.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.

+	 */
+	public static const EVENT_SYSTEM_MINIMIZESTART:uint = 0x0016
+
+	/**
+	 *  An MSAA event indicating that a window object
+	 *  was minimized or maximized.
+	 *
+	 *
This event is sent by the system;
+	 *  MSAA server applications never send this event.

+	 */
+	public static const EVENT_SYSTEM_MINIMIZEEND:uint = 0x0017;
+
+	//--------------------------------------
+	//  MSAA object events
+	//--------------------------------------
+
+	/**
+	 *  An MSAA event indicating that an object was created.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: caret, header control, list view control, tab control,
+	 *  toolbar control, tree view control, and window object.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  Servers must send this event for all of an object's child objects
+	 *  before sending the event for the parent object.
+	 *  Servers must ensure that all child objects are fully created
+	 *  and ready to accept IAccessible calls from clients
+	 *  when the parent object sends this event.

+	 */
+	public static const EVENT_OBJECT_CREATE:uint = 0x8000;
+
+	/**
+	 *  An MSAA event indicating that an object was destroyed.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: caret, header control, list view control, tab control,
+	 *  toolbar control, tree view control, and window object.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  This event may or may not be sent for child objects.
+	 *  However, clients can assume that all the children of an object
+	 *  have been destroyed when the parent object sends this event.

+	 */
+	public static const EVENT_OBJECT_DESTROY:uint = 0x8001;
+
+	/**
+	 *  An MSAA event indicating that a hidden object is being shown.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: caret, cursor, and window object.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  Clients can assume that when this event is sent by a parent object,
+	 *  all child objects have already been displayed.
+	 *  Therefore, server applications do not need to send this event
+	 *  for the child objects.
+	 *  Hidden objects include the STATE_SYSTEM_INVISIBLE flag
+	 *  and shown objects do not.
+	 *  The EVENT_OBJECT_SHOW event also indicates
+	 *  that the STATE_SYSTEM_INVISIBLE flag has been cleared.
+	 *  Therefore, servers do not need to send the EVENT_STATE_CHANGE event
+	 *  in this case.

+	 */
+	public static const EVENT_OBJECT_SHOW:uint = 0x8002;
+
+	/**
+	 *  An MSAA event indicating that an object is being hidden.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: caret and cursor.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  When this event is generated for a parent object,
+	 *  all child objects have already been hidden.
+	 *  Therefore, server applications do not need to send this event
+	 *  for the child objects.
+	 *  Hidden objects include the STATE_SYSTEM_INVISIBLE flag
+	 *  and shown objects do not.
+	 *  The EVENT_OBJECT_HIDE event also indicates
+	 *  that the STATE_SYSTEM_INVISIBLE flag has been set.
+	 *  Therefore, servers do not need to send the EVENT_STATE_CHANGE event
+	 *  in this case.

+	 */
+	public static const EVENT_OBJECT_HIDE:uint = 0x8003;
+
+	/**
+	 *  An MSAA event indicating that a container object
+	 *  has added, removed, or reordered its children.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: header control, list view control, toolbar control,
+	 *  and window object.
+	 *  MSAA server applications send this event
+	 *  as appropriate for their accessible objects.
+	 *  For example, this event is generated by a list view object
+	 *  when the number of child elements or the order of the elements changes.
+	 *  This event is also sent by a parent window when the z order
+	 *  for the child windows has changed.

+	 */
+	public static const EVENT_OBJECT_REORDER:uint = 0x8004;
+
+	/**
+	 *  An MSAA event indicating that an object has received the keyboard focus.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: list view control, menu bar, pop-up menu, switch window,
+	 *  tab control, tree view control, and window object.
+	 *  MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_FOCUS:uint = 0x8005;
+
+	/**
+	 *  An MSAA event indicating that the selection
+	 *  within a container object changed.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: list view control, tab control, tree view control,
+	 *  and window object.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  This event signals a single selection -- either a child has been
+	 *  selected in a container that previously did not contain any selected
+	 *  children or the selection has changed from one child to another.

+	 */
+	public static const EVENT_OBJECT_SELECTION:uint = 0x8006;
+
+	/**
+	 *  An MSAA event indicating that an item within a container object
+	 *  was added to the selection.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: list box, list view control, and tree view control.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  This event signals that a child has been added
+	 *  to an existing selection.

+	 */
+	public static const EVENT_OBJECT_SELECTIONADD:uint = 0x8007;
+
+	/**
+	 *  An MSAA event indicating that an item within a container object
+	 *  was removed from the selection.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: list box, list view control, and tree view control.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  This event signals that a child has been removed
+	 *  from an existing selection.

+	 */
+	public static const EVENT_OBJECT_SELECTIONREMOVE:uint = 0x8008;
+
+	/**
+	 *  An MSAA event indicating that numerous selection changes
+	 *  occurred within a container object.
+	 *
+	 *
The system sends this event for list boxes.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  This event may be sent when the selected items within a control
+	 *  have changed substantially.
+	 *  This event informs the client that many selection changes have occurred
+	 *  (instead of sending several EVENT_OBJECT_SELECTIONADD
+	 *  or EVENT_OBJECT_SELECTIONREMOVE events).
+	 *  The client can query for the selected items by calling the container
+	 *  object's IAccessible::get_accSelection method and enumerating the
+	 *  selected items.

+	 */
+	public static const EVENT_OBJECT_SELECTIONWITHIN:uint = 0x8009;
+
+	/**
+	 *  An MSAA event indicating that an object's state has changed.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: check box, combo box, header control, push button,
+	 *  radio button, scroll bar, toolbar control, tree view control,
+	 *  up-down control, and window object.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  For example, a state change can occur when a button object
+	 *  has been pressed or released, or when an object is being
+	 *  enabled or disabled.

+	 */
+	public static const EVENT_OBJECT_STATECHANGE:uint = 0x800A;
+
+	/**
+	 *  An MSAA event indicating that an object has changed
+	 *  location, shape, or size.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: caret and window object.
+	 *  MSAA server applications send this event for their accessible objects.
+	 *  This event is generated in response to the top-level object
+	 *  within the object hierarchy that has changed,
+	 *  not for any children it might contain.
+	 *  For example, if the user resizes a window,
+	 *  the system sends this notification for the window,
+	 *  but not for the menu bar, title bar, scroll bars,
+	 *  or other objects that have also changed.
+	 *  The system does not send this event for every non-floating
+	 *  child window when the parent moves.
+	 *  However, if an application explicitly resizes child windows
+	 *  as a result of being resized itself,
+	 *  the system will send multiple events for the resized children.
+	 *  If an object's State property is set to STATE_SYSTEM_FLOATING,
+	 *  servers should send EVENT_OBJECT_LOCATIONCHANGE
+	 *  whenever the object changes location.
+	 *  If an object does not have this state,
+	 *  servers should only trigger this event
+	 *  when the object moves relative to its parent.

+	 */
+	public static const EVENT_OBJECT_LOCATIONCHANGE:uint = 0x800B;
+
+	/**
+	 *  An MSAA event indicating that an object's MSAA Name property changed.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: check box, cursor, list view control, push button,
+	 *  radio button, status bar control, tree view control, and window object.
+	 *  MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_NAMECHANGE:uint = 0x800C;
+
+	/**
+	 *  An MSAA event indicating that an object's
+	 *  MSAA Description property changed.
+	 *
+	 *
MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_DESCRIPTIONCHANGE:uint = 0x800D;
+
+	/**
+	 *  An MSAA event indicating that an object's MSAA Value property changed.
+	 *
+	 *
The system sends this event for the following user interface
+	 *  elements: edit control, header control, hot key control,
+	 *  progress bar control, scroll bar, slider control, and up-down control.
+	 *  MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_VALUECHANGE:uint = 0x800E;
+
+	/**
+	 *  An MSAA event indicating that an object has a new parent object.
+	 *
+	 *
MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_PARENTCHANGE:uint = 0x800F;
+
+	/**
+	 *  An MSAA event indicating that an object's MSAA Help property changed.
+	 *
+	 *
MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_HELPCHANGE:uint = 0x8010;
+
+	/**
+	 *  An MSAA event indicating that an object's
+	 *  MSAA DefaultAction property changed.
+	 *
+	 *
The system sends this event for dialog boxes.
+	 *  MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_DEFACTIONCHANGE:uint = 0x8011;
+
+	/**
+	 *  An MSAA event indicating that an object's
+	 *  MSAA KeyboardShortcut property changed.
+	 *
+	 *
MSAA server applications send this event
+	 *  for their accessible objects.

+	 */
+	public static const EVENT_OBJECT_ACCELERATORCHANGE:uint = 0x8012;
+}
+
+}
+


Transferred from the Adobe Open Source Subversion Repository

Revision: 9329
Author:   rfrishbe@adobe.com
Date:     2009-08-15T00:07:31.537234Z

Log Message:
-----------
Fixing openDuration on Tree.  The issue was that a call to UIComponent.suspendBackgroundProcessing() wasn’t being respected by LayoutManager, now that it doesn’t use UIComponent.callLater().  The fix was for LayoutManager to look at UIComponentGlobals.callLaterSuspsendCount.  There are probably other ways to fix this bug because all the tweening in Tree seems very hokey, but given that UIC.suspendBackgroundProcessing() should be respected by LayoutManager, this seemed like the right fix.

QE notes: We should add tests for openDuration
Doc notes: -
Bugs: SDK-21752
Reviewer: Alex
Tests run: checkintests, mustella Tree
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as

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

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -1056,7 +1056,11 @@

     private function doPhasedInstantiationCallback(event:Event):void
     {
-
+        // if our background processing is suspended, then we shouldn't do any
+        // validation
+        if (UIComponentGlobals.callLaterSuspendCount > 0)
+            return;
+
         systemManager.removeEventListener(Event.ENTER_FRAME, doPhasedInstantiationCallback);
         systemManager.removeEventListener(Event.RENDER, doPhasedInstantiationCallback);


Transferred from the Adobe Open Source Subversion Repository

Revision: 13127
Author:   aharui@adobe.com
Date:     2009-12-21T21:42:09.059037Z

Log Message:
-----------
SystemManager was supposed to call ChildManager to finish initializing the top level window.  LoaderConfig was not getting initialized otherwise.

QE Notes: None
Doc Notes: None
Bugs: SDK-24625
Reviewer: Peter F
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/components/DataGrid

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

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -2778,64 +2778,34 @@
                 sandboxRoot.addEventListener(Event.RESIZE, Stage_resizeHandler, false, 0, true);
         }

-        var app:IUIComponent;
-        // Create a new instance of the toplevel class
-        document = app = topLevelWindow = IUIComponent(create());
-
-        if (document)
-        {
-            // Add listener for the creationComplete event
-            IEventDispatcher(app).addEventListener(FlexEvent.CREATION_COMPLETE,
-                                                   appCreationCompleteHandler);
-
-            if (isStageRoot && stage)
+        var w:Number;
+        var h:Number;
+        if (isStageRoot && stage)
+        {
+            // stageWidth/stageHeight may have changed between initialize() and now,
+            // so refresh our _width and _height here.
+            _width = stage.stageWidth;
+            _height = stage.stageHeight;
+
+            // Detect and account for special case where our stage in some
+            // contexts has not actually been initialized fully, as is the
+            // case with IE if the window is fully obscured upon loading.
+            if (_width == 0 && _height == 0 &&
+                loaderInfo.width != _width &&
+                loaderInfo.height != _height)
             {
-                // stageWidth/stageHeight may have changed between initialize() and now,
-                // so refresh our _width and _height here.
-                _width = stage.stageWidth;
-                _height = stage.stageHeight;
-
-                // Detect and account for special case where our stage in some
-                // contexts has not actually been initialized fully, as is the
-                // case with IE if the window is fully obscured upon loading.
-                if (_width == 0 && _height == 0 &&
-                    loaderInfo.width != _width &&
-                    loaderInfo.height != _height)
-                {
-                    _width = loaderInfo.width;
-                    _height = loaderInfo.height;
-                }
-
-                IFlexDisplayObject(app).setActualSize(_width, _height);
-            }
-            else
-                IFlexDisplayObject(app).setActualSize(loaderInfo.width, loaderInfo.height);
-
-            // Wait for the app to finish its initialization sequence
-            // before doing an addChild().
-            // Otherwise, the measurement/layout code will cause the
-            // player to do a bunch of unnecessary screen repaints,
-            // which slows application startup time.
-
-            // Pass the application instance to the preloader.
-            // Note: preloader can be null when the user chooses
-            // Control > Play in the standalone player.
-            if (preloader)
-                preloader.registerApplication(app);
-
-            // The Application doesn't get added to the SystemManager in the standard way.
-            // We want to recursively create the entire application subtree and process
-            // it with the LayoutManager before putting the Application on the display list.
-            // So here we what would normally happen inside an override of addChild().
-            // Leter, when we actually attach the Application instance,
-            // we call super.addChild(), which is the bare player method.
-            childManager.addingChild(DisplayObject(app));
-            childManager.childAdded(DisplayObject(app)); // calls app.createChildren()
+                w = _width = loaderInfo.width;
+                h = _height = loaderInfo.height;
+            }
         }
         else
         {
-            document = this;
-        }
+            w = loaderInfo.width;
+            h = loaderInfo.height;
+        }
+
+        childManager.initializeTopLevelWindow(w, h);
+
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 11189
Author:   clucier@adobe.com
Date:     2009-10-27T19:33:04.160990Z

Log Message:
-----------
Adding better support for deferred instantiation and states. State overrides can now correctly override targets that are instantiated after a state change.  Moving the commitment of the initial state to earlier (during commit properties), this should avoid the secondary layout pass that used to occur after applicationComplete.  Removed creationComplete handler in UIComponent as it is no longer needed.  Fixing an issue in Group that was causing blendMode to be stuck as 'layered' when setting alpha to 0 then resetting it to a non zero value.

QE notes: None
Doc notes: None
Bugs: SDK-23105, SDK-23470, SDK-23790
Reviewer: Deepa, Glenn
Tests run: Full Cyclone, Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/OverrideBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetEventHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/RemoveChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/states/SetEventHandler.as
+++ frameworks/projects/framework/src/mx/states/SetEventHandler.as
@@ -74,7 +74,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public class SetEventHandler extends OverrideBase implements IOverride
+public class SetEventHandler extends OverrideBase
 {
     include "../core/Version.as";

@@ -226,29 +226,16 @@
     //--------------------------------------------------------------------------

     /**
-     *  IOverride interface method; this class implements it as an empty method.
-     *
-     *  @copy IOverride#initialize()
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function initialize():void
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function apply(parent:UIComponent):void
     {
-    }
-
-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function apply(parent:UIComponent):void
-    {
+        parentContext = parent;
         var obj:* = getOverrideContext(target, parent);
         if (obj != null)
         {
@@ -288,6 +275,18 @@
 	            installedHandlers[obj][name] = handlerFunction;
 	        }
         }
+        else if (!applied)
+        {
+            // Our target context is unavailable so we attempt to register
+            // a listener on our parent document to detect when/if it becomes
+            // valid.
+            addContextListener(target);
+        }
+
+        // Save state in case our value or target is changed while applied. This
+        // can occur when our value property is databound or when a target is
+        // deferred instantiated.
+        applied = true;
     }

     /**
@@ -298,10 +297,10 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function remove(parent:UIComponent):void
-    {
+    override public function remove(parent:UIComponent):void
+    {
         var obj:* = getOverrideContext(appliedTarget, parent);
-        if (obj != null)
+        if (obj != null && appliedTarget)
         {
 	        if (handlerFunction != null)
 	            obj.removeEventListener(name, handlerFunction);
@@ -330,6 +329,17 @@
 	                delete installedHandlers[obj];
 	        }
         }
+        else
+        {
+            // It seems our override is no longer active, but we were never
+            // able to successfully apply ourselves, so remove our context
+            // listener if applicable.
+            removeContextListener();
+        }
+
+        // Clear our flags and override context.
+        applied = false;
+        parentContext = null;
         appliedTarget = null;
     }
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.accessibility
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4460
Author:   gosmith@adobe.com
Date:     2009-01-09T01:53:33.590972Z

Log Message:
-----------
Renamed UIComponentAccImpl to UIComponentAccProps because it extends AccessibilityProperties, not AccessibilityImplementation.

Added comments with the identifier for each magic role constant, so that it is easier to understand what roles our components are using.

Moved two static methods from UIComponentAccProperties to AccImpl because they make more sense there.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: None (no functional changes)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LinkButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/PanelAccImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as" copyfrom-rev="4437" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/ListBaseAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/ListBaseAccImpl.as
@@ -158,7 +158,7 @@
 	{
 		super(master);

-		role = 0x21;
+		role = 0x21; // ROLE_SYSTEM_LIST
 	}

 	//--------------------------------------------------------------------------
@@ -194,10 +194,7 @@
 	 */
 	override public function get_accRole(childID:uint):uint
 	{
-		if (childID == 0)
-			return role;
-
-		return ROLE_SYSTEM_LISTITEM;
+		return childID == 0 ? role : ROLE_SYSTEM_LISTITEM;
 	}

 	/**
@@ -342,6 +339,7 @@
 				childIDs[i] = i + 1;
 			}
 		}
+
 		return childIDs;
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12071
Author:   gruehle@adobe.com
Date:     2009-11-21T00:24:07.655778Z

Log Message:
-----------
Updated icons for Spark components.

QE notes: -
Doc notes: -
Bugs: SDK-24331
Reviewer: -
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/BorderContainer.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.png</path>

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -21,6 +21,12 @@
 import spark.utils.LabelUtil;

 use namespace mx_internal;
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[IconFile("DropDownList.png")]

 /**
  *  The DropDownList control contains a drop-down list


Worked on security

Worked on security

git-svn-id: 27326a786375daad9d33dc990c6f272e4c8f567c@1385 fda5f131-174c-0410-8613-e0905860106b

--- org.openwms/trunk/org.openwms.core/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/util/Security.as
+++ org.openwms/trunk/org.openwms.core/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/util/Security.as
@@ -23,30 +23,30 @@
     import flash.utils.Dictionary;
     import flash.utils.Proxy;
     import flash.utils.flash_proxy;
-    import org.openwms.web.flex.client.model.ModelLocator;
+    import org.granite.tide.spring.Identity;
     import org.openwms.core.domain.system.usermanagement.Grant;

     [Name]
     [Bindable]
     /**
-     * A Security.
+     * A SecurityUtil.
      *
      * @author Heiko Scherrer
      * @version $Revision: 1301 $
      * @since 0.1
      */
-    public class Security {
+    public class SecurityUtil {

         [Inject]
         /**
-         * Injected Model.
+         * Injected Tide identity object.
          */
-        private static var modelLocator : ModelLocator;
+        public static var identity : Identity;

         /**
          * Constructor.
          */
-        public function Security() : void {
+        public function SecurityUtil() : void {
             super();
         }

@@ -54,12 +54,7 @@
          *
          */
         public static function hasPermissions(grantName : String) : Boolean {
-            if (null != modelLocator.securityObjects[grantName]) {
-                // check logged in user and his roles for permission
-                var grant : Grant = modelLocator.securityObjects[grantName];
-                return modelLocator.userLoggedin.roles.grants.contains(grant);
-            }
-            return false;
+            return identity.ifAllGranted(grantName);
         }
     }
 }


Fix for https://issues.apache.org/jira/browse/FLEX-34556 (thanks to Jorn Nolles)

--- frameworks/projects/framework/src/mx/core/RuntimeDPIProvider.as
+++ frameworks/projects/framework/src/mx/core/RuntimeDPIProvider.as
@@ -118,31 +118,34 @@
      */

     public function get runtimeDPI():Number
-    {
-        var isIOS:Boolean = Platform.isIOS;
-        var screenDPI:Number = Capabilities.screenDPI;
-
-        if (isIOS) // as isIPad returns false in the simulator
+	{
+		if (Platform.isIOS) // as isIPad returns false in the simulator
 		{
-            var root:DisplayObject = SystemManager.getSWFRoot(this);
-            if (root != null )  {
-                var stage:Stage = root.stage;
-                if (stage != null){
-                    var scX:Number = stage.fullScreenWidth;
-                    var scY:Number = stage.fullScreenHeight;
-                    /*  as of Dec 2013,  iPad (resp. iPad retina) are the only iOS devices to have 1024 (resp. 2048) screen width or height
-                     cf http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density#Apple
-                     * */
-                    if ((scX == IPAD_RETINA_MAX_EXTENT || scY == IPAD_RETINA_MAX_EXTENT))
-                        return DPIClassification.DPI_320;
-                    else if (scX == IPAD_MAX_EXTENT || scY == IPAD_MAX_EXTENT)
-                        return DPIClassification.DPI_160;
-                }
-            }
-        }
-
-        return classifyDPI(screenDPI);
-    }
+			var scX:Number = Capabilities.screenResolutionX;
+			var scY:Number = Capabilities.screenResolutionY;
+
+			// Use the stage width/height only when debugging, because Capabilities reports the computer resolution
+			if (Capabilities.isDebugger)
+			{
+				var root:DisplayObject = SystemManager.getSWFRoot(this);
+				if (root && root.stage)
+				{
+					scX = root.stage.fullScreenWidth;
+					scY = root.stage.fullScreenHeight;
+				}
+			}
+
+			/*  as of Dec 2013,  iPad (resp. iPad retina) are the only iOS devices to have 1024 (resp. 2048) screen width or height
+			cf http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density#Apple
+			* */
+			if (scX == IPAD_MAX_EXTENT || scY == IPAD_MAX_EXTENT)
+				return DPIClassification.DPI_160;
+			else if ((scX == IPAD_RETINA_MAX_EXTENT || scY == IPAD_RETINA_MAX_EXTENT))
+				return DPIClassification.DPI_320;
+		}
+
+		return classifyDPI(Capabilities.screenDPI);
+	}

     /**
      *  @private


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.managers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6018
Author:   pfarland@adobe.com
Date:     2009-04-08T15:36:36.925077Z

Log Message:
-----------
API changes from PARB review of Advanced CSS additions.

Changes include:
- Fold IStyleManager3 back into IStyleManager2
- Remove CSSSelectorKind enum as it is not needed.
- Update CSSStyleDeclaration constructor to accept either a CSSSelector or legacy String selector.
- Update CSSConditionKind enum to use Strings
- Revert concept of StyleManager.addCSSStyleDeclaration() so that we continue to use the Flex 3 restriction of one CSSStyleDeclaration per unique selector String.
- Minor renames for lower level APIs such as IAdvancedStyleClient's isPseudoSelectorMatch() -> matchesCSSState(), and isTypeSelectorMatch)() -> matchesCSSType()
- Update ASDoc comment version info for APIs that were really added in Gumbo
- Add compiler warning for unqualified type selectors (e.g. when a type selector probably needs a namespace prefix).
- Add compiler warning for unresolved qualified type selector (e.g. when a type is probably missing from a manifest).

QE: I have an update for the mustella tests of programmatic creation of CSSStyleDeclaration
Doc: Yes, if we can do an ASDoc review of CSS classes in the framework it would be much appreciated.
Checkintests: Pass
mustella StyleManager/AdvancedCSS: Pass
Reviewer: Glenn

Modified Paths:
--------------
<path kind="dir" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/flash</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager3.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleSelector.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelectorKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/UnqualifiedTypeSelector.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleCondition.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/UnresolvedQualifiedTypeSelector.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSConditionKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>

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

--- frameworks/projects/framework/src/mx/styles/CSSConditionKind.as
+++ frameworks/projects/framework/src/mx/styles/CSSConditionKind.as
@@ -19,11 +19,11 @@
  *  @see mx.styles.CSSSelector
  *
  *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
-public class CSSConditionKind
+final public class CSSConditionKind
 {
     /**
      *  A selector condition to match a component by styleName.
@@ -32,11 +32,11 @@
      *      .special { ... }
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
-    public static const CLASS_CONDITION:uint = 1;
+    public static const CLASS:String = "class";

     /**
      *  A selector condition to match a component by id.
@@ -45,11 +45,11 @@
      *      #special { ... }
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
-    public static const ID_CONDITION:uint = 2;
+    public static const ID:String = "id";

     /**
      *  A selector condition to match a component by state (which may be
@@ -59,15 +59,14 @@
      *      :special { ... }
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
-    public static const PSEUDO_CONDITION:uint = 3;
+    public static const PSEUDO:String = "pseudo";

     /**
      *  Constructor. Not used.
-     *
      *  @private
      */
     public function CSSConditionKind()


Now, if any ancestor chain of BusyIndicator becomes visible, it will start spinning. Fixes bug https://issues.apache.org/jira/browse/FLEX-34701

--- frameworks/projects/spark/src/spark/components/BusyIndicator.as
+++ frameworks/projects/spark/src/spark/components/BusyIndicator.as
@@ -24,6 +24,7 @@
 	import mx.core.IUIComponent;
 	import mx.core.IVisualElement;
 	import mx.events.FlexEvent;
+	import mx.events.PropertyChangeEvent;
 	import mx.states.State;

 	import spark.components.supportClasses.SkinnableComponent;
@@ -146,10 +147,48 @@
 			];
 		}

+		override protected function commitProperties():void
+		{
+			if (effectiveVisibilityChanged)
+			{
+				// if visibility changed, re-compute them here
+				computeEffectiveVisibility();
+
+				if (canRotate())
+				{
+					currentState = "rotatingState";
+				}
+				else
+				{
+					currentState = "notRotatingState";
+				}
+
+				invalidateSkinState();
+				effectiveVisibilityChanged = false;
+			}
+			super.commitProperties();
+		}
+
 		override protected function getCurrentSkinState():String
 		{
 			return currentState;
-		}
+		}
+
+		/**
+		 *  @private
+		 *  Override so we know when visibility is set. The initialized
+		 *  property calls setVisible() with noEvent == true
+		 *  so we wouldn't get a visibility event if we just listened
+		 *  for events.
+		 */
+		override public function setVisible(value:Boolean,
+											noEvent:Boolean = false):void
+		{
+			super.setVisible(value, noEvent);
+
+			effectiveVisibilityChanged = true;
+			invalidateProperties();
+		}

 		private function addedToStageHandler(event:Event):void
 		{
@@ -160,8 +199,8 @@
 			if (canRotate())
 				currentState = "rotatingState";

+			invalidateSkinState();
 			addVisibilityListeners();
-			invalidateSkinState();
 		}

 		private function removedFromStageHandler(event:Event):void
@@ -274,6 +313,17 @@
 			invalidateProperties();
 		}

+		override protected function layer_PropertyChange(event:PropertyChangeEvent):void
+		{
+			super.layer_PropertyChange(event);
+
+			if (event.property == "effectiveVisibility")
+			{
+				effectiveVisibilityChanged = true;
+				invalidateProperties();
+			}
+		}
+

 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 5573
Author:   jimurphy@adobe.com
Date:     2009-03-26T15:11:59.159776Z

Log Message:
-----------
-more updated package and class names that were missed in the first pass
-remove the mx folder

qa: probably
doc: this updated more asdoc comments so you may want to make sure that this pass made the correct updates
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/SetActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/IEaser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/PathSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxToggleButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SetAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransform.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransform.as
@@ -90,7 +90,7 @@
  */
 public class AnimateTransform extends Animate
 {
-    include "../../mx/core/Version.as";
+    include "../../spark.core.Version.as";

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 22828
Author:   eday@adobe.com
Date:     2011-09-30T17:39:52.356390Z

Log Message:
-----------
Fix for clearVirtualLayoutCache problem which was making renderers disappear

Need to invalidate the layout target after clearing the LLV.

QE notes:
Doc notes:
Bugs: SDK-SDK-31677
Reviewer: Evtim
Tests run: checkintests, full desktop cyclone, mobile List
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -932,6 +932,13 @@
     override public function clearVirtualLayoutCache():void
     {
         llv = null;
+
+        var g:GroupBase = GroupBase(target);
+        if (!g)
+            return;
+
+        target.invalidateSize();
+        target.invalidateDisplayList();
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 18145
Author:   egeorgie@adobe.com
Date:     2010-10-13T20:16:24.277475Z

Log Message:
-----------
Fix SDK-28197 requestedMaxColumnCount in HorizontalLayout is not respected

The problem was we didn't take into account the maxRequested in the non-virtual code path.

QE notes:
Doc notes: None
Bugs: SDK-28197
Reviewer: Hans
Tests run: 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/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -1453,7 +1453,8 @@
         if (!variableColumnWidth)
             fixedColumnWidth = columnWidth;  // may query typicalLayoutElement, elt at index=0

-
+        // Get the numElementsInLayout clamped to requested min/max
+        var columnsToMeasure:int = getColumsToMeasure(numElementsInLayout);
         var element:ILayoutElement;
         for (var i:int = 0; i < numElements; i++)
         {
@@ -1474,7 +1475,7 @@
             }

             // Can we measure the width of this column?
-            if (requestedColumnCount == -1 || columnsMeasured < requestedColumnCount)
+            if (columnsMeasured < columnsToMeasure)
             {
                 getElementWidth(element, fixedColumnWidth, size);
                 preferredWidth += size.preferredSize;
@@ -1483,8 +1484,8 @@
             }
         }

-        // Calculate the total number of columns to measure
-        var columnsToMeasure:int = getColumsToMeasure(numElementsInLayout);
+        // Calculate the total number of columns to measure again, since numElementsInLayout may have changed
+        columnsToMeasure = getColumsToMeasure(numElementsInLayout);

         // Do we need to measure more columns?
         if (columnsMeasured < columnsToMeasure)


Transferred from the Adobe Open Source Subversion Repository

Revision: 22200
Author:   egeorgie@adobe.com
Date:     2011-08-25T00:49:34.044884Z

Log Message:
-----------
Fix SDK-31339 First item of a DataGroup isn't shown when it's null

- Use _columnWidth/_rowHeight instead of getters

QE notes:
Doc notes:
Bugs: SDK-31339
Reviewer:  Chiedo
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -1519,8 +1519,8 @@
             llv.defaultMajorSize = typicalWidth;
         }

-        if (!isNaN(columnWidth))
-            llv.defaultMajorSize = columnWidth;
+        if (!isNaN(_columnWidth))
+            llv.defaultMajorSize = _columnWidth;

         if (layoutTarget)
             llv.length = layoutTarget.numElements;


Better handling for embedded XML types

Better handling for embedded XML types

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
@@ -530,11 +530,24 @@
             }
             else if (children.length > 0 && (result is XML))
             {
+                var tempXML:XML;
+
                 // XML needs special handling as "embedded" XML
                 nullObject = false;

-                var tempXML:XML = new XML((children[0] as XMLNode).toString());
-                isSimpleType = true;
+                if (children.length > 1)
+                {
+                    // if there's more than one child, use the element *itself*
+                    // as the root node. This will preserve any attributes on it
+                    tempXML = new XML(dataNode);
+                }
+                else
+                {
+                    // otherwise, grab the first child as the root
+                    tempXML = new XML((children[0] as XMLNode).toString());
+                }
+
+                isSimpleType = false;
                 result = tempXML;
             }
         }
@@ -594,8 +607,14 @@
                 }
             }
             else
-                result[attrName] = attr;
-
+            {
+                if (result is XML)
+                {
+                    // TODO: how to add attrs to XML objects?
+                }
+                else
+                    result[attrName] = attr;
+            }

         }