void ImageView::SetImage( Property::Map map )
{
- mImage.Reset();
- mUrl.clear();
mPropertyMap = map;
- mRenderer = Toolkit::RendererFactory::Get().GetControlRenderer( mPropertyMap );
+ bool newRendererCreated = false;
+ if( mRenderer )
+ {
+ newRendererCreated = Toolkit::RendererFactory::Get().ResetRenderer( mRenderer, mPropertyMap );
+ }
+ else
+ {
+ mRenderer = Toolkit::RendererFactory::Get().GetControlRenderer( mPropertyMap );
+ newRendererCreated = true;
+ }
//we need to inform any newly created renderers if it is on stage
- if( Self().OnStage() )
+ CustomActor self = Self();
+ if( newRendererCreated && self.OnStage() )
{
- CustomActor self = Self();
mRenderer.SetOnStage( self );
}
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();
}
}
+void ImageView::OnStageDisconnection()
+{
+ if( mRenderer )
+ {
+ CustomActor self = Self();
+ mRenderer.SetOffStage( self );
+ }
+
+ Control::OnStageDisconnection();
+}
+
+
///////////////////////////////////////////////////////////
//
// Properties