1 #ifndef DALI_TOOLKIT_INTERNAL_ACCESSIBILITY_MANAGER_H
2 #define DALI_TOOLKIT_INTERNAL_ACCESSIBILITY_MANAGER_H
5 * Copyright (c) 2020 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>
27 #include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
38 class AccessibilityManager;
41 * @copydoc Toolkit::AccessibilityManager
43 class AccessibilityManager : public Dali::BaseObject, public Dali::ConnectionTracker
47 typedef Dali::Toolkit::AccessibilityManager::AccessibilityActionSignalType AccessibilityActionSignalType;
48 typedef Dali::Toolkit::AccessibilityManager::AccessibilityActionScrollSignalType AccessibilityActionScrollSignalType;
51 * Construct a new AccessibilityManager.
53 AccessibilityManager();
56 * @copydoc Toolkit::AccessibilityManager::SetAccessibilityAttribute
58 void SetAccessibilityAttribute(Actor actor, Toolkit::AccessibilityManager::AccessibilityAttribute type, const std::string& text);
61 * @copydoc Toolkit::AccessibilityManager::GetAccessibilityAttribute
63 std::string GetAccessibilityAttribute(Actor actor, Toolkit::AccessibilityManager::AccessibilityAttribute type) const;
66 * @copydoc Toolkit::AccessibilityManager::SetFocusOrder
68 void SetFocusOrder(Actor actor, const unsigned int order);
71 * @copydoc Toolkit::AccessibilityManager::GetFocusOrder
73 unsigned int GetFocusOrder(Actor actor) const;
76 * @copydoc Toolkit::AccessibilityManager::GenerateNewFocusOrder
78 unsigned int GenerateNewFocusOrder() const;
81 * @copydoc Toolkit::AccessibilityManager::GetActorByFocusOrder
83 Actor GetActorByFocusOrder(const unsigned int order);
86 * @copydoc Toolkit::AccessibilityManager::SetCurrentFocusActor
88 bool SetCurrentFocusActor(Actor actor);
91 * @copydoc Toolkit::AccessibilityManager::GetCurrentFocusActor
93 Actor GetCurrentFocusActor();
96 * @copydoc Toolkit::AccessibilityManager::GetCurrentFocusGroup
98 Actor GetCurrentFocusGroup();
101 * @copydoc Toolkit::AccessibilityManager::GetCurrentFocusOrder
103 unsigned int GetCurrentFocusOrder();
106 * @copydoc Toolkit::AccessibilityManager::MoveFocusForward
108 bool MoveFocusForward();
111 * @copydoc Toolkit::AccessibilityManager::MoveFocusBackward
113 bool MoveFocusBackward();
116 * @copydoc Toolkit::AccessibilityManager::ClearFocus
121 * @copydoc Toolkit::AccessibilityManager::Reset
126 * @copydoc Toolkit::AccessibilityManager::SetFocusGroup
128 void SetFocusGroup(Actor actor, bool isFocusGroup);
131 * @copydoc Toolkit::AccessibilityManager::IsFocusGroup
133 bool IsFocusGroup(Actor actor) const;
136 * @copydoc Toolkit::AccessibilityManager::SetGroupMode
138 void SetGroupMode(bool enabled);
141 * @copydoc Toolkit::AccessibilityManager::GetGroupMode
143 bool GetGroupMode() const;
146 * @copydoc Toolkit::AccessibilityManager::GetFocusGroup
148 Actor GetFocusGroup(Actor actor);
151 * @copydoc Toolkit::AccessibilityManager::GetReadPosition
153 Vector2 GetReadPosition() const;
156 * @copydoc Toolkit::AccessibilityManager::SetWrapMode
158 void SetWrapMode(bool wrapped);
161 * @copydoc Toolkit::AccessibilityManager::GetWrapMode
163 bool GetWrapMode() const;
166 * @copydoc Toolkit::AccessibilityManager::SetFocusIndicatorActor
168 void SetFocusIndicatorActor(Actor indicator);
171 * @copydoc Toolkit::AccessibilityManager::GetFocusIndicatorActor
173 Actor GetFocusIndicatorActor();
178 * @copydoc Toolkit::AccessibilityManager::FocusChangedSignal()
180 Toolkit::AccessibilityManager::FocusChangedSignalType& FocusChangedSignal();
183 * @copydoc Toolkit::AccessibilityManager::FocusOvershotSignal()
185 Toolkit::AccessibilityManager::FocusOvershotSignalType& FocusOvershotSignal();
188 * @copydoc Toolkit::AccessibilityManager::FocusedActorActivatedSignal()
190 Toolkit::AccessibilityManager::FocusedActorActivatedSignalType& FocusedActorActivatedSignal();
195 * @copydoc Dali::Toolkit::AccessibilityManager::StatusChangedSignal
197 AccessibilityActionSignalType& StatusChangedSignal()
199 return mStatusChangedSignal;
203 * @copydoc Dali::Toolkit::AccessibilityManager::AccessibilityAdaptor::ActionNextSignal
205 AccessibilityActionSignalType& ActionNextSignal()
207 return mActionNextSignal;
211 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPreviousSignal
213 AccessibilityActionSignalType& ActionPreviousSignal()
215 return mActionPreviousSignal;
219 * @copydoc Dali::Toolkit::AccessibilityManager::ActionActivateSignal
221 AccessibilityActionSignalType& ActionActivateSignal()
223 return mActionActivateSignal;
227 * @copydoc Dali::Toolkit::AccessibilityManager::ActionOverSignal
229 AccessibilityActionSignalType& ActionOverSignal()
231 return mActionOverSignal;
235 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadSignal
237 AccessibilityActionSignalType& ActionReadSignal()
239 return mActionReadSignal;
243 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadNextSignal
245 AccessibilityActionSignalType& ActionReadNextSignal()
247 return mActionReadNextSignal;
251 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadPreviousSignal
253 AccessibilityActionSignalType& ActionReadPreviousSignal()
255 return mActionReadPreviousSignal;
259 * @copydoc Dali::Toolkit::AccessibilityManager::ActionUpSignal
261 AccessibilityActionSignalType& ActionUpSignal()
263 return mActionUpSignal;
267 * @copydoc Dali::Toolkit::AccessibilityManager::ActionDownSignal
269 AccessibilityActionSignalType& ActionDownSignal()
271 return mActionDownSignal;
275 * @copydoc Dali::Toolkit::AccessibilityManager::ActionClearFocusSignal
277 AccessibilityActionSignalType& ActionClearFocusSignal()
279 return mActionClearFocusSignal;
283 * @copydoc Dali::Toolkit::AccessibilityManager::ActionBackSignal
285 AccessibilityActionSignalType& ActionBackSignal()
287 return mActionBackSignal;
291 * @copydoc Dali::Toolkit::AccessibilityManager::ActionScrollUpSignal
293 AccessibilityActionSignalType& ActionScrollUpSignal()
295 return mActionScrollUpSignal;
299 * @copydoc Dali::Toolkit::AccessibilityManager::ActionScrollDownSignal
301 AccessibilityActionSignalType& ActionScrollDownSignal()
303 return mActionScrollDownSignal;
307 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageLeftSignal
309 AccessibilityActionSignalType& ActionPageLeftSignal()
311 return mActionPageLeftSignal;
315 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageRightSignal
317 AccessibilityActionSignalType& ActionPageRightSignal()
319 return mActionPageRightSignal;
323 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageUpSignal
325 AccessibilityActionSignalType& ActionPageUpSignal()
327 return mActionPageUpSignal;
331 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageDownSignal
333 AccessibilityActionSignalType& ActionPageDownSignal()
335 return mActionPageDownSignal;
339 * @copydoc Dali::Toolkit::AccessibilityManager::ActionMoveToFirstSignal
341 AccessibilityActionSignalType& ActionMoveToFirstSignal()
343 return mActionMoveToFirstSignal;
347 * @copydoc Dali::Toolkit::AccessibilityManager::ActionMoveToLastSignal
349 AccessibilityActionSignalType& ActionMoveToLastSignal()
351 return mActionMoveToLastSignal;
355 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadFromTopSignal
357 AccessibilityActionSignalType& ActionReadFromTopSignal()
359 return mActionReadFromTopSignal;
363 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadFromNextSignal
365 AccessibilityActionSignalType& ActionReadFromNextSignal()
367 return mActionReadFromNextSignal;
371 * @copydoc Dali::Toolkit::AccessibilityManager::ActionZoomSignal
373 AccessibilityActionSignalType& ActionZoomSignal()
375 return mActionZoomSignal;
379 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadPauseResumeSignal
381 AccessibilityActionSignalType& ActionReadPauseResumeSignal()
383 return mActionReadPauseResumeSignal;
387 * @copydoc Dali::Toolkit::AccessibilityManager::ActionStartStopSignal
389 AccessibilityActionSignalType& ActionStartStopSignal()
391 return mActionStartStopSignal;
395 * @copydoc Dali::Toolkit::AccessibilityManager::ActionScrollSignal
397 AccessibilityActionScrollSignalType& ActionScrollSignal()
399 return mActionScrollSignal;
407 virtual ~AccessibilityManager();
412 AccessibilityManager(const AccessibilityManager&);
414 AccessibilityManager& operator=(const AccessibilityManager& rhs);
418 std::vector<Actor> mFocusOrder;
420 Toolkit::AccessibilityManager::FocusChangedSignalType mFocusChangedSignal; ///< The signal to notify the focus change
421 Toolkit::AccessibilityManager::FocusOvershotSignalType mFocusOvershotSignal; ///< The signal to notify the focus overshooted
422 Toolkit::AccessibilityManager::FocusedActorActivatedSignalType mFocusedActorActivatedSignal; ///< The signal to notify the activation of focused actor
425 AccessibilityActionSignalType mStatusChangedSignal;
426 AccessibilityActionSignalType mActionNextSignal;
427 AccessibilityActionSignalType mActionPreviousSignal;
428 AccessibilityActionSignalType mActionActivateSignal;
429 AccessibilityActionSignalType mActionOverSignal;
430 AccessibilityActionSignalType mActionReadSignal;
431 AccessibilityActionSignalType mActionReadNextSignal;
432 AccessibilityActionSignalType mActionReadPreviousSignal;
433 AccessibilityActionSignalType mActionUpSignal;
434 AccessibilityActionSignalType mActionDownSignal;
435 AccessibilityActionSignalType mActionClearFocusSignal;
436 AccessibilityActionSignalType mActionBackSignal;
437 AccessibilityActionSignalType mActionScrollUpSignal;
438 AccessibilityActionSignalType mActionScrollDownSignal;
439 AccessibilityActionSignalType mActionPageLeftSignal;
440 AccessibilityActionSignalType mActionPageRightSignal;
441 AccessibilityActionSignalType mActionPageUpSignal;
442 AccessibilityActionSignalType mActionPageDownSignal;
443 AccessibilityActionSignalType mActionMoveToFirstSignal;
444 AccessibilityActionSignalType mActionMoveToLastSignal;
445 AccessibilityActionSignalType mActionReadFromTopSignal;
446 AccessibilityActionSignalType mActionReadFromNextSignal;
447 AccessibilityActionSignalType mActionZoomSignal;
448 AccessibilityActionSignalType mActionReadIndicatorInformationSignal;
449 AccessibilityActionSignalType mActionReadPauseResumeSignal;
450 AccessibilityActionSignalType mActionStartStopSignal;
451 AccessibilityActionScrollSignalType mActionScrollSignal;
454 } // namespace Internal
456 inline Internal::AccessibilityManager& GetImpl(Dali::Toolkit::AccessibilityManager& obj)
458 DALI_ASSERT_ALWAYS(obj);
460 Dali::BaseObject& handle = obj.GetBaseObject();
462 return static_cast<Internal::AccessibilityManager&>(handle);
465 inline const Internal::AccessibilityManager& GetImpl(const Dali::Toolkit::AccessibilityManager& obj)
467 DALI_ASSERT_ALWAYS(obj);
469 const Dali::BaseObject& handle = obj.GetBaseObject();
471 return static_cast<const Internal::AccessibilityManager&>(handle);
474 } // namespace Toolkit
478 #endif // DALI_TOOLKIT_INTERNAL_ACCESSIBILITY_MANAGER_H