2
3
4
5
6
7
8
19
20
21
22
24#include "ui_ncurses_internal.h"
25int ncurses_input(UiSurface *s, uint w);
32 char Title[] =
"TEST CURSES KEYS";
38 uint begy = (maxy - lines) / 3;
39 uint begx = (maxx - cols) / 2;
53 ncurses_input(sfc, WIN);
62int ncurses_input(UiSurface *sfc, uint w) {
71 ui_cursor_move(sfc, WIN, 1, 39);
74 c = ui_get_event(sfc, WIN, &ev, -1);
75 if (sig_received != 0) {
76 if (handle_signal(sig_received))
77 c = display_error(em0, em1, em2, NULL);
78 if (c ==
'q' || c == KEY_F(9))
87 strnz__cpy(kstr,
"KEY_CODE_YES A wchar_t contains a key code",
91 strnz__cpy(kstr,
"KEY_BREAK Break key(unreliable)", KSTRLEN - 1);
94 strnz__cpy(kstr,
"KEY_DOWN down - arrow key", KSTRLEN - 1);
97 strnz__cpy(kstr,
"KEY_UP up - arrow key", KSTRLEN - 1);
100 strnz__cpy(kstr,
"KEY_LEFT left - arrow key", KSTRLEN - 1);
103 strnz__cpy(kstr,
"KEY_RIGHT right - arrow key", KSTRLEN - 1);
106 strnz__cpy(kstr,
"KEY_HOME home key", KSTRLEN - 1);
109 strnz__cpy(kstr,
"KEY_BACKSPACE backspace key", KSTRLEN - 1);
112 strnz__cpy(kstr,
"KEY_F(1) KEY_F(1)", KSTRLEN - 1);
115 strnz__cpy(kstr,
"KEY_F2 KEY_F2", KSTRLEN - 1);
118 strnz__cpy(kstr,
"KEY_F3 KEY_F3", KSTRLEN - 1);
121 strnz__cpy(kstr,
"KEY_F4 KEY_F4", KSTRLEN - 1);
124 strnz__cpy(kstr,
"KEY_F5 KEY_F5", KSTRLEN - 1);
127 strnz__cpy(kstr,
"KEY_F6 KEY_F6", KSTRLEN - 1);
130 strnz__cpy(kstr,
"KEY_F7 KEY_F7", KSTRLEN - 1);
133 strnz__cpy(kstr,
"KEY_F8 KEY_F8", KSTRLEN - 1);
136 strnz__cpy(kstr,
"KEY_F9 KEY_F9", KSTRLEN - 1);
139 strnz__cpy(kstr,
"KEY_F10 KEY_F10", KSTRLEN - 1);
142 strnz__cpy(kstr,
"KEY_F11 KEY_F11", KSTRLEN - 1);
145 strnz__cpy(kstr,
"KEY_F12 KEY_F12", KSTRLEN - 1);
148 strnz__cpy(kstr,
"KEY_DL delete - line key", KSTRLEN - 1);
151 strnz__cpy(kstr,
"KEY_IL insert - line key", KSTRLEN - 1);
154 strnz__cpy(kstr,
"KEY_DC delete - character key", KSTRLEN - 1);
157 strnz__cpy(kstr,
"KEY_IC insert - character key", KSTRLEN - 1);
160 strnz__cpy(kstr,
"KEY_EIC sent by rmir or smir in insert mode",
164 strnz__cpy(kstr,
"KEY_CLEAR clear - screen or erase key",
168 strnz__cpy(kstr,
"KEY_EOS clear - to - end - of - screen key",
172 strnz__cpy(kstr,
"KEY_EOL clear - to - end - of - line key",
176 strnz__cpy(kstr,
"KEY_SF scroll - forward key", KSTRLEN - 1);
179 strnz__cpy(kstr,
"KEY_SR scroll - backward key", KSTRLEN - 1);
182 strnz__cpy(kstr,
"KEY_NPAGE next - page key", KSTRLEN - 1);
185 strnz__cpy(kstr,
"KEY_PPAGE previous - page key", KSTRLEN - 1);
188 strnz__cpy(kstr,
"KEY_STAB set - tab key", KSTRLEN - 1);
191 strnz__cpy(kstr,
"KEY_CTAB clear - tab key", KSTRLEN - 1);
194 strnz__cpy(kstr,
"KEY_CATAB clear - all - tabs key", KSTRLEN - 1);
197 strnz__cpy(kstr,
"KEY_ENTER newline key", KSTRLEN - 1);
200 strnz__cpy(kstr,
"KEY_ENTER enter / send key", KSTRLEN - 1);
203 strnz__cpy(kstr,
"KEY_SRESET Soft(partial) reset(unreliable)",
207 strnz__cpy(kstr,
"KEY_RESET Reset or hard reset(unreliable)",
211 strnz__cpy(kstr,
"KEY_PRINT print key", KSTRLEN - 1);
214 strnz__cpy(kstr,
"KEY_LL lower - left key(home down)", KSTRLEN - 1);
217 strnz__cpy(kstr,
"KEY_A1 upper left of keypad", KSTRLEN - 1);
220 strnz__cpy(kstr,
"KEY_A3 upper right of keypad", KSTRLEN - 1);
223 strnz__cpy(kstr,
"KEY_B2 center of keypad", KSTRLEN - 1);
226 strnz__cpy(kstr,
"KEY_C1 lower left of keypad", KSTRLEN - 1);
229 strnz__cpy(kstr,
"KEY_C3 lower right of keypad", KSTRLEN - 1);
232 strnz__cpy(kstr,
"KEY_BTAB back - tab key", KSTRLEN - 1);
235 strnz__cpy(kstr,
"KEY_BEG begin key", KSTRLEN - 1);
238 strnz__cpy(kstr,
"KEY_CANCEL cancel key", KSTRLEN - 1);
241 strnz__cpy(kstr,
"KEY_CLOSE close key", KSTRLEN - 1);
244 strnz__cpy(kstr,
"KEY_COMMAND command key", KSTRLEN - 1);
247 strnz__cpy(kstr,
"KEY_COPY copy key", KSTRLEN - 1);
250 strnz__cpy(kstr,
"KEY_CREATE create key", KSTRLEN - 1);
253 strnz__cpy(kstr,
"KEY_END end key", KSTRLEN - 1);
256 strnz__cpy(kstr,
"KEY_EXIT exit key", KSTRLEN - 1);
259 strnz__cpy(kstr,
"KEY_FIND find key", KSTRLEN - 1);
262 strnz__cpy(kstr,
"KEY_HELP help key", KSTRLEN - 1);
265 strnz__cpy(kstr,
"KEY_MARK mark key", KSTRLEN - 1);
268 strnz__cpy(kstr,
"KEY_MESSAGE message key", KSTRLEN - 1);
271 strnz__cpy(kstr,
"KEY_MOVE move key", KSTRLEN - 1);
274 strnz__cpy(kstr,
"KEY_NEXT next key", KSTRLEN - 1);
277 strnz__cpy(kstr,
"KEY_OPEN open key", KSTRLEN - 1);
280 strnz__cpy(kstr,
"KEY_OPTIONS options key", KSTRLEN - 1);
283 strnz__cpy(kstr,
"KEY_PREVIOUS previous key", KSTRLEN - 1);
286 strnz__cpy(kstr,
"KEY_REDO redo key", KSTRLEN - 1);
289 strnz__cpy(kstr,
"KEY_REFERENCE reference key", KSTRLEN - 1);
292 strnz__cpy(kstr,
"KEY_REFRESH refresh key", KSTRLEN - 1);
295 strnz__cpy(kstr,
"KEY_REPLACE replace key", KSTRLEN - 1);
298 strnz__cpy(kstr,
"KEY_RESTART restart key", KSTRLEN - 1);
301 strnz__cpy(kstr,
"KEY_RESUME resume key", KSTRLEN - 1);
304 strnz__cpy(kstr,
"KEY_SAVE save key", KSTRLEN - 1);
307 strnz__cpy(kstr,
"KEY_SBEG shifted begin key", KSTRLEN - 1);
310 strnz__cpy(kstr,
"KEY_SCANCEL shifted cancel key", KSTRLEN - 1);
313 strnz__cpy(kstr,
"KEY_SCOMMAND shifted command key", KSTRLEN - 1);
316 strnz__cpy(kstr,
"KEY_SCOPY shifted copy key", KSTRLEN - 1);
319 strnz__cpy(kstr,
"KEY_SCREATE shifted create key", KSTRLEN - 1);
322 strnz__cpy(kstr,
"KEY_SDC shifted delete - character key",
326 strnz__cpy(kstr,
"KEY_SDL shifted delete - line key", KSTRLEN - 1);
329 strnz__cpy(kstr,
"KEY_SELECT select key", KSTRLEN - 1);
332 strnz__cpy(kstr,
"KEY_SEND shifted end key", KSTRLEN - 1);
336 "KEY_SEOL shifted clear - to - end - of - line key",
340 strnz__cpy(kstr,
"KEY_SEXIT shifted exit key", KSTRLEN - 1);
343 strnz__cpy(kstr,
"KEY_SFIND shifted find key", KSTRLEN - 1);
346 strnz__cpy(kstr,
"KEY_SHELP shifted help key", KSTRLEN - 1);
349 strnz__cpy(kstr,
"KEY_SHOME shifted home key", KSTRLEN - 1);
352 strnz__cpy(kstr,
"KEY_SIC shifted insert - character key",
356 strnz__cpy(kstr,
"KEY_SLEFT shifted left - arrow key", KSTRLEN - 1);
359 strnz__cpy(kstr,
"KEY_SMESSAGE shifted message key", KSTRLEN - 1);
362 strnz__cpy(kstr,
"KEY_SMOVE shifted move key", KSTRLEN - 1);
365 strnz__cpy(kstr,
"KEY_SNEXT shifted next key", KSTRLEN - 1);
368 strnz__cpy(kstr,
"KEY_SOPTIONS shifted options key", KSTRLEN - 1);
371 strnz__cpy(kstr,
"KEY_SPREVIOUS shifted previous key", KSTRLEN - 1);
374 strnz__cpy(kstr,
"KEY_SPRINT shifted print key", KSTRLEN - 1);
377 strnz__cpy(kstr,
"KEY_SREDO shifted redo key", KSTRLEN - 1);
380 strnz__cpy(kstr,
"KEY_SREPLACE shifted replace key", KSTRLEN - 1);
383 strnz__cpy(kstr,
"KEY_SRIGHT shifted right - arrow key",
387 strnz__cpy(kstr,
"KEY_SRSUME shifted resume key", KSTRLEN - 1);
390 strnz__cpy(kstr,
"KEY_SSAVE shifted save key", KSTRLEN - 1);
393 strnz__cpy(kstr,
"KEY_SSUSPEND shifted suspend key", KSTRLEN - 1);
396 strnz__cpy(kstr,
"KEY_SUNDO shifted undo key", KSTRLEN - 1);
399 strnz__cpy(kstr,
"KEY_SUSPEND suspend key", KSTRLEN - 1);
402 strnz__cpy(kstr,
"KEY_UNDO undo key", KSTRLEN - 1);
405 strnz__cpy(kstr,
"KEY_ALTDEL alt+delete", KSTRLEN - 1);
408 strnz__cpy(kstr,
"KEY_ALTDOWN alt+down", KSTRLEN - 1);
411 strnz__cpy(kstr,
"KEY_ALTEND alt+end", KSTRLEN - 1);
414 strnz__cpy(kstr,
"KEY_ALTHOME alt+home", KSTRLEN - 1);
417 strnz__cpy(kstr,
"KEY_ALTINS alt+ins", KSTRLEN - 1);
420 strnz__cpy(kstr,
"KEY_ALTLEFT alt+left", KSTRLEN - 1);
423 strnz__cpy(kstr,
"KEY_ALTPGDN alt+pgdn", KSTRLEN - 1);
426 strnz__cpy(kstr,
"KEY_ALTPGUP alt+pgup", KSTRLEN - 1);
429 strnz__cpy(kstr,
"KEY_ALTRIGHT alt+right", KSTRLEN - 1);
432 strnz__cpy(kstr,
"KEY_ALTUP alt+up", KSTRLEN - 1);
435 strnz__cpy(kstr,
"KEY_ALTF1 alt+F1", KSTRLEN - 1);
438 strnz__cpy(kstr,
"KEY_ALTF1 alt+F2", KSTRLEN - 1);
441 strnz__cpy(kstr,
"KEY_ALTF3 alt+F3", KSTRLEN - 1);
444 strnz__cpy(kstr,
"KEY_ALTF4 alt+F4", KSTRLEN - 1);
447 strnz__cpy(kstr,
"KEY_ALTF5 alt+F5", KSTRLEN - 1);
450 strnz__cpy(kstr,
"KEY_ALTF6 alt+F6", KSTRLEN - 1);
453 strnz__cpy(kstr,
"KEY_ALTF7 alt+F7", KSTRLEN - 1);
456 strnz__cpy(kstr,
"KEY_ALTF8 alt+F8", KSTRLEN - 1);
459 strnz__cpy(kstr,
"KEY_ALTF9 alt+F9", KSTRLEN - 1);
462 strnz__cpy(kstr,
"KEY_ALTF10 alt+F10", KSTRLEN - 1);
465 strnz__cpy(kstr,
"KEY_ALTF11 alt+F11", KSTRLEN - 1);
468 strnz__cpy(kstr,
"KEY_ALTF12 alt+F12", KSTRLEN - 1);
472 case BUTTON1_PRESSED:
473 strnz__cpy(action,
"Button 1 pressed", KSTRLEN - 1);
475 case BUTTON1_RELEASED:
476 strnz__cpy(action,
"Button 1 released", KSTRLEN - 1);
478 case BUTTON1_CLICKED:
479 strnz__cpy(action,
"Button 1 clicked", KSTRLEN - 1);
481 case BUTTON1_DOUBLE_CLICKED:
482 strnz__cpy(action,
"Button 1 double-clicked", KSTRLEN - 1);
484 case BUTTON2_PRESSED:
485 strnz__cpy(action,
"Button 2 pressed", KSTRLEN - 1);
487 case BUTTON2_RELEASED:
488 strnz__cpy(action,
"Button 2 released", KSTRLEN - 1);
490 case BUTTON2_CLICKED:
491 strnz__cpy(action,
"Button 2 clicked", KSTRLEN - 1);
493 case BUTTON2_DOUBLE_CLICKED:
494 strnz__cpy(action,
"Button 2 double-clicked", KSTRLEN - 1);
496 case BUTTON3_PRESSED:
497 strnz__cpy(action,
"Button 3 pressed", KSTRLEN - 1);
499 case BUTTON3_RELEASED:
500 strnz__cpy(action,
"Button 3 released", KSTRLEN - 1);
502 case BUTTON3_CLICKED:
503 strnz__cpy(action,
"Button 3 clicked", KSTRLEN - 1);
505 case BUTTON3_DOUBLE_CLICKED:
506 strnz__cpy(action,
"Button 3 double-clicked", KSTRLEN - 1);
508 case BUTTON4_PRESSED:
509 strnz__cpy(action,
"Button 4 pressed", KSTRLEN - 1);
511 case BUTTON4_RELEASED:
512 strnz__cpy(action,
"Button 4 released", KSTRLEN - 1);
514 case BUTTON4_CLICKED:
515 strnz__cpy(action,
"Button 4 clicked", KSTRLEN - 1);
517 case BUTTON4_DOUBLE_CLICKED:
518 strnz__cpy(action,
"Button 4 double-clicked", KSTRLEN - 1);
520 case BUTTON5_PRESSED:
521 strnz__cpy(action,
"Scroll Up", KSTRLEN - 1);
526 ui_mvwaddstr(sfc, WIN, 6, 3,
" Action:");
527 ui_mvwaddstr(sfc, WIN, 6, 16, action);
528 ui_wclrtoeol(sfc, WIN);
529 strnz__cpy(tmp,
" With Key:", MAXLEN - 1);
530 if (ev.bstate & BUTTON_SHIFT)
531 strnz__cat(tmp,
" Shift", MAXLEN - 1);
532 if (ev.bstate & BUTTON_CTRL)
533 strnz__cat(tmp,
" Ctrl", MAXLEN - 1);
534 if (ev.bstate & BUTTON_ALT)
535 strnz__cat(tmp,
" Alt", MAXLEN - 1);
536 ui_mvwaddstr(sfc, WIN, 3, 4, tmp);
537 ui_wclrtoeol(sfc, WIN);
538 if (ev.mouse_inside) {
539 sprintf(tmp,
" Inside Win: y: %3d, x: %3d",
542 sprintf(tmp,
" stdwin: y: %3d, x: %3d",
545 ui_mvwaddstr(sfc, WIN, 4, 4, tmp);
546 ui_wclrtoeol(sfc, WIN);
547 ui_cursor_move(sfc, WIN, 5, 0);
548 ui_wclrtoeol(sfc, WIN);
549 ui_cursor_move(sfc, WIN, 7, 0);
550 ui_wclrtoeol(sfc, WIN);
554 if (c != KEY_MOUSE) {
555 sprintf(tmp,
" Octal: %3o", c);
556 ui_mvwaddstr(sfc, WIN, 3, 4, tmp);
557 ui_wclrtoeol(sfc, WIN);
559 sprintf(tmp,
" Decimal: %3d", c);
560 ui_mvwaddstr(sfc, WIN, 4, 4, tmp);
561 ui_wclrtoeol(sfc, WIN);
563 sprintf(tmp,
" Hex: %3x", c);
564 ui_mvwaddstr(sfc, WIN, 5, 4, tmp);
565 ui_wclrtoeol(sfc, WIN);
568 sprintf(tmp,
"Description: %s", kstr);
570 sprintf(tmp,
" ASCII: %c", c);
572 ui_mvwaddstr(sfc, WIN, 6, 3, tmp);
573 ui_wclrtoeol(sfc, WIN);
576 if (c == KEY_ALTEND) {
606 strcpy(kstr,
"NCKEY_INVALID");
609 strcpy(kstr,
"NCKEY_RESIZE");
612 strcpy(kstr,
"NCKEY_UP");
615 strcpy(kstr,
"NCKEY_RIGHT");
618 strcpy(kstr,
"NCKEY_DOWN");
621 strcpy(kstr,
"NCKEY_LEFT");
624 strcpy(kstr,
"NCKEY_INS");
627 strcpy(kstr,
"NCKEY_DEL");
629 case NCKEY_BACKSPACE:
630 strcpy(kstr,
"NCKEY_BACKSPACE");
633 strcpy(kstr,
"NCKEY_PGDOWN");
636 strcpy(kstr,
"NCKEY_PGUP");
639 strcpy(kstr,
"NCKEY_HOME");
642 strcpy(kstr,
"NCKEY_END");
645 strcpy(kstr,
"NCKEY_F00");
648 strcpy(kstr,
"NCKEY_F01");
651 strcpy(kstr,
"NCKEY_F02");
654 strcpy(kstr,
"NCKEY_F03");
657 strcpy(kstr,
"NCKEY_F04");
660 strcpy(kstr,
"NCKEY_F05");
663 strcpy(kstr,
"NCKEY_F06");
666 strcpy(kstr,
"NCKEY_F07");
669 strcpy(kstr,
"NCKEY_F08");
672 strcpy(kstr,
"NCKEY_F09");
675 strcpy(kstr,
"NCKEY_F10");
678 strcpy(kstr,
"NCKEY_F11");
681 strcpy(kstr,
"NCKEY_F12");
684 strcpy(kstr,
"NCKEY_F13");
687 strcpy(kstr,
"NCKEY_F14");
690 strcpy(kstr,
"NCKEY_F15");
693 strcpy(kstr,
"NCKEY_F16");
696 strcpy(kstr,
"NCKEY_F17");
699 strcpy(kstr,
"NCKEY_F18");
702 strcpy(kstr,
"NCKEY_F19");
705 strcpy(kstr,
"NCKEY_F20");
708 strcpy(kstr,
"NCKEY_F21");
711 strcpy(kstr,
"NCKEY_F22");
714 strcpy(kstr,
"NCKEY_F23");
717 strcpy(kstr,
"NCKEY_F24");
720 strcpy(kstr,
"NCKEY_F25");
723 strcpy(kstr,
"NCKEY_F26");
726 strcpy(kstr,
"NCKEY_F27");
729 strcpy(kstr,
"NCKEY_F28");
732 strcpy(kstr,
"NCKEY_F29");
735 strcpy(kstr,
"NCKEY_F30");
738 strcpy(kstr,
"NCKEY_F31");
741 strcpy(kstr,
"NCKEY_F32");
744 strcpy(kstr,
"NCKEY_F33");
747 strcpy(kstr,
"NCKEY_F34");
750 strcpy(kstr,
"NCKEY_F35");
753 strcpy(kstr,
"NCKEY_F36");
756 strcpy(kstr,
"NCKEY_F37");
759 strcpy(kstr,
"NCKEY_F38");
762 strcpy(kstr,
"NCKEY_F39");
765 strcpy(kstr,
"NCKEY_F40");
768 strcpy(kstr,
"NCKEY_F41");
771 strcpy(kstr,
"NCKEY_F42");
774 strcpy(kstr,
"NCKEY_F43");
777 strcpy(kstr,
"NCKEY_F44");
780 strcpy(kstr,
"NCKEY_F45");
783 strcpy(kstr,
"NCKEY_F46");
786 strcpy(kstr,
"NCKEY_F47");
789 strcpy(kstr,
"NCKEY_F48");
792 strcpy(kstr,
"NCKEY_F49");
795 strcpy(kstr,
"NCKEY_F50");
798 strcpy(kstr,
"NCKEY_F51");
801 strcpy(kstr,
"NCKEY_F52");
804 strcpy(kstr,
"NCKEY_F53");
807 strcpy(kstr,
"NCKEY_F54");
810 strcpy(kstr,
"NCKEY_F55");
813 strcpy(kstr,
"NCKEY_F56");
816 strcpy(kstr,
"NCKEY_F57");
819 strcpy(kstr,
"NCKEY_F58");
822 strcpy(kstr,
"NCKEY_F59");
825 strcpy(kstr,
"NCKEY_F60");
828 strcpy(kstr,
"NCKEY_ENTER");
831 strcpy(kstr,
"NCKEY_CLS");
834 strcpy(kstr,
"NCKEY_DLEFT");
837 strcpy(kstr,
"NCKEY_DRIGHT");
840 strcpy(kstr,
"NCKEY_ULEFT");
843 strcpy(kstr,
"NCKEY_URIGHT");
846 strcpy(kstr,
"NCKEY_CENTER");
849 strcpy(kstr,
"NCKEY_BEGIN");
852 strcpy(kstr,
"NCKEY_CANCEL");
855 strcpy(kstr,
"NCKEY_CLOSE");
858 strcpy(kstr,
"NCKEY_COMMAND");
861 strcpy(kstr,
"NCKEY_COPY");
864 strcpy(kstr,
"NCKEY_EXIT");
867 strcpy(kstr,
"NCKEY_PRINT");
870 strcpy(kstr,
"NCKEY_REFRESH");
872 case NCKEY_SEPARATOR:
873 strcpy(kstr,
"NCKEY_SEPARATOR");
875 case NCKEY_CAPS_LOCK:
876 strcpy(kstr,
"NCKEY_CAPS_LOCK");
878 case NCKEY_SCROLL_LOCK:
879 strcpy(kstr,
"NCKEY_SCROLL_LOCK");
882 strcpy(kstr,
"NCKEY_NUM_LOCK");
884 case NCKEY_PRINT_SCREEN:
885 strcpy(kstr,
"NCKEY_PRINT_SCREEN");
888 strcpy(kstr,
"NCKEY_PAUSE");
891 strcpy(kstr,
"NCKEY_MENU");
893 case NCKEY_MEDIA_PLAY:
894 strcpy(kstr,
"NCKEY_MEDIA_PLAY");
896 case NCKEY_MEDIA_PAUSE:
897 strcpy(kstr,
"NCKEY_MEDIA_PAUSE");
899 case NCKEY_MEDIA_PPAUSE:
900 strcpy(kstr,
"NCKEY_MEDIA_PPAUSE");
902 case NCKEY_MEDIA_REV:
903 strcpy(kstr,
"NCKEY_MEDIA_REV");
905 case NCKEY_MEDIA_STOP:
906 strcpy(kstr,
"NCKEY_MEDIA_STOP");
909 strcpy(kstr,
"NCKEY_MEDIA_FF");
911 case NCKEY_MEDIA_REWIND:
912 strcpy(kstr,
"NCKEY_MEDIA_REWIND");
914 case NCKEY_MEDIA_NEXT:
915 strcpy(kstr,
"NCKEY_MEDIA_NEXT");
917 case NCKEY_MEDIA_PREV:
918 strcpy(kstr,
"NCKEY_MEDIA_PREV");
920 case NCKEY_MEDIA_RECORD:
921 strcpy(kstr,
"NCKEY_MEDIA_RECORD");
923 case NCKEY_MEDIA_LVOL:
924 strcpy(kstr,
"NCKEY_MEDIA_LVOL");
926 case NCKEY_MEDIA_RVOL:
927 strcpy(kstr,
"NCKEY_MEDIA_RVOL");
929 case NCKEY_MEDIA_MUTE:
930 strcpy(kstr,
"NCKEY_MEDIA_MUTE");
933 strcpy(kstr,
"NCKEY_LSHIFT");
936 strcpy(kstr,
"NCKEY_LCTRL");
939 strcpy(kstr,
"NCKEY_LALT");
942 strcpy(kstr,
"NCKEY_LSUPER");
945 strcpy(kstr,
"NCKEY_LHYPER");
948 strcpy(kstr,
"NCKEY_LMETA");
951 strcpy(kstr,
"NCKEY_RSHIFT");
954 strcpy(kstr,
"NCKEY_RCTRL");
957 strcpy(kstr,
"NCKEY_RALT");
960 strcpy(kstr,
"NCKEY_RSUPER");
963 strcpy(kstr,
"NCKEY_RHYPER");
966 strcpy(kstr,
"NCKEY_RMETA");
969 strcpy(kstr,
"NCKEY_L3SHIFT");
972 strcpy(kstr,
"NCKEY_L5SHIFT");
975 strcpy(kstr,
"NCKEY_MOTION");
978 strcpy(kstr,
"NCKEY_BUTTON1");
981 strcpy(kstr,
"NCKEY_BUTTON2");
984 strcpy(kstr,
"NCKEY_BUTTON3");
987 strcpy(kstr,
"NCKEY_BUTTON4");
990 strcpy(kstr,
"NCKEY_BUTTON5");
993 strcpy(kstr,
"NCKEY_BUTTON6");
996 strcpy(kstr,
"NCKEY_BUTTON7");
999 strcpy(kstr,
"NCKEY_BUTTON8");
1002 strcpy(kstr,
"NCKEY_BUTTON9");
1004 case NCKEY_BUTTON10:
1005 strcpy(kstr,
"NCKEY_BUTTON10");
1007 case NCKEY_BUTTON11:
1008 strcpy(kstr,
"NCKEY_BUTTON11");
1011 strcpy(kstr,
"NCKEY_SIGNAL");
1014 strcpy(kstr,
"NCKEY_EOF");
1017 snprintf(kstr, 32,
"NCKEY_%d", key_id);
1025 sprintf(tmp,
" Inside Win: y: %3d, x: %3d",
1028 sprintf(tmp,
" stdwin: y: %3d, x: %3d",
1038 sprintf(tmp,
" Octal: %3o", c);
1042 sprintf(tmp,
" Decimal: %3d", c);
1046 sprintf(tmp,
" Hex: %3x", c);
1051 sprintf(tmp,
"Description: %s", kstr);
1053 sprintf(tmp,
" ASCII: %c", c);
volatile sig_atomic_t sig_received
bool handle_signal(sig_atomic_t)
int ui_cursor_move(UiSurface *s, uint w, uint y, uint x)
int ui_bkgdset(UiSurface *s, uint w, const UiCell *cell)
int ui_mvwaddstr(UiSurface *s, uint w, uint y, uint x, const char *text)
int ui_get_event(UiSurface *s, uint w, UiEvent *ev, int timeout_ms)
Wait for an input event on target (or stdscr if NULL).
void ui_surface_destroy(UiSurface *s)
UiSurface * ui_surface[UI_SFC_MAX]
void ui_get_screen_size(uint *lines, uint *cols)
int ui_wclrtoeol(UiSurface *s, uint w)
int ui_keypad(UiSurface *s, uint w, bool enable)
int notcurses_input(UiSurface *s, uint w)
Display Curses Keys Responds to curses keys and mouse events, displaying the key code and description...
int surface_box_win_new(uint wlines, uint wcols, uint wbegy, uint wbegx, char *wtitle)
int Perror(char *emsg_str)
Display a simple error message window or print to stderr.
int display_error(char *msg0, char *msg1, char *msg2, char *msg3)
Display an error message window or print to stderr.
size_t strnz__cpy(char *, const char *, size_t)
safer alternative to strncpy
size_t strnz__cat(char *, const char *, size_t)
safer alternative to strncat