diff options
Diffstat (limited to 'include/cru/platform/gui/sdl')
| -rw-r--r-- | include/cru/platform/gui/sdl/UiApplication.h | 3 | ||||
| -rw-r--r-- | include/cru/platform/gui/sdl/Window.h | 34 |
2 files changed, 5 insertions, 32 deletions
diff --git a/include/cru/platform/gui/sdl/UiApplication.h b/include/cru/platform/gui/sdl/UiApplication.h index c300568c..be5ae102 100644 --- a/include/cru/platform/gui/sdl/UiApplication.h +++ b/include/cru/platform/gui/sdl/UiApplication.h @@ -38,6 +38,8 @@ class SdlUiApplication : public SdlResource, public virtual IUiApplication { std::function<void()> action) override; void CancelTimer(long long id) override; + void DeleteLater(Object* object) override; + std::vector<INativeWindow*> GetAllWindow() override; INativeWindow* CreateWindow() override; @@ -64,6 +66,7 @@ class SdlUiApplication : public SdlResource, public virtual IUiApplication { bool release_graphics_factory_; std::uint32_t empty_event_type_; + DeleteLaterPool delete_later_pool_; TimerRegistry<std::function<void()>> timers_; std::atomic_int quit_code_; std::vector<std::function<void()>> quit_handlers_; diff --git a/include/cru/platform/gui/sdl/Window.h b/include/cru/platform/gui/sdl/Window.h index 8ffadd02..78fbaa93 100644 --- a/include/cru/platform/gui/sdl/Window.h +++ b/include/cru/platform/gui/sdl/Window.h @@ -1,11 +1,9 @@ #pragma once -#include <cru/base/Base.h> #include "../../GraphicsBase.h" #include "../Window.h" #include "Base.h" #include <SDL3/SDL_video.h> -#include <cstddef> #include <optional> namespace cru::platform::gui::sdl { @@ -59,21 +57,7 @@ class SdlWindow : public SdlResource, public virtual INativeWindow { std::unique_ptr<graphics::IPainter> BeginPaint() override; - IEvent<std::nullptr_t>* CreateEvent() override; - IEvent<std::nullptr_t>* DestroyEvent() override; - IEvent<std::nullptr_t>* PaintEvent() override; - - IEvent<WindowVisibilityType>* VisibilityChangeEvent() override; - IEvent<const Size&>* ResizeEvent() override; - IEvent<FocusChangeType>* FocusEvent() override; - - IEvent<MouseEnterLeaveType>* MouseEnterLeaveEvent() override; - IEvent<const Point&>* MouseMoveEvent() override; - IEvent<const NativeMouseButtonEventArgs&>* MouseDownEvent() override; - IEvent<const NativeMouseButtonEventArgs&>* MouseUpEvent() override; - IEvent<const NativeMouseWheelEventArgs&>* MouseWheelEvent() override; - IEvent<const NativeKeyEventArgs&>* KeyDownEvent() override; - IEvent<const NativeKeyEventArgs&>* KeyUpEvent() override; + CRU_DEFINE_CRU_PLATFORM_GUI_I_NATIVE_WINDOW_OVERRIDE_EVENTS() IInputMethodContext* GetInputMethodContext() override; @@ -86,19 +70,5 @@ class SdlWindow : public SdlResource, public virtual INativeWindow { std::optional<SDL_Window*> sdl_window_; SdlWindow* parent_; WindowStyleFlag style_; - - Event<std::nullptr_t> create_event_; - Event<std::nullptr_t> destroy_event_; - Event<std::nullptr_t> paint_event_; - Event<WindowVisibilityType> visibility_change_event_; - Event<const Size&> resize_event_; - Event<FocusChangeType> focus_event_; - Event<MouseEnterLeaveType> mouse_enter_leave_event_; - Event<const Point&> mouse_move_event_; - Event<const NativeMouseButtonEventArgs&> mouse_down_event_; - Event<const NativeMouseButtonEventArgs&> mouse_up_event_; - Event<const NativeMouseWheelEventArgs&> mouse_wheel_event_; - Event<const NativeKeyEventArgs&> key_down_event_; - Event<const NativeKeyEventArgs&> key_up_event_; }; -} // namespace cru::platform::gui::xcb +} // namespace cru::platform::gui::sdl |
