2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
22 #include <dali/devel-api/common/singleton-service.h>
23 #include <dali/integration-api/debug.h>
26 #include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
32 AccessibilityManager::AccessibilityManager()
36 AccessibilityManager::~AccessibilityManager()
40 AccessibilityManager AccessibilityManager::Get()
42 AccessibilityManager manager;
44 // Check whether the accessibility manager is already created
45 SingletonService singletonService(SingletonService::Get());
48 Dali::BaseHandle handle = singletonService.GetSingleton(typeid(AccessibilityManager));
51 // If so, downcast the handle of singleton to focus manager
52 manager = AccessibilityManager(dynamic_cast<Internal::AccessibilityManager*>(handle.GetObjectPtr()));
57 // If not, create the accessibility manager and register it as a singleton
58 Internal::AccessibilityManager* internalManager = new Internal::AccessibilityManager();
59 manager = AccessibilityManager(internalManager);
60 singletonService.Register(typeid(manager), manager);
67 AccessibilityManager::AccessibilityManager(Internal::AccessibilityManager* impl)
72 void AccessibilityManager::SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text)
74 GetImpl(*this).SetAccessibilityAttribute(actor, type, text);
77 std::string AccessibilityManager::GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const
79 return GetImpl(*this).GetAccessibilityAttribute(actor, type);
82 void AccessibilityManager::SetFocusOrder(Actor actor, const unsigned int order)
84 GetImpl(*this).SetFocusOrder(actor, order);
87 unsigned int AccessibilityManager::GetFocusOrder(Actor actor) const
89 return GetImpl(*this).GetFocusOrder(actor);
92 unsigned int AccessibilityManager::GenerateNewFocusOrder() const
94 return GetImpl(*this).GenerateNewFocusOrder();
97 Actor AccessibilityManager::GetActorByFocusOrder(const unsigned int order)
99 return GetImpl(*this).GetActorByFocusOrder(order);
102 bool AccessibilityManager::SetCurrentFocusActor(Actor actor)
104 return GetImpl(*this).SetCurrentFocusActor(actor);
107 Actor AccessibilityManager::GetCurrentFocusActor()
109 return GetImpl(*this).GetCurrentFocusActor();
112 Actor AccessibilityManager::GetCurrentFocusGroup()
114 return GetImpl(*this).GetCurrentFocusGroup();
117 unsigned int AccessibilityManager::GetCurrentFocusOrder()
119 return GetImpl(*this).GetCurrentFocusOrder();
122 bool AccessibilityManager::MoveFocusForward()
124 return GetImpl(*this).MoveFocusForward();
127 bool AccessibilityManager::MoveFocusBackward()
129 return GetImpl(*this).MoveFocusBackward();
132 void AccessibilityManager::ClearFocus()
134 GetImpl(*this).ClearFocus();
137 void AccessibilityManager::Reset()
139 GetImpl(*this).Reset();
142 void AccessibilityManager::SetFocusGroup(Actor actor, bool isFocusGroup)
144 GetImpl(*this).SetFocusGroup(actor, isFocusGroup);
147 bool AccessibilityManager::IsFocusGroup(Actor actor) const
149 return GetImpl(*this).IsFocusGroup(actor);
152 void AccessibilityManager::SetGroupMode(bool enabled)
154 GetImpl(*this).SetGroupMode(enabled);
157 bool AccessibilityManager::GetGroupMode() const
159 return GetImpl(*this).GetGroupMode();
162 void AccessibilityManager::SetWrapMode(bool wrapped)
164 GetImpl(*this).SetWrapMode(wrapped);
167 bool AccessibilityManager::GetWrapMode() const
169 return GetImpl(*this).GetWrapMode();
172 void AccessibilityManager::SetFocusIndicatorActor(Actor indicator)
174 GetImpl(*this).SetFocusIndicatorActor(indicator);
177 Actor AccessibilityManager::GetFocusIndicatorActor()
179 return GetImpl(*this).GetFocusIndicatorActor();
182 Actor AccessibilityManager::GetFocusGroup(Actor actor)
184 return GetImpl(*this).GetFocusGroup(actor);
187 Vector2 AccessibilityManager::GetReadPosition() const
189 return GetImpl(*this).GetReadPosition();
192 AccessibilityManager::FocusChangedSignalType& AccessibilityManager::FocusChangedSignal()
194 return GetImpl(*this).FocusChangedSignal();
197 AccessibilityManager::FocusOvershotSignalType& AccessibilityManager::FocusOvershotSignal()
199 return GetImpl(*this).FocusOvershotSignal();
202 AccessibilityManager::FocusedActorActivatedSignalType& AccessibilityManager::FocusedActorActivatedSignal()
204 return GetImpl(*this).FocusedActorActivatedSignal();
207 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::StatusChangedSignal()
209 return GetImpl(*this).StatusChangedSignal();
212 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionNextSignal()
214 return GetImpl(*this).ActionNextSignal();
217 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPreviousSignal()
219 return GetImpl(*this).ActionPreviousSignal();
222 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionActivateSignal()
224 return GetImpl(*this).ActionActivateSignal();
227 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionOverSignal()
229 return GetImpl(*this).ActionOverSignal();
232 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadSignal()
234 return GetImpl(*this).ActionReadSignal();
237 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadNextSignal()
239 return GetImpl(*this).ActionReadNextSignal();
242 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPreviousSignal()
244 return GetImpl(*this).ActionReadPreviousSignal();
247 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionUpSignal()
249 return GetImpl(*this).ActionUpSignal();
252 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionDownSignal()
254 return GetImpl(*this).ActionDownSignal();
257 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionClearFocusSignal()
259 return GetImpl(*this).ActionClearFocusSignal();
262 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionBackSignal()
264 return GetImpl(*this).ActionBackSignal();
267 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollUpSignal()
269 return GetImpl(*this).ActionScrollUpSignal();
272 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollDownSignal()
274 return GetImpl(*this).ActionScrollDownSignal();
277 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageLeftSignal()
279 return GetImpl(*this).ActionPageLeftSignal();
282 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageRightSignal()
284 return GetImpl(*this).ActionPageRightSignal();
287 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageUpSignal()
289 return GetImpl(*this).ActionPageUpSignal();
292 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageDownSignal()
294 return GetImpl(*this).ActionPageDownSignal();
297 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToFirstSignal()
299 return GetImpl(*this).ActionMoveToFirstSignal();
302 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToLastSignal()
304 return GetImpl(*this).ActionMoveToLastSignal();
307 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromTopSignal()
309 return GetImpl(*this).ActionReadFromTopSignal();
312 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromNextSignal()
314 return GetImpl(*this).ActionReadFromNextSignal();
317 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionZoomSignal()
319 return GetImpl(*this).ActionZoomSignal();
322 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPauseResumeSignal()
324 return GetImpl(*this).ActionReadPauseResumeSignal();
327 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionStartStopSignal()
329 return GetImpl(*this).ActionStartStopSignal();
332 AccessibilityManager::AccessibilityActionScrollSignalType& AccessibilityManager::ActionScrollSignal()
334 return GetImpl(*this).ActionScrollSignal();
337 } // namespace Toolkit