void EventHandler::HandleMouseButton( const SDL_Event &event ) { MouseButton button = ConvertMouseButtonToEnum( event.button.button ); ButtonState state = ConvertButtonStateFromSDL( event.type, EventType::MouseButton ); if ( state != mouseButton[ button ] ) { mouseButton[ button ] = state; AddMouseEvent( event ); } }
/*==================================================================================================================== \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ====================================================================================================================*/ bool StdInput::OnEvent(const SEvent& event) { if (event.EventType == EET_MOUSE_INPUT_EVENT && m_bCaptureMouse) { switch(event.MouseInput.Event) { case EMIE_LMOUSE_PRESSED_DOWN: m_stateLeft = down; AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), left, down); break; case EMIE_RMOUSE_PRESSED_DOWN: m_stateRight = down; AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), right, down); break; case EMIE_MMOUSE_PRESSED_DOWN: m_stateMiddle = down; AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), middle, down); break; case EMIE_LMOUSE_LEFT_UP: m_stateLeft = up; AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), left, up); break; case EMIE_RMOUSE_LEFT_UP: m_stateRight = up; AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), right, up); break; case EMIE_MMOUSE_LEFT_UP: m_stateMiddle = up; AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), middle, up); break; case EMIE_MOUSE_WHEEL: if(event.MouseInput.Wheel>=1) AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), wheel, up); else if(event.MouseInput.Wheel<=-1) AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), wheel, down); else AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), wheel, unknown); if(m_bUseWheelCallback) m_WheelCallback((float)event.MouseInput.Wheel); break; case EMIE_MOUSE_MOVED: m_vMousePos.X = event.MouseInput.X; m_vMousePos.Y = event.MouseInput.Y; break; default: break; } } else if (event.EventType == EET_KEY_INPUT_EVENT && m_bCaptureKeyboard) { State s; if(event.KeyInput.PressedDown) s=down; else s=up; AddKeyboardEvent(event.KeyInput.Key, s); m_aKeyState[event.KeyInput.Key-1] = s; } return false; }