aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/input/event.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/input/event.h')
-rw-r--r--src/libjin/input/event.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/src/libjin/input/event.h b/src/libjin/input/event.h
new file mode 100644
index 0000000..f13f1d4
--- /dev/null
+++ b/src/libjin/input/event.h
@@ -0,0 +1,121 @@
+#ifndef __JE_EVENT_H__
+#define __JE_EVENT_H__
+#include "../core/configuration.h"
+#if defined(jin_input)
+
+namespace JinEngine
+{
+ namespace Input
+ {
+ #if jin_input == jin_input_sdl
+ #include "SDL.h"
+
+ typedef SDL_Event Event;
+ typedef SDL_Keycode Key;
+ typedef SDL_MouseWheelEvent Wheel;
+
+ ///
+ ///
+ ///
+ enum EventType {
+ QUIT = SDL_QUIT,
+ /* keyboard events */
+ KEY_DOWN = SDL_KEYDOWN,
+ KEY_UP = SDL_KEYUP,
+ /* mouse events */
+ MOUSE_MOTION = SDL_MOUSEMOTION,
+ MOUSE_BUTTON_DOWN = SDL_MOUSEBUTTONDOWN,
+ MOUSE_BUTTON_UP = SDL_MOUSEBUTTONUP,
+ MOUSE_WHEEL = SDL_MOUSEWHEEL,
+ /* joypad events */
+ JOYBUTTONDOWN = SDL_JOYBUTTONDOWN,
+ JOYBUTTONUP = SDL_JOYBUTTONUP,
+ JOYAXISMOTION = SDL_JOYAXISMOTION,
+ JOYBALLMOTION = SDL_JOYBALLMOTION,
+ JOYHATMOTION = SDL_JOYHATMOTION,
+ JOYDEVICEADDED = SDL_JOYDEVICEADDED,
+ JOYDEVICEREMOVED = SDL_JOYDEVICEREMOVED,
+ CONTROLLERBUTTONDOWN = SDL_CONTROLLERBUTTONDOWN,
+ CONTROLLERBUTTONUP = SDL_CONTROLLERBUTTONUP,
+ CONTROLLERAXISMOTION = SDL_CONTROLLERAXISMOTION,
+ /* window evnets */
+ WINDOW_EVENT = SDL_WINDOWEVENT,
+ };
+
+ ///
+ ///
+ ///
+ enum WindowEvent {
+ WINDOW_SHOWN = SDL_WINDOWEVENT_SHOWN ,
+ WINDOW_HIDDEN = SDL_WINDOWEVENT_HIDDEN ,
+ WINDOW_EXPOSED = SDL_WINDOWEVENT_EXPOSED ,
+ WINDOW_MOVED = SDL_WINDOWEVENT_MOVED ,
+ WINDOW_RESIZED = SDL_WINDOWEVENT_RESIZED ,
+ WINDOW_SIZE_CAHNGE = SDL_WINDOWEVENT_SIZE_CHANGED ,
+ WINDOW_MINIMIZED = SDL_WINDOWEVENT_MINIMIZED ,
+ WINDOW_MAXIMIZED = SDL_WINDOWEVENT_MAXIMIZED ,
+ WINDOW_RESTORED = SDL_WINDOWEVENT_RESTORED ,
+ WINDOW_ENTER = SDL_WINDOWEVENT_ENTER ,
+ WINDOW_LEAVE = SDL_WINDOWEVENT_LEAVE ,
+ WINDOW_FOCUS_GAINED = SDL_WINDOWEVENT_FOCUS_GAINED,
+ WINDOW_FOCUS_LOST = SDL_WINDOWEVENT_FOCUS_LOST ,
+ WINDOW_CLOSE = SDL_WINDOWEVENT_CLOSE ,
+ WINDOW_TAKE_FOCUS = SDL_WINDOWEVENT_TAKE_FOCUS ,
+ WINDOW_HIT_TEST = SDL_WINDOWEVENT_HIT_TEST ,
+ };
+
+ ///
+ ///
+ ///
+ inline int pollEvent(Event* e)
+ {
+ return SDL_PollEvent(e);
+ }
+
+ ///
+ ///
+ ///
+ 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 == jin_input_sdl
+ } // namespace Input
+} // namespace JinEngine
+
+#endif // defined(jin_input)
+
+#endif // __JE_EVENT_H__