diff options
Diffstat (limited to 'src/libjin/Input/Event.h')
-rw-r--r-- | src/libjin/Input/Event.h | 60 |
1 files changed, 50 insertions, 10 deletions
diff --git a/src/libjin/Input/Event.h b/src/libjin/Input/Event.h index 4d7230a..83db070 100644 --- a/src/libjin/Input/Event.h +++ b/src/libjin/Input/Event.h @@ -9,22 +9,62 @@ namespace input { #if JIN_INPUT_SDL #include "SDL.h" - typedef SDL_Event Event; + typedef SDL_Event Event; + typedef SDL_Keycode Key; + typedef SDL_MouseWheelEvent Wheel; + + enum EventType { + QUIT = SDL_QUIT, + KEYDOWN = SDL_KEYDOWN, + KEYUP = SDL_KEYUP, + MOUSEMOTION = SDL_MOUSEMOTION, + MOUSEBUTTONDOWN = SDL_MOUSEBUTTONDOWN, + MOUSEBUTTONUP = SDL_MOUSEBUTTONUP, + MOUSEWHEEL = SDL_MOUSEWHEEL + }; + inline int pollEvent(Event* e) { return SDL_PollEvent(e); } - enum EventType{ - QUIT = SDL_QUIT, - KEYDOWN = SDL_KEYDOWN , - KEYUP = SDL_KEYUP, - MOUSEMOTION = SDL_MOUSEMOTION, - MOUSEBUTTONDOWN = SDL_MOUSEBUTTONDOWN, - MOUSEBUTTONUP = SDL_MOUSEBUTTONUP, - MOUSEWHEEL = SDL_MOUSEWHEEL - }; + inline const char* getKeyName(Key key) + { + return SDL_GetKeyName(key); + } + + inline const char* getButtonName(int button) + { + switch (button) + { + case 1: return "left"; + case 2: return "middle"; + case 3: return "right"; + case 4: return "wheelup"; + case 5: return "wheeldown"; + default: return "?"; + } + } + +/* + inline const char* getWheelName(Wheel wheel) + { + if (wheel.x == -1) + return "left"; + else if (wheel.x == 1) + return "right"; + else if (wheel.y == -1) + return "near"; + else if (wheel.y == 1) + return "far"; + else + return "none"; + } +*/ + + + #endif // JIN_INPUT_SDL } } |