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 internalManager->Initialise();
61 singletonService.Register(typeid(manager), manager);
68 AccessibilityManager::AccessibilityManager(Internal::AccessibilityManager* impl)
73 void AccessibilityManager::SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text)
75 GetImpl(*this).SetAccessibilityAttribute(actor, type, text);
78 void AccessibilityManager::DeleteAccessibilityAttribute(Actor actor)
80 GetImpl(*this).DeleteAccessibilityAttribute(actor);
83 std::string AccessibilityManager::GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const
85 return GetImpl(*this).GetAccessibilityAttribute(actor, type);
88 void AccessibilityManager::SetFocusOrder(Actor actor, const unsigned int order)
90 GetImpl(*this).SetFocusOrder(actor, order);
93 unsigned int AccessibilityManager::GetFocusOrder(Actor actor) const
95 return GetImpl(*this).GetFocusOrder(actor);
98 unsigned int AccessibilityManager::GenerateNewFocusOrder() const
100 return GetImpl(*this).GenerateNewFocusOrder();
103 Actor AccessibilityManager::GetActorByFocusOrder(const unsigned int order)
105 return GetImpl(*this).GetActorByFocusOrder(order);
108 bool AccessibilityManager::SetCurrentFocusActor(Actor actor)
110 return GetImpl(*this).SetCurrentFocusActor(actor);
113 Actor AccessibilityManager::GetCurrentFocusActor()
115 return GetImpl(*this).GetCurrentFocusActor();
118 Actor AccessibilityManager::GetCurrentFocusGroup()
120 return GetImpl(*this).GetCurrentFocusGroup();
123 unsigned int AccessibilityManager::GetCurrentFocusOrder()
125 return GetImpl(*this).GetCurrentFocusOrder();
128 bool AccessibilityManager::MoveFocusForward()
130 return GetImpl(*this).MoveFocusForward();
133 bool AccessibilityManager::MoveFocusBackward()
135 return GetImpl(*this).MoveFocusBackward();
138 void AccessibilityManager::ClearFocus()
140 GetImpl(*this).ClearFocus();
143 void AccessibilityManager::Reset()
145 GetImpl(*this).Reset();
148 void AccessibilityManager::SetFocusGroup(Actor actor, bool isFocusGroup)
150 GetImpl(*this).SetFocusGroup(actor, isFocusGroup);
153 bool AccessibilityManager::IsFocusGroup(Actor actor) const
155 return GetImpl(*this).IsFocusGroup(actor);
158 void AccessibilityManager::SetGroupMode(bool enabled)
160 GetImpl(*this).SetGroupMode(enabled);
163 bool AccessibilityManager::GetGroupMode() const
165 return GetImpl(*this).GetGroupMode();
168 void AccessibilityManager::SetWrapMode(bool wrapped)
170 GetImpl(*this).SetWrapMode(wrapped);
173 bool AccessibilityManager::GetWrapMode() const
175 return GetImpl(*this).GetWrapMode();
178 void AccessibilityManager::SetFocusIndicatorActor(Actor indicator)
180 GetImpl(*this).SetFocusIndicatorActor(indicator);
183 Actor AccessibilityManager::GetFocusIndicatorActor()
185 return GetImpl(*this).GetFocusIndicatorActor();
188 Actor AccessibilityManager::GetFocusGroup(Actor actor)
190 return GetImpl(*this).GetFocusGroup(actor);
193 Vector2 AccessibilityManager::GetReadPosition() const
195 return GetImpl(*this).GetReadPosition();
198 void AccessibilityManager::EnableAccessibility(bool enabled)
200 GetImpl(*this).EnableAccessibility(enabled);
203 bool AccessibilityManager::IsEnabled() const
205 return GetImpl(*this).IsEnabled();
208 AccessibilityManager::FocusChangedSignalType& AccessibilityManager::FocusChangedSignal()
210 return GetImpl(*this).FocusChangedSignal();
213 AccessibilityManager::FocusOvershotSignalType& AccessibilityManager::FocusOvershotSignal()
215 return GetImpl(*this).FocusOvershotSignal();
218 AccessibilityManager::FocusedActorActivatedSignalType& AccessibilityManager::FocusedActorActivatedSignal()
220 return GetImpl(*this).FocusedActorActivatedSignal();
223 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::StatusChangedSignal()
225 return GetImpl(*this).StatusChangedSignal();
228 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionNextSignal()
230 return GetImpl(*this).ActionNextSignal();
233 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPreviousSignal()
235 return GetImpl(*this).ActionPreviousSignal();
238 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionActivateSignal()
240 return GetImpl(*this).ActionActivateSignal();
243 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionOverSignal()
245 return GetImpl(*this).ActionOverSignal();
248 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadSignal()
250 return GetImpl(*this).ActionReadSignal();
253 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadNextSignal()
255 return GetImpl(*this).ActionReadNextSignal();
258 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPreviousSignal()
260 return GetImpl(*this).ActionReadPreviousSignal();
263 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionUpSignal()
265 return GetImpl(*this).ActionUpSignal();
268 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionDownSignal()
270 return GetImpl(*this).ActionDownSignal();
273 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionClearFocusSignal()
275 return GetImpl(*this).ActionClearFocusSignal();
278 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionBackSignal()
280 return GetImpl(*this).ActionBackSignal();
283 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollUpSignal()
285 return GetImpl(*this).ActionScrollUpSignal();
288 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollDownSignal()
290 return GetImpl(*this).ActionScrollDownSignal();
293 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageLeftSignal()
295 return GetImpl(*this).ActionPageLeftSignal();
298 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageRightSignal()
300 return GetImpl(*this).ActionPageRightSignal();
303 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageUpSignal()
305 return GetImpl(*this).ActionPageUpSignal();
308 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageDownSignal()
310 return GetImpl(*this).ActionPageDownSignal();
313 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToFirstSignal()
315 return GetImpl(*this).ActionMoveToFirstSignal();
318 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToLastSignal()
320 return GetImpl(*this).ActionMoveToLastSignal();
323 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromTopSignal()
325 return GetImpl(*this).ActionReadFromTopSignal();
328 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromNextSignal()
330 return GetImpl(*this).ActionReadFromNextSignal();
333 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionZoomSignal()
335 return GetImpl(*this).ActionZoomSignal();
338 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPauseResumeSignal()
340 return GetImpl(*this).ActionReadPauseResumeSignal();
343 AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionStartStopSignal()
345 return GetImpl(*this).ActionStartStopSignal();
348 AccessibilityManager::AccessibilityActionScrollSignalType& AccessibilityManager::ActionScrollSignal()
350 return GetImpl(*this).ActionScrollSignal();
353 } // namespace Toolkit