ReactOS 0.4.15-dev-6656-gbbb33a6
general.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Accessibility Control Panel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/cpl/access/general.c
5 * PURPOSE: General accessibility settings
6 * COPYRIGHT: Copyright 2004 Johannes Anderwald (johannes.anderwald@reactos.org)
7 * Copyright 2007 Eric Kohl
8 */
9
10#include "access.h"
11
12#define BAUDTICKS 6
13static UINT nBaudArray[BAUDTICKS] = {300, 1200, 2400, 4800, 9600, 19200};
14
15
18 UINT uMsg,
21{
22 PGLOBAL_DATA pGlobalData;
23 INT i, n;
24
25 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
26
27 switch (uMsg)
28 {
29 case WM_INITDIALOG:
30 pGlobalData = (PGLOBAL_DATA)lParam;
31 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
32
33 /* Add the COM-Ports 1 - 4 to the list */
34 for (i = 0; i < 4; i++)
35 {
36 TCHAR szBuffer[256];
37
38 _stprintf(szBuffer, _T("COM%d"), i + 1);
40 }
41
42 /* Determine the current port */
43 if (pGlobalData->serialKeys.lpszActivePort && pGlobalData->serialKeys.lpszActivePort[0])
44 {
45 i = pGlobalData->serialKeys.lpszActivePort[3] - '1';
46 if (i < 0 || i > 3)
47 i = 0;
48 }
49 else
50 {
51 /* Make COM1 the default port */
52 i = 0;
53 _tcscpy(pGlobalData->serialKeys.lpszActivePort, _T("COM1"));
54 }
55
56 /* Set the current port */
58
59 /* Determine the current baud rate */
60 n = 0;
61 for (i = 0; i < BAUDTICKS; i++)
62 {
63 TCHAR szBuffer[256];
64
65 _stprintf(szBuffer, _T("%d Baud"), nBaudArray[i]);
67
68 if (pGlobalData->serialKeys.iBaudRate == nBaudArray[i])
69 n = i;
70 }
71
72 /* Set the current baud rate */
74 break;
75
76 case WM_COMMAND:
77 switch (LOWORD(wParam))
78 {
79 case IDOK:
81 _stprintf(pGlobalData->serialKeys.lpszActivePort, _T("COM%d"), i);
82
84 pGlobalData->serialKeys.iBaudRate = nBaudArray[i];
85
86 EndDialog(hwndDlg, TRUE);
87 break;
88
89 case IDCANCEL:
90 EndDialog(hwndDlg, FALSE);
91 break;
92
93 default:
94 break;
95 }
96 break;
97 }
98
99 return FALSE;
100}
101
102
103static VOID
105{
106 TCHAR szBuffer[32];
107 TCHAR szMinutes[20];
108 INT i;
109
110 if (LoadString(hApplet, IDS_MINUTES, szMinutes, 20) == 0)
111 lstrcpy(szMinutes, L"Minutes");
112
113 for (i = 0; i < 6; i++)
114 {
115 _stprintf(szBuffer, _T("%u %s"), (i + 1) * 5, szMinutes);
118 0,
119 (LPARAM)szBuffer);
120 }
121}
122
123
124static VOID
126{
127 DWORD dwDisposition;
128 HKEY hKey;
129 LONG lError;
130
132 sizeof(ACCESSTIMEOUT),
133 &pGlobalData->accessTimeout,
135
136 SystemParametersInfo(SPI_SETSERIALKEYS,
137 sizeof(SERIALKEYS),
138 &pGlobalData->serialKeys,
140
142 _T("Control Panel\\Accessibility"),
143 0,
144 NULL,
147 NULL,
148 &hKey,
149 &dwDisposition);
150 if (lError != ERROR_SUCCESS)
151 return;
152
154 _T("Warning Sounds"),
155 0,
156 REG_DWORD,
157 (LPBYTE)&pGlobalData->bWarningSounds,
158 sizeof(BOOL));
159
161 _T("Sound On Activation"),
162 0,
163 REG_DWORD,
164 (LPBYTE)&pGlobalData->bSoundOnActivation,
165 sizeof(BOOL));
166
168}
169
170
171/* Property page dialog callback */
174 UINT uMsg,
177{
178 PGLOBAL_DATA pGlobalData;
179 LPPSHNOTIFY lppsn;
180
181 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
182
183 switch (uMsg)
184 {
185 case WM_INITDIALOG:
186 pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam;
187 if (pGlobalData == NULL)
188 return FALSE;
189
190 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
191
192 /* Set access timeout info */
193 CheckDlgButton(hwndDlg,
195 pGlobalData->accessTimeout.dwFlags & ATF_TIMEOUTON ? BST_CHECKED : BST_UNCHECKED);
198 (pGlobalData->accessTimeout.iTimeOutMSec / 300000) - 1, 0);
200 pGlobalData->accessTimeout.dwFlags & ATF_TIMEOUTON ? TRUE : FALSE);
201
202 CheckDlgButton(hwndDlg,
204 pGlobalData->bWarningSounds ? BST_CHECKED : BST_UNCHECKED);
205
206 CheckDlgButton(hwndDlg,
208 pGlobalData->bSoundOnActivation ? BST_CHECKED : BST_UNCHECKED);
209
210 /* Set serial keys info */
211 CheckDlgButton(hwndDlg,
213 pGlobalData->serialKeys.dwFlags & SERKF_SERIALKEYSON ? BST_CHECKED : BST_UNCHECKED);
215 pGlobalData->serialKeys.dwFlags & SERKF_AVAILABLE ? TRUE : FALSE);
217 pGlobalData->serialKeys.dwFlags & SERKF_AVAILABLE ? TRUE : FALSE);
218
219 return TRUE;
220
221 case WM_COMMAND:
222 switch (LOWORD(wParam))
223 {
224 case IDC_RESET_BOX:
225 pGlobalData->accessTimeout.dwFlags ^= ATF_TIMEOUTON;
227 pGlobalData->accessTimeout.dwFlags & ATF_TIMEOUTON ? TRUE : FALSE);
228 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
229 break;
230
231 case IDC_RESET_COMBO:
232 if (HIWORD(wParam) == CBN_CLOSEUP)
233 {
234 INT nSel;
235 nSel = SendDlgItemMessage(hwndDlg, IDC_RESET_COMBO, CB_GETCURSEL, 0, 0);
236 pGlobalData->accessTimeout.iTimeOutMSec = (ULONG)((nSel + 1) * 300000);
237 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
238 }
239 break;
240
242 pGlobalData->bWarningSounds = !pGlobalData->bWarningSounds;
243 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
244 break;
245
247 pGlobalData->bSoundOnActivation = !pGlobalData->bSoundOnActivation;
248 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
249 break;
250
251 case IDC_SERIAL_BOX:
252 pGlobalData->serialKeys.dwFlags ^= SERKF_SERIALKEYSON;
253 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
254 break;
255
259 hwndDlg,
261 (LPARAM)pGlobalData))
262 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
263 break;
264
266 break;
267
269 break;
270
271 default:
272 break;
273 }
274 break;
275
276 case WM_NOTIFY:
277 lppsn = (LPPSHNOTIFY)lParam;
278 if (lppsn->hdr.code == PSN_APPLY)
279 {
280 WriteGlobalData(pGlobalData);
281 return TRUE;
282 }
283 break;
284 }
285
286 return FALSE;
287}
struct _GLOBAL_DATA * PGLOBAL_DATA
#define RegCloseKey(hKey)
Definition: registry.h:47
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HINSTANCE hApplet
Definition: access.c:17
INT_PTR CALLBACK SerialKeysDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: general.c:17
static VOID FillResetComboBox(HWND hwnd)
Definition: general.c:104
INT_PTR CALLBACK GeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: general.c:173
static VOID WriteGlobalData(PGLOBAL_DATA pGlobalData)
Definition: general.c:125
#define BAUDTICKS
Definition: general.c:12
static UINT nBaudArray[BAUDTICKS]
Definition: general.c:13
#define IDC_ADMIN_USERS_BOX
Definition: resource.h:58
#define IDC_NOTIFICATION_MESSAGE
Definition: resource.h:53
#define IDC_ADMIN_LOGON_BOX
Definition: resource.h:57
#define IDD_SERIALKEYSOPTIONS
Definition: resource.h:21
#define IDC_SERIAL_BUTTON
Definition: resource.h:56
#define IDC_SERIAL_PORT_COMBO
Definition: resource.h:101
#define IDC_NOTIFICATION_SOUND
Definition: resource.h:54
#define IDC_RESET_COMBO
Definition: resource.h:52
#define IDC_SERIAL_BAUD_COMBO
Definition: resource.h:102
#define IDC_RESET_BOX
Definition: resource.h:51
#define IDS_MINUTES
Definition: resource.h:31
#define IDC_SERIAL_BOX
Definition: resource.h:55
#define CALLBACK
Definition: compat.h:35
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
FxAutoRegKey hKey
GLdouble n
Definition: glext.h:7729
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define _tcscpy
Definition: tchar.h:623
#define _stprintf
Definition: utility.h:124
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define REG_OPTION_NON_VOLATILE
Definition: nt_native.h:1057
#define KEY_SET_VALUE
Definition: nt_native.h:1017
#define L(x)
Definition: ntvdm.h:50
#define LOWORD(l)
Definition: pedump.c:82
long LONG
Definition: pedump.c:60
#define PropSheet_Changed(d, w)
Definition: prsht.h:344
#define PSN_APPLY
Definition: prsht.h:117
#define LPPROPSHEETPAGE
Definition: prsht.h:390
struct _PSHNOTIFY * LPPSHNOTIFY
#define WM_NOTIFY
Definition: richedit.h:61
#define REG_DWORD
Definition: sdbapi.c:596
ACCESSTIMEOUT accessTimeout
Definition: access.h:53
BOOL bWarningSounds
Definition: access.h:57
SERIALKEYS serialKeys
Definition: access.h:54
BOOL bSoundOnActivation
Definition: access.h:58
NMHDR hdr
Definition: prsht.h:330
UINT code
Definition: winuser.h:3149
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
int32_t INT_PTR
Definition: typedefs.h:64
unsigned char * LPBYTE
Definition: typedefs.h:53
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
#define HIWORD(l)
Definition: typedefs.h:247
#define _T(x)
Definition: vfdio.h:22
#define lstrcpy
Definition: winbase.h:3799
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG_PTR LPARAM
Definition: windef.h:208
UINT_PTR WPARAM
Definition: windef.h:207
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define RegSetValueEx
Definition: winreg.h:533
#define RegCreateKeyEx
Definition: winreg.h:501
#define DWLP_USER
Definition: winuser.h:866
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
#define IDCANCEL
Definition: winuser.h:825
#define BST_UNCHECKED
Definition: winuser.h:199
#define SERKF_AVAILABLE
Definition: winuser.h:2147
#define SPI_SETACCESSTIMEOUT
Definition: winuser.h:1400
#define WM_COMMAND
Definition: winuser.h:1730
#define CB_SETCURSEL
Definition: winuser.h:1951
#define DialogBoxParam
Definition: winuser.h:5754
#define WM_INITDIALOG
Definition: winuser.h:1729
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define IDOK
Definition: winuser.h:824
#define SPIF_SENDCHANGE
Definition: winuser.h:1562
#define CBN_CLOSEUP
Definition: winuser.h:1962
#define SPIF_UPDATEINIFILE
Definition: winuser.h:1561
#define CB_ADDSTRING
Definition: winuser.h:1926
#define SendMessage
Definition: winuser.h:5833
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetParent(_In_ HWND)
#define LoadString
Definition: winuser.h:5809
#define SERKF_SERIALKEYSON
Definition: winuser.h:2149
#define SystemParametersInfo
Definition: winuser.h:5848
#define CB_GETCURSEL
Definition: winuser.h:1933
#define ATF_TIMEOUTON
Definition: winuser.h:1565
#define SendDlgItemMessage
Definition: winuser.h:5832
#define MAKEINTRESOURCE
Definition: winuser.h:591
#define BST_CHECKED
Definition: winuser.h:197
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
char TCHAR
Definition: xmlstorage.h:189