aboutsummaryrefslogtreecommitdiff
path: root/src/platform/gui/xcb
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/gui/xcb')
-rw-r--r--src/platform/gui/xcb/UiApplication.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/platform/gui/xcb/UiApplication.cpp b/src/platform/gui/xcb/UiApplication.cpp
index 6cd0a177..fefc1335 100644
--- a/src/platform/gui/xcb/UiApplication.cpp
+++ b/src/platform/gui/xcb/UiApplication.cpp
@@ -3,7 +3,7 @@
#include <xcb/xcb.h>
namespace cru::platform::gui::xcb {
-XcbUiApplication::XcbUiApplication() {
+XcbUiApplication::XcbUiApplication() : exit_code_(0) {
int screen_num;
xcb_connection_t *connection = xcb_connect(NULL, &screen_num);
this->CheckXcbConnectionError();
@@ -20,4 +20,19 @@ void XcbUiApplication::CheckXcbConnectionError() {
throw XcbException("xcb_connection_has_error returned non-zero.");
}
}
+
+int XcbUiApplication::Run() {
+
+ // TODO: A Big Implement.
+
+ for (const auto &handler : this->quit_handlers_) {
+ handler();
+ }
+
+ return exit_code_;
+}
+
+void XcbUiApplication::AddOnQuitHandler(std::function<void()> handler) {
+ this->quit_handlers_.push_back(std::move(handler));
+}
} // namespace cru::platform::gui::xcb