231 lines
6 KiB
C++
231 lines
6 KiB
C++
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Copyright (c) 1997-2000 Microsoft Corporation
|
||
|
//
|
||
|
// Module Name:
|
||
|
// ResProp.cpp
|
||
|
//
|
||
|
// Description:
|
||
|
// Implementation of the resource extension property page classes.
|
||
|
//
|
||
|
// Maintained By:
|
||
|
// David Potter (DavidP) Mmmm DD, 1997
|
||
|
//
|
||
|
// Revision History:
|
||
|
//
|
||
|
// Notes:
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "DebugEx.h"
|
||
|
#include "ResProp.h"
|
||
|
#include "ExtObj.h"
|
||
|
#include "HelpData.h"
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
#define new DEBUG_NEW
|
||
|
#undef THIS_FILE
|
||
|
static char THIS_FILE[] = __FILE__;
|
||
|
#endif
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CDebugParamsPage property page
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
IMPLEMENT_DYNCREATE(CDebugParamsPage, CBasePropertyPage)
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Message Maps
|
||
|
|
||
|
BEGIN_MESSAGE_MAP(CDebugParamsPage, CBasePropertyPage)
|
||
|
//{{AFX_MSG_MAP(CDebugParamsPage)
|
||
|
//}}AFX_MSG_MAP
|
||
|
// TODO: Modify the following lines to represent the data displayed on this page.
|
||
|
ON_EN_CHANGE(IDC_PP_DEBUG_DEBUGPREFIX, CBasePropertyPage::OnChangeCtrl)
|
||
|
END_MESSAGE_MAP()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// CDebugParamsPage::CDebugParamsPage
|
||
|
//
|
||
|
// Routine Description:
|
||
|
// Default constructor.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// None.
|
||
|
//
|
||
|
// Return Value:
|
||
|
// None.
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
CDebugParamsPage::CDebugParamsPage(void)
|
||
|
: CBasePropertyPage(IDD, g_aHelpIDs_IDD_PP_RESOURCE_DEBUG_PAGE, NULL)
|
||
|
{
|
||
|
// TODO: Modify the following lines to represent the data displayed on this page.
|
||
|
//{{AFX_DATA_INIT(CDebugParamsPage)
|
||
|
m_strText = _T("");
|
||
|
m_strDebugPrefix = _T("");
|
||
|
//}}AFX_DATA_INIT
|
||
|
|
||
|
m_cprops = 0;
|
||
|
|
||
|
m_iddPropertyPage = IDD_PP_RESOURCE_DEBUG_PAGE;
|
||
|
|
||
|
} //*** CDebugParamsPage::CDebugParamsPage()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// CDebugParamsPage::BInit
|
||
|
//
|
||
|
// Routine Description:
|
||
|
// Initialize the page.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// peo [IN OUT] Pointer to the extension object.
|
||
|
//
|
||
|
// Return Value:
|
||
|
// TRUE Page initialized successfully.
|
||
|
// FALSE Page failed to initialize.
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
BOOL CDebugParamsPage::BInit(IN OUT CExtObject * peo)
|
||
|
{
|
||
|
ASSERT(peo != NULL);
|
||
|
|
||
|
m_peo = peo;
|
||
|
|
||
|
// Setup the property array.
|
||
|
m_rgProps[epropDebugPrefix].Set(REGPARAM_DEBUG_PREFIX, m_strDebugPrefix, m_strPrevDebugPrefix);
|
||
|
if (Cot() == CLUADMEX_OT_RESOURCE)
|
||
|
{
|
||
|
m_rgProps[epropSeparateMonitor].Set(REGPARAM_SEPARATE_MONITOR, m_bSeparateMonitor, m_bPrevSeparateMonitor);
|
||
|
m_cprops = sizeof(m_rgProps) / sizeof(CObjectProperty);
|
||
|
} // if: resource object
|
||
|
else if (Cot() == CLUADMEX_OT_RESOURCETYPE)
|
||
|
m_cprops = (sizeof(m_rgProps) / sizeof(CObjectProperty)) - 1;
|
||
|
else
|
||
|
{
|
||
|
ASSERT(0);
|
||
|
return FALSE;
|
||
|
} // else: unsupport object type
|
||
|
|
||
|
// Call the base class method.
|
||
|
return CBasePropertyPage::BInit(peo);
|
||
|
|
||
|
} //*** CDebugParamsPage::BInit()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// CDebugParamsPage::DoDataExchange
|
||
|
//
|
||
|
// Routine Description:
|
||
|
// Do data exchange between the dialog and the class.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pDX [IN OUT] Data exchange object
|
||
|
//
|
||
|
// Return Value:
|
||
|
// None.
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
void CDebugParamsPage::DoDataExchange(CDataExchange * pDX)
|
||
|
{
|
||
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||
|
|
||
|
// TODO: Modify the following lines to represent the data displayed on this page.
|
||
|
//{{AFX_DATA_MAP(CDebugParamsPage)
|
||
|
DDX_Control(pDX, IDC_PP_DEBUG_DEBUGPREFIX, m_editPrefix);
|
||
|
DDX_Text(pDX, IDC_PP_DEBUG_TEXT, m_strText);
|
||
|
DDX_Text(pDX, IDC_PP_DEBUG_DEBUGPREFIX, m_strDebugPrefix);
|
||
|
//}}AFX_DATA_MAP
|
||
|
|
||
|
CBasePropertyPage::DoDataExchange(pDX);
|
||
|
|
||
|
} //*** CDebugParamsPage::DoDataExchange()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// CDebugParamsPage::OnInitDialog
|
||
|
//
|
||
|
// Routine Description:
|
||
|
// Handler for the WM_INITDIALOG message.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// None.
|
||
|
//
|
||
|
// Return Value:
|
||
|
// TRUE We need the focus to be set for us.
|
||
|
// FALSE We already set the focus to the proper control.
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
BOOL CDebugParamsPage::OnInitDialog(void)
|
||
|
{
|
||
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||
|
|
||
|
// Load the help text.
|
||
|
{
|
||
|
UINT ids;
|
||
|
|
||
|
if (Cot() == CLUADMEX_OT_RESOURCE)
|
||
|
ids = IDS_RESOURCE_TEXT;
|
||
|
else
|
||
|
ids = IDS_RESOURCE_TYPE_TEXT;
|
||
|
m_strText.LoadString(ids);
|
||
|
} // Load the help text.
|
||
|
|
||
|
// Call the base class method.
|
||
|
CBasePropertyPage::OnInitDialog();
|
||
|
|
||
|
// Limit the size of the text that can be entered in edit controls.
|
||
|
m_editPrefix.SetLimitText(_MAX_PATH);
|
||
|
|
||
|
return TRUE; // return TRUE unless you set the focus to a control
|
||
|
// EXCEPTION: OCX Property Pages should return FALSE
|
||
|
|
||
|
} //*** CDebugParamsPage::OnInitDialog()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// CDebugParamsPage::BApplyChanges
|
||
|
//
|
||
|
// Routine Description:
|
||
|
// Apply changes made on the page.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// None.
|
||
|
//
|
||
|
// Return Value:
|
||
|
// TRUE Page successfully applied.
|
||
|
// FALSE Error applying page.
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
BOOL CDebugParamsPage::BApplyChanges(void)
|
||
|
{
|
||
|
// If the debug prefix string is not empty but the resource is not being
|
||
|
// run in a separate resource monitor, ask the user if we should change
|
||
|
// that setting now. Only do this for resources.
|
||
|
if ( (Cot() == CLUADMEX_OT_RESOURCE)
|
||
|
&& (m_strDebugPrefix.GetLength() > 0)
|
||
|
&& !m_bSeparateMonitor)
|
||
|
{
|
||
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||
|
|
||
|
if (AfxMessageBox(IDS_NOT_IN_SEPARATE_MONITOR, MB_YESNO | MB_ICONEXCLAMATION) == IDYES)
|
||
|
m_bSeparateMonitor = TRUE;
|
||
|
} // if: debug prefix string specified for resource but not in separate monitor
|
||
|
|
||
|
return CBasePropertyPage::BApplyChanges();
|
||
|
|
||
|
} //*** CDebugParamsPage::BApplyChanges()
|