2 * PROJECT: ReactOS Accessibility Control Panel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/cpl/access/sound.c
5 * PURPOSE: Sound-related acessibility settings
6 * COPYRIGHT: Copyright 2004 Johannes Anderwald (j_anderw@sbox.tugraz.at)
7 * Copyright 2007 Eric Kohl
14 OnInitDialog(HWND hwndDlg
, PGLOBAL_DATA pGlobalData
)
19 /* Add strings to the combo-box */
20 for (i
= 0; i
< 4; i
++)
22 LoadString(hApplet
, IDS_SENTRY_NONE
+ i
, szBuffer
, 256);
23 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_ADDSTRING
, 0, (LPARAM
)szBuffer
);
26 /* Select a combo-box item */
27 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_SETCURSEL
, pGlobalData
->ssSoundSentry
.iWindowsEffect
, 0);
29 /* Initialize SoundSentry settings */
30 if (!(pGlobalData
->ssSoundSentry
.dwFlags
& SSF_AVAILABLE
))
32 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_BOX
), FALSE
);
33 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
34 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
38 if (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)
40 CheckDlgButton(hwndDlg
, IDC_SENTRY_BOX
, BST_CHECKED
);
44 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
45 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
49 /* Initialize ShowSounds settings */
50 if (pGlobalData
->bShowSounds
)
51 CheckDlgButton(hwndDlg
, IDC_SSHOW_BOX
, BST_CHECKED
);
55 /* Property page dialog callback */
57 SoundPageProc(HWND hwndDlg
,
62 PGLOBAL_DATA pGlobalData
;
64 pGlobalData
= (PGLOBAL_DATA
)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
69 pGlobalData
= (PGLOBAL_DATA
)((LPPROPSHEETPAGE
)lParam
)->lParam
;
71 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)pGlobalData
);
73 OnInitDialog(hwndDlg
, pGlobalData
);
77 switch (LOWORD(wParam
))
80 pGlobalData
->ssSoundSentry
.dwFlags
^= SSF_SOUNDSENTRYON
;
81 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
82 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
83 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
86 case IDC_SENTRY_COMBO
:
87 if (HIWORD(wParam
) == CBN_SELENDOK
)
89 pGlobalData
->ssSoundSentry
.iWindowsEffect
=
90 (DWORD
)SendMessage((HWND
)lParam
, CB_GETCURSEL
, 0, 0);
91 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
96 pGlobalData
->bShowSounds
= !pGlobalData
->bShowSounds
;
97 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
106 switch (((LPNMHDR
)lParam
)->code
)
109 SystemParametersInfo(SPI_SETSOUNDSENTRY
,
111 &pGlobalData
->ssSoundSentry
,
112 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);
113 SystemParametersInfo(SPI_SETSHOWSOUNDS
,
114 pGlobalData
->bShowSounds
,
116 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);