mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
[cardlib] Install a button release callback
[spider] Use the button release callback instead of button click callbacks See issue #6125 for more details. svn path=/trunk/; revision=51416
This commit is contained in:
@@ -294,8 +294,7 @@ void CreateSpider()
|
||||
pDeck->SetPlacement(CS_XJUST_RIGHT, CS_YJUST_BOTTOM, - X_BORDER, - Y_BORDER);
|
||||
pDeck->SetDragRule(CS_DRAG_NONE, 0);
|
||||
pDeck->SetDropRule(CS_DROP_NONE, 0);
|
||||
pDeck->SetClickProc(DeckClickProc);
|
||||
pDeck->SetDblClickProc(DeckClickProc);
|
||||
pDeck->SetClickReleaseProc(DeckClickProc);
|
||||
|
||||
/* Create the row stacks */
|
||||
for (i = 0; i < NUM_STACKS; i++)
|
||||
|
||||
+6
@@ -46,6 +46,7 @@ CardRegion::CardRegion(CardWindow &parent, int Id, bool visible, int x, int y, i
|
||||
AddCallback = 0;
|
||||
RemoveCallback = 0;
|
||||
ClickCallback = 0;
|
||||
ClickReleaseCallback = 0;
|
||||
DblClickCallback = 0;
|
||||
|
||||
uDragRule = CS_DRAG_ALL;
|
||||
@@ -187,6 +188,11 @@ void CardRegion::SetClickProc(pClickProc proc)
|
||||
ClickCallback = proc;
|
||||
}
|
||||
|
||||
void CardRegion::SetClickReleaseProc(pClickProc proc)
|
||||
{
|
||||
ClickReleaseCallback = proc;
|
||||
}
|
||||
|
||||
void CardRegion::SetDblClickProc(pClickProc proc)
|
||||
{
|
||||
DblClickCallback = proc;
|
||||
|
||||
+3
@@ -40,6 +40,7 @@ public:
|
||||
bool SetDropRule(UINT uDropType, pCanDropProc proc = 0);
|
||||
|
||||
void SetClickProc (pClickProc proc);
|
||||
void SetClickReleaseProc (pClickProc proc);
|
||||
void SetDblClickProc (pClickProc proc);
|
||||
|
||||
void SetAddCardProc (pAddProc proc);
|
||||
@@ -132,6 +133,7 @@ private:
|
||||
bool OnLButtonDblClk(int x, int y);
|
||||
bool OnMouseMove(int x, int y);
|
||||
bool OnLButtonUp(int x, int y);
|
||||
void ClickRelease(int x, int y);
|
||||
|
||||
|
||||
//
|
||||
@@ -204,6 +206,7 @@ private:
|
||||
pCanDragProc CanDragCallback;
|
||||
pCanDropProc CanDropCallback;
|
||||
pClickProc ClickCallback;
|
||||
pClickProc ClickReleaseCallback;
|
||||
pClickProc DblClickCallback;
|
||||
pAddProc AddCallback;
|
||||
pRemoveProc RemoveCallback;
|
||||
|
||||
@@ -279,6 +279,14 @@ bool CardRegion::OnLButtonDown(int x, int y)
|
||||
return false;
|
||||
}
|
||||
|
||||
void CardRegion::ClickRelease(int x, int y)
|
||||
{
|
||||
iNumDragCards = GetNumDragCards(x, y);
|
||||
|
||||
if (ClickReleaseCallback)
|
||||
ClickReleaseCallback(*this, iNumDragCards);
|
||||
}
|
||||
|
||||
bool CardRegion::OnLButtonUp(int x, int y)
|
||||
{
|
||||
CardRegion *pDestStack = 0;
|
||||
|
||||
+6
@@ -501,6 +501,12 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((stackptr = CardRegionFromPoint(x, y)) != 0)
|
||||
{
|
||||
stackptr->ClickRelease(x, y);
|
||||
stackptr = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
|
||||
Reference in New Issue
Block a user