windows-nt/Source/XPSP1/NT/termsrv/admtools/winutils/tscfg/anasidlg.cpp
2020-09-26 16:20:57 +08:00

240 lines
6.4 KiB
C++

//Copyright (c) 1998 - 1999 Microsoft Corporation
/*******************************************************************************
*
* anasidlg.cpp
*
* implementation of CAdvancedNASIDlg dialog class
*
* copyright notice: Copyright 1995, Citrix Systems Inc.
*
* $Author: butchd $ Butch Davis
*
* $Log: N:\NT\PRIVATE\UTILS\CITRIX\WINUTILS\WINCFG\VCS\ANASIDLG.CPP $
*
* Rev 1.2 29 Nov 1995 13:59:40 butchd
* update
*
* Rev 1.1 16 Nov 1995 17:11:30 butchd
* update
*
* Rev 1.0 09 Jul 1995 15:11:08 butchd
* Initial revision.
*
*******************************************************************************/
/*
* include files
*/
#include "stdafx.h"
#include "wincfg.h"
#include "anasidlg.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
////////////////////////////////////////////////////////////////////////////////
// CAdvancedNASIDlg class construction / destruction, implementation
/*******************************************************************************
*
* CAdvancedNASIDlg - CAdvancedNASIDlg constructor
*
* ENTRY:
* EXIT:
* (Refer to MFC CDialog::CDialog documentation)
*
******************************************************************************/
CAdvancedNASIDlg::CAdvancedNASIDlg()
: CBaseDialog(CAdvancedNASIDlg::IDD)
{
//{{AFX_DATA_INIT(CAdvancedNASIDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
} // end CAdvancedNASIDlg::CAdvancedNASIDlg
////////////////////////////////////////////////////////////////////////////////
// CAdvancedNASIDlg operations
/*******************************************************************************
*
* SetFields - CAdvancedNASIDlg member function: private operation
*
* Set the dialog fields.
*
* ENTRY:
* EXIT:
*
******************************************************************************/
void
CAdvancedNASIDlg::SetFields()
{
/*
* Set the session type radio button.
*/
CheckRadioButton( IDC_NASI_ADVANCED_PRIVATESESSION,
IDC_NASI_ADVANCED_GLOBALSESSION,
IDC_NASI_ADVANCED_PRIVATESESSION +
(m_NASIConfig.GlobalSession ? 1 : 0) );
/*
* Set the File Server and Session Name fields.
*/
SetDlgItemText( IDC_NASI_ADVANCED_FILESERVER,
m_NASIConfig.FileServer );
SetDlgItemText( IDC_NASI_ADVANCED_SESSIONNAME,
m_NASIConfig.SessionName );
} // end CAdvancedNASIDlg::SetFields
/*******************************************************************************
*
* GetFields - CAdvancedNASIDlg member function: private operation
*
* Fetch and validate the dialog fields.
*
* ENTRY:
* EXIT:
* (BOOL)
* Returns TRUE if all fields were valid; FALSE otherwise. If FALSE,
* will have output an error message and set the focus back to the
* field in error for the user to correct.
*
******************************************************************************/
BOOL
CAdvancedNASIDlg::GetFields()
{
m_NASIConfig.GlobalSession =
(BOOLEAN)( IDC_NASI_ADVANCED_PRIVATESESSION -
GetCheckedRadioButton( IDC_NASI_ADVANCED_PRIVATESESSION,
IDC_NASI_ADVANCED_GLOBALSESSION ) );
GetDlgItemText( IDC_NASI_ADVANCED_FILESERVER,
m_NASIConfig.FileServer, lengthof(m_NASIConfig.FileServer) );
GetDlgItemText( IDC_NASI_ADVANCED_SESSIONNAME,
m_NASIConfig.SessionName, lengthof(m_NASIConfig.SessionName) );
/*
* If no Session Name has been entered, output error message and
* reset focus to field for correction.
*/
if ( !*m_NASIConfig.SessionName ) {
ERROR_MESSAGE((IDP_INVALID_NASI_SESSIONNAME_EMPTY))
GotoDlgCtrl(GetDlgItem(IDC_NASI_ADVANCED_SESSIONNAME));
return(FALSE);
}
return(TRUE);
} // end CAdvancedNASIDlg::GetFields
////////////////////////////////////////////////////////////////////////////////
// CAdvancedNASIDlg message map
BEGIN_MESSAGE_MAP(CAdvancedNASIDlg, CBaseDialog)
//{{AFX_MSG_MAP(CAdvancedNASIDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
////////////////////////////////////////////////////////////////////////////////
// CAdvancedNASIDlg commands
/*******************************************************************************
*
* OnInitDialog - CAdvancedNASIDlg member function: command (override)
*
* Performs the dialog intialization.
*
* ENTRY:
* EXIT:
* (Refer to CDialog::OnInitDialog documentation)
*
******************************************************************************/
BOOL
CAdvancedNASIDlg::OnInitDialog()
{
int i;
/*
* Call the parent classes' OnInitDialog to perform default dialog
* initialization.
*/
CBaseDialog::OnInitDialog();
/*
* Initalize all dialog fields.
*/
SetFields();
if ( m_bReadOnly ) {
/*
* Document is 'read-only': disable all dialog controls and labels
* except for CANCEL & HELP buttons.
*/
for ( i=IDL_NASI_ADVANCED_SESSIONTYPE;
i <=IDC_NASI_ADVANCED_SESSIONNAME; i++ )
GetDlgItem(i)->EnableWindow(FALSE);
GetDlgItem(IDOK)->EnableWindow(FALSE);
}
/*
* Limit edit text.
*/
((CEdit *)GetDlgItem(IDC_NASI_ADVANCED_FILESERVER))->
LimitText(NASIFILESERVER_LENGTH);
((CEdit *)GetDlgItem(IDC_NASI_ADVANCED_SESSIONNAME))->
LimitText(NASISESSIONNAME_LENGTH);
return(TRUE);
} // end CAdvancedNASIDlg::OnInitDialog
/*******************************************************************************
*
* OnOK - CAdvancedNASIDlg member function: command (override)
*
* Read all control contents back into the Async config structure
* before closing the dialog.
*
* ENTRY:
* EXIT:
* (Refer to CDialog::OnOk documentation)
*
******************************************************************************/
void
CAdvancedNASIDlg::OnOK()
{
/*
* Fetch the field contents. Return (don't close dialog) if a problem
* was found.
*/
if ( !GetFields() )
return;
/*
* Call the parent classes' OnOk to complete dialog closing
* and destruction.
*/
CBaseDialog::OnOK();
} // end CAdvancedNASIDlg::OnOK
////////////////////////////////////////////////////////////////////////////////