Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//============================================================================
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: rtrsheet.cpp
//
// History:
// 06/19/96 Abolade Gbadegesin Created.
//
// Implementation of IP configuration dialogs.
//============================================================================
#include "stdafx.h"
#include "mprapi.h"
#include "rtrsheet.h"
#include "rtrui.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
//----------------------------------------------------------------------------
// Class: RtrPropertySheet
//
//----------------------------------------------------------------------------
RtrPropertySheet::RtrPropertySheet( ITFSNode * pNode, IComponentData *pComponentData, ITFSComponentData *pTFSCompData, LPCTSTR pszSheetName, CWnd* pParent, UINT iPage, BOOL fScopePane) : CPropertyPageHolderBase(pNode, pComponentData, pszSheetName, fScopePane), m_fCancel(FALSE) { Assert(pTFSCompData); m_spTFSCompData.Set(pTFSCompData); }
/*!--------------------------------------------------------------------------
RtrPropertySheet::OnPropertyChange This operation occurs on the main thread. This function is called in response to an Apply operation on a property sheet.
Author: KennT ---------------------------------------------------------------------------*/ BOOL RtrPropertySheet::OnPropertyChange(BOOL bScopePane, LONG_PTR* pChangeMask) { BOOL bReturn = FALSE; // This means that all of the dirty pages have finished saving
// their data, now we can go ahead and save the sheet data
//
// Because we have gotten here means that at least one page must
// have been dirty, so go ahead and save the data (otherwise we would
// never have gotten here).
//
if (m_cDirty == 1) { if (m_fCancel) { CancelSheetData(); bReturn = TRUE; } else bReturn = SaveSheetData(); }
BOOL fPageReturn = CPropertyPageHolderBase::OnPropertyChange( bScopePane, pChangeMask);
return bReturn && fPageReturn; }
//----------------------------------------------------------------------------
// Class: RtrPropertyPage
//
//----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC(RtrPropertyPage, CPropertyPageBase)
RtrPropertyPage::~RtrPropertyPage() { if (m_hIcon) { DestroyIcon(m_hIcon); } }
/*!--------------------------------------------------------------------------
RtrPropertyPage::SetDirty - Author: KennT ---------------------------------------------------------------------------*/ void RtrPropertyPage::SetDirty(BOOL bDirty) { // Set the property sheet to be dirty
// But change the dirty count only if we are toggling the flag
if (GetHolder() && (bDirty != IsDirty())) { GetHolder()->IncrementDirty(bDirty ? 1 : -1); } CPropertyPageBase::SetDirty(bDirty); }
void RtrPropertyPage::OnCancel() { // We need to notify the property sheet of this
((RtrPropertySheet *)GetHolder())->SetCancelFlag(TRUE);
// Give the property sheet a chance to do something
OnApply(); CPropertyPageBase::OnCancel();
((RtrPropertySheet *)GetHolder())->SetCancelFlag(FALSE); }
void RtrPropertyPage::ValidateSpinRange(CSpinButtonCtrl *pSpin) { int iPos, iLow, iHigh;
Assert(pSpin);
iPos = pSpin->GetPos(); if (HIWORD(iPos)) { pSpin->GetRange(iLow, iHigh); iPos = iLow; pSpin->SetPos(iPos); } }
BOOL RtrPropertyPage::OnApply() { BOOL fReturn = CPropertyPageBase::OnApply(); SetDirty(FALSE); return fReturn; }
void RtrPropertyPage::CancelApply() { CPropertyPageBase::CancelApply(); SetDirty(FALSE); }
void RtrPropertyPage::InitializeInterfaceIcon(UINT idcIcon, DWORD dwType) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); UINT uIcon = IsWanInterface(dwType) ? IDI_RTRLIB_WAN : IDI_RTRLIB_LAN;
if (m_hIcon) { DestroyIcon(m_hIcon); m_hIcon = NULL; } m_hIcon = AfxGetApp()->LoadIcon(MAKEINTRESOURCE(uIcon));
if (m_hIcon && GetDlgItem(idcIcon)) ((CStatic *) GetDlgItem(idcIcon))->SetIcon(m_hIcon); }
|