From 2a637a24972b61da0350d40953f68abeb8e9ecac Mon Sep 17 00:00:00 2001 From: adun Date: Fri, 20 Oct 2017 04:37:42 +0800 Subject: [PATCH] Support Right-To-Left of padding/margin in imageView Change-Id: Ica0d4a9e2e70cf498f2c42738e3cfacd20968352 --- automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp | 6 ++++++ dali-toolkit/internal/controls/image-view/image-view-impl.cpp | 7 +++++++ 2 files changed, 13 insertions(+) mode change 100644 => 100755 dali-toolkit/internal/controls/image-view/image-view-impl.cpp diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp index a770a77..97a4b1d 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp @@ -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 ); diff --git a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp old mode 100644 new mode 100755 index 835bb4e..3466d82 --- a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp +++ b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp @@ -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( Self().GetProperty(Dali::Actor::Property::LAYOUT_DIRECTION).Get() ); + + 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 ) -- 2.7.4