| 3651 |
BOOL MouseReport(int Event, int Button, int Xpos, int Ypos) { |
BOOL MouseReport(int Event, int Button, int Xpos, int Ypos) { |
| 3652 |
char Report[10]; |
char Report[10]; |
| 3653 |
int x, y, len, modifier; |
int x, y, len, modifier; |
| 3654 |
|
static int LastX = -1, LastY = -1, LastButton = 3; |
| 3655 |
|
|
| 3656 |
len = 0; |
len = 0; |
| 3657 |
|
|
| 3696 |
case IdMouseTrackBtnEvent: |
case IdMouseTrackBtnEvent: |
| 3697 |
case IdMouseTrackAllEvent: |
case IdMouseTrackAllEvent: |
| 3698 |
len = MakeMouseReportStr(Report, sizeof Report, Button | modifier, x, y); |
len = MakeMouseReportStr(Report, sizeof Report, Button | modifier, x, y); |
| 3699 |
|
LastButton = Button; |
| 3700 |
break; |
break; |
| 3701 |
|
|
| 3702 |
case IdMouseTrackDECELR: /* not supported yet */ |
case IdMouseTrackDECELR: /* not supported yet */ |
| 3709 |
case IdMouseEventBtnUp: |
case IdMouseEventBtnUp: |
| 3710 |
switch (MouseReportMode) { |
switch (MouseReportMode) { |
| 3711 |
case IdMouseTrackVT200: |
case IdMouseTrackVT200: |
|
len = MakeMouseReportStr(Report, sizeof Report, 3 | modifier, x, y); |
|
|
break; |
|
|
|
|
| 3712 |
case IdMouseTrackBtnEvent: |
case IdMouseTrackBtnEvent: |
| 3713 |
case IdMouseTrackAllEvent: |
case IdMouseTrackAllEvent: |
|
MouseReport(IdMouseEventMove, Button, Xpos, Ypos); |
|
| 3714 |
len = MakeMouseReportStr(Report, sizeof Report, 3 | modifier, x, y); |
len = MakeMouseReportStr(Report, sizeof Report, 3 | modifier, x, y); |
| 3715 |
|
LastButton = 3; // Release |
| 3716 |
break; |
break; |
| 3717 |
|
|
| 3718 |
case IdMouseTrackX10: /* nothing to do */ |
case IdMouseTrackX10: /* nothing to do */ |
| 3725 |
|
|
| 3726 |
case IdMouseEventMove: |
case IdMouseEventMove: |
| 3727 |
switch (MouseReportMode) { |
switch (MouseReportMode) { |
| 3728 |
case IdMouseTrackBtnEvent: /* not supported yet */ |
case IdMouseTrackBtnEvent: |
| 3729 |
case IdMouseTrackAllEvent: /* not supported yet */ |
if (LastButton == 3) { |
| 3730 |
len = MakeMouseReportStr(Report, sizeof Report, Button | modifier | 32, x, y); |
return FALSE; |
| 3731 |
|
} |
| 3732 |
|
/* FALLTHROUGH */ |
| 3733 |
|
case IdMouseTrackAllEvent: |
| 3734 |
|
if (x == LastX && y == LastY) { |
| 3735 |
|
return FALSE; |
| 3736 |
|
} |
| 3737 |
|
len = MakeMouseReportStr(Report, sizeof Report, LastButton | modifier | ((LastButton==3)?0:32), x, y); |
| 3738 |
|
LastX = x; |
| 3739 |
|
LastY = y; |
| 3740 |
break; |
break; |
| 3741 |
|
|
| 3742 |
case IdMouseTrackDECELR: /* not supported yet */ |
case IdMouseTrackDECELR: /* not supported yet */ |