diff options
Diffstat (limited to 'include/cru/platform/gui/sdl')
| -rw-r--r-- | include/cru/platform/gui/sdl/Input.h | 12 | ||||
| -rw-r--r-- | include/cru/platform/gui/sdl/Window.h | 8 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/cru/platform/gui/sdl/Input.h b/include/cru/platform/gui/sdl/Input.h new file mode 100644 index 00000000..c6b97727 --- /dev/null +++ b/include/cru/platform/gui/sdl/Input.h @@ -0,0 +1,12 @@ +#pragma once + +#include <cru/platform/gui/Input.h> + +#include <SDL3/SDL_mouse.h> +#include <SDL3/SDL_keyboard.h> + +namespace cru::platform::gui::sdl { +MouseButton ConvertMouseButton(Uint8 button); +KeyModifier ConvertKeyModifier(SDL_Keymod keymod); +KeyModifier GetKeyModifier(); +} // namespace cru::platform::gui::sdl diff --git a/include/cru/platform/gui/sdl/Window.h b/include/cru/platform/gui/sdl/Window.h index c9d6505b..9947a1b9 100644 --- a/include/cru/platform/gui/sdl/Window.h +++ b/include/cru/platform/gui/sdl/Window.h @@ -4,6 +4,7 @@ #include <cru/platform/GraphicsBase.h> #include <cru/platform/gui/Window.h> +#include <SDL3/SDL_events.h> #include <SDL3/SDL_video.h> #include <optional> @@ -53,6 +54,11 @@ class SdlWindow : public SdlResource, public virtual INativeWindow { */ void SetWindowRect(const Rect& rect) override; + /** + * Note: SDL3 doesn't have an API to solely set focus without raising the + * window. So this method actually calls SDL_RaiseWindow to raise and set + * focus to the window. + */ bool RequestFocus() override; Point GetMousePosition() override; @@ -85,6 +91,8 @@ class SdlWindow : public SdlResource, public virtual INativeWindow { void DoUpdateStyleFlag(); void DoUpdateTitle(); + bool HandleEvent(const SDL_Event* event); + private: SdlUiApplication* application_; SDL_Window* sdl_window_; |
