mImageSize = ImageDimensions( width, height );
}
-void ImageView::SetImage( const std::string& url )
+void ImageView::SetImage( const std::string& url, ImageDimensions size )
{
if( mUrl != url )
{
mUrl = url;
- Actor self = Self();
- Toolkit::RendererFactory::Get().ResetRenderer( mRenderer, self, mUrl );
+ if( size.GetWidth() == 0u && size.GetHeight() == 0u )
+ {
+ mImageSize = ResourceImage::GetImageSize( mUrl );
+ }
+ else
+ {
+ mImageSize = size;
+ }
- mImageSize = ResourceImage::GetImageSize( mUrl );
+ Actor self = Self();
+ Toolkit::RendererFactory::Get().ResetRenderer( mRenderer, self, mUrl, mImageSize );
}
}
size.y = mImageSize.GetHeight();
size.z = std::min(size.x, size.y);
- if( size.x > 0 && size.x > 0 )
+ if( size.x > 0 && size.y > 0 )
{
return size;
}
void ImageView::OnStageConnection( int depth )
{
+ Control::OnStageConnection( depth );
+
if( mRenderer )
{
CustomActor self = Self();
CustomActor self = Self();
mRenderer.SetOffStage( self );
}
+
+ Control::OnStageDisconnection();
}
if( value.Get( imageUrl ) )
{
ImageView& impl = GetImpl( imageView );
- impl.SetImage( imageUrl );
+ impl.SetImage( imageUrl, ImageDimensions() );
}
// if its not a string then get a Property::Map from the property if possible.