348 lines
15 KiB
C++
348 lines
15 KiB
C++
// IADDgFnd.cpp : implementation file
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#include "StdAfx.h"
|
|
#define HieFriend
|
|
|
|
#include "IADDgFnd.hpp"
|
|
|
|
#include "IADLnkMt.hpp"
|
|
#include "_IADItrf.hpp"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IAD_Dialog_FindInTree dialog
|
|
|
|
BEGIN_MESSAGE_MAP(IAD_Dialog_FindInTree, CDialog)
|
|
//{{AFX_MSG_MAP(IAD_Dialog_FindInTree)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_FIELD_TYPE, OnSelchangeComboFieldType)
|
|
ON_BN_CLICKED(IDC_RADIO_DEEP_SEARCH, OnRadioDeepSearch)
|
|
ON_BN_CLICKED(IDC_RADIO_SIMPLE_SEARCH, OnRadioSimpleSearch)
|
|
ON_BN_CLICKED(IDC_CHECK_SEARCH_IN_LEVELS, OnCheckSearchInLevels)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
//***************************************************************************
|
|
IAD_Dialog_FindInTree::IAD_Dialog_FindInTree(CWnd* pParent /*=NULL*/)
|
|
: CDialog(IAD_Dialog_FindInTree::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(IAD_Dialog_FindInTree)
|
|
m_bOnlyLevels = FALSE;
|
|
//}}AFX_DATA_INIT
|
|
|
|
if ( g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bSimpleSearch )
|
|
{
|
|
m_iSearchType = 0;
|
|
|
|
m_bSimpleSearchCaseSensitive = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bSimpleSearch_CaseSensitive;
|
|
m_bSimpleSearchExact = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bSimpleSearch_Exact;
|
|
m_csSimpleSearchString = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csSimpleSearchString;
|
|
}
|
|
else
|
|
{
|
|
m_iSearchType = 1;
|
|
|
|
m_bName_CaseSensitive = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bName_CaseSensitive;
|
|
m_bName_Exact = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bName_Exact;
|
|
m_bValue_CaseSensitive = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bValue_CaseSensitive;
|
|
m_bValue_Exact = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bValue_Exact;
|
|
m_bRetValue_CaseSensitive = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bRetValue_CaseSensitive;
|
|
m_bRetValue_Exact = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bRetValue_Exact;
|
|
|
|
m_csName = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csName;
|
|
m_csValue = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csValue;
|
|
m_csRetValue = g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csRetValue;
|
|
}
|
|
|
|
//Depths
|
|
m_bOnlyLevels = !g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bAllLevels;
|
|
if ( g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lBeginningLevel > (-1) )
|
|
m_csBeginningLevel.Format("%ld", g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lBeginningLevel);
|
|
if ( g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lEndLevel > (-1) )
|
|
m_csEndLevel.Format("%ld", g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lEndLevel);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(IAD_Dialog_FindInTree)
|
|
DDX_Check(pDX, IDC_CHECK_CASE_NAME, m_bName_CaseSensitive);
|
|
DDX_Check(pDX, IDC_CHECK_EXACT_NAME, m_bName_Exact);
|
|
DDX_Check(pDX, IDC_CHECK_CASE_VALUE, m_bValue_CaseSensitive);
|
|
DDX_Check(pDX, IDC_CHECK_CASE_R_VALUE, m_bRetValue_CaseSensitive);
|
|
DDX_Check(pDX, IDC_CHECK_EXACT_VALUE, m_bValue_Exact);
|
|
DDX_Check(pDX, IDC_CHECK_EXACT_R_VALUE, m_bRetValue_Exact);
|
|
DDX_Text(pDX, IDC_EDIT_NAME, m_csName);
|
|
DDX_Text(pDX, IDC_EDIT_RETURNING_VALUE, m_csRetValue);
|
|
DDX_Text(pDX, IDC_EDIT_VALUE, m_csValue);
|
|
DDX_Radio(pDX, IDC_RADIO_SIMPLE_SEARCH, m_iSearchType);
|
|
DDX_Check(pDX, IDC_CHECK_CASE_SIMPLE_SEARCH, m_bSimpleSearchCaseSensitive);
|
|
DDX_Check(pDX, IDC_CHECK_EXACT_SIMPLE_SEARCH, m_bSimpleSearchExact);
|
|
DDX_Text(pDX, IDC_EDIT_SIMPLE_SEARCH, m_csSimpleSearchString);
|
|
DDX_Text(pDX, IDC_EDIT_BEGINNING_LEVEL, m_csBeginningLevel);
|
|
DDX_Text(pDX, IDC_EDIT_END_LEVEL, m_csEndLevel);
|
|
DDX_Check(pDX, IDC_CHECK_SEARCH_IN_LEVELS, m_bOnlyLevels);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IAD_Dialog_FindInTree message handlers
|
|
|
|
//***************************************************************************
|
|
BOOL IAD_Dialog_FindInTree::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
//Fills Combo
|
|
m_pri_fn_vFillCombo();
|
|
|
|
//To initialize default state of controls
|
|
if ( m_iSearchType == 0 )
|
|
OnRadioSimpleSearch();
|
|
else
|
|
OnRadioDeepSearch();
|
|
|
|
BOOL bMustCheck = ( (g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lBeginningLevel > (-1))
|
|
&& (g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lEndLevel > (-1))
|
|
);
|
|
((CButton *)GetDlgItem(IDC_CHECK_SEARCH_IN_LEVELS))->SetCheck(bMustCheck);
|
|
OnCheckSearchInLevels();
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::OnOK()
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bSimpleSearch = ( m_iSearchType == 0 );
|
|
|
|
if ( g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bSimpleSearch )
|
|
{
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csSimpleSearchString = m_csSimpleSearchString;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bSimpleSearch_CaseSensitive = m_bSimpleSearchCaseSensitive;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bSimpleSearch_Exact = m_bSimpleSearchExact;
|
|
}
|
|
else
|
|
{
|
|
|
|
// CG PB DEBUGGER 23/06/98 {
|
|
#ifdef ACTIVE_AIDEBUG
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->eNodeType = AIDebug_E_SecTyp_NbOfSectionType; //== Invalid value
|
|
#endif // CG PB DEBUGGER }
|
|
|
|
CComboBox *pclCombo = (CComboBox *)GetDlgItem(IDC_COMBO_FIELD_TYPE);
|
|
if ( pclCombo != NULL )
|
|
{
|
|
short wIndex = pclCombo->GetCurSel();
|
|
if ( wIndex != CB_ERR )
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->eNodeType = (enum AIDebug_tdeSectionType_)pclCombo->GetItemData(wIndex);
|
|
}
|
|
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bName_CaseSensitive = m_bName_CaseSensitive;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bName_Exact = m_bName_Exact;
|
|
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bValue_CaseSensitive = m_bValue_CaseSensitive;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bValue_Exact = m_bValue_Exact;
|
|
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bRetValue_CaseSensitive = m_bRetValue_CaseSensitive;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bRetValue_Exact = m_bRetValue_Exact;
|
|
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csName = m_csName;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csRetValue = m_csRetValue;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->csValue = m_csValue;
|
|
}
|
|
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->bAllLevels = !m_bOnlyLevels;
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lBeginningLevel = atol(m_csBeginningLevel);
|
|
g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->lEndLevel = atol(m_csEndLevel);
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::OnSelchangeComboFieldType()
|
|
{
|
|
// CG PB DEBUGGER 23/06/98 {
|
|
#ifdef ACTIVE_AIDEBUG
|
|
|
|
CComboBox *pclCombo = (CComboBox *)GetDlgItem(IDC_COMBO_FIELD_TYPE);
|
|
if ( pclCombo != NULL )
|
|
{
|
|
short wIndex = pclCombo->GetCurSel();
|
|
|
|
if ( wIndex != CB_ERR )
|
|
{
|
|
//Gets enum values
|
|
AIDebug_tdeSectionType tdeEnumValue = (AIDebug_tdeSectionType)pclCombo->GetItemData(wIndex);
|
|
|
|
}
|
|
}
|
|
#endif // CG PB DEBUGGER }
|
|
}
|
|
|
|
|
|
//***************************************************************************
|
|
//***************************************************************************
|
|
//***************************************************************************
|
|
|
|
///////////////////////
|
|
// Private Functions //
|
|
///////////////////////
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::m_pri_fn_vFillCombo()
|
|
{
|
|
// CG PB DEBUGGER 23/06/98 {
|
|
#ifdef ACTIVE_AIDEBUG
|
|
|
|
CComboBox *pclCombo = (CComboBox *)GetDlgItem(IDC_COMBO_FIELD_TYPE);
|
|
if ( pclCombo != NULL )
|
|
{
|
|
short wIndexToSelect = 0;
|
|
|
|
short wIndex = pclCombo->AddString("Engine Loop");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_EngineLoop);
|
|
wIndex = pclCombo->AddString("Reflex Or AI");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_ReflexOrAI);
|
|
wIndex = pclCombo->AddString("Current Comport");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_CurrentComport);
|
|
wIndex = pclCombo->AddString("Field");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Field);
|
|
wIndex = pclCombo->AddString("Constant");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Constant);
|
|
wIndex = pclCombo->AddString("Designer Var Id");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_DsgVarId);
|
|
wIndex = pclCombo->AddString("Designer Var");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_DsgVar);
|
|
wIndex = pclCombo->AddString("Button");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Button);
|
|
wIndex = pclCombo->AddString("Environment Ref");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_EnvRef);
|
|
wIndex = pclCombo->AddString("Sector Ref");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_SectorRef);
|
|
wIndex = pclCombo->AddString("Surface Ref");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_SurfaceRef);
|
|
wIndex = pclCombo->AddString("Perso Ref");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_PersoRef);
|
|
wIndex = pclCombo->AddString("Action Ref");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_ActionRef);
|
|
wIndex = pclCombo->AddString("Real Constant");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Real);
|
|
wIndex = pclCombo->AddString("Vector");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Vector);
|
|
wIndex = pclCombo->AddString("Constant Vector");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_ConstantVector);
|
|
wIndex = pclCombo->AddString("Way");
|
|
// pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Way);
|
|
// wIndex = pclCombo->AddString("WayPoint");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_WayPoint);
|
|
wIndex = pclCombo->AddString("Module");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Module);
|
|
// wIndex = pclCombo->AddString("Channel Number");
|
|
// pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_ChannelNumber);
|
|
wIndex = pclCombo->AddString("Mask");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Mask);
|
|
wIndex = pclCombo->AddString("String");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_String);
|
|
wIndex = pclCombo->AddString("Lips Synchro");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_LipsSynchroRef);
|
|
wIndex = pclCombo->AddString("Sound Event Ref");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_SoundEventRef);
|
|
wIndex = pclCombo->AddString("Family Ref");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_FamilyRef);
|
|
wIndex = pclCombo->AddString("Begin of Macro");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_BeginMacro);
|
|
wIndex = pclCombo->AddString("End of Macro");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_EndMacro);
|
|
wIndex = pclCombo->AddString("Comport");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Comport);
|
|
wIndex = pclCombo->AddString("KeyWord");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_KeyWord);
|
|
wIndex = pclCombo->AddString("Condition");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Condition);
|
|
wIndex = pclCombo->AddString("Function");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Function);
|
|
wIndex = pclCombo->AddString("Operator");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Operator);
|
|
wIndex = pclCombo->AddString("Procedure");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_Procedure);
|
|
wIndex = pclCombo->AddString("Meta Action");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_MetaAction);
|
|
wIndex = pclCombo->AddString("Begin Meta Action");
|
|
pclCombo->SetItemData(wIndex, AIDebug_E_SecTyp_BeginMetaAction);
|
|
|
|
for (wIndex = 0; wIndex < pclCombo->GetCount(); wIndex ++)
|
|
{
|
|
if ( pclCombo->GetItemData(wIndex) == (DWORD)g_pclInterface->m_fn_pclGetDocument()->m_pub_p_tdstGetFindInfo()->eNodeType )
|
|
wIndexToSelect = wIndex;
|
|
}
|
|
|
|
pclCombo->SetCurSel(wIndexToSelect);
|
|
}
|
|
#endif // CG PB DEBUGGER }
|
|
}
|
|
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::OnRadioDeepSearch()
|
|
{
|
|
m_pri_fn_vEnableSimpleSearchControls(FALSE);
|
|
m_pri_fn_vEnableDeepSearchControls(TRUE);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::OnRadioSimpleSearch()
|
|
{
|
|
m_pri_fn_vEnableSimpleSearchControls(TRUE);
|
|
m_pri_fn_vEnableDeepSearchControls(FALSE);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::OnCheckSearchInLevels()
|
|
{
|
|
BOOL bChecked = ((CButton *)GetDlgItem(IDC_CHECK_SEARCH_IN_LEVELS))->GetCheck();
|
|
|
|
GetDlgItem(IDC_EDIT_BEGINNING_LEVEL)->EnableWindow(bChecked);
|
|
GetDlgItem(IDC_EDIT_END_LEVEL)->EnableWindow(bChecked);
|
|
GetDlgItem(IDC_STATIC_AND_TEXT)->EnableWindow(bChecked);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::m_pri_fn_vEnableSimpleSearchControls(BOOL _bEnable)
|
|
{
|
|
GetDlgItem(IDC_STATIC_RECT_SIMPLE_SERACH)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_EDIT_SIMPLE_SEARCH)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_EXACT_SIMPLE_SEARCH)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_CASE_SIMPLE_SEARCH)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_STATIC_SIMPLE_SEARCH_TEXT)->EnableWindow(_bEnable);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void IAD_Dialog_FindInTree::m_pri_fn_vEnableDeepSearchControls(BOOL _bEnable)
|
|
{
|
|
GetDlgItem(IDC_STATIC_DEEP_SEARCH_RECT)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_STATIC_DEEP_SEARCH_TEXT)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_COMBO_FIELD_TYPE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_EDIT_NAME)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_EDIT_VALUE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_EDIT_RETURNING_VALUE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_EXACT_NAME)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_CASE_NAME)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_EXACT_VALUE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_CASE_VALUE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_EXACT_R_VALUE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_CASE_R_VALUE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_STATIC_RECT_NAME)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_STATIC_RECT_VALUE)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_STATIC_RECT_RET_VALUE)->EnableWindow(_bEnable);
|
|
}
|