const Vector3& Actor::GetSizeModeFactor() const
{
- if(mRelayoutData)
- {
- return mRelayoutData->sizeModeFactor;
- }
-
- return Relayouter::DEFAULT_SIZE_MODE_FACTOR;
+ return mRelayoutData ? mRelayoutData->sizeModeFactor : Relayouter::DEFAULT_SIZE_MODE_FACTOR;
}
void Actor::SetColorMode(ColorMode colorMode)
ResizePolicy::Type Actor::GetResizePolicy(Dimension::Type dimension) const
{
- if(mRelayoutData)
- {
- return mRelayoutData->GetResizePolicy(dimension);
- }
-
- return ResizePolicy::DEFAULT;
+ return mRelayoutData ? mRelayoutData->GetResizePolicy(dimension) : ResizePolicy::DEFAULT;
}
void Actor::SetSizeScalePolicy(SizeScalePolicy::Type policy)
SizeScalePolicy::Type Actor::GetSizeScalePolicy() const
{
- if(mRelayoutData)
- {
- return mRelayoutData->sizeSetPolicy;
- }
-
- return Relayouter::DEFAULT_SIZE_SCALE_POLICY;
+ return mRelayoutData ? mRelayoutData->sizeSetPolicy : Relayouter::DEFAULT_SIZE_SCALE_POLICY;
}
void Actor::SetDimensionDependency(Dimension::Type dimension, Dimension::Type dependency)
Dimension::Type Actor::GetDimensionDependency(Dimension::Type dimension) const
{
- if(mRelayoutData)
- {
- return mRelayoutData->GetDimensionDependency(dimension);
- }
-
- return Dimension::ALL_DIMENSIONS; // Default
+ return mRelayoutData ? mRelayoutData->GetDimensionDependency(dimension) : Dimension::ALL_DIMENSIONS;
}
void Actor::SetRelayoutEnabled(bool relayoutEnabled)
bool Actor::RelayoutDependentOnParent(Dimension::Type dimension)
{
- // Check if actor is dependent on parent
- for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
- {
- if((dimension & (1 << i)))
- {
- const ResizePolicy::Type resizePolicy = GetResizePolicy(static_cast<Dimension::Type>(1 << i));
- if(resizePolicy == ResizePolicy::FILL_TO_PARENT || resizePolicy == ResizePolicy::SIZE_RELATIVE_TO_PARENT || resizePolicy == ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT)
- {
- return true;
- }
- }
- }
-
- return false;
+ return mRelayoutData && mRelayoutData->GetRelayoutDependentOnParent(dimension);
}
bool Actor::RelayoutDependentOnChildren(Dimension::Type dimension)
{
- // Check if actor is dependent on children
- for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
- {
- if((dimension & (1 << i)))
- {
- const ResizePolicy::Type resizePolicy = GetResizePolicy(static_cast<Dimension::Type>(1 << i));
- switch(resizePolicy)
- {
- case ResizePolicy::FIT_TO_CHILDREN:
- case ResizePolicy::USE_NATURAL_SIZE: // i.e. For things that calculate their size based on children
- {
- return true;
- }
-
- default:
- {
- break;
- }
- }
- }
- }
-
- return false;
+ return mRelayoutData && mRelayoutData->GetRelayoutDependentOnChildren(dimension);
}
bool Actor::RelayoutDependentOnChildrenBase(Dimension::Type dimension)
bool Actor::RelayoutDependentOnDimension(Dimension::Type dimension, Dimension::Type dependentDimension)
{
- // Check each possible dimension and see if it is dependent on the input one
- for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
- {
- if(dimension & (1 << i))
- {
- return mRelayoutData->resizePolicies[i] == ResizePolicy::DIMENSION_DEPENDENCY && mRelayoutData->dimensionDependencies[i] == dependentDimension;
- }
- }
-
- return false;
+ return mRelayoutData && mRelayoutData->GetRelayoutDependentOnDimension(dimension, dependentDimension);
}
void Actor::SetNegotiatedDimension(float negotiatedDimension, Dimension::Type dimension)
{
- for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ if(mRelayoutData)
{
- if(dimension & (1 << i))
- {
- mRelayoutData->negotiatedDimensions[i] = negotiatedDimension;
- }
+ mRelayoutData->SetNegotiatedDimension(negotiatedDimension, dimension);
}
}
float Actor::GetNegotiatedDimension(Dimension::Type dimension) const
{
- // If more than one dimension is requested, just return the first one found
- for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
- {
- if((dimension & (1 << i)))
- {
- return mRelayoutData->negotiatedDimensions[i];
- }
- }
-
- return 0.0f; // Default
+ return mRelayoutData ? mRelayoutData->GetNegotiatedDimension(dimension) : 0.0f;
}
void Actor::SetPadding(const Vector2& padding, Dimension::Type dimension)
Vector2 Actor::GetPadding(Dimension::Type dimension) const
{
- if(mRelayoutData)
- {
- // If more than one dimension is requested, just return the first one found
- for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
- {
- if((dimension & (1 << i)))
- {
- return mRelayoutData->dimensionPadding[i];
- }
- }
- }
-
- return Relayouter::DEFAULT_DIMENSION_PADDING;
+ return mRelayoutData ? mRelayoutData->GetPadding(dimension) : Relayouter::DEFAULT_DIMENSION_PADDING;
}
void Actor::SetLayoutNegotiated(bool negotiated, Dimension::Type dimension)
}
}
+Vector2 Actor::Relayouter::GetPadding(Dimension::Type dimension)
+{
+ // If more than one dimension is requested, just return the first one found
+ for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ {
+ if((dimension & (1 << i)))
+ {
+ return dimensionPadding[i];
+ }
+ }
+
+ return DEFAULT_DIMENSION_PADDING;
+}
+
void Actor::Relayouter::SetLayoutNegotiated(bool negotiated, Dimension::Type dimension)
{
for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
}
}
+bool Actor::Relayouter::GetRelayoutDependentOnParent(Dimension::Type dimension)
+{
+ // Check if actor is dependent on parent
+ for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ {
+ if((dimension & (1 << i)))
+ {
+ const ResizePolicy::Type resizePolicy = GetResizePolicy(static_cast<Dimension::Type>(1 << i));
+ if(resizePolicy == ResizePolicy::FILL_TO_PARENT || resizePolicy == ResizePolicy::SIZE_RELATIVE_TO_PARENT || resizePolicy == ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+bool Actor::Relayouter::GetRelayoutDependentOnChildren(Dimension::Type dimension)
+{
+ // Check if actor is dependent on children
+ for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ {
+ if((dimension & (1 << i)))
+ {
+ const ResizePolicy::Type resizePolicy = GetResizePolicy(static_cast<Dimension::Type>(1 << i));
+ if(resizePolicy == ResizePolicy::FIT_TO_CHILDREN || resizePolicy == ResizePolicy::USE_NATURAL_SIZE)
+ {
+ return true;
+ }
+ break;
+ }
+ }
+
+ return false;
+}
+
+bool Actor::Relayouter::GetRelayoutDependentOnDimension(Dimension::Type dimension, Dimension::Type dependency)
+{
+ // Check each possible dimension and see if it is dependent on the input one
+ for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ {
+ if(dimension & (1 << i))
+ {
+ return resizePolicies[i] == ResizePolicy::DIMENSION_DEPENDENCY && dimensionDependencies[i] == dependency;
+ }
+ }
+
+ return false;
+}
+
void Actor::Relayouter::SetDimensionDependency(Dimension::Type dimension, Dimension::Type dependency)
{
for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
return std::max(minSize, std::min(size, maxSize));
}
+void Actor::Relayouter::SetNegotiatedDimension(float negotiatedDimension, Dimension::Type dimension)
+{
+ for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ {
+ if(dimension & (1 << i))
+ {
+ negotiatedDimensions[i] = negotiatedDimension;
+ }
+ }
+}
+
+float Actor::Relayouter::GetNegotiatedDimension(Dimension::Type dimension)
+{
+ // If more than one dimension is requested, just return the first one found
+ for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ {
+ if((dimension & (1 << i)))
+ {
+ return negotiatedDimensions[i];
+ }
+ }
+
+ return 0.0f; // Default
+}
+
void Actor::Relayouter::NegotiateDimension(Actor& actor, Dimension::Type dimension, const Vector2& allocatedSize, Actor::ActorDimensionStack& recursionStack)
{
// Check if it needs to be negotiated
/// @copydoc Actor::SetPadding
void SetPadding(const Vector2& padding, Dimension::Type dimension);
+ /// @copydoc Actor::GetPadding
+ Vector2 GetPadding(Dimension::Type dimension);
+
/// @copydoc Actor::SetLayoutNegotiated
void SetLayoutNegotiated(bool negotiated, Dimension::Type dimension);
/// @copydoc Actor::SetResizePolicy
void SetResizePolicy(ResizePolicy::Type policy, Dimension::Type dimension, Vector3& targetSize);
+ /// @copydoc Actor::GetRelayoutDependentOnParent
+ bool GetRelayoutDependentOnParent(Dimension::Type dimension);
+
+ /// @copydoc Actor::GetRelayoutDependentOnChildren
+ bool GetRelayoutDependentOnChildren(Dimension::Type dimension);
+
+ /// @copydoc Actor::GetRelayoutDependentOnDimension
+ bool GetRelayoutDependentOnDimension(Dimension::Type dimension, Dimension::Type dependency);
+
/// @copydoc Actor::SetDimensionDependency
void SetDimensionDependency(Dimension::Type dimension, Dimension::Type dependency);
*/
static float ClampDimension(const Internal::Actor& actor, float size, Dimension::Type dimension);
+ /// @copydoc Actor::SetNegotiatedDimension
+ void SetNegotiatedDimension(float negotiatedDimension, Dimension::Type dimension);
+
+ /// @copydoc Actor::GetNegotiatedDimension
+ float GetNegotiatedDimension(Dimension::Type dimension);
+
/**
* Negotiate size for a specific dimension
*