/// This maintains a horizontal or vertical stack of GUI controls. If one is deleted, or
/// resized, then the stack is resized to fit. The order of the stack is
/// determined by the internal order of the children (ie, order of addition).
classGuiStackControl:publicGuiControl
{
protected:
typedefGuiControlParent;
boolmResizing;
S32mPadding;
S32mStackHorizSizing;///< Set from horizSizingOptions.
S32mStackVertSizing;///< Set from vertSizingOptions.
S32mStackingType;
boolmDynamicSize;///< Resize this control along the stack axis to fit the summed extent of the children (width or height depends on the stack type)
boolmDynamicNonStackExtent;///< Resize this control along the non-stack axis to fit the max extent of the children (width or height depends on the stack type)
boolmDynamicPos;///< Reposition this control along the stack axis when it is resized (by mDynamicSize) (left or up depends on the stack type)
boolmChangeChildSizeToFit;///< Does the child resize to fit i.e. should a horizontal stack resize its children's height to fit?
boolmChangeChildPosition;///< Do we reset the child's position in the opposite direction we are stacking?
public:
GuiStackControl();
enumStackingType
{
stackingTypeVert,///< Always stack vertically
stackingTypeHoriz,///< Always stack horizontally
stackingTypeDyn///< Dynamically switch based on width/height
};
enumHorizontalType
{
horizStackLeft=0,///< Stack from left to right when horizontal
horizStackRight,///< Stack from right to left when horizontal
};
enumVerticalType
{
vertStackTop,///< Stack from top to bottom when vertical
vertStackBottom,///< Stack from bottom to top when vertical