From cd0f70f86d1cedffcd1bacf57d9250fdff1f7af3 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Sun, 13 Jan 2019 08:29:12 -0500 Subject: refactor sok-sdl, add zoom and warp_buf support --- src/sdl/action.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'src/sdl/action.c') diff --git a/src/sdl/action.c b/src/sdl/action.c index a4dcb79..8307f19 100644 --- a/src/sdl/action.c +++ b/src/sdl/action.c @@ -24,8 +24,8 @@ keycode_to_dir(const SDL_Keycode code) { } } -action_t -get_action( +static action_t +get_key_action( const SDL_Keycode code ) { switch (code) { @@ -61,3 +61,36 @@ get_action( return (action_t) { .type = ACTION_NONE }; } } + +static action_t +get_wheel_action( + const Sint32 y +) { + if (y > 0) { + return (action_t) { .type = ACTION_ZOOM_IN, .data = y }; + } else if (y < 0) { + return (action_t) { .type = ACTION_ZOOM_OUT, .data = -y }; + } else { + return (action_t) { .type = ACTION_NONE }; + } +} + +action_t +get_action( + const SDL_Event * const ev +) { + switch (ev->type) { + case SDL_QUIT: + return (action_t) { .type = ACTION_QUIT }; + break; + case SDL_KEYUP: + return get_key_action(ev->key.keysym.sym); + break; + case SDL_MOUSEWHEEL: + return get_wheel_action(ev->wheel.y); + break; + default: + // ignore event + return (action_t) { .type = ACTION_NONE }; + } +} -- cgit v1.2.3