Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensound.c
Go to the documentation of this file.
00001 /* $Id: sound.c 29112 2007-09-19 21:31:49Z ekohl $ 00002 * 00003 * PROJECT: ReactOS Accessibility Control Panel 00004 * LICENSE: GPL - See COPYING in the top level directory 00005 * FILE: dll/cpl/access/sound.c 00006 * PURPOSE: Sound-related acessibility settings 00007 * COPYRIGHT: Copyright 2004 Johannes Anderwald (j_anderw@sbox.tugraz.at) 00008 * Copyright 2007 Eric Kohl 00009 */ 00010 00011 #include "access.h" 00012 00013 00014 static VOID 00015 OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData) 00016 { 00017 TCHAR szBuffer[256]; 00018 UINT i; 00019 00020 /* Add strings to the combo-box */ 00021 for (i = 0; i < 4; i++) 00022 { 00023 LoadString(hApplet, IDS_SENTRY_NONE + i, szBuffer, 256); 00024 SendDlgItemMessage(hwndDlg, IDC_SENTRY_COMBO, CB_ADDSTRING, 0, (LPARAM)szBuffer); 00025 } 00026 00027 /* Select a combo-box item */ 00028 SendDlgItemMessage(hwndDlg, IDC_SENTRY_COMBO, CB_SETCURSEL, pGlobalData->ssSoundSentry.iWindowsEffect, 0); 00029 00030 /* Initialize SoundSentry settings */ 00031 if (!(pGlobalData->ssSoundSentry.dwFlags & SSF_AVAILABLE)) 00032 { 00033 EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_BOX), FALSE); 00034 EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_TEXT), FALSE); 00035 EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_COMBO), FALSE); 00036 } 00037 else 00038 { 00039 if (pGlobalData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON) 00040 { 00041 CheckDlgButton(hwndDlg, IDC_SENTRY_BOX, BST_CHECKED); 00042 } 00043 else 00044 { 00045 EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_TEXT), FALSE); 00046 EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_COMBO), FALSE); 00047 } 00048 } 00049 00050 /* Initialize ShowSounds settings */ 00051 if (pGlobalData->bShowSounds) 00052 CheckDlgButton(hwndDlg, IDC_SSHOW_BOX, BST_CHECKED); 00053 } 00054 00055 00056 /* Property page dialog callback */ 00057 INT_PTR CALLBACK 00058 SoundPageProc(HWND hwndDlg, 00059 UINT uMsg, 00060 WPARAM wParam, 00061 LPARAM lParam) 00062 { 00063 PGLOBAL_DATA pGlobalData; 00064 00065 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); 00066 00067 switch (uMsg) 00068 { 00069 case WM_INITDIALOG: 00070 pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam; 00071 00072 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); 00073 00074 OnInitDialog(hwndDlg, pGlobalData); 00075 break; 00076 00077 case WM_COMMAND: 00078 switch (LOWORD(wParam)) 00079 { 00080 case IDC_SENTRY_BOX: 00081 pGlobalData->ssSoundSentry.dwFlags ^= SSF_SOUNDSENTRYON; 00082 EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_TEXT), (pGlobalData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)?TRUE:FALSE); 00083 EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_COMBO), (pGlobalData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)?TRUE:FALSE); 00084 PropSheet_Changed(GetParent(hwndDlg), hwndDlg); 00085 break; 00086 00087 case IDC_SENTRY_COMBO: 00088 if (HIWORD(wParam) == CBN_SELENDOK) 00089 { 00090 pGlobalData->ssSoundSentry.iWindowsEffect = 00091 (DWORD)SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0); 00092 PropSheet_Changed(GetParent(hwndDlg), hwndDlg); 00093 } 00094 break; 00095 00096 case IDC_SSHOW_BOX: 00097 pGlobalData->bShowSounds = !pGlobalData->bShowSounds; 00098 PropSheet_Changed(GetParent(hwndDlg), hwndDlg); 00099 break; 00100 00101 default: 00102 break; 00103 } 00104 break; 00105 00106 case WM_NOTIFY: 00107 switch (((LPNMHDR)lParam)->code) 00108 { 00109 case PSN_APPLY: 00110 SystemParametersInfo(SPI_SETSOUNDSENTRY, 00111 sizeof(SOUNDSENTRY), 00112 &pGlobalData->ssSoundSentry, 00113 SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 00114 SystemParametersInfo(SPI_SETSHOWSOUNDS, 00115 pGlobalData->bShowSounds, 00116 0, 00117 SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 00118 return TRUE; 00119 00120 default: 00121 break; 00122 } 00123 break; 00124 } 00125 00126 return FALSE; 00127 } Generated on Fri May 25 2012 04:14:57 for ReactOS by
1.7.6.1
|