1 /* $Id: sound.c 29112 2007-09-19 21:31:49Z ekohl $
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 /* Add strings to the combo-box */
26 for (i
= 0; i
< 4; i
++)
28 LoadString(hApplet
, IDS_SENTRY_NONE
+ i
, szBuffer
, 256);
29 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_ADDSTRING
, 0, (LPARAM
)szBuffer
);
32 /* Select a combo-box item */
33 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_SETCURSEL
, pGlobalData
->ssSoundSentry
.iWindowsEffect
, 0);
35 /* Initialize SoundSentry settings */
36 if (!(pGlobalData
->ssSoundSentry
.dwFlags
& SSF_AVAILABLE
))
38 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_BOX
), FALSE
);
39 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
40 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
44 if (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)
46 CheckDlgButton(hwndDlg
, IDC_SENTRY_BOX
, BST_CHECKED
);
50 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
51 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
55 /* Initialize ShowSounds settings */
56 if (pGlobalData
->bShowSounds
)
57 CheckDlgButton(hwndDlg
, IDC_SSHOW_BOX
, BST_CHECKED
);
61 /* Property page dialog callback */
63 SoundPageProc(HWND hwndDlg
,
68 PGLOBAL_DATA pGlobalData
;
70 pGlobalData
= (PGLOBAL_DATA
)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
75 pGlobalData
= (PGLOBAL_DATA
)((LPPROPSHEETPAGE
)lParam
)->lParam
;
77 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)pGlobalData
);
79 OnInitDialog(hwndDlg
, pGlobalData
);
83 switch (LOWORD(wParam
))
86 pGlobalData
->ssSoundSentry
.dwFlags
^= SSF_SOUNDSENTRYON
;
87 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
88 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
89 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
92 case IDC_SENTRY_COMBO
:
93 if (HIWORD(wParam
) == CBN_SELENDOK
)
95 pGlobalData
->ssSoundSentry
.iWindowsEffect
=
96 (DWORD
)SendMessage((HWND
)lParam
, CB_GETCURSEL
, 0, 0);
97 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
102 pGlobalData
->bShowSounds
= !pGlobalData
->bShowSounds
;
103 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
112 switch (((LPNMHDR
)lParam
)->code
)
115 SystemParametersInfo(SPI_SETSOUNDSENTRY
,
117 &pGlobalData
->ssSoundSentry
,
118 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);
119 SystemParametersInfo(SPI_SETSHOWSOUNDS
,
120 pGlobalData
->bShowSounds
,
122 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);