|
|
#include "precomp.h"
#include "resource.h"
#include "global.h"
#include "PropPg.h"
#include "SetInSht.h"
#include "nmakwiz.h"
#include "nmakreg.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
// Static member vars
CIntroSheet* CIntroSheet::ms_pIntroSheet = NULL;
CIntroSheet::CIntroSheet( void ) : m_PropertySheetPage( MAKEINTRESOURCE( IDD_PROPPAGE_DEFAULT ), CIntroSheet::DlgProc ), m_bBeenToNext( FALSE ), m_pFilePane(NULL) { ms_pIntroSheet = this; }
CIntroSheet::~CIntroSheet(void) { delete m_pFilePane; m_pFilePane = NULL;
ms_pIntroSheet = NULL; }
////////////////////////////////////////////////////////////////////////////////////////////////////
// Static member fns
INT_PTR CALLBACK CIntroSheet::DlgProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) {
switch( message ) { case WM_INITDIALOG: { PropSheet_SetWizButtons( GetParent( hDlg ), PSWIZB_NEXT | PSWIZB_BACK ); ms_pIntroSheet->_CreateFilePane(hDlg); return TRUE;
}
case WM_NOTIFY: { switch( reinterpret_cast< NMHDR FAR* >( lParam )->code ) { case PSN_QUERYCANCEL: SetWindowLong( hDlg, DWL_MSGRESULT, !VerifyExitMessageBox()); return TRUE;
case PSN_SETACTIVE: g_hwndActive = hDlg; PropSheet_SetWizButtons( GetParent( hDlg ), PSWIZB_NEXT | PSWIZB_BACK ); ms_pIntroSheet->m_pFilePane->Validate(FALSE); return TRUE;
case PSN_WIZNEXT: if (!ms_pIntroSheet->m_pFilePane->Validate(TRUE)) { SetWindowLong(hDlg, DWL_MSGRESULT, -1); return TRUE; }
if (ms_pIntroSheet->m_bBeenToNext) { g_pWiz->m_SettingsSheet.PrepSettings(); g_pWiz->m_CallModeSheet.PrepSettings(); }
ms_pIntroSheet->m_bBeenToNext = TRUE; break; } break; }
default: break; }
return FALSE; }
//
// _CreateFilePane()
//
void CIntroSheet::_CreateFilePane(HWND hDlg) { RECT rect;
GetClientRect(hDlg, &rect); int iHeight = rect.bottom - rect.top; int iWidth = rect.right - CPropertyDataWindow2::mcs_iLeft;
m_pFilePane = new CFilePanePropWnd2(hDlg, IDD_FILEPANE_INTRO, TEXT("IDD_FILEPANE_INTRO"), 0, CPropertyDataWindow2::mcs_iLeft, CPropertyDataWindow2::mcs_iTop, iWidth, iHeight);
HWND hwndCond = GetDlgItem(m_pFilePane->GetHwnd(), IDC_RADIO_LOAD_SAVED_CONFIG); m_pFilePane->ConnectControlsToCheck(IDC_RADIO_LOAD_SAVED_CONFIG, 2, new CControlID(hwndCond, IDC_RADIO_LOAD_SAVED_CONFIG, IDE_SAVED_CONFIG_FILE, CControlID::EDIT), new CControlID(hwndCond, IDC_RADIO_LOAD_SAVED_CONFIG, IDC_BROWSE_CONFIG_FILE, CControlID::CHECK));
m_pFilePane->SetFilePane(TRUE, IDE_SAVED_CONFIG_FILE, IDC_RADIO_LOAD_SAVED_CONFIG, IDC_BROWSE_CONFIG_FILE, TEXT("Configuration File (*.ini)"), TEXT(".ini"), TEXT("Nm3c.ini"));
//
// Get last edited/saved config from registry
//
HKEY hKey; TCHAR szFile[MAX_PATH];
szFile[0] = 0;
if (RegOpenKey(HKEY_LOCAL_MACHINE, REGKEY_NMRK, &hKey) == ERROR_SUCCESS) { DWORD dwType; DWORD cb;
dwType = REG_SZ; cb = sizeof(szFile);
RegQueryValueEx(hKey, REGVAL_LASTCONFIG, NULL, &dwType, (LPBYTE)szFile, &cb); }
Edit_SetText(GetDlgItem(m_pFilePane->GetHwnd(), IDE_SAVED_CONFIG_FILE), szFile); m_pFilePane->ShowWindow(TRUE); m_pFilePane->SetCheck(IDC_RADIO_START_FROM_SCRATCH, TRUE); }
|