/////////////////////////////////////////////////////////////
-void ImageView::OnInitialize()
-{
- // ImageView can relayout in the OnImageReady, alternative to a signal would be to have a upcall from the Control to ImageView
- Dali::Toolkit::Control handle( GetOwner() );
- Toolkit::DevelControl::ResourceReadySignal( handle ).Connect( this, &ImageView::OnResourceReady );
-}
-
void ImageView::SetImage( Image image )
{
// Don't bother comparing if we had a visual previously, just drop old visual and create new one
mUrl.clear();
mPropertyMap.Clear();
- Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( image );
- if (!mVisual)
- {
- mVisual = visual;
- }
+ mVisual = Toolkit::VisualFactory::Get().CreateVisual( image );
+ DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, mVisual );
- DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, visual );
+ RelayoutRequest();
}
void ImageView::SetImage( const Property::Map& map )
mPropertyMap = map;
mUrl.clear();
mImage.Reset();
- Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( mPropertyMap );
- // Don't set mVisual until it is ready and shown. Getters will still use current visual.
- if (!mVisual)
- {
- mVisual = visual;
- }
- DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, visual );
+ mVisual = Toolkit::VisualFactory::Get().CreateVisual( mPropertyMap );
+ DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, mVisual );
+
+ RelayoutRequest();
}
void ImageView::SetImage( const std::string& url, ImageDimensions size )
mImage.Reset();
mPropertyMap.Clear();
- // Don't set mVisual until it is ready and shown. Getters will still use current visual.
- Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( url, size );
- if (!mVisual)
- {
- mVisual = visual;
- }
+ mVisual = Toolkit::VisualFactory::Get().CreateVisual( url, size );
+ DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, mVisual );
- DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, visual );
+ RelayoutRequest();
}
Image ImageView::GetImage() const
}
}
+void ImageView::OnStageConnection( int depth )
+{
+ if( mImage )
+ {
+ mImage.UploadedSignal().Emit( mImage );
+ }
+
+ Dali::ResourceImage resourceImage = Dali::ResourceImage::DownCast( mImage );
+ if( resourceImage )
+ {
+ resourceImage.LoadingFinishedSignal().Emit( resourceImage );
+ }
+
+ Control::OnStageConnection( depth ); // Enabled visuals will be put on stage
+}
+
Vector3 ImageView::GetNaturalSize()
{
if( mVisual )
}
}
-void ImageView::OnResourceReady( Toolkit::Control control )
-{
- mVisual = DevelControl::GetVisual( *this, Toolkit::ImageView::Property::IMAGE );
-}
-
///////////////////////////////////////////////////////////
//
// Properties