diff options
Diffstat (limited to 'include/cru/ui')
| -rw-r--r-- | include/cru/ui/controls/Button.h | 1 | ||||
| -rw-r--r-- | include/cru/ui/controls/CheckBox.h | 1 | ||||
| -rw-r--r-- | include/cru/ui/controls/Control.h | 7 | ||||
| -rw-r--r-- | include/cru/ui/controls/IconButton.h | 1 | ||||
| -rw-r--r-- | include/cru/ui/controls/Window.h | 4 |
5 files changed, 10 insertions, 4 deletions
diff --git a/include/cru/ui/controls/Button.h b/include/cru/ui/controls/Button.h index 80d21d08..5ae3de49 100644 --- a/include/cru/ui/controls/Button.h +++ b/include/cru/ui/controls/Button.h @@ -14,7 +14,6 @@ class CRU_UI_API Button : public SingleChildControl<render::BorderRenderObject>, public: Button(); - ~Button() override; public: helper::ClickState GetClickState() override { diff --git a/include/cru/ui/controls/CheckBox.h b/include/cru/ui/controls/CheckBox.h index 2e4685d5..16fe0725 100644 --- a/include/cru/ui/controls/CheckBox.h +++ b/include/cru/ui/controls/CheckBox.h @@ -15,7 +15,6 @@ class CRU_UI_API CheckBox : public Control, static constexpr auto kControlName = "CheckBox"; CheckBox(); - ~CheckBox() override; render::RenderObject* GetRenderObject() override { return &container_render_object_; diff --git a/include/cru/ui/controls/Control.h b/include/cru/ui/controls/Control.h index 8cd7a375..aa1cef8a 100644 --- a/include/cru/ui/controls/Control.h +++ b/include/cru/ui/controls/Control.h @@ -12,6 +12,11 @@ namespace cru::ui::controls { +struct ControlHostChangeEventArgs { + ControlHost* old_host; + ControlHost* new_host; +}; + /** * \remarks If you want to write a new control. You should override following * methods: @@ -143,6 +148,8 @@ class CRU_UI_API Control : public Object, CRU_DEFINE_ROUTED_EVENT(GainFocus, events::FocusChangeEventArgs) CRU_DEFINE_ROUTED_EVENT(LoseFocus, events::FocusChangeEventArgs) + CRU_DEFINE_EVENT(ControlHostChange, const ControlHostChangeEventArgs&) + //*************** region: tree *************** protected: virtual void OnParentChanged(Control* old_parent, Control* new_parent); diff --git a/include/cru/ui/controls/IconButton.h b/include/cru/ui/controls/IconButton.h index b061bc87..5b0f899d 100644 --- a/include/cru/ui/controls/IconButton.h +++ b/include/cru/ui/controls/IconButton.h @@ -21,7 +21,6 @@ class CRU_UI_API IconButton : public Control, public: IconButton(); IconButton(std::string_view icon_svg_path_data_string, const Rect& view_port); - ~IconButton() override; render::RenderObject* GetRenderObject() override { return &container_render_object_; diff --git a/include/cru/ui/controls/Window.h b/include/cru/ui/controls/Window.h index 131d68a8..355b03a9 100644 --- a/include/cru/ui/controls/Window.h +++ b/include/cru/ui/controls/Window.h @@ -24,8 +24,9 @@ class CRU_UI_API Window Window(); - static Window* CreatePopup(); + static Window* CreatePopup(Control* attached_control); + Control* GetAttachedControl(); void SetAttachedControl(Control* control); platform::gui::INativeWindow* GetNativeWindow(); @@ -36,6 +37,7 @@ class CRU_UI_API Window std::unique_ptr<ControlHost> control_host_; Control* attached_control_; + EventHandlerRevokerGuard parent_window_guard_; EventHandlerRevokerListGuard gain_focus_on_create_and_destroy_when_lose_focus_event_guard_; |
