From 6ee0305ca8abed209c7ef08756dc24432e363b93 Mon Sep 17 00:00:00 2001 From: Seoyeon Kim Date: Fri, 29 Jul 2022 09:10:33 +0900 Subject: [PATCH] [Tizen] Add ActionForwardSignal() for accessibility - In Accessibility, One finger double tap and hold gesture is to pass the event to the application. - For the application, it can get the signal using ActionForwardSignal. - Dependency : https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-adaptor/+/278951/ Change-Id: Ic1f1b65b7bee13f1c45604f54fa7692e5c8cf9c4 Signed-off-by: Seoyeon Kim --- .../accessibility-manager/accessibility-manager.cpp | 5 +++++ .../accessibility-manager/accessibility-manager.h | 12 ++++++++++++ .../accessibility-manager/accessibility-manager-impl.cpp | 11 +++++++++++ .../accessibility-manager/accessibility-manager-impl.h | 15 +++++++++++++++ 4 files changed, 43 insertions(+) diff --git a/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.cpp b/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.cpp index d106086..02d3a24 100644 --- a/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.cpp +++ b/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.cpp @@ -350,6 +350,11 @@ AccessibilityManager::AccessibilityActionScrollSignalType& AccessibilityManager: return GetImpl(*this).ActionScrollSignal(); } +AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionForwardSignal() +{ + return GetImpl(*this).ActionForwardSignal(); +} + } // namespace Toolkit } // namespace Dali diff --git a/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h b/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h index 84f8c5c..bff68df 100644 --- a/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h +++ b/dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h @@ -817,6 +817,18 @@ public: // Accessibility action signals */ AccessibilityActionScrollSignalType& ActionScrollSignal(); + /** + * @brief This is emitted when accessibility action is received to forward the event + * to the application (by one finger double tap and hold). + * + * A callback of the following type may be connected: + * @code + * bool YourCallback( AccessibilityManager& manager ); + * @endcode + * @return The signal to connect to + */ + AccessibilityActionSignalType& ActionForwardSignal(); + public: explicit DALI_INTERNAL AccessibilityManager(Internal::AccessibilityManager* impl); diff --git a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp index a1b10d7..b5dc886 100644 --- a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp +++ b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.cpp @@ -1333,6 +1333,17 @@ bool AccessibilityManager::AccessibilityActionStartStop() return mIsAccessibilityTtsEnabled; } +bool AccessibilityManager::AccessibilityActionForwardToApp() +{ + Dali::Toolkit::AccessibilityManager handle( this ); + if( !mActionForwardSignal.Empty() ) + { + mActionForwardSignal.Emit( handle ); + } + + return mIsAccessibilityTtsEnabled; +} + bool AccessibilityManager::HandlePanGesture(const AccessibilityGestureEvent& panEvent) { bool handled = false; diff --git a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h index cbe2bca..7be71b6 100644 --- a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h +++ b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h @@ -445,6 +445,14 @@ public: // Signals return mActionScrollSignal; } + /** + * @copydoc Dali::Toolkit::AccessibilityManager::ActionForwardSignal + */ + AccessibilityActionSignalType& ActionForwardSignal() + { + return mActionForwardSignal; + } + protected: /** @@ -673,6 +681,12 @@ private: bool AccessibilityActionStartStop() override; /** + * Perform the accessibility action to forward the event to the application (by one finger double tap and hold). + * @return whether the accessibility action is performed or not. + */ + bool AccessibilityActionForwardToApp() override; + + /** * This function is connected to the TtsPlayer StateChangeSignal. * It is called when the TTS players state changes. * @param previousState The previous state of the TTS player (for comparison) @@ -719,6 +733,7 @@ private: AccessibilityActionSignalType mActionZoomSignal; AccessibilityActionSignalType mActionReadPauseResumeSignal; AccessibilityActionSignalType mActionStartStopSignal; + AccessibilityActionSignalType mActionForwardSignal; AccessibilityActionScrollSignalType mActionScrollSignal; FocusIDContainer mFocusIDContainer; ///< The container to look up actor ID by focus order -- 2.7.4