1 #ifndef DALI_TOOLKIT_INTERNAL_ACCESSIBILITY_MANAGER_H
2 #define DALI_TOOLKIT_INTERNAL_ACCESSIBILITY_MANAGER_H
5 * Copyright (c) 2021 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.
22 #include <dali/public-api/object/base-object.h>
27 #include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
35 class AccessibilityManager;
38 * @copydoc Toolkit::AccessibilityManager
40 class AccessibilityManager : public Dali::BaseObject, public Dali::ConnectionTracker
43 typedef Dali::Toolkit::AccessibilityManager::AccessibilityActionSignalType AccessibilityActionSignalType;
44 typedef Dali::Toolkit::AccessibilityManager::AccessibilityActionScrollSignalType AccessibilityActionScrollSignalType;
47 * Construct a new AccessibilityManager.
49 AccessibilityManager();
52 * @copydoc Toolkit::AccessibilityManager::SetAccessibilityAttribute
54 void SetAccessibilityAttribute(Actor actor, Toolkit::AccessibilityManager::AccessibilityAttribute type, const std::string& text);
57 * @copydoc Toolkit::AccessibilityManager::GetAccessibilityAttribute
59 std::string GetAccessibilityAttribute(Actor actor, Toolkit::AccessibilityManager::AccessibilityAttribute type) const;
62 * @copydoc Toolkit::AccessibilityManager::SetFocusOrder
64 void SetFocusOrder(Actor actor, const unsigned int order);
67 * @copydoc Toolkit::AccessibilityManager::GetFocusOrder
69 unsigned int GetFocusOrder(Actor actor) const;
72 * @copydoc Toolkit::AccessibilityManager::GenerateNewFocusOrder
74 unsigned int GenerateNewFocusOrder() const;
77 * @copydoc Toolkit::AccessibilityManager::GetActorByFocusOrder
79 Actor GetActorByFocusOrder(const unsigned int order);
82 * @copydoc Toolkit::AccessibilityManager::SetCurrentFocusActor
84 bool SetCurrentFocusActor(Actor actor);
87 * @copydoc Toolkit::AccessibilityManager::GetCurrentFocusActor
89 Actor GetCurrentFocusActor();
92 * @copydoc Toolkit::AccessibilityManager::GetCurrentFocusGroup
94 Actor GetCurrentFocusGroup();
97 * @copydoc Toolkit::AccessibilityManager::GetCurrentFocusOrder
99 unsigned int GetCurrentFocusOrder();
102 * @copydoc Toolkit::AccessibilityManager::MoveFocusForward
104 bool MoveFocusForward();
107 * @copydoc Toolkit::AccessibilityManager::MoveFocusBackward
109 bool MoveFocusBackward();
112 * @copydoc Toolkit::AccessibilityManager::ClearFocus
117 * @copydoc Toolkit::AccessibilityManager::Reset
122 * @copydoc Toolkit::AccessibilityManager::SetFocusGroup
124 void SetFocusGroup(Actor actor, bool isFocusGroup);
127 * @copydoc Toolkit::AccessibilityManager::IsFocusGroup
129 bool IsFocusGroup(Actor actor) const;
132 * @copydoc Toolkit::AccessibilityManager::SetGroupMode
134 void SetGroupMode(bool enabled);
137 * @copydoc Toolkit::AccessibilityManager::GetGroupMode
139 bool GetGroupMode() const;
142 * @copydoc Toolkit::AccessibilityManager::GetFocusGroup
144 Actor GetFocusGroup(Actor actor);
147 * @copydoc Toolkit::AccessibilityManager::GetReadPosition
149 Vector2 GetReadPosition() const;
152 * @copydoc Toolkit::AccessibilityManager::SetWrapMode
154 void SetWrapMode(bool wrapped);
157 * @copydoc Toolkit::AccessibilityManager::GetWrapMode
159 bool GetWrapMode() const;
162 * @copydoc Toolkit::AccessibilityManager::SetFocusIndicatorActor
164 void SetFocusIndicatorActor(Actor indicator);
167 * @copydoc Toolkit::AccessibilityManager::GetFocusIndicatorActor
169 Actor GetFocusIndicatorActor();
173 * @copydoc Toolkit::AccessibilityManager::FocusChangedSignal()
175 Toolkit::AccessibilityManager::FocusChangedSignalType& FocusChangedSignal();
178 * @copydoc Toolkit::AccessibilityManager::FocusOvershotSignal()
180 Toolkit::AccessibilityManager::FocusOvershotSignalType& FocusOvershotSignal();
183 * @copydoc Toolkit::AccessibilityManager::FocusedActorActivatedSignal()
185 Toolkit::AccessibilityManager::FocusedActorActivatedSignalType& FocusedActorActivatedSignal();
189 * @copydoc Dali::Toolkit::AccessibilityManager::StatusChangedSignal
191 AccessibilityActionSignalType& StatusChangedSignal()
193 return mStatusChangedSignal;
197 * @copydoc Dali::Toolkit::AccessibilityManager::AccessibilityAdaptor::ActionNextSignal
199 AccessibilityActionSignalType& ActionNextSignal()
201 return mActionNextSignal;
205 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPreviousSignal
207 AccessibilityActionSignalType& ActionPreviousSignal()
209 return mActionPreviousSignal;
213 * @copydoc Dali::Toolkit::AccessibilityManager::ActionActivateSignal
215 AccessibilityActionSignalType& ActionActivateSignal()
217 return mActionActivateSignal;
221 * @copydoc Dali::Toolkit::AccessibilityManager::ActionOverSignal
223 AccessibilityActionSignalType& ActionOverSignal()
225 return mActionOverSignal;
229 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadSignal
231 AccessibilityActionSignalType& ActionReadSignal()
233 return mActionReadSignal;
237 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadNextSignal
239 AccessibilityActionSignalType& ActionReadNextSignal()
241 return mActionReadNextSignal;
245 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadPreviousSignal
247 AccessibilityActionSignalType& ActionReadPreviousSignal()
249 return mActionReadPreviousSignal;
253 * @copydoc Dali::Toolkit::AccessibilityManager::ActionUpSignal
255 AccessibilityActionSignalType& ActionUpSignal()
257 return mActionUpSignal;
261 * @copydoc Dali::Toolkit::AccessibilityManager::ActionDownSignal
263 AccessibilityActionSignalType& ActionDownSignal()
265 return mActionDownSignal;
269 * @copydoc Dali::Toolkit::AccessibilityManager::ActionClearFocusSignal
271 AccessibilityActionSignalType& ActionClearFocusSignal()
273 return mActionClearFocusSignal;
277 * @copydoc Dali::Toolkit::AccessibilityManager::ActionBackSignal
279 AccessibilityActionSignalType& ActionBackSignal()
281 return mActionBackSignal;
285 * @copydoc Dali::Toolkit::AccessibilityManager::ActionScrollUpSignal
287 AccessibilityActionSignalType& ActionScrollUpSignal()
289 return mActionScrollUpSignal;
293 * @copydoc Dali::Toolkit::AccessibilityManager::ActionScrollDownSignal
295 AccessibilityActionSignalType& ActionScrollDownSignal()
297 return mActionScrollDownSignal;
301 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageLeftSignal
303 AccessibilityActionSignalType& ActionPageLeftSignal()
305 return mActionPageLeftSignal;
309 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageRightSignal
311 AccessibilityActionSignalType& ActionPageRightSignal()
313 return mActionPageRightSignal;
317 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageUpSignal
319 AccessibilityActionSignalType& ActionPageUpSignal()
321 return mActionPageUpSignal;
325 * @copydoc Dali::Toolkit::AccessibilityManager::ActionPageDownSignal
327 AccessibilityActionSignalType& ActionPageDownSignal()
329 return mActionPageDownSignal;
333 * @copydoc Dali::Toolkit::AccessibilityManager::ActionMoveToFirstSignal
335 AccessibilityActionSignalType& ActionMoveToFirstSignal()
337 return mActionMoveToFirstSignal;
341 * @copydoc Dali::Toolkit::AccessibilityManager::ActionMoveToLastSignal
343 AccessibilityActionSignalType& ActionMoveToLastSignal()
345 return mActionMoveToLastSignal;
349 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadFromTopSignal
351 AccessibilityActionSignalType& ActionReadFromTopSignal()
353 return mActionReadFromTopSignal;
357 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadFromNextSignal
359 AccessibilityActionSignalType& ActionReadFromNextSignal()
361 return mActionReadFromNextSignal;
365 * @copydoc Dali::Toolkit::AccessibilityManager::ActionZoomSignal
367 AccessibilityActionSignalType& ActionZoomSignal()
369 return mActionZoomSignal;
373 * @copydoc Dali::Toolkit::AccessibilityManager::ActionReadPauseResumeSignal
375 AccessibilityActionSignalType& ActionReadPauseResumeSignal()
377 return mActionReadPauseResumeSignal;
381 * @copydoc Dali::Toolkit::AccessibilityManager::ActionStartStopSignal
383 AccessibilityActionSignalType& ActionStartStopSignal()
385 return mActionStartStopSignal;
389 * @copydoc Dali::Toolkit::AccessibilityManager::ActionScrollSignal
391 AccessibilityActionScrollSignalType& ActionScrollSignal()
393 return mActionScrollSignal;
400 virtual ~AccessibilityManager();
404 AccessibilityManager(const AccessibilityManager&);
406 AccessibilityManager& operator=(const AccessibilityManager& rhs);
409 std::vector<Actor> mFocusOrder;
411 Toolkit::AccessibilityManager::FocusChangedSignalType mFocusChangedSignal; ///< The signal to notify the focus change
412 Toolkit::AccessibilityManager::FocusOvershotSignalType mFocusOvershotSignal; ///< The signal to notify the focus overshooted
413 Toolkit::AccessibilityManager::FocusedActorActivatedSignalType mFocusedActorActivatedSignal; ///< The signal to notify the activation of focused actor
416 AccessibilityActionSignalType mStatusChangedSignal;
417 AccessibilityActionSignalType mActionNextSignal;
418 AccessibilityActionSignalType mActionPreviousSignal;
419 AccessibilityActionSignalType mActionActivateSignal;
420 AccessibilityActionSignalType mActionOverSignal;
421 AccessibilityActionSignalType mActionReadSignal;
422 AccessibilityActionSignalType mActionReadNextSignal;
423 AccessibilityActionSignalType mActionReadPreviousSignal;
424 AccessibilityActionSignalType mActionUpSignal;
425 AccessibilityActionSignalType mActionDownSignal;
426 AccessibilityActionSignalType mActionClearFocusSignal;
427 AccessibilityActionSignalType mActionBackSignal;
428 AccessibilityActionSignalType mActionScrollUpSignal;
429 AccessibilityActionSignalType mActionScrollDownSignal;
430 AccessibilityActionSignalType mActionPageLeftSignal;
431 AccessibilityActionSignalType mActionPageRightSignal;
432 AccessibilityActionSignalType mActionPageUpSignal;
433 AccessibilityActionSignalType mActionPageDownSignal;
434 AccessibilityActionSignalType mActionMoveToFirstSignal;
435 AccessibilityActionSignalType mActionMoveToLastSignal;
436 AccessibilityActionSignalType mActionReadFromTopSignal;
437 AccessibilityActionSignalType mActionReadFromNextSignal;
438 AccessibilityActionSignalType mActionZoomSignal;
439 AccessibilityActionSignalType mActionReadIndicatorInformationSignal;
440 AccessibilityActionSignalType mActionReadPauseResumeSignal;
441 AccessibilityActionSignalType mActionStartStopSignal;
442 AccessibilityActionScrollSignalType mActionScrollSignal;
445 } // namespace Internal
447 inline Internal::AccessibilityManager& GetImpl(Dali::Toolkit::AccessibilityManager& obj)
449 DALI_ASSERT_ALWAYS(obj);
451 Dali::BaseObject& handle = obj.GetBaseObject();
453 return static_cast<Internal::AccessibilityManager&>(handle);
456 inline const Internal::AccessibilityManager& GetImpl(const Dali::Toolkit::AccessibilityManager& obj)
458 DALI_ASSERT_ALWAYS(obj);
460 const Dali::BaseObject& handle = obj.GetBaseObject();
462 return static_cast<const Internal::AccessibilityManager&>(handle);
465 } // namespace Toolkit
469 #endif // DALI_TOOLKIT_INTERNAL_ACCESSIBILITY_MANAGER_H