mirror of
https://github.com/MiyooCFW/buildroot.git
synced 2025-09-27 22:24:19 +03:00
254 lines
6.8 KiB
Diff
254 lines
6.8 KiB
Diff
From 4126f952f021b7e8fca7880e072092fcb3812f29 Mon Sep 17 00:00:00 2001
|
|
From: Apaczer <94932128+Apaczer@users.noreply.github.com>
|
|
Date: Sat, 23 Mar 2024 16:30:20 +0100
|
|
Subject: [PATCH 2/7] add custom Input mapping with header
|
|
|
|
---
|
|
inputmap.h | 40 ++++++++++++++++++++++++++++++
|
|
sdlbook.c | 73 +++++++++++++++++++++++++++---------------------------
|
|
2 files changed, 77 insertions(+), 36 deletions(-)
|
|
create mode 100644 inputmap.h
|
|
|
|
diff --git a/inputmap.h b/inputmap.h
|
|
new file mode 100644
|
|
index 0000000..0210a24
|
|
--- /dev/null
|
|
+++ b/inputmap.h
|
|
@@ -0,0 +1,40 @@
|
|
+#ifndef INPUTMAP_H
|
|
+#define INPUTMAP_H
|
|
+
|
|
+#define INPUT_UP SDLK_UP
|
|
+#define INPUT_DOWN SDLK_DOWN
|
|
+#define INPUT_LEFT SDLK_LEFT
|
|
+#define INPUT_RIGHT SDLK_RIGHT
|
|
+#define INPUT_LMOD SDLK_LCTRL
|
|
+#define INPUT_RMOD SDLK_RCTRL
|
|
+#define INPUT_PGDOWN SDLK_PAGEDOWN
|
|
+#define INPUT_PGUP SDLK_PAGEUP
|
|
+#define INPUT_ZOOMIN SDLK_KP_PLUS
|
|
+#define INPUT_ZOOMOUT SDLK_KP_MINUS
|
|
+#define INPUT_PAGEN SDLK_g
|
|
+#define INPUT_CLEAR SDLK_c
|
|
+#define INPUT_CANCEL SDLK_BACKSPACE
|
|
+#define INPUT_CONFIRM SDLK_RETURN
|
|
+#define INPUT_EXIT SDLK_ESCAPE
|
|
+#define INPUT_QUIT SDLK_q
|
|
+#define INPUT_HELP SDLK_F1
|
|
+
|
|
+#define STR_UP "UP"
|
|
+#define STR_DOWN "DOWN"
|
|
+#define STR_LEFT "LEFT"
|
|
+#define STR_RIGHT "RIGHT"
|
|
+#define STR_LMOD "LCTRL"
|
|
+#define STR_RMOD "RCTRL"
|
|
+#define STR_PGDOWN "PAGE_DOWN"
|
|
+#define STR_PGUP "PAGE_UP"
|
|
+#define STR_ZOOMIN "NUM+"
|
|
+#define STR_ZOOMOUT "NUM-"
|
|
+#define STR_PAGEN "G"
|
|
+#define STR_CLEAR "C"
|
|
+#define STR_CANCEL "BACKSPACE"
|
|
+#define STR_CONFIRM "RETURN"
|
|
+#define STR_EXIT "ESC"
|
|
+#define STR_QUIT "Q"
|
|
+#define STR_HELP "F1"
|
|
+
|
|
+#endif
|
|
diff --git a/sdlbook.c b/sdlbook.c
|
|
index d608aba..79b77f3 100644
|
|
--- a/sdlbook.c
|
|
+++ b/sdlbook.c
|
|
@@ -16,6 +16,7 @@
|
|
#include <mupdf/fitz.h>
|
|
#include "ezsdl.h"
|
|
#include "topaz.h"
|
|
+#include "inputmap.h"
|
|
|
|
#pragma RcB2 LINK "-ldjvulibre" "-lSSL" "-lmupdf"
|
|
|
|
@@ -550,13 +551,13 @@ static int change_scroll_h(int incr) {
|
|
|
|
#define HELP_TEXT \
|
|
"HELP SCREEN - HIT ANY KEY TO EXIT\n" \
|
|
- "UP, DOWN ARROW - SCROLL 32 PIX\n" \
|
|
- "CTRL + UP, DOWN ARROW - SCROLL 96 PIX\n" \
|
|
- "PAGE_UP/DOWN - SCROLL ONE PAGE\n" \
|
|
- "KEYPAD +/- OR CTRL-WHEEL - ZOOM\n" \
|
|
- "G - ENTER PAGE NUMBER\n" \
|
|
- "Q/ESC - QUIT\n" \
|
|
- "F1 - SHOW HELP SCREEN\n"
|
|
+ STR_UP ", " STR_DOWN " - SCROLL 32 PIX\n" \
|
|
+ STR_LMOD "/" STR_RMOD " + " STR_UP "/" STR_DOWN " - SCROLL 96 PIX\n" \
|
|
+ STR_PGUP "/" STR_PGDOWN " - SCROLL ONE PAGE\n" \
|
|
+ STR_ZOOMIN "/" STR_ZOOMOUT " OR " STR_LMOD "/" STR_RMOD " + WHEEL - ZOOM\n" \
|
|
+ STR_PAGEN " - ENTER PAGE NUMBER\n" \
|
|
+ STR_QUIT "/" STR_EXIT " - QUIT\n" \
|
|
+ STR_HELP " - SHOW HELP SCREEN\n"
|
|
|
|
static int get_return_count(const char* text) {
|
|
int count = 0;
|
|
@@ -598,14 +599,14 @@ static void input_loop(const char* title, char *result, enum input_flags flags)
|
|
case EV_QUIT:
|
|
case EV_KEYUP:
|
|
switch(event.which) {
|
|
- case SDLK_BACKSPACE: case SDLK_LEFT:
|
|
+ case INPUT_CANCEL: case INPUT_LEFT:
|
|
if(flags == INPUT_LOOP_RET)
|
|
goto out;
|
|
if(p > result) p--;
|
|
p_n = *(p - 1);
|
|
*p = 0;
|
|
goto drawit;
|
|
- case SDLK_RIGHT:
|
|
+ case INPUT_RIGHT:
|
|
if(flags == INPUT_LOOP_RET)
|
|
goto out;
|
|
if(p - result < 20) {
|
|
@@ -615,12 +616,12 @@ static void input_loop(const char* title, char *result, enum input_flags flags)
|
|
goto drawit;
|
|
} else
|
|
break;
|
|
- case SDLK_RETURN: case SDLK_ESCAPE: case SDLK_g:
|
|
+ case INPUT_CONFIRM: case INPUT_EXIT: case INPUT_PAGEN:
|
|
out:;
|
|
*p = 0;
|
|
ezsdl_clear();
|
|
return;
|
|
- case SDLK_UP:
|
|
+ case INPUT_UP:
|
|
if(flags == INPUT_LOOP_RET)
|
|
goto out;
|
|
p_n = *(p - 1);
|
|
@@ -633,7 +634,7 @@ static void input_loop(const char* title, char *result, enum input_flags flags)
|
|
goto drawit;
|
|
} else
|
|
break;
|
|
- case SDLK_DOWN:
|
|
+ case INPUT_DOWN:
|
|
if(flags == INPUT_LOOP_RET)
|
|
goto out;
|
|
p_n = *(p - 1);
|
|
@@ -821,51 +822,51 @@ int main(int argc, char **argv) {
|
|
goto dun_goofed;
|
|
case EV_KEYDOWN:
|
|
switch(event.which) {
|
|
- case SDLK_LCTRL:
|
|
+ case INPUT_LMOD:
|
|
left_ctrl_pressed = 1;
|
|
break;
|
|
- case SDLK_RCTRL:
|
|
+ case INPUT_RMOD:
|
|
right_ctrl_pressed = 1;
|
|
break;
|
|
- case SDLK_q:
|
|
+ case INPUT_QUIT:
|
|
goto dun_goofed;
|
|
- case SDLK_KP_PLUS:
|
|
+ case INPUT_ZOOMIN:
|
|
need_redraw = change_scale(+10);
|
|
break;
|
|
- case SDLK_KP_MINUS:
|
|
+ case INPUT_ZOOMOUT:
|
|
need_redraw = change_scale(-10);
|
|
break;
|
|
- case SDLK_PAGEDOWN:
|
|
+ case INPUT_PGDOWN:
|
|
scroll_dist_v += page_dims.h;
|
|
break;
|
|
- case SDLK_PAGEUP:
|
|
+ case INPUT_PGUP:
|
|
scroll_dist_v -= page_dims.h;
|
|
break;
|
|
- case SDLK_UP:
|
|
+ case INPUT_UP:
|
|
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
|
|
scroll_dist_v += -96;
|
|
else
|
|
scroll_dist_v += -32;
|
|
break;
|
|
- case SDLK_DOWN:
|
|
+ case INPUT_DOWN:
|
|
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
|
|
scroll_dist_v += +96;
|
|
else
|
|
scroll_dist_v += +32;
|
|
break;
|
|
- case SDLK_LEFT:
|
|
+ case INPUT_LEFT:
|
|
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
|
|
need_redraw = change_scroll_h(-96);
|
|
else
|
|
need_redraw = change_scroll_h(-32);
|
|
break;
|
|
- case SDLK_RIGHT:
|
|
+ case INPUT_RIGHT:
|
|
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
|
|
need_redraw = change_scroll_h(+96);
|
|
else
|
|
need_redraw = change_scroll_h(+32);
|
|
break;
|
|
- case SDLK_RETURN:
|
|
+ case INPUT_CONFIRM:
|
|
if((event.mod & KMOD_LALT) ||
|
|
(event.mod & KMOD_RALT)) {
|
|
ezsdl_toggle_fullscreen();
|
|
@@ -880,21 +881,21 @@ int main(int argc, char **argv) {
|
|
break;
|
|
case EV_KEYUP:
|
|
switch(event.which) {
|
|
- case SDLK_UP:
|
|
- case SDLK_DOWN:
|
|
- case SDLK_LEFT:
|
|
- case SDLK_RIGHT:
|
|
- case SDLK_PAGEUP:
|
|
- case SDLK_PAGEDOWN:
|
|
+ case INPUT_UP:
|
|
+ case INPUT_DOWN:
|
|
+ case INPUT_LEFT:
|
|
+ case INPUT_RIGHT:
|
|
+ case INPUT_PGUP:
|
|
+ case INPUT_PGDOWN:
|
|
need_redraw = 1;
|
|
break;
|
|
- case SDLK_LCTRL:
|
|
+ case INPUT_LMOD:
|
|
left_ctrl_pressed = 0;
|
|
break;
|
|
- case SDLK_RCTRL:
|
|
+ case INPUT_RMOD:
|
|
right_ctrl_pressed = 0;
|
|
break;
|
|
- case SDLK_F1:
|
|
+ case INPUT_HELP:
|
|
{
|
|
char buf[32];
|
|
buf[0] = 0;
|
|
@@ -903,7 +904,7 @@ int main(int argc, char **argv) {
|
|
}
|
|
break;
|
|
|
|
- case SDLK_g:
|
|
+ case INPUT_PAGEN:
|
|
{
|
|
char buf[32];
|
|
buf[0] = 0;
|
|
@@ -912,12 +913,12 @@ int main(int argc, char **argv) {
|
|
else need_redraw = 1;
|
|
}
|
|
break;
|
|
- case SDLK_c:
|
|
+ case INPUT_CLEAR:
|
|
ezsdl_clear();
|
|
ezsdl_refresh();
|
|
need_redraw = 1;
|
|
break;
|
|
- case SDLK_ESCAPE:
|
|
+ case INPUT_EXIT:
|
|
goto dun_goofed;
|
|
default:
|
|
break;
|
|
--
|
|
2.34.1
|
|
|