- Implement the mouse speed and acceleration settings.

- Update mouse option settings only if they have changed.

svn path=/trunk/; revision=26505
This commit is contained in:
Eric Kohl 2007-04-25 15:22:44 +00:00
parent a887f1c7fa
commit d11c32fcc8
15 changed files with 220 additions and 173 deletions

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Pohyb", -1, 5, 5, 230, 60 GROUPBOX "Pohyb", -1, 5, 5, 230, 60
LTEXT "&Vyberte rychlost ukazatele:", -1, 60, 15, 110, 10 LTEXT "&Vyberte rychlost ukazatele:", -1, 60, 15, 110, 10
LTEXT "Malá", -1, 60, 30, 20, 10 LTEXT "Malá", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Velká", -1, 170, 30, 20, 10 LTEXT "Velká", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Zvýšit pøesnost ukazatele.", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Zvýšit pøesnost ukazatele.", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Pøichytit", -1, 5, 65, 230, 40 GROUPBOX "Pøichytit", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -99,15 +99,15 @@ END
IDD_PAGE_OPTION DIALOGEX 0, 0, 246, 228 IDD_PAGE_OPTION DIALOGEX 0, 0, 246, 228
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_CAPTION STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_CAPTION
CAPTION "Zeiger Optionen" CAPTION "Zeigeroptionen"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Bewegung", -1, 5, 5, 230, 60 GROUPBOX "Bewegung", -1, 5, 5, 230, 60
LTEXT "&Zeigergeschwindigkeit auswählen:", -1, 60, 15, 110, 10 LTEXT "&Zeigergeschwindigkeit auswählen:", -1, 60, 15, 110, 10
LTEXT "Langsam", -1, 60, 30, 29, 10 LTEXT "Langsam", -1, 60, 30, 29, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Schnell", -1, 170, 30, 23, 10 LTEXT "Schnell", -1, 170, 30, 23, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "Z&eigerbeschleunigung verbessern", IDC_CHECK_POINTER_PRECISION, 60, 50, 121, 10 CHECKBOX "Z&eigerbeschleunigung verbessern", IDC_CHECK_POINTER_PRECISION, 60, 50, 121, 10
GROUPBOX "Zur Standardschaltfläche springen", -1, 5, 65, 230, 40 GROUPBOX "Zur Standardschaltfläche springen", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Motion", -1, 5, 5, 230, 60 GROUPBOX "Motion", -1, 5, 5, 230, 60
LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10
LTEXT "Slow", -1, 60, 30, 20, 10 LTEXT "Slow", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Fast", -1, 170, 30, 20, 10 LTEXT "Fast", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Snap To", -1, 5, 65, 230, 40 GROUPBOX "Snap To", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Motion", -1, 5, 5, 230, 60 GROUPBOX "Motion", -1, 5, 5, 230, 60
LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10
LTEXT "Slow", -1, 60, 30, 20, 10 LTEXT "Slow", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Fast", -1, 170, 30, 20, 10 LTEXT "Fast", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Snap To", -1, 5, 65, 230, 40 GROUPBOX "Snap To", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Mouvement", -1, 5, 5, 230, 60 GROUPBOX "Mouvement", -1, 5, 5, 230, 60
LTEXT "Séle&ctionner une vitesse de curseur :", -1, 40, 15, 120, 10 LTEXT "Séle&ctionner une vitesse de curseur :", -1, 40, 15, 120, 10
LTEXT "Lent", -1, 60, 30, 20, 10 LTEXT "Lent", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Rapide", -1, 170, 30, 30, 10 LTEXT "Rapide", -1, 170, 30, 30, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Augmenter la précision du pointeur", IDC_CHECK_POINTER_PRECISION, 40, 50, 130, 10 CHECKBOX "&Augmenter la précision du pointeur", IDC_CHECK_POINTER_PRECISION, 40, 50, 130, 10
GROUPBOX "Accrocher", -1, 5, 65, 230, 40 GROUPBOX "Accrocher", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 40, 80, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 40, 80, 10, 10

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Motion", -1, 5, 5, 230, 60 GROUPBOX "Motion", -1, 5, 5, 230, 60
LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10
LTEXT "Slow", -1, 60, 30, 20, 10 LTEXT "Slow", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Fast", -1, 170, 30, 20, 10 LTEXT "Fast", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Snap To", -1, 5, 65, 230, 40 GROUPBOX "Snap To", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Gerakan", -1, 5, 5, 230, 60 GROUPBOX "Gerakan", -1, 5, 5, 230, 60
LTEXT "Pilih ke&cepatan pointer:", -1, 60, 15, 110, 10 LTEXT "Pilih ke&cepatan pointer:", -1, 60, 15, 110, 10
LTEXT "Lambat", -1, 60, 30, 20, 10 LTEXT "Lambat", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Cepat", -1, 170, 30, 20, 10 LTEXT "Cepat", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Naikkan ketepatan pointer", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Naikkan ketepatan pointer", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Menempel Ke", -1, 5, 65, 230, 40 GROUPBOX "Menempel Ke", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -106,9 +106,9 @@ BEGIN
GROUPBOX "Motion", -1, 5, 5, 230, 60 GROUPBOX "Motion", -1, 5, 5, 230, 60
LTEXT "Scegli una velocità per il puntatore:", -1, 60, 15, 110, 10 LTEXT "Scegli una velocità per il puntatore:", -1, 60, 15, 110, 10
LTEXT "Lento", -1, 60, 30, 20, 10 LTEXT "Lento", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Veloce", -1, 170, 30, 20, 10 LTEXT "Veloce", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Aumenta la precisione del puntatore", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Aumenta la precisione del puntatore", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Salta a", -1, 5, 65, 230, 40 GROUPBOX "Salta a", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Motion", -1, 5, 5, 230, 60 GROUPBOX "Motion", -1, 5, 5, 230, 60
LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10
LTEXT "Slow", -1, 60, 30, 20, 10 LTEXT "Slow", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Fast", -1, 170, 30, 20, 10 LTEXT "Fast", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Snap To", -1, 5, 65, 230, 40 GROUPBOX "Snap To", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -103,9 +103,9 @@ BEGIN
GROUPBOX "Motion", -1, 5, 5, 230, 60 GROUPBOX "Motion", -1, 5, 5, 230, 60
LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10
LTEXT "Slow", -1, 60, 30, 20, 10 LTEXT "Slow", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Fast", -1, 170, 30, 20, 10 LTEXT "Fast", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Snap To", -1, 5, 65, 230, 40 GROUPBOX "Snap To", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -110,9 +110,9 @@ BEGIN
GROUPBOX "Ruch", -1, 5, 5, 230, 60 GROUPBOX "Ruch", -1, 5, 5, 230, 60
LTEXT "&Wybierz szybkość wskaźnika:", -1, 60, 15, 110, 10 LTEXT "&Wybierz szybkość wskaźnika:", -1, 60, 15, 110, 10
LTEXT "Wolno", -1, 60, 30, 20, 10 LTEXT "Wolno", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Szybko", -1, 170, 30, 20, 10 LTEXT "Szybko", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "Zwiększ pr&ecyzję wskaźnika", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "Zwiększ pr&ecyzję wskaźnika", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Przyciąganie do", -1, 5, 65, 230, 40 GROUPBOX "Przyciąganie do", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -104,9 +104,9 @@ BEGIN
GROUPBOX "Motion", -1, 5, 5, 230, 60 GROUPBOX "Motion", -1, 5, 5, 230, 60
LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 10
LTEXT "Slow", -1, 60, 30, 20, 10 LTEXT "Slow", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Fast", -1, 170, 30, 20, 10 LTEXT "Fast", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&Enhance pointer precision", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Snap To", -1, 5, 65, 230, 40 GROUPBOX "Snap To", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -112,9 +112,9 @@ BEGIN
GROUPBOX "Ïåðåì³ùåííÿ", -1, 5, 5, 230, 60 GROUPBOX "Ïåðåì³ùåííÿ", -1, 5, 5, 230, 60
LTEXT "&Âèáåð³òü øâèäê³ñòü ðóõó âêàç³âíèêà:", -1, 60, 15, 110, 10 LTEXT "&Âèáåð³òü øâèäê³ñòü ðóõó âêàç³âíèêà:", -1, 60, 15, 110, 10
LTEXT "ꏾ֌", -1, 60, 30, 20, 10 LTEXT "ꏾ֌", -1, 60, 30, 20, 10
CONTROL "",IDC_SLIDER_MOUSE_SENSITIVITY, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 CONTROL "",IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17
LTEXT "Âèùå", -1, 170, 30, 20, 10 LTEXT "Âèùå", -1, 170, 30, 20, 10
ICON -1, IDC_ICON_MOUSE_SENSITIVITY, 15, 15, 15, 15 ICON -1, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15
CHECKBOX "&ϳäâèùåíà òî÷í³ñòü âêàç³âíèêà", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 CHECKBOX "&ϳäâèùåíà òî÷í³ñòü âêàç³âíèêà", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10
GROUPBOX "Ïðèâ'ÿçêà äî", -1, 5, 65, 230, 40 GROUPBOX "Ïðèâ'ÿçêà äî", -1, 5, 65, 230, 40
CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10

View file

@ -47,7 +47,8 @@
#define DEFAULT_DOUBLE_CLICK_SPEED 500 #define DEFAULT_DOUBLE_CLICK_SPEED 500
#define DEFAULT_CLICK_LOCK_TIME 2200 #define DEFAULT_CLICK_LOCK_TIME 2200
#define DEFAULT_MOUSE_SENSITIVITY 16 #define DEFAULT_MOUSE_SPEED 10
#define DEFAULT_MOUSE_ACCELERATION 1
#define DEFAULT_MOUSE_THRESHOLD1 6 #define DEFAULT_MOUSE_THRESHOLD1 6
#define DEFAULT_MOUSE_THRESHOLD2 10 #define DEFAULT_MOUSE_THRESHOLD2 10
#define MIN_DOUBLE_CLICK_SPEED 200 #define MIN_DOUBLE_CLICK_SPEED 200
@ -83,19 +84,32 @@ typedef struct _POINTER_DATA
} POINTER_DATA, *PPOINTER_DATA; } POINTER_DATA, *PPOINTER_DATA;
typedef struct _MOUSE_ACCEL
{
INT nThreshold1;
INT nThreshold2;
INT nAcceleration;
} MOUSE_ACCEL;
typedef struct _OPTION_DATA typedef struct _OPTION_DATA
{ {
ULONG ulMouseSensitivity; ULONG ulMouseSpeed;
ULONG ulOrigMouseSensitivity; ULONG ulOrigMouseSpeed;
ULONG ulMouseSpeed; // = 1; MOUSE_ACCEL MouseAccel;
ULONG ulMouseThreshold1; // = DEFAULT_MOUSE_THRESHOLD1; MOUSE_ACCEL OrigMouseAccel;
ULONG ulMouseThreshold2; // = DEFAULT_MOUSE_THRESHOLD2;
ULONG ulSnapToDefaultButton; BOOL bSnapToDefaultButton;
ULONG ulMouseTrails; BOOL bOrigSnapToDefaultButton;
ULONG ulShowPointer;
ULONG ulHidePointer; UINT uMouseTrails;
UINT uOrigMouseTrails;
BOOL bMouseVanish;
BOOL bOrigMouseVanish;
BOOL bMouseSonar;
BOOL bOrigMouseSonar;
} OPTION_DATA, *POPTION_DATA; } OPTION_DATA, *POPTION_DATA;
@ -313,7 +327,7 @@ ButtonProc(IN HWND hwndDlg,
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
SendDlgItemMessage(hwndDlg, IDC_IMAGE_SWAP_MOUSE, STM_SETIMAGE, IMAGE_ICON, (LPARAM)pButtonData->hButtonRight); SendDlgItemMessage(hwndDlg, IDC_IMAGE_SWAP_MOUSE, STM_SETIMAGE, IMAGE_ICON, (LPARAM)pButtonData->hButtonRight);
} }
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, pButtonData->g_SwapMouseButtons, NULL, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, pButtonData->g_SwapMouseButtons, NULL, 0);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
@ -329,8 +343,8 @@ ButtonProc(IN HWND hwndDlg,
else if (lResult == BST_UNCHECKED) else if (lResult == BST_UNCHECKED)
{ {
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
EnableWindow(hDlgCtrl, TRUE);
pButtonData->g_ClickLockEnabled = TRUE; pButtonData->g_ClickLockEnabled = TRUE;
EnableWindow(hDlgCtrl, TRUE);
} }
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
@ -354,20 +368,25 @@ ButtonProc(IN HWND hwndDlg,
lppsn = (LPPSHNOTIFY) lParam; lppsn = (LPPSHNOTIFY) lParam;
if (lppsn->hdr.code == PSN_APPLY) if (lppsn->hdr.code == PSN_APPLY)
{ {
if (pButtonData->g_OrigSwapMouseButtons != pButtonData->g_SwapMouseButtons)
{
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, pButtonData->g_OrigSwapMouseButtons, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
pButtonData->g_OrigSwapMouseButtons = pButtonData->g_SwapMouseButtons;
}
#if (WINVER >= 0x0500) #if (WINVER >= 0x0500)
SystemParametersInfo(SPI_SETMOUSECLICKLOCK, pButtonData->g_ClickLockEnabled, NULL, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSECLICKLOCK, pButtonData->g_ClickLockEnabled, NULL, SPIF_SENDCHANGE);
if (pButtonData->g_ClickLockEnabled) if (pButtonData->g_ClickLockEnabled)
SystemParametersInfo(SPI_SETMOUSECLICKLOCKTIME, pButtonData->g_ClickLockTime, NULL, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSECLICKLOCKTIME, pButtonData->g_ClickLockTime, NULL, SPIF_SENDCHANGE);
#endif #endif
SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR);
} }
else if (lppsn->hdr.code == PSN_RESET) else if (lppsn->hdr.code == PSN_RESET)
{ {
/* Reset swap mouse button setting */ /* Reset swap mouse button setting */
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, pButtonData->g_OrigSwapMouseButtons, NULL, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, pButtonData->g_OrigSwapMouseButtons, NULL, 0);
/* Reset double click speed setting */ /* Reset double click speed setting */
// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_OrigDoubleClickSpeed, NULL, SPIF_SENDCHANGE); // SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_OrigDoubleClickSpeed, NULL, 0);
SetDoubleClickTime(pButtonData->g_OrigDoubleClickSpeed); SetDoubleClickTime(pButtonData->g_OrigDoubleClickSpeed);
} }
return TRUE; return TRUE;
@ -386,14 +405,14 @@ ButtonProc(IN HWND hwndDlg,
case TB_ENDTRACK: case TB_ENDTRACK:
lResult = SendDlgItemMessage(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED, TBM_GETPOS, 0, 0); lResult = SendDlgItemMessage(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED, TBM_GETPOS, 0, 0);
pButtonData->g_DoubleClickSpeed = (14 - (INT)lResult) * 50 + 200; pButtonData->g_DoubleClickSpeed = (14 - (INT)lResult) * 50 + 200;
// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_DoubleClickSpeed, NULL, SPIF_SENDCHANGE); // SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_DoubleClickSpeed, NULL, 0);
SetDoubleClickTime(pButtonData->g_DoubleClickSpeed); SetDoubleClickTime(pButtonData->g_DoubleClickSpeed);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
case TB_THUMBTRACK: case TB_THUMBTRACK:
pButtonData->g_DoubleClickSpeed = (14 - (INT)HIWORD(wParam)) * 50 + 200; pButtonData->g_DoubleClickSpeed = (14 - (INT)HIWORD(wParam)) * 50 + 200;
// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_DoubleClickSpeed, NULL, SPIF_SENDCHANGE); // SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_DoubleClickSpeed, NULL, 0);
SetDoubleClickTime(pButtonData->g_DoubleClickSpeed); SetDoubleClickTime(pButtonData->g_DoubleClickSpeed);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
@ -1037,16 +1056,20 @@ PointerProc(IN HWND hwndDlg,
if (lppsn->hdr.code == PSN_APPLY) if (lppsn->hdr.code == PSN_APPLY)
{ {
ApplyCursorScheme(hwndDlg); ApplyCursorScheme(hwndDlg);
#if (WINVER >= 0x0500) //#if (WINVER >= 0x0500)
SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, SPIF_SENDCHANGE); if (pPointerData->bOrigDropShadow != pPointerData->bDropShadow)
#endif {
SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
pPointerData->bOrigDropShadow = pPointerData->bDropShadow;
}
//#endif
return TRUE; return TRUE;
} }
else if (lppsn->hdr.code == PSN_RESET) else if (lppsn->hdr.code == PSN_RESET)
{ {
#if (WINVER >= 0x0500) //#if (WINVER >= 0x0500)
SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bOrigDropShadow, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bOrigDropShadow, 0);
#endif //#endif
} }
break; break;
@ -1134,20 +1157,20 @@ PointerProc(IN HWND hwndDlg,
{ {
pPointerData->bDropShadow = FALSE; pPointerData->bDropShadow = FALSE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
#if (WINVER >= 0x0500) //#if (WINVER >= 0x0500)
SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, SPIF_SENDCHANGE); // SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, 0);
#endif //#endif
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); // PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
} }
else else
{ {
pPointerData->bDropShadow = TRUE; pPointerData->bDropShadow = TRUE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
#if (WINVER >= 0x0500)
SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, SPIF_SENDCHANGE);
#endif
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
} }
//#if (WINVER >= 0x0500)
SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, 0);
//#endif
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
} }
break; break;
@ -1157,52 +1180,15 @@ PointerProc(IN HWND hwndDlg,
} }
static BOOL
InitializeMouse(POPTION_DATA pOptionData)
{
//FIXME
//pointer precision
// SPI_GETMOUSE?
/* Get mouse sensitivity */
if (!SystemParametersInfo(SPI_GETMOUSESPEED, 0, &pOptionData->ulMouseSensitivity, 0))
pOptionData->ulMouseSensitivity = DEFAULT_MOUSE_SENSITIVITY;
pOptionData->ulOrigMouseSensitivity = pOptionData->ulMouseSensitivity;
pOptionData->ulMouseSpeed = 1;
pOptionData->ulMouseThreshold1 = DEFAULT_MOUSE_THRESHOLD1;
pOptionData->ulMouseThreshold2 = DEFAULT_MOUSE_THRESHOLD2;
/* snap to default button */
if (SystemParametersInfo(SPI_GETSNAPTODEFBUTTON, 0, &pOptionData->ulSnapToDefaultButton, 0))
pOptionData->ulSnapToDefaultButton = 0;
/* mouse trails */
if (!SystemParametersInfo(SPI_GETMOUSETRAILS, 0, &pOptionData->ulMouseTrails, 0))
pOptionData->ulMouseTrails = 0;
/* hide pointer while typing */
if (!SystemParametersInfo(SPI_GETMOUSEVANISH, 0, &pOptionData->ulHidePointer, 0))
pOptionData->ulHidePointer = 0;
/* show pointer with Ctrl-Key */
if (!SystemParametersInfo(SPI_GETMOUSESONAR, 0, &pOptionData->ulShowPointer, 0))
pOptionData->ulShowPointer = 0;
return TRUE;
}
static INT_PTR CALLBACK static INT_PTR CALLBACK
OptionProc(IN HWND hwndDlg, OptionProc(IN HWND hwndDlg,
IN UINT uMsg, IN UINT uMsg,
IN WPARAM wParam, IN WPARAM wParam,
IN LPARAM lParam) IN LPARAM lParam)
{ {
POPTION_DATA pOptionData;
HWND hDlgCtrl; HWND hDlgCtrl;
LPPSHNOTIFY lppsn; LPPSHNOTIFY lppsn;
LRESULT lResult;
POPTION_DATA pOptionData;
pOptionData = (POPTION_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); pOptionData = (POPTION_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
@ -1212,20 +1198,54 @@ OptionProc(IN HWND hwndDlg,
pOptionData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(OPTION_DATA)); pOptionData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(OPTION_DATA));
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pOptionData); SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pOptionData);
InitializeMouse(pOptionData); /* Get mouse sensitivity */
if (!SystemParametersInfo(SPI_GETMOUSESPEED, 0, &pOptionData->ulMouseSpeed, 0))
pOptionData->ulMouseSpeed = DEFAULT_MOUSE_SPEED;
pOptionData->ulOrigMouseSpeed = pOptionData->ulMouseSpeed;
/* set mouse sensitivity */
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_MOUSE_SENSITIVITY); if (!SystemParametersInfo(SPI_GETMOUSE, 0, &pOptionData->MouseAccel, 0))
{
pOptionData->MouseAccel.nAcceleration = DEFAULT_MOUSE_ACCELERATION;
pOptionData->MouseAccel.nThreshold1 = DEFAULT_MOUSE_THRESHOLD1;
pOptionData->MouseAccel.nThreshold2 = DEFAULT_MOUSE_THRESHOLD2;
}
pOptionData->OrigMouseAccel.nAcceleration = pOptionData->MouseAccel.nAcceleration;
pOptionData->OrigMouseAccel.nThreshold1 = pOptionData->MouseAccel.nThreshold1;
pOptionData->OrigMouseAccel.nThreshold2 = pOptionData->MouseAccel.nThreshold2;
/* snap to default button */
if (SystemParametersInfo(SPI_GETSNAPTODEFBUTTON, 0, &pOptionData->bSnapToDefaultButton, 0))
pOptionData->bSnapToDefaultButton = FALSE;
pOptionData->bOrigSnapToDefaultButton = pOptionData->bSnapToDefaultButton;
/* mouse trails */
if (!SystemParametersInfo(SPI_GETMOUSETRAILS, 0, &pOptionData->uMouseTrails, 0))
pOptionData->uMouseTrails = 0;
pOptionData->uOrigMouseTrails = pOptionData->uMouseTrails;
/* hide pointer while typing */
if (!SystemParametersInfo(SPI_GETMOUSEVANISH, 0, &pOptionData->bMouseVanish, 0))
pOptionData->bMouseVanish = FALSE;
pOptionData->bOrigMouseVanish = pOptionData->bMouseVanish;
/* show pointer with Ctrl-Key */
if (!SystemParametersInfo(SPI_GETMOUSESONAR, 0, &pOptionData->bMouseSonar, 0))
pOptionData->bMouseSonar = FALSE;
pOptionData->bOrigMouseSonar = pOptionData->bMouseSonar;
/* Set mouse speed */
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_MOUSE_SPEED);
SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 19)); SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 19));
SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pOptionData->ulMouseSensitivity - 1); SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pOptionData->ulMouseSpeed - 1);
if (pOptionData->ulMouseSpeed) if (pOptionData->MouseAccel.nAcceleration)
{ {
hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_POINTER_PRECISION); hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_POINTER_PRECISION);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
if (pOptionData->ulSnapToDefaultButton) if (pOptionData->bSnapToDefaultButton)
{ {
hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_SNAP_TO); hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_SNAP_TO);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
@ -1234,22 +1254,29 @@ OptionProc(IN HWND hwndDlg,
/* set mouse trail */ /* set mouse trail */
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL); hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL);
SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 5)); SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 5));
if (pOptionData->ulMouseTrails < 2) if (pOptionData->uMouseTrails < 2)
{
SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)5);
EnableWindow(hDlgCtrl, FALSE); EnableWindow(hDlgCtrl, FALSE);
}
else else
SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pOptionData->ulMouseTrails - 2); {
SendDlgItemMessage(hwndDlg, IDC_CHECK_POINTER_TRAIL, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pOptionData->uMouseTrails - 2);
}
if (pOptionData->ulShowPointer) if (pOptionData->bMouseVanish)
{
hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_HIDE_POINTER);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
}
if (pOptionData->bMouseSonar)
{ {
hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_SHOW_POINTER); hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_SHOW_POINTER);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
if (pOptionData->ulHidePointer)
{
hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_HIDE_POINTER);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
}
break; break;
case WM_DESTROY: case WM_DESTROY:
@ -1262,74 +1289,80 @@ OptionProc(IN HWND hwndDlg,
case IDC_CHECK_POINTER_PRECISION: case IDC_CHECK_POINTER_PRECISION:
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_PRECISION)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_PRECISION))
{ {
pOptionData->ulMouseSpeed = 0; pOptionData->MouseAccel.nAcceleration = 0;
pOptionData->ulMouseThreshold1 = 0; pOptionData->MouseAccel.nThreshold1 = 0;
pOptionData->ulMouseThreshold2 = 0; pOptionData->MouseAccel.nThreshold2 = 0;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
} }
else else
{ {
pOptionData->ulMouseSpeed = 1; pOptionData->MouseAccel.nAcceleration = 1;
pOptionData->ulMouseThreshold1 = 6; pOptionData->MouseAccel.nThreshold1 = 6;
pOptionData->ulMouseThreshold2 = 10; pOptionData->MouseAccel.nThreshold2 = 10;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
SystemParametersInfo(SPI_SETMOUSE, 0, &pOptionData->MouseAccel, 0);
break; break;
case IDC_CHECK_SNAP_TO: case IDC_CHECK_SNAP_TO:
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SNAP_TO)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SNAP_TO))
{ {
pOptionData->ulSnapToDefaultButton = 0; pOptionData->bSnapToDefaultButton = 0;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
} }
else else
{ {
pOptionData->ulSnapToDefaultButton = 1; pOptionData->bSnapToDefaultButton = 1;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
SystemParametersInfo(SPI_SETSNAPTODEFBUTTON, (UINT)pOptionData->bSnapToDefaultButton, 0, 0);
break; break;
case IDC_CHECK_POINTER_TRAIL: case IDC_CHECK_POINTER_TRAIL:
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL); hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL);
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_TRAIL)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_TRAIL))
{ {
pOptionData->ulMouseTrails = 0;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
EnableWindow(hDlgCtrl, FALSE); EnableWindow(hDlgCtrl, FALSE);
pOptionData->uMouseTrails = 0;
} }
else else
{ {
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
EnableWindow(hDlgCtrl, TRUE); EnableWindow(hDlgCtrl, TRUE);
pOptionData->ulMouseTrails = (ULONG)SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 2; pOptionData->uMouseTrails = (UINT)SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 2;
}
break;
case IDC_CHECK_SHOW_POINTER:
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHOW_POINTER))
{
pOptionData->ulShowPointer = 0;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
}
else
{
pOptionData->ulShowPointer = 1;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, 0);
break; break;
case IDC_CHECK_HIDE_POINTER: case IDC_CHECK_HIDE_POINTER:
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_HIDE_POINTER)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_HIDE_POINTER))
{ {
pOptionData->ulHidePointer = 0; pOptionData->bMouseVanish = FALSE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
} }
else else
{ {
pOptionData->ulHidePointer = 1; pOptionData->bMouseVanish = TRUE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
SystemParametersInfo(SPI_SETMOUSEVANISH, 0, (PVOID)pOptionData->bMouseVanish, 0);
break; break;
case IDC_CHECK_SHOW_POINTER:
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHOW_POINTER))
{
pOptionData->bMouseSonar = FALSE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
}
else
{
pOptionData->bMouseSonar = TRUE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
}
SystemParametersInfo(SPI_SETMOUSESONAR, 0, (PVOID)pOptionData->bMouseSonar, 0);
break;
} }
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
@ -1338,51 +1371,65 @@ OptionProc(IN HWND hwndDlg,
lppsn = (LPPSHNOTIFY)lParam; lppsn = (LPPSHNOTIFY)lParam;
if (lppsn->hdr.code == PSN_APPLY) if (lppsn->hdr.code == PSN_APPLY)
{ {
/* Set mouse speed */
if (pOptionData->ulOrigMouseSpeed != pOptionData->ulMouseSpeed)
{
SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSpeed, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
pOptionData->ulOrigMouseSpeed = pOptionData->ulMouseSpeed;
}
if (pOptionData->OrigMouseAccel.nAcceleration != pOptionData->MouseAccel.nAcceleration)
{
SystemParametersInfo(SPI_SETMOUSE, 0, &pOptionData->MouseAccel, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
pOptionData->OrigMouseAccel.nAcceleration = pOptionData->MouseAccel.nAcceleration;
pOptionData->OrigMouseAccel.nThreshold1 = pOptionData->MouseAccel.nThreshold1;
pOptionData->OrigMouseAccel.nThreshold2 = pOptionData->MouseAccel.nThreshold2;
}
/* set snap to default button */ /* set snap to default button */
SystemParametersInfo(SPI_SETSNAPTODEFBUTTON, pOptionData->ulSnapToDefaultButton, 0, SPIF_SENDCHANGE); if (pOptionData->bOrigSnapToDefaultButton != pOptionData->bSnapToDefaultButton)
#if 0
/* set mouse trails */
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_TRAIL))
{ {
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL); SystemParametersInfo(SPI_SETSNAPTODEFBUTTON, (UINT)pOptionData->bSnapToDefaultButton, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 2; pOptionData->bOrigSnapToDefaultButton = pOptionData->bSnapToDefaultButton;
}
else
{
lResult = 0;
} }
SystemParametersInfo(SPI_SETMOUSETRAILS, (UINT) lResult, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); /* Set mouse trails setting */
#endif if (pOptionData->uOrigMouseTrails != pOptionData->uMouseTrails)
{
//FIXME SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
//pointer precision pOptionData->uOrigMouseTrails = pOptionData->uMouseTrails;
//SPI_SETMOUSE? }
/* calc pos and set mouse sensitivity */
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_MOUSE_SENSITIVITY);
lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 1;
SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSensitivity, SPIF_SENDCHANGE);
/* hide pointer while typing */ /* hide pointer while typing */
SystemParametersInfo(SPI_SETMOUSEVANISH, 0, (PVOID)pOptionData->ulHidePointer, SPIF_SENDCHANGE); if (pOptionData->bOrigMouseVanish != pOptionData->bMouseVanish)
{
SystemParametersInfo(SPI_SETMOUSEVANISH, 0, (PVOID)pOptionData->bMouseVanish, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
pOptionData->bOrigMouseVanish = pOptionData->bMouseVanish;
}
/* show pointer with Ctrl-Key */ /* show pointer with Ctrl-Key */
SystemParametersInfo(SPI_SETMOUSESONAR, 0, (PVOID)pOptionData->ulShowPointer, SPIF_SENDCHANGE); if (pOptionData->bOrigMouseSonar != pOptionData->bMouseSonar)
{
SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR); SystemParametersInfo(SPI_SETMOUSESONAR, 0, (PVOID)pOptionData->bMouseSonar, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
pOptionData->bOrigMouseSonar = pOptionData->bMouseSonar;
}
return TRUE; return TRUE;
} }
else if (lppsn->hdr.code == PSN_RESET) else if (lppsn->hdr.code == PSN_RESET)
{ {
/* Set the original mouse speed */ /* Set the original mouse speed */
SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulOrigMouseSensitivity, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulOrigMouseSpeed, 0);
SystemParametersInfo(SPI_SETMOUSE, 0, &pOptionData->OrigMouseAccel, 0);
SystemParametersInfo(SPI_SETSNAPTODEFBUTTON, (UINT)pOptionData->bOrigSnapToDefaultButton, 0, 0);
SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uOrigMouseTrails, 0, 0);
SystemParametersInfo(SPI_SETMOUSEVANISH, 0, (PVOID)pOptionData->bOrigMouseVanish, 0);
SystemParametersInfo(SPI_SETMOUSESONAR, 0, (PVOID)pOptionData->bOrigMouseSonar, 0);
} }
break; break;
case WM_HSCROLL: case WM_HSCROLL:
if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SLIDER_MOUSE_SENSITIVITY)) if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SLIDER_MOUSE_SPEED))
{ {
switch (LOWORD(wParam)) switch (LOWORD(wParam))
{ {
@ -1393,14 +1440,14 @@ OptionProc(IN HWND hwndDlg,
case TB_TOP: case TB_TOP:
case TB_BOTTOM: case TB_BOTTOM:
case TB_ENDTRACK: case TB_ENDTRACK:
pOptionData->ulMouseSensitivity = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_MOUSE_SENSITIVITY, TBM_GETPOS, 0, 0) + 1; pOptionData->ulMouseSpeed = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_MOUSE_SPEED, TBM_GETPOS, 0, 0) + 1;
SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSensitivity, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSpeed, SPIF_SENDCHANGE);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
#if 0 #if 0
case TB_THUMBTRACK: case TB_THUMBTRACK:
pOptionData->ulMouseSensitivity = (ULONG)HIWORD(wParam) + 1; pOptionData->ulMouseSpeed = (ULONG)HIWORD(wParam) + 1;
SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSensitivity, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSpeed, SPIF_SENDCHANGE);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
#endif #endif
@ -1417,14 +1464,14 @@ OptionProc(IN HWND hwndDlg,
case TB_TOP: case TB_TOP:
case TB_BOTTOM: case TB_BOTTOM:
case TB_ENDTRACK: case TB_ENDTRACK:
pOptionData->ulMouseTrails = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_POINTER_TRAIL, TBM_GETPOS, 0, 0) + 2; pOptionData->uMouseTrails = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_POINTER_TRAIL, TBM_GETPOS, 0, 0) + 2;
SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->ulMouseTrails, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, SPIF_UPDATEINIFILE);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
case TB_THUMBTRACK: case TB_THUMBTRACK:
pOptionData->ulMouseTrails = (ULONG)HIWORD(wParam) + 2; pOptionData->uMouseTrails = (ULONG)HIWORD(wParam) + 2;
SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->ulMouseTrails, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, SPIF_UPDATEINIFILE);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
} }

View file

@ -57,7 +57,7 @@
#define IDC_EDIT_WHEEL_SCROLL_LINES 2005 #define IDC_EDIT_WHEEL_SCROLL_LINES 2005
#define IDC_UPDOWN_WHEEL_SCROLL_LINES 2006 #define IDC_UPDOWN_WHEEL_SCROLL_LINES 2006
#define IDC_RADIO_WHEEL_SCROLL_PAGE 2007 #define IDC_RADIO_WHEEL_SCROLL_PAGE 2007
#define IDC_SLIDER_MOUSE_SENSITIVITY 2008 #define IDC_SLIDER_MOUSE_SPEED 2008
#define IDC_CHECK_SNAP_TO 2009 #define IDC_CHECK_SNAP_TO 2009
#define IDC_CHECK_SHOW_POINTER 2010 #define IDC_CHECK_SHOW_POINTER 2010
#define IDC_CHECK_HIDE_POINTER 2011 #define IDC_CHECK_HIDE_POINTER 2011
@ -70,7 +70,7 @@
#define IDC_CHECK_DROP_SHADOW 2034 #define IDC_CHECK_DROP_SHADOW 2034
#define IDC_IMAGE_SWAP_MOUSE 2035 #define IDC_IMAGE_SWAP_MOUSE 2035
#define IDC_IMAGE_DOUBLE_CLICK_SPEED 2036 #define IDC_IMAGE_DOUBLE_CLICK_SPEED 2036
#define IDC_ICON_MOUSE_SENSITIVITY 2037 #define IDC_ICON_MOUSE_SPEED 2037
#define IDC_ICON_SNAP_TO 2038 #define IDC_ICON_SNAP_TO 2038
#define IDC_ICON_POINTER_TRAIL 2039 #define IDC_ICON_POINTER_TRAIL 2039
#define IDC_ICON_SHOW_POINTER 2040 #define IDC_ICON_SHOW_POINTER 2040