From eeb1f55d5a483720441c3f44e83d02cc882a3bc0 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 21 Nov 2021 15:18:28 +0800 Subject: ... --- include/cru/ui/controls/RootControl.hpp | 10 ++++------ include/cru/ui/host/WindowHost.hpp | 14 ++------------ 2 files changed, 6 insertions(+), 18 deletions(-) (limited to 'include/cru/ui') diff --git a/include/cru/ui/controls/RootControl.hpp b/include/cru/ui/controls/RootControl.hpp index 44722cef..823b9f03 100644 --- a/include/cru/ui/controls/RootControl.hpp +++ b/include/cru/ui/controls/RootControl.hpp @@ -2,6 +2,7 @@ #include "LayoutControl.hpp" #include "cru/common/Base.hpp" +#include "cru/common/Event.hpp" #include "cru/platform/gui/Base.hpp" #include "cru/ui/Base.hpp" #include "cru/ui/host/WindowHost.hpp" @@ -9,8 +10,7 @@ namespace cru::ui::controls { class RootControl : public LayoutControl { protected: - explicit RootControl(Control* attached_control, - host::CreateWindowParams params); + explicit RootControl(Control* attached_control); public: CRU_DELETE_COPY(RootControl) @@ -23,9 +23,6 @@ class RootControl : public LayoutControl { protected: void SetGainFocusOnCreateAndDestroyWhenLoseFocus(bool value); - private: - platform::gui::INativeWindow* GetNativeWindow(bool create); - private: std::unique_ptr window_host_; @@ -33,6 +30,7 @@ class RootControl : public LayoutControl { Control* attached_control_; - bool gain_focus_on_create_and_destroy_when_lose_focus_ = false; + EventRevokerListGuard + gain_focus_on_create_and_destroy_when_lose_focus_event_guard_; }; } // namespace cru::ui::controls diff --git a/include/cru/ui/host/WindowHost.hpp b/include/cru/ui/host/WindowHost.hpp index 6fb853b6..2fc174c6 100644 --- a/include/cru/ui/host/WindowHost.hpp +++ b/include/cru/ui/host/WindowHost.hpp @@ -16,21 +16,12 @@ class LayoutPaintCycler; struct AfterLayoutEventArgs {}; -struct CreateWindowParams { - CreateWindowParams(platform::gui::INativeWindow* parent = nullptr, - platform::gui::CreateWindowFlag flag = {}) - : parent(parent), flag(flag) {} - - platform::gui::INativeWindow* parent; - platform::gui::CreateWindowFlag flag; -}; - // The bridge between control tree and native window. class WindowHost : public Object { CRU_DEFINE_CLASS_LOG_TAG(u"cru::ui::host::WindowHost") public: - WindowHost(controls::Control* root_control, CreateWindowParams params); + explicit WindowHost(controls::Control* root_control); CRU_DELETE_COPY(WindowHost) CRU_DELETE_MOVE(WindowHost) @@ -112,8 +103,7 @@ class WindowHost : public Object { void SetOverrideCursor(std::shared_ptr cursor); private: - gsl::not_null CreateNativeWindow( - CreateWindowParams params); + gsl::not_null CreateNativeWindow(); //*************** region: native messages *************** void OnNativeDestroy(platform::gui::INativeWindow* window, std::nullptr_t); -- cgit v1.2.3