Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/servers/display/accessibility_server.cpp
45987 views
1
/**************************************************************************/
2
/* accessibility_server.cpp */
3
/**************************************************************************/
4
/* This file is part of: */
5
/* GODOT ENGINE */
6
/* https://godotengine.org */
7
/**************************************************************************/
8
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
9
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
10
/* */
11
/* Permission is hereby granted, free of charge, to any person obtaining */
12
/* a copy of this software and associated documentation files (the */
13
/* "Software"), to deal in the Software without restriction, including */
14
/* without limitation the rights to use, copy, modify, merge, publish, */
15
/* distribute, sublicense, and/or sell copies of the Software, and to */
16
/* permit persons to whom the Software is furnished to do so, subject to */
17
/* the following conditions: */
18
/* */
19
/* The above copyright notice and this permission notice shall be */
20
/* included in all copies or substantial portions of the Software. */
21
/* */
22
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
23
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
24
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
25
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
26
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
27
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
28
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
29
/**************************************************************************/
30
31
#include "accessibility_server.h"
32
33
#include "core/object/class_db.h"
34
#include "servers/display/accessibility_server_dummy.h"
35
36
AccessibilityServer::AccessibilityServerCreate AccessibilityServer::server_create_functions[AccessibilityServer::MAX_SERVERS] = {
37
{ "dummy", &AccessibilityServerDummy::create_func }
38
};
39
40
int AccessibilityServer::server_create_count = 1;
41
42
void AccessibilityServer::_bind_methods() {
43
ClassDB::bind_method(D_METHOD("is_supported"), &AccessibilityServer::is_supported);
44
45
ClassDB::bind_method(D_METHOD("create_element", "window_id", "role"), &AccessibilityServer::create_element);
46
ClassDB::bind_method(D_METHOD("create_sub_element", "parent_rid", "role", "insert_pos"), &AccessibilityServer::create_sub_element, DEFVAL(-1));
47
ClassDB::bind_method(D_METHOD("create_sub_text_edit_elements", "parent_rid", "shaped_text", "min_height", "insert_pos", "is_last_line"), &AccessibilityServer::create_sub_text_edit_elements, DEFVAL(-1), DEFVAL(false));
48
ClassDB::bind_method(D_METHOD("has_element", "id"), &AccessibilityServer::has_element);
49
ClassDB::bind_method(D_METHOD("free_element", "id"), &AccessibilityServer::free_element);
50
ClassDB::bind_method(D_METHOD("element_set_meta", "id", "meta"), &AccessibilityServer::element_set_meta);
51
ClassDB::bind_method(D_METHOD("element_get_meta", "id"), &AccessibilityServer::element_get_meta);
52
53
ClassDB::bind_method(D_METHOD("_update_if_active", "callback"), &AccessibilityServer::update_if_active);
54
55
ClassDB::bind_method(D_METHOD("set_window_rect", "window_id", "rect_out", "rect_in"), &AccessibilityServer::set_window_rect);
56
ClassDB::bind_method(D_METHOD("set_window_focused", "window_id", "focused"), &AccessibilityServer::set_window_focused);
57
58
ClassDB::bind_method(D_METHOD("update_set_focus", "id"), &AccessibilityServer::update_set_focus);
59
ClassDB::bind_method(D_METHOD("get_window_root", "window_id"), &AccessibilityServer::get_window_root);
60
ClassDB::bind_method(D_METHOD("update_set_role", "id", "role"), &AccessibilityServer::update_set_role);
61
ClassDB::bind_method(D_METHOD("update_set_name", "id", "name"), &AccessibilityServer::update_set_name);
62
ClassDB::bind_method(D_METHOD("update_set_braille_label", "id", "name"), &AccessibilityServer::update_set_braille_label);
63
ClassDB::bind_method(D_METHOD("update_set_braille_role_description", "id", "description"), &AccessibilityServer::update_set_braille_role_description);
64
ClassDB::bind_method(D_METHOD("update_set_extra_info", "id", "name"), &AccessibilityServer::update_set_extra_info);
65
ClassDB::bind_method(D_METHOD("update_set_description", "id", "description"), &AccessibilityServer::update_set_description);
66
ClassDB::bind_method(D_METHOD("update_set_value", "id", "value"), &AccessibilityServer::update_set_value);
67
ClassDB::bind_method(D_METHOD("update_set_tooltip", "id", "tooltip"), &AccessibilityServer::update_set_tooltip);
68
ClassDB::bind_method(D_METHOD("update_set_bounds", "id", "p_rect"), &AccessibilityServer::update_set_bounds);
69
ClassDB::bind_method(D_METHOD("update_set_transform", "id", "transform"), &AccessibilityServer::update_set_transform);
70
ClassDB::bind_method(D_METHOD("update_add_child", "id", "child_id"), &AccessibilityServer::update_add_child);
71
ClassDB::bind_method(D_METHOD("update_add_related_controls", "id", "related_id"), &AccessibilityServer::update_add_related_controls);
72
ClassDB::bind_method(D_METHOD("update_add_related_details", "id", "related_id"), &AccessibilityServer::update_add_related_details);
73
ClassDB::bind_method(D_METHOD("update_add_related_described_by", "id", "related_id"), &AccessibilityServer::update_add_related_described_by);
74
ClassDB::bind_method(D_METHOD("update_add_related_flow_to", "id", "related_id"), &AccessibilityServer::update_add_related_flow_to);
75
ClassDB::bind_method(D_METHOD("update_add_related_labeled_by", "id", "related_id"), &AccessibilityServer::update_add_related_labeled_by);
76
ClassDB::bind_method(D_METHOD("update_add_related_radio_group", "id", "related_id"), &AccessibilityServer::update_add_related_radio_group);
77
ClassDB::bind_method(D_METHOD("update_set_active_descendant", "id", "other_id"), &AccessibilityServer::update_set_active_descendant);
78
ClassDB::bind_method(D_METHOD("update_set_next_on_line", "id", "other_id"), &AccessibilityServer::update_set_next_on_line);
79
ClassDB::bind_method(D_METHOD("update_set_previous_on_line", "id", "other_id"), &AccessibilityServer::update_set_previous_on_line);
80
ClassDB::bind_method(D_METHOD("update_set_member_of", "id", "group_id"), &AccessibilityServer::update_set_member_of);
81
ClassDB::bind_method(D_METHOD("update_set_in_page_link_target", "id", "other_id"), &AccessibilityServer::update_set_in_page_link_target);
82
ClassDB::bind_method(D_METHOD("update_set_error_message", "id", "other_id"), &AccessibilityServer::update_set_error_message);
83
ClassDB::bind_method(D_METHOD("update_set_live", "id", "live"), &AccessibilityServer::update_set_live);
84
ClassDB::bind_method(D_METHOD("update_add_action", "id", "action", "callable"), &AccessibilityServer::update_add_action);
85
ClassDB::bind_method(D_METHOD("update_add_custom_action", "id", "action_id", "action_description"), &AccessibilityServer::update_add_custom_action);
86
ClassDB::bind_method(D_METHOD("update_set_table_row_count", "id", "count"), &AccessibilityServer::update_set_table_row_count);
87
ClassDB::bind_method(D_METHOD("update_set_table_column_count", "id", "count"), &AccessibilityServer::update_set_table_column_count);
88
ClassDB::bind_method(D_METHOD("update_set_table_row_index", "id", "index"), &AccessibilityServer::update_set_table_row_index);
89
ClassDB::bind_method(D_METHOD("update_set_table_column_index", "id", "index"), &AccessibilityServer::update_set_table_column_index);
90
ClassDB::bind_method(D_METHOD("update_set_table_cell_position", "id", "row_index", "column_index"), &AccessibilityServer::update_set_table_cell_position);
91
ClassDB::bind_method(D_METHOD("update_set_table_cell_span", "id", "row_span", "column_span"), &AccessibilityServer::update_set_table_cell_span);
92
ClassDB::bind_method(D_METHOD("update_set_list_item_count", "id", "size"), &AccessibilityServer::update_set_list_item_count);
93
ClassDB::bind_method(D_METHOD("update_set_list_item_index", "id", "index"), &AccessibilityServer::update_set_list_item_index);
94
ClassDB::bind_method(D_METHOD("update_set_list_item_level", "id", "level"), &AccessibilityServer::update_set_list_item_level);
95
ClassDB::bind_method(D_METHOD("update_set_list_item_selected", "id", "selected"), &AccessibilityServer::update_set_list_item_selected);
96
ClassDB::bind_method(D_METHOD("update_set_list_item_expanded", "id", "expanded"), &AccessibilityServer::update_set_list_item_expanded);
97
ClassDB::bind_method(D_METHOD("update_set_popup_type", "id", "popup"), &AccessibilityServer::update_set_popup_type);
98
ClassDB::bind_method(D_METHOD("update_set_checked", "id", "checekd"), &AccessibilityServer::update_set_checked);
99
ClassDB::bind_method(D_METHOD("update_set_num_value", "id", "position"), &AccessibilityServer::update_set_num_value);
100
ClassDB::bind_method(D_METHOD("update_set_num_range", "id", "min", "max"), &AccessibilityServer::update_set_num_range);
101
ClassDB::bind_method(D_METHOD("update_set_num_step", "id", "step"), &AccessibilityServer::update_set_num_step);
102
ClassDB::bind_method(D_METHOD("update_set_num_jump", "id", "jump"), &AccessibilityServer::update_set_num_jump);
103
ClassDB::bind_method(D_METHOD("update_set_scroll_x", "id", "position"), &AccessibilityServer::update_set_scroll_x);
104
ClassDB::bind_method(D_METHOD("update_set_scroll_x_range", "id", "min", "max"), &AccessibilityServer::update_set_scroll_x_range);
105
ClassDB::bind_method(D_METHOD("update_set_scroll_y", "id", "position"), &AccessibilityServer::update_set_scroll_y);
106
ClassDB::bind_method(D_METHOD("update_set_scroll_y_range", "id", "min", "max"), &AccessibilityServer::update_set_scroll_y_range);
107
ClassDB::bind_method(D_METHOD("update_set_text_decorations", "id", "underline", "strikethrough", "overline", "color"), &AccessibilityServer::update_set_text_decorations, DEFVAL(Color(0, 0, 0, 1)));
108
ClassDB::bind_method(D_METHOD("update_set_text_align", "id", "align"), &AccessibilityServer::update_set_text_align);
109
ClassDB::bind_method(D_METHOD("update_set_text_selection", "id", "text_start_id", "start_char", "text_end_id", "end_char"), &AccessibilityServer::update_set_text_selection);
110
ClassDB::bind_method(D_METHOD("update_set_flag", "id", "flag", "value"), &AccessibilityServer::update_set_flag);
111
ClassDB::bind_method(D_METHOD("update_set_classname", "id", "classname"), &AccessibilityServer::update_set_classname);
112
ClassDB::bind_method(D_METHOD("update_set_placeholder", "id", "placeholder"), &AccessibilityServer::update_set_placeholder);
113
ClassDB::bind_method(D_METHOD("update_set_language", "id", "language"), &AccessibilityServer::update_set_language);
114
ClassDB::bind_method(D_METHOD("update_set_text_orientation", "id", "vertical"), &AccessibilityServer::update_set_text_orientation);
115
ClassDB::bind_method(D_METHOD("update_set_list_orientation", "id", "vertical"), &AccessibilityServer::update_set_list_orientation);
116
ClassDB::bind_method(D_METHOD("update_set_shortcut", "id", "shortcut"), &AccessibilityServer::update_set_shortcut);
117
ClassDB::bind_method(D_METHOD("update_set_url", "id", "url"), &AccessibilityServer::update_set_url);
118
ClassDB::bind_method(D_METHOD("update_set_role_description", "id", "description"), &AccessibilityServer::update_set_role_description);
119
ClassDB::bind_method(D_METHOD("update_set_state_description", "id", "description"), &AccessibilityServer::update_set_state_description);
120
ClassDB::bind_method(D_METHOD("update_set_color_value", "id", "color"), &AccessibilityServer::update_set_color_value);
121
ClassDB::bind_method(D_METHOD("update_set_background_color", "id", "color"), &AccessibilityServer::update_set_background_color);
122
ClassDB::bind_method(D_METHOD("update_set_foreground_color", "id", "color"), &AccessibilityServer::update_set_foreground_color);
123
124
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_UNKNOWN);
125
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_DEFAULT_BUTTON);
126
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_AUDIO);
127
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_VIDEO);
128
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_STATIC_TEXT);
129
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CONTAINER);
130
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_PANEL);
131
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_BUTTON);
132
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LINK);
133
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CHECK_BOX);
134
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_RADIO_BUTTON);
135
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CHECK_BUTTON);
136
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SCROLL_BAR);
137
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SCROLL_VIEW);
138
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SPLITTER);
139
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SLIDER);
140
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SPIN_BUTTON);
141
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_PROGRESS_INDICATOR);
142
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TEXT_FIELD);
143
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MULTILINE_TEXT_FIELD);
144
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_COLOR_PICKER);
145
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TABLE);
146
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CELL);
147
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_ROW);
148
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_ROW_GROUP);
149
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_ROW_HEADER);
150
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_COLUMN_HEADER);
151
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TREE);
152
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TREE_ITEM);
153
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST);
154
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST_ITEM);
155
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST_BOX);
156
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST_BOX_OPTION);
157
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TAB_BAR);
158
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TAB);
159
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TAB_PANEL);
160
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_BAR);
161
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU);
162
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_ITEM);
163
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_ITEM_CHECK_BOX);
164
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_ITEM_RADIO);
165
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_IMAGE);
166
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_WINDOW);
167
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TITLE_BAR);
168
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_DIALOG);
169
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TOOLTIP);
170
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_REGION);
171
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TEXT_RUN);
172
173
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_MENU);
174
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_LIST);
175
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_TREE);
176
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_DIALOG);
177
178
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_HIDDEN);
179
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_MULTISELECTABLE);
180
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_REQUIRED);
181
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_VISITED);
182
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_BUSY);
183
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_MODAL);
184
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_TOUCH_PASSTHROUGH);
185
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_READONLY);
186
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_DISABLED);
187
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_CLIPS_CHILDREN);
188
189
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_CLICK);
190
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_FOCUS);
191
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_BLUR);
192
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_COLLAPSE);
193
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_EXPAND);
194
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_DECREMENT);
195
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_INCREMENT);
196
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_HIDE_TOOLTIP);
197
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SHOW_TOOLTIP);
198
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SET_TEXT_SELECTION);
199
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_REPLACE_SELECTED_TEXT);
200
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_BACKWARD);
201
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_DOWN);
202
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_FORWARD);
203
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_LEFT);
204
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_RIGHT);
205
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_UP);
206
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_INTO_VIEW);
207
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_TO_POINT);
208
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SET_SCROLL_OFFSET);
209
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SET_VALUE);
210
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SHOW_CONTEXT_MENU);
211
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_CUSTOM);
212
213
BIND_ENUM_CONSTANT(AccessibilityServerEnums::LIVE_OFF);
214
BIND_ENUM_CONSTANT(AccessibilityServerEnums::LIVE_POLITE);
215
BIND_ENUM_CONSTANT(AccessibilityServerEnums::LIVE_ASSERTIVE);
216
217
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_UNIT_ITEM);
218
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_UNIT_PAGE);
219
220
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_TOP_LEFT);
221
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_BOTTOM_RIGHT);
222
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_TOP_EDGE);
223
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_BOTTOM_EDGE);
224
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_LEFT_EDGE);
225
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_RIGHT_EDGE);
226
}
227
228
AccessibilityServer *AccessibilityServer::create(int p_index, Error &r_error) {
229
ERR_FAIL_INDEX_V(p_index, server_create_count, nullptr);
230
return server_create_functions[p_index].create_function(r_error);
231
}
232
233
void AccessibilityServer::register_create_function(const char *p_name, CreateFunction p_function) {
234
ERR_FAIL_COND(server_create_count == MAX_SERVERS);
235
// Dummy server is always last
236
server_create_functions[server_create_count] = server_create_functions[server_create_count - 1];
237
server_create_functions[server_create_count - 1].name = p_name;
238
server_create_functions[server_create_count - 1].create_function = p_function;
239
server_create_count++;
240
}
241
242
int AccessibilityServer::get_create_function_count() {
243
return server_create_count;
244
}
245
246
const char *AccessibilityServer::get_create_function_name(int p_index) {
247
ERR_FAIL_INDEX_V(p_index, server_create_count, nullptr);
248
return server_create_functions[p_index].name;
249
}
250
251
AccessibilityServer::AccessibilityServer() {
252
singleton = this;
253
}
254
255
AccessibilityServer::~AccessibilityServer() {
256
singleton = nullptr;
257
}
258
259