1 /*************************************************************************/
2 /* global_constants.cpp */
3 /*************************************************************************/
4 /* This file is part of: */
5 /* GODOT ENGINE */
6 /* https://godotengine.org */
7 /*************************************************************************/
8 /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
9 /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
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 #include "global_constants.h"
31 #include "object.h"
32 #include "os/keyboard.h"
33 #include "variant.h"
34
35 struct _GlobalConstant {
36
37 const char *name;
38 int value;
39 };
40
41 #define BIND_GLOBAL_CONSTANT(m_constant) \
42 { #m_constant, m_constant }
43
44 static _GlobalConstant _global_constants[] = {
45
46 //{ KEY_BACKSPACE, VK_BACK },// (0x08) // backspace
47
48 BIND_GLOBAL_CONSTANT(MARGIN_LEFT),
49 BIND_GLOBAL_CONSTANT(MARGIN_TOP),
50 BIND_GLOBAL_CONSTANT(MARGIN_RIGHT),
51 BIND_GLOBAL_CONSTANT(MARGIN_BOTTOM),
52 BIND_GLOBAL_CONSTANT(VERTICAL),
53 BIND_GLOBAL_CONSTANT(HORIZONTAL),
54 BIND_GLOBAL_CONSTANT(HALIGN_LEFT),
55 BIND_GLOBAL_CONSTANT(HALIGN_CENTER),
56 BIND_GLOBAL_CONSTANT(HALIGN_RIGHT),
57 BIND_GLOBAL_CONSTANT(VALIGN_TOP),
58 BIND_GLOBAL_CONSTANT(VALIGN_CENTER),
59 BIND_GLOBAL_CONSTANT(VALIGN_BOTTOM),
60
61 // hueg list of keys
62 BIND_GLOBAL_CONSTANT(SPKEY),
63
64 BIND_GLOBAL_CONSTANT(KEY_ESCAPE),
65 BIND_GLOBAL_CONSTANT(KEY_TAB),
66 BIND_GLOBAL_CONSTANT(KEY_BACKTAB),
67 BIND_GLOBAL_CONSTANT(KEY_BACKSPACE),
68 BIND_GLOBAL_CONSTANT(KEY_RETURN),
69 BIND_GLOBAL_CONSTANT(KEY_ENTER),
70 BIND_GLOBAL_CONSTANT(KEY_INSERT),
71 BIND_GLOBAL_CONSTANT(KEY_DELETE),
72 BIND_GLOBAL_CONSTANT(KEY_PAUSE),
73 BIND_GLOBAL_CONSTANT(KEY_PRINT),
74 BIND_GLOBAL_CONSTANT(KEY_SYSREQ),
75 BIND_GLOBAL_CONSTANT(KEY_CLEAR),
76 BIND_GLOBAL_CONSTANT(KEY_HOME),
77 BIND_GLOBAL_CONSTANT(KEY_END),
78 BIND_GLOBAL_CONSTANT(KEY_LEFT),
79 BIND_GLOBAL_CONSTANT(KEY_UP),
80 BIND_GLOBAL_CONSTANT(KEY_RIGHT),
81 BIND_GLOBAL_CONSTANT(KEY_DOWN),
82 BIND_GLOBAL_CONSTANT(KEY_PAGEUP),
83 BIND_GLOBAL_CONSTANT(KEY_PAGEDOWN),
84 BIND_GLOBAL_CONSTANT(KEY_SHIFT),
85 BIND_GLOBAL_CONSTANT(KEY_CONTROL),
86 BIND_GLOBAL_CONSTANT(KEY_META),
87 BIND_GLOBAL_CONSTANT(KEY_ALT),
88 BIND_GLOBAL_CONSTANT(KEY_CAPSLOCK),
89 BIND_GLOBAL_CONSTANT(KEY_NUMLOCK),
90 BIND_GLOBAL_CONSTANT(KEY_SCROLLLOCK),
91 BIND_GLOBAL_CONSTANT(KEY_F1),
92 BIND_GLOBAL_CONSTANT(KEY_F2),
93 BIND_GLOBAL_CONSTANT(KEY_F3),
94 BIND_GLOBAL_CONSTANT(KEY_F4),
95 BIND_GLOBAL_CONSTANT(KEY_F5),
96 BIND_GLOBAL_CONSTANT(KEY_F6),
97 BIND_GLOBAL_CONSTANT(KEY_F7),
98 BIND_GLOBAL_CONSTANT(KEY_F8),
99 BIND_GLOBAL_CONSTANT(KEY_F9),
100 BIND_GLOBAL_CONSTANT(KEY_F10),
101 BIND_GLOBAL_CONSTANT(KEY_F11),
102 BIND_GLOBAL_CONSTANT(KEY_F12),
103 BIND_GLOBAL_CONSTANT(KEY_F13),
104 BIND_GLOBAL_CONSTANT(KEY_F14),
105 BIND_GLOBAL_CONSTANT(KEY_F15),
106 BIND_GLOBAL_CONSTANT(KEY_F16),
107 BIND_GLOBAL_CONSTANT(KEY_KP_ENTER),
108 BIND_GLOBAL_CONSTANT(KEY_KP_MULTIPLY),
109 BIND_GLOBAL_CONSTANT(KEY_KP_DIVIDE),
110 BIND_GLOBAL_CONSTANT(KEY_KP_SUBTRACT),
111 BIND_GLOBAL_CONSTANT(KEY_KP_PERIOD),
112 BIND_GLOBAL_CONSTANT(KEY_KP_ADD),
113 BIND_GLOBAL_CONSTANT(KEY_KP_0),
114 BIND_GLOBAL_CONSTANT(KEY_KP_1),
115 BIND_GLOBAL_CONSTANT(KEY_KP_2),
116 BIND_GLOBAL_CONSTANT(KEY_KP_3),
117 BIND_GLOBAL_CONSTANT(KEY_KP_4),
118 BIND_GLOBAL_CONSTANT(KEY_KP_5),
119 BIND_GLOBAL_CONSTANT(KEY_KP_6),
120 BIND_GLOBAL_CONSTANT(KEY_KP_7),
121 BIND_GLOBAL_CONSTANT(KEY_KP_8),
122 BIND_GLOBAL_CONSTANT(KEY_KP_9),
123 BIND_GLOBAL_CONSTANT(KEY_SUPER_L),
124 BIND_GLOBAL_CONSTANT(KEY_SUPER_R),
125 BIND_GLOBAL_CONSTANT(KEY_MENU),
126 BIND_GLOBAL_CONSTANT(KEY_HYPER_L),
127 BIND_GLOBAL_CONSTANT(KEY_HYPER_R),
128 BIND_GLOBAL_CONSTANT(KEY_HELP),
129 BIND_GLOBAL_CONSTANT(KEY_DIRECTION_L),
130 BIND_GLOBAL_CONSTANT(KEY_DIRECTION_R),
131 BIND_GLOBAL_CONSTANT(KEY_BACK),
132 BIND_GLOBAL_CONSTANT(KEY_FORWARD),
133 BIND_GLOBAL_CONSTANT(KEY_STOP),
134 BIND_GLOBAL_CONSTANT(KEY_REFRESH),
135 BIND_GLOBAL_CONSTANT(KEY_VOLUMEDOWN),
136 BIND_GLOBAL_CONSTANT(KEY_VOLUMEMUTE),
137 BIND_GLOBAL_CONSTANT(KEY_VOLUMEUP),
138 BIND_GLOBAL_CONSTANT(KEY_BASSBOOST),
139 BIND_GLOBAL_CONSTANT(KEY_BASSUP),
140 BIND_GLOBAL_CONSTANT(KEY_BASSDOWN),
141 BIND_GLOBAL_CONSTANT(KEY_TREBLEUP),
142 BIND_GLOBAL_CONSTANT(KEY_TREBLEDOWN),
143 BIND_GLOBAL_CONSTANT(KEY_MEDIAPLAY),
144 BIND_GLOBAL_CONSTANT(KEY_MEDIASTOP),
145 BIND_GLOBAL_CONSTANT(KEY_MEDIAPREVIOUS),
146 BIND_GLOBAL_CONSTANT(KEY_MEDIANEXT),
147 BIND_GLOBAL_CONSTANT(KEY_MEDIARECORD),
148 BIND_GLOBAL_CONSTANT(KEY_HOMEPAGE),
149 BIND_GLOBAL_CONSTANT(KEY_FAVORITES),
150 BIND_GLOBAL_CONSTANT(KEY_SEARCH),
151 BIND_GLOBAL_CONSTANT(KEY_STANDBY),
152 BIND_GLOBAL_CONSTANT(KEY_OPENURL),
153 BIND_GLOBAL_CONSTANT(KEY_LAUNCHMAIL),
154 BIND_GLOBAL_CONSTANT(KEY_LAUNCHMEDIA),
155 BIND_GLOBAL_CONSTANT(KEY_LAUNCH0),
156 BIND_GLOBAL_CONSTANT(KEY_LAUNCH1),
157 BIND_GLOBAL_CONSTANT(KEY_LAUNCH2),
158 BIND_GLOBAL_CONSTANT(KEY_LAUNCH3),
159 BIND_GLOBAL_CONSTANT(KEY_LAUNCH4),
160 BIND_GLOBAL_CONSTANT(KEY_LAUNCH5),
161 BIND_GLOBAL_CONSTANT(KEY_LAUNCH6),
162 BIND_GLOBAL_CONSTANT(KEY_LAUNCH7),
163 BIND_GLOBAL_CONSTANT(KEY_LAUNCH8),
164 BIND_GLOBAL_CONSTANT(KEY_LAUNCH9),
165 BIND_GLOBAL_CONSTANT(KEY_LAUNCHA),
166 BIND_GLOBAL_CONSTANT(KEY_LAUNCHB),
167 BIND_GLOBAL_CONSTANT(KEY_LAUNCHC),
168 BIND_GLOBAL_CONSTANT(KEY_LAUNCHD),
169 BIND_GLOBAL_CONSTANT(KEY_LAUNCHE),
170 BIND_GLOBAL_CONSTANT(KEY_LAUNCHF),
171
172 BIND_GLOBAL_CONSTANT(KEY_UNKNOWN),
173 BIND_GLOBAL_CONSTANT(KEY_SPACE),
174 BIND_GLOBAL_CONSTANT(KEY_EXCLAM),
175 BIND_GLOBAL_CONSTANT(KEY_QUOTEDBL),
176 BIND_GLOBAL_CONSTANT(KEY_NUMBERSIGN),
177 BIND_GLOBAL_CONSTANT(KEY_DOLLAR),
178 BIND_GLOBAL_CONSTANT(KEY_PERCENT),
179 BIND_GLOBAL_CONSTANT(KEY_AMPERSAND),
180 BIND_GLOBAL_CONSTANT(KEY_APOSTROPHE),
181 BIND_GLOBAL_CONSTANT(KEY_PARENLEFT),
182 BIND_GLOBAL_CONSTANT(KEY_PARENRIGHT),
183 BIND_GLOBAL_CONSTANT(KEY_ASTERISK),
184 BIND_GLOBAL_CONSTANT(KEY_PLUS),
185 BIND_GLOBAL_CONSTANT(KEY_COMMA),
186 BIND_GLOBAL_CONSTANT(KEY_MINUS),
187 BIND_GLOBAL_CONSTANT(KEY_PERIOD),
188 BIND_GLOBAL_CONSTANT(KEY_SLASH),
189 BIND_GLOBAL_CONSTANT(KEY_0),
190 BIND_GLOBAL_CONSTANT(KEY_1),
191 BIND_GLOBAL_CONSTANT(KEY_2),
192 BIND_GLOBAL_CONSTANT(KEY_3),
193 BIND_GLOBAL_CONSTANT(KEY_4),
194 BIND_GLOBAL_CONSTANT(KEY_5),
195 BIND_GLOBAL_CONSTANT(KEY_6),
196 BIND_GLOBAL_CONSTANT(KEY_7),
197 BIND_GLOBAL_CONSTANT(KEY_8),
198 BIND_GLOBAL_CONSTANT(KEY_9),
199 BIND_GLOBAL_CONSTANT(KEY_COLON),
200 BIND_GLOBAL_CONSTANT(KEY_SEMICOLON),
201 BIND_GLOBAL_CONSTANT(KEY_LESS),
202 BIND_GLOBAL_CONSTANT(KEY_EQUAL),
203 BIND_GLOBAL_CONSTANT(KEY_GREATER),
204 BIND_GLOBAL_CONSTANT(KEY_QUESTION),
205 BIND_GLOBAL_CONSTANT(KEY_AT),
206 BIND_GLOBAL_CONSTANT(KEY_A),
207 BIND_GLOBAL_CONSTANT(KEY_B),
208 BIND_GLOBAL_CONSTANT(KEY_C),
209 BIND_GLOBAL_CONSTANT(KEY_D),
210 BIND_GLOBAL_CONSTANT(KEY_E),
211 BIND_GLOBAL_CONSTANT(KEY_F),
212 BIND_GLOBAL_CONSTANT(KEY_G),
213 BIND_GLOBAL_CONSTANT(KEY_H),
214 BIND_GLOBAL_CONSTANT(KEY_I),
215 BIND_GLOBAL_CONSTANT(KEY_J),
216 BIND_GLOBAL_CONSTANT(KEY_K),
217 BIND_GLOBAL_CONSTANT(KEY_L),
218 BIND_GLOBAL_CONSTANT(KEY_M),
219 BIND_GLOBAL_CONSTANT(KEY_N),
220 BIND_GLOBAL_CONSTANT(KEY_O),
221 BIND_GLOBAL_CONSTANT(KEY_P),
222 BIND_GLOBAL_CONSTANT(KEY_Q),
223 BIND_GLOBAL_CONSTANT(KEY_R),
224 BIND_GLOBAL_CONSTANT(KEY_S),
225 BIND_GLOBAL_CONSTANT(KEY_T),
226 BIND_GLOBAL_CONSTANT(KEY_U),
227 BIND_GLOBAL_CONSTANT(KEY_V),
228 BIND_GLOBAL_CONSTANT(KEY_W),
229 BIND_GLOBAL_CONSTANT(KEY_X),
230 BIND_GLOBAL_CONSTANT(KEY_Y),
231 BIND_GLOBAL_CONSTANT(KEY_Z),
232 BIND_GLOBAL_CONSTANT(KEY_BRACKETLEFT),
233 BIND_GLOBAL_CONSTANT(KEY_BACKSLASH),
234 BIND_GLOBAL_CONSTANT(KEY_BRACKETRIGHT),
235 BIND_GLOBAL_CONSTANT(KEY_ASCIICIRCUM),
236 BIND_GLOBAL_CONSTANT(KEY_UNDERSCORE),
237 BIND_GLOBAL_CONSTANT(KEY_QUOTELEFT),
238 BIND_GLOBAL_CONSTANT(KEY_BRACELEFT),
239 BIND_GLOBAL_CONSTANT(KEY_BAR),
240 BIND_GLOBAL_CONSTANT(KEY_BRACERIGHT),
241 BIND_GLOBAL_CONSTANT(KEY_ASCIITILDE),
242 BIND_GLOBAL_CONSTANT(KEY_NOBREAKSPACE),
243 BIND_GLOBAL_CONSTANT(KEY_EXCLAMDOWN),
244 BIND_GLOBAL_CONSTANT(KEY_CENT),
245 BIND_GLOBAL_CONSTANT(KEY_STERLING),
246 BIND_GLOBAL_CONSTANT(KEY_CURRENCY),
247 BIND_GLOBAL_CONSTANT(KEY_YEN),
248 BIND_GLOBAL_CONSTANT(KEY_BROKENBAR),
249 BIND_GLOBAL_CONSTANT(KEY_SECTION),
250 BIND_GLOBAL_CONSTANT(KEY_DIAERESIS),
251 BIND_GLOBAL_CONSTANT(KEY_COPYRIGHT),
252 BIND_GLOBAL_CONSTANT(KEY_ORDFEMININE),
253 BIND_GLOBAL_CONSTANT(KEY_GUILLEMOTLEFT),
254 BIND_GLOBAL_CONSTANT(KEY_NOTSIGN),
255 BIND_GLOBAL_CONSTANT(KEY_HYPHEN),
256 BIND_GLOBAL_CONSTANT(KEY_REGISTERED),
257 BIND_GLOBAL_CONSTANT(KEY_MACRON),
258 BIND_GLOBAL_CONSTANT(KEY_DEGREE),
259 BIND_GLOBAL_CONSTANT(KEY_PLUSMINUS),
260 BIND_GLOBAL_CONSTANT(KEY_TWOSUPERIOR),
261 BIND_GLOBAL_CONSTANT(KEY_THREESUPERIOR),
262 BIND_GLOBAL_CONSTANT(KEY_ACUTE),
263 BIND_GLOBAL_CONSTANT(KEY_MU),
264 BIND_GLOBAL_CONSTANT(KEY_PARAGRAPH),
265 BIND_GLOBAL_CONSTANT(KEY_PERIODCENTERED),
266 BIND_GLOBAL_CONSTANT(KEY_CEDILLA),
267 BIND_GLOBAL_CONSTANT(KEY_ONESUPERIOR),
268 BIND_GLOBAL_CONSTANT(KEY_MASCULINE),
269 BIND_GLOBAL_CONSTANT(KEY_GUILLEMOTRIGHT),
270 BIND_GLOBAL_CONSTANT(KEY_ONEQUARTER),
271 BIND_GLOBAL_CONSTANT(KEY_ONEHALF),
272 BIND_GLOBAL_CONSTANT(KEY_THREEQUARTERS),
273 BIND_GLOBAL_CONSTANT(KEY_QUESTIONDOWN),
274 BIND_GLOBAL_CONSTANT(KEY_AGRAVE),
275 BIND_GLOBAL_CONSTANT(KEY_AACUTE),
276 BIND_GLOBAL_CONSTANT(KEY_ACIRCUMFLEX),
277 BIND_GLOBAL_CONSTANT(KEY_ATILDE),
278 BIND_GLOBAL_CONSTANT(KEY_ADIAERESIS),
279 BIND_GLOBAL_CONSTANT(KEY_ARING),
280 BIND_GLOBAL_CONSTANT(KEY_AE),
281 BIND_GLOBAL_CONSTANT(KEY_CCEDILLA),
282 BIND_GLOBAL_CONSTANT(KEY_EGRAVE),
283 BIND_GLOBAL_CONSTANT(KEY_EACUTE),
284 BIND_GLOBAL_CONSTANT(KEY_ECIRCUMFLEX),
285 BIND_GLOBAL_CONSTANT(KEY_EDIAERESIS),
286 BIND_GLOBAL_CONSTANT(KEY_IGRAVE),
287 BIND_GLOBAL_CONSTANT(KEY_IACUTE),
288 BIND_GLOBAL_CONSTANT(KEY_ICIRCUMFLEX),
289 BIND_GLOBAL_CONSTANT(KEY_IDIAERESIS),
290 BIND_GLOBAL_CONSTANT(KEY_ETH),
291 BIND_GLOBAL_CONSTANT(KEY_NTILDE),
292 BIND_GLOBAL_CONSTANT(KEY_OGRAVE),
293 BIND_GLOBAL_CONSTANT(KEY_OACUTE),
294 BIND_GLOBAL_CONSTANT(KEY_OCIRCUMFLEX),
295 BIND_GLOBAL_CONSTANT(KEY_OTILDE),
296 BIND_GLOBAL_CONSTANT(KEY_ODIAERESIS),
297 BIND_GLOBAL_CONSTANT(KEY_MULTIPLY),
298 BIND_GLOBAL_CONSTANT(KEY_OOBLIQUE),
299 BIND_GLOBAL_CONSTANT(KEY_UGRAVE),
300 BIND_GLOBAL_CONSTANT(KEY_UACUTE),
301 BIND_GLOBAL_CONSTANT(KEY_UCIRCUMFLEX),
302 BIND_GLOBAL_CONSTANT(KEY_UDIAERESIS),
303 BIND_GLOBAL_CONSTANT(KEY_YACUTE),
304 BIND_GLOBAL_CONSTANT(KEY_THORN),
305 BIND_GLOBAL_CONSTANT(KEY_SSHARP),
306
307 BIND_GLOBAL_CONSTANT(KEY_DIVISION),
308 BIND_GLOBAL_CONSTANT(KEY_YDIAERESIS),
309
310 BIND_GLOBAL_CONSTANT(KEY_CODE_MASK),
311 BIND_GLOBAL_CONSTANT(KEY_MODIFIER_MASK),
312
313 BIND_GLOBAL_CONSTANT(KEY_MASK_SHIFT),
314 BIND_GLOBAL_CONSTANT(KEY_MASK_ALT),
315 BIND_GLOBAL_CONSTANT(KEY_MASK_META),
316 BIND_GLOBAL_CONSTANT(KEY_MASK_CTRL),
317 BIND_GLOBAL_CONSTANT(KEY_MASK_CMD),
318 BIND_GLOBAL_CONSTANT(KEY_MASK_KPAD),
319 BIND_GLOBAL_CONSTANT(KEY_MASK_GROUP_SWITCH),
320
321 // mouse
322 BIND_GLOBAL_CONSTANT(BUTTON_LEFT),
323 BIND_GLOBAL_CONSTANT(BUTTON_RIGHT),
324 BIND_GLOBAL_CONSTANT(BUTTON_MIDDLE),
325 BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_UP),
326 BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_DOWN),
327 BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_LEFT),
328 BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_RIGHT),
329 BIND_GLOBAL_CONSTANT(BUTTON_MASK_LEFT),
330 BIND_GLOBAL_CONSTANT(BUTTON_MASK_RIGHT),
331 BIND_GLOBAL_CONSTANT(BUTTON_MASK_MIDDLE),
332
333 //joysticks
334 BIND_GLOBAL_CONSTANT(JOY_BUTTON_0),
335 BIND_GLOBAL_CONSTANT(JOY_BUTTON_1),
336 BIND_GLOBAL_CONSTANT(JOY_BUTTON_2),
337 BIND_GLOBAL_CONSTANT(JOY_BUTTON_3),
338 BIND_GLOBAL_CONSTANT(JOY_BUTTON_4),
339 BIND_GLOBAL_CONSTANT(JOY_BUTTON_5),
340 BIND_GLOBAL_CONSTANT(JOY_BUTTON_6),
341 BIND_GLOBAL_CONSTANT(JOY_BUTTON_7),
342 BIND_GLOBAL_CONSTANT(JOY_BUTTON_8),
343 BIND_GLOBAL_CONSTANT(JOY_BUTTON_9),
344 BIND_GLOBAL_CONSTANT(JOY_BUTTON_10),
345 BIND_GLOBAL_CONSTANT(JOY_BUTTON_11),
346 BIND_GLOBAL_CONSTANT(JOY_BUTTON_12),
347 BIND_GLOBAL_CONSTANT(JOY_BUTTON_13),
348 BIND_GLOBAL_CONSTANT(JOY_BUTTON_14),
349 BIND_GLOBAL_CONSTANT(JOY_BUTTON_15),
350 BIND_GLOBAL_CONSTANT(JOY_BUTTON_MAX),
351
352 BIND_GLOBAL_CONSTANT(JOY_SNES_A),
353 BIND_GLOBAL_CONSTANT(JOY_SNES_B),
354 BIND_GLOBAL_CONSTANT(JOY_SNES_X),
355 BIND_GLOBAL_CONSTANT(JOY_SNES_Y),
356
357 BIND_GLOBAL_CONSTANT(JOY_SONY_CIRCLE),
358 BIND_GLOBAL_CONSTANT(JOY_SONY_X),
359 BIND_GLOBAL_CONSTANT(JOY_SONY_SQUARE),
360 BIND_GLOBAL_CONSTANT(JOY_SONY_TRIANGLE),
361
362 BIND_GLOBAL_CONSTANT(JOY_SEGA_B),
363 BIND_GLOBAL_CONSTANT(JOY_SEGA_A),
364 BIND_GLOBAL_CONSTANT(JOY_SEGA_X),
365 BIND_GLOBAL_CONSTANT(JOY_SEGA_Y),
366
367 BIND_GLOBAL_CONSTANT(JOY_XBOX_B),
368 BIND_GLOBAL_CONSTANT(JOY_XBOX_A),
369 BIND_GLOBAL_CONSTANT(JOY_XBOX_X),
370 BIND_GLOBAL_CONSTANT(JOY_XBOX_Y),
371
372 BIND_GLOBAL_CONSTANT(JOY_DS_A),
373 BIND_GLOBAL_CONSTANT(JOY_DS_B),
374 BIND_GLOBAL_CONSTANT(JOY_DS_X),
375 BIND_GLOBAL_CONSTANT(JOY_DS_Y),
376
377 BIND_GLOBAL_CONSTANT(JOY_SELECT),
378 BIND_GLOBAL_CONSTANT(JOY_START),
379 BIND_GLOBAL_CONSTANT(JOY_DPAD_UP),
380 BIND_GLOBAL_CONSTANT(JOY_DPAD_DOWN),
381 BIND_GLOBAL_CONSTANT(JOY_DPAD_LEFT),
382 BIND_GLOBAL_CONSTANT(JOY_DPAD_RIGHT),
383 BIND_GLOBAL_CONSTANT(JOY_L),
384 BIND_GLOBAL_CONSTANT(JOY_L2),
385 BIND_GLOBAL_CONSTANT(JOY_L3),
386 BIND_GLOBAL_CONSTANT(JOY_R),
387 BIND_GLOBAL_CONSTANT(JOY_R2),
388 BIND_GLOBAL_CONSTANT(JOY_R3),
389
390 BIND_GLOBAL_CONSTANT(JOY_AXIS_0),
391 BIND_GLOBAL_CONSTANT(JOY_AXIS_1),
392 BIND_GLOBAL_CONSTANT(JOY_AXIS_2),
393 BIND_GLOBAL_CONSTANT(JOY_AXIS_3),
394 BIND_GLOBAL_CONSTANT(JOY_AXIS_4),
395 BIND_GLOBAL_CONSTANT(JOY_AXIS_5),
396 BIND_GLOBAL_CONSTANT(JOY_AXIS_6),
397 BIND_GLOBAL_CONSTANT(JOY_AXIS_7),
398 BIND_GLOBAL_CONSTANT(JOY_AXIS_MAX),
399
400 BIND_GLOBAL_CONSTANT(JOY_ANALOG_0_X),
401 BIND_GLOBAL_CONSTANT(JOY_ANALOG_0_Y),
402
403 BIND_GLOBAL_CONSTANT(JOY_ANALOG_1_X),
404 BIND_GLOBAL_CONSTANT(JOY_ANALOG_1_Y),
405
406 BIND_GLOBAL_CONSTANT(JOY_ANALOG_2_X),
407 BIND_GLOBAL_CONSTANT(JOY_ANALOG_2_Y),
408
409 BIND_GLOBAL_CONSTANT(JOY_ANALOG_L2),
410 BIND_GLOBAL_CONSTANT(JOY_ANALOG_R2),
411
412 // error list
413
414 BIND_GLOBAL_CONSTANT(OK),
415 BIND_GLOBAL_CONSTANT(FAILED), ///< Generic fail error
416 BIND_GLOBAL_CONSTANT(ERR_UNAVAILABLE), ///< What is requested is unsupported/unavailable
417 BIND_GLOBAL_CONSTANT(ERR_UNCONFIGURED), ///< The object being used hasnt been properly set up yet
418 BIND_GLOBAL_CONSTANT(ERR_UNAUTHORIZED), ///< Missing credentials for requested resource
419 BIND_GLOBAL_CONSTANT(ERR_PARAMETER_RANGE_ERROR), ///< Parameter given out of range
420 BIND_GLOBAL_CONSTANT(ERR_OUT_OF_MEMORY), ///< Out of memory
421 BIND_GLOBAL_CONSTANT(ERR_FILE_NOT_FOUND),
422 BIND_GLOBAL_CONSTANT(ERR_FILE_BAD_DRIVE),
423 BIND_GLOBAL_CONSTANT(ERR_FILE_BAD_PATH),
424 BIND_GLOBAL_CONSTANT(ERR_FILE_NO_PERMISSION),
425 BIND_GLOBAL_CONSTANT(ERR_FILE_ALREADY_IN_USE),
426 BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_OPEN),
427 BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_WRITE),
428 BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_READ),
429 BIND_GLOBAL_CONSTANT(ERR_FILE_UNRECOGNIZED),
430 BIND_GLOBAL_CONSTANT(ERR_FILE_CORRUPT),
431 BIND_GLOBAL_CONSTANT(ERR_FILE_MISSING_DEPENDENCIES),
432 BIND_GLOBAL_CONSTANT(ERR_FILE_EOF),
433 BIND_GLOBAL_CONSTANT(ERR_CANT_OPEN), ///< Can't open a resource/socket/file
434 BIND_GLOBAL_CONSTANT(ERR_CANT_CREATE),
435 BIND_GLOBAL_CONSTANT(ERR_PARSE_ERROR),
436 BIND_GLOBAL_CONSTANT(ERROR_QUERY_FAILED),
437 BIND_GLOBAL_CONSTANT(ERR_ALREADY_IN_USE),
438 BIND_GLOBAL_CONSTANT(ERR_LOCKED), ///< resource is locked
439 BIND_GLOBAL_CONSTANT(ERR_TIMEOUT),
440 BIND_GLOBAL_CONSTANT(ERR_CANT_AQUIRE_RESOURCE),
441 BIND_GLOBAL_CONSTANT(ERR_INVALID_DATA), ///< Data passed is invalid
442 BIND_GLOBAL_CONSTANT(ERR_INVALID_PARAMETER), ///< Parameter passed is invalid
443 BIND_GLOBAL_CONSTANT(ERR_ALREADY_EXISTS), ///< When adding ), item already exists
444 BIND_GLOBAL_CONSTANT(ERR_DOES_NOT_EXIST), ///< When retrieving/erasing ), it item does not exist
445 BIND_GLOBAL_CONSTANT(ERR_DATABASE_CANT_READ), ///< database is full
446 BIND_GLOBAL_CONSTANT(ERR_DATABASE_CANT_WRITE), ///< database is full
447 BIND_GLOBAL_CONSTANT(ERR_COMPILATION_FAILED),
448 BIND_GLOBAL_CONSTANT(ERR_METHOD_NOT_FOUND),
449 BIND_GLOBAL_CONSTANT(ERR_LINK_FAILED),
450 BIND_GLOBAL_CONSTANT(ERR_SCRIPT_FAILED),
451 BIND_GLOBAL_CONSTANT(ERR_CYCLIC_LINK),
452 BIND_GLOBAL_CONSTANT(ERR_BUSY),
453 BIND_GLOBAL_CONSTANT(ERR_HELP), ///< user requested help!!
454 BIND_GLOBAL_CONSTANT(ERR_BUG), ///< a bug in the software certainly happened ), due to a double check failing or unexpected behavior.
455 BIND_GLOBAL_CONSTANT(ERR_WTF),
456
457 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_NONE),
458 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_RANGE),
459 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_EXP_RANGE),
460 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_ENUM),
461 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_EXP_EASING),
462 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LENGTH),
463 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_KEY_ACCEL),
464 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_FLAGS),
465 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_ALL_FLAGS),
466 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_FILE),
467 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_DIR),
468 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_GLOBAL_FILE),
469 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_GLOBAL_DIR),
470 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_RESOURCE_TYPE),
471 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_MULTILINE_TEXT),
472 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_COLOR_NO_ALPHA),
473 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSY),
474 BIND_GLOBAL_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS),
475
476 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORAGE),
477 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_EDITOR),
478 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NETWORK),
479
480 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_EDITOR_HELPER),
481 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CHECKABLE),
482 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CHECKED),
483 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_INTERNATIONALIZED),
484 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_BUNDLE),
485 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CATEGORY),
486 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORE_IF_NONZERO),
487 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORE_IF_NONONE),
488 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NO_INSTANCE_STATE),
489 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_RESTART_IF_CHANGED),
490 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_SCRIPT_VARIABLE),
491
492 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_DEFAULT),
493 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_DEFAULT_INTL),
494 BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NOEDITOR),
495
496 BIND_GLOBAL_CONSTANT(METHOD_FLAG_NORMAL),
497 BIND_GLOBAL_CONSTANT(METHOD_FLAG_EDITOR),
498 BIND_GLOBAL_CONSTANT(METHOD_FLAG_NOSCRIPT),
499 BIND_GLOBAL_CONSTANT(METHOD_FLAG_CONST),
500 BIND_GLOBAL_CONSTANT(METHOD_FLAG_REVERSE),
501 BIND_GLOBAL_CONSTANT(METHOD_FLAG_VIRTUAL),
502 BIND_GLOBAL_CONSTANT(METHOD_FLAG_FROM_SCRIPT),
503 BIND_GLOBAL_CONSTANT(METHOD_FLAGS_DEFAULT),
504
505 { "TYPE_NIL", Variant::NIL },
506 { "TYPE_BOOL", Variant::BOOL },
507 { "TYPE_INT", Variant::INT },
508 { "TYPE_REAL", Variant::REAL },
509 { "TYPE_STRING", Variant::STRING },
510 { "TYPE_VECTOR2", Variant::VECTOR2 }, // 5
511 { "TYPE_RECT2", Variant::RECT2 },
512 { "TYPE_VECTOR3", Variant::VECTOR3 },
513 { "TYPE_MATRIX32", Variant::MATRIX32 },
514 { "TYPE_PLANE", Variant::PLANE },
515 { "TYPE_QUAT", Variant::QUAT }, // 10
516 { "TYPE_AABB", Variant::_AABB }, //sorry naming convention fail :( not like it's used often
517 { "TYPE_MATRIX3", Variant::MATRIX3 },
518 { "TYPE_TRANSFORM", Variant::TRANSFORM },
519 { "TYPE_COLOR", Variant::COLOR },
520 { "TYPE_IMAGE", Variant::IMAGE }, // 15
521 { "TYPE_NODE_PATH", Variant::NODE_PATH },
522 { "TYPE_RID", Variant::_RID },
523 { "TYPE_OBJECT", Variant::OBJECT },
524 { "TYPE_INPUT_EVENT", Variant::INPUT_EVENT },
525 { "TYPE_DICTIONARY", Variant::DICTIONARY }, // 20
526 { "TYPE_ARRAY", Variant::ARRAY },
527 { "TYPE_RAW_ARRAY", Variant::RAW_ARRAY },
528 { "TYPE_INT_ARRAY", Variant::INT_ARRAY },
529 { "TYPE_REAL_ARRAY", Variant::REAL_ARRAY },
530 { "TYPE_STRING_ARRAY", Variant::STRING_ARRAY }, // 25
531 { "TYPE_VECTOR2_ARRAY", Variant::VECTOR2_ARRAY },
532 { "TYPE_VECTOR3_ARRAY", Variant::VECTOR3_ARRAY },
533 { "TYPE_COLOR_ARRAY", Variant::COLOR_ARRAY },
534 { "TYPE_MAX", Variant::VARIANT_MAX },
535 { NULL, 0 }
536
537 };
538
get_global_constant_count()539 int GlobalConstants::get_global_constant_count() {
540
541 int i = 0;
542 while (_global_constants[i].name)
543 i++;
544 return i;
545 }
546
get_global_constant_name(int p_idx)547 const char *GlobalConstants::get_global_constant_name(int p_idx) {
548
549 return _global_constants[p_idx].name;
550 }
551
get_global_constant_value(int p_idx)552 int GlobalConstants::get_global_constant_value(int p_idx) {
553
554 return _global_constants[p_idx].value;
555 }
556