From ed368423531b24e8735db0afe38c7486145caa56 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 15 Oct 2021 20:35:17 +0800 Subject: ... --- include/cru/osx/gui/Cursor.hpp | 43 ++++++++++++++++++++++++++++++++++++++++++ include/cru/osx/gui/Window.hpp | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 include/cru/osx/gui/Cursor.hpp (limited to 'include/cru/osx') 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 + +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 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 GetSystemCursor(SystemCursorType type) 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 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* TextEvent() override; private: - details::OsxInputMethodContextPrivate* p_; + std::unique_ptr p_; }; } // namespace cru::platform::gui::osx -- cgit v1.2.3