2 * Copyright (c) 2015 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/public-api/focus-manager/accessibility-focus-manager.h>
22 #include <dali/devel-api/adaptor-framework/singleton-service.h>
25 #include <dali-toolkit/internal/focus-manager/accessibility-focus-manager-impl.h>
33 AccessibilityFocusManager::AccessibilityFocusManager()
37 AccessibilityFocusManager::~AccessibilityFocusManager()
41 AccessibilityFocusManager AccessibilityFocusManager::Get()
43 AccessibilityFocusManager manager;
45 // Check whether the accessibility focus manager is already created
46 SingletonService singletonService( SingletonService::Get() );
47 if ( singletonService )
49 Dali::BaseHandle handle = singletonService.GetSingleton(typeid(AccessibilityFocusManager));
52 // If so, downcast the handle of singleton to focus manager
53 manager = AccessibilityFocusManager(dynamic_cast<Internal::AccessibilityFocusManager*>(handle.GetObjectPtr()));
58 // If not, create the accessibility focus manager and register it as a singleton
59 manager = AccessibilityFocusManager(new Internal::AccessibilityFocusManager());
60 singletonService.Register(typeid(manager), manager);
67 AccessibilityFocusManager::AccessibilityFocusManager(Internal::AccessibilityFocusManager *impl)
72 void AccessibilityFocusManager::SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text)
74 GetImpl(*this).SetAccessibilityAttribute(actor, type, text);
77 std::string AccessibilityFocusManager::GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const
79 return GetImpl(*this).GetAccessibilityAttribute(actor, type);
82 void AccessibilityFocusManager::SetFocusOrder(Actor actor, const unsigned int order)
84 GetImpl(*this).SetFocusOrder(actor, order);
87 unsigned int AccessibilityFocusManager::GetFocusOrder(Actor actor) const
89 return GetImpl(*this).GetFocusOrder(actor);
92 unsigned int AccessibilityFocusManager::GenerateNewFocusOrder() const
94 return GetImpl(*this).GenerateNewFocusOrder();
97 Actor AccessibilityFocusManager::GetActorByFocusOrder(const unsigned int order)
99 return GetImpl(*this).GetActorByFocusOrder(order);
102 bool AccessibilityFocusManager::SetCurrentFocusActor(Actor actor)
104 return GetImpl(*this).SetCurrentFocusActor(actor);
107 Actor AccessibilityFocusManager::GetCurrentFocusActor()
109 return GetImpl(*this).GetCurrentFocusActor();
112 Actor AccessibilityFocusManager::GetCurrentFocusGroup()
114 return GetImpl(*this).GetCurrentFocusGroup();
117 unsigned int AccessibilityFocusManager::GetCurrentFocusOrder()
119 return GetImpl(*this).GetCurrentFocusOrder();
122 bool AccessibilityFocusManager::MoveFocusForward()
124 return GetImpl(*this).MoveFocusForward();
127 bool AccessibilityFocusManager::MoveFocusBackward()
129 return GetImpl(*this).MoveFocusBackward();
132 void AccessibilityFocusManager::ClearFocus()
134 GetImpl(*this).ClearFocus();
137 void AccessibilityFocusManager::Reset()
139 GetImpl(*this).Reset();
142 void AccessibilityFocusManager::SetFocusGroup(Actor actor, bool isFocusGroup)
144 GetImpl(*this).SetFocusGroup(actor, isFocusGroup);
147 bool AccessibilityFocusManager::IsFocusGroup(Actor actor) const
149 return GetImpl(*this).IsFocusGroup(actor);
152 void AccessibilityFocusManager::SetGroupMode(bool enabled)
154 GetImpl(*this).SetGroupMode(enabled);
157 bool AccessibilityFocusManager::GetGroupMode() const
159 return GetImpl(*this).GetGroupMode();
162 void AccessibilityFocusManager::SetWrapMode(bool wrapped)
164 GetImpl(*this).SetWrapMode(wrapped);
167 bool AccessibilityFocusManager::GetWrapMode() const
169 return GetImpl(*this).GetWrapMode();
172 void AccessibilityFocusManager::SetFocusIndicatorActor(Actor indicator)
174 GetImpl(*this).SetFocusIndicatorActor(indicator);
177 Actor AccessibilityFocusManager::GetFocusIndicatorActor()
179 return GetImpl(*this).GetFocusIndicatorActor();
182 Actor AccessibilityFocusManager::GetFocusGroup(Actor actor)
184 return GetImpl(*this).GetFocusGroup(actor);
187 AccessibilityFocusManager::FocusChangedSignalType& AccessibilityFocusManager::FocusChangedSignal()
189 return GetImpl(*this).FocusChangedSignal();
192 AccessibilityFocusManager::FocusOvershotSignalType& AccessibilityFocusManager::FocusOvershotSignal()
194 return GetImpl(*this).FocusOvershotSignal();
197 AccessibilityFocusManager::FocusedActorActivatedSignalType& AccessibilityFocusManager::FocusedActorActivatedSignal()
199 return GetImpl(*this).FocusedActorActivatedSignal();
202 } // namespace Toolkit