293 lines
14 KiB
C++
293 lines
14 KiB
C++
//**************************************
|
|
// This is the base class of your DLL interface
|
|
// All methods of CPA_ToolDLLBase are
|
|
// present in that class.
|
|
//**************************************
|
|
#ifndef __IAD_INTERF_HPP__
|
|
#define __IAD_INTERF_HPP__
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
#include "ACP_Base.h"
|
|
#include "ITF.h"
|
|
#include "IncMEC.h"
|
|
#define D_State_Define
|
|
#include "IncGAM.h"
|
|
#undef D_State_Define
|
|
#include "GLI.h"
|
|
|
|
// YB //
|
|
// Specific Includes //
|
|
#include "IADDoc.hpp"
|
|
#include "IADFmMn.hpp"
|
|
// End YB //
|
|
|
|
// if you want only one instance of your DLL
|
|
// activate the next line
|
|
//#define DLL_ONLY_ONE_INSTANCE
|
|
|
|
class CPA_Actor;
|
|
|
|
//----------------------------------------------------------
|
|
// Tool DLL interface class
|
|
//----------------------------------------------------------
|
|
class IAD_Interface : public CPA_ToolDLLBase
|
|
{
|
|
private:
|
|
|
|
|
|
public:
|
|
IAD_Interface(void);
|
|
// ~IAD_Interface(void);
|
|
|
|
/*===========================================================================
|
|
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 level has changed
|
|
// virtual void fn_vLevelHasChanged (void) {};
|
|
virtual void fn_vLevelChanges(void);
|
|
|
|
//virtual BOOL fn_bLoadReachableObject(CPA_BaseObject *p_oObject);
|
|
|
|
/*===========================================================================
|
|
Current Editor
|
|
=========================================================================*/
|
|
|
|
virtual tdePermission fn_eAcceptNewEditor (CPA_EditorBase *pNewEditor);
|
|
|
|
virtual BOOL fn_bCanActivateEditor(CPA_List<CPA_BaseObject> *pParams);
|
|
virtual void fn_vOnActivateEditor(CPA_List<CPA_BaseObject> *pParams, BOOL bBackActivated=FALSE);
|
|
|
|
virtual BOOL fn_bCanCloseEditor(void);
|
|
virtual void fn_vOnCloseEditor(void);
|
|
|
|
public:
|
|
/*===========================================================================
|
|
Messages from Evt_Editor
|
|
=========================================================================*/
|
|
|
|
// for changes
|
|
// virtual void fn_vOnChangeDevice (void) { }
|
|
|
|
// 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);
|
|
|
|
// 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) { }
|
|
|
|
// Models
|
|
// virtual void fn_vOnAddModelToList(CPA_ObjectDLLBase *pOwnerDLL, CString csListName, CString csModelName, tdeTypeModif eType) { }
|
|
|
|
// permission
|
|
// virtual BOOL fn_bAcceptModifDelete(CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
|
|
// virtual BOOL fn_bAcceptModifParent(CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus) { return TRUE; }
|
|
// virtual BOOL fn_bAcceptModifCopy(CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
|
|
// 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);
|
|
// virtual BOOL fn_bAcceptMultiSelect(void) { return TRUE; }
|
|
|
|
// to precise selection
|
|
// virtual tdeTypeAnswer fn_bAcceptSelect(CPA_SuperObject *pEdObj, ACP_tdxIndex xIndex, HIE_tdstPickInfo *pPicking, tdeStatus eStatus);
|
|
|
|
/*===========================================================================
|
|
Dialog List
|
|
=========================================================================*/
|
|
|
|
// virtual BOOL fn_bSetCustomTest (CPA_DialogList *pDialog) { return FALSE; }
|
|
// virtual BOOL fn_bCustomTestFunction (CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj) { return TRUE; }
|
|
|
|
/*===========================================================================
|
|
General Purpose
|
|
=========================================================================*/
|
|
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-05-
|
|
virtual long OnQueryAction (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
|
|
//END ROMTEAM Cristi Petrescu 98-05-
|
|
// virtual long OnQueryInfos (CPA_DLLBase * /*p_oSender*/, WPARAM, LPARAM) { return 0; };
|
|
// virtual long OnQueryOpen (CPA_DLLBase * /*p_oSender*/, WPARAM, LPARAM) { return 0; };
|
|
// virtual long OnQueryClose (CPA_DLLBase * /*p_oSender*/, WPARAM, LPARAM) { return 0; };
|
|
|
|
/*===========================================================================
|
|
Coherence
|
|
=========================================================================*/
|
|
|
|
// virtual BOOL fn_bOnInvalidateLink (CPA_ObjectBase *pOwner, CPA_ObjectBase *pReferencedObject, BOOL bDestroyed) { return FALSE; }
|
|
// virtual void fn_vOnRestoreLink (CPA_ObjectBase *pOwner, CPA_ObjectBase *pReferencedObject) { }
|
|
|
|
/*===========================================================================
|
|
Messages
|
|
=========================================================================*/
|
|
// focus
|
|
virtual void fn_vHasLostFocus (void);
|
|
virtual BOOL fn_bHasGainedFocus (void);
|
|
// engine - editor
|
|
virtual void fn_vBeforeEngine (void);
|
|
virtual void fn_vBeforeEditor (void);
|
|
// engine
|
|
// virtual BOOL fn_bAcceptToRunEngine(void) { return TRUE; };
|
|
// virtual BOOL fn_bAcceptToRunTimerEngine (void) { return TRUE; };
|
|
// end appli
|
|
// virtual void fn_vJustBeforeClosing (void) { };
|
|
// virtual BOOL fn_bAcceptToExit (void) { return TRUE; };
|
|
// keys
|
|
// virtual BOOL _OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags) { return FALSE; };
|
|
// virtual BOOL _OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags) { return FALSE; };
|
|
// mouse
|
|
// virtual BOOL _OnMouseMove (UINT nFlags, tdstMousePos *p_stPos, MTH3D_tdstVector *p_stVect) { return FALSE; };
|
|
// virtual BOOL _OnLButtonDblClk (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
// virtual BOOL _OnRButtonDblClk (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
// virtual BOOL _OnLButtonDown (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
// virtual BOOL _OnRButtonDown (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
// virtual BOOL _OnLButtonUp (UINT nFlags, tdstMousePos *p_stPos) { return FALSE; };
|
|
// virtual BOOL _OnRButtonUp (UINT nFlags, tdstMousePos *p_stPos) { return FALSE; };
|
|
// command
|
|
// virtual BOOL _OnCommand (UINT IDCmdMsg) { return FALSE; };
|
|
// virtual BOOL _OnUpdateCommandUI (UINT uiID, CCmdUI *pCmdUI) { return FALSE; };
|
|
// dragdrop
|
|
// virtual BOOL _OnDragDropEnd (WPARAM wParam, LPARAM lParam) { return FALSE; };
|
|
// virtual BOOL _OnDragDropMove (WPARAM wParam, LPARAM lParam) { return FALSE; };
|
|
// virtual BOOL _OnDragDropLooseFocus (WPARAM wParam, LPARAM lParam) { return FALSE; };
|
|
// virtual BOOL _OnDragDropGainFocus (WPARAM wParam, LPARAM lParam) { return FALSE; };
|
|
// add objects to draw
|
|
// virtual void fn_vAddObjectsToDraw (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2) { };
|
|
// virtual void fn_vAddObjectsToDraw2 (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2) { };
|
|
|
|
/*===========================================================================
|
|
Reinit
|
|
=========================================================================*/
|
|
|
|
// virtual void fn_vOnChangeRoot (void) { };
|
|
// virtual void fn_vOnChangeWorld (void) { };
|
|
|
|
/*===========================================================================
|
|
for Dialog List
|
|
=========================================================================*/
|
|
|
|
// virtual CPA_BaseObject *GetDialogSelection(CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDrawMode);
|
|
// virtual void GetListsForDialog (CPA_DialogList *pDialog);
|
|
|
|
// virtual BOOL fn_bOnSelChangeHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_SuperObject *pSelectedObject) { return FALSE; };
|
|
// virtual BOOL fn_bOnDblClkHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_SuperObject *pSelectedObject) { return FALSE; };
|
|
// virtual BOOL fn_bOnSelChangeListObjects(CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject, BOOL bUnselect);
|
|
// virtual BOOL fn_bOnDblClkListObjects (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject) { return FALSE; };
|
|
// virtual BOOL fn_bCanDragItemInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_SuperObject *pObjectToDrag) { return FALSE; };
|
|
// virtual BOOL fn_bCanDropItemInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_SuperObject *pObjectToDrop, CPA_SuperObject *pTarget) { return FALSE; };
|
|
// virtual BOOL fn_bOnDragDropInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_SuperObject *pObject, CPA_SuperObject *pTarget) { return FALSE; };
|
|
// virtual BOOL fn_bOnSelChangeComboList(CPA_DialogList *pDialog, CString csTypeName);
|
|
// virtual BOOL fn_bOnButtonTest(CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw);
|
|
|
|
// virtual void fn_vInitDefaultParameters(CPA_DialogList *pDialog);
|
|
|
|
// virtual void fn_vSetANewTest(CPA_DialogList *pDialog, CString csCurrentList);
|
|
// virtual BOOL fn_bTestFunction(CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj);
|
|
|
|
/*===========================================================================
|
|
SubMenus and PopupMenu
|
|
=========================================================================*/
|
|
|
|
virtual BOOL fn_bDefineSubMenu(EDT_SubMenu *_p_oEDTSubMenu);
|
|
virtual void _OnSubMenuCommand(EDT_SubMenu *_p_oEDTSubMenu,UINT uiMsgID);
|
|
|
|
virtual BOOL fn_bDefinePopupMenu(EDT_PopUpMenu *pPopup, CPA_List<CPA_SuperObject> *pSelection, BOOL bAsCurrentEditor);
|
|
virtual void _OnPopUpMenuCommand(UINT m_IDCmdMsg);
|
|
|
|
// Hierarchy
|
|
// virtual CPA_SuperObject *GetNewEditorInstance(HIE_tdxHandleToSuperObject pEngineInstance);
|
|
// virtual void fn_vUpdateEditorInstance(CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance);
|
|
// virtual BOOL fn_bCanHandleThisType(long lEngineType);
|
|
|
|
// Models & Instances
|
|
// virtual void fn_vInitListByType(CPA_World *pWorld);
|
|
// virtual void fn_vInitListsOfModels(void);
|
|
// virtual void fn_vSaveListModels(CString csListName, CPA_List<EDT_Model> *pListModels);
|
|
// virtual CString fn_csLoadListModels(void);
|
|
// virtual EDT_Model *GetNewModel(CString csListName);
|
|
// virtual BOOL fn_bCanLoadNewModel(CString csListName);
|
|
// virtual BOOL fn_bCanDeleteModel(CString csListName) { return FALSE; };
|
|
// virtual BOOL fn_bCanSaveListModels(CString csListName);
|
|
// virtual BOOL fn_bCanLoadListModels(void);
|
|
// virtual void fn_vOnLoadNewModel(CString csListName, EDT_Model *pNewModel);
|
|
|
|
// virtual CPA_SuperObject *GetNewInstance(CString csTypeName, CString csModelName, CPA_SuperObject *pParent);
|
|
// virtual tdeTypeSO GetTypeInstance(CString csTypeName, CString csModelName);
|
|
// virtual CPA_SuperObject * GetParentForInsertion (CString csTypeName, CString csModelName, tdstPosition *p_stPosition) { return NULL; }
|
|
// virtual BOOL fn_bChooseInsertPosition(CPA_SuperObject *pNewInstance, CPA_SuperObject *pParent, tdstPosition *p_stPosition);
|
|
|
|
// objects
|
|
// virtual CPA_Object * GetNewObject (CString csObjectFile, CString csObjectName, FILE *p_fFile, CPA_MainWorld *p_oMainWorld) { return NULL; }
|
|
// virtual CPA_Object *Duplicate(CPA_Object *pObject, CPA_SuperObject *pNewSuperObject);
|
|
|
|
// virtual CPA_SuperObject *GetCopyOfProtectedChild (CPA_SuperObject *pInitialChild, CPA_SuperObject *pNewOwner);
|
|
|
|
// permissions for EvtEditor
|
|
// virtual BOOL fn_bAcceptAsParent(CPA_Object *pChild, CPA_Object *pParent);
|
|
// virtual BOOL fn_bAcceptAsChild(CPA_Object *pParent, CPA_Object *pChild);
|
|
|
|
// when insertion is canceled
|
|
// virtual void fn_vOnCancelInsertion(CPA_SuperObject *pInstance);
|
|
|
|
////////
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
//--------------------------------------------------------------------------
|
|
//(YB) Editor's specific members
|
|
|
|
//Attributes
|
|
public:
|
|
//The (one and only) document
|
|
IAD_MyDocument m_clDocument;
|
|
|
|
//The main frame
|
|
IAD_MainFrame *m_pclIADMainFrame;
|
|
|
|
protected:
|
|
|
|
private:
|
|
CString m_csEditorVersion;
|
|
|
|
//Fucntions
|
|
public:
|
|
IAD_MyDocument *m_fn_pclGetDocument();
|
|
|
|
protected:
|
|
|
|
private:
|
|
void m_fn_vShowEditor();
|
|
void m_fn_vHideEditor();
|
|
|
|
//(YB) End of Editor's specific members
|
|
//--------------------------------------------------------------------------
|
|
};
|
|
|
|
// YB //
|
|
extern IAD_Interface *g_pclInterface;
|
|
// End YB //
|
|
|
|
extern tdstDLLIdentity g_stIADDLLIdentity;
|
|
|
|
#endif // __IAD_INTERF_HPP_
|