#pragma once #include enum class WSStandardCursor { None = 0, Arrow, IBeam, ResizeHorizontal, ResizeVertical, ResizeDiagonalTLBR, ResizeDiagonalBLTR, }; class WSCursor : public Retainable { public: static Retained create(Retained&&, const Point& hotspot); static Retained create(Retained&&); static RetainPtr create(WSStandardCursor); ~WSCursor(); Point hotspot() const { return m_hotspot; } const GraphicsBitmap& bitmap() const { return *m_bitmap; } Rect rect() const { return m_bitmap->rect(); } Size size() const { return m_bitmap->size(); } private: WSCursor(Retained&&, const Point&); RetainPtr m_bitmap; Point m_hotspot; };