A layout that positions all of its children in a 'stack'.
By default, children will be aligned to the top-left corner of their parent container and will be stacked on top of one another. The alignment can be changed with the 'gravity' or 'item-gravity' properties.
This layout respects the padding layout configuration option and the margin per-node layout configuration option.
Container View Template Comments Specification
This class has no configurable layout-specific properties, except for those in the parent class.
Children View Template Comments Specification
This class has no configurable per-child properties, except for those in the parent class.
#include <layout/YiStackLayout.h>
Protected Member Functions | |
virtual void | OnMeasure (const CYISceneNode::MeasureSpec &widthSpec, const CYISceneNode::MeasureSpec &heightSpec, const CYISceneNode::MeasureSpec &depthSpec) override |
virtual void | OnApplyMeasurements () override |
![]() | |
virtual void | Configure () override |
virtual void | OnMeasurementsApplied () override |
virtual const CYIRuntimeTypeInfo & | GetLayoutConfigType () const override |
virtual void | ApplyPosition (CYISceneNode *pChild, const glm::vec3 &position) override |
virtual void | ApplySize (CYISceneNode *pChild, const glm::vec3 &size) override |
![]() | |
virtual void | OnSceneViewAttached () |
virtual void | OnMeasurementsCalculated (const CYISceneNode::MeasureSpec &widthSpec, const CYISceneNode::MeasureSpec &heightSpec, const CYISceneNode::MeasureSpec &depthSpec) |
virtual std::unique_ptr< CYILayoutState > | CreateLayoutStateInstance () const |
void | CreateLayoutObjectsFor (CYISceneNode *pNode) const |
CYISceneNode * | GetChild (size_t index) const |
void | ApplyMeasurementsToBackgroundChildren () |
const Padding & | GetPaddingForChild (const CYISceneNode *pChild) const |
Additional Inherited Members | |
![]() | |
enum | PositioningMode { PositioningMode::SetPositionDirectly, PositioningMode::DoNotSetPositionDirectly } |
typedef CYILayoutConfig::CubeOffset | Padding |
![]() | |
static void | RegisterAllLayouts () |
static bool | IsLayoutable (const CYISceneNode *pNode) |
static glm::vec3 | GetDefaultSize (const CYISceneNode *pNode, const CYISceneNode::MeasureSpec &widthSpec, const CYISceneNode::MeasureSpec &heightSpec, const CYISceneNode::MeasureSpec &depthSpec) |
static void | UpdateMeasuredSizeForFitContent (const CYISceneNode *pNode, glm::vec3 *pMeasuredSize, const glm::vec3 &contentSize, const Padding &padding, const CYISceneNode::MeasureSpec &widthSpec, const CYISceneNode::MeasureSpec &heightSpec, const CYISceneNode::MeasureSpec &depthSpec) |
static void | UnscaleMeasureSpecs (const glm::vec3 &scale, CYISceneNode::MeasureSpec *pWidthSpec, CYISceneNode::MeasureSpec *pHeightSpec, CYISceneNode::MeasureSpec *pDepthSpec) |
static float | CalculateDimension (const CYISceneNode::MeasureSpec &spec, const CYILayoutConfig::SizeConstraint &constraint, float currentValue) |
![]() | |
enum | Dimensions { Dimensions::None = 0x0, Dimensions::X = 0x1, Dimensions::Y = 0x2, Dimensions::Z = 0x4, Dimensions::AllButX = Y | Z, Dimensions::AllButY = X | Z, Dimensions::AllButZ = X | Y, Dimensions::All = X | Y | Z } |
![]() | |
static void | MeasureChildWithMargins (CYISceneNode *pChild, const CYISceneNode::MeasureSpec &parentWidthSpec, const CYISceneNode::MeasureSpec &parentHeightSpec, const CYISceneNode::MeasureSpec &parentDepthSpec, const Padding &padding) |
static void | MeasureChildWithMargins (CYISceneNode *pChild, const CYISceneNode::MeasureSpec &parentWidthSpec, const CYISceneNode::MeasureSpec &parentHeightSpec, const CYISceneNode::MeasureSpec &parentDepthSpec, const Padding &padding, const glm::vec3 &childScale) |
static CYISceneNode::MeasureSpec | CalculateChildMeasureSpec (const CYISceneNode::MeasureSpec &parentMeasureSpec, float padding, const CYILayoutConfig::SizeConstraint &childConstraint, float childScale) |
static bool | UpdateMeasureSpecsForFitContent (const CYISceneNode *pNode, CYISceneNode::MeasureSpec *widthSpec, CYISceneNode::MeasureSpec *heightSpec, CYISceneNode::MeasureSpec *depthSpec) |
static void | RemeasureChildrenForFillParent (const CYISceneNode *pNode, const glm::vec3 &parentMeasuredSize, const Padding &padding, Dimensions dimensionsToRemeasure) |
static glm::vec3 | GetAdjustedPosition (const glm::vec3 &desiredTopLeftPosition, const CYISceneNode *pChild) |
static glm::vec3 | GetUnadjustedPosition (const glm::vec3 ¤tTopLeftPosition, const CYISceneNode *pChild) |
static glm::vec3 | GetAdjustedMeasuredSize (const CYISceneNode *pChild) |
static glm::vec3 | GetTopLeftPositionWithGravity (const glm::vec3 &layoutGravity, const glm::vec3 &childGravity, const glm::vec3 &containerTopLeft, const glm::vec3 &containerSize, const CYILayout::Padding &padding, const glm::vec3 &childSize, const CYILayoutConfig::Margin &margin, const glm::vec3 ¤tChildPosition) |
static void | MeasureBackgroundChildren (CYISceneNode *pNode, const glm::vec3 &size) |
![]() | |
CYISceneView * | m_pNode |
In most cases, this variable is used as a node (thus the name m_pNode ) More... | |
Padding | m_padding |
bool | m_reverseChildrenOrder |
glm::vec3 | m_gravity |
PositioningMode | m_positioningMode |
CYIStackLayout::CYIStackLayout | ( | ) |
|
virtual |
|
overrideprotectedvirtual |
Applies the measured sizes of the associate scene node's children.
Implements CYILayout.
Reimplemented in CYIScalingLayout.
|
overrideprotectedvirtual |
Measures the associated scene node, considering its layout configuration constraints (if available) and the provided measure specifications.
Implements CYILayout.
Reimplemented in CYIScalingLayout.