windows-nt/Source/XPSP1/NT/sdktools/appverif/taskpage.cpp
2020-09-26 16:20:57 +08:00

260 lines
5.8 KiB
C++

//
// Application Verifier UI
// Copyright (c) Microsoft Corporation, 2001
//
//
//
// module: TaskPage.cpp
// author: DMihai
// created: 02/22/2001
//
// Description:
//
// "Select a task" wizard page class.
//
#include "stdafx.h"
#include "appverif.h"
#include "TaskPage.h"
#include "Setting.h"
#include "AVUtil.h"
#include "AVGlobal.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//
// Change this if you add/remove/change order
// of radio buttons on this page
//
#define FIRST_RADIO_BUTTON_ID IDC_TASKP_STANDARD_RADIO
//
// Help IDs
//
static DWORD MyHelpIds[] =
{
0, 0
};
/////////////////////////////////////////////////////////////////////////////
// CTaskPage property page
IMPLEMENT_DYNCREATE(CTaskPage, CAppverifPage)
CTaskPage::CTaskPage() : CAppverifPage(CTaskPage::IDD)
{
//{{AFX_DATA_INIT(CTaskPage)
m_nCrtRadio = -1;
//}}AFX_DATA_INIT
}
CTaskPage::~CTaskPage()
{
}
void CTaskPage::DoDataExchange(CDataExchange* pDX)
{
CAppverifPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTaskPage)
DDX_Control(pDX, IDC_TASKP_NEXTDESCR_STATIC, m_NextDescription);
DDX_Radio(pDX, IDC_TASKP_STANDARD_RADIO, m_nCrtRadio);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTaskPage, CAppverifPage)
//{{AFX_MSG_MAP(CTaskPage)
ON_BN_CLICKED(IDC_TASKP_STANDARD_RADIO, OnStandardRadio)
ON_BN_CLICKED(IDC_TASKP_VIEWSETT_RADIO, OnViewSettRadio)
ON_BN_CLICKED(IDC_TASKP_DELETESETT_RADIO, OnDeletesettRadio)
ON_BN_CLICKED(IDC_TASKP_LOGO_RADIO, OnLogoRadio)
ON_WM_CONTEXTMENU()
ON_MESSAGE( WM_HELP, OnHelp )
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
ULONG CTaskPage::GetDialogId() const
{
return IDD_TASK_PAGE;
}
/////////////////////////////////////////////////////////////////////////////
LRESULT CTaskPage::OnWizardNext()
{
LRESULT lNextPageId;
lNextPageId = -1;
if( UpdateData() == TRUE )
{
switch( m_nCrtRadio )
{
case IDC_TASKP_STANDARD_RADIO - FIRST_RADIO_BUTTON_ID:
g_NewSettings.m_SettingsType = AVSettingsTypeStandard;
lNextPageId = IDD_APPLICATION_PAGE;
break;
case IDC_TASKP_VIEWSETT_RADIO - FIRST_RADIO_BUTTON_ID:
lNextPageId = IDD_VIEWSETT_PAGE;
break;
case IDC_TASKP_LOGO_RADIO - FIRST_RADIO_BUTTON_ID:
lNextPageId = IDD_CHOOSEEXE_PAGE;
break;
case IDC_TASKP_DELETESETT_RADIO - FIRST_RADIO_BUTTON_ID:
default:
//
// Oops. how did we get here?
//
ASSERT( FALSE );
}
}
//
// Go to the next page
//
GoingToNextPageNotify( lNextPageId );
return lNextPageId;
}
/////////////////////////////////////////////////////////////////////////////
BOOL CTaskPage::OnSetActive()
{
ASSERT_VALID( m_pParentSheet );
m_pParentSheet->SetWizardButtons(
PSWIZB_NEXT );
return CAppverifPage::OnSetActive();
}
/////////////////////////////////////////////////////////////////////////////
BOOL CTaskPage::OnWizardFinish()
{
BOOL bFinish;
INT nResponse;
bFinish = FALSE;
if( TRUE == UpdateData( TRUE ) )
{
//
// This must have been the "delete settings" selection
// if we had a "Finish" button.
//
ASSERT( IDC_TASKP_DELETESETT_RADIO - FIRST_RADIO_BUTTON_ID == m_nCrtRadio );
nResponse = AfxMessageBox( IDS_DELETE_ALL_SETTINGS,
MB_YESNO );
if( IDYES == nResponse )
{
g_NewSettings.m_aApplicationData.DeleteAll();
bFinish = AVSaveNewSettings() && CAppverifPage::OnWizardFinish();
}
}
return bFinish;
}
/////////////////////////////////////////////////////////////////////////////
BOOL CTaskPage::OnInitDialog()
{
//
// Always start with standard settings
//
m_nCrtRadio = IDC_TASKP_STANDARD_RADIO - FIRST_RADIO_BUTTON_ID;
CAppverifPage::OnInitDialog();
AVSetWindowText( m_NextDescription, IDS_TASKP_NEXT_DESCR_STANDARD );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/////////////////////////////////////////////////////////////////////////////
// CTaskPage message handlers
void CTaskPage::OnStandardRadio()
{
ASSERT_VALID( m_pParentSheet );
m_pParentSheet->SetWizardButtons(
PSWIZB_NEXT );
AVSetWindowText( m_NextDescription, IDS_TASKP_NEXT_DESCR_STANDARD );
}
void CTaskPage::OnViewSettRadio()
{
ASSERT_VALID( m_pParentSheet );
m_pParentSheet->SetWizardButtons(
PSWIZB_NEXT );
AVSetWindowText( m_NextDescription, IDS_TASKP_NEXT_DESCR_VIEW );
}
void CTaskPage::OnDeletesettRadio()
{
ASSERT_VALID( m_pParentSheet );
m_pParentSheet->SetWizardButtons(
PSWIZB_FINISH );
AVSetWindowText( m_NextDescription, IDS_TASKP_NEXT_DESCR_DELETE );
}
void CTaskPage::OnLogoRadio()
{
ASSERT_VALID( m_pParentSheet );
m_pParentSheet->SetWizardButtons(
PSWIZB_NEXT );
AVSetWindowText( m_NextDescription, IDS_TASKP_NEXT_DESCR_LOGO );
}
/////////////////////////////////////////////////////////////
LONG CTaskPage::OnHelp( WPARAM wParam, LPARAM lParam )
{
LONG lResult = 0;
LPHELPINFO lpHelpInfo = (LPHELPINFO)lParam;
::WinHelp(
(HWND) lpHelpInfo->hItemHandle,
g_szAVHelpFile,
HELP_WM_HELP,
(DWORD_PTR) MyHelpIds );
return lResult;
}
/////////////////////////////////////////////////////////////////////////////
void CTaskPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
::WinHelp(
pWnd->m_hWnd,
g_szAVHelpFile,
HELP_CONTEXTMENU,
(DWORD_PTR) MyHelpIds );
}