1 | /**************************************************************************/ |
2 | /* core_constants.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 "core_constants.h" |
32 | |
33 | #include "core/input/input_event.h" |
34 | #include "core/object/class_db.h" |
35 | #include "core/os/keyboard.h" |
36 | #include "core/templates/hash_set.h" |
37 | #include "core/variant/variant.h" |
38 | |
39 | struct _CoreConstant { |
40 | #ifdef DEBUG_METHODS_ENABLED |
41 | bool ignore_value_in_docs = false; |
42 | bool is_bitfield = false; |
43 | #endif |
44 | StringName enum_name; |
45 | const char *name = nullptr; |
46 | int64_t value = 0; |
47 | |
48 | _CoreConstant() {} |
49 | |
50 | #ifdef DEBUG_METHODS_ENABLED |
51 | _CoreConstant(const StringName &p_enum_name, const char *p_name, int64_t p_value, bool p_ignore_value_in_docs = false, bool p_is_bitfield = false) : |
52 | ignore_value_in_docs(p_ignore_value_in_docs), |
53 | is_bitfield(p_is_bitfield), |
54 | enum_name(p_enum_name), |
55 | name(p_name), |
56 | value(p_value) { |
57 | } |
58 | #else |
59 | _CoreConstant(const StringName &p_enum_name, const char *p_name, int64_t p_value) : |
60 | enum_name(p_enum_name), |
61 | name(p_name), |
62 | value(p_value) { |
63 | } |
64 | #endif |
65 | }; |
66 | |
67 | static Vector<_CoreConstant> _global_constants; |
68 | static HashMap<StringName, int> _global_constants_map; |
69 | static HashMap<StringName, Vector<_CoreConstant>> _global_enums; |
70 | |
71 | #ifdef DEBUG_METHODS_ENABLED |
72 | |
73 | #define BIND_CORE_CONSTANT(m_constant) \ |
74 | _global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant)); \ |
75 | _global_constants_map[#m_constant] = _global_constants.size() - 1; |
76 | |
77 | #define BIND_CORE_ENUM_CONSTANT(m_constant) \ |
78 | { \ |
79 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
80 | _global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \ |
81 | _global_constants_map[#m_constant] = _global_constants.size() - 1; \ |
82 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
83 | } |
84 | |
85 | #define BIND_CORE_BITFIELD_FLAG(m_constant) \ |
86 | { \ |
87 | StringName enum_name = __constant_get_bitfield_name(m_constant, #m_constant); \ |
88 | _global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant, false, true)); \ |
89 | _global_constants_map[#m_constant] = _global_constants.size() - 1; \ |
90 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
91 | } |
92 | |
93 | // This just binds enum classes as if they were regular enum constants. |
94 | #define BIND_CORE_ENUM_CLASS_CONSTANT(m_enum, m_prefix, m_member) \ |
95 | { \ |
96 | StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \ |
97 | _global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \ |
98 | _global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \ |
99 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
100 | } |
101 | |
102 | #define BIND_CORE_BITFIELD_CLASS_FLAG(m_enum, m_prefix, m_member) \ |
103 | { \ |
104 | StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_prefix "_" #m_member); \ |
105 | _global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member, false, true)); \ |
106 | _global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \ |
107 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
108 | } |
109 | |
110 | #define BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(m_enum, m_name, m_member) \ |
111 | { \ |
112 | StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_name); \ |
113 | _global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member)); \ |
114 | _global_constants_map[#m_name] = _global_constants.size() - 1; \ |
115 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
116 | } |
117 | |
118 | #define BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(m_enum, m_name, m_member) \ |
119 | { \ |
120 | StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_name); \ |
121 | _global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member, false, true)); \ |
122 | _global_constants_map[#m_name] = _global_constants.size() - 1; \ |
123 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
124 | } |
125 | |
126 | #define BIND_CORE_ENUM_CLASS_CONSTANT_NO_VAL(m_enum, m_prefix, m_member) \ |
127 | { \ |
128 | StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \ |
129 | _global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member, true)); \ |
130 | _global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \ |
131 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
132 | } |
133 | |
134 | #define BIND_CORE_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \ |
135 | { \ |
136 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
137 | _global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant)); \ |
138 | _global_constants_map[m_custom_name] = _global_constants.size() - 1; \ |
139 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
140 | } |
141 | |
142 | #define BIND_CORE_CONSTANT_NO_VAL(m_constant) \ |
143 | _global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant, true)); \ |
144 | _global_constants_map[#m_constant] = _global_constants.size() - 1; |
145 | |
146 | #define BIND_CORE_ENUM_CONSTANT_NO_VAL(m_constant) \ |
147 | { \ |
148 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
149 | _global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant, true)); \ |
150 | _global_constants_map[#m_constant] = _global_constants.size() - 1; \ |
151 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
152 | } |
153 | |
154 | #define BIND_CORE_ENUM_CONSTANT_CUSTOM_NO_VAL(m_custom_name, m_constant) \ |
155 | { \ |
156 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
157 | _global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant, true)); \ |
158 | _global_constants_map[m_custom_name] = _global_constants.size() - 1; \ |
159 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
160 | } |
161 | |
162 | #else |
163 | |
164 | #define BIND_CORE_CONSTANT(m_constant) \ |
165 | _global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant)); \ |
166 | _global_constants_map[#m_constant] = _global_constants.size() - 1; |
167 | |
168 | #define BIND_CORE_ENUM_CONSTANT(m_constant) \ |
169 | { \ |
170 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
171 | _global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \ |
172 | _global_constants_map[#m_constant] = _global_constants.size() - 1; \ |
173 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
174 | } |
175 | |
176 | #define BIND_CORE_BITFIELD_FLAG(m_constant) \ |
177 | { \ |
178 | StringName enum_name = __constant_get_bitfield_name(m_constant, #m_constant); \ |
179 | _global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \ |
180 | _global_constants_map[#m_constant] = _global_constants.size() - 1; \ |
181 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
182 | } |
183 | |
184 | // This just binds enum classes as if they were regular enum constants. |
185 | #define BIND_CORE_ENUM_CLASS_CONSTANT(m_enum, m_prefix, m_member) \ |
186 | { \ |
187 | StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \ |
188 | _global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \ |
189 | _global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \ |
190 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
191 | } |
192 | |
193 | #define BIND_CORE_BITFIELD_CLASS_FLAG(m_enum, m_prefix, m_member) \ |
194 | { \ |
195 | StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_prefix "_" #m_member); \ |
196 | _global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \ |
197 | _global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \ |
198 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
199 | } |
200 | |
201 | #define BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(m_enum, m_name, m_member) \ |
202 | { \ |
203 | StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_name); \ |
204 | _global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member)); \ |
205 | _global_constants_map[#m_name] = _global_constants.size() - 1; \ |
206 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
207 | } |
208 | |
209 | #define BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(m_enum, m_name, m_member) \ |
210 | { \ |
211 | StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_name); \ |
212 | _global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member)); \ |
213 | _global_constants_map[#m_name] = _global_constants.size() - 1; \ |
214 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
215 | } |
216 | |
217 | #define BIND_CORE_ENUM_CLASS_CONSTANT_NO_VAL(m_enum, m_prefix, m_member) \ |
218 | { \ |
219 | StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \ |
220 | _global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \ |
221 | _global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \ |
222 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
223 | } |
224 | |
225 | #define BIND_CORE_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \ |
226 | { \ |
227 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
228 | _global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant)); \ |
229 | _global_constants_map[m_custom_name] = _global_constants.size() - 1; \ |
230 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
231 | } |
232 | |
233 | #define BIND_CORE_CONSTANT_NO_VAL(m_constant) \ |
234 | _global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant)); \ |
235 | _global_constants_map[#m_constant] = _global_constants.size() - 1; |
236 | |
237 | #define BIND_CORE_ENUM_CONSTANT_NO_VAL(m_constant) \ |
238 | { \ |
239 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
240 | _global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \ |
241 | _global_constants_map[#m_constant] = _global_constants.size() - 1; \ |
242 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
243 | } |
244 | |
245 | #define BIND_CORE_ENUM_CONSTANT_CUSTOM_NO_VAL(m_custom_name, m_constant) \ |
246 | { \ |
247 | StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \ |
248 | _global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant)); \ |
249 | _global_constants_map[m_custom_name] = _global_constants.size() - 1; \ |
250 | _global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \ |
251 | } |
252 | |
253 | #endif |
254 | |
255 | void register_global_constants() { |
256 | BIND_CORE_ENUM_CONSTANT(SIDE_LEFT); |
257 | BIND_CORE_ENUM_CONSTANT(SIDE_TOP); |
258 | BIND_CORE_ENUM_CONSTANT(SIDE_RIGHT); |
259 | BIND_CORE_ENUM_CONSTANT(SIDE_BOTTOM); |
260 | |
261 | BIND_CORE_ENUM_CONSTANT(CORNER_TOP_LEFT); |
262 | BIND_CORE_ENUM_CONSTANT(CORNER_TOP_RIGHT); |
263 | BIND_CORE_ENUM_CONSTANT(CORNER_BOTTOM_RIGHT); |
264 | BIND_CORE_ENUM_CONSTANT(CORNER_BOTTOM_LEFT); |
265 | |
266 | BIND_CORE_ENUM_CONSTANT(VERTICAL); |
267 | BIND_CORE_ENUM_CONSTANT(HORIZONTAL); |
268 | |
269 | BIND_CORE_ENUM_CONSTANT(CLOCKWISE); |
270 | BIND_CORE_ENUM_CONSTANT(COUNTERCLOCKWISE); |
271 | |
272 | BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_LEFT); |
273 | BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_CENTER); |
274 | BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_RIGHT); |
275 | BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_FILL); |
276 | |
277 | BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_TOP); |
278 | BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_CENTER); |
279 | BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_BOTTOM); |
280 | BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_FILL); |
281 | |
282 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TOP_TO); |
283 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_CENTER_TO); |
284 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_BASELINE_TO); |
285 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_BOTTOM_TO); |
286 | |
287 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_TOP); |
288 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_CENTER); |
289 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_BASELINE); |
290 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_BOTTOM); |
291 | |
292 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TOP); |
293 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_CENTER); |
294 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_BOTTOM); |
295 | |
296 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_IMAGE_MASK); |
297 | BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TEXT_MASK); |
298 | |
299 | BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, XYZ); |
300 | BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, XZY); |
301 | BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, YXZ); |
302 | BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, YZX); |
303 | BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, ZXY); |
304 | BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, ZYX); |
305 | |
306 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NONE); |
307 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SPECIAL); |
308 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ESCAPE); |
309 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, TAB); |
310 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACKTAB); |
311 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACKSPACE); |
312 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ENTER); |
313 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_ENTER); |
314 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, INSERT); |
315 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_DELETE, KEY_DELETE); |
316 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PAUSE); |
317 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PRINT); |
318 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SYSREQ); |
319 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CLEAR); |
320 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HOME); |
321 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, END); |
322 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LEFT); |
323 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UP); |
324 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, RIGHT); |
325 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DOWN); |
326 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PAGEUP); |
327 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PAGEDOWN); |
328 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SHIFT); |
329 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CTRL); |
330 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, META); |
331 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ALT); |
332 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CAPSLOCK); |
333 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NUMLOCK); |
334 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SCROLLLOCK); |
335 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F1); |
336 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F2); |
337 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F3); |
338 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F4); |
339 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F5); |
340 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F6); |
341 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F7); |
342 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F8); |
343 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F9); |
344 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F10); |
345 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F11); |
346 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F12); |
347 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F13); |
348 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F14); |
349 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F15); |
350 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F16); |
351 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F17); |
352 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F18); |
353 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F19); |
354 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F20); |
355 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F21); |
356 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F22); |
357 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F23); |
358 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F24); |
359 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F25); |
360 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F26); |
361 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F27); |
362 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F28); |
363 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F29); |
364 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F30); |
365 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F31); |
366 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F32); |
367 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F33); |
368 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F34); |
369 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F35); |
370 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_MULTIPLY); |
371 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_DIVIDE); |
372 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_SUBTRACT); |
373 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_PERIOD); |
374 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_ADD); |
375 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_0); |
376 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_1); |
377 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_2); |
378 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_3); |
379 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_4); |
380 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_5); |
381 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_6); |
382 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_7); |
383 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_8); |
384 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_9); |
385 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MENU); |
386 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HYPER); |
387 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HELP); |
388 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACK); |
389 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, FORWARD); |
390 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, STOP); |
391 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, REFRESH); |
392 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEDOWN); |
393 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEMUTE); |
394 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEUP); |
395 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIAPLAY); |
396 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIASTOP); |
397 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIAPREVIOUS); |
398 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIANEXT); |
399 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIARECORD); |
400 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HOMEPAGE); |
401 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, FAVORITES); |
402 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SEARCH); |
403 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, STANDBY); |
404 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, OPENURL); |
405 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHMAIL); |
406 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHMEDIA); |
407 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH0); |
408 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH1); |
409 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH2); |
410 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH3); |
411 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH4); |
412 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH5); |
413 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH6); |
414 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH7); |
415 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH8); |
416 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH9); |
417 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHA); |
418 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHB); |
419 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHC); |
420 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHD); |
421 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHE); |
422 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHF); |
423 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GLOBE); |
424 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KEYBOARD); |
425 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_EISU); |
426 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_KANA); |
427 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UNKNOWN); |
428 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SPACE); |
429 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EXCLAM); |
430 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, QUOTEDBL); |
431 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NUMBERSIGN); |
432 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DOLLAR); |
433 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PERCENT); |
434 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, AMPERSAND); |
435 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, APOSTROPHE); |
436 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PARENLEFT); |
437 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PARENRIGHT); |
438 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASTERISK); |
439 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PLUS); |
440 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, COMMA); |
441 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MINUS); |
442 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PERIOD); |
443 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SLASH); |
444 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_0, KEY_0); |
445 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_1, KEY_1); |
446 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_2, KEY_2); |
447 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_3, KEY_3); |
448 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_4, KEY_4); |
449 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_5, KEY_5); |
450 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_6, KEY_6); |
451 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_7, KEY_7); |
452 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_8, KEY_8); |
453 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_9, KEY_9); |
454 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, COLON); |
455 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SEMICOLON); |
456 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LESS); |
457 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EQUAL); |
458 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GREATER); |
459 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, QUESTION); |
460 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, AT); |
461 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, A); |
462 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, B); |
463 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, C); |
464 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, D); |
465 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, E); |
466 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F); |
467 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, G); |
468 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, H); |
469 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, I); |
470 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, J); |
471 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, K); |
472 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, L); |
473 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, M); |
474 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, N); |
475 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, O); |
476 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, P); |
477 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, Q); |
478 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, R); |
479 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, S); |
480 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, T); |
481 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, U); |
482 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, V); |
483 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, W); |
484 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, X); |
485 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, Y); |
486 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, Z); |
487 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACKETLEFT); |
488 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACKSLASH); |
489 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACKETRIGHT); |
490 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASCIICIRCUM); |
491 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UNDERSCORE); |
492 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, QUOTELEFT); |
493 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACELEFT); |
494 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BAR); |
495 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACERIGHT); |
496 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASCIITILDE); |
497 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, YEN); |
498 | BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SECTION); |
499 | |
500 | BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_CODE_MASK, CODE_MASK); |
501 | BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_MODIFIER_MASK, MODIFIER_MASK); |
502 | BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, CMD_OR_CTRL); |
503 | BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, SHIFT); |
504 | BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, ALT); |
505 | BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, META); |
506 | BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, CTRL); |
507 | BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, KPAD); |
508 | BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, GROUP_SWITCH); |
509 | |
510 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, NONE); |
511 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, LEFT); |
512 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, RIGHT); |
513 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, MIDDLE); |
514 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_UP); |
515 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_DOWN); |
516 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_LEFT); |
517 | BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_RIGHT); |
518 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(MouseButton, MOUSE_BUTTON_XBUTTON1, MB_XBUTTON1); |
519 | BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(MouseButton, MOUSE_BUTTON_XBUTTON2, MB_XBUTTON2); |
520 | |
521 | BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, LEFT); |
522 | BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, RIGHT); |
523 | BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MIDDLE); |
524 | BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MB_XBUTTON1); |
525 | BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MB_XBUTTON2); |
526 | |
527 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, INVALID); |
528 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, A); |
529 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, B); |
530 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, X); |
531 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, Y); |
532 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, BACK); |
533 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, GUIDE); |
534 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, START); |
535 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, LEFT_STICK); |
536 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, RIGHT_STICK); |
537 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, LEFT_SHOULDER); |
538 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, RIGHT_SHOULDER); |
539 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_UP); |
540 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_DOWN); |
541 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_LEFT); |
542 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_RIGHT); |
543 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, MISC1); |
544 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE1); |
545 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE2); |
546 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE3); |
547 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE4); |
548 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, TOUCHPAD); |
549 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, SDL_MAX); |
550 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, MAX); |
551 | |
552 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, INVALID); |
553 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_X); |
554 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_Y); |
555 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_X); |
556 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_Y); |
557 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_LEFT); |
558 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_RIGHT); |
559 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, SDL_MAX); |
560 | BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, MAX); |
561 | |
562 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NONE); |
563 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NOTE_OFF); |
564 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NOTE_ON); |
565 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, AFTERTOUCH); |
566 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CONTROL_CHANGE); |
567 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, PROGRAM_CHANGE); |
568 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CHANNEL_PRESSURE); |
569 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, PITCH_BEND); |
570 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SYSTEM_EXCLUSIVE); |
571 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, QUARTER_FRAME); |
572 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SONG_POSITION_POINTER); |
573 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SONG_SELECT); |
574 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, TUNE_REQUEST); |
575 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, TIMING_CLOCK); |
576 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, START); |
577 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CONTINUE); |
578 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, STOP); |
579 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, ACTIVE_SENSING); |
580 | BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SYSTEM_RESET); |
581 | |
582 | // error list |
583 | |
584 | BIND_CORE_ENUM_CONSTANT(OK); // (0) |
585 | BIND_CORE_ENUM_CONSTANT(FAILED); |
586 | BIND_CORE_ENUM_CONSTANT(ERR_UNAVAILABLE); |
587 | BIND_CORE_ENUM_CONSTANT(ERR_UNCONFIGURED); |
588 | BIND_CORE_ENUM_CONSTANT(ERR_UNAUTHORIZED); |
589 | BIND_CORE_ENUM_CONSTANT(ERR_PARAMETER_RANGE_ERROR); // (5) |
590 | BIND_CORE_ENUM_CONSTANT(ERR_OUT_OF_MEMORY); |
591 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_NOT_FOUND); |
592 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_BAD_DRIVE); |
593 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_BAD_PATH); |
594 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_NO_PERMISSION); // (10) |
595 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_ALREADY_IN_USE); |
596 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_CANT_OPEN); |
597 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_CANT_WRITE); |
598 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_CANT_READ); |
599 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_UNRECOGNIZED); // (15) |
600 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_CORRUPT); |
601 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_MISSING_DEPENDENCIES); |
602 | BIND_CORE_ENUM_CONSTANT(ERR_FILE_EOF); |
603 | BIND_CORE_ENUM_CONSTANT(ERR_CANT_OPEN); |
604 | BIND_CORE_ENUM_CONSTANT(ERR_CANT_CREATE); // (20) |
605 | BIND_CORE_ENUM_CONSTANT(ERR_QUERY_FAILED); |
606 | BIND_CORE_ENUM_CONSTANT(ERR_ALREADY_IN_USE); |
607 | BIND_CORE_ENUM_CONSTANT(ERR_LOCKED); |
608 | BIND_CORE_ENUM_CONSTANT(ERR_TIMEOUT); |
609 | BIND_CORE_ENUM_CONSTANT(ERR_CANT_CONNECT); // (25) |
610 | BIND_CORE_ENUM_CONSTANT(ERR_CANT_RESOLVE); |
611 | BIND_CORE_ENUM_CONSTANT(ERR_CONNECTION_ERROR); |
612 | BIND_CORE_ENUM_CONSTANT(ERR_CANT_ACQUIRE_RESOURCE); |
613 | BIND_CORE_ENUM_CONSTANT(ERR_CANT_FORK); |
614 | BIND_CORE_ENUM_CONSTANT(ERR_INVALID_DATA); // (30) |
615 | BIND_CORE_ENUM_CONSTANT(ERR_INVALID_PARAMETER); |
616 | BIND_CORE_ENUM_CONSTANT(ERR_ALREADY_EXISTS); |
617 | BIND_CORE_ENUM_CONSTANT(ERR_DOES_NOT_EXIST); |
618 | BIND_CORE_ENUM_CONSTANT(ERR_DATABASE_CANT_READ); |
619 | BIND_CORE_ENUM_CONSTANT(ERR_DATABASE_CANT_WRITE); // (35) |
620 | BIND_CORE_ENUM_CONSTANT(ERR_COMPILATION_FAILED); |
621 | BIND_CORE_ENUM_CONSTANT(ERR_METHOD_NOT_FOUND); |
622 | BIND_CORE_ENUM_CONSTANT(ERR_LINK_FAILED); |
623 | BIND_CORE_ENUM_CONSTANT(ERR_SCRIPT_FAILED); |
624 | BIND_CORE_ENUM_CONSTANT(ERR_CYCLIC_LINK); // (40) |
625 | BIND_CORE_ENUM_CONSTANT(ERR_INVALID_DECLARATION); |
626 | BIND_CORE_ENUM_CONSTANT(ERR_DUPLICATE_SYMBOL); |
627 | BIND_CORE_ENUM_CONSTANT(ERR_PARSE_ERROR); |
628 | BIND_CORE_ENUM_CONSTANT(ERR_BUSY); |
629 | BIND_CORE_ENUM_CONSTANT(ERR_SKIP); // (45) |
630 | BIND_CORE_ENUM_CONSTANT(ERR_HELP); |
631 | BIND_CORE_ENUM_CONSTANT(ERR_BUG); |
632 | BIND_CORE_ENUM_CONSTANT(ERR_PRINTER_ON_FIRE); |
633 | |
634 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NONE); |
635 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_RANGE); |
636 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_ENUM); |
637 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_ENUM_SUGGESTION); |
638 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_EXP_EASING); |
639 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LINK); |
640 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_FLAGS); |
641 | |
642 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_RENDER); |
643 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_PHYSICS); |
644 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_NAVIGATION); |
645 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_RENDER); |
646 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_PHYSICS); |
647 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_NAVIGATION); |
648 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_AVOIDANCE); |
649 | |
650 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_FILE); |
651 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_DIR); |
652 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_FILE); |
653 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_DIR); |
654 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_RESOURCE_TYPE); |
655 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_MULTILINE_TEXT); |
656 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_EXPRESSION); |
657 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_PLACEHOLDER_TEXT); |
658 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_COLOR_NO_ALPHA); |
659 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_OBJECT_ID); |
660 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_TYPE_STRING); |
661 | |
662 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE); |
663 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_OBJECT_TOO_BIG); |
664 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NODE_PATH_VALID_TYPES); |
665 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_SAVE_FILE); |
666 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_SAVE_FILE); |
667 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_INT_IS_OBJECTID); |
668 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_INT_IS_POINTER); |
669 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_ARRAY_TYPE); |
670 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LOCALE_ID); |
671 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LOCALIZABLE_STRING); |
672 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NODE_TYPE); |
673 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_HIDE_QUATERNION_EDIT); |
674 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_PASSWORD); |
675 | BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_MAX); |
676 | |
677 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NONE); |
678 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_STORAGE); |
679 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_EDITOR); |
680 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_INTERNAL); |
681 | |
682 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CHECKABLE); |
683 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CHECKED); |
684 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_GROUP); |
685 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CATEGORY); |
686 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SUBGROUP); |
687 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CLASS_IS_BITFIELD); |
688 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NO_INSTANCE_STATE); |
689 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_RESTART_IF_CHANGED); |
690 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SCRIPT_VARIABLE); |
691 | |
692 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_STORE_IF_NULL); |
693 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED); |
694 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE); |
695 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CLASS_IS_ENUM); |
696 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NIL_IS_VARIANT); |
697 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_ARRAY); |
698 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_ALWAYS_DUPLICATE); |
699 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NEVER_DUPLICATE); |
700 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_HIGH_END_GFX); |
701 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT); |
702 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT); |
703 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_KEYING_INCREMENTS); |
704 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_DEFERRED_SET_RESOURCE); |
705 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT); |
706 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_EDITOR_BASIC_SETTING); |
707 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_READ_ONLY); |
708 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SECRET); |
709 | |
710 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_DEFAULT); |
711 | BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NO_EDITOR); |
712 | |
713 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_NORMAL); |
714 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_EDITOR); |
715 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_CONST); |
716 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_VIRTUAL); |
717 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_VARARG); |
718 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_STATIC); |
719 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_OBJECT_CORE); |
720 | BIND_CORE_BITFIELD_FLAG(METHOD_FLAGS_DEFAULT); |
721 | |
722 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_NIL" , Variant::NIL); |
723 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_BOOL" , Variant::BOOL); |
724 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_INT" , Variant::INT); |
725 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_FLOAT" , Variant::FLOAT); |
726 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_STRING" , Variant::STRING); |
727 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2" , Variant::VECTOR2); |
728 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2I" , Variant::VECTOR2I); |
729 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_RECT2" , Variant::RECT2); |
730 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_RECT2I" , Variant::RECT2I); |
731 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3" , Variant::VECTOR3); |
732 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3I" , Variant::VECTOR3I); |
733 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM2D" , Variant::TRANSFORM2D); |
734 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR4" , Variant::VECTOR4); |
735 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR4I" , Variant::VECTOR4I); |
736 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PLANE" , Variant::PLANE); |
737 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_QUATERNION" , Variant::QUATERNION); |
738 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_AABB" , Variant::AABB); |
739 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_BASIS" , Variant::BASIS); |
740 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM3D" , Variant::TRANSFORM3D); |
741 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PROJECTION" , Variant::PROJECTION); |
742 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_COLOR" , Variant::COLOR); |
743 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_STRING_NAME" , Variant::STRING_NAME); |
744 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_NODE_PATH" , Variant::NODE_PATH); |
745 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_RID" , Variant::RID); |
746 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_OBJECT" , Variant::OBJECT); |
747 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_CALLABLE" , Variant::CALLABLE); |
748 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_SIGNAL" , Variant::SIGNAL); |
749 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_DICTIONARY" , Variant::DICTIONARY); |
750 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_ARRAY" , Variant::ARRAY); |
751 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_BYTE_ARRAY" , Variant::PACKED_BYTE_ARRAY); |
752 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_INT32_ARRAY" , Variant::PACKED_INT32_ARRAY); |
753 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_INT64_ARRAY" , Variant::PACKED_INT64_ARRAY); |
754 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_FLOAT32_ARRAY" , Variant::PACKED_FLOAT32_ARRAY); |
755 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_FLOAT64_ARRAY" , Variant::PACKED_FLOAT64_ARRAY); |
756 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_STRING_ARRAY" , Variant::PACKED_STRING_ARRAY); |
757 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_VECTOR2_ARRAY" , Variant::PACKED_VECTOR2_ARRAY); |
758 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_VECTOR3_ARRAY" , Variant::PACKED_VECTOR3_ARRAY); |
759 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_COLOR_ARRAY" , Variant::PACKED_COLOR_ARRAY); |
760 | BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_MAX" , Variant::VARIANT_MAX); |
761 | |
762 | //comparison |
763 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_EQUAL" , Variant::OP_EQUAL); |
764 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_NOT_EQUAL" , Variant::OP_NOT_EQUAL); |
765 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_LESS" , Variant::OP_LESS); |
766 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_LESS_EQUAL" , Variant::OP_LESS_EQUAL); |
767 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_GREATER" , Variant::OP_GREATER); |
768 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_GREATER_EQUAL" , Variant::OP_GREATER_EQUAL); |
769 | //mathematic |
770 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_ADD" , Variant::OP_ADD); |
771 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_SUBTRACT" , Variant::OP_SUBTRACT); |
772 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_MULTIPLY" , Variant::OP_MULTIPLY); |
773 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_DIVIDE" , Variant::OP_DIVIDE); |
774 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_NEGATE" , Variant::OP_NEGATE); |
775 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_POSITIVE" , Variant::OP_POSITIVE); |
776 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_MODULE" , Variant::OP_MODULE); |
777 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_POWER" , Variant::OP_POWER); |
778 | //bitwise |
779 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_SHIFT_LEFT" , Variant::OP_SHIFT_LEFT); |
780 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_SHIFT_RIGHT" , Variant::OP_SHIFT_RIGHT); |
781 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_AND" , Variant::OP_BIT_AND); |
782 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_OR" , Variant::OP_BIT_OR); |
783 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_XOR" , Variant::OP_BIT_XOR); |
784 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_NEGATE" , Variant::OP_BIT_NEGATE); |
785 | //logic |
786 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_AND" , Variant::OP_AND); |
787 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_OR" , Variant::OP_OR); |
788 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_XOR" , Variant::OP_XOR); |
789 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_NOT" , Variant::OP_NOT); |
790 | //containment |
791 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_IN" , Variant::OP_IN); |
792 | BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_MAX" , Variant::OP_MAX); |
793 | } |
794 | |
795 | void unregister_global_constants() { |
796 | _global_constants.clear(); |
797 | } |
798 | |
799 | int CoreConstants::get_global_constant_count() { |
800 | return _global_constants.size(); |
801 | } |
802 | |
803 | StringName CoreConstants::get_global_constant_enum(int p_idx) { |
804 | return _global_constants[p_idx].enum_name; |
805 | } |
806 | |
807 | #ifdef DEBUG_METHODS_ENABLED |
808 | bool CoreConstants::is_global_constant_bitfield(int p_idx) { |
809 | return _global_constants[p_idx].is_bitfield; |
810 | } |
811 | |
812 | bool CoreConstants::get_ignore_value_in_docs(int p_idx) { |
813 | return _global_constants[p_idx].ignore_value_in_docs; |
814 | } |
815 | #else |
816 | bool CoreConstants::is_global_constant_bitfield(int p_idx) { |
817 | return false; |
818 | } |
819 | |
820 | bool CoreConstants::get_ignore_value_in_docs(int p_idx) { |
821 | return false; |
822 | } |
823 | #endif |
824 | |
825 | const char *CoreConstants::get_global_constant_name(int p_idx) { |
826 | return _global_constants[p_idx].name; |
827 | } |
828 | |
829 | int64_t CoreConstants::get_global_constant_value(int p_idx) { |
830 | return _global_constants[p_idx].value; |
831 | } |
832 | |
833 | bool CoreConstants::is_global_constant(const StringName &p_name) { |
834 | return _global_constants_map.has(p_name); |
835 | } |
836 | |
837 | int CoreConstants::get_global_constant_index(const StringName &p_name) { |
838 | ERR_FAIL_COND_V_MSG(!_global_constants_map.has(p_name), -1, "Trying to get index of non-existing constant." ); |
839 | return _global_constants_map[p_name]; |
840 | } |
841 | |
842 | bool CoreConstants::is_global_enum(const StringName &p_enum) { |
843 | return _global_enums.has(p_enum); |
844 | } |
845 | |
846 | void CoreConstants::get_enum_values(StringName p_enum, HashMap<StringName, int64_t> *p_values) { |
847 | ERR_FAIL_NULL_MSG(p_values, "Trying to get enum values with null map." ); |
848 | ERR_FAIL_COND_MSG(!_global_enums.has(p_enum), "Trying to get values of non-existing enum." ); |
849 | for (const _CoreConstant &constant : _global_enums[p_enum]) { |
850 | (*p_values)[constant.name] = constant.value; |
851 | } |
852 | } |
853 | |