53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
#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__
|