diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/cru/base/platform/unix/EventLoop.h | 3 | ||||
| -rw-r--r-- | include/cru/platform/gui/xcb/UiApplication.h | 3 |
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_; |
