// NamePage.cpp : implementation of the CNamePage class // // This is a part of the Microsoft Foundation Classes C++ library. // Copyright (C) 1997-1998 Microsoft Corporation // All rights reserved. // // This source code is only intended as a supplement to the // Microsoft Foundation Classes Reference and related // electronic documentation provided with the library. // See these sources for detailed information regarding the // Microsoft Foundation Classes product. #include "stdafx.h" #include "httpsvr.h" #include "NamePage.h" #include "HttpDoc.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CNamePage property page IMPLEMENT_DYNCREATE(CNamePage, CPropertyPage) CNamePage::CNamePage() : CPropertyPage(CNamePage::IDD) { } CNamePage::CNamePage( CHttpSvrDoc* pDoc ) : CPropertyPage(CNamePage::IDD) { //{{AFX_DATA_INIT(CNamePage) m_strName = _T(""); m_nNameSetting = -1; m_uPort = 0; //}}AFX_DATA_INIT m_pDoc = pDoc; } CNamePage::~CNamePage() { } void CNamePage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CNamePage) DDX_Text(pDX, IDC_SVRNAME, m_strName); DDX_Radio(pDX, IDC_DEFNAME, m_nNameSetting); DDX_Text(pDX, IDC_PORT, m_uPort); DDV_MinMaxUInt(pDX, m_uPort, 0, 65535); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CNamePage, CPropertyPage) //{{AFX_MSG_MAP(CNamePage) ON_BN_CLICKED(IDC_DEFNAME, OnDefName) ON_BN_CLICKED(IDC_USENAME, OnUseName) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CNamePage message handlers BOOL CNamePage::OnInitDialog() { CPropertyPage::OnInitDialog(); CWnd* pwndEdit = GetDlgItem( IDC_SVRNAME ); pwndEdit->EnableWindow( (m_nNameSetting?TRUE:FALSE) ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CNamePage::OnDefName() { // disable the edit control.... CWnd* pwndEdit = GetDlgItem( IDC_SVRNAME ); if ( pwndEdit ) pwndEdit->EnableWindow( FALSE ); } void CNamePage::OnUseName() { // enable the edit control and move to it.... CWnd* pwndEdit = GetDlgItem( IDC_SVRNAME ); if ( pwndEdit ) { pwndEdit->EnableWindow( TRUE ); pwndEdit->SetFocus(); } } void CNamePage::OnOK() { BOOL bModified = FALSE; CString strNewName; if ( m_nNameSetting && !m_strName.IsEmpty() ) strNewName = m_strName; else { strNewName = ((CHttpSvrApp*)AfxGetApp())->m_strDefSvr; m_nNameSetting = 0; } // see if anything has changed.... if ( m_pDoc->m_nSvrName != m_nNameSetting ) { m_pDoc->m_nSvrName = m_nNameSetting; bModified = TRUE; } if ( strNewName.CompareNoCase(m_pDoc->m_strServer) ) { m_pDoc->m_strServer = strNewName; bModified = TRUE; } // if the port has changed, we need to reset the listen socket.... if ( m_pDoc->m_uPort != m_uPort ) { m_pDoc->m_uPort = m_uPort; m_pDoc->m_bResetListen = bModified = TRUE; } if ( bModified ) m_pDoc->SetModifiedFlag( TRUE ); CPropertyPage::OnOK(); }