From 695031ac33acd398bd1492bcce813b8346574ae2 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 21 Oct 2021 14:12:26 +0800 Subject: ... --- include/cru/osx/gui/InputMethod.hpp | 50 ++++++++++++++++++++++++++++++++++++- include/cru/osx/gui/Window.hpp | 40 ----------------------------- 2 files changed, 49 insertions(+), 41 deletions(-) (limited to 'include/cru/osx/gui') diff --git a/include/cru/osx/gui/InputMethod.hpp b/include/cru/osx/gui/InputMethod.hpp index 426392dd..79f06f36 100644 --- a/include/cru/osx/gui/InputMethod.hpp +++ b/include/cru/osx/gui/InputMethod.hpp @@ -1,3 +1,51 @@ #pragma once #include "Resource.hpp" -#include "Window.hpp" + +#include "cru/platform/gui/InputMethod.hpp" + +namespace cru::platform::gui::osx { +class OsxWindow; + +namespace details { +class OsxInputMethodContextPrivate; +} + +class OsxInputMethodContext : public OsxGuiResource, + public virtual IInputMethodContext { + friend details::OsxInputMethodContextPrivate; + + public: + explicit OsxInputMethodContext(OsxWindow* window); + + CRU_DELETE_COPY(OsxInputMethodContext) + CRU_DELETE_MOVE(OsxInputMethodContext) + + ~OsxInputMethodContext() override; + + public: + bool ShouldManuallyDrawCompositionText() override; + + void EnableIME() override; + + void DisableIME() override; + + void CompleteComposition() override; + + void CancelComposition() override; + + CompositionText GetCompositionText() override; + + void SetCandidateWindowPosition(const Point& point) override; + + IEvent* CompositionStartEvent() override; + + IEvent* CompositionEndEvent() override; + + IEvent* CompositionEvent() override; + + IEvent* TextEvent() override; + + private: + std::unique_ptr p_; +}; +} // namespace cru::platform::gui::osx diff --git a/include/cru/osx/gui/Window.hpp b/include/cru/osx/gui/Window.hpp index 710246bc..24ebabca 100644 --- a/include/cru/osx/gui/Window.hpp +++ b/include/cru/osx/gui/Window.hpp @@ -17,7 +17,6 @@ class OsxInputMethodContext; class OsxWindow : public OsxGuiResource, public INativeWindow { friend details::OsxWindowPrivate; - friend OsxInputMethodContext; friend details::OsxInputMethodContextPrivate; public: @@ -96,43 +95,4 @@ class OsxWindow : public OsxGuiResource, public INativeWindow { Event key_down_event_; Event key_up_event_; }; - -class OsxInputMethodContext : public OsxGuiResource, - public IInputMethodContext { - friend details::OsxInputMethodContextPrivate; - - public: - explicit OsxInputMethodContext(OsxWindow* window); - - CRU_DELETE_COPY(OsxInputMethodContext) - CRU_DELETE_MOVE(OsxInputMethodContext) - - ~OsxInputMethodContext() override; - - public: - bool ShouldManuallyDrawCompositionText() override; - - void EnableIME() override; - - void DisableIME() override; - - void CompleteComposition() override; - - void CancelComposition() override; - - CompositionText GetCompositionText() override; - - void SetCandidateWindowPosition(const Point& point) override; - - IEvent* CompositionStartEvent() override; - - IEvent* CompositionEndEvent() override; - - IEvent* CompositionEvent() override; - - IEvent* TextEvent() override; - - private: - std::unique_ptr p_; -}; } // namespace cru::platform::gui::osx -- cgit v1.2.3