bool& mCalledFlag;
};
+struct SceneCreatedStatusFunctor
+{
+ SceneCreatedStatusFunctor(bool& calledFlag) : mCalledFlag( calledFlag )
+ {
+ mCalledFlag = false;
+ }
+
+ void operator()()
+ {
+ mCalledFlag = true;
+ }
+ void Reset()
+ {
+ mCalledFlag = false;
+ }
+
+ bool& mCalledFlag;
+};
+
} // unnamed namespace
END_TEST;
}
+
+int UtcDaliStageSceneCreatedSignal(void)
+{
+ TestApplication app;
+ Stage stage = Stage::GetCurrent();
+
+ bool signalCalled = false;
+ SceneCreatedStatusFunctor sceneCreatedFunctor( signalCalled );
+ stage.SceneCreatedSignal().Connect(&app, sceneCreatedFunctor );
+
+ Integration::Core& core = app.GetCore();
+ core.SceneCreated();
+ DALI_TEST_EQUALS( signalCalled, true, TEST_LOCATION );
+
+ END_TEST;
+}
mImpl->Resume();
}
+void Core::SceneCreated()
+{
+ mImpl->SceneCreated();
+}
+
void Core::QueueEvent(const Event& event)
{
mImpl->QueueEvent(event);
void Resume();
/**
+ * Notify Core that the scene has been created.
+ */
+ void SceneCreated();
+
+ /**
* Queue an event with Core.
* Pre-processing of events may be beneficial e.g. a series of motion events could be throttled, so that only the last event is queued.
* Multi-threading note: this method should be called from the main thread.
ProcessEvents();
}
+void Core::SceneCreated()
+{
+ mStage->EmitSceneCreatedSignal();
+}
+
void Core::QueueEvent( const Integration::Event& event )
{
mEventProcessor->QueueEvent( event );
void Resume();
/**
+ * @copydoc Dali::Integration::Core::SceneCreated()
+ */
+ void SceneCreated();
+
+ /**
* @copydoc Dali::Integration::Core::QueueEvent(const Integration::Event&)
*/
void QueueEvent( const Integration::Event& event );
mTouchedSignalV2.Emit( touch );
}
+
+void Stage::EmitSceneCreatedSignal()
+{
+ mSceneCreatedSignal.Emit();
+}
+
Dali::Stage::KeyEventSignalV2& Stage::KeyEventSignal()
{
return mKeyEventSignalV2;
return mContextRegainedSignal;
}
+Dali::Stage::SceneCreatedSignalV2& Stage::SceneCreatedSignal()
+{
+ return mSceneCreatedSignal;
+}
+
void Stage::NotifyContextLost()
{
mContextLostSignal.Emit();
void EmitTouchedSignal( const TouchEvent& touch );
/**
+ * Emits the scene created.
+ */
+ void EmitSceneCreatedSignal();
+
+ /**
* @copydoc Dali::Stage::KeyEventSignal()
*/
Dali::Stage::KeyEventSignalV2& KeyEventSignal();
*/
Dali::Stage::ContextStatusSignal& ContextRegainedSignal();
+ /**
+ * @copydoc Dali::Stage::SceneCreatedSignal()
+ */
+ Dali::Stage::SceneCreatedSignalV2& SceneCreatedSignal();
+
private: // Implementation of ContextNotificationInterface:
/**
Dali::Stage::ContextStatusSignal mContextLostSignal;
Dali::Stage::ContextStatusSignal mContextRegainedSignal;
+
+ Dali::Stage::SceneCreatedSignalV2 mSceneCreatedSignal;
};
} // namespace Internal
return GetImplementation(*this).TouchedSignal();
}
-
Stage::ContextStatusSignal& Stage::ContextLostSignal()
{
return GetImplementation(*this).ContextLostSignal();
return GetImplementation(*this).ContextRegainedSignal();
}
+Stage::SceneCreatedSignalV2& Stage::SceneCreatedSignal()
+{
+ return GetImplementation(*this).SceneCreatedSignal();
+}
+
} // namespace Dali
typedef SignalV2< void (const KeyEvent&)> KeyEventSignalV2; ///< Key event signal type
typedef SignalV2< void () > EventProcessingFinishedSignalV2; ///< Event Processing finished signal type
typedef SignalV2< void (const TouchEvent&)> TouchedSignalV2; ///< Touched signal type
- typedef SignalV2< void () > ContextStatusSignal; // Context status signal type
+ typedef SignalV2< void () > ContextStatusSignal; ///< Context status signal type
+ typedef SignalV2< void () > SceneCreatedSignalV2; ///< Scene created signal type
static const Vector4 DEFAULT_BACKGROUND_COLOR; ///< Default black background.
static const Vector4 DEBUG_BACKGROUND_COLOR; ///< Green background, useful when debugging.
*/
ContextStatusSignal& ContextRegainedSignal();
+ /**
+ * @brief This signal is emitted after the initial scene is created. It will be triggered after the
+ * application init signal.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName();
+ * @endcode
+ * @return The signal to connect to.
+ */
+ SceneCreatedSignalV2& SceneCreatedSignal();
+
public: // Not intended for application developers
/**