libaurum: extract methods into Utils class
[platform/core/uifw/aurum.git] / libaurum / src / AccessibleUtils.cc
1 #include "AccessibleUtils.h"
2 #include "loguru.hpp"
3
4 char *state_to_char(AtspiStateType state)
5 {
6    switch (state) {
7    case ATSPI_STATE_INVALID:
8       return strdup("ATSPI_STATE_INVALID");
9    case ATSPI_STATE_ACTIVE:
10       return strdup("ATSPI_STATE_ACTIVE");
11    case ATSPI_STATE_ARMED:
12       return strdup("ATSPI_STATE_ARMED");
13    case ATSPI_STATE_BUSY:
14       return strdup("ATSPI_STATE_BUSY");
15    case ATSPI_STATE_CHECKED:
16       return strdup("ATSPI_STATE_CHECKED");
17    case ATSPI_STATE_COLLAPSED:
18       return strdup("ATSPI_STATE_COLLAPSED");
19    case ATSPI_STATE_DEFUNCT:
20       return strdup("ATSPI_STATE_DEFUNCT");
21    case ATSPI_STATE_EDITABLE:
22       return strdup("ATSPI_STATE_EDITABLE");
23    case ATSPI_STATE_ENABLED:
24       return strdup("ATSPI_STATE_ENABLED");
25    case ATSPI_STATE_EXPANDABLE:
26       return strdup("ATSPI_STATE_EXPANDABLE");
27    case ATSPI_STATE_EXPANDED:
28       return strdup("ATSPI_STATE_EXPANDED");
29    case ATSPI_STATE_FOCUSABLE:
30       return strdup("ATSPI_STATE_FOCUSABLE");
31    case ATSPI_STATE_FOCUSED:
32       return strdup("ATSPI_STATE_FOCUSED");
33    case ATSPI_STATE_HAS_TOOLTIP:
34       return strdup("ATSPI_STATE_HAS_TOOLTIP");
35    case ATSPI_STATE_HORIZONTAL:
36       return strdup("ATSPI_STATE_HORIZONTAL");
37    case ATSPI_STATE_ICONIFIED:
38       return strdup("ATSPI_STATE_ICONIFIED");
39    case ATSPI_STATE_MULTI_LINE:
40       return strdup("ATSPI_STATE_MULTI_LINE");
41    case ATSPI_STATE_MULTISELECTABLE:
42       return strdup("ATSPI_STATE_MULTISELECTABLE");
43    case ATSPI_STATE_OPAQUE:
44       return strdup("ATSPI_STATE_OPAQUE");
45    case ATSPI_STATE_PRESSED:
46       return strdup("ATSPI_STATE_PRESSED");
47    case ATSPI_STATE_RESIZABLE:
48       return strdup("ATSPI_STATE_RESIZABLE");
49    case ATSPI_STATE_SELECTABLE:
50       return strdup("ATSPI_STATE_SELECTABLE");
51    case ATSPI_STATE_SELECTED:
52       return strdup("ATSPI_STATE_SELECTED");
53    case ATSPI_STATE_SENSITIVE:
54       return strdup("ATSPI_STATE_SENSITIVE");
55    case ATSPI_STATE_SHOWING:
56       return strdup("ATSPI_STATE_SHOWING");
57    case ATSPI_STATE_SINGLE_LINE:
58       return strdup("ATSPI_STATE_SINGLE_LINE");
59    case ATSPI_STATE_STALE:
60       return strdup("ATSPI_STATE_STALE");
61    case ATSPI_STATE_TRANSIENT:
62       return strdup("ATSPI_STATE_TRANSIENT");
63    case ATSPI_STATE_VERTICAL:
64       return strdup("ATSPI_STATE_VERTICAL");
65    case ATSPI_STATE_VISIBLE:
66       return strdup("ATSPI_STATE_VISIBLE");
67    case ATSPI_STATE_MANAGES_DESCENDANTS:
68       return strdup("ATSPI_STATE_MANAGES_DESCENDANTS");
69    case ATSPI_STATE_INDETERMINATE:
70       return strdup("ATSPI_STATE_INDETERMINATE");
71    case ATSPI_STATE_REQUIRED:
72       return strdup("ATSPI_STATE_REQUIRED");
73    case ATSPI_STATE_TRUNCATED:
74       return strdup("ATSPI_STATE_TRUNCATED");
75    case ATSPI_STATE_ANIMATED:
76       return strdup("ATSPI_STATE_ANIMATED");
77    case ATSPI_STATE_INVALID_ENTRY:
78       return strdup("ATSPI_STATE_INVALID_ENTRY");
79    case ATSPI_STATE_SUPPORTS_AUTOCOMPLETION:
80       return strdup("ATSPI_STATE_SUPPORTS_AUTOCOMPLETION");
81    case ATSPI_STATE_SELECTABLE_TEXT:
82       return strdup("ATSPI_STATE_SELECTABLE_TEXT");
83    case ATSPI_STATE_IS_DEFAULT:
84       return strdup("ATSPI_STATE_IS_DEFAULT");
85    case ATSPI_STATE_VISITED:
86       return strdup("ATSPI_STATE_VISITED");
87    case ATSPI_STATE_CHECKABLE:
88       return strdup("ATSPI_STATE_CHECKABLE");
89    case ATSPI_STATE_HAS_POPUP:
90       return strdup("ATSPI_STATE_HAS_POPUP");
91    case ATSPI_STATE_READ_ONLY:
92       return strdup("ATSPI_STATE_READ_ONLY");
93    case ATSPI_STATE_LAST_DEFINED:
94       return strdup("ATSPI_STATE_LAST_DEFINED");
95    case ATSPI_STATE_MODAL:
96       return strdup("ATSPI_STATE_MODAL");
97    default:
98       return strdup("\0");
99    }
100 }
101
102 static void debug( AtspiStateSet *stateSet)
103 {
104    if (!stateSet) return;
105    GArray *states = atspi_state_set_get_states(stateSet);
106    if (!states) return;
107
108    char *state_name = NULL;
109    AtspiStateType stat;
110    LOG_F(INFO, "check ss:%p s:%p, len:%d", stateSet, states, states->len);
111    for (int i = 0; states && (i < states->len); ++i) {
112       stat = g_array_index(states, AtspiStateType, i);
113       state_name = state_to_char(stat);
114       LOG_SCOPE_F(INFO, "state: %s", state_name);
115       free(state_name);
116    }
117    g_array_free(states, 1);
118 }