#ifndef __TRACKER_H__ #define __TRACKER_H__ #include "sprite.h" extern HCURSOR HCursorFromTrackerState( int m ); class CTracker : public CSprite { public: enum STATE { // WARNING - mapTrackerStateToPHCursor nil, // (in tracker.cpp) is predrag, // dependant on the moving, // ordering of this enum! resizingTop, resizingLeft, resizingRight, resizingBottom, resizingTopLeft, resizingTopRight, resizingBottomLeft, resizingBottomRight, }; enum { HANDLE_SIZE = 3 }; // size of tracker resize handles enum EDGES { none = 0, left = 1, top = 2, right = 4, bottom = 8, all = 15 }; static void DrawBorder ( CDC* pDC, const CRect& rect, EDGES edges = all ); static void DrawHandles( CDC* pDC, const CRect& rect, EDGES edges ); static STATE HitTest(const CRect& rect, CPoint pt, STATE defaultState ); static void DrawBorderRgn ( CDC* pdc, const CRect& trackerRect, CRgn *pcRgnPoly ); static void DrawHandlesRgn( CDC* pDC, const CRect& rect, EDGES edges, CRgn *pcRgnPoly ); static STATE HitTestRgn(const CRect& rect, CPoint pt, STATE defaultState, CRgn *pcRgnPoly ); static void CleanUpTracker(); }; #endif // __TRACKER_H__