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 (johannes.anderwald@reactos.org)
7 * Copyright 2007 Eric Kohl
13 OnInitDialog(HWND hwndDlg
, PGLOBAL_DATA pGlobalData
)
18 /* Add strings to the combo-box */
19 for (i
= 0; i
< 4; i
++)
21 LoadString(hApplet
, IDS_SENTRY_NONE
+ i
, szBuffer
, 256);
22 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_ADDSTRING
, 0, (LPARAM
)szBuffer
);
25 /* Select a combo-box item */
26 SendDlgItemMessage(hwndDlg
, IDC_SENTRY_COMBO
, CB_SETCURSEL
, pGlobalData
->ssSoundSentry
.iWindowsEffect
, 0);
28 /* Initialize SoundSentry settings */
29 if (!(pGlobalData
->ssSoundSentry
.dwFlags
& SSF_AVAILABLE
))
31 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_BOX
), FALSE
);
32 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
33 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
37 if (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)
39 CheckDlgButton(hwndDlg
, IDC_SENTRY_BOX
, BST_CHECKED
);
43 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), FALSE
);
44 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), FALSE
);
48 /* Initialize ShowSounds settings */
49 if (pGlobalData
->bShowSounds
)
50 CheckDlgButton(hwndDlg
, IDC_SSHOW_BOX
, BST_CHECKED
);
54 /* Property page dialog callback */
56 SoundPageProc(HWND hwndDlg
,
61 PGLOBAL_DATA pGlobalData
;
63 pGlobalData
= (PGLOBAL_DATA
)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
68 pGlobalData
= (PGLOBAL_DATA
)((LPPROPSHEETPAGE
)lParam
)->lParam
;
70 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)pGlobalData
);
72 OnInitDialog(hwndDlg
, pGlobalData
);
76 switch (LOWORD(wParam
))
79 pGlobalData
->ssSoundSentry
.dwFlags
^= SSF_SOUNDSENTRYON
;
80 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_TEXT
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
81 EnableWindow(GetDlgItem(hwndDlg
, IDC_SENTRY_COMBO
), (pGlobalData
->ssSoundSentry
.dwFlags
& SSF_SOUNDSENTRYON
)?TRUE
:FALSE
);
82 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
85 case IDC_SENTRY_COMBO
:
86 if (HIWORD(wParam
) == CBN_SELENDOK
)
88 pGlobalData
->ssSoundSentry
.iWindowsEffect
=
89 (DWORD
)SendMessage((HWND
)lParam
, CB_GETCURSEL
, 0, 0);
90 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
95 pGlobalData
->bShowSounds
= !pGlobalData
->bShowSounds
;
96 PropSheet_Changed(GetParent(hwndDlg
), hwndDlg
);
105 switch (((LPNMHDR
)lParam
)->code
)
108 SystemParametersInfo(SPI_SETSOUNDSENTRY
,
110 &pGlobalData
->ssSoundSentry
,
111 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);
112 SystemParametersInfo(SPI_SETSHOWSOUNDS
,
113 pGlobalData
->bShowSounds
,
115 SPIF_UPDATEINIFILE
| SPIF_SENDCHANGE
);