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
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
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Žádná", -1, 40, 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

View file

@ -12,18 +12,19 @@ BEGIN
LTEXT "&Verzögerung:", -1, 40, 15, 50, 10
LTEXT "Lang", -1, 40, 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
LTEXT "&Wiederholrate:", -1, 40, 70, 50, 10
LTEXT "Niedrig", -1, 40, 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
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "&Cursorblinkgeschwindgkeit", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Langsam", -1, 35, 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
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
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
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 "Fast", -1, 200, 165, 30, 10
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
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
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 "Fast", -1, 200, 165, 30, 10
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
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
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Aucun", -1, 40, 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

View file

@ -19,6 +19,7 @@ BEGIN
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
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 "Fast", -1, 200, 165, 30, 10
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
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
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Tidak ada", -1, 40, 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

View file

@ -19,6 +19,7 @@ BEGIN
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
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 "Fast", -1, 200, 165, 30, 10
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
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
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 "Fast", -1, 200, 165, 30, 10
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
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
GROUPBOX "×àñòîòà ì&åðåõò³ííÿ êóðñîðà:", -1, 5, 145, 230, 50
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Íåìàº", -1, 40, 165, 30, 10
LTEXT "Øâèäêî", -1, 200, 165, 30, 10
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
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
LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8
LTEXT "Nessuna", -1, 40, 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

View file

@ -1,6 +1,6 @@
/*
* ReactOS
* Copyright (C) 2004 ReactOS Team
* Copyright (C) 2004, 2007 ReactOS Team
*
* 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
@ -33,12 +33,17 @@
#include "main.h"
#include "resource.h"
#define ID_BLINK_TIMER 345
typedef struct _SPEED_DATA
{
INT nKeyboardDelay;
DWORD dwKeyboardSpeed;
UINT uCaretBlinkTime;
UINT uOrigCaretBlinkTime;
BOOL fShowCursor;
RECT rcCursor;
} SPEED_DATA, *PSPEED_DATA;
@ -77,8 +82,14 @@ KeyboardSpeedProc(IN HWND hwndDlg,
pSpeedData->dwKeyboardSpeed = 31;
}
/* Get the caret blink time */
pSpeedData->uCaretBlinkTime = GetCaretBlinkTime();
pSpeedData->fShowCursor = TRUE;
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_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_SETPOS, (WPARAM)TRUE, (LPARAM)(12 - (pSpeedData->uCaretBlinkTime / 100)));
/* Start the blink timer */
SetTimer(hwndDlg, ID_BLINK_TIMER, pSpeedData->uCaretBlinkTime, NULL);
break;
case WM_HSCROLL:
@ -146,17 +159,43 @@ KeyboardSpeedProc(IN HWND hwndDlg,
case TB_BOTTOM:
case TB_ENDTRACK:
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);
break;
case TB_THUMBTRACK:
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);
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:
{
LPNMHDR lpnm = (LPNMHDR)lParam;
@ -164,8 +203,6 @@ KeyboardSpeedProc(IN HWND hwndDlg,
switch(lpnm->code)
{
case PSN_APPLY:
SetCaretBlinkTime(pSpeedData->uCaretBlinkTime);
SystemParametersInfo(SPI_SETKEYBOARDDELAY,
pSpeedData->nKeyboardDelay,
0,
@ -177,6 +214,10 @@ KeyboardSpeedProc(IN HWND hwndDlg,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
return TRUE;
case PSN_RESET:
SetCaretBlinkTime(pSpeedData->uOrigCaretBlinkTime);
break;
default:
break;
}
@ -184,6 +225,7 @@ KeyboardSpeedProc(IN HWND hwndDlg,
break;
case WM_DESTROY:
KillTimer(hwndDlg, ID_BLINK_TIMER);
HeapFree(GetProcessHeap(), 0, pSpeedData);
break;
}

View file

@ -76,7 +76,7 @@
#define IDC_SLIDER_REPEAT_RATE 2053
#define IDC_EDIT_REPEAT_RATE 2054
#define IDC_SLIDER_CURSOR_BLINK 2055
#define IDC_TEXT_CURSOR_BLINK 2056
#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
EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 115, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
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 "Fast", -1, 200, 165, 30, 10
CONTROL "",IDC_SLIDER_CURSOR_BLINK, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 165, 130, 17