#include "cGUIEvent.hpp" using GUIEventEngine::cGUIEvent; cGUIEvent::cGUIEvent( const GUIHelpers::eEventType eventType, const unsigned int id ) : m_eventType(eventType), m_id(id) { } /*virtual*/ cGUIEvent::~cGUIEvent() { } /*virtual*/ void cGUIEvent::OnEvent(const SDL_Event& event) { switch (event.type) { case SDL_WINDOWEVENT: OnWindowsEvent(event); break; case SDL_KEYDOWN: OnKeyDown(event.key.keysym.sym, event.key.keysym.mod);// , Event->key.keysym.unicode); break; case SDL_KEYUP: OnKeyUp(event.key.keysym.sym, event.key.keysym.mod);//, Event->key.keysym.unicode); break; case SDL_MOUSEMOTION: OnMouseMove(event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel, (event.motion.state&SDL_BUTTON(SDL_BUTTON_LEFT)) != 0, (event.motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT)) != 0, (event.motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE)) != 0); break; case SDL_MOUSEBUTTONDOWN: OnMouseButtonDown(event); break; case SDL_MOUSEBUTTONUP: OnMouseButtonUp(event); break; case SDL_JOYAXISMOTION: OnJoyAxis(event.jaxis.which, event.jaxis.axis, event.jaxis.value); break; case SDL_JOYBALLMOTION: OnJoyBall(event.jball.which, event.jball.ball, event.jball.xrel, event.jball.yrel); break; case SDL_JOYHATMOTION: OnJoyHat(event.jhat.which, event.jhat.hat, event.jhat.value); break; case SDL_JOYBUTTONDOWN: OnJoyButtonDown(event.jbutton.which, event.jbutton.button); break; case SDL_JOYBUTTONUP: OnJoyButtonUp(event.jbutton.which, event.jbutton.button); break; case SDL_QUIT: OnExit(); break; case SDL_SYSWMEVENT: //Ignore break; default: OnUser(event.user.type, event.user.code, event.user.data1, event.user.data2); break; } } /*virtual*/ void cGUIEvent::OnInputFocus() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnInputBlur() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnKeyDown(SDL_Keycode sym, Uint16 mod)//, Uint16 unicode) { sym, mod; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnKeyUp(SDL_Keycode sym, Uint16 mod)//, Uint16 unicode) { sym, mod; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnMouseFocus() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnMouseBlur() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnMouseMove(int mX, int mY, int relX, int relY, bool Left, bool Right, bool Middle) { mX, mY, relX, relY, Left, Right, Middle; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnMouseWheel(bool Up, bool Down) { Up, Down; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnLButtonDown(int mX, int mY) { mX, mY; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnLButtonUp(int mX, int mY) { mX, mY; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnRButtonDown(int mX, int mY) { mX, mY; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnRButtonUp(int mX, int mY) { mX, mY; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnMButtonDown(int mX, int mY) { mX, mY; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnMButtonUp(int mX, int mY) { mX, mY; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnJoyAxis(SDL_JoystickID which, Uint8 axis, Sint16 value) { which, axis, value; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnJoyButtonDown(SDL_JoystickID which, Uint8 button) { which, button; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnJoyButtonUp(SDL_JoystickID which, Uint8 button) { which, button; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnJoyHat(SDL_JoystickID which, Uint8 hat, Uint8 value) { which, hat, value; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnJoyBall(SDL_JoystickID which, Uint8 ball, Sint16 xrel, Sint16 yrel) { which, ball, xrel, yrel; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnMinimize() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnRestore() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnResize(int w, int h) { w, h; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnExpose() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnExit() { //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnUser(Uint32 type, int code, void* data1, void* data2) { type, code, data1, data2; //Pure virtual, do nothing } /*virtual*/ void cGUIEvent::OnWindowsEvent(const SDL_Event& event) { switch (event.window.event) { case SDL_WINDOWEVENT_SHOWN: SDL_Log("Window %d shown", event.window.windowID); break; case SDL_WINDOWEVENT_HIDDEN: SDL_Log("Window %d hidden", event.window.windowID); break; case SDL_WINDOWEVENT_EXPOSED: SDL_Log("Window %d exposed", event.window.windowID); break; case SDL_WINDOWEVENT_MOVED: SDL_Log("Window %d moved to %d,%d", event.window.windowID, event.window.data1, event.window.data2); break; case SDL_WINDOWEVENT_RESIZED: SDL_Log("Window %d resized to %dx%d", event.window.windowID, event.window.data1, event.window.data2); break; case SDL_WINDOWEVENT_SIZE_CHANGED: SDL_Log("Window %d size changed to %dx%d", event.window.windowID, event.window.data1, event.window.data2); break; case SDL_WINDOWEVENT_MINIMIZED: SDL_Log("Window %d minimized", event.window.windowID); break; case SDL_WINDOWEVENT_MAXIMIZED: SDL_Log("Window %d maximized", event.window.windowID); break; case SDL_WINDOWEVENT_RESTORED: SDL_Log("Window %d restored", event.window.windowID); break; case SDL_WINDOWEVENT_ENTER: SDL_Log("Mouse entered window %d", event.window.windowID); break; case SDL_WINDOWEVENT_LEAVE: SDL_Log("Mouse left window %d", event.window.windowID); break; case SDL_WINDOWEVENT_FOCUS_GAINED: SDL_Log("Window %d gained keyboard focus", event.window.windowID); break; case SDL_WINDOWEVENT_FOCUS_LOST: SDL_Log("Window %d lost keyboard focus", event.window.windowID); break; case SDL_WINDOWEVENT_CLOSE: SDL_Log("Window %d closed", event.window.windowID); break; default: SDL_Log("Window %d got unknown event %d", event.window.windowID, event.window.event); break; } } /*virtual*/ void cGUIEvent::OnMouseButtonDown(const SDL_Event& event) { switch (event.button.button) { case SDL_BUTTON_LEFT: OnLButtonDown(event.button.x, event.button.y); break; case SDL_BUTTON_RIGHT: OnRButtonDown(event.button.x, event.button.y); break; case SDL_BUTTON_MIDDLE: OnMButtonDown(event.button.x, event.button.y); break; } } /*virtual*/ void cGUIEvent::OnMouseButtonUp(const SDL_Event& event) { switch (event.button.button) { case SDL_BUTTON_LEFT: OnLButtonUp(event.button.x, event.button.y); break; case SDL_BUTTON_RIGHT: OnRButtonUp(event.button.x, event.button.y); break; case SDL_BUTTON_MIDDLE: OnMButtonUp(event.button.x, event.button.y); break; } }