1863 lines
67 KiB
C++
1863 lines
67 KiB
C++
// EDACVwAc.cpp : implementation file
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#include "StdAfx.h"
|
|
|
|
//External Modules
|
|
#include "ACP_Base.h"
|
|
#include "TAC.h"
|
|
#include "TFa.h"
|
|
//End of External Modules
|
|
|
|
#include "_AInterf.hpp"
|
|
#include "EDACVwAc.hpp"
|
|
|
|
#include "EDACDoc.hpp"
|
|
#include "EDACFmMn.hpp"
|
|
#include "EDACDgSp.hpp"
|
|
#include "EDACDgMN.hpp"
|
|
#include "EDACDgCp.hpp"
|
|
#include "EDACDgIf.hpp"
|
|
#include "EDACCnst.hpp"
|
|
#include "EDACVwMS.hpp"
|
|
#include "EDACModl.hpp"
|
|
#include "EDACInst.hpp"
|
|
#include "EDACDgUL.hpp"
|
|
#include "EDACDgAC.hpp"
|
|
#include "EDACStrg.hpp"
|
|
|
|
//External Modules
|
|
#include "ErO.h"
|
|
#include "CTL.h"
|
|
#include "IncTUT.h"
|
|
#include "WAW.h"
|
|
//End of External Modules
|
|
|
|
//-----------------IR-------------------------
|
|
#include "EdIRDVVw.hpp"
|
|
#include "EdIRFrm.hpp"
|
|
#include "EdIRBeEn.hpp"
|
|
#include "EDACQuer.hpp"
|
|
// Shaitan => state list in the level
|
|
#include "ai_intf.hpp"
|
|
// End Shaitan => state list in the level
|
|
//--------------------------------------------
|
|
|
|
//CPA2 Stegaru Cristian 98/07/01
|
|
#include "..\inc\edactors\dlgcleanalwfile.h"
|
|
//End CPA2 Stegaru Cristian 98/07/01
|
|
|
|
#undef CPA_WANTS_IMPORT
|
|
#undef CPA_EXPORT
|
|
#define CPA_WANTS_EXPORT
|
|
//-----------------IR-------------------------
|
|
#include "EdIRIRD.hpp"
|
|
//--------------------------------------------
|
|
#include "_Actors.hpp"
|
|
#undef CPA_WANTS_EXPORT
|
|
#define CPA_WANTS_IMPORT
|
|
|
|
#define C_ED_ACTORS_GROUP_BUTTON_SPACING 3
|
|
#define C_szActorModified " << M >>"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// EdActors_ActorsView
|
|
|
|
IMPLEMENT_DYNCREATE(EdActors_ActorsView, CFormView)
|
|
|
|
BEGIN_MESSAGE_MAP(EdActors_ActorsView, CFormView)
|
|
//{{AFX_MSG_MAP(EdActors_ActorsView)
|
|
// ON_BN_CLICKED(IDC_RADIO_LEVEL_1, OnButtonLevel1)
|
|
// ON_BN_CLICKED(IDC_RADIO_LEVEL_2, OnButtonLevel2)
|
|
// ON_BN_CLICKED(IDC_RADIO_LEVEL_3, OnButtonLevel3)
|
|
ON_BN_CLICKED(IDC_CHECK_WATCH, OnButtonWatch)
|
|
ON_BN_CLICKED(IDC_CHECK_IA, OnCheckModels)
|
|
ON_BN_CLICKED(IDC_CHECK_VAR, OnCheckVariables)
|
|
ON_BN_CLICKED(IDC_CHECK_CURRENT, OnCheckCurrent)
|
|
ON_BN_CLICKED(IDC_CHECK_INIT, OnCheckInitial)
|
|
ON_WM_HELPINFO()
|
|
ON_BN_CLICKED(IDC_BUTTON_REDO, OnButtonRedo)
|
|
ON_BN_CLICKED(IDC_BUTTON_UNDO, OnButtonUndo)
|
|
ON_BN_CLICKED(IDC_BUTTON_UNDO_ARROW, OnButtonUndoArrow)
|
|
ON_BN_CLICKED(IDC_BUTTON_REDO_ARROW, OnButtonRedoArrow)
|
|
ON_BN_CLICKED(IDC_BUTTON_SHOW_MODELS, OnButtonShowModels)
|
|
ON_BN_CLICKED(IDC_BUTTON_EDIT_MODEL, OnButtonEditModel)
|
|
ON_BN_CLICKED(IDC_BUTTON_SHOW_INSTANCES, OnButtonShowInstances)
|
|
ON_BN_CLICKED(IDC_BUTTON_ACTIONS, OnButtonActions)
|
|
ON_BN_CLICKED(IDC_BUTTON_COPY_MODEL, OnButtonCopy)
|
|
// Shaitan => state list in the level
|
|
ON_BN_CLICKED(IDC_BUTTON_GENERATE_STATELIST, OnButtonStateList)
|
|
// End Shaitan => state list in the level
|
|
ON_BN_CLICKED(IDC_BUTTON_HELP, OnButtonHelp)
|
|
ON_WM_LBUTTONUP()
|
|
ON_WM_MOUSEMOVE()
|
|
ON_BN_CLICKED(IDC_CHECK_SHOW_LINKS, OnCheckShowLinks)
|
|
ON_COMMAND(ID_ALWAYS, m_fn_vOnMenuAlways)
|
|
ON_COMMAND(ID_COMMON, m_fn_vOnMenuCommon)
|
|
ON_COMMAND(ID_INTO_FIX, m_fn_vOnMenuIntoFix)
|
|
ON_COMMAND(ID_RENAME_MODEL, m_fn_vRenameModel)
|
|
ON_COMMAND(ID_REMOVE_MODEL, m_fn_vRemoveModel)
|
|
ON_COMMAND(ID_RENAME_INSTANCE, m_fn_vRenameInstance)
|
|
ON_COMMAND(ID_SET_INSTANCE_POSITION_AS_INITIAL, m_fn_vSetInstancePositionAsInitial)
|
|
ON_COMMAND(ID_ALWAYS_ACTIVE, OnAlwaysActive)
|
|
ON_WM_DESTROY()
|
|
ON_BN_CLICKED(IDC_CHECK_ALWAYS_ACTIVE, OnCheckAlwaysActive)
|
|
ON_BN_CLICKED(IDC_CLEAN_ALW_FILE, OnCleanAlwFile)
|
|
// ANNECY MT - 19/11/98 {
|
|
ON_COMMAND(ID_IN_ALL_SUBMAPS, OnInAllSubMaps)
|
|
ON_BN_CLICKED(IDC_CHECK_IN_ALL_SUBMAPS, OnCheckInAllSubMaps)
|
|
// END ANNECY MT }
|
|
//}}AFX_MSG_MAP
|
|
|
|
|
|
// ON_NOTIFY( TTN_NEEDTEXT, 0, OnToolTipNotify )
|
|
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
//*************************************************************************
|
|
EdActors_ActorsView::EdActors_ActorsView()
|
|
: CFormView(EdActors_ActorsView::IDD)
|
|
{
|
|
//{{AFX_DATA_INIT(EdActors_ActorsView)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_pclToolTip = NULL;
|
|
|
|
m_pclActorNameStatic = NULL;
|
|
m_pclModelNameStatic = NULL;
|
|
m_pclFamilyNameStatic = NULL;
|
|
}
|
|
|
|
//*************************************************************************
|
|
EdActors_ActorsView::~EdActors_ActorsView()
|
|
{
|
|
//Deletes Tool Tip Control
|
|
if ( m_pclToolTip )
|
|
delete m_pclToolTip;
|
|
|
|
//Deletes Statics
|
|
if ( m_pclActorNameStatic )
|
|
delete m_pclActorNameStatic;
|
|
if ( m_pclModelNameStatic )
|
|
delete m_pclModelNameStatic;
|
|
if ( m_pclFamilyNameStatic )
|
|
delete m_pclFamilyNameStatic;
|
|
|
|
//Deletes Group buttons
|
|
POSITION pos = m_clListOfGroupButtons.GetHeadPosition();
|
|
while ( pos != NULL )
|
|
delete ( m_clListOfGroupButtons.GetNext(pos) );
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// EdActors_ActorsView message handlers
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnInitialUpdate()
|
|
{
|
|
HINSTANCE hOldInstance = AfxGetResourceHandle();
|
|
AfxSetResourceHandle( g_stActorEditorIdentity.hModule );
|
|
//------------------------------------------------------------
|
|
CFormView::OnInitialUpdate();
|
|
|
|
//Sets scroll sizes
|
|
CRect crButtonRect;
|
|
GetDlgItem(IDC_CHECK_WATCH)->GetWindowRect(crButtonRect);
|
|
ScreenToClient(crButtonRect);
|
|
|
|
m_wMinYScrollSize = crButtonRect.bottom + 2;
|
|
m_wXScrollSize = 0;
|
|
|
|
SetScrollSizes(MM_TEXT, CSize(m_wXScrollSize, m_wMinYScrollSize));
|
|
|
|
m_fn_pclGetDocument()->m_pclActorsView = this;
|
|
|
|
//Sets Icons in buttons
|
|
HICON hIcon;
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_LEVEL_1);
|
|
// ((CButton *)GetDlgItem(IDC_RADIO_LEVEL_1))->SetIcon(hIcon);
|
|
// hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_LEVEL_2);
|
|
// ((CButton *)GetDlgItem(IDC_RADIO_LEVEL_2))->SetIcon(hIcon);
|
|
// hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_LEVEL_3);
|
|
// ((CButton *)GetDlgItem(IDC_RADIO_LEVEL_3))->SetIcon(hIcon);
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_WATCH);
|
|
((CButton *)GetDlgItem(IDC_CHECK_WATCH))->SetIcon(hIcon);
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_EXCLUSIVE_LEVEL);
|
|
// ((CButton *)GetDlgItem(IDC_CHECK_LEVEL_EXCLUSIVE))->SetIcon(hIcon);
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_MODELS_WINDOW);
|
|
((CButton *)GetDlgItem(IDC_CHECK_IA))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_VARIABLES_WINDOW);
|
|
((CButton *)GetDlgItem(IDC_CHECK_VAR))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_UNDO);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_UNDO))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_UNDO_ARROW_DOWN);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_UNDO_ARROW))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_REDO);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_REDO))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_UNDO_ARROW_DOWN);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_REDO_ARROW))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_EDIT_MODEL);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_EDIT_MODEL))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_ACTIONS);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_ACTIONS))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_COPY_MODEL);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_COPY_MODEL))->SetIcon(hIcon);
|
|
// Shaitan => state list in the level
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_GENERATE_STATELIST);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_GENERATE_STATELIST))->SetIcon(hIcon);
|
|
// End Shaitan => state list in the level
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_HELP);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_HELP))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_LINKS);
|
|
((CButton *)GetDlgItem(IDC_CHECK_SHOW_LINKS))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_ALWAYS_ACTIVE);
|
|
((CButton *)GetDlgItem(IDC_CHECK_ALWAYS_ACTIVE))->SetIcon(hIcon);
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_CLEAN_ALW_FILE);
|
|
((CButton *)GetDlgItem(IDC_CLEAN_ALW_FILE))->SetIcon(hIcon);
|
|
|
|
// ANNECY MT - 19/11/98 {
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_IN_ALL_SUBMAPS);
|
|
((CButton *)GetDlgItem(IDC_CHECK_IN_ALL_SUBMAPS))->SetIcon(hIcon);
|
|
// END ANNECY MT }
|
|
|
|
//Creates tool tips
|
|
EnableToolTips(TRUE);
|
|
m_pclToolTip = new CToolTipCtrl;
|
|
m_pclToolTip->Create(this, WS_VISIBLE | TTS_ALWAYSTIP);
|
|
|
|
//Re-adjusts elements
|
|
///////////////////////////
|
|
CRect crModelButtonRect;
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->GetWindowRect(crModelButtonRect);
|
|
ScreenToClient(crModelButtonRect);
|
|
|
|
CRect crFirstRect;
|
|
GetDlgItem(IDC_STATIC_LINE)->GetWindowRect(crFirstRect);
|
|
ScreenToClient(crFirstRect);
|
|
|
|
//Adjusts the static for the name of the Family
|
|
CRect crStaticName;
|
|
CRect crFamilyStaticRect;
|
|
GetDlgItem(IDC_STATIC_FAMILY)->GetWindowRect(crFamilyStaticRect);
|
|
ScreenToClient(crFamilyStaticRect);
|
|
crStaticName.top = crFamilyStaticRect.top;
|
|
crStaticName.bottom = crFamilyStaticRect.bottom;
|
|
crStaticName.left = crFamilyStaticRect.right + C_MAIN_VIEW_SPACING;
|
|
crStaticName.right = crModelButtonRect.left - C_MAIN_VIEW_SPACING;
|
|
m_pclFamilyNameStatic = new CTL_Editor_Static("",
|
|
CTL_STATIC_TYPE__USE_USER_DEFINED,
|
|
SS_CENTER,
|
|
NULL,
|
|
this,
|
|
OAC_STATIC_TYPE__FAMILY_NAME);
|
|
m_pclFamilyNameStatic->MoveWindow(crStaticName);
|
|
m_pclFamilyNameStatic->ShowWindow(SW_SHOW);
|
|
m_pclFamilyNameStatic->m_pub_fn_vSetBackGroundColor(g_pclInterface->m_clDocument.m_pub_colref_FamilyBackgroundColor);
|
|
m_pclFamilyNameStatic->m_pub_fn_vSetTextColor(g_pclInterface->m_clDocument.m_pub_colref_FamilyTextColor);
|
|
|
|
//Adjusts the static for the name of the Model
|
|
CRect crModelStaticRect;
|
|
GetDlgItem(IDC_STATIC_MODEL)->GetWindowRect(crModelStaticRect);
|
|
ScreenToClient(crModelStaticRect);
|
|
crStaticName.top = crModelStaticRect.top;
|
|
crStaticName.bottom = crModelStaticRect.bottom;
|
|
crStaticName.left = crModelStaticRect.right + C_MAIN_VIEW_SPACING;
|
|
m_pclModelNameStatic = new CTL_Editor_Static("",
|
|
CTL_STATIC_TYPE__USE_USER_DEFINED,
|
|
SS_CENTER,
|
|
NULL,
|
|
this,
|
|
OAC_STATIC_TYPE__MODEL_NAME);
|
|
m_pclModelNameStatic->MoveWindow(crStaticName);
|
|
m_pclModelNameStatic->m_pub_fn_vSetStaticHasBeenClicked_CallBack(OAC_fn_vModelNameStaticHasBeenClicked_CallBack);
|
|
m_pclModelNameStatic->ShowWindow(SW_SHOW);
|
|
m_pclModelNameStatic->m_pub_fn_vSetBackGroundColor(g_pclInterface->m_clDocument.m_pub_colref_ModelBackgroundColor);
|
|
m_pclModelNameStatic->m_pub_fn_vSetTextColor(g_pclInterface->m_clDocument.m_pub_colref_ModelTextColor);
|
|
|
|
//Adjusts the static for the name of the Instance
|
|
CRect crInstanceStaticRect;
|
|
GetDlgItem(IDC_STATIC_INSTANCE)->GetWindowRect(crInstanceStaticRect);
|
|
ScreenToClient(crInstanceStaticRect);
|
|
crStaticName.top = crInstanceStaticRect.top;
|
|
crStaticName.bottom = crInstanceStaticRect.bottom;
|
|
crStaticName.left = crInstanceStaticRect.right + C_MAIN_VIEW_SPACING;
|
|
m_pclActorNameStatic = new CTL_Editor_Static("",
|
|
CTL_STATIC_TYPE__USE_USER_DEFINED,
|
|
SS_CENTER,
|
|
NULL,
|
|
this,
|
|
OAC_STATIC_TYPE__INSTANCE_NAME);
|
|
m_pclActorNameStatic->MoveWindow(crStaticName);
|
|
m_pclActorNameStatic->m_pub_fn_vSetStaticHasBeenClicked_CallBack(OAC_fn_vInstanceNameStaticHasBeenClicked_CallBack);
|
|
m_pclActorNameStatic->m_pub_fn_vSetBackGroundColor(g_pclInterface->m_clDocument.m_pub_colref_NameBackgroundColor);
|
|
m_pclActorNameStatic->m_pub_fn_vSetTextColor(g_pclInterface->m_clDocument.m_pub_colref_NameTextColor);
|
|
|
|
//Sets the current data level
|
|
//ANNECY Shaitan Correction (16/04/98) {
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// m_fn_pclGetDocument()->m_bExclusiveLevel = FALSE; //will be inverted...
|
|
// OnCheckLevelExclusive();
|
|
// ((CButton *)GetDlgItem(IDC_CHECK_LEVEL_EXCLUSIVE))->SetCheck(m_fn_pclGetDocument()->m_bExclusiveLevel);
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
//ENDANNECY Shaitan Correction }
|
|
/*
|
|
switch ( g_pclInterface->m_clDocument.m_ucCurrentDataLevel )
|
|
{
|
|
case 1:
|
|
OnButtonLevel1();
|
|
((CButton *)GetDlgItem(IDC_RADIO_LEVEL_1))->SetCheck(1);
|
|
break;
|
|
case 2:
|
|
OnButtonLevel2();
|
|
((CButton *)GetDlgItem(IDC_RADIO_LEVEL_2))->SetCheck(1);
|
|
break;
|
|
case 3:
|
|
OnButtonLevel3();
|
|
((CButton *)GetDlgItem(IDC_RADIO_LEVEL_3))->SetCheck(1);
|
|
break;
|
|
default:
|
|
OnButtonLevel1();
|
|
((CButton *)GetDlgItem(IDC_RADIO_LEVEL_1))->SetCheck(1);
|
|
break;
|
|
}
|
|
*/
|
|
|
|
//Creates buttons for Groups of MS
|
|
CRect crLastRect;
|
|
GetDlgItem(IDC_STATIC_LINE_MS)->GetWindowRect(crLastRect);
|
|
ScreenToClient(crLastRect);
|
|
|
|
EdActors_MiniStructureList *pclMSGroup;
|
|
unsigned char ucIndex = 0;
|
|
unsigned char ucNumberOfGroups = m_fn_pclGetDocument()->m_clListOfMSLists.GetCount();
|
|
short wButtonWidth = (crLastRect.Width() - (ucNumberOfGroups-1)* C_ED_ACTORS_GROUP_BUTTON_SPACING ) / ucNumberOfGroups;
|
|
short wXPos = (short)crLastRect.left;
|
|
CString csGroupButtonText;
|
|
POSITION pos = m_fn_pclGetDocument()->m_clListOfMSLists.GetHeadPosition();
|
|
while( pos != NULL )
|
|
{
|
|
pclMSGroup = m_fn_pclGetDocument()->m_clListOfMSLists.GetNext(pos);
|
|
|
|
csGroupButtonText.Format("%s%i", g_c_csGroupName, ucIndex + 1);
|
|
|
|
//Creates button
|
|
EdActors_MSGroupButton *pclNewButton = new EdActors_MSGroupButton(ucIndex,
|
|
csGroupButtonText,
|
|
wXPos,
|
|
crLastRect.bottom + C_ED_ACTORS_GROUP_BUTTON_SPACING,
|
|
wButtonWidth,
|
|
this);
|
|
|
|
m_clListOfGroupButtons.AddTail(pclNewButton);
|
|
|
|
ucIndex ++;
|
|
wXPos += (wButtonWidth + C_ED_ACTORS_GROUP_BUTTON_SPACING);
|
|
|
|
//First 'Enable' Init
|
|
m_pri_bControlsAreEnabled = TRUE;
|
|
m_pub_fn_vEnableAllControls(FALSE);
|
|
}
|
|
|
|
((CButton *)GetDlgItem(IDC_CHECK_IA))->SetCheck(g_pclInterface->m_clDocument.m_bIAActivated);
|
|
((CButton *)GetDlgItem(IDC_CHECK_VAR))->SetCheck(g_pclInterface->m_clDocument.m_bVariablesActivated);
|
|
((CButton *)GetDlgItem(IDC_CHECK_CURRENT))->SetCheck(g_pclInterface->m_clDocument.m_bDisplayCurrentValue);
|
|
((CButton *)GetDlgItem(IDC_CHECK_INIT))->SetCheck(g_pclInterface->m_clDocument.m_bDisplayInitialValue);
|
|
//-----------------IR-------------------------
|
|
((CButton *)GetDlgItem(IDC_CHECK_IA))->EnableWindow(FALSE); //???
|
|
//--------------------------------------------
|
|
|
|
//Watch window initial state
|
|
((CButton *)GetDlgItem(IDC_CHECK_WATCH))->SetCheck(g_pclInterface->m_clDocument.m_bWatchActivated);
|
|
|
|
((CButton *)GetDlgItem(IDC_CHECK_SHOW_LINKS))->SetCheck(g_pclInterface->m_clDocument.m_pub_bMustShowLinks);
|
|
|
|
//////////////
|
|
//////////////
|
|
//Registers for TUT Module
|
|
TUT_M_vGetTutDll();
|
|
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_ACTIONS, "OAc_ControlView_ButtonActions", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CHECK_WATCH, "OAc_ControlView_CheckWatch", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CHECK_IA, "OAc_ControlView_CheckIA", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CHECK_VAR, "OAc_ControlView_CheckVar", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CHECK_CURRENT, "OAc_ControlView_CheckCurrent", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CHECK_INIT, "OAc_ControlView_CheckInit", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_HELP, "OAc_ControlView_ButtonHelp", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CHECK_SHOW_LINKS, "OAc_ControlView_CheckShowLinks", TUT_e_Button);
|
|
/* TUT_M_vRegisterControlID(IDC_RADIO_LEVEL_1, "OAc_ControlView_RadioLevel1", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_RADIO_LEVEL_2, "OAc_ControlView_RadioLevel2", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_RADIO_LEVEL_3, "OAc_ControlView_RadioLevel3", TUT_e_Button);
|
|
*/
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// TUT_M_vRegisterControlID(IDC_CHECK_LEVEL_EXCLUSIVE, "OAc_ControlView_CheckLevelExclusive", TUT_e_Button);
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_SHOW_MODELS, "OAc_ControlView_ButtonShowModels", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_SHOW_INSTANCES, "OAc_ControlView_ButtonShowInstances", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_EDIT_MODEL, "OAc_ControlView_ButtonEditModel", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_COPY_MODEL, "OAc_ControlView_ButtonCopyModel", TUT_e_Button);
|
|
// Shaitan => state list in the level
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_GENERATE_STATELIST, "OAc_ControlView_ButtonGenerateStateList", TUT_e_Button);
|
|
// End Shaitan => state list in the level
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_UNDO, "OAc_ControlView_ButtonUndo", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_UNDO_ARROW, "OAc_ControlView_ButtonUndoList", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_REDO, "OAc_ControlView_ButtonRedo", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_BUTTON_REDO_ARROW, "OAc_ControlView_ButtonRedoList", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CHECK_ALWAYS_ACTIVE, "OAc_ControlView_ButtonAlwaysActive", TUT_e_Button);
|
|
TUT_M_vRegisterControlID(IDC_CLEAN_ALW_FILE, "OAc_ControlView_ButtonCleanAlwFile", TUT_e_Button);
|
|
|
|
// ANNECY MT - 19/11/98 {
|
|
TUT_M_vRegisterControlID(IDC_CHECK_IN_ALL_SUBMAPS, "OAc_ControlView_ButtonInAllSubMaps", TUT_e_Button);
|
|
// END ANNECY MT }
|
|
|
|
TUT_M_vRegisterControl(m_pclActorNameStatic->m_hWnd, "OAc_ControlView_StaticInstanceName", TUT_e_Window);
|
|
TUT_M_vRegisterControl(m_pclModelNameStatic->m_hWnd, "OAc_ControlView_StaticModelName", TUT_e_Window);
|
|
TUT_M_vRegisterControl(m_pclFamilyNameStatic->m_hWnd, "OAc_ControlView_StaticFamilyName", TUT_e_Window);
|
|
|
|
//End of Registers for TUT Module
|
|
//////////////
|
|
|
|
//------------------------------------------------------------
|
|
AfxSetResourceHandle( hOldInstance );
|
|
}
|
|
|
|
//*********************************************************************************
|
|
void EdActors_ActorsView::OnDestroy()
|
|
{
|
|
//////////////
|
|
//////////////
|
|
//UnRegisters for TUT Module
|
|
TUT_M_vGetTutDll();
|
|
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_ACTIONS);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_WATCH);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_IA);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_VAR);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_CURRENT);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_INIT);
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_HELP);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_SHOW_LINKS);
|
|
/*
|
|
TUT_M_vUnregisterControlID(IDC_RADIO_LEVEL_1);
|
|
TUT_M_vUnregisterControlID(IDC_RADIO_LEVEL_2);
|
|
TUT_M_vUnregisterControlID(IDC_RADIO_LEVEL_3);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_LEVEL_EXCLUSIVE);
|
|
*/
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_SHOW_MODELS);
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_SHOW_INSTANCES);
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_EDIT_MODEL);
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_COPY_MODEL);
|
|
// Shaitan => state list in the level
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_GENERATE_STATELIST);
|
|
// End Shaitan => state list in the level
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_UNDO);
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_UNDO_ARROW);
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_REDO);
|
|
TUT_M_vUnregisterControlID(IDC_BUTTON_REDO_ARROW);
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_ALWAYS_ACTIVE);
|
|
TUT_M_vUnregisterControlID(IDC_CLEAN_ALW_FILE);
|
|
|
|
// ANNECY MT - 19/11/98 {
|
|
TUT_M_vUnregisterControlID(IDC_CHECK_IN_ALL_SUBMAPS);
|
|
// END ANNECY MT }
|
|
|
|
TUT_M_vUnregisterControl(m_pclActorNameStatic->m_hWnd);
|
|
TUT_M_vUnregisterControl(m_pclModelNameStatic->m_hWnd);
|
|
TUT_M_vUnregisterControl(m_pclFamilyNameStatic->m_hWnd);
|
|
|
|
//End of UnRegisters for TUT Module
|
|
//////////////
|
|
|
|
CFormView::OnDestroy();
|
|
}
|
|
|
|
//*********************************************************************************
|
|
// Updates editor values with motor values and displays the Actor's charac.
|
|
void EdActors_ActorsView::m_fn_vDisplayActor(EdActors_EditorActor *pclNewSelectedActor)
|
|
{
|
|
//Sets the names in edit box
|
|
if ( pclNewSelectedActor != NULL )
|
|
{
|
|
m_pub_fn_vEnableAllControls(TRUE);
|
|
|
|
//Family name
|
|
if ( pclNewSelectedActor->m_pclActor->m_pub_fn_pclGetFamily() != NULL )
|
|
m_pclFamilyNameStatic->m_fn_vSetTextToDisplay(pclNewSelectedActor->m_pclActor->m_pub_fn_pclGetFamily()->GetName());
|
|
else
|
|
m_pclFamilyNameStatic->m_fn_vSetTextToDisplay("< Unknown >");
|
|
|
|
if ( pclNewSelectedActor ->m_fn_bIsAnInstance() )
|
|
{
|
|
//Model name (for Instance)
|
|
if ( ((EdActors_EditorActorInstance *)pclNewSelectedActor)->m_fn_pclGetModel() != NULL )
|
|
m_pub_fn_vUpdateActorNameForModif(((EdActors_EditorActorInstance *)pclNewSelectedActor)->m_fn_pclGetModel());
|
|
else
|
|
m_pclModelNameStatic->m_fn_vSetTextToDisplay("< Unknown >");
|
|
|
|
//Actor's name
|
|
m_pclActorNameStatic->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_BUTTON_EDIT_MODEL)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_STATIC_INSTANCE)->ShowWindow(SW_SHOW);
|
|
m_pub_fn_vUpdateActorNameForModif(pclNewSelectedActor->m_pclActor);
|
|
|
|
//Number of Instances in Model
|
|
long lNumber = pclNewSelectedActor->m_pclActor->m_fn_pclGetModel()->m_fn_pclGetEditorModel()->m_clInstancesList.GetCount();
|
|
CString csNumber;
|
|
csNumber.Format("%ld", lNumber);
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->SetWindowText(csNumber);
|
|
if ( lNumber < 1 )
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->EnableWindow(FALSE);
|
|
else
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
//Model name (for Model)
|
|
m_pub_fn_vUpdateActorNameForModif(pclNewSelectedActor->m_pclActor);
|
|
|
|
//Actor's name
|
|
m_pclActorNameStatic->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_BUTTON_EDIT_MODEL)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_INSTANCE)->ShowWindow(SW_HIDE);
|
|
|
|
//Number of Instances in Model
|
|
long lNumber = pclNewSelectedActor->m_pclActor->m_fn_pclGetEditorModel()->m_clInstancesList.GetCount();
|
|
CString csNumber;
|
|
csNumber.Format("%ld", lNumber);
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->SetWindowText(csNumber);
|
|
if ( lNumber < 1 )
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->EnableWindow(FALSE);
|
|
else
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->EnableWindow(TRUE);
|
|
}
|
|
|
|
//Number of Models in Family
|
|
//Gets the list of Models which are childs of the Family
|
|
CPA_List<CPA_BaseObject> clListOfModels;
|
|
g_pclInterface->GetMainWorld()->fn_lFindObjects(&clListOfModels,
|
|
"",
|
|
C_szActorModelTypeName,
|
|
pclNewSelectedActor->m_pclActor->m_pub_fn_pclGetFamily());
|
|
long lNumber = clListOfModels.GetCount();
|
|
CString csNumber;
|
|
csNumber.Format("%ld", lNumber);
|
|
GetDlgItem(IDC_BUTTON_SHOW_MODELS)->SetWindowText(csNumber);
|
|
if ( lNumber < 1 )
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->EnableWindow(FALSE);
|
|
else
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
m_pclActorNameStatic->m_fn_vSetTextToDisplay("Empty list ...");
|
|
m_pclFamilyNameStatic->m_fn_vSetTextToDisplay("");
|
|
m_pclModelNameStatic->m_fn_vSetTextToDisplay("");
|
|
|
|
m_pub_fn_vEnableAllControls(FALSE);
|
|
}
|
|
|
|
m_fn_vRefreshNavigationButtons();
|
|
|
|
m_pclActorNameStatic->InvalidateRect(NULL);
|
|
m_pclModelNameStatic->InvalidateRect(NULL);
|
|
m_pclFamilyNameStatic->InvalidateRect(NULL);
|
|
|
|
m_fn_vUpdateUndoRedoButtons();
|
|
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vDisplayActor(pclNewSelectedActor);
|
|
}
|
|
|
|
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
//*************************************************************************
|
|
/*
|
|
void EdActors_ActorsView::OnButtonLevel1()
|
|
{
|
|
// if ( !m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[0])
|
|
// {
|
|
m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[0] = !m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[0];
|
|
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateDisplay(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
//--------------------------------------------
|
|
// }
|
|
}
|
|
*/
|
|
//*************************************************************************
|
|
/*
|
|
void EdActors_ActorsView::OnButtonLevel2()
|
|
{
|
|
// if ( !m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[1])
|
|
// {
|
|
m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[1] = !m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[1];
|
|
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateDisplay(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
//--------------------------------------------
|
|
// }
|
|
}
|
|
*/
|
|
//*************************************************************************
|
|
/*
|
|
void EdActors_ActorsView::OnButtonLevel3()
|
|
{
|
|
// if ( !m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[2])
|
|
// {
|
|
m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[2] = !m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[2];
|
|
if ( m_fn_pclGetDocument()->m_aCurrentOACButtonsPressed[2] )
|
|
GetDlgItem( IDC_RADIO_LEVEL_3 )->SetWindowText("Curr");
|
|
else
|
|
GetDlgItem( IDC_RADIO_LEVEL_3 )->SetWindowText("Init");
|
|
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateDisplay(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
//--------------------------------------------
|
|
// }
|
|
}
|
|
*/
|
|
/*
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnCheckLevelExclusive()
|
|
{
|
|
m_fn_pclGetDocument()->m_bExclusiveLevel = !(m_fn_pclGetDocument()->m_bExclusiveLevel);
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateDisplay(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
//--------------------------------------------
|
|
}
|
|
*/
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonWatch()
|
|
{
|
|
if ( g_pclInterface->m_clDocument.m_pub_bWatchWindowIsVisible )
|
|
{
|
|
WAW_fn_vHideWatchWindow();
|
|
g_pclInterface->m_clDocument.m_pub_bWatchWindowIsVisible = FALSE;
|
|
}
|
|
else
|
|
{
|
|
WAW_fn_vDisplayWatchWindow();
|
|
g_pclInterface->m_clDocument.m_pub_bWatchWindowIsVisible = TRUE;
|
|
// CPA2 ASilvescu 98-05-08
|
|
g_pclInterface->m_fn_LoadWatchData();
|
|
// End CPA2 ASilvescu 98-05-08
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::m_fn_vRefreshNavigationButtons()
|
|
{
|
|
GetDlgItem(IDC_BUTTON_EDIT_MODEL)->EnableWindow( (m_fn_pclGetDocument()->m_pclSelectedActor != NULL )
|
|
&& (m_fn_pclGetDocument()->m_pclSelectedActor->m_fn_bIsAnInstance()) );
|
|
}
|
|
|
|
//*************************************************************************
|
|
EdActors_MyDocument *EdActors_ActorsView::m_fn_pclGetDocument()
|
|
{
|
|
return &(g_pclInterface->m_clDocument);
|
|
}
|
|
|
|
//*************************************************************************
|
|
//Definition for Tool Tips texts
|
|
BOOL EdActors_ActorsView::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
|
|
{
|
|
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
|
|
UINT nID =pNMHDR->idFrom;
|
|
nID = ::GetDlgCtrlID((HWND)nID);
|
|
|
|
BOOL bReturn = FALSE;
|
|
|
|
switch ( nID )
|
|
{
|
|
case IDC_CHECK_WATCH:
|
|
strcpy(pTTT->szText,"Display / Hide Watch");
|
|
break;
|
|
case IDC_CHECK_IA:
|
|
strcpy(pTTT->szText,"Display / Hide IA window");
|
|
break;
|
|
case IDC_CHECK_VAR:
|
|
strcpy(pTTT->szText,"Display / Hide Variables");
|
|
break;
|
|
case IDC_CHECK_CURRENT:
|
|
strcpy(pTTT->szText,"Display / Hide Current Values");
|
|
break;
|
|
case IDC_CHECK_INIT:
|
|
strcpy(pTTT->szText,"Display / Hide Initial Values");
|
|
break;
|
|
/*
|
|
case IDC_RADIO_LEVEL_1:
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// strcpy(pTTT->szText,"Level 1 Data");
|
|
strcpy(pTTT->szText,"Display/Hide Behaviour Data");
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
break;
|
|
case IDC_RADIO_LEVEL_2:
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// if ( m_fn_pclGetDocument()->m_bExclusiveLevel )
|
|
// strcpy(pTTT->szText,"Level 2 Data");
|
|
// else
|
|
// strcpy(pTTT->szText,"Level 1 and 2 Data");
|
|
strcpy(pTTT->szText,"Display/Hide Variables Data");
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
break;
|
|
case IDC_RADIO_LEVEL_3:
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// if ( m_fn_pclGetDocument()->m_bExclusiveLevel )
|
|
// strcpy(pTTT->szText,"Level 3 Data");
|
|
// else
|
|
// strcpy(pTTT->szText,"Level 1, 2 and 3 Data");
|
|
strcpy(pTTT->szText,"Current/Initial Values Data");
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
break;
|
|
*/
|
|
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// case IDC_CHECK_LEVEL_EXCLUSIVE:
|
|
// strcpy(pTTT->szText,"Only the selected Level / All lower levels");
|
|
// break;
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
case IDC_BUTTON_UNDO:
|
|
strcpy(pTTT->szText,"Undo");
|
|
break;
|
|
case IDC_BUTTON_UNDO_ARROW:
|
|
strcpy(pTTT->szText,"Multiple Undo");
|
|
break;
|
|
case IDC_BUTTON_REDO:
|
|
strcpy(pTTT->szText,"Redo");
|
|
break;
|
|
case IDC_BUTTON_REDO_ARROW:
|
|
strcpy(pTTT->szText,"Multiple Redo");
|
|
break;
|
|
case IDC_BUTTON_SHOW_MODELS:
|
|
strcpy(pTTT->szText,"Shows all Models of the Family");
|
|
break;
|
|
case IDC_BUTTON_EDIT_MODEL:
|
|
strcpy(pTTT->szText,"Edits the Model of this Instance");
|
|
break;
|
|
case IDC_BUTTON_SHOW_INSTANCES:
|
|
strcpy(pTTT->szText,"Shows all Instances of the Model");
|
|
break;
|
|
case IDC_BUTTON_ACTIONS:
|
|
strcpy(pTTT->szText,"Edits Family's Actions");
|
|
break;
|
|
case IDC_CHECK_SHOW_LINKS:
|
|
strcpy(pTTT->szText,"Shows or hides links controls for each Data");
|
|
break;
|
|
case IDC_BUTTON_COPY_MODEL:
|
|
if ( g_pclInterface->m_clDocument.m_pub_fn_bCurrentModeIsInstance() )
|
|
strcpy(pTTT->szText,"Copy Instance");
|
|
else if ( g_pclInterface->m_clDocument.m_pub_fn_bCurrentModeIsModel() )
|
|
strcpy(pTTT->szText,"Copy Model");
|
|
else if ( g_pclInterface->m_clDocument.m_pub_fn_bCurrentModeIsAlwaysModel() )
|
|
strcpy(pTTT->szText,"Copy Always Model");
|
|
break;
|
|
// Shaitan => state list in the level
|
|
case IDC_BUTTON_GENERATE_STATELIST:
|
|
// Shaitan => module list in the level
|
|
strcpy(pTTT->szText,"Generate or update the list of states and POs used by the family in this level");
|
|
// End Shaitan => module list in the level
|
|
break;
|
|
// End Shaitan => state list in the level
|
|
case IDC_BUTTON_HELP:
|
|
strcpy(pTTT->szText,"Help on fields");
|
|
break;
|
|
case IDC_CHECK_ALWAYS_ACTIVE:
|
|
strcpy (pTTT->szText,"Actor always active");
|
|
break;
|
|
case IDC_CLEAN_ALW_FILE:
|
|
strcpy (pTTT->szText,"Clean the ALW file");
|
|
break;
|
|
case IDC_CHECK_IN_ALL_SUBMAPS:
|
|
strcpy (pTTT->szText,"Actor in all SubMaps");
|
|
break;
|
|
default:
|
|
strcpy(pTTT->szText,"");
|
|
break;
|
|
};
|
|
|
|
return (TRUE);
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonSetup()
|
|
{
|
|
BOOL bOldValue = m_fn_pclGetDocument()->m_bMustDisplayUnallocatedMS;
|
|
EdActors_EditorSetupDialog dial(&g_oBaseFrame);
|
|
|
|
if ( dial.DoModal() ==IDOK )
|
|
{
|
|
//Refreshes Editor's actors' view
|
|
InvalidateRect(NULL);
|
|
|
|
//Prepares and Refreshes editor's MS view
|
|
if ( (m_fn_pclGetDocument()->m_bMustDisplayUnallocatedMS != bOldValue)
|
|
&& (m_fn_pclGetDocument()->m_bMustDisplayUnallocatedMS)
|
|
)
|
|
{
|
|
POSITION pos = m_fn_pclGetDocument()->m_pclCurrentMiniStructureList->GetHeadPosition();
|
|
while ( pos != NULL )
|
|
m_fn_pclGetDocument()->m_pclCurrentMiniStructureList->GetNext(pos)->m_fn_vShowAllControls();
|
|
}
|
|
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
//Refreshes editor's IR view
|
|
m_fn_pclGetDocument()->m_pclDesignerVariablesView->InvalidateRect(NULL);
|
|
//--------------------------------------------
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnCheckModels()
|
|
{
|
|
g_oFrameGest.mfn_vSetRefresh(FALSE);
|
|
|
|
//-----------------IR-------------------------
|
|
//Swaps between Models' window and IR Editor
|
|
if ( ((CButton *)GetDlgItem(IDC_CHECK_IA))->GetCheck() )
|
|
{
|
|
//SHA-TEMP
|
|
GetDlgItem(IDC_CHECK_VAR)->EnableWindow(TRUE);
|
|
|
|
EDAC_fn_vShowAIEditor();
|
|
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateState(m_fn_pclGetDocument()->m_pclDesignerVariablesView, !((CButton *) GetDlgItem(IDC_CHECK_VAR))->GetCheck());
|
|
|
|
if (m_fn_pclGetDocument()->m_bAIFirstTime)
|
|
g_oFrameGest.ma_p_oWinArray[2][3]->mfn_vHeightWindow(m_fn_pclGetDocument()->m_ulAIViewHeight);
|
|
m_fn_pclGetDocument()->m_bAIFirstTime = FALSE;
|
|
|
|
g_pclInterface->m_clDocument.m_fn_vDisplayActorIA();
|
|
|
|
// int nOldHeight=EDAC_fn_lDesignerVariableView_GetOldHeight(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
// g_pclInterface->m_pclCaracMainFrame->SetPaneSize(C_ROW_INDEX_DES_VAR,nOldHeight);
|
|
}
|
|
else
|
|
{
|
|
//SHA-TEMP
|
|
GetDlgItem(IDC_CHECK_VAR)->EnableWindow(FALSE);
|
|
|
|
EDAC_fn_vHideAIEditor();
|
|
|
|
g_oFrameGest.mfn_vActivateWindow(g_pclInterface->GetInterface()->GetModelFrame());
|
|
|
|
if (m_fn_pclGetDocument()->m_bModelFirstTime)
|
|
g_pclInterface->GetInterface()->GetModelFrame()->mfn_vHeightWindow(m_fn_pclGetDocument()->m_ulModelViewHeight);
|
|
m_fn_pclGetDocument()->m_bModelFirstTime = FALSE;
|
|
|
|
// int nOldHeight=g_pclInterface->m_pclCaracMainFrame->GetPaneSize(C_ROW_INDEX_DES_VAR);
|
|
// EDAC_fn_vDesignerVariableView_SetOldHeight(m_fn_pclGetDocument()->m_pclDesignerVariablesView,nOldHeight);
|
|
// g_pclInterface->m_pclCaracMainFrame->SetPaneSize(C_ROW_INDEX_DES_VAR,C_wCaptionHeight);
|
|
}
|
|
//--------------------------------------------
|
|
|
|
g_oFrameGest.mfn_vSetRefresh(TRUE);
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::OnCheckVariables()
|
|
{
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateState(m_fn_pclGetDocument()->m_pclDesignerVariablesView, !((CButton *) GetDlgItem(IDC_CHECK_VAR))->GetCheck());
|
|
//--------------------------------------------
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::OnCheckCurrent()
|
|
{
|
|
CButton *pCurrent = (CButton *) GetDlgItem(IDC_CHECK_CURRENT);
|
|
CButton *pInitial = (CButton *) GetDlgItem(IDC_CHECK_INIT);
|
|
|
|
if (pCurrent->GetCheck())
|
|
m_fn_pclGetDocument()->m_bDisplayCurrentValue = TRUE;
|
|
else
|
|
{
|
|
m_fn_pclGetDocument()->m_bDisplayCurrentValue = FALSE;
|
|
|
|
if (!m_fn_pclGetDocument()->m_bDisplayInitialValue)
|
|
{
|
|
m_fn_pclGetDocument()->m_bDisplayInitialValue = TRUE;
|
|
pInitial->SetCheck(TRUE);
|
|
}
|
|
}
|
|
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateDisplay(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
//--------------------------------------------
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::OnCheckInitial()
|
|
{
|
|
CButton *pCurrent = (CButton *) GetDlgItem(IDC_CHECK_CURRENT);
|
|
CButton *pInitial = (CButton *) GetDlgItem(IDC_CHECK_INIT);
|
|
|
|
if (pInitial->GetCheck())
|
|
m_fn_pclGetDocument()->m_bDisplayInitialValue = TRUE;
|
|
else
|
|
{
|
|
m_fn_pclGetDocument()->m_bDisplayInitialValue = FALSE;
|
|
|
|
if (!m_fn_pclGetDocument()->m_bDisplayCurrentValue)
|
|
{
|
|
m_fn_pclGetDocument()->m_bDisplayCurrentValue = TRUE;
|
|
pCurrent->SetCheck(TRUE);
|
|
}
|
|
}
|
|
|
|
m_fn_pclGetDocument()->m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateDisplay(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
//--------------------------------------------
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::m_fn_vUpdatePagesButtons(char cPage)
|
|
{
|
|
ASSERT( (cPage >= 0) && (cPage < m_fn_pclGetDocument()->m_clListOfMSLists.GetCount()) );
|
|
|
|
EdActors_MSGroupButton *pclCurrentButton;
|
|
POSITION pos = m_clListOfGroupButtons.GetHeadPosition();
|
|
while ( pos != NULL )
|
|
{
|
|
pclCurrentButton = m_clListOfGroupButtons.GetNext(pos);
|
|
|
|
if ( cPage == pclCurrentButton->m_fn_ucGetListIndex() )
|
|
{
|
|
pclCurrentButton->SetCheck(TRUE);
|
|
}
|
|
else
|
|
pclCurrentButton->SetCheck(FALSE);
|
|
}
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::m_fn_vUpdateActorName()
|
|
{
|
|
if (m_fn_pclGetDocument()->m_pclSelectedActor)
|
|
m_pub_fn_vUpdateActorNameForModif(m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor);
|
|
}
|
|
|
|
//*************************************************************************
|
|
BOOL EdActors_ActorsView::OnHelpInfo(HELPINFO* pHelpInfo)
|
|
{
|
|
DWORD lHelpId = IDH_ACTORS_VIEW;
|
|
UINT uiCommand = HELP_CONTEXT;
|
|
//If necessary, searches for the window under mouse
|
|
if ( !(g_pclInterface->m_clDocument.m_bMustDisplayHelpOnActiveView) )
|
|
{
|
|
CWnd *pclWindow = WindowFromPoint(pHelpInfo->MousePos);
|
|
|
|
if ( pclWindow == (CWnd *)g_pclInterface->m_clDocument.m_pclActorsView )
|
|
lHelpId = IDH_ACTORS_VIEW;
|
|
else if ( pclWindow == (CWnd *)g_pclInterface->m_clDocument.m_pclMiniStrucView )
|
|
lHelpId = IDH_MS_VIEW;
|
|
else
|
|
{
|
|
lHelpId = 0;
|
|
uiCommand = HELP_FINDER;
|
|
}
|
|
}
|
|
|
|
::WinHelp(m_hWnd,
|
|
LPCTSTR(g_pclInterface->m_clDocument.m_csHelpFileNameAndPath),
|
|
uiCommand,
|
|
lHelpId);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
//////////////////////////////
|
|
// Responses to Popup Menus //
|
|
//////////////////////////////
|
|
|
|
//*******************************************************************************
|
|
//Renames a Model
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// NOT TO BE CALLED !! This doesnot work properly !! //
|
|
///////////////////////////////////////////////////////////
|
|
void EdActors_ActorsView::m_fn_vRenameModel()
|
|
{
|
|
EdActors_EditorActor *pclEdActor = m_fn_pclGetDocument()->m_pclSelectedActor;
|
|
|
|
ASSERT( !pclEdActor->m_fn_bIsAnInstance() );
|
|
|
|
CString csOldName = pclEdActor->m_fn_csGetActorName();
|
|
EdActors_ActorNameChangeDialog dial(csOldName, &g_oBaseFrame);
|
|
|
|
if (dial.DoModal() == IDOK )
|
|
{
|
|
//Sets actor's name
|
|
if ( pclEdActor->m_pclActor->fn_eRename(dial.m_csNewName) == E_mc_None )
|
|
{
|
|
pclEdActor->m_pclActor->m_pub_fn_pclGetSuperObject()->SetModelName(dial.m_csNewName);
|
|
|
|
//Refreshes all (in Editor)
|
|
m_fn_pclGetDocument()->m_fn_vUpdateName();
|
|
|
|
//Refreshes all (out of Editor)
|
|
//Removes old Model...
|
|
EDT_ModelsByType *pclModelList = g_pclInterface->GetInterface()->GetModelsWithTypeName(g_c_csActorModelType);
|
|
EDT_Model *pclModel = pclModelList->GetModelWithName(csOldName);
|
|
EDT_Model *pclNewModel = new EDT_Model( pclModel->m_pObjectDLL,
|
|
pclModel->m_csTypeName,
|
|
dial.m_csNewName,
|
|
pclModel->m_csBitmapName,
|
|
g_pclInterface->GetInterface());
|
|
|
|
g_pclInterface->GetInterface()->fn_bRemoveAModel(csOldName, g_c_csActorModelType);
|
|
|
|
//...then adds the new one
|
|
g_pclInterface->GetInterface()->fn_bAddANewModel(pclNewModel, g_c_csActorModelType, g_pclInterface);
|
|
|
|
//TO BE DONE...
|
|
//Updates Instances and Level
|
|
//....
|
|
}
|
|
}
|
|
}
|
|
|
|
//*******************************************************************************
|
|
//Removes a Model
|
|
void EdActors_ActorsView::m_fn_vRemoveModel()
|
|
{
|
|
|
|
}
|
|
|
|
//*******************************************************************************
|
|
//Renames an Instance
|
|
void EdActors_ActorsView::m_fn_vRenameInstance()
|
|
{
|
|
EdActors_EditorActor *pclEdActor = m_fn_pclGetDocument()->m_pclSelectedActor;
|
|
|
|
ASSERT( pclEdActor->m_fn_bIsAnInstance() );
|
|
|
|
CString csOldName = pclEdActor->m_fn_csGetActorName();
|
|
|
|
//ANNECY Shaitan Correction 18/03/98 {
|
|
HINSTANCE hOldInstance = AfxGetResourceHandle();
|
|
AfxSetResourceHandle( g_stActorEditorIdentity.hModule );
|
|
//ENDANNECY Shaitan Correction }
|
|
|
|
EdActors_ActorNameChangeDialog dial(csOldName, &g_oBaseFrame);
|
|
|
|
if (dial.DoModal() == IDOK )
|
|
{
|
|
//Sets actor's name
|
|
pclEdActor->m_pclActor->m_fn_bRename(dial.m_csNewName);
|
|
}
|
|
|
|
//ANNECY Shaitan Correction 18/03/98 {
|
|
AfxSetResourceHandle( hOldInstance );
|
|
//ENDANNECY Shaitan Correction }
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::m_fn_vSetInstancePositionAsInitial()
|
|
{
|
|
EdActors_EditorActor *pclEdActor = m_fn_pclGetDocument()->m_pclSelectedActor;
|
|
ASSERT( pclEdActor->m_fn_bIsAnInstance() );
|
|
|
|
CPA_Actor *pclActor = pclEdActor->m_pclActor;
|
|
g_pclInterface->m_clDocument.m_fn_vSetCurrentActorPositionAsInitial(pclActor);
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::m_fn_vOnMenuAlways()
|
|
{
|
|
CPA_Actor *pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
|
|
ERROR_ASSERT( pclSelectedActor->m_fn_bIsAnInstance() );
|
|
ERROR_ASSERT( !pclSelectedActor->m_fn_bIsAPrincipalActor() );
|
|
ERROR_ASSERT( !pclSelectedActor->m_fn_bIsTheCurrentMotorCamera() );
|
|
//ERROR_ASSERT( !pclSelectedActor->m_fn_bIsTheWorldActor() );
|
|
|
|
//If always mode and actor -> not always, change it
|
|
if (pclSelectedActor->m_fn_bIsAnAlways() && m_fn_pclGetDocument()->m_pub_fn_bCurrentModeIsAlwaysModel())
|
|
m_fn_pclGetDocument()->m_fn_vSetMode(ED_ACTORS_eDisplayMode_Instance);
|
|
pclSelectedActor->GetEditor()->M_GetEditManager()->AskFor(new CPA_MakeAlways(m_fn_pclGetDocument(), pclSelectedActor, !pclSelectedActor->m_fn_bIsAnAlways()));
|
|
// pclSelectedActor->m_fn_vMakeAlways(!pclSelectedActor->m_fn_bIsAnAlways());
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::m_fn_vOnMenuCommon()
|
|
{
|
|
CPA_Actor *pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
|
|
ERROR_ASSERT( pclSelectedActor->m_fn_bIsAnInstance() );
|
|
|
|
pclSelectedActor->m_pub_fn_vSetCommon(!pclSelectedActor->m_pub_fn_bIsCommon());
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::m_fn_vOnMenuIntoFix()
|
|
{
|
|
CPA_Actor *pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
|
|
ERROR_ASSERT( pclSelectedActor->m_fn_bIsAnInstance() );
|
|
|
|
pclSelectedActor->m_pub_fn_vSetInFix(!pclSelectedActor->m_pub_fn_bIsInFix());
|
|
}
|
|
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::OnAlwaysActive()
|
|
{
|
|
CPA_Actor *pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
|
|
ERROR_ASSERT( pclSelectedActor->m_fn_bIsAnInstance() );
|
|
|
|
pclSelectedActor->m_pub_fn_vSetAlwaysActive(!pclSelectedActor->m_pub_fn_bIsAlwaysActive());
|
|
((CButton *)GetDlgItem(IDC_CHECK_ALWAYS_ACTIVE))->SetCheck (pclSelectedActor->m_pub_fn_bIsAlwaysActive() ? 1 : 0);
|
|
}
|
|
|
|
// ANNECY MT - 19/11/98 {
|
|
//*******************************************************************************
|
|
void EdActors_ActorsView::OnInAllSubMaps()
|
|
{
|
|
CPA_Actor *pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
|
|
ERROR_ASSERT( pclSelectedActor->m_fn_bIsAnInstance() );
|
|
|
|
pclSelectedActor->m_pub_fn_vSetInAllSubMaps(!pclSelectedActor->m_pub_fn_bIsInAllSubMaps());
|
|
((CButton *)GetDlgItem(IDC_CHECK_IN_ALL_SUBMAPS))->SetCheck (pclSelectedActor->m_pub_fn_bIsInAllSubMaps() ? 1 : 0);
|
|
}
|
|
// END ANNECY MT }
|
|
|
|
//*************************************************************************
|
|
//*************************************************************************
|
|
// Undo / Redo
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonRedo()
|
|
{
|
|
EdActors_EditorActor *pclCurrentActor = m_fn_pclGetDocument()->m_pclSelectedActor;
|
|
|
|
if ( pclCurrentActor->m_clUndoManager.CanRedo() )
|
|
{
|
|
if ( !pclCurrentActor->m_clUndoManager.Redo() )
|
|
{
|
|
CString csMessage = "Actors Editor can not Redo !";
|
|
EdActors_InformationDialog InfoDial(&g_oBaseFrame, csMessage);
|
|
InfoDial.DoModal();
|
|
}
|
|
}
|
|
|
|
m_fn_vUpdateUndoRedoButtons();
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonUndo()
|
|
{
|
|
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::m_fn_vUpdateUndoRedoButtons()
|
|
{
|
|
EdActors_EditorActor *pclCurrentActor = m_fn_pclGetDocument()->m_pclSelectedActor;
|
|
|
|
if ( pclCurrentActor != NULL )
|
|
{
|
|
if ( !pclCurrentActor->m_clUndoManager.CanUndo() )
|
|
{
|
|
GetDlgItem(IDC_BUTTON_UNDO)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_BUTTON_UNDO_ARROW)->EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_BUTTON_UNDO_ARROW)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_BUTTON_UNDO)->EnableWindow(TRUE);
|
|
}
|
|
|
|
if ( !pclCurrentActor->m_clUndoManager.CanRedo() )
|
|
{
|
|
GetDlgItem(IDC_BUTTON_REDO_ARROW)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_BUTTON_REDO)->EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_BUTTON_REDO_ARROW)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_BUTTON_REDO)->EnableWindow(TRUE);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_BUTTON_UNDO)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_BUTTON_UNDO_ARROW)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_BUTTON_REDO)->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonUndoArrow()
|
|
{
|
|
HICON hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_UNDO_ARROW_UP);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_UNDO_ARROW))->SetIcon(hIcon);
|
|
|
|
CRect crUndoButtonRect;
|
|
GetDlgItem(IDC_BUTTON_UNDO)->GetWindowRect(crUndoButtonRect);
|
|
|
|
CPoint clPoint;
|
|
clPoint.x = crUndoButtonRect.left;
|
|
clPoint.y = crUndoButtonRect.bottom;
|
|
|
|
EdActors_UndoRedoListDialog dial(clPoint,
|
|
EdActors_UndoRedoListDialog::EDCAR_UNDOREDO_LIST_TYPE_UNDO,
|
|
&g_oBaseFrame);
|
|
dial.DoModal();
|
|
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_UNDO_ARROW_DOWN);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_UNDO_ARROW))->SetIcon(hIcon);
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonRedoArrow()
|
|
{
|
|
HICON hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_UNDO_ARROW_UP);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_REDO_ARROW))->SetIcon(hIcon);
|
|
|
|
CRect crUndoButtonRect;
|
|
GetDlgItem(IDC_BUTTON_REDO)->GetWindowRect(crUndoButtonRect);
|
|
|
|
CPoint clPoint;
|
|
clPoint.x = crUndoButtonRect.left;
|
|
clPoint.y = crUndoButtonRect.bottom;
|
|
|
|
EdActors_UndoRedoListDialog dial(clPoint,
|
|
EdActors_UndoRedoListDialog::EDCAR_UNDOREDO_LIST_TYPE_REDO,
|
|
&g_oBaseFrame);
|
|
dial.DoModal();
|
|
|
|
hIcon = AfxGetApp()->LoadIcon(IDI_CAR_BUTTON_UNDO_ARROW_DOWN);
|
|
((CButton *)GetDlgItem(IDC_BUTTON_REDO_ARROW))->SetIcon(hIcon);
|
|
}
|
|
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonShowModels()
|
|
{
|
|
//Shows all Models of the current Family
|
|
if ( m_fn_pclGetDocument()->m_pclSelectedActor != NULL )
|
|
{
|
|
//Opens a box with all Models of the Family
|
|
CPA_Family *pclFamily = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor->m_pub_fn_pclGetFamily();
|
|
|
|
CRect crButtonRect;
|
|
GetDlgItem(IDC_BUTTON_SHOW_MODELS)->GetWindowRect(crButtonRect);
|
|
|
|
EdActors_Dialog_ActorChoice dial(pclFamily, CPoint(crButtonRect.left, crButtonRect.bottom + 1));
|
|
if ( (dial.DoModal() == IDOK) && (dial.m_pclSelectedActor != NULL) )
|
|
m_fn_pclGetDocument()->m_fn_vDisplayActor(dial.m_pclSelectedActor, ED_ACTORS_eModeOfActorSelection_InActorsView);
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonEditModel()
|
|
{
|
|
if ( m_fn_pclGetDocument()->m_pclSelectedActor != NULL )
|
|
{
|
|
//Edits the Model of the Instance
|
|
ERROR_ASSERT( m_fn_pclGetDocument()->m_pclSelectedActor->m_fn_bIsAnInstance() );
|
|
|
|
EdActors_EditorActor *pclNewSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->
|
|
m_pclActor->m_fn_pclGetModel()->m_fn_pclGetEditorActor();
|
|
|
|
m_fn_pclGetDocument()->m_fn_vDisplayActor(pclNewSelectedActor, ED_ACTORS_eModeOfActorSelection_InActorsView);
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonShowInstances()
|
|
{
|
|
if ( m_fn_pclGetDocument()->m_pclSelectedActor != NULL )
|
|
{
|
|
//Opens a box with all instances of the Model
|
|
CPA_Actor *pclModel;
|
|
if ( m_fn_pclGetDocument()->m_pclSelectedActor->m_fn_bIsAnInstance() )
|
|
pclModel = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor->m_fn_pclGetModel();
|
|
else
|
|
pclModel = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
|
|
CRect crButtonRect;
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->GetWindowRect(crButtonRect);
|
|
|
|
EdActors_Dialog_ActorChoice dial(pclModel, CPoint(crButtonRect.left, crButtonRect.bottom + 1));
|
|
if ( (dial.DoModal() == IDOK) && (dial.m_pclSelectedActor != NULL) )
|
|
m_fn_pclGetDocument()->m_fn_vDisplayActor(dial.m_pclSelectedActor, ED_ACTORS_eModeOfActorSelection_InActorsView);
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonActions()
|
|
{
|
|
//Calls Action DLL
|
|
CPA_ToolDLLBase *pclActionDLL = g_pclInterface->GetMainWorld()->GetToolDLLWithName(C_szDLLActionName);
|
|
|
|
if(m_fn_pclGetDocument()->m_pclSelectedActor!=NULL)
|
|
{
|
|
CPA_Actor *pclCurrentActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
|
|
ERROR_ASSERT( pclActionDLL != NULL );
|
|
ERROR_ASSERT( pclCurrentActor != NULL );
|
|
ERROR_ASSERT( pclCurrentActor->m_pub_fn_pclGetFamily() != NULL );
|
|
|
|
if ( pclActionDLL != NULL )
|
|
{
|
|
CPA_List<CPA_BaseObject> pclBaseObjectList;
|
|
pclBaseObjectList.AddTail(pclCurrentActor->m_pub_fn_pclGetFamily());
|
|
|
|
g_pclInterface->GetMainWorld()->fn_bActivateEditor(pclActionDLL, &pclBaseObjectList);
|
|
}
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnCheckShowLinks()
|
|
{
|
|
g_pclInterface->m_clDocument.m_pub_bMustShowLinks = ((CButton *)GetDlgItem(IDC_CHECK_SHOW_LINKS))->GetCheck();
|
|
|
|
g_pclInterface->m_clDocument.m_pclMiniStrucView->m_fn_vUpdateTree();
|
|
|
|
//-----------------IR-------------------------
|
|
if(m_fn_pclGetDocument()->m_pclDesignerVariablesView)
|
|
EDAC_fn_vDesignerVariableView_UpdateDisplay(m_fn_pclGetDocument()->m_pclDesignerVariablesView);
|
|
//--------------------------------------------
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::m_pub_fn_vUpdateActorNameForModif(CPA_Actor *_pclSendingActor)
|
|
{
|
|
if ( m_fn_pclGetDocument()->m_pclSelectedActor != NULL )
|
|
{
|
|
if ( _pclSendingActor == m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor )
|
|
{
|
|
CString csActorName = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor->GetName();
|
|
|
|
if ( m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor->m_pub_fn_bHasBeenModified() )
|
|
csActorName += CString(C_szActorModified);
|
|
|
|
if ( m_fn_pclGetDocument()->m_pclSelectedActor->m_fn_bIsAnInstance() )
|
|
{
|
|
m_pclActorNameStatic->m_fn_vSetTextToDisplay(csActorName, TRUE);
|
|
}
|
|
else
|
|
m_pclModelNameStatic->m_fn_vSetTextToDisplay(csActorName, TRUE);
|
|
}
|
|
else if ( m_fn_pclGetDocument()->m_pclSelectedActor->m_fn_bIsAnInstance() )
|
|
{
|
|
//Updates Model's name
|
|
CPA_Actor *pclModel = ((EdActors_EditorActorInstance *)m_fn_pclGetDocument()->m_pclSelectedActor)->m_fn_pclGetModel();
|
|
CString csActorName = pclModel->GetName();
|
|
|
|
if ( pclModel->m_pub_fn_bHasBeenModified() )
|
|
csActorName += CString(C_szActorModified);
|
|
|
|
m_pclModelNameStatic->m_fn_vSetTextToDisplay(csActorName, TRUE);
|
|
}
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonCopy()
|
|
{
|
|
//Gets current model
|
|
CPA_Actor *pclSourceActor = NULL;
|
|
|
|
if ( ( g_pclInterface->m_clDocument.m_pub_fn_bCurrentModeIsModel() )
|
|
&& ( g_pclInterface->m_clDocument.m_pclCurrentModel != NULL )
|
|
)
|
|
pclSourceActor = g_pclInterface->m_clDocument.m_pclCurrentModel->m_pclActor;
|
|
else if ( ( g_pclInterface->m_clDocument.m_pub_fn_bCurrentModeIsInstance() )
|
|
&& ( g_pclInterface->m_clDocument.m_pclCurrentInstance != NULL )
|
|
)
|
|
pclSourceActor = g_pclInterface->m_clDocument.m_pclCurrentInstance->m_pclActor;
|
|
|
|
if( pclSourceActor != NULL )
|
|
{
|
|
g_pclInterface->m_clDocument.m_fn_vCreateCopiesOfActor(pclSourceActor);
|
|
}
|
|
}
|
|
|
|
// Shaitan => state list in the level
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonStateList()
|
|
{
|
|
if (g_pclInterface->m_bCanGenerateOptimizedLevel)
|
|
{
|
|
CPA_Family *pFamily;
|
|
|
|
// get current family
|
|
pFamily = (CPA_Family *) g_pclInterface->m_clDocument.m_pclCurrentFamily;
|
|
|
|
// update actions references
|
|
g_pclInterface->m_clDocument.m_fn_vUpdateReferencesForAllActions();
|
|
|
|
// update and notify the state list of the family
|
|
g_pclInterface->m_clDocument.m_fn_vUpdateListOfUsedActionsForFamily(pFamily);
|
|
|
|
// Shaitan => module list in the level
|
|
// update the object table list of the family
|
|
g_pclInterface->m_clDocument.m_fn_vUpdateListOfUsedObjectTablesForFamily(pFamily);
|
|
|
|
// update and notify the PO list of the family
|
|
g_pclInterface->m_clDocument.m_fn_vUpdateListOfUsedPOsForFamily(pFamily);
|
|
// End Shaitan => module list in the level
|
|
}
|
|
}
|
|
// End Shaitan => state list in the level
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::m_pub_fn_vEnableAllControls(BOOL _bEnable)
|
|
{
|
|
if ( _bEnable != m_pri_bControlsAreEnabled )
|
|
{
|
|
//Resources controls
|
|
/*
|
|
GetDlgItem(IDC_RADIO_LEVEL_1)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_RADIO_LEVEL_2)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_RADIO_LEVEL_3)->EnableWindow(_bEnable);
|
|
*/
|
|
GetDlgItem(IDC_CHECK_WATCH)->EnableWindow(_bEnable);
|
|
//Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
// GetDlgItem(IDC_CHECK_LEVEL_EXCLUSIVE)->EnableWindow(_bEnable);
|
|
//End Stefan Dumitrean 14-07-98 ( OAC buttons )
|
|
GetDlgItem(IDC_CHECK_IA)->EnableWindow(_bEnable);
|
|
//SHA-TEMP
|
|
// GetDlgItem(IDC_CHECK_VAR)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_VAR)->EnableWindow(_bEnable && ((CButton *)GetDlgItem(IDC_CHECK_IA))->GetCheck());
|
|
GetDlgItem(IDC_CHECK_CURRENT)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_INIT)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_UNDO)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_UNDO_ARROW)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_REDO)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_REDO_ARROW)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_EDIT_MODEL)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_SHOW_INSTANCES)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_SHOW_MODELS)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_ACTIONS)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_BUTTON_COPY_MODEL)->EnableWindow(_bEnable);
|
|
// Shaitan => state list in the level
|
|
GetDlgItem(IDC_BUTTON_GENERATE_STATELIST)->EnableWindow(_bEnable && g_pclInterface->m_bCanGenerateOptimizedLevel);
|
|
// End Shaitan => state list in the level
|
|
GetDlgItem(IDC_BUTTON_HELP)->EnableWindow(_bEnable);
|
|
GetDlgItem(IDC_CHECK_ALWAYS_ACTIVE)->EnableWindow(_bEnable && mfn_bIsAlwaysActiveEnabled ());
|
|
GetDlgItem(IDC_CHECK_IN_ALL_SUBMAPS)->EnableWindow(_bEnable && mfn_bIsInAllSubMapsEnabled ());
|
|
|
|
//Other controls
|
|
POSITION pos = m_clListOfGroupButtons.GetHeadPosition();
|
|
while ( pos != NULL )
|
|
m_clListOfGroupButtons.GetNext(pos)->EnableWindow(_bEnable);
|
|
|
|
m_pri_bControlsAreEnabled = _bEnable;
|
|
}
|
|
//CPA2 Stegaru Cristian 98/06/30
|
|
GetDlgItem(IDC_CLEAN_ALW_FILE)->EnableWindow (TRUE);
|
|
//End CPA2 Stegaru Cristian 98/06/30
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnButtonHelp()
|
|
{
|
|
g_pclInterface->m_clDocument.m_pub_bMustDisplayHelpOnFields = !g_pclInterface->m_clDocument.m_pub_bMustDisplayHelpOnFields;
|
|
|
|
if ( g_pclInterface->m_clDocument.m_pub_bMustDisplayHelpOnFields )
|
|
{
|
|
SetCapture();
|
|
g_pclInterface->m_clDocument.m_hPreviousCursorForHelpOnFields = SetCursor(g_pclInterface->m_clDocument.m_hHelpCursor);
|
|
}
|
|
else
|
|
{
|
|
SetCursor(g_pclInterface->m_clDocument.m_hPreviousCursorForHelpOnFields);
|
|
g_pclInterface->m_clDocument.m_hPreviousCursorForHelpOnFields = NULL;
|
|
ReleaseCapture();
|
|
}
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnMouseMove(UINT nFlags, CPoint point)
|
|
{
|
|
if ( g_pclInterface->m_clDocument.m_pub_bMustDisplayHelpOnFields )
|
|
{
|
|
//Converts the point
|
|
CPoint cpTruePoint = point;
|
|
ClientToScreen(&cpTruePoint);
|
|
//Gets the window under the cursor
|
|
CWnd *pclWindow = WindowFromPoint(cpTruePoint);
|
|
|
|
//Tests if window under cursor is a Static of Characteristics Editor
|
|
BOOL bHelpEnabled = FALSE;
|
|
|
|
if ( pclWindow->IsKindOf(RUNTIME_CLASS(CTL_Editor_Static)) )
|
|
bHelpEnabled = ( ((CTL_Editor_Static *)pclWindow)->m_pub_fn_tdeGetType() == CTL_STATIC_TYPE__FIELD_NAME );
|
|
|
|
SetCursor(bHelpEnabled ? g_pclInterface->m_clDocument.m_hHelpCursor
|
|
: g_pclInterface->m_clDocument.m_hHelpDisabledCursor);
|
|
}
|
|
|
|
CFormView::OnMouseMove(nFlags, point);
|
|
}
|
|
|
|
//*************************************************************************
|
|
void EdActors_ActorsView::OnLButtonUp(UINT nFlags, CPoint point)
|
|
{
|
|
if ( g_pclInterface->m_clDocument.m_pub_bMustDisplayHelpOnFields )
|
|
{
|
|
//Converts the point
|
|
CPoint cpTruePoint = point;
|
|
ClientToScreen(&cpTruePoint);
|
|
//Gets the window under the cursor
|
|
CWnd *pclWindow = WindowFromPoint(cpTruePoint);
|
|
|
|
//Tests if window under cursor is a Static of Characteristics Editor
|
|
if ( pclWindow->IsKindOf(RUNTIME_CLASS(CTL_Editor_Static)) )
|
|
{
|
|
CTL_Editor_Static *pclMyStatic = (CTL_Editor_Static *)pclWindow;
|
|
if ( pclMyStatic->m_pub_fn_tdeGetType() == CTL_STATIC_TYPE__FIELD_NAME )
|
|
{
|
|
//Displays Help
|
|
::WinHelp(m_hWnd,
|
|
LPCTSTR(g_pclInterface->m_clDocument.m_csHelpFileNameAndPath),
|
|
HELP_CONTEXTPOPUP,
|
|
OAC_fn_tdeGetLevelOfControl( pclMyStatic->m_pub_fn_pclGetParentControl() )
|
|
);
|
|
}
|
|
}
|
|
|
|
SetCursor(g_pclInterface->m_clDocument.m_hPreviousCursorForHelpOnFields);
|
|
g_pclInterface->m_clDocument.m_hPreviousCursorForHelpOnFields = NULL;
|
|
g_pclInterface->m_clDocument.m_pub_bMustDisplayHelpOnFields = FALSE;
|
|
|
|
ReleaseCapture();
|
|
}
|
|
|
|
CFormView::OnLButtonUp(nFlags, point);
|
|
}
|
|
|
|
//*************************************************************************
|
|
//*************************************************************************
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// EdActors_ActorsView diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void EdActors_ActorsView::AssertValid() const
|
|
{
|
|
CFormView::AssertValid();
|
|
}
|
|
|
|
void EdActors_ActorsView::Dump(CDumpContext& dc) const
|
|
{
|
|
CFormView::Dump(dc);
|
|
}
|
|
#endif //_DEBUG
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : OnCheckAlwaysActive
|
|
// Date : 98-05
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Stegaru Cristian - CPA2
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void EdActors_ActorsView::OnCheckAlwaysActive()
|
|
{
|
|
CPA_Actor *pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
ERROR_ASSERT( pclSelectedActor->m_fn_bIsAnInstance() );
|
|
|
|
pclSelectedActor->m_pub_fn_vSetAlwaysActive(!pclSelectedActor->m_pub_fn_bIsAlwaysActive());
|
|
}
|
|
|
|
|
|
|
|
|
|
// ANNECY MT - 19/11/98 {
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : OnCheckInAllSubMaps
|
|
// Date : 98-05
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Marc Trabucato
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void EdActors_ActorsView::OnCheckInAllSubMaps()
|
|
{
|
|
CPA_Actor *pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor;
|
|
ERROR_ASSERT( pclSelectedActor->m_fn_bIsAnInstance() );
|
|
|
|
pclSelectedActor->m_pub_fn_vSetInAllSubMaps(!pclSelectedActor->m_pub_fn_bIsInAllSubMaps());
|
|
}
|
|
// END ANNECY MT }
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : mfn_bIsAlwaysActiveEnabled
|
|
// Date : 98-05
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Stegaru Cristian - CPA2
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
BOOL EdActors_ActorsView::mfn_bIsAlwaysActiveEnabled (void)
|
|
{
|
|
BOOL bEnabled = FALSE;
|
|
CPA_Actor *pclSelectedActor = NULL;
|
|
if (m_fn_pclGetDocument()->m_pclSelectedActor &&
|
|
(pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor))
|
|
|
|
{
|
|
if (pclSelectedActor->m_fn_bIsAnInstance())
|
|
bEnabled = !pclSelectedActor->m_fn_bIsAnAlways() /*&& !pclSelectedActor->m_fn_bIsTheWorldActor()*/;
|
|
}
|
|
|
|
|
|
return bEnabled;
|
|
}
|
|
|
|
|
|
|
|
// ANNECY MT - 19/11/98 {
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : mfn_bIsInAllSubMapsEnabled
|
|
// Date : 98-05
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Marc Trabucato
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
BOOL EdActors_ActorsView::mfn_bIsInAllSubMapsEnabled (void)
|
|
{
|
|
BOOL bEnabled = FALSE;
|
|
CPA_Actor *pclSelectedActor = NULL;
|
|
if (m_fn_pclGetDocument()->m_pclSelectedActor &&
|
|
(pclSelectedActor = m_fn_pclGetDocument()->m_pclSelectedActor->m_pclActor))
|
|
|
|
{
|
|
if (pclSelectedActor->m_fn_bIsAnInstance())
|
|
bEnabled = !pclSelectedActor->m_fn_bIsAnAlways() /*&& !pclSelectedActor->m_fn_bIsTheWorldActor()*/;
|
|
}
|
|
|
|
|
|
return bEnabled;
|
|
}
|
|
// END ANNECY MT }
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : OnCleanAlwFile
|
|
// Date : 98/06/30
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Stegaru Cristian - CPA
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void EdActors_ActorsView::OnCleanAlwFile()
|
|
{
|
|
CWaitCursor wait;
|
|
CStringList lstOfRefAlways;
|
|
//treat regular models
|
|
Position pos = g_pclInterface->m_clDocument.m_clModelsList.GetHeadPosition ();
|
|
while (pos)
|
|
{
|
|
CPA_Actor *pModel = (CPA_Actor *)g_pclInterface->m_clDocument.m_clModelsList.GetNext (pos);
|
|
if (!pModel || !pModel->m_fn_bIsAModel ())
|
|
continue;
|
|
|
|
g_pclInterface->m_clDocument.mfn_vFillRefAlwaysForModel (pModel, lstOfRefAlways);
|
|
|
|
}
|
|
|
|
//treat always models
|
|
pos = g_pclInterface->m_clDocument.m_clAlwaysList.GetHeadPosition ();
|
|
while (pos)
|
|
{
|
|
CPA_Actor *pModel = (CPA_Actor *)g_pclInterface->m_clDocument.m_clAlwaysList.GetNext (pos);
|
|
if (!pModel || !pModel->m_fn_bIsAModel ())
|
|
continue;
|
|
|
|
g_pclInterface->m_clDocument.mfn_vFillRefAlwaysForModel (pModel, lstOfRefAlways);
|
|
}
|
|
|
|
|
|
//prepare the list of always loaded and not referenced
|
|
CStringList lstOfLoadedAlwaysNotReferenced;
|
|
Position posA = g_pclInterface->m_clDocument.m_clAlwaysList.GetHeadPosition ();
|
|
while (posA)
|
|
{
|
|
CPA_BaseObject *pAlways = g_pclInterface->m_clDocument.m_clAlwaysList.GetNext (posA);
|
|
ASSERT (pAlways);
|
|
CString csAlways = pAlways->GetName();
|
|
csAlways.MakeLower();
|
|
BOOL bAlwaysIsReferenced = (lstOfRefAlways.Find(csAlways) != NULL);
|
|
if (!bAlwaysIsReferenced)
|
|
lstOfLoadedAlwaysNotReferenced.AddTail(pAlways->GetName());
|
|
}
|
|
|
|
CDlgCleanAlwFile dlg (lstOfLoadedAlwaysNotReferenced, TASK_CLEAN_ALW_FILE);
|
|
if (IDOK == dlg.DoModal ())
|
|
{
|
|
//clean the alw file
|
|
CStringList &rlstOfAlwaysToBeRemoved = lstOfLoadedAlwaysNotReferenced; //the dialog fills the list with the always to be removed
|
|
//change the name in order not to propagate confusion
|
|
|
|
g_pclInterface->M_GetEditManager ()->AskFor (new ModifCleanAlwFile (g_pclInterface, rlstOfAlwaysToBeRemoved));
|
|
}
|
|
}
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : ModifCleanAlwFile
|
|
// Date : 98/07/15
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Stegaru Cristian - CPA
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
ModifCleanAlwFile::ModifCleanAlwFile (CPA_Actor_Editor_Interface *pInterface, CStringList &rlstAlwObjects, BOOL pBlock/* = FALSE*/)
|
|
: CPA_Modif (CLEAN_ALW_FILE, "CleanAlwFile", pBlock)
|
|
{
|
|
m_pInterface = pInterface;
|
|
m_lstAlwObjects.AddHead (&rlstAlwObjects);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : Do
|
|
// Date : 98/07/15
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Stegaru Cristian - CPA
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
BOOL ModifCleanAlwFile::Do ()
|
|
{
|
|
ASSERT (m_pInterface);
|
|
int iReinitDialog = 0;
|
|
Position posAlw = m_pInterface->m_clDocument.m_clAlwaysList.GetHeadPosition ();
|
|
while (posAlw)
|
|
{
|
|
CPA_Actor *pAlways = (CPA_Actor *)m_pInterface->m_clDocument.m_clAlwaysList.GetNext (posAlw);
|
|
ASSERT (pAlways);
|
|
BOOL bRemoveIt = NULL != m_lstAlwObjects.Find (pAlways->GetName ());
|
|
//remove the always that are choosed to be removed
|
|
if (bRemoveIt)
|
|
iReinitDialog = m_pInterface->mfn_bUnloadAlwaysFromLevel (pAlways) ? posAlw = m_pInterface->m_clDocument.m_clAlwaysList.GetHeadPosition (), //there is a bug in the list implementatin, so I have to reinitialize the list pos after I delete an element
|
|
iReinitDialog + 1 : iReinitDialog;
|
|
}
|
|
if (0 < iReinitDialog)
|
|
{
|
|
ASSERT (m_pInterface->m_clDocument.m_pclDialogList);
|
|
m_pInterface->m_clDocument.m_pclDialogList->fn_vReinitDialog ();
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : Undo
|
|
// Date : 98/07/15
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Stegaru Cristian - CPA
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
BOOL ModifCleanAlwFile::Undo ()
|
|
{
|
|
int iReinitDialog = 0;
|
|
POSITION pos = m_lstAlwObjects.GetHeadPosition ();
|
|
while (pos)
|
|
{
|
|
CString csAlwName = m_lstAlwObjects.GetNext (pos);
|
|
if (csAlwName.IsEmpty ())
|
|
continue;
|
|
|
|
CPA_UnloadedAlways *pUAlways = NULL;
|
|
BOOL bFound = FALSE;
|
|
Position posUA = m_pInterface->m_clDocument.m_clUnloadedAlwaysList.GetHeadPosition ();
|
|
while (posUA)
|
|
{
|
|
pUAlways = (CPA_UnloadedAlways *)m_pInterface->m_clDocument.m_clUnloadedAlwaysList.GetNext (posUA);
|
|
if (csAlwName == pUAlways->mfn_csGetUAlwaysName ())
|
|
{
|
|
bFound = TRUE;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!bFound)
|
|
return FALSE;
|
|
|
|
ASSERT (pUAlways);
|
|
m_pInterface->m_clDocument.m_clUnloadedAlwaysList.fn_bRemoveObject (pUAlways);
|
|
m_pInterface->mfn_vLoadAlways (pUAlways);
|
|
pUAlways->mfn_vSetLoaded (TRUE);
|
|
iReinitDialog++;
|
|
}
|
|
if (0 < iReinitDialog)
|
|
m_pInterface->m_clDocument.m_pclDialogList->fn_vReinitDialog ();
|
|
|
|
return TRUE;
|
|
}
|
|
|