Browse Source

Sdl2Context: split mouseEvent to mousePressEvent and mouseReleaseEvent.

Preserving consistency with GlutContext and *XContext.
vectorfields
Vladimír Vondruš 14 years ago
parent
commit
9d63f35279
  1. 6
      src/Contexts/Sdl2Context.cpp
  2. 26
      src/Contexts/Sdl2Context.h

6
src/Contexts/Sdl2Context.cpp

@ -83,10 +83,10 @@ int Sdl2Context::exec() {
keyReleaseEvent(static_cast<Key>(event.key.keysym.sym));
break;
case SDL_MOUSEBUTTONDOWN:
mousePressEvent(static_cast<MouseButton>(event.button.button), {event.button.x, event.button.y});
break;
case SDL_MOUSEBUTTONUP:
mouseEvent(static_cast<MouseButton>(event.button.button),
static_cast<MouseState>(event.button.state),
{event.button.x, event.button.y});
mouseReleaseEvent(static_cast<MouseButton>(event.button.button), {event.button.x, event.button.y});
break;
case SDL_MOUSEWHEEL:
mouseWheelEvent({event.wheel.x, event.wheel.y});

26
src/Contexts/Sdl2Context.h

@ -133,15 +133,24 @@ class Sdl2Context: public AbstractContext {
protected:
/**
* @brief Mouse event
* @param button Mouse button
* @param state Mouse state
* @param position Mouse position relative to the window
* @brief Mouse press event
* @param button Button pressed
* @param position Cursor position
*
* Called when mouse button is pressed or released. Default
* implementation does nothing.
* Called when mouse button is pressed. Default implementation does
* nothing.
*/
virtual void mousePressEvent(MouseButton button, const Math::Vector2<int>& position);
/**
* @brief Mouse release event
* @param button Button released
* @param position Cursor position
*
* Called when mouse button is released. Default implementation does
* nothing.
*/
virtual void mouseEvent(MouseButton button, MouseState state, const Math::Vector2<int>& position);
virtual void mouseReleaseEvent(MouseButton button, const Math::Vector2<int>& position);
/**
* @brief Mouse wheel event
@ -174,7 +183,8 @@ class Sdl2Context: public AbstractContext {
/* Implementations for inline functions with unused parameters */
inline void Sdl2Context::keyPressEvent(Key, Uint8) {}
inline void Sdl2Context::keyReleaseEvent(Key) {}
inline void Sdl2Context::mouseEvent(MouseButton, MouseState, const Math::Vector2<int>&) {}
inline void Sdl2Context::mousePressEvent(MouseButton, const Math::Vector2<int>&) {}
inline void Sdl2Context::mouseReleaseEvent(MouseButton, const Math::Vector2<int>&) {}
inline void Sdl2Context::mouseWheelEvent(const Math::Vector2<int>&) {}
inline void Sdl2Context::mouseMotionEvent(const Math::Vector2<int>&, const Math::Vector2<int>&) {}

Loading…
Cancel
Save