reman3/Rayman_X/cpa/tempgrp/OAC/Inc/DatCtrl/CPA_DatO.hpp

172 lines
4.8 KiB
C++

// Header for the definition of an ObjectList characteristic
///////////////////////////////////////////////////////////
#ifndef _CPACOTYP_HPP_
#define _CPACOTYP_HPP_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include <afxtempl.h>
//External Modules
#include "CTL.h"
#include "ITF.h"
//End of External Modules
class CPA_tdoNameList;
class EdtList;
class CPA_ZonesActivatingList;
//#########################################################################################
class CPA_Editor_ObjectList : public CPA_BaseObject, public CPA_List<CPA_BaseObject *>
{
public:
//args for the CPA_BaseObject constructor
CPA_Editor_ObjectList(CPA_EditorBase *p_oDLL,
CString csObjectType,
CPA_BaseObject *p_oOwner
)
: CPA_BaseObject(p_oDLL,
csObjectType,
p_oOwner
)
{};
protected:
private:
//Virtual functions
virtual long GetDataType(void);
virtual void *GetData(void);
};
//#########################################################################################
class CPA_Editor_ObjectListData : public CTL_Editor_Data
{
public:
//Constructor
CPA_Editor_ObjectListData( CString,
CTL_Editor_DataList *_pclParentList,
CTL_Editor_Data *pclCurrentBaseData = NULL);
// Destructor
~CPA_Editor_ObjectListData();
//Attributes
public:
//for the instance: the current list of objects
//CPA_Editor_ObjectList *m_p_oObjectList;
//for the model: the current list of names, also used to fill the instance's objnamecombo
CPA_tdoNameList *m_p_oNameList, *m_p_oOldNameList, *m_p_oNameListKeptForUndo;
EdtList *m_p_oObjectList, *m_p_oOldObjectList, *m_p_oObjectListKeptForUndo;
CPA_ZonesActivatingList *m_p_oZAList, *m_p_oOldZAList, *m_p_oZAListKeptForUndo;
protected:
private:
//Member functions
public:
//Function called to get a string representing the value of the data
CStringList *m_fn_pcslFormatDataValueString();
//Function called to set the value of the data acoording to a string representing it
void m_fn_vSetValueWithString(CStringList *);
//Function called to Init the data
void m_fn_vInitData();
//Function called to read associated motor's data
void m_fn_vGetMotorData();
//Function called to update associated motor's data
void m_fn_vUpdateMotorData(CTL_tdeUpdateReason eReason = CTL_UPDATE_REASON__NO_REASON_GIVEN,
long _lUserDefinedReason = 0);
//Function called to update data with another one
void m_fn_vUpdateData(CTL_Editor_Data *pclSourceData,
CTL_tdeUpdateReason eReason = CTL_UPDATE_REASON__NO_REASON_GIVEN,
long _lUserDefinedReason = 0);
//Function called to look if data has been modified (by motor for example)
void m_fn_vLookIfDataHasBeenModified();
//sets the value and maintains coherence at the same time
void m_vSetZAList(CPA_ZonesActivatingList *_p_oZAList);
void m_vSetObjectList(EdtList *_p_oObjectList);
// update engine value
void m_vUpdateEngineZAList();
void m_vUpdateEngineObjectList();
//Undo
//Function called to save the current Value (for Undo)
void m_fn_vKeepCurrentValue();
//Function called to validate Undo for the current change
void m_fn_vRegisterUndoAction();
//
void m_fn_vDataHasBeenReallyModified();
protected:
private:
};
//##################################################################"
//this modification handler is used only when the user changes the current
//name list for a model or the current object list for an instance.
class CPA_ObjectListDataModif : public CPA_Modif
{
public:
//Constructor
CPA_ObjectListDataModif(
CPA_Editor_ObjectListData *p_oData,
void *pOldList,
void *pNewList,
void *_pOldAlternateList,
void *_pNewAlternateList
);
//Destructor
~CPA_ObjectListDataModif();
BOOL Do();
BOOL Undo();
//Members
private:
CPA_Editor_ObjectListData *m_p_oData;
void *m_pListBeforeDo;
void *m_pListAfterDo;
void *m_pAlternateListBeforeDo, *m_pAlternateListAfterDo;
};
//ROMTEAM correction (Nicu 06-02-98)
class OAC_FloatData : public CTL_Editor_DecimalData
{
public:
OAC_FloatData(char size, CString name, CTL_Editor_DataList *list, CTL_Editor_Data *data=NULL) :
CTL_Editor_DecimalData(size, name, list, data){};
//Function called to read associated motor's data
void m_fn_vGetMotorData();
//Function called to update associated motor's data
void m_fn_vUpdateMotorData(CTL_tdeUpdateReason eReason = CTL_UPDATE_REASON__NO_REASON_GIVEN,
long _lUserDefinedReason = 0);
//Function called to get a string representing the value of the data
CStringList *m_fn_pcslFormatDataValueString();
//Function called to set the value of the data acoording to a string representing it
void m_fn_vSetValueWithString(CStringList *pcslValueStringList);
};
//ENDROMTEAM correction (Nicu)
#endif //_CPACOTYP_HPP_