//////////////////////////////////////////////////////////////////////////////// // // 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 // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// package mx.core { import flash.events.IEventDispatcher; import flash.geom.Matrix; import flash.geom.Matrix3D; import flash.geom.Vector3D; /** * The ILayoutElement interface is used primarily by the layout classes to query, * size and position the elements of GroupBase containers. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ public interface ILayoutElement extends IEventDispatcher { /** * The horizontal distance in pixels from the left edge of the component to the * anchor target's left edge. * *

By default the anchor target is the container's content area. In layouts * with advanced constraints, the target can be a constraint column.

* *

Setting the property to a number or to a numerical string like "10" * specifies use of the default anchor target.

* *

To specify an anchor target, set the property value to a string in the format * "anchorTargetName:value". For example, "col1:10".

* * @default null * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get left():Object; /** * @private */ function set left(value:Object):void; /** * The horizontal distance in pixels from the right edge of the component to the * anchor target's right edge. * *

By default the anchor target is the container's content area. In layouts * with advanced constraints, the target can be a constraint column.

* *

Setting the property to a number or to a numerical string like "10" * specifies use of the default anchor target.

* *

To specify an anchor target, set the property value to a string in the format * "anchorTargetName:value". For example, "col1:10".

* * @default null * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get right():Object; /** * @private */ function set right(value:Object):void; /** * The vertical distance in pixels from the top edge of the component to the * anchor target's top edge. * *

By default the anchor target is the container's content area. In layouts * with advanced constraints, the target can be a constraint row.

* *

Setting the property to a number or to a numerical string like "10" * specifies use of the default anchor target.

* *

To specify an anchor target, set the property value to a string in the format * "anchorTargetName:value". For example, "row1:10".

* * @default null * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get top():Object; /** * @private */ function set top(value:Object):void; /** * The vertical distance in pixels from the bottom edge of the component to the * anchor target's bottom edge. * *

By default the anchor target is the container's content area. In layouts * with advanced constraints, the target can be a constraint row.

* *

Setting the property to a number or to a numerical string like "10" * specifies use of the default anchor target.

* *

To specify an anchor target, set the property value to a string in the format: * "anchorTargetName:value". For example, "row1:10".

* * @default null * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get bottom():Object; /** * @private */ function set bottom(value:Object):void; /** * The horizontal distance in pixels from the center of the component to the * center of the anchor target's content area. * *

The default anchor target is the container itself.

* *

In layouts with advanced constraints, the anchor target can be a constraint column. * Then the content area is the space between the preceding column * (or container side) and the target column.

* *

Setting the property to a number or to a numerical string like "10" * specifies use of the default anchor target.

* *

To specify an anchor target, set the property value to a string in the format * "constraintColumnId:value". For example, "col1:10".

* * @default null * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get horizontalCenter():Object; /** * @private */ function set horizontalCenter(value:Object):void; /** * The vertical distance in pixels from the center of the component to the * center of the anchor target's content area. * *

The default anchor target is the container itself.

* *

In layouts with advanced constraints, the anchor target can be a constraint row. * Then the content area is the space between the preceding row * (or container side) and the target row.

* *

Setting the property to a number or to a numerical string like "10" * specifies use of the default anchor target.

* *

To specify an anchor target, set the property value to a string in the format * "constraintColumnId:value". For example, "row1:10".

* * @default null * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get verticalCenter():Object; /** * @private */ function set verticalCenter(value:Object):void; /** * The vertical distance in pixels from the anchor target to * the control's baseline position. * *

By default the anchor target is the top edge of the container's * content area. In layouts with advanced constraints, the target can be * a constraint row.

* *

Setting the property to a number or to a numerical string like "10" * specifies use of the default anchor target.

* *

To specify an anchor target, set the property value to a string in the format: * "anchorTargetName:value". For example, "row1:10".

* * @default null * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get baseline():Object; /** * @private */ function set baseline(value:Object):void; /** * The y-coordinate of the baseline * of the first line of text of the component. * *

This property is used to implement * the baseline constraint style. * It is also used to align the label of a FormItem * with the controls in the FormItem.

* *

Each component should override this property.

* * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get baselinePosition():Number; /** * Specifies the width of a component as a percentage * of its parent's size. Allowed values are 0-100. * Setting the width or explicitWidth properties * resets this property to NaN. * *

This property returns a numeric value only if the property was * previously set; it does not reflect the exact size of the component * in percent.

* * @default NaN * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get percentWidth():Number; /** * @private */ function set percentWidth(value:Number):void; /** * Specifies the height of a component as a percentage * of its parent's size. Allowed values are 0-100. * Setting the height or explicitHeight properties * resets this property to NaN. * *

This property returns a numeric value only if the property was * previously set; it does not reflect the exact size of the component * in percent.

* * @default NaN * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get percentHeight():Number; /** * @private */ function set percentHeight(value:Number):void; /** * @copy mx.core.UIComponent#includeInLayout * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get includeInLayout():Boolean; /** * @private */ function set includeInLayout(value:Boolean):void; /** * Returns the element's preferred width. * * @param postLayoutTransform When postLayoutTransform is true, * the method returns the element's bounding box width. * The bounding box is in the element's parent * coordinate space and is calculated from the element's preferred size and * layout transform matrix. * * @return Returns the element's preferred width. Preferred width is * usually based on the default element size and any explicit overrides. * For UIComponent this is the same value as returned by * the getExplicitOrMeasuredWidth() method. * * @see #getPreferredBoundsHeight() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getPreferredBoundsWidth(postLayoutTransform:Boolean = true):Number; /** * Returns the element's preferred height. * * @param postLayoutTransform When postLayoutTransform is true, * the method returns the element's bounding box height. * The bounding box is in the element's parent * coordinate space and is calculated from the element's preferred size and * layout transform matrix. * * @return Returns the element's preferred height. Preferred height is * usually based on the default element size and any explicit overrides. * For UIComponent this is the same value as returned by * the getExplicitOrMeasuredHeight() method. * * @see #getPreferredBoundsWidth() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getPreferredBoundsHeight(postLayoutTransform:Boolean = true):Number; /** * Returns the element's minimum width. * * @param postLayoutTransform When postLayoutTransform is true, * the method returns the element's bounding box width. * The bounding box is in the element's parent * coordinate space and is calculated from the element's minimum size and * layout transform matrix. * * @return The element's maximum width. * * @see #getMinBoundsHeight() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getMinBoundsWidth(postLayoutTransform:Boolean = true):Number; /** * Returns the element's minimum height. * * @param postLayoutTransform When postLayoutTransform is true, * the method returns the element's bounding box height. * The bounding box is in the element's parent * coordinate space and is calculated from the element's minimum size and * layout transform matrix. * * @return The element's maximum height. * * @see #getMinBoundsWidth() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getMinBoundsHeight(postLayoutTransform:Boolean = true):Number; /** * Returns the element's maximum width. * * @param postLayoutTransform When postLayoutTransform is true, the method returns * the element's bounding box width. The bounding box is in the element's parent * coordinate space and is calculated from the element's maximum size and * layout transform matrix. * * @return The element's maximum width. * * @see #getMaxBoundsHeight() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getMaxBoundsWidth(postLayoutTransform:Boolean = true):Number; /** * Returns the element's maximum height. * * @param postLayoutTransform When postLayoutTransform is true, the method returns * the element's bounding box height. The bounding box is in the element's parent * coordinate space and is calculated from the element's maximum size and * layout transform matrix. * * @return The element's maximum height. * * @see #getMaxBoundsWidth() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getMaxBoundsHeight(postLayoutTransform:Boolean = true):Number; /** * Returns the x coordinate of the element's bounds at the specified element size. * *

This method is typically used by layouts during a call to the * measure() method to predict what * the element position will be, if the element is resized to particular dimensions.

* * @param width The element's bounds width, or NaN to use the preferred width. * @param height The element's bounds height, or NaN to use the preferred height. * @param postLayoutTransform When postLayoutTransform is true, the method returns * x coordinate of the element's bounding box top-left corner. * The bounding box is in element's parent coordinate space and is calculated * from the specified bounds size, layout position and layout transform matrix. * * @return The x coordinate of the element's bounds at the specified element size. * * @see #setLayoutBoundsSize() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getBoundsXAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number; /** * Returns the y coordinate of the element's bounds at the specified element size. * * This method is typically used by layouts during a call to * the measure() to predict what * the element position will be, if the element is resized to particular dimensions. * * @param width The element's bounds width, or NaN to use the preferred width. * @param height The element's bounds height, or NaN to use the preferred height. * @param postLayoutTransform When postLayoutTransform is true, the method returns * the y coordinate of the element's bounding box top-left corner. * The bounding box is in element's parent coordinate space and is calculated * from the specified bounds size, layout position and layout transform matrix. * * @return The y coordinate of the element's bounds at the specified element size. * * @see #setLayoutBoundsSize() * @see #getLayoutBoundsY() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getBoundsYAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number; /** * Returns the element's layout width. This is the size that the element uses * to draw on screen. * * @param postLayoutTransform When postLayoutTransform is true, the method returns * the element's bounding box width. The bounding box is in element's parent * coordinate space and is calculated from the element's layout size and * layout transform matrix. * * @return The element's layout width. * * @see #getLayoutBoundsHeight() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getLayoutBoundsWidth(postLayoutTransform:Boolean = true):Number; /** * Returns the element's layout height. This is the size that the element uses * to draw on screen. * * @param postLayoutTransform When postLayoutTransform is true, the method returns * the element's bounding box width. The bounding box is in the element's parent * coordinate space and is calculated from the element's layout size and * layout transform matrix. * * @return The element's layout height. * * @see #getLayoutBoundsWidth() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getLayoutBoundsHeight(postLayoutTransform:Boolean = true):Number; /** * Returns the x coordinate that the element uses to draw on screen. * * @param postLayoutTransform When postLayoutTransform is true, the method returns * x coordinate of the element's bounding box top-left corner. * The bounding box is in the element's parent coordinate space and is calculated * from the element's layout size, layout position and layout transform matrix. * * @return The x coordinate that the element uses to draw on screen. * * @see #getLayoutBoundsY() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getLayoutBoundsX(postLayoutTransform:Boolean = true):Number; /** * Returns the y coordinate that the element uses to draw on screen. * * @param postLayoutTransform When postLayoutTransform is true, the method returns * y coordinate of the element's bounding box top-left corner. * The bounding box is in the element's parent coordinate space and is calculated * from the element's layout size, layout position, and layout transform matrix. * * @return The y coordinate that the element uses to draw on screen. * * @see #getLayoutBoundsX() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getLayoutBoundsY(postLayoutTransform:Boolean = true):Number; /** * Sets the coordinates that the element uses to draw on screen. * *

Note that calls to the setLayoutBoundSize() method can affect the layout position, so * call setLayoutBoundPosition() after calling setLayoutBoundSize().

* * @param x The x-coordinate of the top-left corner of the bounding box. * * @param y The y-coordinate of the top-left corner of the bounding box. * * @param postLayoutTransform When postLayoutTransform is true, * the element is positioned in such a way that the top-left corner of its bounding box is (x, y). * The bounding box is in the element's parent coordinate space and is calculated * from the element's layout size, layout position and layout transform matrix. * * @see #setLayoutBoundsSize() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function setLayoutBoundsPosition(x:Number, y:Number, postLayoutTransform:Boolean = true):void; /** * Sets the layout size of the element. * This is the size that the element uses to draw on screen. * *

If the width and/or height parameters are left unspecified (NaN), * Flex sets the element's layout size to its preferred width and/or preferred height.

* *

Note that calls to the setLayoutBoundSize() method can affect the layout position, so * call setLayoutBoundPosition() after calling setLayoutBoundSize().

* * @param width The element's layout width. * * @param height The element's layout height. * * @param postLayoutTransform When postLayoutTransform is true, the specified sizes * are those of the element's bounding box. * The bounding box is in the element's parent coordinate space and is calculated * from the element's layout size, layout position, and layout transform matrix. * * @see #setLayoutBoundsPosition() * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function setLayoutBoundsSize(width:Number, height:Number, postLayoutTransform:Boolean = true):void; /** * Returns the transform matrix that is used to calculate the component's * layout relative to its siblings. * *

This matrix is typically defined by the * component's 2D properties such as x, y, * rotation, scaleX, scaleY, * transformX, and transformY. * Some components may have additional transform properties that * are applied on top of the layout matrix to determine the final, * computed matrix. For example UIComponent * defines the offsets property.

* * @return The layout transform Matrix for this element. * Do not directly modify the return value; call the setLayoutMatrix() method instead. * * @see #setLayoutMatrix() * @see #getLayoutMatrix3D() * @see #setLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getLayoutMatrix():Matrix; /** * Sets the transform Matrix that is used to calculate the component's layout * size and position relative to its siblings. * *

The matrix is typically defined by the * component's 2D properties such as x, y, * rotation, scaleX, scaleY, * transformX, and transformY. * Some components may have additional transform properties that * are applied on top of the layout matrix to determine the final, * computed matrix. For example UIComponent * defines the offsets.

* *

Note that layout Matrix is factored in the getPreferredSize(), * getMinSize(), getMaxSize(), getLayoutSize() * methods when computed in parent coordinates * as well as in getLayoutPosition() in both parent and child coordinates. * Layouts that calculate the transform matrix explicitly typically call * this method and work with sizes in child coordinates. * Layouts calling this method pass false * to the invalidateLayout() method so that a subsequent layout pass is not * triggered.

* * @param Matrix The matrix. * * @param invalidateLayout true to cause the parent container * to re-layout its children. You typically pass true * to the invalidateLayout() method. * * @see #getLayoutMatrix() * @see #getLayoutMatrix3D() * @see #setLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function setLayoutMatrix(value:Matrix, invalidateLayout:Boolean):void; /** * Contains true if the element has 3D Matrix. * *

Use hasLayoutMatrix3D instead of calling and examining the * return value of getLayoutMatrix3D() because that method returns a valid * matrix even when the element is in 2D.

* * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get hasLayoutMatrix3D():Boolean; /** * Returns the layout transform Matrix3D for this element. * *

This matrix is typically defined by the * component's transform properties such as x, y, * z, rotationX, rotationY, * rotationZ, scaleX, scaleY, * scaleZ, transformX, and transformY. * Some components may have additional transform properties that * are applied on top of the layout matrix to determine the final, * computed matrix. For example UIComponent * defines the offsets property.

* * @return The layout transform Matrix3D for this element. * Do not directly modify the return value but call the setLayoutMatrix() method instead. * * @see #getLayoutMatrix() * @see #setLayoutMatrix() * @see #setLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function getLayoutMatrix3D():Matrix3D; /** * Sets the transform Matrix3D that is used to calculate the component's layout * size and position relative to its siblings. * *

This matrix is typically defined by the * component's transform properties such as x, y, * z, rotationX, rotationY, * rotationZ, scaleX, scaleY, * scaleZ, transformX, and transformY. * Some components may have additional transform properties that * are applied on top of the layout matrix to determine the final, * computed matrix. For example UIComponent * defines the offsets property.

* *

Note that layout Matrix3D is factored in the getPreferredSize(), * getMinSize(), getMaxSize(), getLayoutSize() * when computed in parent coordinates * as well as in getLayoutPosition() in both parent and child coordinates. * Layouts that calculate the transform matrix explicitly typically call * this method and work with sizes in child coordinates. * Layouts calling this method pass false * to the invalidateLayout() method so that a subsequent layout pass is not * triggered.

* * @param Matrix The matrix. * * @param invalidateLayout true to cause the parent container * to re-layout its children. You typically pass true * to the invalidateLayout() method. * * @see #getLayoutMatrix() * @see #setLayoutMatrix() * @see #getLayoutMatrix3D() * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function setLayoutMatrix3D(value:Matrix3D, invalidateLayout:Boolean):void; /** * A utility method to update the rotation, scale, and translation of the * transform while keeping a particular point, specified in the component's * own coordinate space, fixed in the parent's coordinate space. * This function will assign the rotation, scale, and translation values * provided, then update the x/y/z properties as necessary to keep * the transform center fixed. * * @param transformCenter The point, in the component's own coordinates, * to keep fixed relative to its parent. * * @param scale The new values for the scale of the transform. * * @param rotation the new values for the rotation of the transform * * @param translation The new values for the translation of the transform. * * @param postLayoutScale The new values for the post-layout scale * of the transform. * * @param postLayoutRotation The new values for the post-layout rotation * of the transform. * * @param postLayoutTranslation The new values for the post-layout translation * of the transform. * * @param invalidateLayout If true, the parent container size and display are * invalidated. Layouts calling this method pass false * so that a subsequent layout pass is not triggered. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function transformAround(transformCenter:Vector3D, scale:Vector3D = null, rotation:Vector3D = null, translation:Vector3D = null, postLayoutScale:Vector3D = null, postLayoutRotation:Vector3D = null, postLayoutTranslation:Vector3D = null, invalidateLayout:Boolean = true):void; } }