Support Right-To-Left of padding/margin in imageView 00/156700/19
authoradun <xiaohui.fang@samsung.com>
Thu, 19 Oct 2017 20:37:42 +0000 (04:37 +0800)
committeradun <xiaohui.fang@samsung.com>
Thu, 16 Nov 2017 11:52:51 +0000 (19:52 +0800)
Change-Id: Ica0d4a9e2e70cf498f2c42738e3cfacd20968352

automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp
dali-toolkit/internal/controls/image-view/image-view-impl.cpp [changed mode: 0644->0755]

index a770a77..97a4b1d 100644 (file)
@@ -489,6 +489,12 @@ int UtcDaliImageViewAsyncLoadingWithAtlasing(void)
   application.Render(16);
   application.SendNotification();
 
+  imageView.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION,  Dali::LayoutDirection::RIGHT_TO_LEFT );
+  application.SendNotification();
+  application.Render(16);
+  application.Render(16);
+  application.SendNotification();
+
   // loading started, this waits for the loader thread for max 30 seconds
   DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
 
old mode 100644 (file)
new mode 100755 (executable)
index 835bb4e..3466d82
@@ -269,6 +269,13 @@ void ImageView::OnRelayout( const Vector2& size, RelayoutContainer& container )
 
     if( ( padding.start != 0 ) || ( padding.end != 0 ) || ( padding.top != 0 ) || ( padding.bottom != 0 ) )
     {
+      Dali::LayoutDirection::Type layoutDirection = static_cast<Dali::LayoutDirection::Type>( Self().GetProperty(Dali::Actor::Property::LAYOUT_DIRECTION).Get<int>() );
+
+      if( Dali::LayoutDirection::RIGHT_TO_LEFT == layoutDirection )
+      {
+        std::swap(padding.start, padding.end);
+      }
+
       transformMap.Add( Toolkit::Visual::Transform::Property::OFFSET, Vector2( padding.start, padding.top ) )
                   .Add( Toolkit::Visual::Transform::Property::OFFSET_POLICY, Vector2( Toolkit::Visual::Transform::Policy::ABSOLUTE, Toolkit::Visual::Transform::Policy::ABSOLUTE ) )
                   .Add( Toolkit::Visual::Transform::Property::ORIGIN, Toolkit::Align::TOP_BEGIN )