Moved more actor methods into relayouter 48/265848/2
authorDavid Steele <david.steele@samsung.com>
Fri, 29 Oct 2021 15:17:23 +0000 (16:17 +0100)
committerDavid Steele <david.steele@samsung.com>
Mon, 8 Nov 2021 11:17:32 +0000 (11:17 +0000)
Change-Id: Ia7cbec6bda7741797463a2bf571073043e628c5e

dali/internal/event/actors/actor-impl.cpp
dali/internal/event/actors/actor-relayouter.cpp
dali/internal/event/actors/actor-relayouter.h

index caab998..85792b6 100644 (file)
@@ -822,12 +822,7 @@ void Actor::SetSizeModeFactor(const Vector3& factor)
 
 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)
@@ -1027,12 +1022,7 @@ void Actor::SetResizePolicy(ResizePolicy::Type policy, Dimension::Type dimension
 
 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)
@@ -1047,12 +1037,7 @@ 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)
@@ -1062,12 +1047,7 @@ void Actor::SetDimensionDependency(Dimension::Type dimension, Dimension::Type de
 
 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)
@@ -1756,47 +1736,12 @@ Actor::Relayouter& Actor::EnsureRelayouter()
 
 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)
@@ -1806,41 +1751,20 @@ 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)
@@ -1850,19 +1774,7 @@ 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)
index 4103c5c..5883a3f 100644 (file)
@@ -90,6 +90,20 @@ void Actor::Relayouter::SetPadding(const Vector2& padding, Dimension::Type dimen
   }
 }
 
+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)
@@ -321,6 +335,56 @@ void Actor::Relayouter::SetResizePolicy(ResizePolicy::Type policy, Dimension::Ty
   }
 }
 
+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)
@@ -401,6 +465,31 @@ float Actor::Relayouter::ClampDimension(const Internal::Actor& actor, float size
   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
index 364e92c..f34e346 100644 (file)
@@ -50,6 +50,9 @@ struct Actor::Relayouter
   /// @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);
 
@@ -80,6 +83,15 @@ struct Actor::Relayouter
   /// @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);
 
@@ -106,6 +118,12 @@ struct Actor::Relayouter
    */
   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
    *