#pragma once #include "Base.h" #include #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); ~OsxCursor() override; private: std::unique_ptr p_; }; class OsxCursorManager : public OsxGuiResource, public virtual ICursorManager { public: explicit OsxCursorManager(IUiApplication* ui_application); ~OsxCursorManager() override; std::shared_ptr GetSystemCursor(SystemCursorType type) override; private: std::unique_ptr p_; }; } // namespace cru::platform::gui::osx