From ca2d731f39a96aacc8ae59bd13c3578ed7484476 Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Fri, 12 Mar 2021 13:39:26 +0100 Subject: [PATCH] gint/keyboard: port the keydev test to fx-CG 50 --- CMakeLists.txt | 1 + assets-cg/img/kbd_events.png | Bin 0 -> 4679 bytes include/gintctl/assets.h | 1 + src/gint/keyboard.c | 72 +++++++++++++++++++---------------- 4 files changed, 42 insertions(+), 32 deletions(-) create mode 100644 assets-cg/img/kbd_events.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 31e9483..c007d94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,6 +88,7 @@ set(ASSETS_cg assets-cg/fonts/font8x9_bold.png assets-cg/img/applejack_31x27.png assets-cg/img/applejack_36x25.png + assets-cg/img/kbd_events.png assets-cg/img/kbd_pressed.png assets-cg/img/kbd_released.png assets-cg/img/libimg_even_odd.png diff --git a/assets-cg/img/kbd_events.png b/assets-cg/img/kbd_events.png new file mode 100644 index 0000000000000000000000000000000000000000..28372167f83628a80d7bbcefddf7d84818750a42 GIT binary patch literal 4679 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.enabled; + #ifdef FX9860G dtext(35, 10, C_BLACK, "Shift:"); render_option(35, 16, "Del", (tr & KEYDEV_TR_DELAYED_SHIFT) != 0); render_option(47, 16, "Ins", (tr & KEYDEV_TR_INSTANT_SHIFT) != 0); @@ -144,25 +146,31 @@ static void render(keydev_t *d, key_event_t *last_events, int counter) render_option(35, 46, "-Rels", (tr & KEYDEV_TR_DELETE_RELEASES) != 0); render_option(64, 9, "Reps", (tr & KEYDEV_TR_REPEATS) != 0); - if(d->delayed_shift) - dsubimage(54, 10, &img_kbd_events, 43, 1, 5, 5, DIMAGE_NONE); - else if(d->pressed_shift) - dsubimage(54, 10, &img_kbd_events, 37, 1, 5, 5, DIMAGE_NONE); - else - dsubimage(54, 10, &img_kbd_events, 31, 1, 5, 5, DIMAGE_NONE); - - if(d->delayed_alpha) - dsubimage(55, 24, &img_kbd_events, 43, 1, 5, 5, DIMAGE_NONE); - else if(d->pressed_alpha) - dsubimage(55, 24, &img_kbd_events, 37, 1, 5, 5, DIMAGE_NONE); - else - dsubimage(55, 24, &img_kbd_events, 31, 1, 5, 5, DIMAGE_NONE); + render_icon(54, 9, d->delayed_shift ? 7 : (d->pressed_shift ? 6 : 5)); + render_icon(55, 23, d->delayed_alpha ? 7 : (d->pressed_alpha ? 6 : 5)); dtext(65, 17, C_BLACK, key_name(d->rep_key)); dprint(65, 29, C_BLACK, "L:%d", d->events_lost); - dfont(old_font); - #endif + #endif /* FX9860G */ + + #ifdef FXCG50 + dtext(210, 30, C_BLACK, "Shift:"); + render_option(210, 42, "Del", (tr & KEYDEV_TR_DELAYED_SHIFT) != 0); + render_option(245, 42, "Ins", (tr & KEYDEV_TR_INSTANT_SHIFT) != 0); + dtext(210, 56, C_BLACK, "Alpha:"); + render_option(210, 68, "Del", (tr & KEYDEV_TR_DELAYED_ALPHA) != 0); + render_option(245, 68, "Ins", (tr & KEYDEV_TR_INSTANT_ALPHA) != 0); + render_option(210, 82, "-Mods", (tr & KEYDEV_TR_DELETE_MODIFIERS) != 0); + render_option(210, 96, "-Rels", (tr & KEYDEV_TR_DELETE_RELEASES) != 0); + render_option(210, 110, "Reps", (tr & KEYDEV_TR_REPEATS) != 0); + + render_icon(252, 30, d->delayed_shift ? 7 : (d->pressed_shift ? 6 : 5)); + render_icon(251, 56, d->delayed_alpha ? 7 : (d->pressed_alpha ? 6 : 5)); + + dtext(210, 124, C_BLACK, key_name(d->rep_key)); + dprint(210, 136, C_BLACK, "L:%d", d->events_lost); + #endif /* FXCG50 */ } static int handle_event(keydev_t *d, key_event_t *last_events, int counter)