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
15 OnInitDialog(HWND hwndDlg
, PGLOBAL_DATA pGlobalData
)
20 /* Add strings to the combo-box */
21 for (i
= 0; i
< 4; i
++)
23 LoadString(hApplet
, IDS_SENTRY_NONE
+ i
, szBuffer
, 256);
24 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_ADDSTRING
, 0, (LPARAM
)szBuffer
);
27 /* Select a combo-box item */
28 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_SETCURSEL
, pGlobalData
->ssSoundSentry
.iWindowsEffect
, 0);
30 /* Initialize SoundSentry settings */
31 if (!(pGlobalData
->ssSoundSentry
.dwFlags
& SSF_AVAILABLE
))
33 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_BOX
), FALSE
);
34 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
35 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
39 if (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)
41 CheckDlgButton(hwndDlg
, IDC_SENTRY_BOX
, BST_CHECKED
);
45 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
46 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
50 /* Initialize ShowSounds settings */
51 if (pGlobalData
->bShowSounds
)
52 CheckDlgButton(hwndDlg
, IDC_SSHOW_BOX
, BST_CHECKED
);
56 /* Property page dialog callback */
58 SoundPageProc(HWND hwndDlg
,
63 PGLOBAL_DATA pGlobalData
;
65 pGlobalData
= (PGLOBAL_DATA
)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
70 pGlobalData
= (PGLOBAL_DATA
)((LPPROPSHEETPAGE
)lParam
)->lParam
;
72 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)pGlobalData
);
74 OnInitDialog(hwndDlg
, pGlobalData
);
78 switch (LOWORD(wParam
))
81 pGlobalData
->ssSoundSentry
.dwFlags
^= SSF_SOUNDSENTRYON
;
82 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
83 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
84 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
87 case IDC_SENTRY_COMBO
:
88 if (HIWORD(wParam
) == CBN_SELENDOK
)
90 pGlobalData
->ssSoundSentry
.iWindowsEffect
=
91 (DWORD
)SendMessage((HWND
)lParam
, CB_GETCURSEL
, 0, 0);
92 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
97 pGlobalData
->bShowSounds
= !pGlobalData
->bShowSounds
;
98 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
107 switch (((LPNMHDR
)lParam
)->code
)
110 SystemParametersInfo(SPI_SETSOUNDSENTRY
,
112 &pGlobalData
->ssSoundSentry
,
113 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);
114 SystemParametersInfo(SPI_SETSHOWSOUNDS
,
115 pGlobalData
->bShowSounds
,
117 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);