From df4df679e157f974773dad7776b204e9d4f3009e Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 28 Oct 2020 21:28:15 +0800 Subject: ... --- include/cru/win/native/Window.hpp | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) (limited to 'include/cru/win/native/Window.hpp') diff --git a/include/cru/win/native/Window.hpp b/include/cru/win/native/Window.hpp index ecc0dd04..6bf71601 100644 --- a/include/cru/win/native/Window.hpp +++ b/include/cru/win/native/Window.hpp @@ -3,6 +3,7 @@ #include "WindowNativeMessageEventArgs.hpp" #include "cru/platform/GraphBase.hpp" +#include "cru/platform/native/Base.hpp" #include "cru/platform/native/Window.hpp" #include "cru/win/graph/direct/WindowRenderTarget.hpp" @@ -22,10 +23,6 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { ~WinNativeWindow() override; public: - std::shared_ptr GetResolver() override { - return std::static_pointer_cast(resolver_); - } - void Close() override; WinNativeWindow* GetParent() override { return parent_window_; } @@ -81,6 +78,8 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { return &native_message_event_; } + IInputMethodContext* GetInputMethodContext() override; + // Get the handle of the window. Return null if window is invalid. HWND GetWindowHandle() const { return hwnd_; } @@ -148,8 +147,6 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { // again. bool sync_flag_ = false; - std::shared_ptr resolver_; - HWND hwnd_; WinNativeWindow* parent_window_; @@ -163,6 +160,8 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { std::shared_ptr cursor_; + std::unique_ptr input_method_context_; + Event destroy_event_; Event paint_event_; Event resize_event_; @@ -176,28 +175,4 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { Event native_message_event_; }; - -class WinNativeWindowResolver : public WinNativeResource, - public virtual INativeWindowResolver { - friend WinNativeWindow::~WinNativeWindow(); - - public: - WinNativeWindowResolver(WinNativeWindow* window) : window_(window) {} - - CRU_DELETE_COPY(WinNativeWindowResolver) - CRU_DELETE_MOVE(WinNativeWindowResolver) - - ~WinNativeWindowResolver() override = default; - - public: - INativeWindow* Resolve() override { return window_; } - - private: - void Reset(); - - private: - WinNativeWindow* window_; -}; - -WinNativeWindow* Resolve(gsl::not_null resolver); } // namespace cru::platform::native::win -- cgit v1.2.3