From 268b396afe2f09abfa8813c5f1edc1641a7c0a9f Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Nov 2025 15:30:58 +0800 Subject: Add event handling of sdl native window. --- src/platform/gui/sdl/Input.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/platform/gui/sdl/Input.cpp (limited to 'src/platform/gui/sdl/Input.cpp') 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 -- cgit v1.2.3