From d11c32fcc8ec005e6e31cf64d7a6b1ada69540ee Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Wed, 25 Apr 2007 15:22:44 +0000 Subject: [PATCH] - Implement the mouse speed and acceleration settings. - Update mouse option settings only if they have changed. svn path=/trunk/; revision=26505 --- reactos/dll/cpl/main/lang/cs-CZ.rc | 4 +- reactos/dll/cpl/main/lang/de-DE.rc | 6 +- reactos/dll/cpl/main/lang/en-US.rc | 4 +- reactos/dll/cpl/main/lang/es-ES.rc | 4 +- reactos/dll/cpl/main/lang/fr-FR.rc | 4 +- reactos/dll/cpl/main/lang/hu-HU.rc | 4 +- reactos/dll/cpl/main/lang/id-ID.rc | 4 +- reactos/dll/cpl/main/lang/it-IT.rc | 4 +- reactos/dll/cpl/main/lang/ja-JP.rc | 4 +- reactos/dll/cpl/main/lang/nl-NL.rc | 4 +- reactos/dll/cpl/main/lang/pl-PL.rc | 4 +- reactos/dll/cpl/main/lang/ru-RU.rc | 4 +- reactos/dll/cpl/main/lang/uk-UA.rc | 4 +- reactos/dll/cpl/main/mouse.c | 335 ++++++++++++++++------------- reactos/dll/cpl/main/resource.h | 4 +- 15 files changed, 220 insertions(+), 173 deletions(-) diff --git a/reactos/dll/cpl/main/lang/cs-CZ.rc b/reactos/dll/cpl/main/lang/cs-CZ.rc index c4df8b15e82..bb4b37af87e 100644 --- a/reactos/dll/cpl/main/lang/cs-CZ.rc +++ b/reactos/dll/cpl/main/lang/cs-CZ.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Pohyb", -1, 5, 5, 230, 60 LTEXT "&Vyberte rychlost ukazatele:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Pøichytit", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/de-DE.rc b/reactos/dll/cpl/main/lang/de-DE.rc index ac02bdcf11a..656c7b2094d 100644 --- a/reactos/dll/cpl/main/lang/de-DE.rc +++ b/reactos/dll/cpl/main/lang/de-DE.rc @@ -99,15 +99,15 @@ END IDD_PAGE_OPTION DIALOGEX 0, 0, 246, 228 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_CAPTION -CAPTION "Zeiger Optionen" +CAPTION "Zeigeroptionen" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Bewegung", -1, 5, 5, 230, 60 LTEXT "&Zeigergeschwindigkeit auswählen:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Zur Standardschaltfläche springen", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/en-US.rc b/reactos/dll/cpl/main/lang/en-US.rc index 5bc9b914f59..34849dfa1c8 100644 --- a/reactos/dll/cpl/main/lang/en-US.rc +++ b/reactos/dll/cpl/main/lang/en-US.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Motion", -1, 5, 5, 230, 60 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Snap To", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/es-ES.rc b/reactos/dll/cpl/main/lang/es-ES.rc index 8c33763bde0..e39e50e76c1 100644 --- a/reactos/dll/cpl/main/lang/es-ES.rc +++ b/reactos/dll/cpl/main/lang/es-ES.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Motion", -1, 5, 5, 230, 60 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Snap To", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/fr-FR.rc b/reactos/dll/cpl/main/lang/fr-FR.rc index cdab99d4ec1..62885511946 100644 --- a/reactos/dll/cpl/main/lang/fr-FR.rc +++ b/reactos/dll/cpl/main/lang/fr-FR.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Mouvement", -1, 5, 5, 230, 60 LTEXT "Séle&ctionner une vitesse de curseur :", -1, 40, 15, 120, 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 - 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 GROUPBOX "Accrocher", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 40, 80, 10, 10 diff --git a/reactos/dll/cpl/main/lang/hu-HU.rc b/reactos/dll/cpl/main/lang/hu-HU.rc index 05690ef229a..31f9276534b 100644 --- a/reactos/dll/cpl/main/lang/hu-HU.rc +++ b/reactos/dll/cpl/main/lang/hu-HU.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Motion", -1, 5, 5, 230, 60 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Snap To", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/id-ID.rc b/reactos/dll/cpl/main/lang/id-ID.rc index 921d37690f8..f3a24ffbf94 100644 --- a/reactos/dll/cpl/main/lang/id-ID.rc +++ b/reactos/dll/cpl/main/lang/id-ID.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Gerakan", -1, 5, 5, 230, 60 LTEXT "Pilih ke&cepatan pointer:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Menempel Ke", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/it-IT.rc b/reactos/dll/cpl/main/lang/it-IT.rc index 89b74c90f7b..4284c52f218 100644 --- a/reactos/dll/cpl/main/lang/it-IT.rc +++ b/reactos/dll/cpl/main/lang/it-IT.rc @@ -106,9 +106,9 @@ BEGIN GROUPBOX "Motion", -1, 5, 5, 230, 60 LTEXT "Scegli una velocità per il puntatore:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Salta a", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/ja-JP.rc b/reactos/dll/cpl/main/lang/ja-JP.rc index 7fa69369b99..514c9f48145 100644 --- a/reactos/dll/cpl/main/lang/ja-JP.rc +++ b/reactos/dll/cpl/main/lang/ja-JP.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Motion", -1, 5, 5, 230, 60 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Snap To", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/nl-NL.rc b/reactos/dll/cpl/main/lang/nl-NL.rc index 0d600769b80..6df9bb9facd 100644 --- a/reactos/dll/cpl/main/lang/nl-NL.rc +++ b/reactos/dll/cpl/main/lang/nl-NL.rc @@ -103,9 +103,9 @@ BEGIN GROUPBOX "Motion", -1, 5, 5, 230, 60 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Snap To", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/pl-PL.rc b/reactos/dll/cpl/main/lang/pl-PL.rc index 1d1145d5847..7c54a53c931 100644 --- a/reactos/dll/cpl/main/lang/pl-PL.rc +++ b/reactos/dll/cpl/main/lang/pl-PL.rc @@ -110,9 +110,9 @@ BEGIN GROUPBOX "Ruch", -1, 5, 5, 230, 60 LTEXT "&Wybierz szybkoœæ wskaŸnika:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Przyci¹ganie do", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/ru-RU.rc b/reactos/dll/cpl/main/lang/ru-RU.rc index 49b91dc5a2d..2d501e2c0b7 100644 --- a/reactos/dll/cpl/main/lang/ru-RU.rc +++ b/reactos/dll/cpl/main/lang/ru-RU.rc @@ -104,9 +104,9 @@ BEGIN GROUPBOX "Motion", -1, 5, 5, 230, 60 LTEXT "Sele&ct a pointer speed:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Snap To", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/lang/uk-UA.rc b/reactos/dll/cpl/main/lang/uk-UA.rc index ef9a852a9a3..950995eee43 100644 --- a/reactos/dll/cpl/main/lang/uk-UA.rc +++ b/reactos/dll/cpl/main/lang/uk-UA.rc @@ -112,9 +112,9 @@ BEGIN GROUPBOX "Ïåðåì³ùåííÿ", -1, 5, 5, 230, 60 LTEXT "&Âèáåð³òü øâèäê³ñòü ðóõó âêàç³âíèêà:", -1, 60, 15, 110, 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 - 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 GROUPBOX "Ïðèâ'ÿçêà äî", -1, 5, 65, 230, 40 CHECKBOX "", IDC_CHECK_SNAP_TO, 60, 75, 10, 10 diff --git a/reactos/dll/cpl/main/mouse.c b/reactos/dll/cpl/main/mouse.c index 2a5d0b5c934..26d42ef075d 100644 --- a/reactos/dll/cpl/main/mouse.c +++ b/reactos/dll/cpl/main/mouse.c @@ -47,7 +47,8 @@ #define DEFAULT_DOUBLE_CLICK_SPEED 500 #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_THRESHOLD2 10 #define MIN_DOUBLE_CLICK_SPEED 200 @@ -83,19 +84,32 @@ typedef struct _POINTER_DATA } POINTER_DATA, *PPOINTER_DATA; +typedef struct _MOUSE_ACCEL +{ + INT nThreshold1; + INT nThreshold2; + INT nAcceleration; +} MOUSE_ACCEL; + typedef struct _OPTION_DATA { - ULONG ulMouseSensitivity; - ULONG ulOrigMouseSensitivity; + ULONG ulMouseSpeed; + ULONG ulOrigMouseSpeed; - ULONG ulMouseSpeed; // = 1; - ULONG ulMouseThreshold1; // = DEFAULT_MOUSE_THRESHOLD1; - ULONG ulMouseThreshold2; // = DEFAULT_MOUSE_THRESHOLD2; + MOUSE_ACCEL MouseAccel; + MOUSE_ACCEL OrigMouseAccel; - ULONG ulSnapToDefaultButton; - ULONG ulMouseTrails; - ULONG ulShowPointer; - ULONG ulHidePointer; + BOOL bSnapToDefaultButton; + BOOL bOrigSnapToDefaultButton; + + UINT uMouseTrails; + UINT uOrigMouseTrails; + + BOOL bMouseVanish; + BOOL bOrigMouseVanish; + + BOOL bMouseSonar; + BOOL bOrigMouseSonar; } OPTION_DATA, *POPTION_DATA; @@ -313,7 +327,7 @@ ButtonProc(IN HWND hwndDlg, SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); 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); break; @@ -329,8 +343,8 @@ ButtonProc(IN HWND hwndDlg, else if (lResult == BST_UNCHECKED) { SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); - EnableWindow(hDlgCtrl, TRUE); pButtonData->g_ClickLockEnabled = TRUE; + EnableWindow(hDlgCtrl, TRUE); } PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; @@ -354,20 +368,25 @@ ButtonProc(IN HWND hwndDlg, lppsn = (LPPSHNOTIFY) lParam; 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) SystemParametersInfo(SPI_SETMOUSECLICKLOCK, pButtonData->g_ClickLockEnabled, NULL, SPIF_SENDCHANGE); if (pButtonData->g_ClickLockEnabled) SystemParametersInfo(SPI_SETMOUSECLICKLOCKTIME, pButtonData->g_ClickLockTime, NULL, SPIF_SENDCHANGE); #endif - SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR); } else if (lppsn->hdr.code == PSN_RESET) { /* 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 */ -// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_OrigDoubleClickSpeed, NULL, SPIF_SENDCHANGE); +// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_OrigDoubleClickSpeed, NULL, 0); SetDoubleClickTime(pButtonData->g_OrigDoubleClickSpeed); } return TRUE; @@ -386,14 +405,14 @@ ButtonProc(IN HWND hwndDlg, case TB_ENDTRACK: lResult = SendDlgItemMessage(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED, TBM_GETPOS, 0, 0); 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); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; case TB_THUMBTRACK: 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); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; @@ -1037,16 +1056,20 @@ PointerProc(IN HWND hwndDlg, if (lppsn->hdr.code == PSN_APPLY) { ApplyCursorScheme(hwndDlg); -#if (WINVER >= 0x0500) - SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, SPIF_SENDCHANGE); -#endif +//#if (WINVER >= 0x0500) + if (pPointerData->bOrigDropShadow != pPointerData->bDropShadow) + { + SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bDropShadow, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); + pPointerData->bOrigDropShadow = pPointerData->bDropShadow; + } +//#endif return TRUE; } else if (lppsn->hdr.code == PSN_RESET) { -#if (WINVER >= 0x0500) - SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bOrigDropShadow, SPIF_SENDCHANGE); -#endif +//#if (WINVER >= 0x0500) + SystemParametersInfo(SPI_SETDROPSHADOW, 0, (PVOID)pPointerData->bOrigDropShadow, 0); +//#endif } break; @@ -1134,20 +1157,20 @@ PointerProc(IN HWND hwndDlg, { pPointerData->bDropShadow = FALSE; SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (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); } else { pPointerData->bDropShadow = TRUE; 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; @@ -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 OptionProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { + POPTION_DATA pOptionData; HWND hDlgCtrl; LPPSHNOTIFY lppsn; - LRESULT lResult; - POPTION_DATA pOptionData; pOptionData = (POPTION_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); @@ -1212,20 +1198,54 @@ OptionProc(IN HWND hwndDlg, pOptionData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(OPTION_DATA)); 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_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); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); } - if (pOptionData->ulSnapToDefaultButton) + if (pOptionData->bSnapToDefaultButton) { hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_SNAP_TO); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); @@ -1234,22 +1254,29 @@ OptionProc(IN HWND hwndDlg, /* set mouse trail */ hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL); 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); + } 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); 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; case WM_DESTROY: @@ -1262,74 +1289,80 @@ OptionProc(IN HWND hwndDlg, case IDC_CHECK_POINTER_PRECISION: if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_PRECISION)) { - pOptionData->ulMouseSpeed = 0; - pOptionData->ulMouseThreshold1 = 0; - pOptionData->ulMouseThreshold2 = 0; + pOptionData->MouseAccel.nAcceleration = 0; + pOptionData->MouseAccel.nThreshold1 = 0; + pOptionData->MouseAccel.nThreshold2 = 0; SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); } else { - pOptionData->ulMouseSpeed = 1; - pOptionData->ulMouseThreshold1 = 6; - pOptionData->ulMouseThreshold2 = 10; + pOptionData->MouseAccel.nAcceleration = 1; + pOptionData->MouseAccel.nThreshold1 = 6; + pOptionData->MouseAccel.nThreshold2 = 10; SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); } + SystemParametersInfo(SPI_SETMOUSE, 0, &pOptionData->MouseAccel, 0); break; case 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); } else { - pOptionData->ulSnapToDefaultButton = 1; + pOptionData->bSnapToDefaultButton = 1; SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); } + SystemParametersInfo(SPI_SETSNAPTODEFBUTTON, (UINT)pOptionData->bSnapToDefaultButton, 0, 0); break; case IDC_CHECK_POINTER_TRAIL: hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL); if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_TRAIL)) { - pOptionData->ulMouseTrails = 0; SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); EnableWindow(hDlgCtrl, FALSE); + pOptionData->uMouseTrails = 0; } else { SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); EnableWindow(hDlgCtrl, TRUE); - pOptionData->ulMouseTrails = (ULONG)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); + pOptionData->uMouseTrails = (UINT)SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 2; } + SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, 0); break; case 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); } else { - pOptionData->ulHidePointer = 1; + pOptionData->bMouseVanish = TRUE; SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); } + SystemParametersInfo(SPI_SETMOUSEVANISH, 0, (PVOID)pOptionData->bMouseVanish, 0); 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); break; @@ -1338,51 +1371,65 @@ OptionProc(IN HWND hwndDlg, lppsn = (LPPSHNOTIFY)lParam; 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 */ - SystemParametersInfo(SPI_SETSNAPTODEFBUTTON, pOptionData->ulSnapToDefaultButton, 0, SPIF_SENDCHANGE); - -#if 0 - /* set mouse trails */ - if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_TRAIL)) + if (pOptionData->bOrigSnapToDefaultButton != pOptionData->bSnapToDefaultButton) { - hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL); - lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 2; - } - else - { - lResult = 0; + SystemParametersInfo(SPI_SETSNAPTODEFBUTTON, (UINT)pOptionData->bSnapToDefaultButton, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); + pOptionData->bOrigSnapToDefaultButton = pOptionData->bSnapToDefaultButton; } - SystemParametersInfo(SPI_SETMOUSETRAILS, (UINT) lResult, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); -#endif - - //FIXME - //pointer precision - //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); + /* Set mouse trails setting */ + if (pOptionData->uOrigMouseTrails != pOptionData->uMouseTrails) + { + SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); + pOptionData->uOrigMouseTrails = pOptionData->uMouseTrails; + } /* 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 */ - SystemParametersInfo(SPI_SETMOUSESONAR, 0, (PVOID)pOptionData->ulShowPointer, SPIF_SENDCHANGE); - - SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR); + if (pOptionData->bOrigMouseSonar != pOptionData->bMouseSonar) + { + SystemParametersInfo(SPI_SETMOUSESONAR, 0, (PVOID)pOptionData->bMouseSonar, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); + pOptionData->bOrigMouseSonar = pOptionData->bMouseSonar; + } return TRUE; } else if (lppsn->hdr.code == PSN_RESET) { /* 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; case WM_HSCROLL: - if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SLIDER_MOUSE_SENSITIVITY)) + if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SLIDER_MOUSE_SPEED)) { switch (LOWORD(wParam)) { @@ -1393,14 +1440,14 @@ OptionProc(IN HWND hwndDlg, case TB_TOP: case TB_BOTTOM: case TB_ENDTRACK: - pOptionData->ulMouseSensitivity = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_MOUSE_SENSITIVITY, TBM_GETPOS, 0, 0) + 1; - SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSensitivity, SPIF_SENDCHANGE); + pOptionData->ulMouseSpeed = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_MOUSE_SPEED, TBM_GETPOS, 0, 0) + 1; + SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSpeed, SPIF_SENDCHANGE); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; #if 0 case TB_THUMBTRACK: - pOptionData->ulMouseSensitivity = (ULONG)HIWORD(wParam) + 1; - SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSensitivity, SPIF_SENDCHANGE); + pOptionData->ulMouseSpeed = (ULONG)HIWORD(wParam) + 1; + SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)pOptionData->ulMouseSpeed, SPIF_SENDCHANGE); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; #endif @@ -1417,14 +1464,14 @@ OptionProc(IN HWND hwndDlg, case TB_TOP: case TB_BOTTOM: case TB_ENDTRACK: - pOptionData->ulMouseTrails = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_POINTER_TRAIL, TBM_GETPOS, 0, 0) + 2; - SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->ulMouseTrails, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); + pOptionData->uMouseTrails = (ULONG)SendDlgItemMessage(hwndDlg, IDC_SLIDER_POINTER_TRAIL, TBM_GETPOS, 0, 0) + 2; + SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, SPIF_UPDATEINIFILE); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; case TB_THUMBTRACK: - pOptionData->ulMouseTrails = (ULONG)HIWORD(wParam) + 2; - SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->ulMouseTrails, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE); + pOptionData->uMouseTrails = (ULONG)HIWORD(wParam) + 2; + SystemParametersInfo(SPI_SETMOUSETRAILS, pOptionData->uMouseTrails, 0, SPIF_UPDATEINIFILE); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } diff --git a/reactos/dll/cpl/main/resource.h b/reactos/dll/cpl/main/resource.h index a1f7cb8a680..64b18e9761c 100644 --- a/reactos/dll/cpl/main/resource.h +++ b/reactos/dll/cpl/main/resource.h @@ -57,7 +57,7 @@ #define IDC_EDIT_WHEEL_SCROLL_LINES 2005 #define IDC_UPDOWN_WHEEL_SCROLL_LINES 2006 #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_SHOW_POINTER 2010 #define IDC_CHECK_HIDE_POINTER 2011 @@ -70,7 +70,7 @@ #define IDC_CHECK_DROP_SHADOW 2034 #define IDC_IMAGE_SWAP_MOUSE 2035 #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_POINTER_TRAIL 2039 #define IDC_ICON_SHOW_POINTER 2040