diff options
author | crupest <crupest@outlook.com> | 2022-05-15 14:08:06 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-05-15 14:08:06 +0800 |
commit | 8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6 (patch) | |
tree | 77e41cc14264060517c0f7ed95837012afb8342e /include/cru/platform/gui/osx/InputMethod.h | |
parent | 9e0c9d3499bc50c3534b4dc500d8b5d0b5f22752 (diff) | |
download | cru-8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6.tar.gz cru-8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6.tar.bz2 cru-8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6.zip |
...
Diffstat (limited to 'include/cru/platform/gui/osx/InputMethod.h')
-rw-r--r-- | include/cru/platform/gui/osx/InputMethod.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/cru/platform/gui/osx/InputMethod.h b/include/cru/platform/gui/osx/InputMethod.h new file mode 100644 index 00000000..cbfdae6c --- /dev/null +++ b/include/cru/platform/gui/osx/InputMethod.h @@ -0,0 +1,56 @@ +#pragma once +#include "Resource.h" + +#include "cru/platform/gui/InputMethod.h" + +namespace cru::platform::gui::osx { +class OsxWindow; + +namespace details { +class OsxWindowPrivate; +class OsxInputMethodContextPrivate; +} // namespace details + +class OsxInputMethodContext : public OsxGuiResource, + public virtual IInputMethodContext { + friend OsxWindow; + friend details::OsxWindowPrivate; + 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<std::nullptr_t>* CompositionStartEvent() override; + + IEvent<std::nullptr_t>* CompositionEndEvent() override; + + IEvent<std::nullptr_t>* CompositionEvent() override; + + IEvent<StringView>* TextEvent() override; + + bool IsEnabled(); + + private: + std::unique_ptr<details::OsxInputMethodContextPrivate> p_; +}; +} // namespace cru::platform::gui::osx |