windows-nt/Source/XPSP1/NT/shell/osshell/accessib/accwiz/pgtmeout.cpp
2020-09-26 16:20:57 +08:00

148 lines
3.1 KiB
C++

//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);
}