X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fimage-view%2Fimage-view-impl.cpp;h=f19f390211ac906df3ff37c37f12186ea90f8e9a;hb=refs%2Fchanges%2F32%2F98732%2F1;hp=e01514489a314eed1f5a74a951c957eaffbf7904;hpb=b15279dd1e820bebf41aeb78453f997fe50051ae;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp index e015144..f19f390 100644 --- a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp +++ b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp @@ -15,6 +15,7 @@ #include #include #include +#include namespace Dali { @@ -42,6 +43,19 @@ DALI_PROPERTY_REGISTRATION( Toolkit, ImageView, "preMultipliedAlpha", BOOLEAN, P DALI_ANIMATABLE_PROPERTY_REGISTRATION_WITH_DEFAULT( Toolkit, ImageView, "pixelArea", Vector4(0.f, 0.f, 1.f, 1.f), PIXEL_AREA ) DALI_TYPE_REGISTRATION_END() + +void SetDefaultTransformMap( Property::Map& transformMap ) +{ + transformMap.Clear(); + transformMap + .Add( Toolkit::Visual::DevelProperty::Transform::Property::OFFSET, Vector2(0.0f, 0.0f) ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::SIZE, Vector2(1.0f, 1.0f) ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::ORIGIN, Toolkit::Align::CENTER ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::ANCHOR_POINT, Toolkit::Align::CENTER ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::OFFSET_SIZE_MODE, Vector4::ZERO ); + +} + } // anonymous namespace using namespace Dali; @@ -81,9 +95,8 @@ void ImageView::SetImage( Image image ) mImage = image; - Actor self( Self() ); mVisual = Toolkit::VisualFactory::Get().CreateVisual( image ); - RegisterVisual( Toolkit::ImageView::Property::IMAGE, self, mVisual ); + RegisterVisual( Toolkit::ImageView::Property::IMAGE, mVisual ); mImageSize = image ? ImageDimensions( image.GetWidth(), image.GetHeight() ) : ImageDimensions( 0, 0 ); RelayoutRequest(); @@ -96,9 +109,8 @@ void ImageView::SetImage( Property::Map map ) mImage.Reset(); mPropertyMap = map; - Actor self( Self() ); mVisual = Toolkit::VisualFactory::Get().CreateVisual( mPropertyMap ); - RegisterVisual( Toolkit::ImageView::Property::IMAGE, self, mVisual ); + RegisterVisual( Toolkit::ImageView::Property::IMAGE, mVisual ); Property::Value* widthValue = mPropertyMap.Find( "width" ); if( widthValue ) @@ -139,11 +151,14 @@ void ImageView::SetImage( const std::string& url, ImageDimensions size ) mImageSize = size; } - Actor self( Self() ); mVisual = Toolkit::VisualFactory::Get().CreateVisual( url, size ); - RegisterVisual( Toolkit::ImageView::Property::IMAGE, self, mVisual ); + RegisterVisual( Toolkit::ImageView::Property::IMAGE, mVisual ); - mVisual.SetSize( mSizeSet ); + // This transform fills the control + // Should provide a transform that handles aspect ratio according to image size + Property::Map transformMap; + SetDefaultTransformMap( transformMap ); + mVisual.SetTransformAndSize( transformMap, mSizeSet ); RelayoutRequest(); } @@ -242,7 +257,12 @@ void ImageView::OnSizeSet( const Vector3& targetSize ) if( mVisual ) { Vector2 size( targetSize ); - mVisual.SetSize( size ); + + // This transform fills the control + // Should provide a transform that handles aspect ratio according to image size + Property::Map transformMap; + SetDefaultTransformMap( transformMap ); + mVisual.SetTransformAndSize( transformMap, size ); } }