80ac3a28a89b63200d3405102df16d14d86567d2
[platform/core/uifw/dali-toolkit.git] / automated-tests / TET / dali-toolkit-test-utils / toolkit-accessibility-manager.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include "toolkit-accessibility-manager.h"
19
20 #include <dali/public-api/common/dali-common.h>
21 #include <dali/public-api/object/base-object.h>
22 #include <dali/public-api/signals/dali-signal-v2.h>
23
24 namespace Dali
25 {
26
27 namespace
28 {
29 ToolkitAccessibilityManager* gToolkitAccessibilityManager(NULL);
30 } // unnamed namespace
31
32 namespace Internal
33 {
34
35 namespace Adaptor
36 {
37
38 /**
39  * Stub for the AccessibilityManager
40  */
41 class AccessibilityManager : public BaseObject
42 {
43 public: // Creation & Destruction
44
45   static Dali::AccessibilityManager Get();
46
47   AccessibilityManager();
48   AccessibilityManager(ToolkitAccessibilityManager *accessibilityActionDetector);
49   ~AccessibilityManager();
50
51 public:
52
53   bool IsEnabled() const;
54   void SetActionHandler(Dali::AccessibilityActionHandler& handler);
55   void SetGestureHandler(Dali::AccessibilityGestureHandler& handler);
56
57 public: // Signals
58
59   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalStatusChanged();
60   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionNext();
61   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionPrevious();
62   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionActivate();
63   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionRead();
64   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionReadNext();
65   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionReadPrevious();
66   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionUp();
67   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionDown();
68   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionClearFocus();
69   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionBack();
70   Dali::AccessibilityManager::AccessibilityActionSignalV2& SignalActionControlPanelOpen();
71
72 private:
73
74   ToolkitAccessibilityManager* mToolkitAccessibilityManager;
75   Dali::AccessibilityManager::AccessibilityActionSignalV2 mStatusChangedSignal;
76   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionNextSignal;
77   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionPreviousSignal;
78   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionActivateSignal;
79   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionReadSignal;
80   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionReadNextSignal;
81   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionReadPreviousSignal;
82   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionUpSignal;
83   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionDownSignal;
84   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionClearFocusSignal;
85   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionBackSignal;
86   Dali::AccessibilityManager::AccessibilityActionSignalV2 mActionControlPanelOpenSignal;
87
88   bool mIsEnabled;
89   Dali::AccessibilityActionHandler* mActionHandler;
90   Dali::AccessibilityGestureHandler* mGestureHandler;
91
92 };
93
94 Dali::AccessibilityManager AccessibilityManager::Get()
95 {
96   return gToolkitAccessibilityManager->GetAccessibilityManager();
97 }
98
99 AccessibilityManager::AccessibilityManager()
100 : mToolkitAccessibilityManager(NULL),
101   mIsEnabled(false)
102 {
103 }
104
105 AccessibilityManager::AccessibilityManager(ToolkitAccessibilityManager *accessibilityActionDetector)
106 : mToolkitAccessibilityManager(accessibilityActionDetector),
107   mIsEnabled(false)
108 {
109 }
110
111 AccessibilityManager::~AccessibilityManager()
112 {
113 }
114
115 bool AccessibilityManager::IsEnabled() const
116 {
117   return mIsEnabled;
118 }
119
120 void AccessibilityManager::SetActionHandler(Dali::AccessibilityActionHandler& handler)
121 {
122   mActionHandler = &handler;
123 }
124
125 void AccessibilityManager::SetGestureHandler(Dali::AccessibilityGestureHandler& handler)
126 {
127   mGestureHandler = &handler;
128 }
129
130 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalStatusChanged()
131 {
132   return mStatusChangedSignal;
133 }
134
135 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionNext()
136 {
137   return mActionNextSignal;
138 }
139
140 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionPrevious()
141 {
142   return mActionPreviousSignal;
143 }
144
145 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionActivate()
146 {
147   return mActionActivateSignal;
148 }
149
150 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionRead()
151 {
152   return mActionReadSignal;
153 }
154
155 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionReadNext()
156 {
157   return mActionReadNextSignal;
158 }
159
160 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionReadPrevious()
161 {
162   return mActionReadPreviousSignal;
163 }
164
165 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionUp()
166 {
167   return mActionUpSignal;
168 }
169
170 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionDown()
171 {
172   return mActionDownSignal;
173 }
174
175 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionClearFocus()
176 {
177   return mActionClearFocusSignal;
178 }
179
180 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionBack()
181 {
182   return mActionBackSignal;
183 }
184
185 Dali::AccessibilityManager::AccessibilityActionSignalV2& AccessibilityManager::SignalActionControlPanelOpen()
186 {
187   return mActionControlPanelOpenSignal;
188 }
189
190 } // namespace Adaptor
191
192 } // namespace Internal
193
194 ////////////////////////////////////////////////////////////////////////////////////////////////////
195
196 ToolkitAccessibilityManager::ToolkitAccessibilityManager()
197 : mAccessibilityManagerStub(new Internal::Adaptor::AccessibilityManager(this)),
198   mAccessibilityManager( mAccessibilityManagerStub )
199 {
200   gToolkitAccessibilityManager = this;
201 }
202
203 ToolkitAccessibilityManager::~ToolkitAccessibilityManager()
204 {
205   gToolkitAccessibilityManager = NULL;
206 }
207
208 AccessibilityManager ToolkitAccessibilityManager::GetAccessibilityManager()
209 {
210   return mAccessibilityManager;
211 }
212
213 } // namespace Dali