X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fcommon%2Fstage-impl.cpp;h=905cfba4b678ce9fd05f73d24f791add9ae7f799;hb=35ae944cd226dd2594260c4e36b83a06773250da;hp=a9abac85d4c17d9eed6293fcd779f38aa3b2da03;hpb=1c95ac2aab36475e87d2405e8430a9354ac95af0;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/common/stage-impl.cpp b/dali/internal/event/common/stage-impl.cpp index a9abac8..905cfba 100644 --- a/dali/internal/event/common/stage-impl.cpp +++ b/dali/internal/event/common/stage-impl.cpp @@ -42,6 +42,13 @@ using Dali::Internal::SceneGraph::Node; +namespace +{ +#if defined(DEBUG_ENABLED) +Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_DEPTH_TIMER" ); +#endif +} + namespace Dali { @@ -56,8 +63,10 @@ const float DEFAULT_STEREO_BASE( 65.0f ); // Signals const char* const SIGNAL_KEY_EVENT = "keyEvent"; +const char* const SIGNAL_KEY_EVENT_GENERATED = "keyEventGenerated"; const char* const SIGNAL_EVENT_PROCESSING_FINISHED = "eventProcessingFinished"; const char* const SIGNAL_TOUCHED = "touched"; +const char* const SIGNAL_TOUCH = "touch"; const char* const SIGNAL_WHEEL_EVENT = "wheelEvent"; const char* const SIGNAL_CONTEXT_LOST = "contextLost"; const char* const SIGNAL_CONTEXT_REGAINED = "contextRegained"; @@ -72,6 +81,8 @@ SignalConnectorType signalConnector4( mType, SIGNAL_WHEEL_EVENT, & SignalConnectorType signalConnector5( mType, SIGNAL_CONTEXT_LOST, &Stage::DoConnectSignal ); SignalConnectorType signalConnector6( mType, SIGNAL_CONTEXT_REGAINED, &Stage::DoConnectSignal ); SignalConnectorType signalConnector7( mType, SIGNAL_SCENE_CREATED, &Stage::DoConnectSignal ); +SignalConnectorType signalConnector8( mType, SIGNAL_KEY_EVENT_GENERATED, &Stage::DoConnectSignal ); +SignalConnectorType signalConnector9( mType, SIGNAL_TOUCH, &Stage::DoConnectSignal ); } // unnamed namespace @@ -526,6 +537,10 @@ bool Stage::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tra { stage->KeyEventSignal().Connect( tracker, functor ); } + else if( 0 == strcmp( signalName.c_str(), SIGNAL_KEY_EVENT_GENERATED ) ) + { + stage->KeyEventGeneratedSignal().Connect( tracker, functor ); + } else if( 0 == strcmp( signalName.c_str(), SIGNAL_EVENT_PROCESSING_FINISHED ) ) { stage->EventProcessingFinishedSignal().Connect( tracker, functor ); @@ -534,6 +549,10 @@ bool Stage::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tra { stage->TouchedSignal().Connect( tracker, functor ); } + else if( 0 == strcmp( signalName.c_str(), SIGNAL_TOUCH ) ) + { + stage->TouchSignal().Connect( tracker, functor ); + } else if( 0 == strcmp( signalName.c_str(), SIGNAL_WHEEL_EVENT ) ) { stage->WheelEventSignal().Connect( tracker, functor ); @@ -566,6 +585,13 @@ void Stage::EmitKeyEventSignal(const KeyEvent& event) mKeyEventSignal.Emit( event ); } +bool Stage::EmitKeyEventGeneratedSignal(const KeyEvent& event) +{ + // Emit the KeyEventGenerated signal when KeyEvent is generated + + return mKeyEventGeneratedSignal.Emit( event ); +} + void Stage::EmitEventProcessingFinishedSignal() { mEventProcessingFinishedSignal.Emit(); @@ -594,6 +620,11 @@ Dali::Stage::KeyEventSignalType& Stage::KeyEventSignal() return mKeyEventSignal; } +Dali::DevelStage::KeyEventGeneratedSignalType& Stage::KeyEventGeneratedSignal() +{ + return mKeyEventGeneratedSignal; +} + Dali::Stage::EventProcessingFinishedSignalType& Stage::EventProcessingFinishedSignal() { return mEventProcessingFinishedSignal; @@ -640,6 +671,27 @@ void Stage::NotifyContextRegained() mContextRegainedSignal.Emit(); } + +void Stage::RequestRebuildDepthTree() +{ + DALI_LOG_INFO(gLogFilter, Debug::General, "RequestRebuildDepthTree()\n"); + mDepthTreeDirty = true; +} + +void Stage::RebuildDepthTree() +{ + // If the depth tree needs rebuilding, do it in this frame only. + if( mDepthTreeDirty ) + { + DALI_LOG_INFO(gLogFilter, Debug::Concise, "RebuildDepthTree() dirty:T\n"); + + ActorPtr actor( mRootLayer.Get() ); + actor->RebuildDepthTree(); + mDepthTreeDirty = false; + } +} + + Stage::Stage( AnimationPlaylist& playlist, PropertyNotificationManager& propertyNotificationManager, SceneGraph::UpdateManager& updateManager,