From 4a9e4c30b48b78a9767fe0810fad00ba9169e36d Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Tue, 22 Oct 2019 14:14:46 +0900 Subject: [PATCH] [Tizen] Add visibility changed signal to Window Change-Id: If4d885b656f8261fdc0ac5ab91cebf2570dd635b --- dali/devel-api/adaptor-framework/window-devel.cpp | 5 +++++ dali/devel-api/adaptor-framework/window-devel.h | 14 ++++++++++++++ dali/internal/window-system/common/window-impl.cpp | 13 +++++++++++++ dali/internal/window-system/common/window-impl.h | 8 ++++++++ 4 files changed, 40 insertions(+) diff --git a/dali/devel-api/adaptor-framework/window-devel.cpp b/dali/devel-api/adaptor-framework/window-devel.cpp index c16a520..aefb546 100644 --- a/dali/devel-api/adaptor-framework/window-devel.cpp +++ b/dali/devel-api/adaptor-framework/window-devel.cpp @@ -65,6 +65,11 @@ WheelEventSignalType& WheelEventSignal( Window window ) return GetImplementation( window ).WheelEventSignal(); } +VisibilityChangedSignalType& VisibilityChangedSignal( Window window ) +{ + return GetImplementation( window ).VisibilityChangedSignal(); +} + TransitionEffectEventSignalType& TransitionEffectEventSignal( Window window ) { return GetImplementation( window ).TransitionEffectEventSignal(); diff --git a/dali/devel-api/adaptor-framework/window-devel.h b/dali/devel-api/adaptor-framework/window-devel.h index da532d3..9c02a70 100644 --- a/dali/devel-api/adaptor-framework/window-devel.h +++ b/dali/devel-api/adaptor-framework/window-devel.h @@ -58,6 +58,8 @@ typedef Signal< void (const TouchData&) > TouchSignalType; ///< Touch si typedef Signal< void (const WheelEvent&) > WheelEventSignalType; ///< Touched signal type +typedef Signal< void ( Window, bool ) > VisibilityChangedSignalType; ///< Visibility changed signal type + typedef Signal< void (Window, EffectState, EffectType) > TransitionEffectEventSignalType; ///< Effect signal type and state /** @@ -135,6 +137,18 @@ DALI_ADAPTOR_API TouchSignalType& TouchSignal( Window window ); DALI_ADAPTOR_API WheelEventSignalType& WheelEventSignal( Window window ); /** + * @brief This signal is emitted when the window is shown or hidden. + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName( Window window, bool visible ); + * @endcode + * @param[in] window The window instance + * @return The signal to connect to + */ +DALI_ADAPTOR_API VisibilityChangedSignalType& VisibilityChangedSignal( Window window ); + +/** * @brief This signal is emitted for transition effect. * * The transition animation is appeared when the window is shown/hidden. diff --git a/dali/internal/window-system/common/window-impl.cpp b/dali/internal/window-system/common/window-impl.cpp index 0db7230..fbf04ca 100644 --- a/dali/internal/window-system/common/window-impl.cpp +++ b/dali/internal/window-system/common/window-impl.cpp @@ -87,6 +87,7 @@ Window::Window() mDeleteRequestSignal(), mFocusChangeSignal(), mResizeSignal(), + mVisibilityChangedSignal(), mTransitionEffectEventSignal() { } @@ -293,6 +294,9 @@ void Window::Show() { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowShown(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, true ); } DALI_LOG_RELEASE_INFO( "Window (%p) Show(): iconified = %d\n", this, mIconified ); @@ -308,6 +312,9 @@ void Window::Hide() { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowHidden(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, false ); } DALI_LOG_RELEASE_INFO( "Window (%p) Hide(): iconified = %d\n", this, mIconified ); @@ -577,6 +584,9 @@ void Window::OnIconifyChanged( bool iconified ) { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowHidden(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, false ); } DALI_LOG_RELEASE_INFO( "Window (%p) Iconified: visible = %d\n", this, mVisible ); @@ -589,6 +599,9 @@ void Window::OnIconifyChanged( bool iconified ) { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowShown(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, true ); } DALI_LOG_RELEASE_INFO( "Window (%p) Deiconified: visible = %d\n", this, mVisible ); diff --git a/dali/internal/window-system/common/window-impl.h b/dali/internal/window-system/common/window-impl.h index cca3643..69b2b27 100644 --- a/dali/internal/window-system/common/window-impl.h +++ b/dali/internal/window-system/common/window-impl.h @@ -67,6 +67,7 @@ public: typedef Dali::Window::ResizedSignalType ResizedSignalType; typedef Dali::Window::FocusChangeSignalType FocusChangeSignalType; typedef Dali::Window::ResizeSignalType ResizeSignalType; + typedef Dali::DevelWindow::VisibilityChangedSignalType VisibilityChangedSignalType; typedef Dali::DevelWindow::TransitionEffectEventSignalType TransitionEffectEventSignalType; typedef Signal< void () > SignalType; @@ -475,6 +476,7 @@ public: // Signals * @copydoc Dali::Window::ResizedSignal() */ ResizedSignalType& ResizedSignal() { return mResizedSignal; } + /** * @copydoc Dali::Window::ResizedSignal() */ @@ -486,6 +488,11 @@ public: // Signals SignalType& DeleteRequestSignal() { return mDeleteRequestSignal; } /** + * @copydoc Dali::DevelWindow::VisibilityChangedSignal() + */ + VisibilityChangedSignalType& VisibilityChangedSignal() { return mVisibilityChangedSignal; } + + /** * @copydoc Dali::Window::SignalEventProcessingFinished() */ Dali::DevelWindow::EventProcessingFinishedSignalType& EventProcessingFinishedSignal() { return mScene.EventProcessingFinishedSignal(); } @@ -526,6 +533,7 @@ private: SignalType mDeleteRequestSignal; FocusChangeSignalType mFocusChangeSignal; ResizeSignalType mResizeSignal; + VisibilityChangedSignalType mVisibilityChangedSignal; TransitionEffectEventSignalType mTransitionEffectEventSignal; }; -- 2.7.4