#pragma once #include enum class WSStandardCursor { None = 0, Arrow, IBeam, ResizeHorizontal, ResizeVertical, ResizeDiagonalTLBR, ResizeDiagonalBLTR, Hand, Drag, }; class WSCursor : public RefCounted { public: static NonnullRefPtr create(NonnullRefPtr&&, const Point& hotspot); static NonnullRefPtr create(NonnullRefPtr&&); static RefPtr 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(NonnullRefPtr&&, const Point&); RefPtr m_bitmap; Point m_hotspot; };