|
|
//----------------------------------------------------------------------------
//
// Copyright (c) 1997-1999 Microsoft Corporation
// All rights reserved.
//
// File Name:
// newedit.c
//
// Description:
// This file has the dialog proc for the New Or Edit Script page.
//
//----------------------------------------------------------------------------
#include "pch.h"
#include "resource.h"
//----------------------------------------------------------------------------
//
// Function: GreyUnGreyNewEdit
//
// Purpose: Greys/ungreys controls on this page.
//
//----------------------------------------------------------------------------
VOID GreyUnGreyNewEdit(HWND hwnd) { BOOL bUnGrey = IsDlgButtonChecked(hwnd, IDC_EDITSCRIPT);
EnableWindow(GetDlgItem(hwnd, IDT_SCRIPTNAME), bUnGrey); EnableWindow(GetDlgItem(hwnd, IDC_BROWSE), bUnGrey); EnableWindow(GetDlgItem(hwnd, IDC_GREYTEXT), bUnGrey); }
//----------------------------------------------------------------------------
//
// Function: OnEditOrNewInitDialog
//
// Purpose:
//
// Arguments: IN HWND hwnd - handle to the dialog box
//
// Returns: VOID
//
//----------------------------------------------------------------------------
VOID OnEditOrNewInitDialog( IN HWND hwnd ) {
//
// If they specifed an answer file on the command line, then pre-fill
// this page with it
//
if( lstrcmp( FixedGlobals.ScriptName, _T("") ) != 0 ) {
FixedGlobals.iLoadType = LOAD_FROM_ANSWER_FILE;
}
}
//----------------------------------------------------------------------------
//
// Function: OnSetActiveNewOrEdit
//
// Purpose: Called at SETACTIVE time. Fill in the controls.
//
//----------------------------------------------------------------------------
VOID OnSetActiveNewOrEdit(HWND hwnd) { int nButtonId = IDC_NEWSCRIPT;
//
// Map the current load type to a radio button
//
switch ( FixedGlobals.iLoadType ) {
case LOAD_UNDEFINED: case LOAD_NEWSCRIPT_DEFAULTS: nButtonId = IDC_NEWSCRIPT; break;
case LOAD_FROM_ANSWER_FILE: nButtonId = IDC_EDITSCRIPT; SetWindowText( GetDlgItem( hwnd, IDT_SCRIPTNAME ), FixedGlobals.ScriptName ); break;
default: AssertMsg(FALSE, "Bad case OnSetActiveNewEdit"); break; }
CheckRadioButton(hwnd, IDC_NEWSCRIPT, IDC_EDITSCRIPT, nButtonId);
GreyUnGreyNewEdit(hwnd);
PropSheet_SetWizButtons(GetParent(hwnd), PSWIZB_BACK | PSWIZB_NEXT); }
//----------------------------------------------------------------------------
//
// Function: OnRadioButtonNewOrEdit
//
// Purpose: Called when a radio button is pushed. Update
// FixedGlobals.bEditScript & Grey/ungrey controls.
//
//----------------------------------------------------------------------------
VOID OnRadioButtonNewOrEdit(HWND hwnd, int nButtonId) { CheckRadioButton(hwnd, IDC_NEWSCRIPT, IDC_EDITSCRIPT, nButtonId);
GreyUnGreyNewEdit(hwnd); }
//----------------------------------------------------------------------------
//
// Function: OnBrowseNewOrEdit
//
// Purpose: Called when the browse button is pushed.
//
//----------------------------------------------------------------------------
VOID OnBrowseNewOrEdit(HWND hwnd) { GetAnswerFileName(hwnd, FixedGlobals.ScriptName, FALSE);
SendDlgItemMessage(hwnd, IDT_SCRIPTNAME, WM_SETTEXT, (WPARAM) MAX_PATH, (LPARAM) FixedGlobals.ScriptName); }
//----------------------------------------------------------------------------
//
// Function: OnWizNextNewOrEdit
//
// Purpose: Called when the Next button is pushed. Retrieve the settings
// of the controls and validate.
//
//----------------------------------------------------------------------------
BOOL OnWizNextNewOrEdit(HWND hwnd) {
BOOL bNewScript; BOOL bReturn = TRUE; LOAD_TYPES NewLoadType;
//
// Figure out where the user wants to load answers from
//
if ( IsDlgButtonChecked(hwnd, IDC_NEWSCRIPT) ) { NewLoadType = LOAD_NEWSCRIPT_DEFAULTS;
bNewScript = TRUE; } else { NewLoadType = LOAD_FROM_ANSWER_FILE;
bNewScript = FALSE; }
//
// If we're loading from an answer file, retrieve the filename.
//
if ( NewLoadType == LOAD_FROM_ANSWER_FILE ) {
SendDlgItemMessage(hwnd, IDT_SCRIPTNAME, WM_GETTEXT, (WPARAM) MAX_PATH, (LPARAM) FixedGlobals.ScriptName);
MyGetFullPath(FixedGlobals.ScriptName);
if ( FixedGlobals.ScriptName[0] == _T('\0') ) { ReportErrorId(hwnd, MSGTYPE_ERR, IDS_ERR_ENTER_FILENAME); bReturn = FALSE; } if( bReturn ) {
INT nStrLen; TCHAR *pFileExtension;
lstrcpyn( FixedGlobals.UdfFileName, FixedGlobals.ScriptName, AS(FixedGlobals.UdfFileName) );
nStrLen = lstrlen( FixedGlobals.UdfFileName );
pFileExtension = FixedGlobals.UdfFileName + ( nStrLen - 3 );
lstrcpyn( pFileExtension, _T("udf"), AS(FixedGlobals.UdfFileName)-nStrLen+3);
}
}
//
// Load the answers
//
if ( bReturn ) {
if ( ! LoadAllAnswers(hwnd, NewLoadType) ) { bReturn = FALSE; } }
FixedGlobals.iLoadType = NewLoadType;
WizGlobals.bNewScript = bNewScript;
return ( bReturn ); }
//----------------------------------------------------------------------------
//
// Function: DlgEditOrNewPage
//
// Purpose: Dialog procedure for the edit or new script page.
//
//----------------------------------------------------------------------------
INT_PTR CALLBACK DlgEditOrNewPage( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { BOOL bStatus = TRUE;
switch(uMsg) {
case WM_INITDIALOG:
OnEditOrNewInitDialog( hwnd );
break;
case WM_COMMAND: { int nButtonId=LOWORD(wParam);
switch ( nButtonId ) {
case IDC_NEWSCRIPT: case IDC_EDITSCRIPT: if ( HIWORD(wParam) == BN_CLICKED ) OnRadioButtonNewOrEdit(hwnd, nButtonId); break;
case IDC_BROWSE: if ( HIWORD(wParam) == BN_CLICKED ) OnBrowseNewOrEdit(hwnd); break;
default: bStatus = FALSE; break; } } break;
case WM_NOTIFY: { LPNMHDR pnmh = (LPNMHDR)lParam; switch( pnmh->code ) {
case PSN_QUERYCANCEL: WIZ_CANCEL(hwnd); break;
case PSN_SETACTIVE:
g_App.dwCurrentHelp = IDH_ANSW_FILE;
// Set this flag so we don't get a prompt when user wants to cancel
//
SET_FLAG(OPK_EXIT, TRUE); SET_FLAG(OPK_CREATED, FALSE);
WIZ_BUTTONS(hwnd, PSWIZB_BACK | PSWIZB_NEXT);
OnSetActiveNewOrEdit(hwnd); break;
case PSN_WIZBACK: bStatus = FALSE; break;
case PSN_WIZNEXT: if ( !OnWizNextNewOrEdit(hwnd) ) WIZ_FAIL(hwnd); else bStatus = FALSE; break;
case PSN_HELP: WIZ_HELP(); break;
default: bStatus = FALSE; break; } } break;
default: bStatus = FALSE; break; } return bStatus; }
|