Author: ekohl Date: Sun Apr 8 03:10:58 2007 New Revision: 26280
URL: http://svn.reactos.org/svn/reactos?rev=26280&view=rev Log: - Add missing keyboard speed dialog resources. - Implement keyboard repeat delay and repeat rate settings.
Modified: trunk/reactos/dll/cpl/main/De.rc trunk/reactos/dll/cpl/main/Es.rc trunk/reactos/dll/cpl/main/Hu.rc trunk/reactos/dll/cpl/main/Ja.rc trunk/reactos/dll/cpl/main/Nl.rc trunk/reactos/dll/cpl/main/keyboard.c
Modified: trunk/reactos/dll/cpl/main/De.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/De.rc?rev=2628... ============================================================================== --- trunk/reactos/dll/cpl/main/De.rc (original) +++ trunk/reactos/dll/cpl/main/De.rc Sun Apr 8 03:10:58 2007 @@ -7,7 +7,23 @@ CAPTION "Geschwindigkeit" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Tastaturgeschwindigkeit",-1,73,74,130,8 + GROUPBOX "Zeichenwiederholung", -1, 5, 5, 230, 130 + ICON -1, IDC_ICON_REPEAT_DELAY, 15, 15, 15, 15 + 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 + 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 + 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 "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 END
IDD_HARDWARE DIALOGEX 0, 0, 246, 228
Modified: trunk/reactos/dll/cpl/main/Es.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/Es.rc?rev=2628... ============================================================================== --- trunk/reactos/dll/cpl/main/Es.rc (original) +++ trunk/reactos/dll/cpl/main/Es.rc Sun Apr 8 03:10:58 2007 @@ -5,7 +5,23 @@ CAPTION "Velocidad" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Velocidad del teclado",-1,73,74,90,8 + GROUPBOX "Character repeat", -1, 5, 5, 230, 130 + ICON -1, IDC_ICON_REPEAT_DELAY, 15, 15, 15, 15 + LTEXT "Repeat &delay", -1, 40, 15, 50, 10 + LTEXT "Long", -1, 40, 30, 20, 10 + LTEXT "Short", -1, 200, 30, 20, 10 + 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 "&Repeat rate", -1, 40, 70, 50, 10 + LTEXT "Slow", -1, 40, 85, 20, 10 + LTEXT "Fast", -1, 200, 85, 20, 10 + CONTROL "",IDC_SLIDER_REPEAT_RATE, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 85, 130, 17 + 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 "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 END
IDD_HARDWARE DIALOGEX 0, 0, 246, 228
Modified: trunk/reactos/dll/cpl/main/Hu.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/Hu.rc?rev=2628... ============================================================================== --- trunk/reactos/dll/cpl/main/Hu.rc (original) +++ trunk/reactos/dll/cpl/main/Hu.rc Sun Apr 8 03:10:58 2007 @@ -5,7 +5,23 @@ CAPTION "Érzékenység" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Billentyûzet beállítások",-1,73,74,90,8 + GROUPBOX "Character repeat", -1, 5, 5, 230, 130 + ICON -1, IDC_ICON_REPEAT_DELAY, 15, 15, 15, 15 + LTEXT "Repeat &delay", -1, 40, 15, 50, 10 + LTEXT "Long", -1, 40, 30, 20, 10 + LTEXT "Short", -1, 200, 30, 20, 10 + 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 "&Repeat rate", -1, 40, 70, 50, 10 + LTEXT "Slow", -1, 40, 85, 20, 10 + LTEXT "Fast", -1, 200, 85, 20, 10 + CONTROL "",IDC_SLIDER_REPEAT_RATE, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 85, 130, 17 + 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 "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 END
IDD_HARDWARE DIALOGEX 0, 0, 246, 228
Modified: trunk/reactos/dll/cpl/main/Ja.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/Ja.rc?rev=2628... ============================================================================== --- trunk/reactos/dll/cpl/main/Ja.rc (original) +++ trunk/reactos/dll/cpl/main/Ja.rc Sun Apr 8 03:10:58 2007 @@ -5,7 +5,23 @@ CAPTION "Speed" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Keyboard Speed Page",-1,73,74,90,8 + GROUPBOX "Character repeat", -1, 5, 5, 230, 130 + ICON -1, IDC_ICON_REPEAT_DELAY, 15, 15, 15, 15 + LTEXT "Repeat &delay", -1, 40, 15, 50, 10 + LTEXT "Long", -1, 40, 30, 20, 10 + LTEXT "Short", -1, 200, 30, 20, 10 + 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 "&Repeat rate", -1, 40, 70, 50, 10 + LTEXT "Slow", -1, 40, 85, 20, 10 + LTEXT "Fast", -1, 200, 85, 20, 10 + CONTROL "",IDC_SLIDER_REPEAT_RATE, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 85, 130, 17 + 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 "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 END
IDD_HARDWARE DIALOGEX 0, 0, 246, 228
Modified: trunk/reactos/dll/cpl/main/Nl.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/Nl.rc?rev=2628... ============================================================================== --- trunk/reactos/dll/cpl/main/Nl.rc (original) +++ trunk/reactos/dll/cpl/main/Nl.rc Sun Apr 8 03:10:58 2007 @@ -4,7 +4,23 @@ CAPTION "Speed" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Keyboard Speed Page",-1,73,74,90,8 + GROUPBOX "Character repeat", -1, 5, 5, 230, 130 + ICON -1, IDC_ICON_REPEAT_DELAY, 15, 15, 15, 15 + LTEXT "Repeat &delay", -1, 40, 15, 50, 10 + LTEXT "Long", -1, 40, 30, 20, 10 + LTEXT "Short", -1, 200, 30, 20, 10 + 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 "&Repeat rate", -1, 40, 70, 50, 10 + LTEXT "Slow", -1, 40, 85, 20, 10 + LTEXT "Fast", -1, 200, 85, 20, 10 + CONTROL "",IDC_SLIDER_REPEAT_RATE, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 85, 130, 17 + 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 "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 END
IDD_HARDWARE DIALOGEX 0, 0, 246, 228
Modified: trunk/reactos/dll/cpl/main/keyboard.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/keyboard.c?rev... ============================================================================== --- trunk/reactos/dll/cpl/main/keyboard.c (original) +++ trunk/reactos/dll/cpl/main/keyboard.c Sun Apr 8 03:10:58 2007 @@ -33,20 +33,128 @@ #include "main.h" #include "resource.h"
+typedef struct _SPEED_DATA +{ + INT nKeyboardDelay; + DWORD dwKeyboardSpeed; + +} SPEED_DATA, *PSPEED_DATA; +
/* Property page dialog callback */ static INT_PTR CALLBACK -KeybSpeedProc(IN HWND hwndDlg, - IN UINT uMsg, - IN WPARAM wParam, - IN LPARAM lParam) -{ - UNREFERENCED_PARAMETER(lParam); - UNREFERENCED_PARAMETER(wParam); - UNREFERENCED_PARAMETER(hwndDlg); - switch(uMsg) +KeyboardSpeedProc(IN HWND hwndDlg, + IN UINT uMsg, + IN WPARAM wParam, + IN LPARAM lParam) +{ + PSPEED_DATA pSpeedData; + + pSpeedData = (PSPEED_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); + + switch (uMsg) { case WM_INITDIALOG: + pSpeedData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SPEED_DATA)); + SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pSpeedData); + + /* Get current keyboard delay */ + if (!SystemParametersInfo(SPI_GETKEYBOARDDELAY, + sizeof(INT), + &pSpeedData->nKeyboardDelay, + 0)) + { + pSpeedData->nKeyboardDelay = 2; + } + + /* Get current keyboard delay */ + if (!SystemParametersInfo(SPI_GETKEYBOARDSPEED, + sizeof(DWORD), + &pSpeedData->dwKeyboardSpeed, + 0)) + { + pSpeedData->dwKeyboardSpeed = 31; + } + + 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_RATE, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 31)); + SendDlgItemMessage(hwndDlg, IDC_SLIDER_REPEAT_RATE, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pSpeedData->dwKeyboardSpeed); + + break; + + case WM_HSCROLL: + if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SLIDER_REPEAT_DELAY)) + { + switch (LOWORD(wParam)) + { + case TB_LINEUP: + case TB_LINEDOWN: + case TB_PAGEUP: + case TB_PAGEDOWN: + case TB_TOP: + case TB_BOTTOM: + case TB_ENDTRACK: + pSpeedData->nKeyboardDelay = 3 - (INT)SendDlgItemMessage(hwndDlg, IDC_SLIDER_REPEAT_DELAY, TBM_GETPOS, 0, 0); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + + case TB_THUMBTRACK: + pSpeedData->nKeyboardDelay = 3 - (INT)HIWORD(wParam); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + } + } + else if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SLIDER_REPEAT_RATE)) + { + switch (LOWORD(wParam)) + { + case TB_LINEUP: + case TB_LINEDOWN: + case TB_PAGEUP: + case TB_PAGEDOWN: + case TB_TOP: + case TB_BOTTOM: + case TB_ENDTRACK: + pSpeedData->dwKeyboardSpeed = (DWORD)SendDlgItemMessage(hwndDlg, IDC_SLIDER_REPEAT_RATE, TBM_GETPOS, 0, 0); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + + case TB_THUMBTRACK: + pSpeedData->dwKeyboardSpeed = (DWORD)HIWORD(wParam); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + } + } + + break; + + case WM_NOTIFY: + { + LPNMHDR lpnm = (LPNMHDR)lParam; + + switch(lpnm->code) + { + case PSN_APPLY: + SystemParametersInfo(SPI_SETKEYBOARDDELAY, + pSpeedData->nKeyboardDelay, + 0, + 0); + SystemParametersInfo(SPI_SETKEYBOARDSPEED, + pSpeedData->dwKeyboardSpeed, + 0, + SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); + return TRUE; + + default: + break; + } + } + break; + + case WM_DESTROY: + HeapFree(GetProcessHeap(), 0, pSpeedData); break; }
@@ -57,9 +165,9 @@ /* Property page dialog callback */ static INT_PTR CALLBACK KeybHardwareProc(IN HWND hwndDlg, - IN UINT uMsg, - IN WPARAM wParam, - IN LPARAM lParam) + IN UINT uMsg, + IN WPARAM wParam, + IN LPARAM lParam) { GUID Guids[1]; Guids[0] = GUID_DEVCLASS_KEYBOARD; @@ -89,32 +197,32 @@ LONG APIENTRY KeyboardApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam) { - PROPSHEETPAGE psp[2]; - PROPSHEETHEADER psh; - TCHAR Caption[256]; - - UNREFERENCED_PARAMETER(lParam); - UNREFERENCED_PARAMETER(wParam); - UNREFERENCED_PARAMETER(uMsg); - UNREFERENCED_PARAMETER(hwnd); - - LoadString(hApplet, IDS_CPLNAME_2, Caption, sizeof(Caption) / sizeof(TCHAR)); - - ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); - psh.dwSize = sizeof(PROPSHEETHEADER); - psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE; - psh.hwndParent = NULL; - psh.hInstance = hApplet; - psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON_2)); - psh.pszCaption = Caption; - psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); - psh.nStartPage = 0; - psh.ppsp = psp; - - InitPropSheetPage(&psp[0], IDD_KEYBSPEED, KeybSpeedProc); - InitPropSheetPage(&psp[1], IDD_HARDWARE, KeybHardwareProc); - - return (LONG)(PropertySheet(&psh) != -1); + PROPSHEETPAGE psp[2]; + PROPSHEETHEADER psh; + TCHAR szCaption[256]; + + UNREFERENCED_PARAMETER(lParam); + UNREFERENCED_PARAMETER(wParam); + UNREFERENCED_PARAMETER(uMsg); + UNREFERENCED_PARAMETER(hwnd); + + LoadString(hApplet, IDS_CPLNAME_2, szCaption, sizeof(szCaption) / sizeof(TCHAR)); + + ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); + psh.dwSize = sizeof(PROPSHEETHEADER); + psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE; + psh.hwndParent = NULL; + psh.hInstance = hApplet; + psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON_2)); + psh.pszCaption = szCaption; + psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); + psh.nStartPage = 0; + psh.ppsp = psp; + + InitPropSheetPage(&psp[0], IDD_KEYBSPEED, KeyboardSpeedProc); + InitPropSheetPage(&psp[1], IDD_HARDWARE, KeybHardwareProc); + + return (LONG)(PropertySheet(&psh) != -1); }
/* EOF */