aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/controls
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-03-29 12:24:06 +0800
committercrupest <crupest@outlook.com>2022-03-29 12:24:06 +0800
commit7a564d98db0b7c7be5b3bfac955cb88998a472ac (patch)
tree891abaf06a4e011a798c8daf5f063230ec67f995 /include/cru/ui/controls
parent91695b78f565239223fc6f3a10b0219b8dc1b6f8 (diff)
downloadcru-7a564d98db0b7c7be5b3bfac955cb88998a472ac.tar.gz
cru-7a564d98db0b7c7be5b3bfac955cb88998a472ac.tar.bz2
cru-7a564d98db0b7c7be5b3bfac955cb88998a472ac.zip
...
Diffstat (limited to 'include/cru/ui/controls')
-rw-r--r--include/cru/ui/controls/Control.h4
-rw-r--r--include/cru/ui/controls/TextHostControlService.h3
2 files changed, 6 insertions, 1 deletions
diff --git a/include/cru/ui/controls/Control.h b/include/cru/ui/controls/Control.h
index 8c9f11d3..38a9a86b 100644
--- a/include/cru/ui/controls/Control.h
+++ b/include/cru/ui/controls/Control.h
@@ -23,6 +23,8 @@ class CRU_UI_API Control : public Object,
public DeleteLaterImpl {
friend class RootControl;
+ CRU_DEFINE_CLASS_LOG_TAG(u"Control")
+
protected:
Control();
@@ -174,6 +176,8 @@ class CRU_UI_API Control : public Object,
protected:
virtual void OnMouseHoverChange(bool newHover) { CRU_UNUSED(newHover) }
+ void OnPrepareDelete() override;
+
private:
void OnParentChangedCore(Control* old_parent, Control* new_parent);
void OnWindowHostChangedCore(host::WindowHost* old_host,
diff --git a/include/cru/ui/controls/TextHostControlService.h b/include/cru/ui/controls/TextHostControlService.h
index dec9b3e0..ae86e1e9 100644
--- a/include/cru/ui/controls/TextHostControlService.h
+++ b/include/cru/ui/controls/TextHostControlService.h
@@ -3,6 +3,7 @@
#include "cru/platform/gui/InputMethod.h"
#include "cru/platform/gui/TimerHelper.h"
#include "cru/platform/gui/UiApplication.h"
+#include "cru/ui/DeleteLater.h"
#include "cru/ui/controls/Control.h"
#include "cru/ui/helper/ShortcutHub.h"
@@ -217,6 +218,6 @@ class CRU_UI_API TextHostControlService : public Object {
bool mouse_move_selecting_ = false;
bool context_menu_dirty_ = true;
- std::unique_ptr<components::PopupMenu> context_menu_;
+ DeleteLaterPtr<components::PopupMenu> context_menu_;
};
} // namespace cru::ui::controls