1 #ifndef __DALI_INTERNAL_ACCESSIBILITY_MANAGER_H__
2 #define __DALI_INTERNAL_ACCESSIBILITY_MANAGER_H__
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
24 #include <dali/public-api/object/base-object.h>
25 #include <dali/public-api/math/vector2.h>
26 #include <dali/public-api/events/touch-point.h>
27 #include <dali/integration-api/events/touch-event-combiner.h>
28 #include <accessibility-manager.h>
31 #include <accessibility-action-handler.h>
32 #include <accessibility-gesture-handler.h>
33 #include <indicator-impl.h>
34 #include <accessibility-gesture-detector.h>
46 * This class detects to accessibility action
48 class AccessibilityManager : public Dali::BaseObject
52 typedef Dali::AccessibilityManager::AccessibilityActionSignalV2 AccessibilityActionSignalV2;
53 typedef Dali::AccessibilityManager::AccessibilityActionScrollSignalV2 AccessibilityActionScrollSignalV2;
60 AccessibilityManager();
63 * Get an instance of the AccessibilityManager.
64 * @return The instance of the AccessibilityManager.
66 static Dali::AccessibilityManager Get();
71 * Turn on accessibility action
72 * This method should be called by vconf callback
74 void EnableAccessibility();
77 * Turn off accessibility action
78 * This method should be called by vconf callback
80 void DisableAccessibility();
83 * @copydoc Dali::AccessibilityManager::IsEnabled()
85 bool IsEnabled() const;
88 * @copydoc Dali::AccessibilityManager::GetReadPosition() const
90 Vector2 GetReadPosition() const;
93 * @copydoc Dali::AccessibilityManager::SetActionHandler()
95 void SetActionHandler(AccessibilityActionHandler& handler);
98 * @copydoc Dali::AccessibilityManager::SetGestureHandler()
100 void SetGestureHandler(AccessibilityGestureHandler& handler);
105 void SetIndicator(Indicator* indicator);
108 * @copydoc Dali::AccessibilityManager::HandleActionNextEvent()
110 bool HandleActionNextEvent(bool allowEndFeedback = true);
113 * @copydoc Dali::AccessibilityManager::HandleActionPreviousEvent()
115 bool HandleActionPreviousEvent(bool allowEndFeedback = true);
118 * @copydoc Dali::AccessibilityManager::HandleActionActivateEvent()
120 bool HandleActionActivateEvent();
123 * @copydoc Dali::AccessibilityManager::HandleActionReadEvent()
125 bool HandleActionReadEvent(unsigned int x, unsigned int y, bool allowReadAgain);
128 * @copydoc Dali::AccessibilityManager::HandleActionReadNextEvent()
130 bool HandleActionReadNextEvent(bool allowEndFeedback = true);
133 * @copydoc Dali::AccessibilityManager::HandleActionReadPreviousEvent()
135 bool HandleActionReadPreviousEvent(bool allowEndFeedback = true);
138 * @copydoc Dali::AccessibilityManager::HandleActionUpEvent()
140 bool HandleActionUpEvent();
143 * @copydoc Dali::AccessibilityManager::HandleActionDownEvent()
145 bool HandleActionDownEvent();
148 * @copydoc Dali::AccessibilityManager::HandleActionClearFocusEvent()
150 bool HandleActionClearFocusEvent();
153 * @copydoc Dali::AccessibilityManager::HandleActionScrollEvent()
155 bool HandleActionScrollEvent(const TouchPoint& point, unsigned long timeStamp);
158 * @copydoc Dali::AccessibilityManager::HandleActionTouchEvent()
160 bool HandleActionTouchEvent(const TouchPoint& point, unsigned long timeStamp);
163 * @copydoc Dali::AccessibilityManager::HandleActionBackEvent()
165 bool HandleActionBackEvent();
168 * @copydoc Dali::AccessibilityManager::HandleActionEnableEvent()
170 void HandleActionEnableEvent();
173 * @copydoc Dali::AccessibilityManager::HandleActionDisableEvent()
175 void HandleActionDisableEvent();
180 * @copydoc Dali::AccessibilityManager::StatusChangedSignal
182 AccessibilityActionSignalV2& StatusChangedSignal()
184 return mStatusChangedSignalV2;
188 * @copydoc Dali::AccessibilityManager::ActionNextSignal
190 AccessibilityActionSignalV2& ActionNextSignal()
192 return mActionNextSignalV2;
196 * @copydoc Dali::AccessibilityManager::ActionPreviousSignal
198 AccessibilityActionSignalV2& ActionPreviousSignal()
200 return mActionPreviousSignalV2;
204 * @copydoc Dali::AccessibilityManager::ActionActivateSignal
206 AccessibilityActionSignalV2& ActionActivateSignal()
208 return mActionActivateSignalV2;
212 * @copydoc Dali::AccessibilityManager::ActionOverSignal
214 AccessibilityActionSignalV2& ActionOverSignal()
216 return mActionOverSignalV2;
220 * @copydoc Dali::AccessibilityManager::ActionReadSignal
222 AccessibilityActionSignalV2& ActionReadSignal()
224 return mActionReadSignalV2;
228 * @copydoc Dali::AccessibilityManager::ActionReadNextSignal
230 AccessibilityActionSignalV2& ActionReadNextSignal()
232 return mActionReadNextSignalV2;
236 * @copydoc Dali::AccessibilityManager::ActionReadPreviousSignal
238 AccessibilityActionSignalV2& ActionReadPreviousSignal()
240 return mActionReadPreviousSignalV2;
244 * @copydoc Dali::AccessibilityManager::ActionUpSignal
246 AccessibilityActionSignalV2& ActionUpSignal()
248 return mActionUpSignalV2;
252 * @copydoc Dali::AccessibilityManager::ActionDownSignal
254 AccessibilityActionSignalV2& ActionDownSignal()
256 return mActionDownSignalV2;
260 * @copydoc Dali::AccessibilityManager::ActionClearFocusSignal
262 AccessibilityActionSignalV2& ActionClearFocusSignal()
264 return mActionClearFocusSignalV2;
268 * @copydoc Dali::AccessibilityManager::ActionBackSignal
270 AccessibilityActionSignalV2& ActionBackSignal()
272 return mActionBackSignalV2;
276 * @copydoc Dali::AccessibilityManager::ActionScrollSignal
278 AccessibilityActionScrollSignalV2& ActionScrollSignal()
280 return mActionScrollSignalV2;
290 virtual ~AccessibilityManager();
293 AccessibilityManager( const AccessibilityManager& );
294 AccessibilityManager& operator=( AccessibilityManager& );
298 Dali::Integration::TouchEventCombiner mCombiner; ///< Combines multi-touch events.
300 bool mIsEnabled; ///< enable/disable the accessibility action
301 Vector2 mReadPosition; ///< ActionRead position
303 AccessibilityActionHandler* mActionHandler; ///< The pointer of accessibility action handler
305 AccessibilityGestureDetectorPtr mAccessibilityGestureDetector; ///< The accessibility gesture detector
307 Indicator* mIndicator; ///< The indicator
308 bool mIndicatorFocused; ///< Whether the Indicator is focused
310 AccessibilityActionSignalV2 mStatusChangedSignalV2;
311 AccessibilityActionSignalV2 mActionNextSignalV2;
312 AccessibilityActionSignalV2 mActionPreviousSignalV2;
313 AccessibilityActionSignalV2 mActionActivateSignalV2;
314 AccessibilityActionSignalV2 mActionOverSignalV2;
315 AccessibilityActionSignalV2 mActionReadSignalV2;
316 AccessibilityActionSignalV2 mActionReadNextSignalV2;
317 AccessibilityActionSignalV2 mActionReadPreviousSignalV2;
318 AccessibilityActionSignalV2 mActionUpSignalV2;
319 AccessibilityActionSignalV2 mActionDownSignalV2;
320 AccessibilityActionSignalV2 mActionClearFocusSignalV2;
321 AccessibilityActionSignalV2 mActionBackSignalV2;
322 AccessibilityActionScrollSignalV2 mActionScrollSignalV2;
326 // Helpers for public-api forwarding methods
328 inline static Internal::Adaptor::AccessibilityManager& GetImplementation(Dali::AccessibilityManager& manager)
330 DALI_ASSERT_ALWAYS( manager && "AccessibilityManager handle is empty" );
332 BaseObject& handle = manager.GetBaseObject();
334 return static_cast<Internal::Adaptor::AccessibilityManager&>(handle);
337 inline static const Internal::Adaptor::AccessibilityManager& GetImplementation(const Dali::AccessibilityManager& manager)
339 DALI_ASSERT_ALWAYS( manager && "AccessibilityManager handle is empty" );
341 const BaseObject& handle = manager.GetBaseObject();
343 return static_cast<const Internal::Adaptor::AccessibilityManager&>(handle);
348 } // namespace Adaptor
350 } // namespace Internal
354 #endif // __DALI_INTERNAL_ACCESSIBILITY_MANAGER_H__