mirror of
https://github.com/reactos/reactos.git
synced 2024-11-01 12:26:32 +00:00
40 lines
771 B
C++
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 */
|