diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-25 17:15:16 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-25 17:15:16 +0800 |
| commit | 376d5bfe0f3b9658cbf2d4ca9b00c0600341ee85 (patch) | |
| tree | 9a4326fbc15a164631c950d37551df372888f6b3 /include/cru/platform/gui/Window.h | |
| parent | eb280d0ed73c7b3a410c94f4eb995b23cccb9e6a (diff) | |
| download | cru-376d5bfe0f3b9658cbf2d4ca9b00c0600341ee85.tar.gz cru-376d5bfe0f3b9658cbf2d4ca9b00c0600341ee85.tar.bz2 cru-376d5bfe0f3b9658cbf2d4ca9b00c0600341ee85.zip | |
Clean code. Clean events of native window.
Diffstat (limited to 'include/cru/platform/gui/Window.h')
| -rw-r--r-- | include/cru/platform/gui/Window.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/cru/platform/gui/Window.h b/include/cru/platform/gui/Window.h index b8973c5a..e04db448 100644 --- a/include/cru/platform/gui/Window.h +++ b/include/cru/platform/gui/Window.h @@ -23,6 +23,10 @@ struct WindowStyleFlags { enum class WindowVisibilityType { Show, Hide, Minimize }; +struct NativePaintEventArgs { + Rect repaint_area; +}; + enum class FocusChangeType { Gain, Lose }; enum class MouseEnterLeaveType { Enter, Leave }; @@ -100,6 +104,7 @@ struct CRU_PLATFORM_GUI_API INativeWindow : virtual IPlatformResource { virtual IEvent<std::nullptr_t>* CreateEvent() = 0; virtual IEvent<std::nullptr_t>* DestroyEvent() = 0; virtual IEvent<std::nullptr_t>* PaintEvent() = 0; + virtual IEvent<const NativePaintEventArgs&>* Paint1Event(); virtual IEvent<WindowVisibilityType>* VisibilityChangeEvent() = 0; virtual IEvent<const Size&>* ResizeEvent() = 0; @@ -116,3 +121,19 @@ struct CRU_PLATFORM_GUI_API INativeWindow : virtual IPlatformResource { virtual IInputMethodContext* GetInputMethodContext() = 0; }; } // namespace cru::platform::gui + +#define CRU_DEFINE_CRU_PLATFORM_GUI_I_NATIVE_WINDOW_OVERRIDE_EVENTS() \ + CRU_DEFINE_EVENT_OVERRIDE(Create, std::nullptr_t) \ + CRU_DEFINE_EVENT_OVERRIDE(Destroy, std::nullptr_t) \ + CRU_DEFINE_EVENT_OVERRIDE(Paint, std::nullptr_t) \ + CRU_DEFINE_EVENT_OVERRIDE(Paint1, const NativePaintEventArgs&) \ + CRU_DEFINE_EVENT_OVERRIDE(VisibilityChange, WindowVisibilityType) \ + CRU_DEFINE_EVENT_OVERRIDE(Resize, const Size&) \ + CRU_DEFINE_EVENT_OVERRIDE(Focus, FocusChangeType) \ + CRU_DEFINE_EVENT_OVERRIDE(MouseEnterLeave, MouseEnterLeaveType) \ + CRU_DEFINE_EVENT_OVERRIDE(MouseMove, const Point&) \ + CRU_DEFINE_EVENT_OVERRIDE(MouseDown, const NativeMouseButtonEventArgs&) \ + CRU_DEFINE_EVENT_OVERRIDE(MouseUp, const NativeMouseButtonEventArgs&) \ + CRU_DEFINE_EVENT_OVERRIDE(MouseWheel, const NativeMouseWheelEventArgs&) \ + CRU_DEFINE_EVENT_OVERRIDE(KeyDown, const NativeKeyEventArgs&) \ + CRU_DEFINE_EVENT_OVERRIDE(KeyUp, const NativeKeyEventArgs&) |
