libaurum: Fix indentation and clean code up
[platform/core/uifw/aurum.git] / libaurum / inc / UiObject.h
1 #pragma once
2
3 #include "config.h"
4
5 #include "AccessibleNode.h"
6 #include "ISearchable.h"
7 #include "UiSelector.h"
8 #include "Waiter.h"
9
10 #include <memory>
11 #include <vector>
12
13 class UiDevice;
14
15 class Node : public std::enable_shared_from_this<Node> {
16 public:
17     Node(std::shared_ptr<UiObject> node, std::vector<std::shared_ptr<Node>> children)
18     :mNode{node}, mChildren{children}{}
19
20     std::shared_ptr<UiObject> mNode;
21     std::vector<std::shared_ptr<Node>> mChildren;
22 };
23
24 /**
25  * @brief UiObject class
26  * @since_tizen 5.5
27  */
28 class UiObject : public ISearchable , public std::enable_shared_from_this<UiObject> {
29 public:
30     /**
31      * @brief TBD
32      * @since_tizen 5.5
33      */
34     UiObject(const std::shared_ptr<UiDevice> device, const std::shared_ptr<UiSelector> selector,
35              const AccessibleNode *node);
36
37     /**
38      * @brief TBD
39      * @since_tizen 5.5
40      */
41     UiObject(const std::shared_ptr<UiDevice> device, const std::shared_ptr<UiSelector> selector,
42              std::shared_ptr<AccessibleNode> node);
43 //    UiObject(const UiObject &src);  // copy constroctur
44
45     /**
46      * @brief TBD
47      * @since_tizen 5.5
48      */
49     UiObject(UiObject &&src);       // move constructor
50
51     /**
52      * @brief TBD
53      * @since_tizen 5.5
54      */
55     UiObject();
56
57     /**
58      * @brief TBD
59      * @since_tizen 5.5
60      */
61     virtual ~UiObject();
62
63     /**
64      * @brief TBD
65      * @since_tizen 5.5
66      */
67     std::shared_ptr<UiSelector> getSelector();
68
69     /**
70      * @brief TBD
71      * @since_tizen 5.5
72      */
73     bool hasObject(const std::shared_ptr<UiSelector> selector) const override;
74
75     /**
76      * @brief TBD
77      * @since_tizen 5.5
78      */
79     std::shared_ptr<UiObject> findObject(
80         const std::shared_ptr<UiSelector> selector) const override;
81
82     /**
83      * @brief TBD
84      * @since_tizen 5.5
85      */
86     std::vector<std::shared_ptr<UiObject>> findObjects(
87         const std::shared_ptr<UiSelector> selector) const override;
88
89     /**
90      * @brief TBD
91      * @since_tizen 5.5
92      */
93     bool waitFor(
94         const std::function<bool(const ISearchable *)> condition) const;
95
96     /**
97      * @brief TBD
98      * @since_tizen 5.5
99      */
100     std::shared_ptr<UiObject> waitFor(
101         const std::function<std::shared_ptr<UiObject>(const ISearchable *)>
102             condition) const;
103
104     /**
105      * @brief TBD
106      * @since_tizen 5.5
107      */
108     bool waitFor(const std::function<bool(const UiObject *)> condition) const;
109
110 public:
111     /**
112      * @brief TBD
113      * @since_tizen 5.5
114      */
115     UiObject *                             getParent() const;
116
117     /**
118      * @brief TBD
119      * @since_tizen 5.5
120      */
121     int                                    getChildCount() const;
122
123     /**
124      * @brief TBD
125      * @since_tizen 5.5
126      */
127     std::vector<std::shared_ptr<UiObject>> getChildren() const;
128
129     /**
130      * @brief TBD
131      * @since_tizen 5.5
132      */
133     std::shared_ptr<UiObject> getChildAt(int index) const;
134
135     /**
136      * @brief TBD
137      * @since_tizen 5.5
138      */
139     std::shared_ptr<Node> getDescendant();
140
141     /**
142      * @brief TBD
143      * @since_tizen 5.5
144      */
145     std::string getApplicationPackage() const;
146
147     /**
148      * @brief TBD
149      * @since_tizen 5.5
150      */
151     std::string getId() const;
152
153     /**
154      * @brief TBD
155      * @since_tizen 5.5
156      */
157     std::string getAutomationId() const;
158
159     /**
160      * @brief TBD
161      * @since_tizen 5.5
162      */
163     std::string getElementType() const;
164
165     /**
166      * @brief TBD
167      * @since_tizen 5.5
168      */
169     std::string getElementStyle() const;
170
171     /**
172      * @brief TBD
173      * @since_tizen 5.5
174      */
175     std::string getText() const;
176
177     /**
178      * @brief TBD
179      * @since_tizen 5.5
180      */
181     std::string getRole() const;
182
183     /**
184      * @brief TBD
185      * @since_tizen 5.5
186      */
187     void setText(std::string text);
188
189     /**
190      * @brief TBD
191      * @since_tizen 5.5
192      */
193     const Rect<int> getBoundingBox() const;
194
195     /**
196      * @brief TBD
197      * @since_tizen 5.5
198      */
199     bool isCheckable() const;
200
201     /**
202      * @brief TBD
203      * @since_tizen 5.5
204      */
205     bool isChecked() const;
206
207     /**
208      * @brief TBD
209      * @since_tizen 5.5
210      */
211     bool isClickable() const;
212
213     /**
214      * @brief TBD
215      * @since_tizen 5.5
216      */
217     bool isEnabled() const;
218
219     /**
220      * @brief TBD
221      * @since_tizen 5.5
222      */
223     bool isFocusable() const;
224
225     /**
226      * @brief TBD
227      * @since_tizen 5.5
228      */
229     bool isFocused() const;
230
231     /**
232      * @brief TBD
233      * @since_tizen 5.5
234      */
235     bool isLongClickable() const;
236
237     /**
238      * @brief TBD
239      * @since_tizen 5.5
240      */
241     bool isScrollable() const;
242
243     /**
244      * @brief TBD
245      * @since_tizen 5.5
246      */
247     bool isSelectable() const;
248
249     /**
250      * @brief TBD
251      * @since_tizen 5.5
252      */
253     bool isSelected() const;
254
255     /**
256      * @brief TBD
257      * @since_tizen 5.5
258      */
259     bool isVisible() const;
260
261     /**
262      * @brief TBD
263      * @since_tizen 5.5
264      */
265     bool isShowing() const;
266
267     /**
268      * @brief TBD
269      * @since_tizen 5.5
270      */
271     bool isActive() const;
272
273     /**
274      * @brief TBD
275      * @since_tizen 5.5
276      */
277     void click() const;
278
279     /**
280      * @brief TBD
281      * @since_tizen 5.5
282      */
283     void longClick(const unsigned int intv = LOGNCLICK_INTERVAL) const;
284
285     /**
286      * @brief TBD
287      * @since_tizen 5.5
288      */
289     bool DoAtspiActivate() const;
290
291     /**
292      * @brief TBD
293      * @since_tizen 5.5
294      */
295     void refresh() const;
296
297     /**
298      * @brief TBD
299      * @since_tizen 5.5
300      */
301     bool isValid() const;
302
303     /**
304      * @brief TBD
305      * @since_tizen 5.5
306      */
307     std::shared_ptr<AccessibleNode> getAccessibleNode() const;
308
309 private:
310     /**
311      * @brief TBD
312      */
313     std::shared_ptr<UiDevice> mDevice;
314
315     /**
316      * @brief TBD
317      */
318     std::shared_ptr<UiSelector>  mSelector;
319
320     /**
321      * @brief TBD
322      */
323     std::shared_ptr<AccessibleNode> mNode;
324
325     /**
326      * @brief TBD
327      */
328     const Waiter *mWaiter;
329
330     /**
331      * @brief TBD
332      */
333     static const unsigned int LOGNCLICK_INTERVAL = 50;
334 };