mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
40 lines
788 B
C
40 lines
788 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
|