Left/right scroll wheel support for SDL and Win32. Still not tested.

This commit is contained in:
William McBrine
2011-04-23 06:50:03 +00:00
parent 7a223c1d49
commit ec33788e31
2 changed files with 30 additions and 5 deletions

View File

@@ -2,7 +2,7 @@
#include "pdcsdl.h"
RCSID("$Id: pdckbd.c,v 1.20 2008/07/14 04:24:52 wmcbrine Exp $")
RCSID("$Id: pdckbd.c,v 1.21 2011/04/23 06:50:02 wmcbrine Exp $")
/*man-start**************************************************************
@@ -282,12 +282,24 @@ static int _process_mouse_event(void)
/* handle scroll wheel */
if ((btn == 4 || btn == 5) && action == BUTTON_RELEASED)
if ((btn >= 4 && btn <= 7) && action == BUTTON_RELEASED)
{
pdc_mouse_status.x = pdc_mouse_status.y = -1;
pdc_mouse_status.changes = (btn == 5) ?
PDC_MOUSE_WHEEL_DOWN : PDC_MOUSE_WHEEL_UP;
switch (btn)
{
case 4:
pdc_mouse_status.changes = PDC_MOUSE_WHEEL_UP;
break;
case 5:
pdc_mouse_status.changes = PDC_MOUSE_WHEEL_DOWN;
break;
case 6:
pdc_mouse_status.changes = PDC_MOUSE_WHEEL_LEFT;
break;
case 7:
pdc_mouse_status.changes = PDC_MOUSE_WHEEL_RIGHT;
}
return KEY_MOUSE;
}

View File

@@ -2,7 +2,7 @@
#include "pdcwin.h"
RCSID("$Id: pdckbd.c,v 1.115 2008/07/20 20:12:04 wmcbrine Exp $")
RCSID("$Id: pdckbd.c,v 1.116 2011/04/23 06:50:03 wmcbrine Exp $")
/*man-start**************************************************************
@@ -486,6 +486,19 @@ static int _process_mouse_event(void)
return KEY_MOUSE;
}
if (MEV.dwEventFlags == 8)
{
pdc_mouse_status.changes = (MEV.dwButtonState & 0xFF000000) ?
PDC_MOUSE_WHEEL_RIGHT : PDC_MOUSE_WHEEL_LEFT;
pdc_mouse_status.x = -1;
pdc_mouse_status.y = -1;
memset(&old_mouse_status, 0, sizeof(old_mouse_status));
return KEY_MOUSE;
}
action = (MEV.dwEventFlags == 2) ? BUTTON_DOUBLE_CLICKED :
((MEV.dwEventFlags == 1) ? BUTTON_MOVED : BUTTON_PRESSED);