ActorObserver::ActorObserver()
: mActor ( NULL ),
- mActorDisconnected(false)
+ mActorDisconnected( false ),
+ mRemoveCallback( NULL )
{
DALI_LOG_TRACE_METHOD( gLogFilter );
}
+ActorObserver::ActorObserver( CallbackBase* callback )
+: mActor ( NULL ),
+ mActorDisconnected( false ),
+ mRemoveCallback( callback )
+{
+}
+
ActorObserver::~ActorObserver()
{
DALI_LOG_TRACE_METHOD( gLogFilter );
SetActor( NULL );
+
+ delete mRemoveCallback;
}
Actor* ActorObserver::GetActor()
}
}
-void ActorObserver::SceneObjectRemoved( ProxyObject& proxy )
+void ActorObserver::SceneObjectRemoved( Object& object )
{
DALI_LOG_TRACE_METHOD( gLogFilter );
- if ( mActor == &proxy )
+ if ( mActor == &object )
{
- // do not call proxy.RemoveObserver here, proxy is currently iterating through observers... you wouldnt want to upset proxy now would you?
+ if ( mRemoveCallback )
+ {
+// CallbackBase::Execute( *mRemoveCallback, mActor );
+ }
+
+ // do not call object.RemoveObserver here, object is currently iterating through observers
mActorDisconnected = true;
}
}
-void ActorObserver::ProxyDestroyed(ProxyObject& proxy)
+void ActorObserver::ObjectDestroyed(Object& object)
{
DALI_LOG_TRACE_METHOD( gLogFilter );
- if ( mActor == &proxy )
+ if ( mActor == &object )
{
DALI_LOG_INFO(gLogFilter, Debug::Verbose, "Stop Observing: %p\n", mActor);
mActor = NULL;