Browse Source

Sdl2Application: support for modifiers also in mouse events.

Lazily loaded on user request.
pull/7/head
Vladimír Vondruš 14 years ago
parent
commit
2ad7fea174
  1. 12
      src/Platform/Sdl2Application.cpp
  2. 22
      src/Platform/Sdl2Application.h

12
src/Platform/Sdl2Application.cpp

@ -135,4 +135,16 @@ int Sdl2Application::exec() {
return 0;
}
Sdl2Application::InputEvent::Modifiers Sdl2Application::MouseEvent::modifiers() {
if(modifiersLoaded) return _modifiers;
modifiersLoaded = true;
return _modifiers = static_cast<Modifier>(SDL_GetModState());
}
Sdl2Application::InputEvent::Modifiers Sdl2Application::MouseMoveEvent::modifiers() {
if(modifiersLoaded) return _modifiers;
modifiersLoaded = true;
return _modifiers = static_cast<Modifier>(SDL_GetModState());
}
}}

22
src/Platform/Sdl2Application.h

@ -343,11 +343,20 @@ class Sdl2Application::MouseEvent: public Sdl2Application::InputEvent {
/** @brief Position */
inline Math::Vector2<int> position() const { return _position; }
/**
* @brief Modifiers
*
* Lazily populated on first request.
*/
Modifiers modifiers();
private:
inline MouseEvent(Button button, const Math::Vector2<int>& position): _button(button), _position(position) {}
inline MouseEvent(Button button, const Math::Vector2<int>& position): _button(button), _position(position), modifiersLoaded(false) {}
const Button _button;
const Math::Vector2<int> _position;
bool modifiersLoaded;
Modifiers _modifiers;
};
/**
@ -362,10 +371,19 @@ class Sdl2Application::MouseMoveEvent: public Sdl2Application::InputEvent {
/** @brief Position */
inline Math::Vector2<int> position() const { return _position; }
/**
* @brief Modifiers
*
* Lazily populated on first request.
*/
Modifiers modifiers();
private:
inline MouseMoveEvent(const Math::Vector2<int>& position): _position(position) {}
inline MouseMoveEvent(const Math::Vector2<int>& position): _position(position), modifiersLoaded(false) {}
const Math::Vector2<int> _position;
bool modifiersLoaded;
Modifiers _modifiers;
};
/** @hideinitializer

Loading…
Cancel
Save