reman3/Rayman_X/cpa/tempgrp/TID/Src/IADDgFnd.cpp

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);
}