diff --git a/reactos/dll/cpl/access/general.c b/reactos/dll/cpl/access/general.c index 095a32f7a98..65a5aef49b1 100644 --- a/reactos/dll/cpl/access/general.c +++ b/reactos/dll/cpl/access/general.c @@ -2,7 +2,7 @@ * * PROJECT: ReactOS System Control Panel * LICENSE: GPL - See COPYING in the top level directory - * FILE: lib/cpl/system/advanced.c + * FILE: dll/cpl/access/general.c * PURPOSE: Memory, start-up and profiles settings * COPYRIGHT: Copyright 2004 Johannes Anderwald (j_anderw@sbox.tugraz.at) * UPDATE HISTORY: @@ -10,9 +10,149 @@ */ #include #include +#include +#include +#include +#include #include "resource.h" #include "access.h" + +typedef struct _GLOBAL_DATA +{ + ACCESSTIMEOUT accessTimeout; + SERIALKEYS serialKeys; + BOOL bWarningSounds; + BOOL bSoundOnActivation; +} GLOBAL_DATA, *PGLOBAL_DATA; + + +static VOID +FillResetComboBox(HWND hwnd) +{ + TCHAR szBuffer[16]; + INT i; + + for (i = 0; i < 6; i++) + { + _stprintf(szBuffer, _T("%u"), (i + 1) * 5); + SendMessage(hwnd, + CB_ADDSTRING, + 0, + (LPARAM)szBuffer); + } +} + + +static VOID +ReadGlobalData(PGLOBAL_DATA pGlobalData) +{ + DWORD dwDisposition; + DWORD dwLength; + HKEY hKey; + LONG lError; + + /* Get access timeout information */ + pGlobalData->accessTimeout.cbSize = sizeof(ACCESSTIMEOUT); + SystemParametersInfo(SPI_GETACCESSTIMEOUT, + sizeof(ACCESSTIMEOUT), + &pGlobalData->accessTimeout, + 0); + + /* Get serial keys information */ + pGlobalData->serialKeys.cbSize = sizeof(SERIALKEYS); + SystemParametersInfo(SPI_GETSERIALKEYS, + sizeof(SERIALKEYS), + &pGlobalData->serialKeys, + 0); + + pGlobalData->bWarningSounds = TRUE; + pGlobalData->bSoundOnActivation = TRUE; + + lError = RegCreateKeyEx(HKEY_CURRENT_USER, + _T("Control Panel\\Accessibility"), + 0, + NULL, + REG_OPTION_NON_VOLATILE, + KEY_EXECUTE | KEY_QUERY_VALUE, + NULL, + &hKey, + &dwDisposition); + if (lError != ERROR_SUCCESS) + return; + + dwLength = sizeof(BOOL); + lError = RegQueryValueEx(hKey, + _T("Warning Sounds"), + NULL, + NULL, + (LPBYTE)&pGlobalData->bWarningSounds, + &dwLength); + if (lError != ERROR_SUCCESS) + pGlobalData->bWarningSounds = TRUE; + + dwLength = sizeof(BOOL); + lError = RegQueryValueEx(hKey, + _T("Sound On Activation"), + NULL, + NULL, + (LPBYTE)&pGlobalData->bSoundOnActivation, + &dwLength); + if (lError != ERROR_SUCCESS) + pGlobalData->bSoundOnActivation = TRUE; + + + RegCloseKey(hKey); +} + + +static VOID +WriteGlobalData(PGLOBAL_DATA pGlobalData) +{ + DWORD dwDisposition; + HKEY hKey; + LONG lError; + + SystemParametersInfo(SPI_SETACCESSTIMEOUT, + sizeof(ACCESSTIMEOUT), + &pGlobalData->accessTimeout, + SPIF_UPDATEINIFILE | SPIF_SENDCHANGE /*0*/); + + SystemParametersInfo(SPI_SETSERIALKEYS, + sizeof(SERIALKEYS), + &pGlobalData->serialKeys, + SPIF_UPDATEINIFILE | SPIF_SENDCHANGE /*0*/); + + lError = RegCreateKeyEx(HKEY_CURRENT_USER, + _T("Control Panel\\Accessibility"), + 0, + NULL, + REG_OPTION_NON_VOLATILE, + KEY_SET_VALUE, + NULL, + &hKey, + &dwDisposition); + if (lError != ERROR_SUCCESS) + return; + + RegSetValueEx(hKey, + _T("Warning Sounds"), + 0, + REG_DWORD, + (LPBYTE)&pGlobalData->bWarningSounds, + sizeof(BOOL)); + + RegSetValueEx(hKey, + _T("Sound On Activation"), + 0, + REG_DWORD, + (LPBYTE)pGlobalData->bSoundOnActivation, + sizeof(BOOL)); + + RegCloseKey(hKey); +} + + /* Property page dialog callback */ INT_PTR CALLBACK GeneralPageProc(HWND hwndDlg, @@ -20,27 +160,84 @@ GeneralPageProc(HWND hwndDlg, WPARAM wParam, LPARAM lParam) { - UNREFERENCED_PARAMETER(lParam); - UNREFERENCED_PARAMETER(hwndDlg); + PGLOBAL_DATA pGlobalData; + LPPSHNOTIFY lppsn; + + pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); switch (uMsg) { case WM_INITDIALOG: - break; + pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + if (pGlobalData == NULL) + return FALSE; + + SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); + + ReadGlobalData(pGlobalData); + + /* Set access timeout info */ + CheckDlgButton(hwndDlg, + IDC_RESET_BOX, + pGlobalData->accessTimeout.dwFlags & ATF_TIMEOUTON ? BST_CHECKED : BST_UNCHECKED); + FillResetComboBox(GetDlgItem(hwndDlg, IDC_RESET_COMBO)); + SendDlgItemMessage(hwndDlg, IDC_RESET_COMBO, CB_SETCURSEL, + (pGlobalData->accessTimeout.iTimeOutMSec / 300000) - 1, 0); + EnableWindow(GetDlgItem(hwndDlg, IDC_RESET_COMBO), + pGlobalData->accessTimeout.dwFlags & ATF_TIMEOUTON ? TRUE : FALSE); + + CheckDlgButton(hwndDlg, + IDC_NOTIFICATION_MESSAGE, + pGlobalData->bWarningSounds ? BST_CHECKED : BST_UNCHECKED); + + CheckDlgButton(hwndDlg, + IDC_NOTIFICATION_SOUND, + pGlobalData->bSoundOnActivation ? BST_CHECKED : BST_UNCHECKED); + + /* Set serial keys info */ + CheckDlgButton(hwndDlg, + IDC_SERIAL_BOX, + pGlobalData->serialKeys.dwFlags & SERKF_SERIALKEYSON ? BST_CHECKED : BST_UNCHECKED); + EnableWindow(GetDlgItem(hwndDlg, IDC_SERIAL_BOX), + pGlobalData->serialKeys.dwFlags & SERKF_AVAILABLE ? TRUE : FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_SERIAL_BUTTON), + pGlobalData->serialKeys.dwFlags & SERKF_AVAILABLE ? TRUE : FALSE); + + return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_RESET_BOX: + pGlobalData->accessTimeout.dwFlags ^= ATF_TIMEOUTON; + EnableWindow(GetDlgItem(hwndDlg, IDC_RESET_COMBO), + pGlobalData->accessTimeout.dwFlags & ATF_TIMEOUTON ? TRUE : FALSE); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + + case IDC_RESET_COMBO: + if (HIWORD(wParam) == CBN_CLOSEUP) + { + INT nSel; + nSel = SendDlgItemMessage(hwndDlg, IDC_RESET_COMBO, CB_GETCURSEL, 0, 0); + pGlobalData->accessTimeout.iTimeOutMSec = (ULONG)((nSel + 1) * 300000); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + } break; case IDC_NOTIFICATION_MESSAGE: + pGlobalData->bWarningSounds = !pGlobalData->bWarningSounds; + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; case IDC_NOTIFICATION_SOUND: + pGlobalData->bSoundOnActivation = !pGlobalData->bSoundOnActivation; + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; case IDC_SERIAL_BOX: + pGlobalData->serialKeys.dwFlags ^= SERKF_SERIALKEYSON; + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; case IDC_SERIAL_BUTTON: @@ -56,7 +253,19 @@ GeneralPageProc(HWND hwndDlg, break; } break; - } + + case WM_NOTIFY: + lppsn = (LPPSHNOTIFY)lParam; + if (lppsn->hdr.code == PSN_APPLY) + { + WriteGlobalData(pGlobalData); + return TRUE; + } + break; + + case WM_DESTROY: + HeapFree(GetProcessHeap(), 0, pGlobalData); + break; } return FALSE; } diff --git a/reactos/dll/cpl/access/lang/cs-CZ.rc b/reactos/dll/cpl/access/lang/cs-CZ.rc index 6967f4c5ff3..f03824628c7 100644 --- a/reactos/dll/cpl/access/lang/cs-CZ.rc +++ b/reactos/dll/cpl/access/lang/cs-CZ.rc @@ -72,7 +72,7 @@ BEGIN GROUPBOX "Automatick vypnut",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "Vypnout &funkce usnadnn po neinnosti del ne:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Upozornn",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -158,6 +158,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Monosti usnadnn" diff --git a/reactos/dll/cpl/access/lang/de-DE.rc b/reactos/dll/cpl/access/lang/de-DE.rc index 90261f69399..e690085fe22 100644 --- a/reactos/dll/cpl/access/lang/de-DE.rc +++ b/reactos/dll/cpl/access/lang/de-DE.rc @@ -75,7 +75,7 @@ BEGIN AUTOCHECKBOX "Ei&ngabehilfen automatisch deaktivieren nach:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 LTEXT "&Minuten",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP GROUPBOX "Benachrichtigung",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "Warnsignal ausgeben, wenn eine Funktion eingeschaltet wird",IDC_NOTIFICATION_MESSAGE,PROPSHEETPADDING(2),LABELLINE(8)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE+15,14 @@ -160,6 +160,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Bedienbarkeit" diff --git a/reactos/dll/cpl/access/lang/en-US.rc b/reactos/dll/cpl/access/lang/en-US.rc index 3384af539e4..27183ee751b 100644 --- a/reactos/dll/cpl/access/lang/en-US.rc +++ b/reactos/dll/cpl/access/lang/en-US.rc @@ -71,7 +71,7 @@ BEGIN GROUPBOX "Automatic Reset",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "&Turn off accessibility features after idle for:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Notification",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -157,6 +157,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Accessibility" diff --git a/reactos/dll/cpl/access/lang/es-ES.rc b/reactos/dll/cpl/access/lang/es-ES.rc index e29045200d7..09ec1b70b88 100644 --- a/reactos/dll/cpl/access/lang/es-ES.rc +++ b/reactos/dll/cpl/access/lang/es-ES.rc @@ -75,7 +75,7 @@ BEGIN GROUPBOX "Automatic Reset",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "Apagar las opciones de accesibilidad despues de estar inactivo por:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Notificacin",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -161,6 +161,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Accessibilidad" diff --git a/reactos/dll/cpl/access/lang/fr-FR.rc b/reactos/dll/cpl/access/lang/fr-FR.rc index 3c6c3c2c073..a93414b88a5 100644 --- a/reactos/dll/cpl/access/lang/fr-FR.rc +++ b/reactos/dll/cpl/access/lang/fr-FR.rc @@ -73,7 +73,7 @@ BEGIN GROUPBOX "Rinitialisation automatique",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "&Dsactiver les fonctionnalits d'accessibilit aprs un dlai d'inactivit de:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Avertissement",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -159,6 +159,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Accessibilit" diff --git a/reactos/dll/cpl/access/lang/hu-HU.rc b/reactos/dll/cpl/access/lang/hu-HU.rc index cb3de6bf5a7..5f695f2585c 100644 --- a/reactos/dll/cpl/access/lang/hu-HU.rc +++ b/reactos/dll/cpl/access/lang/hu-HU.rc @@ -73,7 +73,7 @@ BEGIN GROUPBOX "Automatikus visszallts",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "&Kapcsolja ki a kisegt lehetsgeket egy bizonyos idej ttlensg utn:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(4)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "&Figyelmeztets",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -159,6 +159,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Kisegt lehetsgek" diff --git a/reactos/dll/cpl/access/lang/id-ID.rc b/reactos/dll/cpl/access/lang/id-ID.rc index 268db5f286e..a84694486c1 100644 --- a/reactos/dll/cpl/access/lang/id-ID.rc +++ b/reactos/dll/cpl/access/lang/id-ID.rc @@ -74,7 +74,7 @@ BEGIN GROUPBOX "Otomatis Reset",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "&Matikan fitur aksesibilitas setelah diam selama:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Pemberitahuan",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -160,6 +160,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Aksesibilitas" diff --git a/reactos/dll/cpl/access/lang/it-IT.rc b/reactos/dll/cpl/access/lang/it-IT.rc index 6ee5101c3f4..f50979a5ccb 100644 --- a/reactos/dll/cpl/access/lang/it-IT.rc +++ b/reactos/dll/cpl/access/lang/it-IT.rc @@ -72,7 +72,7 @@ BEGIN GROUPBOX "Reset Automatico",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "&Disattiva le funzioni di accessibilit se fermo per:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Notifiche",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -158,6 +158,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Accessibility" diff --git a/reactos/dll/cpl/access/lang/ja-JP.rc b/reactos/dll/cpl/access/lang/ja-JP.rc index 87933370523..ffcff06e577 100644 --- a/reactos/dll/cpl/access/lang/ja-JP.rc +++ b/reactos/dll/cpl/access/lang/ja-JP.rc @@ -72,7 +72,7 @@ BEGIN GROUPBOX "Zbg",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "[U[⏕𖳌ɂ܂ł̑҂(&T):",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "ʒm",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -158,6 +158,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "[U[⏕" diff --git a/reactos/dll/cpl/access/lang/nl-NL.rc b/reactos/dll/cpl/access/lang/nl-NL.rc index 576c6387617..9b8f9ef95fa 100644 --- a/reactos/dll/cpl/access/lang/nl-NL.rc +++ b/reactos/dll/cpl/access/lang/nl-NL.rc @@ -74,7 +74,7 @@ BEGIN GROUPBOX "Beginwaarden automatisch instellen",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "T&oegankelijkheidsfuncties uitschakelen wanneer deze niet gebruikte worden gedurende:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minutes",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Melding",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -160,6 +160,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Toegankelijkheidsopties" diff --git a/reactos/dll/cpl/access/lang/pl-PL.rc b/reactos/dll/cpl/access/lang/pl-PL.rc index 0978cff31d5..c4c311e902e 100644 --- a/reactos/dll/cpl/access/lang/pl-PL.rc +++ b/reactos/dll/cpl/access/lang/pl-PL.rc @@ -75,7 +75,7 @@ BEGIN GROUPBOX "Automatyczny reset",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "&Wycz funkcje uatwiajce dostp kiedy komputer nie jest uywany przez:",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "Minut",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "Powiadomienia",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -161,6 +161,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME "Uatwienia dostpu" diff --git a/reactos/dll/cpl/access/lang/ru-RU.rc b/reactos/dll/cpl/access/lang/ru-RU.rc index ade208d027f..c4023f83d42 100644 --- a/reactos/dll/cpl/access/lang/ru-RU.rc +++ b/reactos/dll/cpl/access/lang/ru-RU.rc @@ -72,7 +72,7 @@ BEGIN GROUPBOX " ",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) AUTOCHECKBOX "& :",IDC_RESET_BOX,PROPSHEETPADDING(2),LABELLINE(2)-2,PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(6), LABELLINE(5), - CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "",-1,PROPSHEETPADDING(10)+2, LABELLINE(4)+2, PROPSHEETPADDING(16), LABELLINE(1) GROUPBOX "",-1,PROPSHEETPADDING(1),LABELLINE(7)-2,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(5) @@ -158,6 +158,18 @@ BEGIN END +IDD_MOUSEKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Mouse Keys Settings" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "TBD",-1,PROPSHEETPADDING(4)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(6)-ICONSIZE,LABELLINE(3) + + PUSHBUTTON "OK", IDOK, PROPSHEETWIDTH-111, PROPSHEETHEIGHT-21, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, PROPSHEETWIDTH-57, PROPSHEETHEIGHT-21, 50, 14 +END + + STRINGTABLE BEGIN IDS_CPLSYSTEMNAME " " diff --git a/reactos/dll/cpl/access/mouse.c b/reactos/dll/cpl/access/mouse.c index 0fc2da8ec92..b61a58d3f53 100644 --- a/reactos/dll/cpl/access/mouse.c +++ b/reactos/dll/cpl/access/mouse.c @@ -2,7 +2,7 @@ * * PROJECT: ReactOS System Control Panel * LICENSE: GPL - See COPYING in the top level directory - * FILE: lib/cpl/system/advanced.c + * FILE: dll/cpl/access/mouse.c * PURPOSE: Memory, start-up and profiles settings * COPYRIGHT: Copyright 2004 Johannes Anderwald (j_anderw@sbox.tugraz.at) * UPDATE HISTORY: @@ -10,30 +10,45 @@ */ #include #include +#include +#include +#include #include "resource.h" #include "access.h" -/* Property page dialog callback */ -INT_PTR CALLBACK -MousePageProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) +typedef struct _GLOBAL_DATA { - UNREFERENCED_PARAMETER(lParam); - UNREFERENCED_PARAMETER(hwndDlg); + MOUSEKEYS mouseKeys; +} GLOBAL_DATA, *PGLOBAL_DATA; + + +INT_PTR CALLBACK +MouseKeysDlgProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PGLOBAL_DATA pGlobalData; + + pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); switch (uMsg) { case WM_INITDIALOG: + pGlobalData = (PGLOBAL_DATA)lParam; + SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); + break; + case WM_COMMAND: switch (LOWORD(wParam)) { - case IDC_MOUSE_BOX: + case IDOK: + EndDialog(hwndDlg, TRUE); break; - case IDC_MOUSE_BUTTON: + case IDCANCEL: + EndDialog(hwndDlg, FALSE); break; default: @@ -44,3 +59,81 @@ MousePageProc(HWND hwndDlg, return FALSE; } + + +/* Property page dialog callback */ +INT_PTR CALLBACK +MousePageProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PGLOBAL_DATA pGlobalData; + LPPSHNOTIFY lppsn; + + pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); + + switch (uMsg) + { + case WM_INITDIALOG: + pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + if (pGlobalData == NULL) + return FALSE; + + SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); + + /* Get mouse keys information */ + pGlobalData->mouseKeys.cbSize = sizeof(MOUSEKEYS); + SystemParametersInfo(SPI_GETMOUSEKEYS, + sizeof(MOUSEKEYS), + &pGlobalData->mouseKeys, + 0); + + /* Set the checkbox */ + CheckDlgButton(hwndDlg, + IDC_MOUSE_BOX, + pGlobalData->mouseKeys.dwFlags & MKF_MOUSEKEYSON ? BST_CHECKED : BST_UNCHECKED); + return TRUE; + + + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDC_MOUSE_BOX: + pGlobalData->mouseKeys.dwFlags ^= MKF_MOUSEKEYSON; + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + + case IDC_MOUSE_BUTTON: + if (DialogBoxParam(hApplet, + MAKEINTRESOURCE(IDD_MOUSEKEYSOPTIONS), + hwndDlg, + (DLGPROC)MouseKeysDlgProc, + (LPARAM)pGlobalData)) + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + + default: + break; + } + break; + + case WM_NOTIFY: + lppsn = (LPPSHNOTIFY)lParam; + if (lppsn->hdr.code == PSN_APPLY) + { + SystemParametersInfo(SPI_SETMOUSEKEYS, + sizeof(MOUSEKEYS), + &pGlobalData->mouseKeys, + SPIF_UPDATEINIFILE | SPIF_SENDCHANGE /*0*/); + return TRUE; + } + break; + + case WM_DESTROY: + HeapFree(GetProcessHeap(), 0, pGlobalData); + break; + } + + return FALSE; +} diff --git a/reactos/dll/cpl/access/resource.h b/reactos/dll/cpl/access/resource.h index 30eeea3cf13..5d2ff866ac4 100644 --- a/reactos/dll/cpl/access/resource.h +++ b/reactos/dll/cpl/access/resource.h @@ -25,6 +25,7 @@ #define IDD_TOGGLEKEYSOPTIONS 107 #define IDD_CONTRASTOPTIONS 108 +#define IDD_MOUSEKEYSOPTIONS 109 #define IDS_CPLSYSTEMNAME 1001 #define IDS_CPLSYSTEMDESCRIPTION 2001