aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/gui/xcb/Window.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-10 01:30:59 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-10 01:30:59 +0800
commitfe6e1686ce484cb0dd9a69f130e82f647c30016f (patch)
treef5e020e6a46d9a36a7952d1785cf20467e413159 /include/cru/platform/gui/xcb/Window.h
parent18e330f9f4a673da78e6503c697619ad99b4bdbf (diff)
downloadcru-fe6e1686ce484cb0dd9a69f130e82f647c30016f.tar.gz
cru-fe6e1686ce484cb0dd9a69f130e82f647c30016f.tar.bz2
cru-fe6e1686ce484cb0dd9a69f130e82f647c30016f.zip
xcb window reparent.
Diffstat (limited to 'include/cru/platform/gui/xcb/Window.h')
-rw-r--r--include/cru/platform/gui/xcb/Window.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/include/cru/platform/gui/xcb/Window.h b/include/cru/platform/gui/xcb/Window.h
index e09fdbfb..f9fbf735 100644
--- a/include/cru/platform/gui/xcb/Window.h
+++ b/include/cru/platform/gui/xcb/Window.h
@@ -18,10 +18,10 @@ class XcbWindow : public XcbResource, public virtual INativeWindow {
explicit XcbWindow(XcbUiApplication* application);
~XcbWindow() override;
- virtual void Close() = 0;
+ void Close() override;
- virtual INativeWindow* GetParent() = 0;
- virtual void SetParent(INativeWindow* parent) = 0;
+ INativeWindow* GetParent() override;
+ void SetParent(INativeWindow* parent) override;
virtual WindowStyleFlag GetStyleFlag() = 0;
virtual void SetStyleFlag(WindowStyleFlag flag) = 0;
@@ -91,9 +91,11 @@ class XcbWindow : public XcbResource, public virtual INativeWindow {
private:
XcbUiApplication* application_;
std::optional<xcb_window_t> xcb_window_;
- cairo_surface_t *cairo_surface_;
+ cairo_surface_t* cairo_surface_;
Size current_size_;
+ XcbWindow* parent_;
+
Event<std::nullptr_t> create_event_;
Event<std::nullptr_t> destroy_event_;
Event<std::nullptr_t> paint_event_;