ReactOS 0.4.15-dev-7654-g6bc40d3
joy.c
Go to the documentation of this file.
1/*
2 * ReactOS
3 * Copyright (C) 2004 ReactOS Team
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19/*
20 *
21 * PROJECT: ReactOS Software Control Panel
22 * FILE: dll/cpl/joy/joy.c
23 * PURPOSE: ReactOS Software Control Panel
24 * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
25 * UPDATE HISTORY:
26 * 10-18-2007 Created
27 * 05-18-2020 Updated (init of dialog and combobox)
28 */
29
30#include "joy.h"
31
32#define NUM_APPLETS (1)
33
34LONG CALLBACK SystemApplet(HWND hwnd, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
36
37/* Applets */
38
40{
42};
43
44VOID
46{
48 RECT rect;
49 int Size;
50 TCHAR szBuf[256];
51
53 Size = rect.right - rect.left - 250;
54
55 LoadString(hApplet, IDS_STATUS, szBuf, sizeof(szBuf) / sizeof(TCHAR));
56
57 ZeroMemory(&dummy, sizeof(LV_COLUMN));
59 dummy.iSubItem = 0;
60 dummy.pszText = (LPTSTR)szBuf;
61 dummy.cx = Size;
63
65
66 LoadString(hApplet, IDS_CONTROLLER, szBuf, sizeof(szBuf) / sizeof(TCHAR));
67
68 ZeroMemory(&dummy, sizeof(LV_COLUMN));
70 dummy.iSubItem = 0;
71 dummy.pszText = (LPTSTR)szBuf;
72 dummy.cx = rect.right - rect.left - Size;
74}
75
78{
80
81 switch (uMsg)
82 {
83 case WM_INITDIALOG:
84 {
85 WCHAR szBuf[256];
86 HWND hComboHwnd = GetDlgItem(hwndDlg,IDC_PREFERRED_DEV_COMBO);
87
88 LoadStringW(hApplet, IDS_NONE, szBuf, _countof(szBuf));
89 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
90 SendMessageW(hComboHwnd, CB_SETCURSEL, 0, (LPARAM)NULL);
91 break;
92 }
93
94 case WM_COMMAND:
95 switch (LOWORD(wParam))
96 {
97 case IDOK:
98 EndDialog(hwndDlg,LOWORD(wParam));
99 break;
100
101 case IDCANCEL:
102 EndDialog(hwndDlg,LOWORD(wParam));
103 break;
104 }
105 break;
106
107 case WM_NOTIFY:
108 break;
109
110 case WM_SYSCOMMAND:
111 switch (LOWORD(wParam))
112 {
113 case SC_CONTEXTHELP:
114 // Not implemented yet
115 break;
116 }
117 break;
118 }
119 return 0;
120}
121
124{
126
127 switch (uMsg)
128 {
129 case WM_INITDIALOG:
130 {
131 WCHAR szBuf[2];
132 HWND hComboHwnd;
133 szBuf[1] = UNICODE_NULL;
134
136
137 hComboHwnd = GetDlgItem(hwndDlg, IDC_AXES_COMBO);
138 szBuf[0] = L'2';
139 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
140 szBuf[0] = L'3';
141 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
142 szBuf[0] = L'4';
143 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
144 SendMessageW(hComboHwnd, CB_SETCURSEL, 0, 0);
145
146 hComboHwnd = GetDlgItem(hwndDlg, IDC_BUTTONS_COMBO);
147 szBuf[0] = L'0';
148 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
149 szBuf[0] = L'1';
150 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
151 szBuf[0] = L'2';
152 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
153 szBuf[0] = L'3';
154 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
155 szBuf[0] = L'4';
156 SendMessageW(hComboHwnd, CB_ADDSTRING, 0, (LPARAM)szBuf);
157 SendMessageW(hComboHwnd, CB_SETCURSEL, 4, 0);
158
159 break;
160 }
161
162 case WM_COMMAND:
163 switch (LOWORD(wParam))
164 {
165 case IDOK:
166 EndDialog(hwndDlg,LOWORD(wParam));
167 break;
168
169 case IDCANCEL:
170 EndDialog(hwndDlg,LOWORD(wParam));
171 break;
172 }
173 break;
174
175 case WM_NOTIFY:
176 break;
177
178 case WM_SYSCOMMAND:
179 switch (LOWORD(wParam))
180 {
181 case SC_CONTEXTHELP:
182 // Not implemented yet
183 break;
184 }
185 break;
186 }
187 return 0;
188}
189
192{
194
195 switch (uMsg)
196 {
197 case WM_INITDIALOG:
198 break;
199
200 case WM_COMMAND:
201 switch (LOWORD(wParam))
202 {
206 hwndDlg,
208 break;
209
210 case IDOK:
211 EndDialog(hwndDlg,LOWORD(wParam));
212 break;
213
214 case IDCANCEL:
215 EndDialog(hwndDlg,LOWORD(wParam));
216 break;
217 }
218 break;
219
220 case WM_NOTIFY:
221 break;
222
223 case WM_SYSCOMMAND:
224 switch (LOWORD(wParam))
225 {
226 case SC_CONTEXTHELP:
227 // Not implemented yet
228 break;
229 }
230 break;
231 }
232 return 0;
233}
234
235/* Property page dialog callback */
238{
239 static HICON s_hIcon = NULL, s_hIconSm = NULL;
241
242 switch (uMsg)
243 {
244 case WM_INITDIALOG:
251 SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)s_hIcon);
252 SendMessageW(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)s_hIconSm);
253 break;
254
255 case WM_COMMAND:
256 switch (LOWORD(wParam))
257 {
258 case IDC_ADD_BUTTON:
261 hwndDlg,
263 break;
264
268 hwndDlg,
270 break;
271
272 case IDOK:
273 case IDCANCEL:
274 DestroyIcon(s_hIcon);
275 DestroyIcon(s_hIconSm);
276 EndDialog(hwndDlg,LOWORD(wParam));
277 break;
278 }
279 break;
280
281 case WM_NOTIFY:
282 break;
283
284 case WM_SYSCOMMAND:
285 switch (LOWORD(wParam))
286 {
287 case SC_CLOSE:
288 DestroyIcon(s_hIcon);
289 DestroyIcon(s_hIconSm);
290 EndDialog(hwndDlg,LOWORD(wParam));
291 break;
292
293 case SC_CONTEXTHELP:
294 // Not implemented yet
295 break;
296 }
297 break;
298 }
299 return 0;
300}
301
302/* First Applet */
304SystemApplet(HWND hwnd, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
305{
307 UNREFERENCED_PARAMETER(lParam1);
308 UNREFERENCED_PARAMETER(lParam2);
309
312 hwnd,
314
315 return (LONG)TRUE;
316}
317
318/* Control Panel Callback */
320CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
321{
322 CPLINFO *CPlInfo;
323 UINT i = (UINT)lParam1;
324 UNREFERENCED_PARAMETER(hwndCPl);
325
326 switch (uMsg)
327 {
328 case CPL_INIT:
329 return TRUE;
330
331 case CPL_GETCOUNT:
332 return NUM_APPLETS;
333
334 case CPL_INQUIRE:
335 if (i < NUM_APPLETS)
336 {
337 CPlInfo = (CPLINFO*)lParam2;
338 CPlInfo->lData = 0;
339 CPlInfo->idIcon = Applets[i].idIcon;
340 CPlInfo->idName = Applets[i].idName;
341 CPlInfo->idInfo = Applets[i].idDescription;
342 }
343 else
344 {
345 return TRUE;
346 }
347 break;
348
349 case CPL_DBLCLK:
350 if (i < NUM_APPLETS)
351 Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
352 else
353 return TRUE;
354 break;
355 }
356
357 return FALSE;
358}
359
362{
364
365 switch (dwReason)
366 {
370 hApplet = hinstDLL;
371 break;
372 }
373
374 return TRUE;
375}
#define IDD_ADVANCED
Definition: resource.h:10
#define IDS_STATUS
Definition: resource.h:22
#define IDS_NONE
Definition: resource.h:133
DWORD dwReason
Definition: misc.cpp:154
void AddColumns(void)
Definition: column.c:48
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define CPL_INQUIRE
Definition: cpl.h:14
#define CPL_DBLCLK
Definition: cpl.h:16
#define CPL_INIT
Definition: cpl.h:12
#define CPL_GETCOUNT
Definition: cpl.h:13
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define IDS_CPLSYSTEMNAME
Definition: resource.h:23
#define IDS_CPLSYSTEMDESCRIPTION
Definition: resource.h:24
#define IDI_CPLSYSTEM
Definition: resource.h:4
#define IDD_ADD
Definition: resource.h:17
#define IDC_ADD_BUTTON
Definition: resource.h:23
#define IDD_PROPPAGEMAIN
Definition: resource.h:7
#define IDC_CONTROLLER_LIST
Definition: resource.h:20
#define IDD_CUSTOM
Definition: resource.h:9
#define IDC_BUTTONS_COMBO
Definition: resource.h:37
#define IDS_CONTROLLER
Definition: resource.h:15
#define IDC_AXES_COMBO
Definition: resource.h:34
#define IDC_ADVANCED_BUTTON
Definition: resource.h:24
#define IDC_CUSTOM_BUTTON
Definition: resource.h:26
#define IDC_PREFERRED_DEV_COMBO
Definition: resource.h:40
#define IDC_JOYSTICK_RADIO
Definition: resource.h:30
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define CALLBACK
Definition: compat.h:35
#define DLL_THREAD_ATTACH
Definition: compat.h:132
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
Definition: compobj.c:1964
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
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
INT_PTR CALLBACK MainPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: joy.c:237
#define NUM_APPLETS
Definition: joy.c:32
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
Definition: joy.c:361
LONG CALLBACK SystemApplet(HWND hwnd, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
Definition: joy.c:304
INT_PTR CALLBACK AddPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: joy.c:191
APPLET Applets[NUM_APPLETS]
Definition: joy.c:39
INT_PTR CALLBACK CustomPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: joy.c:123
INT_PTR CALLBACK AdvancedPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: joy.c:77
HINSTANCE hApplet
Definition: joy.c:35
HWND hList
Definition: livecd.c:10
static IN DWORD IN LPVOID lpvReserved
static HICON
Definition: imagelist.c:84
unsigned int UINT
Definition: ndis.h:50
#define UNICODE_NULL
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define L(x)
Definition: ntvdm.h:50
#define LOWORD(l)
Definition: pedump.c:82
long LONG
Definition: pedump.c:60
#define ListView_InsertColumn(hwnd, iCol, pcol)
Definition: commctrl.h:2636
#define LVCF_WIDTH
Definition: commctrl.h:2587
#define LVCF_SUBITEM
Definition: commctrl.h:2589
#define LVCF_TEXT
Definition: commctrl.h:2588
#define LV_COLUMN
Definition: commctrl.h:2547
#define WM_NOTIFY
Definition: richedit.h:61
#define _countof(array)
Definition: sndvol32.h:68
& rect
Definition: startmenu.cpp:1413
Definition: hotplug.h:34
int idDescription
Definition: hotplug.h:37
int idName
Definition: hotplug.h:36
int idIcon
Definition: hotplug.h:35
APPLET_PROC AppletProc
Definition: hotplug.h:38
Definition: cpl.h:24
LONG_PTR lData
Definition: cpl.h:28
int idName
Definition: cpl.h:26
int idInfo
Definition: cpl.h:27
int idIcon
Definition: cpl.h:25
#define ICON_BIG
Definition: tnclass.cpp:51
#define ICON_SMALL
Definition: tnclass.cpp:48
int32_t INT_PTR
Definition: typedefs.h:64
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
#define ZeroMemory
Definition: winbase.h:1712
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG_PTR LPARAM
Definition: windef.h:208
UINT_PTR WPARAM
Definition: windef.h:207
#define WINAPI
Definition: msvc.h:6
#define WM_SYSCOMMAND
Definition: winuser.h:1740
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
#define IDCANCEL
Definition: winuser.h:830
#define SC_CONTEXTHELP
Definition: winuser.h:2603
#define IMAGE_ICON
Definition: winuser.h:212
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define WM_COMMAND
Definition: winuser.h:1739
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
Definition: cursoricon.c:2186
#define CB_SETCURSEL
Definition: winuser.h:1960
#define SM_CYSMICON
Definition: winuser.h:1012
#define WM_INITDIALOG
Definition: winuser.h:1738
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define IDOK
Definition: winuser.h:829
#define SM_CXSMICON
Definition: winuser.h:1011
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define CB_ADDSTRING
Definition: winuser.h:1935
#define SC_CLOSE
Definition: winuser.h:2591
#define LoadString
Definition: winuser.h:5818
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define MAKEINTRESOURCE
Definition: winuser.h:591
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2058
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define BST_CHECKED
Definition: winuser.h:197
#define DialogBox
Definition: winuser.h:5760
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2036
char TCHAR
Definition: xmlstorage.h:189
__wchar_t WCHAR
Definition: xmlstorage.h:180
CHAR * LPTSTR
Definition: xmlstorage.h:192