Add cursor blink time preview and change blink time on the fly.

svn path=/trunk/; revision=26284
This commit is contained in:
Eric Kohl 2007-04-08 16:46:35 +00:00
parent 29cb375d5a
commit c74fbaf787
14 changed files with 64 additions and 10 deletions

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Zde mùžete vyzkoušet rychlost opakování:", -1, 15, 105, 150, 10 LTEXT "Zde mùžete vyzkoušet rychlost opakování:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Rychlost &blikání kurzoru:", -1, 5, 145, 230, 50 GROUPBOX "Rychlost &blikání kurzoru:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Žádná", -1, 40, 165, 30, 10 LTEXT "Žádná", -1, 40, 165, 30, 10
LTEXT "Velká", -1, 200, 165, 30, 10 LTEXT "Velká", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -12,18 +12,19 @@ BEGIN
LTEXT "&Verzögerung:", -1, 40, 15, 50, 10 LTEXT "&Verzögerung:", -1, 40, 15, 50, 10
LTEXT "Lang", -1, 40, 30, 24, 10 LTEXT "Lang", -1, 40, 30, 24, 10
LTEXT "Kurz", -1, 200, 30, 24, 10 LTEXT "Kurz", -1, 200, 30, 24, 10
CONTROL "",IDC_SLIDER_REPEAT_DELAY, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 30, 130, 17 CONTROL "", IDC_SLIDER_REPEAT_DELAY, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 30, 130, 17
ICON -1, IDC_ICON_REPEAT_RATE, 15, 70, 15, 15 ICON -1, IDC_ICON_REPEAT_RATE, 15, 70, 15, 15
LTEXT "&Wiederholrate:", -1, 40, 70, 50, 10 LTEXT "&Wiederholrate:", -1, 40, 70, 50, 10
LTEXT "Niedrig", -1, 40, 85, 24, 10 LTEXT "Niedrig", -1, 40, 85, 24, 10
LTEXT "Hoch", -1, 200, 85, 24, 10 LTEXT "Hoch", -1, 200, 85, 24, 10
CONTROL "",IDC_SLIDER_REPEAT_RATE, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 85, 130, 17 CONTROL "", IDC_SLIDER_REPEAT_RATE, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 85, 130, 17
LTEXT "&Klicken Sie hier, und drücken Sie zum Testen eine Taste:", -1, 15, 105, 180, 10 LTEXT "&Klicken Sie hier, und drücken Sie zum Testen eine Taste:", -1, 15, 105, 180, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "&Cursorblinkgeschwindgkeit", -1, 5, 145, 230, 50 GROUPBOX "&Cursorblinkgeschwindgkeit", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Langsam", -1, 35, 165, 33, 10 LTEXT "Langsam", -1, 35, 165, 33, 10
LTEXT "Schnell", -1, 200, 165, 33, 10 LTEXT "Schnell", -1, 200, 165, 33, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "", IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17
END END
IDD_HARDWARE DIALOGEX 0, 0, 246, 228 IDD_HARDWARE DIALOGEX 0, 0, 246, 228

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10 LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50 GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "None", -1, 40, 165, 30, 10 LTEXT "None", -1, 40, 165, 30, 10
LTEXT "Fast", -1, 200, 165, 30, 10 LTEXT "Fast", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10 LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50 GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "None", -1, 40, 165, 30, 10 LTEXT "None", -1, 40, 165, 30, 10
LTEXT "Fast", -1, 200, 165, 30, 10 LTEXT "Fast", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Cliquer ici et enfoncer une touche pour &tester le délai de répétition:", -1, 15, 105, 150, 10 LTEXT "Cliquer ici et enfoncer une touche pour &tester le délai de répétition:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Taux de &clignotement du curseur:", -1, 5, 145, 230, 50 GROUPBOX "Taux de &clignotement du curseur:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Aucun", -1, 40, 165, 30, 10 LTEXT "Aucun", -1, 40, 165, 30, 10
LTEXT "Rapide", -1, 200, 165, 30, 10 LTEXT "Rapide", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10 LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50 GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "None", -1, 40, 165, 30, 10 LTEXT "None", -1, 40, 165, 30, 10
LTEXT "Fast", -1, 200, 165, 30, 10 LTEXT "Fast", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Klik di sini dan tekan tombol untuk mengu&ji rata-rata pengulangan:", -1, 15, 105, 150, 10 LTEXT "Klik di sini dan tekan tombol untuk mengu&ji rata-rata pengulangan:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Rata-rata &kedip kursor:", -1, 5, 145, 230, 50 GROUPBOX "Rata-rata &kedip kursor:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Tidak ada", -1, 40, 165, 30, 10 LTEXT "Tidak ada", -1, 40, 165, 30, 10
LTEXT "Cepat", -1, 200, 165, 30, 10 LTEXT "Cepat", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10 LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50 GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "None", -1, 40, 165, 30, 10 LTEXT "None", -1, 40, 165, 30, 10
LTEXT "Fast", -1, 200, 165, 30, 10 LTEXT "Fast", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -18,6 +18,7 @@ BEGIN
LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10 LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50 GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "None", -1, 40, 165, 30, 10 LTEXT "None", -1, 40, 165, 30, 10
LTEXT "Fast", -1, 200, 165, 30, 10 LTEXT "Fast", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -27,6 +27,7 @@ BEGIN
LTEXT "Çàòèñí³òü êëàâ³øó â ïîë³ äëÿ &ïåðåâ³ðêè øâèäêîñò³ ïîâòîðó:", -1, 15, 105, 150, 10 LTEXT "Çàòèñí³òü êëàâ³øó â ïîë³ äëÿ &ïåðåâ³ðêè øâèäêîñò³ ïîâòîðó:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "×àñòîòà ì&åðåõò³ííÿ êóðñîðà:", -1, 5, 145, 230, 50 GROUPBOX "×àñòîòà ì&åðåõò³ííÿ êóðñîðà:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Íåìàº", -1, 40, 165, 30, 10 LTEXT "Íåìàº", -1, 40, 165, 30, 10
LTEXT "Øâèäêî", -1, 200, 165, 30, 10 LTEXT "Øâèäêî", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -21,6 +21,7 @@ BEGIN
LTEXT "Clicca qui e tieni premuto un tasto per provare la frequenza di ripetizione:", -1, 15, 105, 150, 10 LTEXT "Clicca qui e tieni premuto un tasto per provare la frequenza di ripetizione:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Frequenza di lampeggio del Cursore:", -1, 5, 145, 230, 50 GROUPBOX "Frequenza di lampeggio del Cursore:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Nessuna", -1, 40, 165, 30, 10 LTEXT "Nessuna", -1, 40, 165, 30, 10
LTEXT "Veloce", -1, 200, 165, 30, 10 LTEXT "Veloce", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17

View file

@ -1,6 +1,6 @@
/* /*
* ReactOS * ReactOS
* Copyright (C) 2004 ReactOS Team * Copyright (C) 2004, 2007 ReactOS Team
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -33,12 +33,17 @@
#include "main.h" #include "main.h"
#include "resource.h" #include "resource.h"
#define ID_BLINK_TIMER 345
typedef struct _SPEED_DATA typedef struct _SPEED_DATA
{ {
INT nKeyboardDelay; INT nKeyboardDelay;
DWORD dwKeyboardSpeed; DWORD dwKeyboardSpeed;
UINT uCaretBlinkTime; UINT uCaretBlinkTime;
UINT uOrigCaretBlinkTime;
BOOL fShowCursor;
RECT rcCursor;
} SPEED_DATA, *PSPEED_DATA; } SPEED_DATA, *PSPEED_DATA;
@ -77,8 +82,14 @@ KeyboardSpeedProc(IN HWND hwndDlg,
pSpeedData->dwKeyboardSpeed = 31; pSpeedData->dwKeyboardSpeed = 31;
} }
/* Get the caret blink time */ pSpeedData->fShowCursor = TRUE;
pSpeedData->uCaretBlinkTime = GetCaretBlinkTime(); GetWindowRect(GetDlgItem(hwndDlg, IDC_TEXT_CURSOR_BLINK), &pSpeedData->rcCursor);
ScreenToClient(hwndDlg, (LPPOINT)&pSpeedData->rcCursor.left);
ScreenToClient(hwndDlg, (LPPOINT)&pSpeedData->rcCursor.right);
/* Get the caret blink time and save its original value */
pSpeedData->uOrigCaretBlinkTime = GetCaretBlinkTime();
pSpeedData->uCaretBlinkTime = pSpeedData->uOrigCaretBlinkTime;
SendDlgItemMessage(hwndDlg, IDC_SLIDER_REPEAT_DELAY, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 3)); SendDlgItemMessage(hwndDlg, IDC_SLIDER_REPEAT_DELAY, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 3));
SendDlgItemMessage(hwndDlg, IDC_SLIDER_REPEAT_DELAY, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)(3 - pSpeedData->nKeyboardDelay)); SendDlgItemMessage(hwndDlg, IDC_SLIDER_REPEAT_DELAY, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)(3 - pSpeedData->nKeyboardDelay));
@ -89,6 +100,8 @@ KeyboardSpeedProc(IN HWND hwndDlg,
SendDlgItemMessage(hwndDlg, IDC_SLIDER_CURSOR_BLINK, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 10)); SendDlgItemMessage(hwndDlg, IDC_SLIDER_CURSOR_BLINK, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 10));
SendDlgItemMessage(hwndDlg, IDC_SLIDER_CURSOR_BLINK, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)(12 - (pSpeedData->uCaretBlinkTime / 100))); SendDlgItemMessage(hwndDlg, IDC_SLIDER_CURSOR_BLINK, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)(12 - (pSpeedData->uCaretBlinkTime / 100)));
/* Start the blink timer */
SetTimer(hwndDlg, ID_BLINK_TIMER, pSpeedData->uCaretBlinkTime, NULL);
break; break;
case WM_HSCROLL: case WM_HSCROLL:
@ -146,17 +159,43 @@ KeyboardSpeedProc(IN HWND hwndDlg,
case TB_BOTTOM: case TB_BOTTOM:
case TB_ENDTRACK: case TB_ENDTRACK:
pSpeedData->uCaretBlinkTime = (12 - (UINT)SendDlgItemMessage(hwndDlg, IDC_SLIDER_CURSOR_BLINK, TBM_GETPOS, 0, 0)) * 100; pSpeedData->uCaretBlinkTime = (12 - (UINT)SendDlgItemMessage(hwndDlg, IDC_SLIDER_CURSOR_BLINK, TBM_GETPOS, 0, 0)) * 100;
KillTimer(hwndDlg, ID_BLINK_TIMER);
SetTimer(hwndDlg, ID_BLINK_TIMER, pSpeedData->uCaretBlinkTime, NULL);
SetCaretBlinkTime(pSpeedData->uCaretBlinkTime);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
case TB_THUMBTRACK: case TB_THUMBTRACK:
pSpeedData->uCaretBlinkTime = (12 - (UINT)HIWORD(wParam)) * 100; pSpeedData->uCaretBlinkTime = (12 - (UINT)HIWORD(wParam)) * 100;
KillTimer(hwndDlg, ID_BLINK_TIMER);
SetTimer(hwndDlg, ID_BLINK_TIMER, pSpeedData->uCaretBlinkTime, NULL);
SetCaretBlinkTime(pSpeedData->uCaretBlinkTime);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
} }
} }
break; break;
case WM_TIMER:
if (wParam == ID_BLINK_TIMER)
{
if (pSpeedData->fShowCursor)
{
HDC hDC = GetDC(hwndDlg);
HBRUSH hBrush = GetSysColorBrush(COLOR_BTNTEXT);
FillRect(hDC, &pSpeedData->rcCursor, hBrush);
DeleteObject(hBrush);
ReleaseDC(hwndDlg, hDC);
}
else
{
InvalidateRect(hwndDlg, &pSpeedData->rcCursor, TRUE);
}
pSpeedData->fShowCursor = !pSpeedData->fShowCursor;
}
break;
case WM_NOTIFY: case WM_NOTIFY:
{ {
LPNMHDR lpnm = (LPNMHDR)lParam; LPNMHDR lpnm = (LPNMHDR)lParam;
@ -164,8 +203,6 @@ KeyboardSpeedProc(IN HWND hwndDlg,
switch(lpnm->code) switch(lpnm->code)
{ {
case PSN_APPLY: case PSN_APPLY:
SetCaretBlinkTime(pSpeedData->uCaretBlinkTime);
SystemParametersInfo(SPI_SETKEYBOARDDELAY, SystemParametersInfo(SPI_SETKEYBOARDDELAY,
pSpeedData->nKeyboardDelay, pSpeedData->nKeyboardDelay,
0, 0,
@ -177,6 +214,10 @@ KeyboardSpeedProc(IN HWND hwndDlg,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
return TRUE; return TRUE;
case PSN_RESET:
SetCaretBlinkTime(pSpeedData->uOrigCaretBlinkTime);
break;
default: default:
break; break;
} }
@ -184,6 +225,7 @@ KeyboardSpeedProc(IN HWND hwndDlg,
break; break;
case WM_DESTROY: case WM_DESTROY:
KillTimer(hwndDlg, ID_BLINK_TIMER);
HeapFree(GetProcessHeap(), 0, pSpeedData); HeapFree(GetProcessHeap(), 0, pSpeedData);
break; break;
} }

View file

@ -76,7 +76,7 @@
#define IDC_SLIDER_REPEAT_RATE 2053 #define IDC_SLIDER_REPEAT_RATE 2053
#define IDC_EDIT_REPEAT_RATE 2054 #define IDC_EDIT_REPEAT_RATE 2054
#define IDC_SLIDER_CURSOR_BLINK 2055 #define IDC_SLIDER_CURSOR_BLINK 2055
#define IDC_TEXT_CURSOR_BLINK 2056
#endif /* __CPL_RESOURCE_H */ #endif /* __CPL_RESOURCE_H */

View file

@ -19,6 +19,7 @@ BEGIN
LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10 LTEXT "Click here and hold down a key to &test repeat rate:", -1, 15, 105, 150, 10
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50 GROUPBOX "Cursor &blink rate:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "None", -1, 40, 165, 30, 10 LTEXT "None", -1, 40, 165, 30, 10
LTEXT "Fast", -1, 200, 165, 30, 10 LTEXT "Fast", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17 CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17