diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-18 17:31:23 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-18 17:31:23 +0800 |
| commit | 04d243699cbde40fe69472f4c4df38c36f7942ef (patch) | |
| tree | af2a2031ab7f2d9ce03cf677eba066e11f32a0c9 /include/cru/platform/gui/UiApplication.h | |
| parent | 358dc1498623d53f1d8bedf5172743deb6c03811 (diff) | |
| download | cru-04d243699cbde40fe69472f4c4df38c36f7942ef.tar.gz cru-04d243699cbde40fe69472f4c4df38c36f7942ef.tar.bz2 cru-04d243699cbde40fe69472f4c4df38c36f7942ef.zip | |
Move delete later to platform::gui.
Diffstat (limited to 'include/cru/platform/gui/UiApplication.h')
| -rw-r--r-- | include/cru/platform/gui/UiApplication.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/cru/platform/gui/UiApplication.h b/include/cru/platform/gui/UiApplication.h index 84011275..c4454b2e 100644 --- a/include/cru/platform/gui/UiApplication.h +++ b/include/cru/platform/gui/UiApplication.h @@ -16,6 +16,18 @@ struct INativeWindow; struct IInputMethodContext; struct IClipboard; +class CRU_PLATFORM_GUI_API DeleteLaterPool : public Object { + public: + void Add(Object* object); + + void Clean(); + + private: + // May contain duplicate object pointer. When performing deleting, use a set + // to record deleted objects to avoid double delete. + std::vector<Object*> pool_; +}; + // The entry point of a ui application. struct CRU_PLATFORM_GUI_API IUiApplication : public virtual IPlatformResource { public: @@ -51,6 +63,8 @@ struct CRU_PLATFORM_GUI_API IUiApplication : public virtual IPlatformResource { // result in no-op. virtual void CancelTimer(long long id) = 0; + virtual void DeleteLater(Object* object) = 0; + virtual std::vector<INativeWindow*> GetAllWindow() = 0; virtual INativeWindow* CreateWindow() = 0; |
