1using Fjord.Input;
2using Fjord.Ui;
3using System;
4using System.Collections.Generic;
5using System.Linq;
6using System.Numerics;
7using System.Runtime.InteropServices;
8using System.Text;
9using System.Threading.Tasks;
10using static SDL2.SDL;
11
12namespace Fjord
13{
14 internal static class EventHandler
15 {
16 internal static void HandleEvents()
17 {
18 while (SDL_PollEvent(out SDL_Event e) != 0)
19 {
20 switch (e.type)
21 {
22 case SDL_EventType.SDL_QUIT:
23 Game.Stop();
24 break;
25 case SDL_EventType.SDL_KEYDOWN:
26 if(FUI.selectedTextField != null && FUI.selectedTextFieldValue != null && FUI.selectedTextFieldOnChange != null && FUI.selectedTextFieldOnSumbit != null) {
27 if(e.key.keysym.sym == SDL_Keycode.SDLK_BACKSPACE) {
28 if(FUI.selectedTextFieldValue.Length > 0)
29 FUI.selectedTextFieldOnChange(FUI.selectedTextFieldValue.Remove(FUI.selectedTextFieldValue.Length - 1));
30 } else if(e.key.keysym.sym == SDL_Keycode.SDLK_RETURN)
31 {
32 if(FUI.selectedTextFieldValue.Length > 0)
33 {
34 FUI.selectedTextFieldOnSumbit(FUI.selectedTextFieldValue);
35 }
36 }
37 break;
38 }
39
40 switch (e.key.keysym.sym)
41 {
42 case SDL_Keycode.SDLK_0:
43 GlobalKeyboard.AddKey(Key.N0);
44 break;
45 case SDL_Keycode.SDLK_1:
46 GlobalKeyboard.AddKey(Key.N1);
47 break;
48 case SDL_Keycode.SDLK_2:
49 GlobalKeyboard.AddKey(Key.N);
50 break;
51 case SDL_Keycode.SDLK_3:
52 GlobalKeyboard.AddKey(Key.N3);
53 break;
54 case SDL_Keycode.SDLK_4:
55 GlobalKeyboard.AddKey(Key.N4);
56 break;
57 case SDL_Keycode.SDLK_5:
58 GlobalKeyboard.AddKey(Key.N5);
59 break;
60 case SDL_Keycode.SDLK_6:
61 GlobalKeyboard.AddKey(Key.N6);
62 break;
63 case SDL_Keycode.SDLK_7:
64 GlobalKeyboard.AddKey(Key.N7);
65 break;
66 case SDL_Keycode.SDLK_8:
67 GlobalKeyboard.AddKey(Key.N8);
68 break;
69 case SDL_Keycode.SDLK_9:
70 GlobalKeyboard.AddKey(Key.N9);
71 break;
72 case SDL_Keycode.SDLK_a:
73 GlobalKeyboard.AddKey(Key.A);
74 break;
75 case SDL_Keycode.SDLK_AC_BACK:
76 GlobalKeyboard.AddKey(Key.AC_BACK);
77 break;
78 case SDL_Keycode.SDLK_AC_BOOKMARKS:
79 GlobalKeyboard.AddKey(Key.AC_BOOKMARKS);
80 break;
81 case SDL_Keycode.SDLK_KP_DBLAMPERSAND:
82 GlobalKeyboard.AddKey(Key.KP_DBLAMPERSAND);
83 break;
84 case SDL_Keycode.SDLK_AC_FORWARD:
85 GlobalKeyboard.AddKey(Key.AC_FORWARD);
86 break;
87 case SDL_Keycode.SDLK_AC_HOME:
88 GlobalKeyboard.AddKey(Key.AC_HOME);
89 break;
90 case SDL_Keycode.SDLK_AC_REFRESH:
91 GlobalKeyboard.AddKey(Key.AC_REFRESH);
92 break;
93 case SDL_Keycode.SDLK_AC_SEARCH:
94 GlobalKeyboard.AddKey(Key.AC_SEARCH);
95 break;
96 case SDL_Keycode.SDLK_AC_STOP:
97 GlobalKeyboard.AddKey(Key.AC_STOP);
98 break;
99 case SDL_Keycode.SDLK_AGAIN:
100 GlobalKeyboard.AddKey(Key.AGAIN);
101 break;
102 case SDL_Keycode.SDLK_ALTERASE:
103 GlobalKeyboard.AddKey(Key.ALTERASE);
104 break;
105 case SDL_Keycode.SDLK_QUOTE:
106 GlobalKeyboard.AddKey(Key.QUOTE);
107 break;
108 case SDL_Keycode.SDLK_APPLICATION:
109 GlobalKeyboard.AddKey(Key.APPLICATION);
110 break;
111 case SDL_Keycode.SDLK_AUDIOMUTE:
112 GlobalKeyboard.AddKey(Key.AUDIOMUTE);
113 break;
114 case SDL_Keycode.SDLK_AUDIONEXT:
115 GlobalKeyboard.AddKey(Key.AUDIONEXT);
116 break;
117 case SDL_Keycode.SDLK_AUDIOPLAY:
118 GlobalKeyboard.AddKey(Key.AUDIOPLAY);
119 break;
120 case SDL_Keycode.SDLK_AUDIOPREV:
121 GlobalKeyboard.AddKey(Key.AUDIOPREV);
122 break;
123 case SDL_Keycode.SDLK_AUDIOSTOP:
124 GlobalKeyboard.AddKey(Key.AUDIOSTOP);
125 break;
126 case SDL_Keycode.SDLK_b:
127 GlobalKeyboard.AddKey(Key.B);
128 break;
129 case SDL_Keycode.SDLK_BACKSLASH:
130 GlobalKeyboard.AddKey(Key.BACKSLASH);
131 break;
132 case SDL_Keycode.SDLK_BACKSPACE:
133 GlobalKeyboard.AddKey(Key.BACKSPACE);
134 break;
135 case SDL_Keycode.SDLK_BRIGHTNESSDOWN:
136 GlobalKeyboard.AddKey(Key.BRIGHTNESSDOWN);
137 break;
138 case SDL_Keycode.SDLK_BRIGHTNESSUP:
139 GlobalKeyboard.AddKey(Key.BRIGHTNESSUP);
140 break;
141 case SDL_Keycode.SDLK_c:
142 GlobalKeyboard.AddKey(Key.C);
143 break;
144 case SDL_Keycode.SDLK_CALCULATOR:
145 GlobalKeyboard.AddKey(Key.CALCULATOR);
146 break;
147 case SDL_Keycode.SDLK_CANCEL:
148 GlobalKeyboard.AddKey(Key.CANCEL);
149 break;
150 case SDL_Keycode.SDLK_CAPSLOCK:
151 GlobalKeyboard.AddKey(Key.CAPSLOCK);
152 break;
153 case SDL_Keycode.SDLK_CLEAR:
154 GlobalKeyboard.AddKey(Key.CLEAR);
155 break;
156 case SDL_Keycode.SDLK_CLEARAGAIN:
157 GlobalKeyboard.AddKey(Key.CLEARAGAIN);
158 break;
159 case SDL_Keycode.SDLK_COMMA:
160 GlobalKeyboard.AddKey(Key.COMMA);
161 break;
162 case SDL_Keycode.SDLK_COMPUTER:
163 GlobalKeyboard.AddKey(Key.COMPUTER);
164 break;
165 case SDL_Keycode.SDLK_COPY:
166 GlobalKeyboard.AddKey(Key.COPY);
167 break;
168 case SDL_Keycode.SDLK_CRSEL:
169 GlobalKeyboard.AddKey(Key.CRSEL);
170 break;
171 case SDL_Keycode.SDLK_CURRENCYSUBUNIT:
172 GlobalKeyboard.AddKey(Key.CURRENCYSUBUNIT);
173 break;
174 case SDL_Keycode.SDLK_CURRENCYUNIT:
175 GlobalKeyboard.AddKey(Key.CURRENCYUNIT);
176 break;
177 case SDL_Keycode.SDLK_CUT:
178 GlobalKeyboard.AddKey(Key.CUT);
179 break;
180 case SDL_Keycode.SDLK_d:
181 GlobalKeyboard.AddKey(Key.D);
182 break;
183 case SDL_Keycode.SDLK_DECIMALSEPARATOR:
184 GlobalKeyboard.AddKey(Key.DECIMALSEPARATOR);
185 break;
186 case SDL_Keycode.SDLK_DELETE:
187 GlobalKeyboard.AddKey(Key.DELETE);
188 break;
189 case SDL_Keycode.SDLK_DISPLAYSWITCH:
190 GlobalKeyboard.AddKey(Key.DISPLAYSWITCH);
191 break;
192 case SDL_Keycode.SDLK_DOWN:
193 GlobalKeyboard.AddKey(Key.DOWN);
194 break;
195 case SDL_Keycode.SDLK_e:
196 GlobalKeyboard.AddKey(Key.E);
197 break;
198 case SDL_Keycode.SDLK_EJECT:
199 GlobalKeyboard.AddKey(Key.EJECT);
200 break;
201 case SDL_Keycode.SDLK_END:
202 GlobalKeyboard.AddKey(Key.END);
203 break;
204 case SDL_Keycode.SDLK_EQUALS:
205 GlobalKeyboard.AddKey(Key.EQUALS);
206 break;
207 case SDL_Keycode.SDLK_ESCAPE:
208 GlobalKeyboard.AddKey(Key.ESCAPE);
209 break;
210 case SDL_Keycode.SDLK_EXECUTE:
211 GlobalKeyboard.AddKey(Key.EXECUTE);
212 break;
213 case SDL_Keycode.SDLK_EXSEL:
214 GlobalKeyboard.AddKey(Key.EXSEL);
215 break;
216 case SDL_Keycode.SDLK_f:
217 GlobalKeyboard.AddKey(Key.F);
218 break;
219 case SDL_Keycode.SDLK_F1:
220 GlobalKeyboard.AddKey(Key.F1);
221 break;
222 case SDL_Keycode.SDLK_F10:
223 GlobalKeyboard.AddKey(Key.F10);
224 break;
225 case SDL_Keycode.SDLK_F11:
226 GlobalKeyboard.AddKey(Key.F11);
227 break;
228 case SDL_Keycode.SDLK_F12:
229 GlobalKeyboard.AddKey(Key.F12);
230 break;
231 case SDL_Keycode.SDLK_F13:
232 GlobalKeyboard.AddKey(Key.F13);
233 break;
234 case SDL_Keycode.SDLK_F14:
235 GlobalKeyboard.AddKey(Key.F14);
236 break;
237 case SDL_Keycode.SDLK_F15:
238 GlobalKeyboard.AddKey(Key.F15);
239 break;
240 case SDL_Keycode.SDLK_F16:
241 GlobalKeyboard.AddKey(Key.F16);
242 break;
243 case SDL_Keycode.SDLK_F17:
244 GlobalKeyboard.AddKey(Key.F17);
245 break;
246 case SDL_Keycode.SDLK_F18:
247 GlobalKeyboard.AddKey(Key.F18);
248 break;
249 case SDL_Keycode.SDLK_F19:
250 GlobalKeyboard.AddKey(Key.F19);
251 break;
252 case SDL_Keycode.SDLK_F2:
253 GlobalKeyboard.AddKey(Key.F2);
254 break;
255 case SDL_Keycode.SDLK_F20:
256 GlobalKeyboard.AddKey(Key.F20);
257 break;
258 case SDL_Keycode.SDLK_F21:
259 GlobalKeyboard.AddKey(Key.F21);
260 break;
261 case SDL_Keycode.SDLK_F22:
262 GlobalKeyboard.AddKey(Key.F22);
263 break;
264 case SDL_Keycode.SDLK_F23:
265 GlobalKeyboard.AddKey(Key.F23);
266 break;
267 case SDL_Keycode.SDLK_F24:
268 GlobalKeyboard.AddKey(Key.F24);
269 break;
270 case SDL_Keycode.SDLK_F3:
271 GlobalKeyboard.AddKey(Key.F3);
272 break;
273 case SDL_Keycode.SDLK_F4:
274 GlobalKeyboard.AddKey(Key.F4);
275 break;
276 case SDL_Keycode.SDLK_F5:
277 GlobalKeyboard.AddKey(Key.F5);
278 break;
279 case SDL_Keycode.SDLK_F6:
280 GlobalKeyboard.AddKey(Key.F6);
281 break;
282 case SDL_Keycode.SDLK_F7:
283 GlobalKeyboard.AddKey(Key.F7);
284 break;
285 case SDL_Keycode.SDLK_F8:
286 GlobalKeyboard.AddKey(Key.F8);
287 break;
288 case SDL_Keycode.SDLK_F9:
289 GlobalKeyboard.AddKey(Key.F9);
290 break;
291 case SDL_Keycode.SDLK_FIND:
292 GlobalKeyboard.AddKey(Key.FIND);
293 break;
294 case SDL_Keycode.SDLK_g:
295 GlobalKeyboard.AddKey(Key.G);
296 break;
297 case SDL_Keycode.SDLK_BACKQUOTE:
298 GlobalKeyboard.AddKey(Key.BACKQUOTE);
299 break;
300 case SDL_Keycode.SDLK_h:
301 GlobalKeyboard.AddKey(Key.H);
302 break;
303 case SDL_Keycode.SDLK_HELP:
304 GlobalKeyboard.AddKey(Key.HELP);
305 break;
306 case SDL_Keycode.SDLK_HOME:
307 GlobalKeyboard.AddKey(Key.HOME);
308 break;
309 case SDL_Keycode.SDLK_i:
310 GlobalKeyboard.AddKey(Key.I);
311 break;
312 case SDL_Keycode.SDLK_INSERT:
313 GlobalKeyboard.AddKey(Key.INSERT);
314 break;
315 case SDL_Keycode.SDLK_j:
316 GlobalKeyboard.AddKey(Key.J);
317 break;
318 case SDL_Keycode.SDLK_k:
319 GlobalKeyboard.AddKey(Key.K);
320 break;
321 case SDL_Keycode.SDLK_KBDILLUMDOWN:
322 GlobalKeyboard.AddKey(Key.KBDILLUMDOWN);
323 break;
324 case SDL_Keycode.SDLK_KBDILLUMTOGGLE:
325 GlobalKeyboard.AddKey(Key.KBDILLUMTOGGLE);
326 break;
327 case SDL_Keycode.SDLK_KBDILLUMUP:
328 GlobalKeyboard.AddKey(Key.KBDILLUMUP);
329 break;
330 case SDL_Keycode.SDLK_KP_0:
331 GlobalKeyboard.AddKey(Key.KP_0);
332 break;
333 case SDL_Keycode.SDLK_KP_00:
334 GlobalKeyboard.AddKey(Key.KP_00);
335 break;
336 case SDL_Keycode.SDLK_KP_000:
337 GlobalKeyboard.AddKey(Key.KP_000);
338 break;
339 case SDL_Keycode.SDLK_KP_1:
340 GlobalKeyboard.AddKey(Key.KP_1);
341 break;
342 case SDL_Keycode.SDLK_KP_2:
343 GlobalKeyboard.AddKey(Key.KP_2);
344 break;
345 case SDL_Keycode.SDLK_KP_3:
346 GlobalKeyboard.AddKey(Key.KP_3);
347 break;
348 case SDL_Keycode.SDLK_KP_4:
349 GlobalKeyboard.AddKey(Key.KP_4);
350 break;
351 case SDL_Keycode.SDLK_KP_5:
352 GlobalKeyboard.AddKey(Key.KP_5);
353 break;
354 case SDL_Keycode.SDLK_KP_6:
355 GlobalKeyboard.AddKey(Key.KP_6);
356 break;
357 case SDL_Keycode.SDLK_KP_7:
358 GlobalKeyboard.AddKey(Key.KP_7);
359 break;
360 case SDL_Keycode.SDLK_KP_8:
361 GlobalKeyboard.AddKey(Key.KP_8);
362 break;
363 case SDL_Keycode.SDLK_KP_9:
364 GlobalKeyboard.AddKey(Key.KP_9);
365 break;
366 case SDL_Keycode.SDLK_KP_A:
367 GlobalKeyboard.AddKey(Key.KP_A);
368 break;
369 case SDL_Keycode.SDLK_KP_AMPERSAND:
370 GlobalKeyboard.AddKey(Key.KP_AMPERSAND);
371 break;
372 case SDL_Keycode.SDLK_KP_AT:
373 GlobalKeyboard.AddKey(Key.KP_AT);
374 break;
375 case SDL_Keycode.SDLK_KP_B:
376 GlobalKeyboard.AddKey(Key.KP_B);
377 break;
378 case SDL_Keycode.SDLK_KP_BACKSPACE:
379 GlobalKeyboard.AddKey(Key.KP_BACKSPACE);
380 break;
381 case SDL_Keycode.SDLK_KP_BINARY:
382 GlobalKeyboard.AddKey(Key.KP_BINARY);
383 break;
384 case SDL_Keycode.SDLK_KP_C:
385 GlobalKeyboard.AddKey(Key.KP_C);
386 break;
387 case SDL_Keycode.SDLK_KP_CLEAR:
388 GlobalKeyboard.AddKey(Key.KP_CLEAR);
389 break;
390 case SDL_Keycode.SDLK_KP_CLEARENTRY:
391 GlobalKeyboard.AddKey(Key.KP_CLEARENTRY);
392 break;
393 case SDL_Keycode.SDLK_KP_COLON:
394 GlobalKeyboard.AddKey(Key.KP_COLON);
395 break;
396 case SDL_Keycode.SDLK_KP_COMMA:
397 GlobalKeyboard.AddKey(Key.KP_COMMA);
398 break;
399 case SDL_Keycode.SDLK_KP_D:
400 GlobalKeyboard.AddKey(Key.KP_D);
401 break;
402 case SDL_Keycode.SDLK_KP_DBLVERTICALBAR:
403 GlobalKeyboard.AddKey(Key.KP_DBLVERTICALBAR);
404 break;
405 case SDL_Keycode.SDLK_KP_DECIMAL:
406 GlobalKeyboard.AddKey(Key.KP_DECIMAL);
407 break;
408 case SDL_Keycode.SDLK_KP_DIVIDE:
409 GlobalKeyboard.AddKey(Key.KP_DIVIDE);
410 break;
411 case SDL_Keycode.SDLK_KP_E:
412 GlobalKeyboard.AddKey(Key.KP_E);
413 break;
414 case SDL_Keycode.SDLK_KP_ENTER:
415 GlobalKeyboard.AddKey(Key.KP_ENTER);
416 break;
417 case SDL_Keycode.SDLK_KP_EQUALS:
418 GlobalKeyboard.AddKey(Key.KP_EQUALS);
419 break;
420 case SDL_Keycode.SDLK_KP_EQUALSAS400:
421 GlobalKeyboard.AddKey(Key.KP_EQUALSAS400);
422 break;
423 case SDL_Keycode.SDLK_KP_EXCLAM:
424 GlobalKeyboard.AddKey(Key.KP_EXCLAM);
425 break;
426 case SDL_Keycode.SDLK_KP_F:
427 GlobalKeyboard.AddKey(Key.KP_F);
428 break;
429 case SDL_Keycode.SDLK_KP_GREATER:
430 GlobalKeyboard.AddKey(Key.KP_GREATER);
431 break;
432 case SDL_Keycode.SDLK_KP_HASH:
433 GlobalKeyboard.AddKey(Key.KP_HASH);
434 break;
435 case SDL_Keycode.SDLK_KP_HEXADECIMAL:
436 GlobalKeyboard.AddKey(Key.KP_HEXADECIMAL);
437 break;
438 case SDL_Keycode.SDLK_KP_LEFTBRACE:
439 GlobalKeyboard.AddKey(Key.KP_LEFTBRACE);
440 break;
441 case SDL_Keycode.SDLK_KP_LEFTPAREN:
442 GlobalKeyboard.AddKey(Key.KP_LEFTPAREN);
443 break;
444 case SDL_Keycode.SDLK_KP_LESS:
445 GlobalKeyboard.AddKey(Key.KP_LESS);
446 break;
447 case SDL_Keycode.SDLK_KP_MEMADD:
448 GlobalKeyboard.AddKey(Key.KP_MEMADD);
449 break;
450 case SDL_Keycode.SDLK_KP_MEMCLEAR:
451 GlobalKeyboard.AddKey(Key.KP_MEMCLEAR);
452 break;
453 case SDL_Keycode.SDLK_KP_MEMDIVIDE:
454 GlobalKeyboard.AddKey(Key.KP_MEMDIVIDE);
455 break;
456 case SDL_Keycode.SDLK_KP_MEMMULTIPLY:
457 GlobalKeyboard.AddKey(Key.KP_MEMMULTIPLY);
458 break;
459 case SDL_Keycode.SDLK_KP_MEMRECALL:
460 GlobalKeyboard.AddKey(Key.KP_MEMRECALL);
461 break;
462 case SDL_Keycode.SDLK_KP_MEMSTORE:
463 GlobalKeyboard.AddKey(Key.KP_MEMSTORE);
464 break;
465 case SDL_Keycode.SDLK_KP_MEMSUBTRACT:
466 GlobalKeyboard.AddKey(Key.KP_MEMSUBTRACT);
467 break;
468 case SDL_Keycode.SDLK_KP_MINUS:
469 GlobalKeyboard.AddKey(Key.KP_MINUS);
470 break;
471 case SDL_Keycode.SDLK_KP_MULTIPLY:
472 GlobalKeyboard.AddKey(Key.KP_MULTIPLY);
473 break;
474 case SDL_Keycode.SDLK_KP_OCTAL:
475 GlobalKeyboard.AddKey(Key.KP_OCTAL);
476 break;
477 case SDL_Keycode.SDLK_KP_PERCENT:
478 GlobalKeyboard.AddKey(Key.KP_PERCENT);
479 break;
480 case SDL_Keycode.SDLK_KP_PERIOD:
481 GlobalKeyboard.AddKey(Key.KP_PERIOD);
482 break;
483 case SDL_Keycode.SDLK_KP_PLUS:
484 GlobalKeyboard.AddKey(Key.KP_PLUS);
485 break;
486 case SDL_Keycode.SDLK_KP_PLUSMINUS:
487 GlobalKeyboard.AddKey(Key.KP_PLUSMINUS);
488 break;
489 case SDL_Keycode.SDLK_KP_POWER:
490 GlobalKeyboard.AddKey(Key.KP_POWER);
491 break;
492 case SDL_Keycode.SDLK_KP_RIGHTBRACE:
493 GlobalKeyboard.AddKey(Key.KP_RIGHTBRACE);
494 break;
495 case SDL_Keycode.SDLK_KP_RIGHTPAREN:
496 GlobalKeyboard.AddKey(Key.KP_RIGHTPAREN);
497 break;
498 case SDL_Keycode.SDLK_KP_SPACE:
499 GlobalKeyboard.AddKey(Key.KP_SPACE);
500 break;
501 case SDL_Keycode.SDLK_KP_TAB:
502 GlobalKeyboard.AddKey(Key.KP_TAB);
503 break;
504 case SDL_Keycode.SDLK_KP_VERTICALBAR:
505 GlobalKeyboard.AddKey(Key.KP_VERTICALBAR);
506 break;
507 case SDL_Keycode.SDLK_KP_XOR:
508 GlobalKeyboard.AddKey(Key.KP_XOR);
509 break;
510 case SDL_Keycode.SDLK_l:
511 GlobalKeyboard.AddKey(Key.L);
512 break;
513 case SDL_Keycode.SDLK_LEFT:
514 GlobalKeyboard.AddKey(Key.LEFT);
515 break;
516 case SDL_Keycode.SDLK_LEFTBRACKET:
517 GlobalKeyboard.AddKey(Key.LEFTBRACKET);
518 break;
519 case SDL_Keycode.SDLK_LGUI:
520 GlobalKeyboard.AddKey(Key.LGUI);
521 break;
522 case SDL_Keycode.SDLK_m:
523 GlobalKeyboard.AddKey(Key.M);
524 break;
525 case SDL_Keycode.SDLK_MAIL:
526 GlobalKeyboard.AddKey(Key.MAIL);
527 break;
528 case SDL_Keycode.SDLK_MEDIASELECT:
529 GlobalKeyboard.AddKey(Key.MEDIASELECT);
530 break;
531 case SDL_Keycode.SDLK_MENU:
532 GlobalKeyboard.AddKey(Key.MENU);
533 break;
534 case SDL_Keycode.SDLK_MINUS:
535 GlobalKeyboard.AddKey(Key.MINUS);
536 break;
537 case SDL_Keycode.SDLK_MODE:
538 GlobalKeyboard.AddKey(Key.MODE);
539 break;
540 case SDL_Keycode.SDLK_MUTE:
541 GlobalKeyboard.AddKey(Key.MUTE);
542 break;
543 case SDL_Keycode.SDLK_n:
544 GlobalKeyboard.AddKey(Key.N);
545 break;
546 case SDL_Keycode.SDLK_NUMLOCKCLEAR:
547 GlobalKeyboard.AddKey(Key.NUMLOCKCLEAR);
548 break;
549 case SDL_Keycode.SDLK_o:
550 GlobalKeyboard.AddKey(Key.O);
551 break;
552 case SDL_Keycode.SDLK_OPER:
553 GlobalKeyboard.AddKey(Key.OPER);
554 break;
555 case SDL_Keycode.SDLK_OUT:
556 GlobalKeyboard.AddKey(Key.OUT);
557 break;
558 case SDL_Keycode.SDLK_p:
559 GlobalKeyboard.AddKey(Key.P);
560 break;
561 case SDL_Keycode.SDLK_PAGEDOWN:
562 GlobalKeyboard.AddKey(Key.PAGEDOWN);
563 break;
564 case SDL_Keycode.SDLK_PAGEUP:
565 GlobalKeyboard.AddKey(Key.PAGEUP);
566 break;
567 case SDL_Keycode.SDLK_PASTE:
568 GlobalKeyboard.AddKey(Key.PASTE);
569 break;
570 case SDL_Keycode.SDLK_PAUSE:
571 GlobalKeyboard.AddKey(Key.PAUSE);
572 break;
573 case SDL_Keycode.SDLK_PERIOD:
574 GlobalKeyboard.AddKey(Key.PERIOD);
575 break;
576 case SDL_Keycode.SDLK_POWER:
577 GlobalKeyboard.AddKey(Key.POWER);
578 break;
579 case SDL_Keycode.SDLK_PRINTSCREEN:
580 GlobalKeyboard.AddKey(Key.PRINTSCREEN);
581 break;
582 case SDL_Keycode.SDLK_PRIOR:
583 GlobalKeyboard.AddKey(Key.PRIOR);
584 break;
585 case SDL_Keycode.SDLK_q:
586 GlobalKeyboard.AddKey(Key.Q);
587 break;
588 case SDL_Keycode.SDLK_r:
589 GlobalKeyboard.AddKey(Key.R);
590 break;
591 case SDL_Keycode.SDLK_RETURN:
592 GlobalKeyboard.AddKey(Key.RETURN);
593 break;
594 case SDL_Keycode.SDLK_RETURN2:
595 GlobalKeyboard.AddKey(Key.RETURN2);
596 break;
597 case SDL_Keycode.SDLK_RGUI:
598 GlobalKeyboard.AddKey(Key.RGUI);
599 break;
600 case SDL_Keycode.SDLK_RIGHT:
601 GlobalKeyboard.AddKey(Key.RIGHT);
602 break;
603 case SDL_Keycode.SDLK_RIGHTBRACKET:
604 GlobalKeyboard.AddKey(Key.RIGHTBRACKET);
605 break;
606 case SDL_Keycode.SDLK_s:
607 GlobalKeyboard.AddKey(Key.S);
608 break;
609 case SDL_Keycode.SDLK_SCROLLLOCK:
610 GlobalKeyboard.AddKey(Key.SCROLLLOCK);
611 break;
612 case SDL_Keycode.SDLK_SELECT:
613 GlobalKeyboard.AddKey(Key.SELECT);
614 break;
615 case SDL_Keycode.SDLK_SEMICOLON:
616 GlobalKeyboard.AddKey(Key.SEMICOLON);
617 break;
618 case SDL_Keycode.SDLK_SEPARATOR:
619 GlobalKeyboard.AddKey(Key.SEPARATOR);
620 break;
621 case SDL_Keycode.SDLK_SLASH:
622 GlobalKeyboard.AddKey(Key.SLASH);
623 break;
624 case SDL_Keycode.SDLK_SLEEP:
625 GlobalKeyboard.AddKey(Key.SLEEP);
626 break;
627 case SDL_Keycode.SDLK_SPACE:
628 GlobalKeyboard.AddKey(Key.SPACE);
629 break;
630 case SDL_Keycode.SDLK_STOP:
631 GlobalKeyboard.AddKey(Key.STOP);
632 break;
633 case SDL_Keycode.SDLK_SYSREQ:
634 GlobalKeyboard.AddKey(Key.SYSREQ);
635 break;
636 case SDL_Keycode.SDLK_t:
637 GlobalKeyboard.AddKey(Key.T);
638 break;
639 case SDL_Keycode.SDLK_TAB:
640 GlobalKeyboard.AddKey(Key.TAB);
641 break;
642 case SDL_Keycode.SDLK_THOUSANDSSEPARATOR:
643 GlobalKeyboard.AddKey(Key.THOUSANDSSEPARATOR);
644 break;
645 case SDL_Keycode.SDLK_u:
646 GlobalKeyboard.AddKey(Key.U);
647 break;
648 case SDL_Keycode.SDLK_UNDO:
649 GlobalKeyboard.AddKey(Key.UNDO);
650 break;
651 case SDL_Keycode.SDLK_UNKNOWN:
652 GlobalKeyboard.AddKey(Key.UNKNOWN);
653 break;
654 case SDL_Keycode.SDLK_UP:
655 GlobalKeyboard.AddKey(Key.UP);
656 break;
657 case SDL_Keycode.SDLK_v:
658 GlobalKeyboard.AddKey(Key.V);
659 break;
660 case SDL_Keycode.SDLK_VOLUMEDOWN:
661 GlobalKeyboard.AddKey(Key.VOLUMEDOWN);
662 break;
663 case SDL_Keycode.SDLK_VOLUMEUP:
664 GlobalKeyboard.AddKey(Key.VOLUMEUP);
665 break;
666 case SDL_Keycode.SDLK_w:
667 GlobalKeyboard.AddKey(Key.W);
668 break;
669 case SDL_Keycode.SDLK_WWW:
670 GlobalKeyboard.AddKey(Key.WWW);
671 break;
672 case SDL_Keycode.SDLK_x:
673 GlobalKeyboard.AddKey(Key.X);
674 break;
675 case SDL_Keycode.SDLK_y:
676 GlobalKeyboard.AddKey(Key.Y);
677 break;
678 case SDL_Keycode.SDLK_z:
679 GlobalKeyboard.AddKey(Key.Z);
680 break;
681 case SDL_Keycode.SDLK_AMPERSAND:
682 GlobalKeyboard.AddKey(Key.AMPERSAND);
683 break;
684 case SDL_Keycode.SDLK_ASTERISK:
685 GlobalKeyboard.AddKey(Key.ASTERISK);
686 break;
687 case SDL_Keycode.SDLK_AT:
688 GlobalKeyboard.AddKey(Key.AT);
689 break;
690 case SDL_Keycode.SDLK_CARET:
691 GlobalKeyboard.AddKey(Key.CARET);
692 break;
693 case SDL_Keycode.SDLK_COLON:
694 GlobalKeyboard.AddKey(Key.COLON);
695 break;
696 case SDL_Keycode.SDLK_DOLLAR:
697 GlobalKeyboard.AddKey(Key.DOLLAR);
698 break;
699 case SDL_Keycode.SDLK_EXCLAIM:
700 GlobalKeyboard.AddKey(Key.EXCLAIM);
701 break;
702 case SDL_Keycode.SDLK_GREATER:
703 GlobalKeyboard.AddKey(Key.GREATER);
704 break;
705 case SDL_Keycode.SDLK_HASH:
706 GlobalKeyboard.AddKey(Key.HASH);
707 break;
708 case SDL_Keycode.SDLK_LEFTPAREN:
709 GlobalKeyboard.AddKey(Key.LEFTPAREN);
710 break;
711 case SDL_Keycode.SDLK_LESS:
712 GlobalKeyboard.AddKey(Key.LESS);
713 break;
714 case SDL_Keycode.SDLK_PERCENT:
715 GlobalKeyboard.AddKey(Key.PERCENT);
716 break;
717 case SDL_Keycode.SDLK_PLUS:
718 GlobalKeyboard.AddKey(Key.PLUS);
719 break;
720 case SDL_Keycode.SDLK_QUESTION:
721 GlobalKeyboard.AddKey(Key.QUESTION);
722 break;
723 case SDL_Keycode.SDLK_QUOTEDBL:
724 GlobalKeyboard.AddKey(Key.QUOTEDBL);
725 break;
726 case SDL_Keycode.SDLK_RIGHTPAREN:
727 GlobalKeyboard.AddKey(Key.RIGHTPAREN);
728 break;
729 case SDL_Keycode.SDLK_UNDERSCORE:
730 GlobalKeyboard.AddKey(Key.UNDERSCORE);
731 break;
732 case SDL_Keycode.SDLK_LCTRL:
733 if(!GlobalKeyboard.pressedModifiers.Contains(Mod.LCtrl))
734 GlobalKeyboard.pressedModifiers.Add(Mod.LCtrl);
735 break;
736 case SDL_Keycode.SDLK_LSHIFT:
737 if (!GlobalKeyboard.pressedModifiers.Contains(Mod.LShift))
738 GlobalKeyboard.pressedModifiers.Add(Mod.LShift);
739 break;
740 }
741
742 break;
743 case SDL_EventType.SDL_KEYUP:
744 if(FUI.selectedTextField != null) {
745 break;
746 }
747
748 switch (e.key.keysym.sym)
749 {
750 case SDL_Keycode.SDLK_0:
751 GlobalKeyboard.downKeys[(int)Key.N0] = false;
752 break;
753 case SDL_Keycode.SDLK_1:
754 GlobalKeyboard.downKeys[(int)Key.N1] = false;
755 break;
756 case SDL_Keycode.SDLK_2:
757 GlobalKeyboard.downKeys[(int)Key.N2] = false;
758 break;
759 case SDL_Keycode.SDLK_3:
760 GlobalKeyboard.downKeys[(int)Key.N3] = false;
761 break;
762 case SDL_Keycode.SDLK_4:
763 GlobalKeyboard.downKeys[(int)Key.N4] = false;
764 break;
765 case SDL_Keycode.SDLK_5:
766 GlobalKeyboard.downKeys[(int)Key.N5] = false;
767 break;
768 case SDL_Keycode.SDLK_6:
769 GlobalKeyboard.downKeys[(int)Key.N6] = false;
770 break;
771 case SDL_Keycode.SDLK_7:
772 GlobalKeyboard.downKeys[(int)Key.N7] = false;
773 break;
774 case SDL_Keycode.SDLK_8:
775 GlobalKeyboard.downKeys[(int)Key.N8] = false;
776 break;
777 case SDL_Keycode.SDLK_9:
778 GlobalKeyboard.downKeys[(int)Key.N9] = false;
779 break;
780 case SDL_Keycode.SDLK_a:
781 GlobalKeyboard.downKeys[(int)Key.A] = false;
782 break;
783 case SDL_Keycode.SDLK_AC_BACK:
784 GlobalKeyboard.downKeys[(int)Key.AC_BACK] = false;
785 break;
786 case SDL_Keycode.SDLK_AC_BOOKMARKS:
787 GlobalKeyboard.downKeys[(int)Key.AC_BOOKMARKS] = false;
788 break;
789 case SDL_Keycode.SDLK_AC_FORWARD:
790 GlobalKeyboard.downKeys[(int)Key.AC_FORWARD] = false;
791 break;
792 case SDL_Keycode.SDLK_AC_HOME:
793 GlobalKeyboard.downKeys[(int)Key.AC_HOME] = false;
794 break;
795 case SDL_Keycode.SDLK_AC_REFRESH:
796 GlobalKeyboard.downKeys[(int)Key.AC_REFRESH] = false;
797 break;
798 case SDL_Keycode.SDLK_AC_SEARCH:
799 GlobalKeyboard.downKeys[(int)Key.AC_SEARCH] = false;
800 break;
801 case SDL_Keycode.SDLK_AC_STOP:
802 GlobalKeyboard.downKeys[(int)Key.AC_STOP] = false;
803 break;
804 case SDL_Keycode.SDLK_AGAIN:
805 GlobalKeyboard.downKeys[(int)Key.AGAIN] = false;
806 break;
807 case SDL_Keycode.SDLK_ALTERASE:
808 GlobalKeyboard.downKeys[(int)Key.ALTERASE] = false;
809 break;
810 case SDL_Keycode.SDLK_QUOTE:
811 GlobalKeyboard.downKeys[(int)Key.QUOTE] = false;
812 break;
813 case SDL_Keycode.SDLK_APPLICATION:
814 GlobalKeyboard.downKeys[(int)Key.APPLICATION] = false;
815 break;
816 case SDL_Keycode.SDLK_AUDIOMUTE:
817 GlobalKeyboard.downKeys[(int)Key.AUDIOMUTE] = false;
818 break;
819 case SDL_Keycode.SDLK_AUDIONEXT:
820 GlobalKeyboard.downKeys[(int)Key.AUDIONEXT] = false;
821 break;
822 case SDL_Keycode.SDLK_AUDIOPLAY:
823 GlobalKeyboard.downKeys[(int)Key.AUDIOPLAY] = false;
824 break;
825 case SDL_Keycode.SDLK_AUDIOPREV:
826 GlobalKeyboard.downKeys[(int)Key.AUDIOPREV] = false;
827 break;
828 case SDL_Keycode.SDLK_AUDIOSTOP:
829 GlobalKeyboard.downKeys[(int)Key.AUDIOSTOP] = false;
830 break;
831 case SDL_Keycode.SDLK_b:
832 GlobalKeyboard.downKeys[(int)Key.B] = false;
833 break;
834 case SDL_Keycode.SDLK_BACKSLASH:
835 GlobalKeyboard.downKeys[(int)Key.BACKSLASH] = false;
836 break;
837 case SDL_Keycode.SDLK_BACKSPACE:
838 GlobalKeyboard.downKeys[(int)Key.BACKSPACE] = false;
839 break;
840 case SDL_Keycode.SDLK_BRIGHTNESSDOWN:
841 GlobalKeyboard.downKeys[(int)Key.BRIGHTNESSDOWN] = false;
842 break;
843 case SDL_Keycode.SDLK_BRIGHTNESSUP:
844 GlobalKeyboard.downKeys[(int)Key.BRIGHTNESSUP] = false;
845 break;
846 case SDL_Keycode.SDLK_c:
847 GlobalKeyboard.downKeys[(int)Key.C] = false;
848 break;
849 case SDL_Keycode.SDLK_CALCULATOR:
850 GlobalKeyboard.downKeys[(int)Key.CALCULATOR] = false;
851 break;
852 case SDL_Keycode.SDLK_CANCEL:
853 GlobalKeyboard.downKeys[(int)Key.CANCEL] = false;
854 break;
855 case SDL_Keycode.SDLK_CAPSLOCK:
856 GlobalKeyboard.downKeys[(int)Key.CAPSLOCK] = false;
857 break;
858 case SDL_Keycode.SDLK_CLEAR:
859 GlobalKeyboard.downKeys[(int)Key.CLEAR] = false;
860 break;
861 case SDL_Keycode.SDLK_CLEARAGAIN:
862 GlobalKeyboard.downKeys[(int)Key.CLEARAGAIN] = false;
863 break;
864 case SDL_Keycode.SDLK_COMMA:
865 GlobalKeyboard.downKeys[(int)Key.COMMA] = false;
866 break;
867 case SDL_Keycode.SDLK_COMPUTER:
868 GlobalKeyboard.downKeys[(int)Key.COMPUTER] = false;
869 break;
870 case SDL_Keycode.SDLK_COPY:
871 GlobalKeyboard.downKeys[(int)Key.COPY] = false;
872 break;
873 case SDL_Keycode.SDLK_CRSEL:
874 GlobalKeyboard.downKeys[(int)Key.CRSEL] = false;
875 break;
876 case SDL_Keycode.SDLK_CURRENCYSUBUNIT:
877 GlobalKeyboard.downKeys[(int)Key.CURRENCYSUBUNIT] = false;
878 break;
879 case SDL_Keycode.SDLK_CURRENCYUNIT:
880 GlobalKeyboard.downKeys[(int)Key.CURRENCYUNIT] = false;
881 break;
882 case SDL_Keycode.SDLK_CUT:
883 GlobalKeyboard.downKeys[(int)Key.CUT] = false;
884 break;
885 case SDL_Keycode.SDLK_d:
886 GlobalKeyboard.downKeys[(int)Key.D] = false;
887 break;
888 case SDL_Keycode.SDLK_DECIMALSEPARATOR:
889 GlobalKeyboard.downKeys[(int)Key.DECIMALSEPARATOR] = false;
890 break;
891 case SDL_Keycode.SDLK_DELETE:
892 GlobalKeyboard.downKeys[(int)Key.DELETE] = false;
893 break;
894 case SDL_Keycode.SDLK_DISPLAYSWITCH:
895 GlobalKeyboard.downKeys[(int)Key.DISPLAYSWITCH] = false;
896 break;
897 case SDL_Keycode.SDLK_DOWN:
898 GlobalKeyboard.downKeys[(int)Key.DOWN] = false;
899 break;
900 case SDL_Keycode.SDLK_e:
901 GlobalKeyboard.downKeys[(int)Key.E] = false;
902 break;
903 case SDL_Keycode.SDLK_EJECT:
904 GlobalKeyboard.downKeys[(int)Key.EJECT] = false;
905 break;
906 case SDL_Keycode.SDLK_END:
907 GlobalKeyboard.downKeys[(int)Key.END] = false;
908 break;
909 case SDL_Keycode.SDLK_EQUALS:
910 GlobalKeyboard.downKeys[(int)Key.EQUALS] = false;
911 break;
912 case SDL_Keycode.SDLK_ESCAPE:
913 GlobalKeyboard.downKeys[(int)Key.ESCAPE] = false;
914 break;
915 case SDL_Keycode.SDLK_EXECUTE:
916 GlobalKeyboard.downKeys[(int)Key.EXECUTE] = false;
917 break;
918 case SDL_Keycode.SDLK_EXSEL:
919 GlobalKeyboard.downKeys[(int)Key.EXSEL] = false;
920 break;
921 case SDL_Keycode.SDLK_f:
922 GlobalKeyboard.downKeys[(int)Key.F] = false;
923 break;
924 case SDL_Keycode.SDLK_F1:
925 GlobalKeyboard.downKeys[(int)Key.F1] = false;
926 break;
927 case SDL_Keycode.SDLK_F10:
928 GlobalKeyboard.downKeys[(int)Key.F10] = false;
929 break;
930 case SDL_Keycode.SDLK_F11:
931 GlobalKeyboard.downKeys[(int)Key.F11] = false;
932 break;
933 case SDL_Keycode.SDLK_F12:
934 GlobalKeyboard.downKeys[(int)Key.F12] = false;
935 break;
936 case SDL_Keycode.SDLK_F13:
937 GlobalKeyboard.downKeys[(int)Key.F13] = false;
938 break;
939 case SDL_Keycode.SDLK_F14:
940 GlobalKeyboard.downKeys[(int)Key.F14] = false;
941 break;
942 case SDL_Keycode.SDLK_F15:
943 GlobalKeyboard.downKeys[(int)Key.F15] = false;
944 break;
945 case SDL_Keycode.SDLK_F16:
946 GlobalKeyboard.downKeys[(int)Key.F16] = false;
947 break;
948 case SDL_Keycode.SDLK_F17:
949 GlobalKeyboard.downKeys[(int)Key.F17] = false;
950 break;
951 case SDL_Keycode.SDLK_F18:
952 GlobalKeyboard.downKeys[(int)Key.F18] = false;
953 break;
954 case SDL_Keycode.SDLK_F19:
955 GlobalKeyboard.downKeys[(int)Key.F19] = false;
956 break;
957 case SDL_Keycode.SDLK_F2:
958 GlobalKeyboard.downKeys[(int)Key.F2] = false;
959 break;
960 case SDL_Keycode.SDLK_F20:
961 GlobalKeyboard.downKeys[(int)Key.F20] = false;
962 break;
963 case SDL_Keycode.SDLK_F21:
964 GlobalKeyboard.downKeys[(int)Key.F21] = false;
965 break;
966 case SDL_Keycode.SDLK_F22:
967 GlobalKeyboard.downKeys[(int)Key.F22] = false;
968 break;
969 case SDL_Keycode.SDLK_F23:
970 GlobalKeyboard.downKeys[(int)Key.F23] = false;
971 break;
972 case SDL_Keycode.SDLK_F24:
973 GlobalKeyboard.downKeys[(int)Key.F24] = false;
974 break;
975 case SDL_Keycode.SDLK_F3:
976 GlobalKeyboard.downKeys[(int)Key.F3] = false;
977 break;
978 case SDL_Keycode.SDLK_F4:
979 GlobalKeyboard.downKeys[(int)Key.F4] = false;
980 break;
981 case SDL_Keycode.SDLK_F5:
982 GlobalKeyboard.downKeys[(int)Key.F5] = false;
983 break;
984 case SDL_Keycode.SDLK_F6:
985 GlobalKeyboard.downKeys[(int)Key.F6] = false;
986 break;
987 case SDL_Keycode.SDLK_F7:
988 GlobalKeyboard.downKeys[(int)Key.F7] = false;
989 break;
990 case SDL_Keycode.SDLK_F8:
991 GlobalKeyboard.downKeys[(int)Key.F8] = false;
992 break;
993 case SDL_Keycode.SDLK_F9:
994 GlobalKeyboard.downKeys[(int)Key.F9] = false;
995 break;
996 case SDL_Keycode.SDLK_FIND:
997 GlobalKeyboard.downKeys[(int)Key.FIND] = false;
998 break;
999 case SDL_Keycode.SDLK_g:
1000 GlobalKeyboard.downKeys[(int)Key.G] = false;
1001 break;
1002 case SDL_Keycode.SDLK_BACKQUOTE:
1003 GlobalKeyboard.downKeys[(int)Key.BACKQUOTE] = false;
1004 break;
1005 case SDL_Keycode.SDLK_h:
1006 GlobalKeyboard.downKeys[(int)Key.H] = false;
1007 break;
1008 case SDL_Keycode.SDLK_HELP:
1009 GlobalKeyboard.downKeys[(int)Key.HELP] = false;
1010 break;
1011 case SDL_Keycode.SDLK_HOME:
1012 GlobalKeyboard.downKeys[(int)Key.HOME] = false;
1013 break;
1014 case SDL_Keycode.SDLK_i:
1015 GlobalKeyboard.downKeys[(int)Key.I] = false;
1016 break;
1017 case SDL_Keycode.SDLK_INSERT:
1018 GlobalKeyboard.downKeys[(int)Key.INSERT] = false;
1019 break;
1020 case SDL_Keycode.SDLK_j:
1021 GlobalKeyboard.downKeys[(int)Key.J] = false;
1022 break;
1023 case SDL_Keycode.SDLK_k:
1024 GlobalKeyboard.downKeys[(int)Key.K] = false;
1025 break;
1026 case SDL_Keycode.SDLK_KBDILLUMDOWN:
1027 GlobalKeyboard.downKeys[(int)Key.KBDILLUMDOWN] = false;
1028 break;
1029 case SDL_Keycode.SDLK_KBDILLUMTOGGLE:
1030 GlobalKeyboard.downKeys[(int)Key.KBDILLUMTOGGLE] = false;
1031 break;
1032 case SDL_Keycode.SDLK_KBDILLUMUP:
1033 GlobalKeyboard.downKeys[(int)Key.KBDILLUMUP] = false;
1034 break;
1035 case SDL_Keycode.SDLK_KP_0:
1036 GlobalKeyboard.downKeys[(int)Key.KP_0] = false;
1037 break;
1038 case SDL_Keycode.SDLK_KP_00:
1039 GlobalKeyboard.downKeys[(int)Key.KP_00] = false;
1040 break;
1041 case SDL_Keycode.SDLK_KP_000:
1042 GlobalKeyboard.downKeys[(int)Key.KP_000] = false;
1043 break;
1044 case SDL_Keycode.SDLK_KP_1:
1045 GlobalKeyboard.downKeys[(int)Key.KP_1] = false;
1046 break;
1047 case SDL_Keycode.SDLK_KP_2:
1048 GlobalKeyboard.downKeys[(int)Key.KP_2] = false;
1049 break;
1050 case SDL_Keycode.SDLK_KP_3:
1051 GlobalKeyboard.downKeys[(int)Key.KP_3] = false;
1052 break;
1053 case SDL_Keycode.SDLK_KP_4:
1054 GlobalKeyboard.downKeys[(int)Key.KP_4] = false;
1055 break;
1056 case SDL_Keycode.SDLK_KP_5:
1057 GlobalKeyboard.downKeys[(int)Key.KP_5] = false;
1058 break;
1059 case SDL_Keycode.SDLK_KP_6:
1060 GlobalKeyboard.downKeys[(int)Key.KP_6] = false;
1061 break;
1062 case SDL_Keycode.SDLK_KP_7:
1063 GlobalKeyboard.downKeys[(int)Key.KP_7] = false;
1064 break;
1065 case SDL_Keycode.SDLK_KP_8:
1066 GlobalKeyboard.downKeys[(int)Key.KP_8] = false;
1067 break;
1068 case SDL_Keycode.SDLK_KP_9:
1069 GlobalKeyboard.downKeys[(int)Key.KP_9] = false;
1070 break;
1071 case SDL_Keycode.SDLK_KP_A:
1072 GlobalKeyboard.downKeys[(int)Key.KP_A] = false;
1073 break;
1074 case SDL_Keycode.SDLK_KP_AMPERSAND:
1075 GlobalKeyboard.downKeys[(int)Key.KP_AMPERSAND] = false;
1076 break;
1077 case SDL_Keycode.SDLK_KP_AT:
1078 GlobalKeyboard.downKeys[(int)Key.KP_AT] = false;
1079 break;
1080 case SDL_Keycode.SDLK_KP_B:
1081 GlobalKeyboard.downKeys[(int)Key.KP_B] = false;
1082 break;
1083 case SDL_Keycode.SDLK_KP_BACKSPACE:
1084 GlobalKeyboard.downKeys[(int)Key.KP_BACKSPACE] = false;
1085 break;
1086 case SDL_Keycode.SDLK_KP_BINARY:
1087 GlobalKeyboard.downKeys[(int)Key.KP_BINARY] = false;
1088 break;
1089 case SDL_Keycode.SDLK_KP_C:
1090 GlobalKeyboard.downKeys[(int)Key.KP_C] = false;
1091 break;
1092 case SDL_Keycode.SDLK_KP_CLEAR:
1093 GlobalKeyboard.downKeys[(int)Key.KP_CLEAR] = false;
1094 break;
1095 case SDL_Keycode.SDLK_KP_CLEARENTRY:
1096 GlobalKeyboard.downKeys[(int)Key.KP_CLEARENTRY] = false;
1097 break;
1098 case SDL_Keycode.SDLK_KP_COLON:
1099 GlobalKeyboard.downKeys[(int)Key.KP_COLON] = false;
1100 break;
1101 case SDL_Keycode.SDLK_KP_COMMA:
1102 GlobalKeyboard.downKeys[(int)Key.KP_COMMA] = false;
1103 break;
1104 case SDL_Keycode.SDLK_KP_D:
1105 GlobalKeyboard.downKeys[(int)Key.KP_D] = false;
1106 break;
1107 case SDL_Keycode.SDLK_KP_DBLAMPERSAND:
1108 GlobalKeyboard.downKeys[(int)Key.KP_DBLAMPERSAND] = false;
1109 break;
1110 case SDL_Keycode.SDLK_KP_DBLVERTICALBAR:
1111 GlobalKeyboard.downKeys[(int)Key.KP_DBLVERTICALBAR] = false;
1112 break;
1113 case SDL_Keycode.SDLK_KP_DECIMAL:
1114 GlobalKeyboard.downKeys[(int)Key.KP_DECIMAL] = false;
1115 break;
1116 case SDL_Keycode.SDLK_KP_DIVIDE:
1117 GlobalKeyboard.downKeys[(int)Key.KP_DIVIDE] = false;
1118 break;
1119 case SDL_Keycode.SDLK_KP_E:
1120 GlobalKeyboard.downKeys[(int)Key.KP_E] = false;
1121 break;
1122 case SDL_Keycode.SDLK_KP_ENTER:
1123 GlobalKeyboard.downKeys[(int)Key.KP_ENTER] = false;
1124 break;
1125 case SDL_Keycode.SDLK_KP_EQUALS:
1126 GlobalKeyboard.downKeys[(int)Key.KP_EQUALS] = false;
1127 break;
1128 case SDL_Keycode.SDLK_KP_EQUALSAS400:
1129 GlobalKeyboard.downKeys[(int)Key.KP_EQUALSAS400] = false;
1130 break;
1131 case SDL_Keycode.SDLK_KP_EXCLAM:
1132 GlobalKeyboard.downKeys[(int)Key.KP_EXCLAM] = false;
1133 break;
1134 case SDL_Keycode.SDLK_KP_F:
1135 GlobalKeyboard.downKeys[(int)Key.KP_F] = false;
1136 break;
1137 case SDL_Keycode.SDLK_KP_GREATER:
1138 GlobalKeyboard.downKeys[(int)Key.KP_GREATER] = false;
1139 break;
1140 case SDL_Keycode.SDLK_KP_HASH:
1141 GlobalKeyboard.downKeys[(int)Key.KP_HASH] = false;
1142 break;
1143 case SDL_Keycode.SDLK_KP_HEXADECIMAL:
1144 GlobalKeyboard.downKeys[(int)Key.KP_HEXADECIMAL] = false;
1145 break;
1146 case SDL_Keycode.SDLK_KP_LEFTBRACE:
1147 GlobalKeyboard.downKeys[(int)Key.KP_LEFTBRACE] = false;
1148 break;
1149 case SDL_Keycode.SDLK_KP_LEFTPAREN:
1150 GlobalKeyboard.downKeys[(int)Key.KP_LEFTPAREN] = false;
1151 break;
1152 case SDL_Keycode.SDLK_KP_LESS:
1153 GlobalKeyboard.downKeys[(int)Key.KP_LESS] = false;
1154 break;
1155 case SDL_Keycode.SDLK_KP_MEMADD:
1156 GlobalKeyboard.downKeys[(int)Key.KP_MEMADD] = false;
1157 break;
1158 case SDL_Keycode.SDLK_KP_MEMCLEAR:
1159 GlobalKeyboard.downKeys[(int)Key.KP_MEMCLEAR] = false;
1160 break;
1161 case SDL_Keycode.SDLK_KP_MEMDIVIDE:
1162 GlobalKeyboard.downKeys[(int)Key.KP_MEMDIVIDE] = false;
1163 break;
1164 case SDL_Keycode.SDLK_KP_MEMMULTIPLY:
1165 GlobalKeyboard.downKeys[(int)Key.KP_MEMMULTIPLY] = false;
1166 break;
1167 case SDL_Keycode.SDLK_KP_MEMRECALL:
1168 GlobalKeyboard.downKeys[(int)Key.KP_MEMRECALL] = false;
1169 break;
1170 case SDL_Keycode.SDLK_KP_MEMSTORE:
1171 GlobalKeyboard.downKeys[(int)Key.KP_MEMSTORE] = false;
1172 break;
1173 case SDL_Keycode.SDLK_KP_MEMSUBTRACT:
1174 GlobalKeyboard.downKeys[(int)Key.KP_MEMSUBTRACT] = false;
1175 break;
1176 case SDL_Keycode.SDLK_KP_MINUS:
1177 GlobalKeyboard.downKeys[(int)Key.KP_MINUS] = false;
1178 break;
1179 case SDL_Keycode.SDLK_KP_MULTIPLY:
1180 GlobalKeyboard.downKeys[(int)Key.KP_MULTIPLY] = false;
1181 break;
1182 case SDL_Keycode.SDLK_KP_OCTAL:
1183 GlobalKeyboard.downKeys[(int)Key.KP_OCTAL] = false;
1184 break;
1185 case SDL_Keycode.SDLK_KP_PERCENT:
1186 GlobalKeyboard.downKeys[(int)Key.KP_PERCENT] = false;
1187 break;
1188 case SDL_Keycode.SDLK_KP_PERIOD:
1189 GlobalKeyboard.downKeys[(int)Key.KP_PERIOD] = false;
1190 break;
1191 case SDL_Keycode.SDLK_KP_PLUS:
1192 GlobalKeyboard.downKeys[(int)Key.KP_PLUS] = false;
1193 break;
1194 case SDL_Keycode.SDLK_KP_PLUSMINUS:
1195 GlobalKeyboard.downKeys[(int)Key.KP_PLUSMINUS] = false;
1196 break;
1197 case SDL_Keycode.SDLK_KP_POWER:
1198 GlobalKeyboard.downKeys[(int)Key.KP_POWER] = false;
1199 break;
1200 case SDL_Keycode.SDLK_KP_RIGHTBRACE:
1201 GlobalKeyboard.downKeys[(int)Key.KP_RIGHTBRACE] = false;
1202 break;
1203 case SDL_Keycode.SDLK_KP_RIGHTPAREN:
1204 GlobalKeyboard.downKeys[(int)Key.KP_RIGHTPAREN] = false;
1205 break;
1206 case SDL_Keycode.SDLK_KP_SPACE:
1207 GlobalKeyboard.downKeys[(int)Key.KP_SPACE] = false;
1208 break;
1209 case SDL_Keycode.SDLK_KP_TAB:
1210 GlobalKeyboard.downKeys[(int)Key.KP_TAB] = false;
1211 break;
1212 case SDL_Keycode.SDLK_KP_VERTICALBAR:
1213 GlobalKeyboard.downKeys[(int)Key.KP_VERTICALBAR] = false;
1214 break;
1215 case SDL_Keycode.SDLK_KP_XOR:
1216 GlobalKeyboard.downKeys[(int)Key.KP_XOR] = false;
1217 break;
1218 case SDL_Keycode.SDLK_l:
1219 GlobalKeyboard.downKeys[(int)Key.L] = false;
1220 break;
1221 case SDL_Keycode.SDLK_LEFT:
1222 GlobalKeyboard.downKeys[(int)Key.LEFT] = false;
1223 break;
1224 case SDL_Keycode.SDLK_LEFTBRACKET:
1225 GlobalKeyboard.downKeys[(int)Key.LEFTBRACKET] = false;
1226 break;
1227 case SDL_Keycode.SDLK_LGUI:
1228 GlobalKeyboard.downKeys[(int)Key.LGUI] = false;
1229 break;
1230 case SDL_Keycode.SDLK_m:
1231 GlobalKeyboard.downKeys[(int)Key.M] = false;
1232 break;
1233 case SDL_Keycode.SDLK_MAIL:
1234 GlobalKeyboard.downKeys[(int)Key.MAIL] = false;
1235 break;
1236 case SDL_Keycode.SDLK_MEDIASELECT:
1237 GlobalKeyboard.downKeys[(int)Key.MEDIASELECT] = false;
1238 break;
1239 case SDL_Keycode.SDLK_MENU:
1240 GlobalKeyboard.downKeys[(int)Key.MENU] = false;
1241 break;
1242 case SDL_Keycode.SDLK_MINUS:
1243 GlobalKeyboard.downKeys[(int)Key.MINUS] = false;
1244 break;
1245 case SDL_Keycode.SDLK_MODE:
1246 GlobalKeyboard.downKeys[(int)Key.MODE] = false;
1247 break;
1248 case SDL_Keycode.SDLK_MUTE:
1249 GlobalKeyboard.downKeys[(int)Key.MUTE] = false;
1250 break;
1251 case SDL_Keycode.SDLK_n:
1252 GlobalKeyboard.downKeys[(int)Key.N] = false;
1253 break;
1254 case SDL_Keycode.SDLK_NUMLOCKCLEAR:
1255 GlobalKeyboard.downKeys[(int)Key.NUMLOCKCLEAR] = false;
1256 break;
1257 case SDL_Keycode.SDLK_o:
1258 GlobalKeyboard.downKeys[(int)Key.O] = false;
1259 break;
1260 case SDL_Keycode.SDLK_OPER:
1261 GlobalKeyboard.downKeys[(int)Key.OPER] = false;
1262 break;
1263 case SDL_Keycode.SDLK_OUT:
1264 GlobalKeyboard.downKeys[(int)Key.OUT] = false;
1265 break;
1266 case SDL_Keycode.SDLK_p:
1267 GlobalKeyboard.downKeys[(int)Key.P] = false;
1268 break;
1269 case SDL_Keycode.SDLK_PAGEDOWN:
1270 GlobalKeyboard.downKeys[(int)Key.PAGEDOWN] = false;
1271 break;
1272 case SDL_Keycode.SDLK_PAGEUP:
1273 GlobalKeyboard.downKeys[(int)Key.PAGEUP] = false;
1274 break;
1275 case SDL_Keycode.SDLK_PASTE:
1276 GlobalKeyboard.downKeys[(int)Key.PASTE] = false;
1277 break;
1278 case SDL_Keycode.SDLK_PAUSE:
1279 GlobalKeyboard.downKeys[(int)Key.PAUSE] = false;
1280 break;
1281 case SDL_Keycode.SDLK_PERIOD:
1282 GlobalKeyboard.downKeys[(int)Key.PERIOD] = false;
1283 break;
1284 case SDL_Keycode.SDLK_POWER:
1285 GlobalKeyboard.downKeys[(int)Key.POWER] = false;
1286 break;
1287 case SDL_Keycode.SDLK_PRINTSCREEN:
1288 GlobalKeyboard.downKeys[(int)Key.PRINTSCREEN] = false;
1289 break;
1290 case SDL_Keycode.SDLK_PRIOR:
1291 GlobalKeyboard.downKeys[(int)Key.PRIOR] = false;
1292 break;
1293 case SDL_Keycode.SDLK_q:
1294 GlobalKeyboard.downKeys[(int)Key.Q] = false;
1295 break;
1296 case SDL_Keycode.SDLK_r:
1297 GlobalKeyboard.downKeys[(int)Key.R] = false;
1298 break;
1299 case SDL_Keycode.SDLK_RETURN:
1300 GlobalKeyboard.downKeys[(int)Key.RETURN] = false;
1301 break;
1302 case SDL_Keycode.SDLK_RETURN2:
1303 GlobalKeyboard.downKeys[(int)Key.RETURN2] = false;
1304 break;
1305 case SDL_Keycode.SDLK_RGUI:
1306 GlobalKeyboard.downKeys[(int)Key.RGUI] = false;
1307 break;
1308 case SDL_Keycode.SDLK_RIGHT:
1309 GlobalKeyboard.downKeys[(int)Key.RIGHT] = false;
1310 break;
1311 case SDL_Keycode.SDLK_RIGHTBRACKET:
1312 GlobalKeyboard.downKeys[(int)Key.RIGHTBRACKET] = false;
1313 break;
1314 case SDL_Keycode.SDLK_s:
1315 GlobalKeyboard.downKeys[(int)Key.S] = false;
1316 break;
1317 case SDL_Keycode.SDLK_SCROLLLOCK:
1318 GlobalKeyboard.downKeys[(int)Key.SCROLLLOCK] = false;
1319 break;
1320 case SDL_Keycode.SDLK_SELECT:
1321 GlobalKeyboard.downKeys[(int)Key.SELECT] = false;
1322 break;
1323 case SDL_Keycode.SDLK_SEMICOLON:
1324 GlobalKeyboard.downKeys[(int)Key.SEMICOLON] = false;
1325 break;
1326 case SDL_Keycode.SDLK_SEPARATOR:
1327 GlobalKeyboard.downKeys[(int)Key.SEPARATOR] = false;
1328 break;
1329 case SDL_Keycode.SDLK_SLASH:
1330 GlobalKeyboard.downKeys[(int)Key.SLASH] = false;
1331 break;
1332 case SDL_Keycode.SDLK_SLEEP:
1333 GlobalKeyboard.downKeys[(int)Key.SLEEP] = false;
1334 break;
1335 case SDL_Keycode.SDLK_SPACE:
1336 GlobalKeyboard.downKeys[(int)Key.SPACE] = false;
1337 break;
1338 case SDL_Keycode.SDLK_STOP:
1339 GlobalKeyboard.downKeys[(int)Key.STOP] = false;
1340 break;
1341 case SDL_Keycode.SDLK_SYSREQ:
1342 GlobalKeyboard.downKeys[(int)Key.SYSREQ] = false;
1343 break;
1344 case SDL_Keycode.SDLK_t:
1345 GlobalKeyboard.downKeys[(int)Key.T] = false;
1346 break;
1347 case SDL_Keycode.SDLK_TAB:
1348 GlobalKeyboard.downKeys[(int)Key.TAB] = false;
1349 break;
1350 case SDL_Keycode.SDLK_THOUSANDSSEPARATOR:
1351 GlobalKeyboard.downKeys[(int)Key.THOUSANDSSEPARATOR] = false;
1352 break;
1353 case SDL_Keycode.SDLK_u:
1354 GlobalKeyboard.downKeys[(int)Key.U] = false;
1355 break;
1356 case SDL_Keycode.SDLK_UNDO:
1357 GlobalKeyboard.downKeys[(int)Key.UNDO] = false;
1358 break;
1359 case SDL_Keycode.SDLK_UNKNOWN:
1360 GlobalKeyboard.downKeys[(int)Key.UNKNOWN] = false;
1361 break;
1362 case SDL_Keycode.SDLK_UP:
1363 GlobalKeyboard.downKeys[(int)Key.UP] = false;
1364 break;
1365 case SDL_Keycode.SDLK_v:
1366 GlobalKeyboard.downKeys[(int)Key.V] = false;
1367 break;
1368 case SDL_Keycode.SDLK_VOLUMEDOWN:
1369 GlobalKeyboard.downKeys[(int)Key.VOLUMEDOWN] = false;
1370 break;
1371 case SDL_Keycode.SDLK_VOLUMEUP:
1372 GlobalKeyboard.downKeys[(int)Key.VOLUMEUP] = false;
1373 break;
1374 case SDL_Keycode.SDLK_w:
1375 GlobalKeyboard.downKeys[(int)Key.W] = false;
1376 break;
1377 case SDL_Keycode.SDLK_WWW:
1378 GlobalKeyboard.downKeys[(int)Key.WWW] = false;
1379 break;
1380 case SDL_Keycode.SDLK_x:
1381 GlobalKeyboard.downKeys[(int)Key.X] = false;
1382 break;
1383 case SDL_Keycode.SDLK_y:
1384 GlobalKeyboard.downKeys[(int)Key.Y] = false;
1385 break;
1386 case SDL_Keycode.SDLK_z:
1387 GlobalKeyboard.downKeys[(int)Key.Z] = false;
1388 break;
1389 case SDL_Keycode.SDLK_AMPERSAND:
1390 GlobalKeyboard.downKeys[(int)Key.AMPERSAND] = false;
1391 break;
1392 case SDL_Keycode.SDLK_ASTERISK:
1393 GlobalKeyboard.downKeys[(int)Key.ASTERISK] = false;
1394 break;
1395 case SDL_Keycode.SDLK_AT:
1396 GlobalKeyboard.downKeys[(int)Key.AT] = false;
1397 break;
1398 case SDL_Keycode.SDLK_CARET:
1399 GlobalKeyboard.downKeys[(int)Key.CARET] = false;
1400 break;
1401 case SDL_Keycode.SDLK_COLON:
1402 GlobalKeyboard.downKeys[(int)Key.COLON] = false;
1403 break;
1404 case SDL_Keycode.SDLK_DOLLAR:
1405 GlobalKeyboard.downKeys[(int)Key.DOLLAR] = false;
1406 break;
1407 case SDL_Keycode.SDLK_EXCLAIM:
1408 GlobalKeyboard.downKeys[(int)Key.EXCLAIM] = false;
1409 break;
1410 case SDL_Keycode.SDLK_GREATER:
1411 GlobalKeyboard.downKeys[(int)Key.GREATER] = false;
1412 break;
1413 case SDL_Keycode.SDLK_HASH:
1414 GlobalKeyboard.downKeys[(int)Key.HASH] = false;
1415 break;
1416 case SDL_Keycode.SDLK_LEFTPAREN:
1417 GlobalKeyboard.downKeys[(int)Key.LEFTPAREN] = false;
1418 break;
1419 case SDL_Keycode.SDLK_LESS:
1420 GlobalKeyboard.downKeys[(int)Key.LESS] = false;
1421 break;
1422 case SDL_Keycode.SDLK_PERCENT:
1423 GlobalKeyboard.downKeys[(int)Key.PERCENT] = false;
1424 break;
1425 case SDL_Keycode.SDLK_PLUS:
1426 GlobalKeyboard.downKeys[(int)Key.PLUS] = false;
1427 break;
1428 case SDL_Keycode.SDLK_QUESTION:
1429 GlobalKeyboard.downKeys[(int)Key.QUESTION] = false;
1430 break;
1431 case SDL_Keycode.SDLK_QUOTEDBL:
1432 GlobalKeyboard.downKeys[(int)Key.QUOTEDBL] = false;
1433 break;
1434 case SDL_Keycode.SDLK_RIGHTPAREN:
1435 GlobalKeyboard.downKeys[(int)Key.RIGHTPAREN] = false;
1436 break;
1437 case SDL_Keycode.SDLK_UNDERSCORE:
1438 GlobalKeyboard.downKeys[(int)Key.UNDERSCORE] = false;
1439 break;
1440 case SDL_Keycode.SDLK_LCTRL:
1441 GlobalKeyboard.pressedModifiers.Remove(Mod.LCtrl);
1442 break;
1443 case SDL_Keycode.SDLK_LSHIFT:
1444 GlobalKeyboard.pressedModifiers.Remove(Mod.LShift);
1445 break;
1446 }
1447
1448 break;
1449 case SDL_EventType.SDL_TEXTINPUT:
1450 if(FUI.selectedTextField == null) {
1451 break;
1452 }
1453
1454 unsafe {
1455 byte[] arr = new byte[1];
1456 Marshal.Copy((IntPtr)e.text.text, arr, 0, 1);
1457 // Console.WriteLine(FUI.selectedTextFieldValue);
1458 if(FUI.selectedTextFieldOnChange != null)
1459 FUI.selectedTextFieldOnChange(FUI.selectedTextFieldValue + Encoding.UTF8.GetString(arr));
1460 }
1461 break;
1462 case SDL_EventType.SDL_TEXTEDITING:
1463 if(FUI.selectedTextField == null) {
1464 break;
1465 }
1466 break;
1467 case SDL_EventType.SDL_MOUSEMOTION:
1468 SDL_GetMouseState(out int _x, out int _y);
1469 GlobalMouse.Position = new Vector2(_x, _y);
1470 GlobalMouse.RelativePosition = new Vector2((float)_x / (float)Game.Window.Width, (float)_y / (float)Game.Window.Height);
1471 break;
1472 case SDL_EventType.SDL_MOUSEBUTTONDOWN:
1473 switch(e.button.button) {
1474 case (byte)SDL_BUTTON_LEFT: {
1475 if (!GlobalMouse.Down(MB.Left))
1476 GlobalMouse.pressedKeys[MB.Left] = true;
1477 else
1478 GlobalMouse.pressedKeys[MB.Left] = false;
1479 GlobalMouse.downKeys[MB.Left] = true;
1480 } break;
1481 case (byte)SDL_BUTTON_RIGHT: {
1482 if (!GlobalMouse.Down(MB.Right))
1483 GlobalMouse.pressedKeys[MB.Right] = true;
1484 else
1485 GlobalMouse.pressedKeys[MB.Right] = false;
1486 GlobalMouse.downKeys[MB.Right] = true;
1487 } break;
1488 }
1489 break;
1490 case SDL_EventType.SDL_MOUSEBUTTONUP:
1491 switch(e.button.button) {
1492 case (byte)SDL_BUTTON_LEFT: {
1493 GlobalMouse.downKeys[MB.Left] = false;
1494 } break;
1495 case (byte)SDL_BUTTON_RIGHT: {
1496 GlobalMouse.downKeys[MB.Right] = false;
1497 } break;
1498 }
1499 break;
1500 case SDL_EventType.SDL_MOUSEWHEEL:
1501 if(e.wheel.y > 0) // scroll up
1502 {
1503 if (!GlobalMouse.Down(MB.ScrollUp))
1504 GlobalMouse.pressedKeys[MB.ScrollUp] = true;
1505 else
1506 GlobalMouse.pressedKeys[MB.ScrollUp] = false;
1507 GlobalMouse.downKeys[MB.ScrollUp] = true;
1508 }
1509 else if(e.wheel.y < 0) // scroll down
1510 {
1511 if (!GlobalMouse.Down(MB.ScrollDown))
1512 GlobalMouse.pressedKeys[MB.ScrollDown] = true;
1513 else
1514 GlobalMouse.pressedKeys[MB.ScrollDown] = false;
1515 GlobalMouse.downKeys[MB.ScrollDown] = true;
1516 }
1517
1518 if(e.wheel.x > 0) // scroll right
1519 {
1520 if (!GlobalMouse.Down(MB.ScrollRight))
1521 GlobalMouse.pressedKeys[MB.ScrollRight] = true;
1522 else
1523 GlobalMouse.pressedKeys[MB.ScrollRight] = false;
1524 GlobalMouse.downKeys[MB.ScrollRight] = true;
1525 }
1526 else if(e.wheel.x < 0) // scroll left
1527 {
1528 if (!GlobalMouse.Down(MB.ScrollLeft))
1529 GlobalMouse.pressedKeys[MB.ScrollLeft] = true;
1530 else
1531 GlobalMouse.pressedKeys[MB.ScrollLeft] = false;
1532 GlobalMouse.downKeys[MB.ScrollLeft] = true;
1533 }
1534 break;
1535 }
1536 }
1537 }
1538 }
1539}