mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Framework alteration: we now support a `game_ui' structure in
addition to the `game_state'. The new structure is intended to contain ephemeral data pertaining to the game's user interface rather than the actual game: things stored in the UI structure are not restored in an Undo, for example. make_move() is passed the UI to modify as it wishes; it is now allowed to return the _same_ game_state it was passed, to indicate that although no move has been made there has been a UI operation requiring a redraw. [originally from svn r4207]
This commit is contained in:
45
windows.c
45
windows.c
@ -939,7 +939,50 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
|
||||
button = LEFT_BUTTON;
|
||||
else
|
||||
button = RIGHT_BUTTON;
|
||||
|
||||
|
||||
if (!midend_process_key(fe->me, LOWORD(lParam),
|
||||
HIWORD(lParam), button))
|
||||
PostQuitMessage(0);
|
||||
|
||||
SetCapture(hwnd);
|
||||
}
|
||||
break;
|
||||
case WM_LBUTTONUP:
|
||||
case WM_RBUTTONUP:
|
||||
case WM_MBUTTONUP:
|
||||
{
|
||||
int button;
|
||||
|
||||
/*
|
||||
* Shift-clicks count as middle-clicks, since otherwise
|
||||
* two-button Windows users won't have any kind of
|
||||
* middle click to use.
|
||||
*/
|
||||
if (message == WM_MBUTTONUP || (wParam & MK_SHIFT))
|
||||
button = MIDDLE_RELEASE;
|
||||
else if (message == WM_LBUTTONUP)
|
||||
button = LEFT_RELEASE;
|
||||
else
|
||||
button = RIGHT_RELEASE;
|
||||
|
||||
if (!midend_process_key(fe->me, LOWORD(lParam),
|
||||
HIWORD(lParam), button))
|
||||
PostQuitMessage(0);
|
||||
|
||||
ReleaseCapture();
|
||||
}
|
||||
break;
|
||||
case WM_MOUSEMOVE:
|
||||
{
|
||||
int button;
|
||||
|
||||
if (wParam & (MK_MBUTTON | MK_SHIFT))
|
||||
button = MIDDLE_DRAG;
|
||||
else if (wParam & MK_LBUTTON)
|
||||
button = LEFT_DRAG;
|
||||
else
|
||||
button = RIGHT_DRAG;
|
||||
|
||||
if (!midend_process_key(fe->me, LOWORD(lParam),
|
||||
HIWORD(lParam), button))
|
||||
PostQuitMessage(0);
|
||||
|
Reference in New Issue
Block a user