1 #ifndef __DALI_INTERNAL_ACCESSIBILITY_ADAPTOR_H__
2 #define __DALI_INTERNAL_ACCESSIBILITY_ADAPTOR_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-adaptor.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 AccessibilityAdaptor : public Dali::BaseObject
57 AccessibilityAdaptor();
60 * Get an instance of the AccessibilityAdaptor.
61 * @return The instance of the AccessibilityAdaptor.
63 static Dali::AccessibilityAdaptor Get();
68 * Turn on accessibility action
69 * This method should be called by vconf callback
71 void EnableAccessibility();
74 * Turn off accessibility action
75 * This method should be called by vconf callback
77 void DisableAccessibility();
80 * @copydoc Dali::AccessibilityAdaptor::IsEnabled()
82 bool IsEnabled() const;
85 * @copydoc Dali::AccessibilityAdaptor::GetReadPosition() const
87 Vector2 GetReadPosition() const;
90 * @copydoc Dali::AccessibilityAdaptor::SetActionHandler()
92 void SetActionHandler(AccessibilityActionHandler& handler);
95 * @copydoc Dali::AccessibilityAdaptor::SetGestureHandler()
97 void SetGestureHandler(AccessibilityGestureHandler& handler);
102 void SetIndicator(Indicator* indicator);
105 * @copydoc Dali::AccessibilityAdaptor::HandleActionNextEvent()
107 bool HandleActionNextEvent(bool allowEndFeedback = true);
110 * @copydoc Dali::AccessibilityAdaptor::HandleActionPreviousEvent()
112 bool HandleActionPreviousEvent(bool allowEndFeedback = true);
115 * @copydoc Dali::AccessibilityAdaptor::HandleActionActivateEvent()
117 bool HandleActionActivateEvent();
120 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadEvent()
122 bool HandleActionReadEvent(unsigned int x, unsigned int y, bool allowReadAgain);
125 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadNextEvent()
127 bool HandleActionReadNextEvent(bool allowEndFeedback = true);
130 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadPreviousEvent()
132 bool HandleActionReadPreviousEvent(bool allowEndFeedback = true);
135 * @copydoc Dali::AccessibilityAdaptor::HandleActionUpEvent()
137 bool HandleActionUpEvent();
140 * @copydoc Dali::AccessibilityAdaptor::HandleActionDownEvent()
142 bool HandleActionDownEvent();
145 * @copydoc Dali::AccessibilityAdaptor::HandleActionClearFocusEvent()
147 bool HandleActionClearFocusEvent();
150 * @copydoc Dali::AccessibilityAdaptor::HandleActionScrollEvent()
152 bool HandleActionScrollEvent(const TouchPoint& point, unsigned long timeStamp);
155 * @copydoc Dali::AccessibilityAdaptor::HandleActionTouchEvent()
157 bool HandleActionTouchEvent(const TouchPoint& point, unsigned long timeStamp);
160 * @copydoc Dali::AccessibilityAdaptor::HandleActionBackEvent()
162 bool HandleActionBackEvent();
165 * @copydoc Dali::AccessibilityAdaptor::HandleActionEnableEvent()
167 void HandleActionEnableEvent();
170 * @copydoc Dali::AccessibilityAdaptor::HandleActionDisableEvent()
172 void HandleActionDisableEvent();
175 * @copydoc Dali::AccessibilityAdaptor::HandleActionScrollUpEvent()
177 bool HandleActionScrollUpEvent();
180 * @copydoc Dali::AccessibilityAdaptor::HandleActionScrollDownEvent()
182 bool HandleActionScrollDownEvent();
185 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageLeftEvent()
187 bool HandleActionPageLeftEvent();
190 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageRightEvent()
192 bool HandleActionPageRightEvent();
195 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageUpEvent()
197 bool HandleActionPageUpEvent();
200 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageDownEvent()
202 bool HandleActionPageDownEvent();
205 * @copydoc Dali::AccessibilityAdaptor::HandleActionMoveToFirstEvent()
207 bool HandleActionMoveToFirstEvent();
210 * @copydoc Dali::AccessibilityAdaptor::HandleActionMoveToLastEvent()
212 bool HandleActionMoveToLastEvent();
215 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadFromTopEvent()
217 bool HandleActionReadFromTopEvent();
220 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadFromNextEvent()
222 bool HandleActionReadFromNextEvent();
225 * @copydoc Dali::AccessibilityAdaptor::HandleActionZoomEvent()
227 bool HandleActionZoomEvent();
230 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadIndicatorInformationEvent()
232 bool HandleActionReadIndicatorInformationEvent();
235 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadPauseResumeEvent()
237 bool HandleActionReadPauseResumeEvent();
240 * @copydoc Dali::AccessibilityAdaptor::HandleActionStartStopEvent()
242 bool HandleActionStartStopEvent();
251 virtual ~AccessibilityAdaptor();
254 AccessibilityAdaptor( const AccessibilityAdaptor& );
255 AccessibilityAdaptor& operator=( AccessibilityAdaptor& );
259 Dali::Integration::TouchEventCombiner mCombiner; ///< Combines multi-touch events.
261 bool mIsEnabled; ///< enable/disable the accessibility action
262 Vector2 mReadPosition; ///< ActionRead position
264 AccessibilityActionHandler* mActionHandler; ///< The pointer of accessibility action handler
266 AccessibilityGestureDetectorPtr mAccessibilityGestureDetector; ///< The accessibility gesture detector
268 Indicator* mIndicator; ///< The indicator
269 bool mIndicatorFocused; ///< Whether the Indicator is focused
273 // Helpers for public-api forwarding methods
275 inline static Internal::Adaptor::AccessibilityAdaptor& GetImplementation(Dali::AccessibilityAdaptor& adaptor)
277 DALI_ASSERT_ALWAYS( adaptor && "AccessibilityAdaptor handle is empty" );
279 BaseObject& handle = adaptor.GetBaseObject();
281 return static_cast<Internal::Adaptor::AccessibilityAdaptor&>(handle);
284 inline static const Internal::Adaptor::AccessibilityAdaptor& GetImplementation(const Dali::AccessibilityAdaptor& adaptor)
286 DALI_ASSERT_ALWAYS( adaptor && "AccessibilityAdaptor handle is empty" );
288 const BaseObject& handle = adaptor.GetBaseObject();
290 return static_cast<const Internal::Adaptor::AccessibilityAdaptor&>(handle);
295 } // namespace Adaptor
297 } // namespace Internal
301 #endif // __DALI_INTERNAL_ACCESSIBILITY_ADAPTOR_H__