diff options
author | crupest <crupest@outlook.com> | 2020-04-05 23:35:15 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-04-05 23:35:15 +0800 |
commit | 41e17e281ba31e9eff612017f5a2dafd847278b0 (patch) | |
tree | f0736679652abbfa1beeef3aa3d7dabfae8da0b9 /include/cru/win | |
parent | e9590859b1aaa1c2bf4714893daf34fbfd4166fd (diff) | |
download | cru-41e17e281ba31e9eff612017f5a2dafd847278b0.tar.gz cru-41e17e281ba31e9eff612017f5a2dafd847278b0.tar.bz2 cru-41e17e281ba31e9eff612017f5a2dafd847278b0.zip |
...
Diffstat (limited to 'include/cru/win')
-rw-r--r-- | include/cru/win/native/base.hpp | 19 | ||||
-rw-r--r-- | include/cru/win/native/god_window.hpp | 7 | ||||
-rw-r--r-- | include/cru/win/native/input_method.hpp | 19 | ||||
-rw-r--r-- | include/cru/win/native/keyboard.hpp | 2 | ||||
-rw-r--r-- | include/cru/win/native/resource.hpp | 2 | ||||
-rw-r--r-- | include/cru/win/native/ui_application.hpp | 7 | ||||
-rw-r--r-- | include/cru/win/native/window.hpp | 7 | ||||
-rw-r--r-- | include/cru/win/native/window_class.hpp | 4 | ||||
-rw-r--r-- | include/cru/win/native/window_render_target.hpp | 8 |
9 files changed, 45 insertions, 30 deletions
diff --git a/include/cru/win/native/base.hpp b/include/cru/win/native/base.hpp new file mode 100644 index 00000000..61c9f4da --- /dev/null +++ b/include/cru/win/native/base.hpp @@ -0,0 +1,19 @@ +#pragma once +#include "../win_pre_config.hpp" + +#include "cru/common/base.hpp" + +namespace cru::platform::native::win { +class GodWindow; +class TimerManager; +class WinCursor; +class WinCursorManager; +class WindowClass; +class WindowManager; +class WindowRenderTarget; +class WinNativeWindow; +class WinNativeWindowResolver; +class WinUiApplication; +class WinInputMethodManager; +class WinInputMethodContextRef; +} // namespace cru::platform::native::win diff --git a/include/cru/win/native/god_window.hpp b/include/cru/win/native/god_window.hpp index 3cf97e0b..33218a55 100644 --- a/include/cru/win/native/god_window.hpp +++ b/include/cru/win/native/god_window.hpp @@ -1,14 +1,9 @@ #pragma once -#include "../win_pre_config.hpp" - -#include "cru/common/base.hpp" +#include "base.hpp" #include <memory> namespace cru::platform::native::win { -class WinUiApplication; -class WindowClass; - class GodWindow : public Object { public: explicit GodWindow(WinUiApplication* application); diff --git a/include/cru/win/native/input_method.hpp b/include/cru/win/native/input_method.hpp index a0b18d63..7dc9526a 100644 --- a/include/cru/win/native/input_method.hpp +++ b/include/cru/win/native/input_method.hpp @@ -10,10 +10,8 @@ #include <imm.h> namespace cru::platform::native::win { -class WinNativeWindow; - class WinInputMethodContextRef : public WinNativeResource, - public IInputMethodContextRef { + public virtual IInputMethodContextRef { public: WinInputMethodContextRef(WinNativeWindow* window); @@ -53,4 +51,19 @@ class WinInputMethodContextRef : public WinNativeResource, Event<std::nullptr_t> composition_end_event_; Event<std::string> composition_text_change_event_; }; + +class WinInputMethodManager : public WinNativeResource, + public virtual IInputMethodManager { + public: + WinInputMethodManager(WinUiApplication* application); + + CRU_DELETE_COPY(WinInputMethodManager) + CRU_DELETE_MOVE(WinInputMethodManager) + + ~WinInputMethodManager() override; + + public: + std::unique_ptr<IInputMethodContextRef> GetContext( + INativeWindow* window) override; +}; } // namespace cru::platform::native::win diff --git a/include/cru/win/native/keyboard.hpp b/include/cru/win/native/keyboard.hpp index 2d5cc151..afa51c92 100644 --- a/include/cru/win/native/keyboard.hpp +++ b/include/cru/win/native/keyboard.hpp @@ -1,5 +1,5 @@ #pragma once -#include "../win_pre_config.hpp" +#include "base.hpp" #include "cru/platform/native/keyboard.hpp" diff --git a/include/cru/win/native/resource.hpp b/include/cru/win/native/resource.hpp index 2c76fe6b..5601e40e 100644 --- a/include/cru/win/native/resource.hpp +++ b/include/cru/win/native/resource.hpp @@ -1,5 +1,5 @@ #pragma once -#include "../win_pre_config.hpp" +#include "base.hpp" #include "cru/platform/resource.hpp" diff --git a/include/cru/win/native/ui_application.hpp b/include/cru/win/native/ui_application.hpp index 8de9d1b5..1c54cc05 100644 --- a/include/cru/win/native/ui_application.hpp +++ b/include/cru/win/native/ui_application.hpp @@ -10,11 +10,6 @@ class DirectGraphFactory; } namespace cru::platform::native::win { -class GodWindow; -class TimerManager; -class WindowManager; -class WinCursorManager; - class WinUiApplication : public WinNativeResource, public virtual IUiApplication { public: @@ -55,6 +50,7 @@ class WinUiApplication : public WinNativeResource, } ICursorManager* GetCursorManager() override; + IInputMethodManager* GetInputMethodManager() override; HINSTANCE GetInstanceHandle() const { return instance_handle_; } @@ -73,6 +69,7 @@ class WinUiApplication : public WinNativeResource, std::unique_ptr<WindowManager> window_manager_; std::unique_ptr<WinCursorManager> cursor_manager_; + std::unique_ptr<WinInputMethodManager> input_method_manager_; std::vector<std::function<void()>> quit_handlers_; }; diff --git a/include/cru/win/native/window.hpp b/include/cru/win/native/window.hpp index a27a3384..2129895c 100644 --- a/include/cru/win/native/window.hpp +++ b/include/cru/win/native/window.hpp @@ -7,13 +7,6 @@ #include <memory> namespace cru::platform::native::win { -class WinUiApplication; -class WinCursor; -class WindowClass; -class WindowManager; -class WindowRenderTarget; -class WinNativeWindowResolver; - class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { public: WinNativeWindow(WinUiApplication* application, WindowClass* window_class, diff --git a/include/cru/win/native/window_class.hpp b/include/cru/win/native/window_class.hpp index fd5102a5..2140c304 100644 --- a/include/cru/win/native/window_class.hpp +++ b/include/cru/win/native/window_class.hpp @@ -1,7 +1,5 @@ #pragma once -#include "../win_pre_config.hpp" - -#include "cru/common/base.hpp" +#include "base.hpp" #include <string> diff --git a/include/cru/win/native/window_render_target.hpp b/include/cru/win/native/window_render_target.hpp index ab1d68ef..552e87bc 100644 --- a/include/cru/win/native/window_render_target.hpp +++ b/include/cru/win/native/window_render_target.hpp @@ -1,7 +1,5 @@ #pragma once -#include "../win_pre_config.hpp" - -#include "cru/common/base.hpp" +#include "base.hpp" namespace cru::platform::graph::win::direct { class DirectGraphFactory; @@ -24,7 +22,9 @@ class WindowRenderTarget : public Object { return factory_; } - ID2D1DeviceContext* GetD2D1DeviceContext() { return d2d1_device_context_.Get(); } + ID2D1DeviceContext* GetD2D1DeviceContext() { + return d2d1_device_context_.Get(); + } // Resize the underlying buffer. void ResizeBuffer(int width, int height); |