//Copyright (c) 1997-2000 Microsoft Corporation #include "pch.hxx" // pch #pragma hdrstop #include "resource.h" #include "pgTmeOut.h" CAccessTimeOutPg::CAccessTimeOutPg( LPPROPSHEETPAGE ppsp ) : WizardPage(ppsp, IDS_WIZACCESSTIMEOUTTITLE, IDS_WIZACCESSTIMEOUTSUBTITLE) { m_dwPageId = IDD_WIZACCESSTIMEOUT; ppsp->pszTemplate = MAKEINTRESOURCE(m_dwPageId); } CAccessTimeOutPg::~CAccessTimeOutPg( VOID ) { } int g_nTimeOuts = 6; DWORD g_rgdwTimeOuts[] = {5*60000, 10*60000, 15*60000, 20*60000, 25*60000, 30*60000}; LRESULT CAccessTimeOutPg::OnInitDialog( HWND hwnd, WPARAM wParam, LPARAM lParam ) { HWND hwndTimeOut = GetDlgItem(m_hwnd, IDC_TO_TIMEOUTVAL); // JMC: TODO: Maybe move these into the string table // Set timeouts for 5 to 30 minutes int i; for (i= 0; i < g_nTimeOuts; i++) { TCHAR buf[256]; wsprintf(buf,__TEXT("%d"),g_rgdwTimeOuts[i]/60000); ComboBox_InsertString(hwndTimeOut, i, buf); } BOOL bEnable = g_Options.m_schemePreview.m_ACCESSTIMEOUT.dwFlags & ATF_TIMEOUTON; if(bEnable) { Button_SetCheck(GetDlgItem(m_hwnd, IDC_TO_ENABLE), TRUE); EnableWindow (GetDlgItem(m_hwnd,IDC_TO_TIMEOUTVAL),TRUE); } else { // Hack for radio buttons if(GetDlgItem(m_hwnd, IDC_TO_DISABLE)) Button_SetCheck(GetDlgItem(m_hwnd, IDC_TO_DISABLE), TRUE); EnableWindow (GetDlgItem(m_hwnd,IDC_TO_TIMEOUTVAL),FALSE); } // Figure out the time to use as default int nIndex = 0; for(i = g_nTimeOuts - 1;i>=0;i--) { // Brute Force find the largest value if(g_rgdwTimeOuts[i] >= g_Options.m_schemePreview.m_ACCESSTIMEOUT.iTimeOutMSec) nIndex = i; else break; } ComboBox_SetCurSel(hwndTimeOut, nIndex); return 1; } void CAccessTimeOutPg::UpdateControls() { // enable/disable the combo box depending on which radio // button is selected if(Button_GetCheck(GetDlgItem(m_hwnd, IDC_TO_ENABLE))) { EnableWindow (GetDlgItem(m_hwnd,IDC_TO_TIMEOUTVAL), TRUE); EnableWindow (GetDlgItem(m_hwnd,IDC_MIN), TRUE); } else { EnableWindow (GetDlgItem(m_hwnd,IDC_TO_TIMEOUTVAL), FALSE); EnableWindow (GetDlgItem(m_hwnd,IDC_MIN), FALSE); } } LRESULT CAccessTimeOutPg::OnCommand( HWND hwnd, WPARAM wParam, LPARAM lParam ) { LRESULT lResult = 1; WORD wNotifyCode = HIWORD(wParam); WORD wCtlID = LOWORD(wParam); HWND hwndCtl = (HWND)lParam; switch(wCtlID) { case IDC_TO_DISABLE: case IDC_TO_ENABLE: // These commands require us to re-enable/disable the appropriate controls UpdateControls(); lResult = 0; break; default: break; } return lResult; } LRESULT CAccessTimeOutPg::OnPSN_WizNext( HWND hwnd, INT idCtl, LPPSHNOTIFY pnmh ) { BOOL bUseAccessTimeOut= Button_GetCheck(GetDlgItem(m_hwnd, IDC_TO_ENABLE)); if(bUseAccessTimeOut) g_Options.m_schemePreview.m_ACCESSTIMEOUT.dwFlags |= ATF_TIMEOUTON; else g_Options.m_schemePreview.m_ACCESSTIMEOUT.dwFlags &= ~ATF_TIMEOUTON; int nIndex = ComboBox_GetCurSel(GetDlgItem(m_hwnd, IDC_TO_TIMEOUTVAL)); g_Options.m_schemePreview.m_ACCESSTIMEOUT.iTimeOutMSec = g_rgdwTimeOuts[nIndex]; g_Options.ApplyPreview(); return WizardPage::OnPSN_WizNext(hwnd, idCtl, pnmh); }