aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/cru/base/platform/unix/EventLoop.h3
-rw-r--r--include/cru/platform/gui/xcb/UiApplication.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/include/cru/base/platform/unix/EventLoop.h b/include/cru/base/platform/unix/EventLoop.h
index c7674a91..84d413fb 100644
--- a/include/cru/base/platform/unix/EventLoop.h
+++ b/include/cru/base/platform/unix/EventLoop.h
@@ -5,6 +5,7 @@
#endif
#include "../../Base.h"
+#include "../../Event.h"
#include "../../Timer.h"
#include "UnixFile.h"
@@ -103,6 +104,8 @@ class UnixEventLoop : public Object {
void SetPoll(int fd, PollEvents events, PollHandler action);
void RemovePoll(int fd);
+ CRU_DEFINE_EVENT(AfterEachRound, std::nullptr_t)
+
private:
bool CheckPoll();
bool CheckActionPipe();
diff --git a/include/cru/platform/gui/xcb/UiApplication.h b/include/cru/platform/gui/xcb/UiApplication.h
index 55138fd3..2659b163 100644
--- a/include/cru/platform/gui/xcb/UiApplication.h
+++ b/include/cru/platform/gui/xcb/UiApplication.h
@@ -72,6 +72,8 @@ class XcbUiApplication : public XcbResource, public virtual IUiApplication {
std::function<void()> action) override;
void CancelTimer(long long id) override;
+ void DeleteLater(Object* object) override;
+
std::vector<INativeWindow*> GetAllWindow() override;
INativeWindow* CreateWindow() override;
@@ -102,6 +104,7 @@ class XcbUiApplication : public XcbResource, public virtual IUiApplication {
cru::platform::unix::UnixEventLoop event_loop_;
std::vector<std::function<void()>> quit_handlers_;
+ DeleteLaterPool delete_later_pool_;
bool is_quit_on_all_window_closed_;
std::vector<XcbWindow*> windows_;