aboutsummaryrefslogtreecommitdiff
path: root/src/platform/gui/xcb
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-09 02:21:04 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-09 02:21:04 +0800
commit2f1ea611385b5bf8985a5b0571eb71976b9a8e52 (patch)
treeaf428a29eb9881b37ea407f0bb0ad662dee88231 /src/platform/gui/xcb
parentf66b3de048daca9869e097926ed3fecb76647c7a (diff)
downloadcru-2f1ea611385b5bf8985a5b0571eb71976b9a8e52.tar.gz
cru-2f1ea611385b5bf8985a5b0571eb71976b9a8e52.tar.bz2
cru-2f1ea611385b5bf8985a5b0571eb71976b9a8e52.zip
Init xcb window.
Diffstat (limited to 'src/platform/gui/xcb')
-rw-r--r--src/platform/gui/xcb/UiApplication.cpp8
-rw-r--r--src/platform/gui/xcb/Window.cpp12
2 files changed, 19 insertions, 1 deletions
diff --git a/src/platform/gui/xcb/UiApplication.cpp b/src/platform/gui/xcb/UiApplication.cpp
index d64fc9da..139a5422 100644
--- a/src/platform/gui/xcb/UiApplication.cpp
+++ b/src/platform/gui/xcb/UiApplication.cpp
@@ -79,4 +79,12 @@ void XcbUiApplication::HandleXEvents() {
NotImplemented();
}
}
+
+void XcbUiApplication::RegisterWindow(XcbWindow *window) {
+ windows_.push_back(window);
+}
+
+void XcbUiApplication::UnregisterWindow(XcbWindow *window) {
+ std::erase(windows_, window);
+}
} // namespace cru::platform::gui::xcb
diff --git a/src/platform/gui/xcb/Window.cpp b/src/platform/gui/xcb/Window.cpp
index 92772acf..cf4e059d 100644
--- a/src/platform/gui/xcb/Window.cpp
+++ b/src/platform/gui/xcb/Window.cpp
@@ -1 +1,11 @@
-#include <cru/platform/gui/xcb/Window.h>
+#include "cru/platform/gui/xcb/Window.h"
+#include "cru/platform/gui/xcb/UiApplication.h"
+
+namespace cru::platform::gui::xcb {
+XcbWindow::XcbWindow(XcbUiApplication* application)
+ : application_(application) {
+ application->RegisterWindow(this);
+}
+
+XcbWindow::~XcbWindow() { application_->UnregisterWindow(this); }
+} // namespace cru::platform::gui::xcb