Add SuggestedMinimumWidth/Height 62/252262/1
authorhuiyu.eun <huiyu.eun@samsung.com>
Tue, 26 Jan 2021 05:44:04 +0000 (14:44 +0900)
committerhuiyu.eun <huiyu.eun@samsung.com>
Tue, 26 Jan 2021 05:44:34 +0000 (14:44 +0900)
patch to improve layout process

Change-Id: Id339093865aa9ff52d007f3f761317fc0d7a23d9
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
dali-csharp-binder/src/dali_wrap.cpp

index f42d980..30ec2bb 100755 (executable)
@@ -58243,6 +58243,53 @@ SWIGEXPORT char* SWIGSTDCALL CSharp_Dali_NativeImageSource_GenerateUrl(void* han
   return SWIG_csharp_string_callback( (const char *)url.c_str() );
 }
 
+SWIGEXPORT float SWIGSTDCALL CSharp_Dali_Actor_GetSuggestedMinimumWidth(void * jarg1) {
+  Dali::Actor *arg1 = (Dali::Actor *) 0;
+  Dali::Vector2 maximumSize;
+  Dali::Vector2 minimumSize;
+  Dali::Vector3 naturalSize;
+  float result;
+  {
+    try {
+      arg1 = (Dali::Actor *)jarg1;
+      maximumSize = arg1->GetProperty< Vector2 >( Actor::Property::MAXIMUM_SIZE );
+      minimumSize = arg1->GetProperty< Vector2 >( Actor::Property::MINIMUM_SIZE );
+      naturalSize = arg1->GetNaturalSize();
+
+      float baseHeight = maximumSize.height > 0 ? std::min(maximumSize.height, naturalSize.height) : naturalSize.height;
+      float baseWidth = arg1->GetWidthForHeight(baseHeight);
+
+      result = minimumSize.width > 0 ? std::max(baseWidth, minimumSize.width) : baseWidth;
+      result = maximumSize.width > 0 ? std::min(result, maximumSize.width) : result;
+    } CALL_CATCH_EXCEPTION(0);
+  }
+
+  return result;
+}
+
+SWIGEXPORT float SWIGSTDCALL CSharp_Dali_Actor_GetSuggestedMinimumHeight(void * jarg1) {
+  Dali::Actor *arg1 = (Dali::Actor *) 0;
+  Dali::Vector2 maximumSize;
+  Dali::Vector2 minimumSize;
+  Dali::Vector3 naturalSize;
+  float result;
+  {
+    try {
+      arg1 = (Dali::Actor *)jarg1;
+      maximumSize = arg1->GetProperty< Vector2 >( Actor::Property::MAXIMUM_SIZE );
+      minimumSize = arg1->GetProperty< Vector2 >( Actor::Property::MINIMUM_SIZE );
+      naturalSize = arg1->GetNaturalSize();
+
+      float baseWidth = maximumSize.width > 0 ? std::min(maximumSize.width, naturalSize.width) : naturalSize.width;
+      float baseHeight = arg1->GetHeightForWidth(baseWidth);
+
+      result = minimumSize.height > 0 ? std::max(baseHeight, minimumSize.height) : baseHeight;
+      result = maximumSize.height > 0 ? std::min(result, maximumSize.height) : result;
+    } CALL_CATCH_EXCEPTION(0);
+  }
+
+  return result;
+}
 
 #ifdef __cplusplus
 }