Something went wrong. Try again.
Reactos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667//// CardLib - DropZone class//// Freeware// Copyright J Brown 2001//
#include "cardlib.h"
bool CardWindow::RegisterDropZone(int id, RECT *rect, pDropZoneProc proc){ if(nNumDropZones == MAXDROPZONES) return false;
DropZone *dz = new DropZone(id, rect, proc);
dropzone[nNumDropZones++] = dz;
return false;}
DropZone *CardWindow::GetDropZoneFromRect(RECT *rect){ for(int i = 0; i < nNumDropZones; i++) { RECT inter; RECT zone;
//if any part of the drag rectangle falls within a drop zone, //let that take priority over any other card stack. dropzone[i]->GetZone(&zone);
if(IntersectRect(&inter, rect, &zone)) { //see if the callback wants us to drop a card on //a particular stack return dropzone[i]; } }
return 0;}
bool CardWindow::DeleteDropZone(int id){ for(int i = 0; i < nNumDropZones; i++) { if(dropzone[i]->id == id) { DropZone *dz = dropzone[i];
//shift any after this one backwards for(int j = i; j < nNumDropZones - 1; j++) { dropzone[j] = dropzone[j + 1]; }
delete dz; nNumDropZones--; return true; } }
return false;}