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-interface.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);
100 * @brief Set the Indicator
101 * @param[in] Indiciator interface
103 void SetIndicator( IndicatorInterface* indicator );
106 * @copydoc Dali::AccessibilityAdaptor::HandleActionNextEvent()
108 bool HandleActionNextEvent(bool allowEndFeedback = true);
111 * @copydoc Dali::AccessibilityAdaptor::HandleActionPreviousEvent()
113 bool HandleActionPreviousEvent(bool allowEndFeedback = true);
116 * @copydoc Dali::AccessibilityAdaptor::HandleActionActivateEvent()
118 bool HandleActionActivateEvent();
121 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadEvent()
123 bool HandleActionReadEvent(unsigned int x, unsigned int y, bool allowReadAgain);
126 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadNextEvent()
128 bool HandleActionReadNextEvent(bool allowEndFeedback = true);
131 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadPreviousEvent()
133 bool HandleActionReadPreviousEvent(bool allowEndFeedback = true);
136 * @copydoc Dali::AccessibilityAdaptor::HandleActionUpEvent()
138 bool HandleActionUpEvent();
141 * @copydoc Dali::AccessibilityAdaptor::HandleActionDownEvent()
143 bool HandleActionDownEvent();
146 * @copydoc Dali::AccessibilityAdaptor::HandleActionClearFocusEvent()
148 bool HandleActionClearFocusEvent();
151 * @copydoc Dali::AccessibilityAdaptor::HandleActionScrollEvent()
153 bool HandleActionScrollEvent(const TouchPoint& point, unsigned long timeStamp);
156 * @copydoc Dali::AccessibilityAdaptor::HandleActionTouchEvent()
158 bool HandleActionTouchEvent(const TouchPoint& point, unsigned long timeStamp);
161 * @copydoc Dali::AccessibilityAdaptor::HandleActionBackEvent()
163 bool HandleActionBackEvent();
166 * @copydoc Dali::AccessibilityAdaptor::HandleActionEnableEvent()
168 void HandleActionEnableEvent();
171 * @copydoc Dali::AccessibilityAdaptor::HandleActionDisableEvent()
173 void HandleActionDisableEvent();
176 * @copydoc Dali::AccessibilityAdaptor::HandleActionScrollUpEvent()
178 bool HandleActionScrollUpEvent();
181 * @copydoc Dali::AccessibilityAdaptor::HandleActionScrollDownEvent()
183 bool HandleActionScrollDownEvent();
186 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageLeftEvent()
188 bool HandleActionPageLeftEvent();
191 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageRightEvent()
193 bool HandleActionPageRightEvent();
196 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageUpEvent()
198 bool HandleActionPageUpEvent();
201 * @copydoc Dali::AccessibilityAdaptor::HandleActionPageDownEvent()
203 bool HandleActionPageDownEvent();
206 * @copydoc Dali::AccessibilityAdaptor::HandleActionMoveToFirstEvent()
208 bool HandleActionMoveToFirstEvent();
211 * @copydoc Dali::AccessibilityAdaptor::HandleActionMoveToLastEvent()
213 bool HandleActionMoveToLastEvent();
216 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadFromTopEvent()
218 bool HandleActionReadFromTopEvent();
221 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadFromNextEvent()
223 bool HandleActionReadFromNextEvent();
226 * @copydoc Dali::AccessibilityAdaptor::HandleActionZoomEvent()
228 bool HandleActionZoomEvent();
231 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadIndicatorInformationEvent()
233 bool HandleActionReadIndicatorInformationEvent();
236 * @copydoc Dali::AccessibilityAdaptor::HandleActionReadPauseResumeEvent()
238 bool HandleActionReadPauseResumeEvent();
241 * @copydoc Dali::AccessibilityAdaptor::HandleActionStartStopEvent()
243 bool HandleActionStartStopEvent();
252 virtual ~AccessibilityAdaptor();
255 AccessibilityAdaptor( const AccessibilityAdaptor& );
256 AccessibilityAdaptor& operator=( AccessibilityAdaptor& );
260 Dali::Integration::TouchEventCombiner mCombiner; ///< Combines multi-touch events.
262 bool mIsEnabled; ///< enable/disable the accessibility action
263 Vector2 mReadPosition; ///< ActionRead position
265 AccessibilityActionHandler* mActionHandler; ///< The pointer of accessibility action handler
267 AccessibilityGestureDetectorPtr mAccessibilityGestureDetector; ///< The accessibility gesture detector
269 IndicatorInterface* mIndicator; ///< The indicator
270 bool mIndicatorFocused; ///< Whether the Indicator is focused
274 // Helpers for public-api forwarding methods
276 inline static Internal::Adaptor::AccessibilityAdaptor& GetImplementation(Dali::AccessibilityAdaptor& adaptor)
278 DALI_ASSERT_ALWAYS( adaptor && "AccessibilityAdaptor handle is empty" );
280 BaseObject& handle = adaptor.GetBaseObject();
282 return static_cast<Internal::Adaptor::AccessibilityAdaptor&>(handle);
285 inline static const Internal::Adaptor::AccessibilityAdaptor& GetImplementation(const Dali::AccessibilityAdaptor& adaptor)
287 DALI_ASSERT_ALWAYS( adaptor && "AccessibilityAdaptor handle is empty" );
289 const BaseObject& handle = adaptor.GetBaseObject();
291 return static_cast<const Internal::Adaptor::AccessibilityAdaptor&>(handle);
296 } // namespace Adaptor
298 } // namespace Internal
302 #endif // __DALI_INTERNAL_ACCESSIBILITY_ADAPTOR_H__