diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-02 17:35:47 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-03 22:48:05 +0800 |
commit | 1b197ca9997eb407407e508eb199b1e6fae78926 (patch) | |
tree | 12f5784d37f7cd06bcc9104f3d559368ee420136 /include/cru/platform/gui/xcb | |
parent | efce9cc6dbbeece12fe348ec742f9c501459d37d (diff) | |
download | cru-1b197ca9997eb407407e508eb199b1e6fae78926.tar.gz cru-1b197ca9997eb407407e508eb199b1e6fae78926.tar.bz2 cru-1b197ca9997eb407407e508eb199b1e6fae78926.zip |
Override Run and AddOnQuitHandler.
Diffstat (limited to 'include/cru/platform/gui/xcb')
-rw-r--r-- | include/cru/platform/gui/xcb/UiApplication.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/cru/platform/gui/xcb/UiApplication.h b/include/cru/platform/gui/xcb/UiApplication.h index d8702087..9b3545c2 100644 --- a/include/cru/platform/gui/xcb/UiApplication.h +++ b/include/cru/platform/gui/xcb/UiApplication.h @@ -3,6 +3,7 @@ #include "Base.h" #include <xcb/xcb.h> +#include <functional> namespace cru::platform::gui::xcb { class XcbUiApplication : public XcbResource, public virtual IUiApplication { @@ -12,12 +13,12 @@ class XcbUiApplication : public XcbResource, public virtual IUiApplication { void CheckXcbConnectionError(); - virtual int Run() = 0; + int Run() override; // Post a quit message with given quit code. virtual void RequestQuit(int quit_code) = 0; - virtual void AddOnQuitHandler(std::function<void()> handler) = 0; + void AddOnQuitHandler(std::function<void()> handler) override; virtual bool IsQuitOnAllWindowClosed() = 0; virtual void SetQuitOnAllWindowClosed(bool quit_on_all_window_closed) = 0; @@ -61,5 +62,8 @@ class XcbUiApplication : public XcbResource, public virtual IUiApplication { private: xcb_connection_t* xcb_; xcb_screen_t* screen_; + + std::vector<std::function<void()>> quit_handlers_; + int exit_code_; }; } // namespace cru::platform::gui::xcb |