183 lines
5.5 KiB
C++
183 lines
5.5 KiB
C++
#ifdef ACTIVE_EDITOR
|
|
|
|
#ifndef __CPASOBJ_HPP__
|
|
#define __CPASOBJ_HPP__
|
|
|
|
#include "stdafx.h"
|
|
#include <afxtempl.h>
|
|
|
|
#pragma warning(disable:4786)
|
|
|
|
#define HieFriend
|
|
#include "incSPO.h"
|
|
#undef HieFriend
|
|
|
|
|
|
/*#include "itf/EDTParam.hpp"*/
|
|
#include "itf/CPASObjB.hpp"
|
|
/*#include "itf/EDTSpec.hpp"*/
|
|
/*#include "itf/CPATemp.hpp"*/
|
|
|
|
|
|
#include "CPAMdfO.hpp"
|
|
|
|
#include "SCR.h"
|
|
|
|
/*class Evt_Editor;*/
|
|
class CPA_ObjectDLLBase;
|
|
class CPA_MainWorld;
|
|
|
|
/****************************************/
|
|
#ifndef CPA_EXPORT
|
|
#if defined(CPA_WANTS_IMPORT)
|
|
#define CPA_EXPORT __declspec(dllimport)
|
|
#elif defined(CPA_WANTS_EXPORT)
|
|
#define CPA_EXPORT __declspec(dllexport)
|
|
#else
|
|
#define CPA_EXPORT
|
|
#endif
|
|
#endif
|
|
/****************************************/
|
|
|
|
|
|
/*=====================================================================*/
|
|
/* type name for super objects (constant)*/
|
|
#define C_szSuperObjectTypeName "SuperObject"
|
|
/*=====================================================================*/
|
|
|
|
typedef enum tdeTypeNotify_
|
|
{
|
|
E_tn_BuildModifSection,
|
|
E_tn_DeleteModifSection,
|
|
E_tn_CancelModifSection,
|
|
E_tn_BuildSection,
|
|
E_tn_DeleteSection,
|
|
E_tn_CancelSection,
|
|
}
|
|
tdeTypeNotify;
|
|
|
|
|
|
/*===========================================================================
|
|
* Description: class EDT_TemporarySO
|
|
* Creation date:
|
|
* Author: Shaitan
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*=========================================================================*/
|
|
class CPA_EXPORT CPA_SuperObject : public CPA_ModifiableObject,
|
|
public CPA_SuperObjectBase
|
|
{
|
|
|
|
private:
|
|
/* object*/
|
|
CPA_BaseObject *m_p_oObject;
|
|
CPA_ObjectDLLBase *m_p_oObjectDLLInterface;
|
|
/* Edition*/
|
|
BOOL m_bEditProtected;
|
|
tdeTypeSO m_eTypeSO;
|
|
CPA_SuperObject *m_pSuperObjectOwner;
|
|
CString m_csModelName;
|
|
BOOL m_bAxisDrawn;
|
|
BOOL m_bCenterVisible;
|
|
|
|
public:
|
|
|
|
/*================ Constructors ===========================*/
|
|
|
|
CPA_SuperObject (CPA_EditorBase *pEditor, HIE_tdxHandleToSuperObject hEngineSO,
|
|
tdeSaveStatus eStatus, tdeTypeSO eTypeSO = C_NoType);
|
|
|
|
CPA_SuperObject (CPA_EditorBase *pEditor, tdeSaveStatus eStatus, tdeTypeSO eTypeSO);
|
|
|
|
CPA_SuperObject (CPA_SuperObject &r_oSource);
|
|
|
|
~CPA_SuperObject(void);
|
|
|
|
|
|
/*================ Engine Struct ===========================*/
|
|
|
|
void * GetData (void) { return GetStruct(); }
|
|
long GetDataType (void) { return HIE_C_ulSuperObject; }
|
|
|
|
void SetSuperObjectStruct (HIE_tdxHandleToSuperObject hSupObj);
|
|
|
|
/*================ Members ===========================*/
|
|
|
|
CPA_SuperObject * GetSuperObjectOwner (void) { return m_pSuperObjectOwner; }
|
|
tdeTypeSO GetTypeSO (void) { return m_eTypeSO; }
|
|
CString GetModelName (void) { return m_csModelName; }
|
|
BOOL fn_bIsAxisDrawn (void) { return m_bAxisDrawn; }
|
|
BOOL fn_bIsCenterVisible (void) { return m_bCenterVisible; }
|
|
/*ANNECY CO SPOFLAG 05/02/98*/
|
|
virtual BOOL fn_bIsEditProtected (void) { return m_bEditProtected; }
|
|
/*ENDANNECY CO SPOFLAG*/
|
|
|
|
void SetSuperObjectOwner (CPA_SuperObject *pOwner) { m_pSuperObjectOwner = pOwner; }
|
|
void SetModelName (CString csName) { m_csModelName = csName; }
|
|
void SetEditProtected (BOOL bProtected) { m_bEditProtected = bProtected; }
|
|
void SetDrawnAxis (BOOL bFlag) { m_bAxisDrawn = bFlag; }
|
|
void SetCenterVisible (BOOL bFlag) { m_bCenterVisible = bFlag; }
|
|
BOOL SetTypeSO (tdeTypeSO eType);
|
|
|
|
/*================ Object & Type ===========================*/
|
|
|
|
CPA_ObjectDLLBase * GetObjectDLL (void) { return m_p_oObjectDLLInterface; }
|
|
CPA_BaseObject * GetObject (void) { return m_p_oObject; }
|
|
|
|
CString GetRealTypeName (void);
|
|
long GetObjectType (void);
|
|
|
|
void SetObject (CPA_BaseObject *p_oNewObject);
|
|
|
|
/*================ Hierarchy ===========================*/
|
|
|
|
CPA_SuperObject * GetSuperObjectFirstChild (void);
|
|
CPA_SuperObject * GetSuperObjectLastChild (void);
|
|
CPA_SuperObject * GetSuperObjectNextChild (CPA_SuperObject *pChild);
|
|
CPA_SuperObject * GetSuperObjectPrevChild (CPA_SuperObject *pChild);
|
|
CPA_SuperObject * GetSuperObjectFather (void);
|
|
|
|
BOOL fn_bIsUnderObject (CPA_SuperObject *pEdObj);
|
|
|
|
void AddANewChild (CPA_SuperObject *pChild, BOOL bUpdateEngine = TRUE, CPA_SuperObject *pNextBrother = NULL);
|
|
void RemoveAChild (CPA_SuperObject *pChild, BOOL bUpdateEngine = TRUE);
|
|
void RemoveAllChilds (BOOL bUpdateEngine = TRUE);
|
|
void IsolateChild (BOOL bUpdateEngine = TRUE);
|
|
|
|
void fn_vUpdateValidity (BOOL bValid);
|
|
|
|
/*================ Inits ===========================*/
|
|
|
|
static void fn_vInitLoadEditor();
|
|
|
|
/*================ Save object ===========================*/
|
|
|
|
virtual BOOL fn_bCanBeNotified (void) { return FALSE; }
|
|
|
|
virtual tdeMissingCriteria fn_eCheckValidity (const CString csNewName)
|
|
{ return fn_eCheckUnicity(csNewName); }
|
|
|
|
virtual void fn_vNotifySave (void) { };
|
|
virtual void fn_vNotifyUnSave (void) { };
|
|
virtual void fn_vNotifyRestore (void) { };
|
|
virtual void fn_vNotifyRename (void) { };
|
|
|
|
virtual void fn_vUpdateReference (CPA_SaveObject *pReferencedObject) { };
|
|
|
|
virtual void fn_vUpdateSectionName (void) { };
|
|
|
|
virtual CString fn_csComputeReferencedSectionName (const CString csNewName)
|
|
{ return GetReferencedSectionName(); }
|
|
|
|
/*================ Modifiable object ===========================*/
|
|
|
|
virtual void fn_vSetOnState (const CString _ocsModificationType, BOOL _bOnInitialState) { };
|
|
virtual void fn_vValidateState (const CString _ocsModificationType, BOOL bInitialState) { };
|
|
|
|
};
|
|
|
|
|
|
#endif /*__CPASOBJ_HPP__*/
|
|
|
|
#endif /*ACTIVE_EDITOR*/
|