reman3/Rayman_X/cpa/public/ITF/cpadllb.hpp

213 lines
8.4 KiB
C++

/*=========================================================================*/
/* CPADLLb.hpp : base of all DLL*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 10/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studio 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* VINCENT GRECO OR CHRISTOPHE BEAUDET.*/
/*=========================================================================*/
#ifndef __CPADLLB_HPP__
#define __CPADLLB_HPP__
/****************************************/
#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
/****************************************/
#ifdef ACTIVE_EDITOR
#include "CPAEditB.hpp"
/*#include "EDTParam.hpp"*/
class EDT_SaveParents;
class EDT_SavePos;
class EDT_SaveGlobalPos;
/*##########################################################################*/
/* typedef for messages*/
typedef enum
{
C_AsCurrentEditor,
C_AsConcernedDLL,
C_AsChildOwner,
C_AsToolDLL
}
tdeStatus;
typedef enum
{
C_Accept,
C_Refuse,
C_WantNext
}
tdeTypeAnswer;
/*##########################################################################*/
/* Definition of all DLL types*/
typedef enum {OBJECT_DLL = 1, ALL_OBJECTS_DLL, TOOL_DLL, ALL_TOOLS_DLL, HIERARCHY_DLL} tdeDLLType;
class CPA_ObjectDLLBase;
/*##########################################################################*/
/* DLL Identity*/
class CPA_DLLBase;
typedef struct
{
tdeDLLType eType; /* type of the DLL*/
CString csName; /* name of the DLL (unique)*/
HMODULE hModule;
CList<CPA_DLLBase*,CPA_DLLBase*> *p_oListOfInstances;
} tdstDLLIdentity;
/*##########################################################################*/
/* base Definition of a DLL*/
typedef struct tdstDLLBaseDef_
{
BOOL bCanOutputIn3DView;
BOOL bCanBeRefreshedByEngine;
unsigned short uwReference; /* private value that references this instance*/
} tdstDLLBaseDef;
/*##########################################################################*/
/* DLL Base Class*/
/*##########################################################################*/
class CPA_EXPORT CPA_DLLBase : public CPA_EditorBase
{
protected:
/* parameters*/
tdstDLLBaseDef m_stBaseDLLDefinition;
tdstDLLIdentity *m_p_stDLLIdentity;
public:
/*===========================================================================
Contructor
=========================================================================*/
CPA_DLLBase();
virtual ~CPA_DLLBase();
/*===========================================================================
Get functions
=========================================================================*/
tdstDLLBaseDef * GetBaseDefinition (void) { return &m_stBaseDLLDefinition; }
tdstDLLIdentity * GetDLLIdentity (void) { return m_p_stDLLIdentity; }
CString GetName (void) { return m_p_stDLLIdentity->csName; }
unsigned short GetReference (void) { return m_stBaseDLLDefinition.uwReference; }
/*===========================================================================
Set functions
=========================================================================*/
void SetReference (unsigned short uwRef) { m_stBaseDLLDefinition.uwReference = uwRef; }
/*===========================================================================
Virtual Functions
=========================================================================*/
public:
/* To pre translate all messages*/
virtual BOOL fn_bPreTranslateMessage(MSG * /*p_stMsg*/) { return FALSE; };
/* Called just after editor has been inserted in list of all editors*/
virtual void fn_vJustAfterRegistered(void) {};
/* Called just before windows main loop processing*/
virtual void fn_vConstruct(void) {};
/* Called to refresh datas of DLL if "fn_vCanBeRefresh" returns TRUE*/
virtual void fn_vRefreshDatas(void) {};
/* Called when engine level has changed, before editor level changes*/
virtual void fn_vLevelChanges (void) {};
/* Called when editor level has changed*/
virtual void fn_vLevelHasChanged (void) {};
public:
/*===========================================================================
Messages from Interface
=========================================================================*/
/* Editor Modifs*/
virtual void fn_vOnModifDelete (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus) { }
virtual void fn_vOnModifParent (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus) { }
virtual void fn_vOnModifCopy (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus) { }
virtual void fn_vOnModifName (CPA_SuperObject *pEdObj, CString csInitalName, CString csFinalName, tdeTypeModif eType, tdeStatus eStatus) { }
virtual void fn_vOnSelect (CPA_SuperObject *pEdObj, tdeTypeModif eType, tdeStatus eStatus) { }
/*ANNECY Shaitan SPOFlags 18/02/98*/
virtual void fn_vOnModifFlag (CPA_SuperObject *pEdObj, unsigned long ulOldFlag, unsigned long ulNewFlag) { }
/*ENDANNECY Shaitan SPOFlags*/
/*ANNECY Shaitan Transparency (26/03/98) {*/
virtual void fn_vOnModifTransparency (CPA_SuperObject *pEdObj, float fNewLevel) { }
/*ENDANNECY Shaitan Transparency }*/
virtual void fn_vOnModifInsert (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent,
tdstPosition *p_stPosition, tdeTypeModif eType, tdeStatus eStatus) { }
/* Moves*/
virtual void fn_vOnModifMove (CPA_List<EDT_SavePos> *pListObjects, CPA_List<EDT_SaveGlobalPos> *pListConcerned, tdeTypeModif eType, tdeStatus eStatus) { }
virtual void fn_vOnBeginMove (CPA_List<CPA_SuperObject> *pListObjects, CPA_List<CPA_SuperObject> *pListConcerned, tdeStatus eStatus) { }
virtual void fn_vOnMoving (CPA_List<CPA_SuperObject> *pListObjects, CPA_List<CPA_SuperObject> *pListConcerned, tdeStatus eStatus) { }
/* permission*/
/* Begin Silviu Simen 18 August 1998 Cut/Paste Mechanism*/
virtual BOOL fn_bAcceptModifCut (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus) { return TRUE; };
/* End Silviu Simen 18 August 1998 Cut/Paste Mechanism*/
virtual BOOL fn_bAcceptModifDelete (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptModifParent (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptModifCopy (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptModifTranslate (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptModifRotate (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptModifInsert (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptModifScale (CPA_SuperObject *pEdObj, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptModifName (CPA_SuperObject *pEdObj, tdeStatus eStatus) { return TRUE; }
virtual BOOL fn_bAcceptMultiSelect (void) { return TRUE; }
/*ANNECY Shaitan SPOFlags 18/02/98*/
virtual BOOL fn_bAcceptModifFlag (CPA_SuperObject *pEdObj, unsigned long ulFlag) { return TRUE; }
/*ENDANNECY Shaitan SPOFlags*/
/* to precise selection*/
virtual tdeTypeAnswer fn_bAcceptSelect (CPA_SuperObject *pEdObj, ACP_tdxIndex xIndex, HIE_tdstPickInfo *pPicking, tdeStatus eStatus) { return C_Accept; }
/* orient*/
virtual BOOL fn_bAcceptOrientInstance (CPA_SuperObject *pEdObj) { return TRUE; }
virtual BOOL fn_bOnClickOrientPosition (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition) { return FALSE; }
virtual BOOL fn_bOnOrientingObject (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition) { return FALSE; }
virtual BOOL fn_bOnEndOrientObject (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition) { return FALSE; }
/*===========================================================================
Dialog List
=========================================================================*/
virtual BOOL fn_bSetCustomTest (CPA_DialogList *pDialog) { return FALSE; }
virtual BOOL fn_bCustomTestFunction (CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj) { return TRUE; }
/* Begin Silviu Simen Select by sector*/
virtual void fn_vSelectBySectorAndType(void) { return; };
/* End Silviu Simen Select by sector*/
};
#endif /* ACTIVE_EDITOR*/
#endif /* __CPADLLB_HPP__*/