aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/gui/xcb
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-10 00:12:09 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-10 00:12:09 +0800
commit51d7b915f6287d9c14c1228dd65e9adaa3c258bc (patch)
tree7433f8bee3394bf19d1fcd68974f603a90ee32dc /include/cru/platform/gui/xcb
parent64b6ecf692b06483bebd7d5bbc48d72bfd485d57 (diff)
downloadcru-51d7b915f6287d9c14c1228dd65e9adaa3c258bc.tar.gz
cru-51d7b915f6287d9c14c1228dd65e9adaa3c258bc.tar.bz2
cru-51d7b915f6287d9c14c1228dd65e9adaa3c258bc.zip
xcb window create destroy event.
Diffstat (limited to 'include/cru/platform/gui/xcb')
-rw-r--r--include/cru/platform/gui/xcb/Window.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/cru/platform/gui/xcb/Window.h b/include/cru/platform/gui/xcb/Window.h
index 3f21131c..475f2527 100644
--- a/include/cru/platform/gui/xcb/Window.h
+++ b/include/cru/platform/gui/xcb/Window.h
@@ -4,6 +4,7 @@
#include "Base.h"
#include <xcb/xcb.h>
+#include <cstddef>
#include <optional>
namespace cru::platform::gui::xcb {
@@ -61,8 +62,8 @@ class XcbWindow : public XcbResource, public virtual INativeWindow {
// Remember to call EndDraw on return value and destroy it.
virtual std::unique_ptr<graphics::IPainter> BeginPaint() = 0;
- virtual IEvent<std::nullptr_t>* CreateEvent() = 0;
- virtual IEvent<std::nullptr_t>* DestroyEvent() = 0;
+ IEvent<std::nullptr_t>* CreateEvent() override;
+ IEvent<std::nullptr_t>* DestroyEvent() override;
virtual IEvent<std::nullptr_t>* PaintEvent() = 0;
virtual IEvent<WindowVisibilityType>* VisibilityChangeEvent() = 0;
@@ -91,6 +92,9 @@ class XcbWindow : public XcbResource, public virtual INativeWindow {
XcbUiApplication* application_;
std::optional<xcb_window_t> xcb_window_;
+ Event<std::nullptr_t> create_event_;
+ Event<std::nullptr_t> destroy_event_;
+
Event<FocusChangeType> focus_event_;
Event<MouseEnterLeaveType> mouse_enter_leave_event_;
Event<Point> mouse_move_event_;