diff options
Diffstat (limited to 'include/cru/ui')
-rw-r--r-- | include/cru/ui/controls/RootControl.hpp | 10 | ||||
-rw-r--r-- | include/cru/ui/host/WindowHost.hpp | 14 |
2 files changed, 6 insertions, 18 deletions
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) @@ -24,15 +24,13 @@ class RootControl : public LayoutControl { void SetGainFocusOnCreateAndDestroyWhenLoseFocus(bool value); private: - platform::gui::INativeWindow* GetNativeWindow(bool create); - - private: std::unique_ptr<host::WindowHost> window_host_; std::unique_ptr<render::StackLayoutRenderObject> render_object_; 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<platform::gui::ICursor> cursor); private: - gsl::not_null<platform::gui::INativeWindow*> CreateNativeWindow( - CreateWindowParams params); + gsl::not_null<platform::gui::INativeWindow*> CreateNativeWindow(); //*************** region: native messages *************** void OnNativeDestroy(platform::gui::INativeWindow* window, std::nullptr_t); |