aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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);
}