//////////////////////////////////////////////////////////////////////////////// // // 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 thewidth
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 theheight
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 WhenpostLayoutTransform
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.
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()
.
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()
.
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.
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.
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.
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.
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.
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;
}
}