X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fimage-view%2Fimage-view-impl.cpp;h=03229f9e9ca17840e82aaa17e39b000fa18ab304;hb=d2cc1da3aea2842d9de3e2f5288d768be711fa5b;hp=aecb8592813048bb78e55f1bf80e1b51c68cb307;hpb=543e89293214ebed96d22ac8aa5522e217ec18f9;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 aecb859..03229f9 100644 --- a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp +++ b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp @@ -6,13 +6,12 @@ // EXTERNAL INCLUDES #include #include -#include +#include #include // INTERNAL INCLUDES #include #include -#include namespace Dali { @@ -45,8 +44,7 @@ DALI_TYPE_REGISTRATION_END() using namespace Dali; ImageView::ImageView() -: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), - mPremultipledAlphaEnabled( false ) +: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ) { } @@ -131,40 +129,38 @@ void ImageView::SetImage( const std::string& url, ImageDimensions size ) mUrl = url; - if( size.GetWidth() == 0u && size.GetHeight() == 0u ) - { - mImageSize = ResourceImage::GetImageSize( mUrl ); - } - else + if( size.GetWidth() != 0u && size.GetHeight() != 0u ) { mImageSize = size; } Actor self = Self(); - Toolkit::RendererFactory::Get().ResetRenderer( mRenderer, self, mUrl, mImageSize ); + Toolkit::RendererFactory::Get().ResetRenderer( mRenderer, self, mUrl, size ); RelayoutRequest(); } } -void ImageView::EnablePreMultipliedAlpha( bool preMultipled ) +Image ImageView::GetImage() const { - mPremultipledAlphaEnabled = preMultipled; + return mImage; +} +void ImageView::EnablePreMultipliedAlpha( bool preMultipled ) +{ if( mRenderer ) { - ControlRenderer& rendererImpl = GetImplementation( mRenderer ); - if (&typeid( rendererImpl ) == &typeid(ImageRenderer) ) - { - ImageRenderer* imageRenderer = static_cast( &rendererImpl ); - imageRenderer->EnablePreMultipliedAlpha( preMultipled ); - } + GetImplementation( mRenderer ).EnablePreMultipliedAlpha( preMultipled ); } } bool ImageView::IsPreMultipliedAlphaEnabled() const { - return mPremultipledAlphaEnabled; + if( mRenderer ) + { + return GetImplementation( mRenderer ).IsPreMultipliedAlphaEnabled(); + } + return false; } void ImageView::SetDepthIndex( int depthIndex ) @@ -177,8 +173,14 @@ void ImageView::SetDepthIndex( int depthIndex ) Vector3 ImageView::GetNaturalSize() { - Vector3 size; + if( mRenderer ) + { + Vector2 rendererNaturalSize; + mRenderer.GetNaturalSize( rendererNaturalSize ); + return Vector3( rendererNaturalSize ); + } + Vector3 size; size.x = mImageSize.GetWidth(); size.y = mImageSize.GetHeight(); @@ -246,6 +248,17 @@ void ImageView::OnStageDisconnection() Control::OnStageDisconnection(); } +void ImageView::OnSizeSet( const Vector3& targetSize ) +{ + Control::OnSizeSet( targetSize ); + + if( mRenderer ) + { + Vector2 size( targetSize ); + mRenderer.SetSize( size ); + } +} + /////////////////////////////////////////////////////////// // // Properties @@ -291,10 +304,10 @@ void ImageView::SetProperty( BaseObject* object, Property::Index index, const Pr case Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA: { - bool IsPre; - if( value.Get( IsPre ) ) + bool isPre; + if( value.Get( isPre ) ) { - GetImpl(imageView).EnablePreMultipliedAlpha( IsPre ); + GetImpl(imageView).EnablePreMultipliedAlpha( isPre ); } break; }