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