3 * PROJECT: ReactOS Accessibility Control Panel
4 * LICENSE: GPL - See COPYING in the top level directory
5 * FILE: dll/cpl/access/sound.c
6 * PURPOSE: Sound-related acessibility settings
7 * COPYRIGHT: Copyright 2004 Johannes Anderwald (j_anderw@sbox.tugraz.at)
8 * Copyright 2007 Eric Kohl
20 OnInitDialog(HWND hwndDlg
, PGLOBAL_DATA pGlobalData
)
25 pGlobalData
->ssSoundSentry
.cbSize
= sizeof(SOUNDSENTRY
);
26 SystemParametersInfo(SPI_GETSOUNDSENTRY
,
28 &pGlobalData
->ssSoundSentry
,
31 SystemParametersInfo(SPI_GETSHOWSOUNDS
,
33 &pGlobalData
->bShowSounds
,
36 /* Add strings to the combo-box */
37 for (i
= 0; i
< 4; i
++)
39 LoadString(hApplet
, IDS_SENTRY_NONE
+ i
, szBuffer
, 256);
40 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_ADDSTRING
, 0, (LPARAM
)szBuffer
);
43 /* Select a combo-box item */
44 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_SETCURSEL
, pGlobalData
->ssSoundSentry
.iWindowsEffect
, 0);
46 /* Initialize SoundSentry settings */
47 if (!(pGlobalData
->ssSoundSentry
.dwFlags
& SSF_AVAILABLE
))
49 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_BOX
), FALSE
);
50 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
51 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
55 if (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)
57 CheckDlgButton(hwndDlg
, IDC_SENTRY_BOX
, BST_CHECKED
);
61 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
62 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
66 /* Initialize ShowSounds settings */
67 if (pGlobalData
->bShowSounds
)
68 CheckDlgButton(hwndDlg
, IDC_SSHOW_BOX
, BST_CHECKED
);
72 /* Property page dialog callback */
74 SoundPageProc(HWND hwndDlg
,
79 PGLOBAL_DATA pGlobalData
;
81 pGlobalData
= (PGLOBAL_DATA
)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
86 pGlobalData
= (PGLOBAL_DATA
)((LPPROPSHEETPAGE
)lParam
)->lParam
;
88 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)pGlobalData
);
90 OnInitDialog(hwndDlg
, pGlobalData
);
94 switch (LOWORD(wParam
))
97 pGlobalData
->ssSoundSentry
.dwFlags
^= SSF_SOUNDSENTRYON
;
98 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
99 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
100 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
103 case IDC_SENTRY_COMBO
:
104 if (HIWORD(wParam
) == CBN_SELENDOK
)
106 pGlobalData
->ssSoundSentry
.iWindowsEffect
=
107 (DWORD
)SendMessage((HWND
)lParam
, CB_GETCURSEL
, 0, 0);
108 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
113 pGlobalData
->bShowSounds
= !pGlobalData
->bShowSounds
;
114 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
123 switch (((LPNMHDR
)lParam
)->code
)
126 SystemParametersInfo(SPI_SETSOUNDSENTRY
,
128 &pGlobalData
->ssSoundSentry
,
129 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);
130 SystemParametersInfo(SPI_SETSHOWSOUNDS
,
131 pGlobalData
->bShowSounds
,
133 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);