aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-22 14:58:02 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-23 01:06:52 +0800
commitc6bde0b556a329a8f1679b09049eee03dce14971 (patch)
tree5e8f106aa4f8857f9935c326d415315ed7fb7030 /src
parentce07249c9b99959fdac7973257526e7dd700d5d9 (diff)
downloadcru-c6bde0b556a329a8f1679b09049eee03dce14971.tar.gz
cru-c6bde0b556a329a8f1679b09049eee03dce14971.tar.bz2
cru-c6bde0b556a329a8f1679b09049eee03dce14971.zip
Impl GetAllWindow CreateWindow GetGraphicsFactory GetApplicationMenu of XcbUiApplication.
Diffstat (limited to 'src')
-rw-r--r--src/platform/gui/xcb/UiApplication.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/platform/gui/xcb/UiApplication.cpp b/src/platform/gui/xcb/UiApplication.cpp
index 0a6ab07f..74b20bd7 100644
--- a/src/platform/gui/xcb/UiApplication.cpp
+++ b/src/platform/gui/xcb/UiApplication.cpp
@@ -1,10 +1,12 @@
#include "cru/platform/gui/xcb/UiApplication.h"
#include "cru/platform/graphics/cairo/CairoGraphicsFactory.h"
+#include "cru/platform/gui/Window.h"
#include "cru/platform/gui/xcb/Window.h"
#include <poll.h>
#include <xcb/xcb.h>
+#include <algorithm>
namespace cru::platform::gui::xcb {
XcbUiApplication::XcbUiApplication(
@@ -122,6 +124,21 @@ void XcbUiApplication::HandleXEvents() {
}
}
+std::vector<INativeWindow *> XcbUiApplication::GetAllWindow() {
+ std::vector<INativeWindow *> windows(windows_.size());
+ std::ranges::copy(windows_, windows.begin());
+ return windows;
+}
+
+INativeWindow *XcbUiApplication::CreateWindow() { return new XcbWindow(this); }
+
+cru::platform::graphics::IGraphicsFactory *
+XcbUiApplication::GetGraphicsFactory() {
+ return cairo_factory_;
+}
+
+IMenu *XcbUiApplication::GetApplicationMenu() { return nullptr; }
+
void XcbUiApplication::RegisterWindow(XcbWindow *window) {
windows_.push_back(window);
}