reactos/sdk/lib/3rdparty/cardlib/dropzone.h

40 lines
771 B
C++

#ifndef DROPZONE_INCLUDED
#define DROPZONE_INCLUDED
//
// define a drop-zone, which can be used to over-ride
// drop-behaviour for any card stacks which fall under it
//
class CardStack;
class DropZone
{
friend class CardWindow;
DropZone(int Id, RECT *rect, pDropZoneProc proc) :
id(Id), DropZoneCallback(proc) { CopyRect(&zone, rect); }
public:
void SetZone(RECT *rect) { CopyRect(&zone, rect); }
void GetZone(RECT *rect) { CopyRect(rect, &zone); }
void SetCallback(pDropZoneProc callback) { DropZoneCallback = callback; }
int DropCards(CardStack &cardstack)
{
if(DropZoneCallback)
return DropZoneCallback(id, cardstack);
else
return -1;
}
private:
int id;
RECT zone;
pDropZoneProc DropZoneCallback;
};
#endif /* DROPZONE_INCLUDED */