[ros-diffs] [ekohl] 26280: - Add missing keyboard speed dialog resources. - Implement keyboard repeat delay and repeat rate settings.

ekohl at svn.reactos.org ekohl at svn.reactos.org
Sun Apr 8 01:10:58 CEST 2007


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=26280&r1=26279&r2=26280&view=diff
==============================================================================
--- 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=26280&r1=26279&r2=26280&view=diff
==============================================================================
--- 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=26280&r1=26279&r2=26280&view=diff
==============================================================================
--- 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=26280&r1=26279&r2=26280&view=diff
==============================================================================
--- 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=26280&r1=26279&r2=26280&view=diff
==============================================================================
--- 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=26280&r1=26279&r2=26280&view=diff
==============================================================================
--- 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 */




More information about the Ros-diffs mailing list