diff options
author | crupest <crupest@outlook.com> | 2020-10-28 20:51:55 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-10-28 20:51:55 +0800 |
commit | 6ce70ed4b08c7db20b6b384be26c7fc4e11c98de (patch) | |
tree | 208ca80036c186d18e0ec25491881a760075ae83 /include | |
parent | 8f27c928c2ce4f3617c9113582a93da10721114c (diff) | |
download | cru-6ce70ed4b08c7db20b6b384be26c7fc4e11c98de.tar.gz cru-6ce70ed4b08c7db20b6b384be26c7fc4e11c98de.tar.bz2 cru-6ce70ed4b08c7db20b6b384be26c7fc4e11c98de.zip |
...
Diffstat (limited to 'include')
-rw-r--r-- | include/cru/ui/Base.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/Control.hpp | 12 | ||||
-rw-r--r-- | include/cru/ui/Window.hpp | 6 | ||||
-rw-r--r-- | include/cru/ui/WindowHost.hpp (renamed from include/cru/ui/UiHost.hpp) | 26 | ||||
-rw-r--r-- | include/cru/ui/render/RenderObject.hpp | 6 | ||||
-rw-r--r-- | include/cru/ui/render/WindowRenderObject.hpp | 2 |
6 files changed, 27 insertions, 27 deletions
diff --git a/include/cru/ui/Base.hpp b/include/cru/ui/Base.hpp index 6be359ab..dd93f187 100644 --- a/include/cru/ui/Base.hpp +++ b/include/cru/ui/Base.hpp @@ -29,7 +29,7 @@ namespace colors = cru::platform::colors; class Window; class Control; class ClickDetector; -class UiHost; +class WindowHost; namespace render { class RenderObject; diff --git a/include/cru/ui/Control.hpp b/include/cru/ui/Control.hpp index bd86bc2f..692dcc9b 100644 --- a/include/cru/ui/Control.hpp +++ b/include/cru/ui/Control.hpp @@ -9,7 +9,7 @@ namespace cru::ui { class Control : public Object { - friend UiHost; + friend WindowHost; protected: Control(); @@ -27,7 +27,7 @@ class Control : public Object { //*************** region: tree *************** public: // Get the ui host if attached, otherwise, return nullptr. - UiHost* GetUiHost() const { return ui_host_; } + WindowHost* GetWindowHost() const { return ui_host_; } Control* GetParent() const { return parent_; } @@ -37,7 +37,7 @@ class Control : public Object { void TraverseDescendants(const std::function<void(Control*)>& predicate); void _SetParent(Control* parent); - void _SetDescendantUiHost(UiHost* host); + void _SetDescendantWindowHost(WindowHost* host); private: static void _TraverseDescendants( @@ -135,13 +135,13 @@ class Control : public Object { //*************** region: tree *************** protected: virtual void OnParentChanged(Control* old_parent, Control* new_parent); - virtual void OnAttachToHost(UiHost* host); - virtual void OnDetachFromHost(UiHost* host); + virtual void OnAttachToHost(WindowHost* host); + virtual void OnDetachFromHost(WindowHost* host); virtual void OnMouseHoverChange(bool newHover) { CRU_UNUSED(newHover) } private: - UiHost* ui_host_ = nullptr; + WindowHost* ui_host_ = nullptr; Control* parent_ = nullptr; private: diff --git a/include/cru/ui/Window.hpp b/include/cru/ui/Window.hpp index 450ea97b..5ea24855 100644 --- a/include/cru/ui/Window.hpp +++ b/include/cru/ui/Window.hpp @@ -3,7 +3,7 @@ namespace cru::ui { class Window final : public ContentControl { - friend UiHost; + friend WindowHost; public: static constexpr std::u16string_view control_type = u"Window"; @@ -32,9 +32,9 @@ class Window final : public ContentControl { void OnChildChanged(Control* old_child, Control* new_child) override; private: - std::unique_ptr<UiHost> managed_ui_host_; + std::unique_ptr<WindowHost> managed_ui_host_; - // UiHost is responsible to take care of lifetime of this. + // WindowHost is responsible to take care of lifetime of this. render::WindowRenderObject* render_object_; }; } // namespace cru::ui diff --git a/include/cru/ui/UiHost.hpp b/include/cru/ui/WindowHost.hpp index 2437b967..64116590 100644 --- a/include/cru/ui/UiHost.hpp +++ b/include/cru/ui/WindowHost.hpp @@ -15,35 +15,35 @@ struct AfterLayoutEventArgs {}; // 1. Native window destroyed, IsRetainAfterDestroy: false: // OnNativeDestroy(set native_window_destroyed_ to true, call ~Window due to // deleting_ is false and IsRetainAfterDestroy is false) -> ~Window -> -// ~UiHost(not destroy native window repeatedly due to native_window_destroyed_ +// ~WindowHost(not destroy native window repeatedly due to native_window_destroyed_ // is true) // 2. Native window destroyed, IsRetainAfterDestroy: true: // OnNativeDestroy(set native_window_destroyed_ to true, not call ~Window // because deleting_ is false and IsRetainAfterDestroy is true) -// then, ~Window -> ~UiHost(not destroy native window repeatedly due to +// then, ~Window -> ~WindowHost(not destroy native window repeatedly due to // native_window_destroyed_ is true) // 3. Native window not destroyed, ~Window is called: -// ~Window -> ~UiHost(set deleting_ to true, destroy native window +// ~Window -> ~WindowHost(set deleting_ to true, destroy native window // due to native_window_destroyed is false) -> OnNativeDestroy(not call ~Window // due to deleting_ is true and IsRetainAfterDestroy is whatever) // In conclusion: // 1. Set native_window_destroyed_ to true at the beginning of OnNativeDestroy. -// 2. Set deleting_ to true at the beginning of ~UiHost. +// 2. Set deleting_ to true at the beginning of ~WindowHost. // 3. Destroy native window when native_window_destroy_ is false in ~Window. // 4. Delete Window when deleting_ is false and IsRetainAfterDestroy is false in // OnNativeDestroy. -class UiHost : public Object, public SelfResolvable<UiHost> { - CRU_DEFINE_CLASS_LOG_TAG(u"cru::ui::UiHost") +class WindowHost : public Object, public SelfResolvable<WindowHost> { + CRU_DEFINE_CLASS_LOG_TAG(u"cru::ui::WindowHost") public: // This will create root window render object and attach it to window. // It will also create and manage a native window. - UiHost(Window* window); + WindowHost(Window* window); - CRU_DELETE_COPY(UiHost) - CRU_DELETE_MOVE(UiHost) + CRU_DELETE_COPY(WindowHost) + CRU_DELETE_MOVE(WindowHost) - ~UiHost() override; + ~WindowHost() override; public: // Mark the layout as invalid, and arrange a re-layout later. @@ -158,15 +158,15 @@ class UiHost : public Object, public SelfResolvable<UiHost> { std::shared_ptr<platform::native::INativeWindowResolver> native_window_resolver_; - // See remarks of UiHost. + // See remarks of WindowHost. bool retain_after_destroy_ = false; - // See remarks of UiHost. + // See remarks of WindowHost. bool deleting_ = false; // We need this because calling Resolve on resolver in handler of destroy // event is bad and will always get the dying window. But we need to label the // window as destroyed so the destructor will not destroy native window - // repeatedly. See remarks of UiHost. + // repeatedly. See remarks of WindowHost. bool native_window_destroyed_ = false; std::vector<EventRevokerGuard> event_revoker_guards_; diff --git a/include/cru/ui/render/RenderObject.hpp b/include/cru/ui/render/RenderObject.hpp index 57251e3a..f052221e 100644 --- a/include/cru/ui/render/RenderObject.hpp +++ b/include/cru/ui/render/RenderObject.hpp @@ -64,7 +64,7 @@ class RenderObject : public Object { Control* GetAttachedControl() const { return control_; } void SetAttachedControl(Control* new_control) { control_ = new_control; } - UiHost* GetUiHost() const { return ui_host_; } + WindowHost* GetWindowHost() const { return ui_host_; } RenderObject* GetParent() const { return parent_; } @@ -198,11 +198,11 @@ class RenderObject : public Object { private: void SetParent(RenderObject* new_parent); - void SetRenderHostRecursive(UiHost* host); + void SetRenderHostRecursive(WindowHost* host); private: Control* control_ = nullptr; - UiHost* ui_host_ = nullptr; + WindowHost* ui_host_ = nullptr; RenderObject* parent_ = nullptr; std::vector<RenderObject*> children_{}; diff --git a/include/cru/ui/render/WindowRenderObject.hpp b/include/cru/ui/render/WindowRenderObject.hpp index d2ca5526..23fd8748 100644 --- a/include/cru/ui/render/WindowRenderObject.hpp +++ b/include/cru/ui/render/WindowRenderObject.hpp @@ -6,7 +6,7 @@ namespace cru::ui::render { class WindowRenderObject : public RenderObject { public: - WindowRenderObject(UiHost* host); + WindowRenderObject(WindowHost* host); WindowRenderObject(const WindowRenderObject& other) = delete; WindowRenderObject(WindowRenderObject&& other) = delete; WindowRenderObject& operator=(const WindowRenderObject& other) = delete; |