From fdf4be553e2cd35fd643d9215db5184e2f97ba84 Mon Sep 17 00:00:00 2001 From: Sinjae Lee Date: Wed, 25 Jun 2014 18:29:16 +0900 Subject: [PATCH] (Accessibility) Added action scroll signal [problem] Homescreen d-box want to do scroll by 2 fingers drag [cause] Not implemented [solution] Added new signal to provide scroll event to accessibility observers Change-Id: Id1cf797affe58d9d4365f2251d8592cd3e67b190 Signed-off-by: Adeel Kazmi --- .../internal/common/accessibility-manager-impl.cpp | 17 +++++++++++++++++ .../tizen/internal/common/accessibility-manager-impl.h | 10 ++++++++++ .../adaptor-framework/common/accessibility-manager.cpp | 6 ++++++ .../adaptor-framework/common/accessibility-manager.h | 15 +++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/adaptors/tizen/internal/common/accessibility-manager-impl.cpp b/adaptors/tizen/internal/common/accessibility-manager-impl.cpp index 65e2ddd..dbd6f5b 100644 --- a/adaptors/tizen/internal/common/accessibility-manager-impl.cpp +++ b/adaptors/tizen/internal/common/accessibility-manager-impl.cpp @@ -507,6 +507,23 @@ bool AccessibilityManager::HandleActionScrollEvent(const TouchPoint& point, unsi { bool ret = false; + Dali::AccessibilityManager handle( this ); + + Dali::TouchEvent touchEvent(timeStamp); + touchEvent.points.push_back(point); + + /* + * In order to application decide touch action first, + * emit ActionScroll signal in first, AccessibilityActionScroll for handler in next + */ + if ( !mIndicatorFocused ) + { + if( !mActionScrollSignalV2.Empty() ) + { + mActionScrollSignalV2.Emit( handle, touchEvent ); + } + } + Integration::TouchEvent event; if (mCombiner.GetNextTouchEvent(point, timeStamp, event)) { diff --git a/adaptors/tizen/internal/common/accessibility-manager-impl.h b/adaptors/tizen/internal/common/accessibility-manager-impl.h index f1763fc..cbd608f 100644 --- a/adaptors/tizen/internal/common/accessibility-manager-impl.h +++ b/adaptors/tizen/internal/common/accessibility-manager-impl.h @@ -50,6 +50,7 @@ class AccessibilityManager : public Dali::BaseObject public: typedef Dali::AccessibilityManager::AccessibilityActionSignalV2 AccessibilityActionSignalV2; + typedef Dali::AccessibilityManager::AccessibilityActionScrollSignalV2 AccessibilityActionScrollSignalV2; // Creation @@ -271,6 +272,14 @@ public: // Signals return mActionBackSignalV2; } + /** + * @copydoc Dali::AccessibilityManager::ActionScrollSignal + */ + AccessibilityActionScrollSignalV2& ActionScrollSignal() + { + return mActionScrollSignalV2; + } + private: // Destruction @@ -310,6 +319,7 @@ private: AccessibilityActionSignalV2 mActionDownSignalV2; AccessibilityActionSignalV2 mActionClearFocusSignalV2; AccessibilityActionSignalV2 mActionBackSignalV2; + AccessibilityActionScrollSignalV2 mActionScrollSignalV2; public: diff --git a/adaptors/tizen/public-api/adaptor-framework/common/accessibility-manager.cpp b/adaptors/tizen/public-api/adaptor-framework/common/accessibility-manager.cpp index 35d6d53..b31fbd9 100644 --- a/adaptors/tizen/public-api/adaptor-framework/common/accessibility-manager.cpp +++ b/adaptors/tizen/public-api/adaptor-framework/common/accessibility-manager.cpp @@ -36,6 +36,7 @@ const char* const AccessibilityManager::SIGNAL_ACTION_UP( "accessibility-action- const char* const AccessibilityManager::SIGNAL_ACTION_DOWN( "accessibility-action-down" ); const char* const AccessibilityManager::SIGNAL_ACTION_CLEAR_FOCUS( "accessibility-action-clear-focus" ); const char* const AccessibilityManager::SIGNAL_ACTION_BACK( "accessibility-action-back" ); +const char* const AccessibilityManager::SIGNAL_ACTION_SCROLL( "accessibility-action-scroll" ); AccessibilityManager::AccessibilityManager() { @@ -200,6 +201,11 @@ AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::ActionB return Internal::Adaptor::AccessibilityManager::GetImplementation(*this).ActionBackSignal(); } +AccessibilityManager::AccessibilityActionScrollSignalV2& AccessibilityManager::ActionScrollSignal() +{ + return Internal::Adaptor::AccessibilityManager::GetImplementation(*this).ActionScrollSignal(); +} + AccessibilityManager::AccessibilityManager( Internal::Adaptor::AccessibilityManager& manager ) : BaseHandle( &manager ) { diff --git a/capi/dali/public-api/adaptor-framework/common/accessibility-manager.h b/capi/dali/public-api/adaptor-framework/common/accessibility-manager.h index 58503f1..b766f6c 100644 --- a/capi/dali/public-api/adaptor-framework/common/accessibility-manager.h +++ b/capi/dali/public-api/adaptor-framework/common/accessibility-manager.h @@ -29,6 +29,7 @@ #include #include +#include namespace Dali DALI_IMPORT_API { @@ -60,6 +61,7 @@ public: * Signal connected callback should return the result */ typedef SignalV2< bool ( AccessibilityManager& ) > AccessibilityActionSignalV2; ///< Generic signal type + typedef SignalV2< bool (AccessibilityManager&, const Dali::TouchEvent&)> AccessibilityActionScrollSignalV2; ///< Scroll signal type // Signal Names static const char* const SIGNAL_STATUS_CHANGED; ///< name "accessibility-status-changed" @@ -74,6 +76,7 @@ public: static const char* const SIGNAL_ACTION_DOWN; ///< name "accessibility-action-down" static const char* const SIGNAL_ACTION_CLEAR_FOCUS; ///< name "accessibility-action-clear-focus" static const char* const SIGNAL_ACTION_BACK; ///< name "accessibility-action-back" + static const char* const SIGNAL_ACTION_SCROLL; ///< name "accessibility-action-scroll" /** * @brief Create an uninitialized handle. @@ -386,6 +389,18 @@ public: // Signals */ AccessibilityActionSignalV2& ActionBackSignal(); + /** + * @brief This is emitted when accessibility action is received to handle scroll event (by two + * fingers drag). + * + * A callback of the following type may be connected: + * @code + * bool YourCallback( AccessibilityManager& manager, const TouchEvent& event ); + * @endcode + * @return The signal to connect to. + */ + AccessibilityActionScrollSignalV2& ActionScrollSignal(); + public: // Not intended for application developers /** -- 2.7.4