diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-28 15:30:58 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-28 15:30:58 +0800 |
| commit | 268b396afe2f09abfa8813c5f1edc1641a7c0a9f (patch) | |
| tree | cc1b1887c68287c74df7239b94c24335ad3ca9e1 /src/platform/gui/sdl/Input.cpp | |
| parent | b7c4620007274844669337df703aba206ea6c4d3 (diff) | |
| download | cru-268b396afe2f09abfa8813c5f1edc1641a7c0a9f.tar.gz cru-268b396afe2f09abfa8813c5f1edc1641a7c0a9f.tar.bz2 cru-268b396afe2f09abfa8813c5f1edc1641a7c0a9f.zip | |
Add event handling of sdl native window.
Diffstat (limited to 'src/platform/gui/sdl/Input.cpp')
| -rw-r--r-- | src/platform/gui/sdl/Input.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/platform/gui/sdl/Input.cpp b/src/platform/gui/sdl/Input.cpp new file mode 100644 index 00000000..1c7b4475 --- /dev/null +++ b/src/platform/gui/sdl/Input.cpp @@ -0,0 +1,25 @@ +#include "cru/platform/gui/sdl/Input.h" + +namespace cru::platform::gui::sdl { +MouseButton ConvertMouseButton(Uint8 button) { + switch (button) { + case SDL_BUTTON_LEFT: + return MouseButtons::Left; + case SDL_BUTTON_MIDDLE: + return MouseButtons::Middle; + case SDL_BUTTON_RIGHT: + return MouseButtons::Right; + } + return MouseButtons::Unknown; +} + +KeyModifier ConvertKeyModifier(SDL_Keymod keymod) { + KeyModifier result; + if (keymod & SDL_KMOD_SHIFT) result |= KeyModifiers::Shift; + if (keymod & SDL_KMOD_CTRL) result |= KeyModifiers::Ctrl; + if (keymod & SDL_KMOD_ALT) result |= KeyModifiers::Alt; + return result; +} + +KeyModifier GetKeyModifier() { return ConvertKeyModifier(SDL_GetModState()); } +} // namespace cru::cru::platform::gui::sdl |
