diff options
author | crupest <crupest@outlook.com> | 2021-10-15 20:35:17 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-10-15 20:35:17 +0800 |
commit | ed368423531b24e8735db0afe38c7486145caa56 (patch) | |
tree | 2a88be9ce9062ac3c7e5c4ceb496d687102815ec /include/cru/osx | |
parent | d3e2a751353e6c5b0e4d7c0a2af1cdbc09d3ea95 (diff) | |
download | cru-ed368423531b24e8735db0afe38c7486145caa56.tar.gz cru-ed368423531b24e8735db0afe38c7486145caa56.tar.bz2 cru-ed368423531b24e8735db0afe38c7486145caa56.zip |
...
Diffstat (limited to 'include/cru/osx')
-rw-r--r-- | include/cru/osx/gui/Cursor.hpp | 43 | ||||
-rw-r--r-- | include/cru/osx/gui/Window.hpp | 2 |
2 files changed, 44 insertions, 1 deletions
diff --git a/include/cru/osx/gui/Cursor.hpp b/include/cru/osx/gui/Cursor.hpp new file mode 100644 index 00000000..497f5853 --- /dev/null +++ b/include/cru/osx/gui/Cursor.hpp @@ -0,0 +1,43 @@ +#pragma once +#include "Resource.hpp" +#include "cru/platform/gui/Cursor.hpp" + +#include <memory> + +namespace cru::platform::gui::osx { +namespace details { +class OsxWindowPrivate; +class OsxCursorPrivate; +class OsxCursorManagerPrivate; +} // namespace details + +class OsxCursor : public OsxGuiResource, public virtual ICursor { + friend class OsxWindow; + friend class details::OsxWindowPrivate; + + public: + OsxCursor(IUiApplication* ui_application, SystemCursorType cursor_type); + CRU_DELETE_COPY(OsxCursor) + CRU_DELETE_MOVE(OsxCursor) + + ~OsxCursor() override; + + private: + std::unique_ptr<details::OsxCursorPrivate> p_; +}; + +class OsxCursorManager : public OsxGuiResource, public virtual ICursorManager { + public: + explicit OsxCursorManager(IUiApplication* ui_application); + + CRU_DELETE_COPY(OsxCursorManager) + CRU_DELETE_MOVE(OsxCursorManager) + + ~OsxCursorManager() override; + + std::shared_ptr<ICursor> GetSystemCursor(SystemCursorType type) override; + + private: + std::unique_ptr<details::OsxCursorManagerPrivate> p_; +}; +} // namespace cru::platform::gui::osx diff --git a/include/cru/osx/gui/Window.hpp b/include/cru/osx/gui/Window.hpp index 56ae83e6..710246bc 100644 --- a/include/cru/osx/gui/Window.hpp +++ b/include/cru/osx/gui/Window.hpp @@ -133,6 +133,6 @@ class OsxInputMethodContext : public OsxGuiResource, IEvent<StringView>* TextEvent() override; private: - details::OsxInputMethodContextPrivate* p_; + std::unique_ptr<details::OsxInputMethodContextPrivate> p_; }; } // namespace cru::platform::gui::osx |