+void Visual::Base::AddEventObserver( Visual::EventObserver& observer)
+{
+ mImpl->mEventObserver = &observer;
+}
+
+void Visual::Base::RemoveEventObserver( Visual::EventObserver& observer )
+{
+ mImpl->mEventObserver = NULL;
+}
+
+void Visual::Base::ResourceReady(Toolkit::Visual::ResourceStatus resourceStatus)
+{
+ if( mImpl->mResourceStatus != resourceStatus )
+ {
+ mImpl->mResourceStatus = resourceStatus;
+
+ if( mImpl->mEventObserver )
+ {
+ // observer is currently a control impl
+ mImpl->mEventObserver->ResourceReady( *this );
+ }
+ }
+}
+
+bool Visual::Base::IsResourceReady() const
+{
+ return ( mImpl->mResourceStatus == Toolkit::Visual::ResourceStatus::READY );
+}
+
+Toolkit::Visual::ResourceStatus Visual::Base::GetResourceStatus() const
+{
+ return mImpl->mResourceStatus;
+}
+
+Visual::FittingMode Visual::Base::GetFittingMode() const
+{
+ return mImpl->mFittingMode;
+}
+
+Visual::Base& Visual::Base::GetVisualObject()
+{
+ return *this;
+}
+