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>
30 #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::AccessibilityActionSignalType AccessibilityActionSignalType;
53 typedef Dali::AccessibilityManager::AccessibilityActionScrollSignalType AccessibilityActionScrollSignalType;
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 AccessibilityActionSignalType& StatusChangedSignal()
184 return mStatusChangedSignal;
188 * @copydoc Dali::AccessibilityManager::ActionNextSignal
190 AccessibilityActionSignalType& ActionNextSignal()
192 return mActionNextSignal;
196 * @copydoc Dali::AccessibilityManager::ActionPreviousSignal
198 AccessibilityActionSignalType& ActionPreviousSignal()
200 return mActionPreviousSignal;
204 * @copydoc Dali::AccessibilityManager::ActionActivateSignal
206 AccessibilityActionSignalType& ActionActivateSignal()
208 return mActionActivateSignal;
212 * @copydoc Dali::AccessibilityManager::ActionOverSignal
214 AccessibilityActionSignalType& ActionOverSignal()
216 return mActionOverSignal;
220 * @copydoc Dali::AccessibilityManager::ActionReadSignal
222 AccessibilityActionSignalType& ActionReadSignal()
224 return mActionReadSignal;
228 * @copydoc Dali::AccessibilityManager::ActionReadNextSignal
230 AccessibilityActionSignalType& ActionReadNextSignal()
232 return mActionReadNextSignal;
236 * @copydoc Dali::AccessibilityManager::ActionReadPreviousSignal
238 AccessibilityActionSignalType& ActionReadPreviousSignal()
240 return mActionReadPreviousSignal;
244 * @copydoc Dali::AccessibilityManager::ActionUpSignal
246 AccessibilityActionSignalType& ActionUpSignal()
248 return mActionUpSignal;
252 * @copydoc Dali::AccessibilityManager::ActionDownSignal
254 AccessibilityActionSignalType& ActionDownSignal()
256 return mActionDownSignal;
260 * @copydoc Dali::AccessibilityManager::ActionClearFocusSignal
262 AccessibilityActionSignalType& ActionClearFocusSignal()
264 return mActionClearFocusSignal;
268 * @copydoc Dali::AccessibilityManager::ActionBackSignal
270 AccessibilityActionSignalType& ActionBackSignal()
272 return mActionBackSignal;
276 * @copydoc Dali::AccessibilityManager::ActionScrollSignal
278 AccessibilityActionScrollSignalType& ActionScrollSignal()
280 return mActionScrollSignal;
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 AccessibilityActionSignalType mStatusChangedSignal;
311 AccessibilityActionSignalType mActionNextSignal;
312 AccessibilityActionSignalType mActionPreviousSignal;
313 AccessibilityActionSignalType mActionActivateSignal;
314 AccessibilityActionSignalType mActionOverSignal;
315 AccessibilityActionSignalType mActionReadSignal;
316 AccessibilityActionSignalType mActionReadNextSignal;
317 AccessibilityActionSignalType mActionReadPreviousSignal;
318 AccessibilityActionSignalType mActionUpSignal;
319 AccessibilityActionSignalType mActionDownSignal;
320 AccessibilityActionSignalType mActionClearFocusSignal;
321 AccessibilityActionSignalType mActionBackSignal;
322 AccessibilityActionScrollSignalType mActionScrollSignal;
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__