/*++ Copyright (c) 1996 Microsoft Corporation Module Name : progdlg.h Abstract: CProgressDialog dialog class implementation. This progress dialog is shown Author: Michael Cheuk (mcheuk) Project: Link Checker Revision History: --*/ #include "stdafx.h" #include "linkchk.h" #include "progdlg.h" #include "lcmgr.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CProgressDialog::CProgressDialog( ) : /*++ Routine Description: Constructor. Arguments: N/A Return Value: N/A --*/ CDialog(CProgressDialog::IDD, NULL) { //{{AFX_DATA_INIT(CProgressDialog) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } // CProgressDialog::CProgressDialog void CProgressDialog::DoDataExchange( CDataExchange* pDX ) /*++ Routine Description: Called by MFC to change/retrieve dialog data Arguments: pDX - Return Value: N/A --*/ { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CProgressDialog) DDX_Control(pDX, IDC_PROGRESS_BUTTON, m_button); DDX_Control(pDX, IDC_PROGRESS_TEXT, m_staticProgressText); //}}AFX_DATA_MAP } //CProgressDialog::DoDataExchange BEGIN_MESSAGE_MAP(CProgressDialog, CDialog) //{{AFX_MSG_MAP(CProgressDialog) ON_BN_CLICKED(IDC_PROGRESS_BUTTON, OnProgressButton) //}}AFX_MSG_MAP END_MESSAGE_MAP() BOOL CProgressDialog::OnInitDialog( ) /*++ Routine Description: WM_INITDIALOG message handler Arguments: N/A Return Value: BOOL - TRUE if sucess. FALSE otherwise. --*/ { CDialog::OnInitDialog(); if(GetLinkCheckerMgr().Initialize((CProgressLog*)this)) { if(GetLinkCheckerMgr().BeginWorkerThread()) { return TRUE; } } CString str; str.LoadString(IDS_LC_FAIL); Log(str); str.LoadString(IDS_CLOSE); SetButtonText(str); return TRUE; } // CProgressDialog::OnInitDialog void CProgressDialog::OnProgressButton( ) /*++ Routine Description: Progress button click handler. This functions will terminate the worker thread or close the dialog. Arguments: N/A Return Value: N/A --*/ { if(GetLinkCheckerMgr().IsWorkerThreadRunning()) { CString str; str.LoadString(IDS_WORKER_THREAD_TERMINATE); Log(str); // signal the worker thread to terminate GetLinkCheckerMgr().SignalWorkerThreadToTerminate(); } else { CDialog::OnOK(); } } // CProgressDialog::OnProgressButton void CProgressDialog::WorkerThreadComplete( ) /*++ Routine Description: Worker thread notification. Arguments: N/A Return Value: N/A --*/ { CString str; str.LoadString(IDS_PROGRESS_FINISH); Log(str); str.LoadString(IDS_CLOSE); SetButtonText(str); } // CProgressDialog::WorkerThreadComplete