reman3/Rayman_X/cpa/tempgrp/TME/Src/EMECCrdT.cpp

309 lines
9.3 KiB
C++

// Implementation for the definition of the class representing a Mechanical Card
/////////////////////////////////////////////////////////////////////////////////
#include "StdAfx.h"
#include "EMECCrdT.hpp"
#include "EMECVwMS.hpp"
#include "EMECDoc.hpp"
#include "EMECFmMn.hpp"
#include "EMECCnst.hpp"
#include "EMECDgQu.hpp"
#include "EMECClBk.hpp"
#include "EMECCStr.hpp"
#include "_Minterf.hpp"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//***************************************************************************
CPA_Meca_CardType::CPA_Meca_CardType(CString csName,
DNM_tdeMechanicsID tdeMotorID)
{
m_csName = csName;
m_tdeMotorID = tdeMotorID;
m_pclCurrentCard = NULL;
m_p_fn_vUnallocate = NULL;
m_p_fn_vFill = NULL;
m_p_fn_vSave = NULL;
m_crControlZone = CRect(0,0,0,0);
m_bControlsAreHidden = TRUE;
m_bAtLeastOneCardOfTheCardTypeHasBeenLoaded = FALSE;
}
//***************************************************************************
CPA_Meca_CardType::~CPA_Meca_CardType()
{
}
//**************************************************************************************
//********************************** Controls ****************************************
//**************************************************************************************
//**************************************************************************************
void CPA_Meca_CardType::m_fn_vAddDecimalControl(long double ldMinValue,
long double ldMaxValue,
char cDataLength,
BOOL bReadOnly,
CString _csControlName)
{
m_pri_fn_vAddOwnerDataToControl( m_clControlList.m_fn_pclAddDecimalControl( ldMinValue,
ldMaxValue,
cDataLength,
bReadOnly,
CTL_SPACING_TYPE__SINGLE_LINE,
FALSE,
_csControlName,
TRUE, 0 //ANNECY BBB
)
);
}
//**************************************************************************************
void CPA_Meca_CardType::m_fn_vAddBooleanControl(BOOL bReadOnly,
CString _csControlName)
{
m_pri_fn_vAddOwnerDataToControl( m_clControlList.m_fn_pclAddBooleanControl( bReadOnly,
CTL_SPACING_TYPE__SINGLE_LINE,
FALSE,
_csControlName,
TRUE, 0 //ANNECY BBB
)
);
}
//**************************************************************************************
void CPA_Meca_CardType::m_pri_fn_vAddOwnerDataToControl(CTL_Editor_Control *_pclControl)
{
if ( _pclControl != NULL )
{
//OwnerData
_pclControl->m_pub_fn_pclAddOwnerData((void *)this, TME_g_c_cs_ControlOwnerData_ParentCardType);
}
}
//**************************************************************************************
//**************************************************************************************
//**************************************************************************************
//**************************************************************************************
//Creates all controls
long CPA_Meca_CardType::m_fn_lCreateMSControls( CWnd *pclWnd,
CRect crRect)
{
m_pclParentView = (CPA_Meca_MiniStrucView *)pclWnd;
//Adds an item in the tree
m_crDisplayRect = crRect;
//Creates controls of the data list
////
CTL_fn_vSetModuleInfo("TMe", CString("Type ") + m_csName); ///for TUT
////
//Creates controls of the data list
POSITION pos = m_clControlList.GetHeadPosition();
while ( pos != NULL )
(m_clControlList.GetNext(pos))->m_fn_bCreateControl(pclWnd);
////
CTL_fn_vResetModuleInfo();
////
return 0L;
}
//**************************************************************************************
//Hides all controls
void CPA_Meca_CardType::m_fn_vHideAllControls()
{
//Hides controls of the data list
m_clControlList.m_pub_fn_vHideAllControls();
m_bControlsAreHidden = TRUE;
}
//**************************************************************************************
long CPA_Meca_CardType::m_fn_lOpen(CRect crRect)
{
CPoint clTopLeft;
CPoint clTopRight;
clTopLeft.y = clTopRight.y = crRect.top;
clTopLeft.x = crRect.left + C_TABULATION;
clTopRight.x = crRect.right;
m_clControlList.m_pub_fn_vDisplayControlsInZone(clTopLeft, clTopRight);
m_bControlsAreHidden = FALSE;
return (clTopLeft.y - crRect.top);
}
//**************************************************************************************
void CPA_Meca_CardType::m_fn_vClose()
{
//Hides controls of the list
m_clControlList.m_pub_fn_vHideAllControls();
m_crControlZone = CRect(0,0,0,0);
m_bControlsAreHidden = TRUE;
}
//**************************************************************************************
void CPA_Meca_CardType::m_fn_vOffsetZone(long lOffset)
{
m_crControlZone.OffsetRect(0, lOffset);
}
//**************************************************************************************
void CPA_Meca_CardType::m_fn_vGetMotorDatas()
{
//Gets motor data for all controls of the data list
//And retrieves it in the control
m_clControlList.m_pub_fn_vUpdateControlsWithEditedData(TRUE);
}
//**************************************************************************************
CPA_Meca_Card *CPA_Meca_CardType::m_fn_pclGetEditedCard()
{
return m_pclCurrentCard;
}
//**************************************************************************************
void CPA_Meca_CardType::m_fn_vSetEditedCard(CPA_Meca_Card *pclNewCard)
{
// ERROR_ASSERT( (pclNewCard != NULL) && (pclNewCard->fn_bIsAvailable()) );
m_pclCurrentCard = pclNewCard;
}
//**************************************************************************************
CPA_Meca_CardList *CPA_Meca_CardType::m_fn_pclGetCardsList()
{
return (&m_clCardsList);
}
//**************************************************************************************
unsigned long CPA_Meca_CardType::m_fn_ulGetCardsNumber()
{
return m_clCardsList.GetCount();
}
//**************************************************************************************
BOOL CPA_Meca_CardType::m_fn_bControlsAreHidden()
{
return m_bControlsAreHidden;
}
//**************************************************************************************
CString CPA_Meca_CardType::m_fn_csGetCardTypeName()
{
return m_csName;
}
//**************************************************************************************
void CPA_Meca_CardType::m_fn_vSetCardTypeName(CString csNewName)
{
m_csName = csNewName;
}
//***************************************************************************
//Get : The ID of the type of Mechanics (image of Motor ID)
DNM_tdeMechanicsID CPA_Meca_CardType::m_fn_tdeGetMotorID()
{
return m_tdeMotorID;
}
//***************************************************************************
//The name of the File where this type of Cards are stored
CString CPA_Meca_CardType::m_fn_csGetFileName()
{
return m_csFileName;
}
//***************************************************************************
void CPA_Meca_CardType::m_fn_vSetFileName(CString csNewName)
{
m_csFileName = csNewName;
}
//***************************************************************************
//The name of the Action for this type of Cards
CString CPA_Meca_CardType::m_fn_csGetActionName()
{
return m_csActionName;
}
//***************************************************************************
void CPA_Meca_CardType::m_fn_vSetActionName(CString csNewName)
{
m_csActionName = csNewName;
}
//**************************************************************************************
//**************************************************************************************
//**************************************************************************************
CPA_Meca_CardTypeList::CPA_Meca_CardTypeList()
{
}
//**************************************************************************************
CPA_Meca_CardTypeList::~CPA_Meca_CardTypeList()
{
m_fn_vEmptyList();
}
//**************************************************************************************
CPA_Meca_CardType* CPA_Meca_CardTypeList::m_fn_pclAddElement(CString csName,
DNM_tdeMechanicsID tdeMotorID)
{
CPA_Meca_CardType *pclNewElement = new CPA_Meca_CardType(csName, tdeMotorID);
AddTail(pclNewElement);
return pclNewElement;
}
//**************************************************************************************
void CPA_Meca_CardTypeList::m_fn_vEmptyList()
{
POSITION pos = GetHeadPosition();
while( pos != NULL )
delete (GetNext(pos));
RemoveAll();
}
//**************************************************************************************
//Gets a Type Card from its Motor ID
CPA_Meca_CardType* CPA_Meca_CardTypeList::m_fn_pclGetTypeCardFromID(DNM_tdeMechanicsID tdeMotorID)
{
CPA_Meca_CardType *pclTypeCard;
POSITION pos = GetHeadPosition();
BOOL bFound = FALSE;
while ( (pos != NULL) && (!bFound) )
{
pclTypeCard = GetNext(pos);
bFound = ( pclTypeCard->m_fn_tdeGetMotorID() == tdeMotorID );
}
if ( bFound )
return pclTypeCard;
else
return NULL;
}