Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,157 @@
/*=========================================================================
*
* CPABaseO.hpp - CPA_BaseObject : definition
*
*
* Version 1.0
* Creation date 20.06.97
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __BASE_OBJECT_HPP__
#define __BASE_OBJECT_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
/****************************************/
class CPA_EditorBase;
class CPA_BaseObjectList;
class CPA_MainWorld;
typedef enum
{
E_ss_Responsible,
E_ss_Modify,
E_ss_NoSave,
E_ss_NoModif,
E_ss_NoStatus
}
tdeSaveStatus;
typedef enum
{
E_mc_None,
E_mc_NoName,
E_mc_TypeUnicity,
E_mc_OwnerUnicity,
E_mc_CustomUnicity,
E_mc_ScriptCharacters,
E_mc_Notification,
E_mc_CustomValidity
}
tdeMissingCriteria;
typedef enum
{
E_bc_BaseObject,
E_bc_SaveObject,
E_bc_ModifiableObject
}
tdeBaseClass;
/*#################################################################################*/
/* CPA_BaseObject*/
/*#################################################################################*/
class CPA_EXPORT CPA_BaseObject
{
private:
/* editor*/
CPA_EditorBase * m_p_oEditor;
/* identifier*/
CPA_BaseObject * m_p_oOwner;
CString m_csName;
char * m_p_szName;
/* lists*/
CPA_BaseObjectList * m_p_oBaseObjectList;
CPA_BaseObjectList * m_p_oInvalidObjectList;
/* validity*/
BOOL m_bIsAvailable;
BOOL m_bIsValid;
public:
CPA_BaseObject (CPA_EditorBase *pEditor, const CString csType, CPA_BaseObject *pOwner = NULL, BOOL bAvailable = TRUE);
CPA_BaseObject (CPA_BaseObject &r_oSource);
~CPA_BaseObject (void);
private:
/* add or remove in corresponding BaseObjectList*/
BOOL fn_bRegister (void);
BOOL fn_bUnRegister (void);
protected:
void fn_vDoRename (const CString csNewName);
public:
/* access*/
CString GetName (void) { return m_csName; }
CString GetType (void); /* { return m_p_oBaseObjectList->GetType(); }*/
CPA_BaseObject * GetOwner (void) { return m_p_oOwner; }
CPA_EditorBase * GetEditor (void) { return m_p_oEditor; }
CPA_MainWorld * GetMainWorld (void);
CPA_BaseObjectList * GetBaseObjectList (void) { return m_p_oBaseObjectList; }
CPA_BaseObjectList * GetInvalidObjectList (void) { return m_p_oBaseObjectList; }
BOOL fn_bIsAvailable (void) { return m_bIsAvailable; }
void SetAvailable (BOOL bAvailable) { m_bIsAvailable = bAvailable; }
virtual tdeBaseClass fn_eGetBaseClass (void) { return E_bc_BaseObject; }
BOOL fn_bCanBeSaved (void) { return ( (fn_eGetBaseClass() == E_bc_SaveObject) || (fn_eGetBaseClass() == E_bc_ModifiableObject) ); }
/* name & type*/
char * fn_p_szGetName (void) { return m_p_szName; }
char * fn_p_szGetType (void); /* { return m_p_oBaseObjectList->fn_p_szGetType(); }*/
/* set parameters*/
BOOL fn_bSetOwner (CPA_BaseObject *pNewOwner);
virtual void fn_vUpdateData (void *pNewData);
/* validity*/
BOOL fn_bIsValid (void) { return m_bIsValid; }
BOOL fn_bValidate (void);
BOOL fn_bUnValidate (void);
/* unicity*/
CString GetDefaultUniqueName (const CString csDefaultBaseName = "");
void SetDefaultUniqueName (const CString csDefaultBaseName = "");
BOOL fn_bIsOfType (const CString csTypeName);
tdeMissingCriteria fn_eCheckDefaultUnicity (const CString csNewName);
tdeMissingCriteria fn_eCheckUnicityWithOwner (const CString csNewName);
/* name*/
virtual tdeMissingCriteria fn_eRename (const CString csNewName);
/* return Data*/
virtual long GetDataType (void) = 0;
virtual void * GetData (void) = 0;
/* to choose unicity criteria*/
virtual tdeMissingCriteria fn_eCheckUnicity (const CString csNewName) { return fn_eCheckDefaultUnicity(csNewName); }
/* for dialogs*/
virtual CString GetNameToDraw (void) { return GetName(); }
virtual CString GetTypeToDraw (void) { return GetType(); }
virtual CString GetOwnerToDraw (void) { return ( (GetOwner()) ? GetOwner()->GetNameToDraw() : ""); }
};
#endif /* __BASE_OBJECT_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,431 @@
/*=========================================================================
*
* CPAEditB.hpp - CPA_EditorBase : definition
*
*
* Version 1.0
* Creation date 20.06.97
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDITOR_BASE_HPP__
#define __EDITOR_BASE_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
/****************************************/
#include "CPASObj.hpp"
#include "CPAdList.hpp"
#include "FRMGest.hpp"
#include "CPAPopM.hpp"
#define C_szReferenceIniFile "CPAPath.ini"
class CPA_MainWorld;
class CPA_Interface;
class CPA_EditorBase;
class CPA_ObjectDLLBase;
class CPA_ModifiableObject;
/*=== OnModif ===*/
typedef enum
{
C_EDTDo,
C_EDTRedo,
C_EDTUndo,
C_EDTCancel
}
tdeTypeModif;
/*=== For BaseObjectList ===*/
typedef enum
{
E_rc_ValidObjects,
E_rc_InvalidObjects,
E_rc_AllObjects
}
tdeResearchCriteria;
/*##########################################################################*/
/* Definition of a Context*/
typedef struct tdstEDTContext_
{
CPA_EditorBase *pPreviousEditor;
BOOL bCurrentEditor;
FRMBase * m_aWinArray [FRM_C_MaxCol+2] [FRM_C_MaxRow+2];
}
tdstEDTContext;
/*##########################################################################*/
/* Definition of a Editor Info*/
typedef struct tdstEDTInfo_
{
CString csName;
CString csAuthor;
CString csVersion;
CString csFrenchHelpFile;
CString csEnglishHelpFile;
}
tdstEDTInfo;
/*=== update list ===*/
typedef enum
{
C_EDTDelete,
C_EDTInsert,
C_EDTReinsert
}
tdeUpdate;
/*=== permissions ===*/
typedef enum
{
C_Allow,
C_Deny,
C_CloseBefore
}
tdePermission;
/* Begin Mircea Dunka 31 August 1998 Editor Buttons on DialogBar*/
#define C_DlgBarMenuEditor 1
typedef enum {
C_DlgBarCategoryEditor
} tde_DlgBarCategory;
typedef struct {
HICON hIcon;
char szToolTip[30];
UINT uID;
} tds_DlgBarBtn;
/* End Mircea Dunka 31 August 1998 Editor Buttons on DialogBar*/
/*##########################################################################*/
/**/
class CPA_ModifNamesList : public CList<CString,CString>
{
private:
CString m_csObjectTypeName;
public:
CPA_ModifNamesList();
~CPA_ModifNamesList();
void fn_vSetObjectTypeName (const CString _csObjectTypeName) { m_csObjectTypeName = _csObjectTypeName; }
void fn_vRegisterModificationsType (CString a_csTypeName[], long lTypeCount);
CString fn_csGetObjectTypeName (void) { return m_csObjectTypeName; }
};
/*===========================================================================
* Description: Class CPA_EditorBase
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_EditorBase
{
private:
CPA_MainWorld * m_p_oMainWorld;
BOOL m_bIsCurrentEditor;
tdstEDTInfo m_stEditorInfo;
tdstEDTContext m_stContext;
protected:
/* list of reachable objects*/
CList<CPA_BaseObjectList*,CPA_BaseObjectList*> m_oListOfBaseObjectList;
CList<CPA_BaseObjectList*,CPA_BaseObjectList*> m_oListOfInvalidObjectList;
CPA_List<CPA_ModifNamesList> m_oListOfModifications;
public:
CPA_EditorBase (void);
virtual ~CPA_EditorBase (void);
/*===========================================================================
Information
=========================================================================*/
tdstEDTInfo * GetEditorInfo (void) { return &m_stEditorInfo; }
void SetEditorInfo (CString csName, CString csAuthor, CString csVersion, CString csFrenchHelpFile, CString csEnglishHelpFile );
/*===========================================================================
MainWorld
=========================================================================*/
CPA_MainWorld * GetMainWorld (void) { return m_p_oMainWorld; }
void SetMainWorld (CPA_MainWorld *p_oMainWorld);
/*===========================================================================
Interface
=========================================================================*/
CPA_Interface * GetInterface (void);
/*===========================================================================
Context
=========================================================================*/
void fn_vSaveContext (void);
void fn_vRestoreContext (void);
/*===========================================================================
Current Editor
=========================================================================*/
CString GetCurrentEditorName (void) { return m_stEditorInfo . csName; }
BOOL fn_bIsCurrentEditor (void) { return m_bIsCurrentEditor; }
void SetCurrent (BOOL bIsCurrent) { m_bIsCurrentEditor = bIsCurrent; }
/*===========================================================================
Messages
=========================================================================*/
/* focus*/
virtual void fn_vHasLostFocus (void) { };
virtual BOOL fn_bHasGainedFocus (void) { return TRUE; };
/* 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; };
/* save*/
virtual BOOL fn_bAcceptToSave (void) { return TRUE; }
virtual void fn_vBeforeSaveAll (void) { };
virtual void fn_vAfterSaveAll (void) { };
/* 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_vBeforeDrawingWorld(GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2, DEV_ViewPort* p3) { };
virtual void fn_vAddObjectsToDraw (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2, DEV_ViewPort* p3) { };
virtual void fn_vAddObjectsToDraw2 (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2) { };
/*===========================================================================
Reinit
=========================================================================*/
virtual void fn_vOnChangeDevice (void) { };
virtual void fn_vOnChangeWorld (void) { };
virtual void fn_vOnChangeRoot (void) { };
/*===========================================================================
Models
=========================================================================*/
virtual BOOL fn_bCanDeleteThisModel (CString csListName, CString csModelType, CString csModelName) { return TRUE; }
virtual void fn_vOnAddModelToList (CPA_ObjectDLLBase *pOwnerDLL, CString csListName, CString csModelName, tdeTypeModif eType) { }
/*===========================================================================
for Dialog List
=========================================================================*/
/* init & select*/
virtual CPA_BaseObject * GetDialogSelection (CPA_DialogList *pDialog, CString csListName, tdeListDrawMode eDrawMode) { return NULL; };
virtual CPA_BaseObject * GetDialogParentSelection (CPA_DialogList *pDialog, CString csListName) { return NULL; };
virtual void GetListsForDialog (CPA_DialogList *pDialog) { };
virtual void fn_vInitDefaultParameters (CPA_DialogList *pDialog);
/* main controls*/
virtual BOOL fn_bOnSelChangeComboList (CPA_DialogList *pDialog, CString csListName) { return FALSE; };
virtual BOOL fn_bOnButtonTest (CPA_DialogList *pDialog, CString csListName, tdeListDrawMode eDraw) { return FALSE; };
/* test*/
virtual void fn_vSetANewTest (CPA_DialogList *pDialog, CString csCurrentList) { };
virtual BOOL fn_bTestFunction (CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj) { return TRUE; };
/* keys*/
virtual BOOL fn_bOnKeyDownInDialog (CPA_DialogList *pDialog, CString csListName, tdeListDrawMode eDraw,
CPA_BaseObject *pSelectedObject, UINT nChar, UINT nRepCnt, UINT nFlags) { return FALSE; }
virtual BOOL fn_bOnKeyUpInDialog (CPA_DialogList *pDialog, CString csListName, tdeListDrawMode eDraw,
CPA_BaseObject *pSelectedObject, UINT nChar, UINT nRepCnt, UINT nFlags) { return FALSE; }
/* tree control*/
virtual BOOL fn_bOnSelChangeHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pSelectedObject, CPA_BaseObject *pSelectedParent) { return FALSE; };
virtual BOOL fn_bOnDblClkHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pSelectedObject, CPA_BaseObject *pSelectedParent) { return FALSE; };
virtual BOOL fn_bCanDragItemInHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObjectToDrag) { return FALSE; };
virtual BOOL fn_bCanDropItemInHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObjectToDrop, CPA_BaseObject *pTarget) { return FALSE; };
virtual BOOL fn_bOnDragDropInHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pTarget) { return FALSE; };
virtual CPA_BaseObject * GetTreeNodeNextChild (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pParent, CPA_BaseObject *pCurrentChild);
virtual void * GetInfoForTreeItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent) { return NULL; }
virtual int GetIconForTreeItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject) { return 0; }
virtual int GetStateForTreeItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject) { return 0; }
virtual BOOL fn_bAddEntriesToTreePopup (CPA_DialogList *pDialog, CString csListName, CMenu *pMenu, UINT uiCustomEntriesStart) { return FALSE; }
virtual void fn_vOnCommandInTreePopup (CPA_DialogList *pDialog, CString csListName, UINT uiCustomEntry) { }
/* list control*/
virtual BOOL fn_bOnSelChangeListObjects (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pSelectedObject, BOOL bUnselect) { return FALSE; };
virtual BOOL fn_bOnDblClkListObjects (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pSelectedObject) { return FALSE; };
virtual CString GetInfoForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject) { return ""; }
virtual int GetIconForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject) { return 0; }
virtual int GetStateForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject) { return 0; }
virtual BOOL fn_bAddEntriesToListPopup (CPA_DialogList *pDialog, CString csListName, CMenu *pMenu, UINT uiCustomEntriesStart) { return FALSE; }
virtual void fn_vOnCommandInListPopup (CPA_DialogList *pDialog, CString csListName, UINT uiCustomEntry) { }
virtual BOOL GetColorsForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject,
COLORREF *pRectColor, COLORREF *pTextColor) { return FALSE; }
/*===========================================================================
for Sorted ListBox
=========================================================================*/
virtual CString GetInfoForListItem (CPA_SortedListBox *pListBox, CPA_BaseObjectList *pObjectList, CPA_BaseObject *pObject) { return ""; }
virtual int GetIconForListItem (CPA_SortedListBox *pListBox, CPA_BaseObjectList *pObjectList, CPA_BaseObject *pObject) { return 0; }
virtual int GetStateForListItem (CPA_SortedListBox *pListBox, CPA_BaseObjectList *pObjectList, CPA_BaseObject *pObject) { return 0; }
virtual BOOL fn_bAddEntriesToListPopup (CPA_SortedListBox *pListBox, CPA_BaseObjectList *pObjectList, CMenu *pMenu, UINT uiCustomEntriesStart) { return FALSE; }
virtual void fn_vOnCommandInListPopup (CPA_SortedListBox *pListBox, CPA_BaseObjectList *pObjectList, UINT uiCustomEntry) { }
virtual BOOL GetColorsForListItem (CPA_SortedListBox *pListBox, CPA_BaseObjectList *pObjectList, CPA_BaseObject *pObject,
COLORREF *pRectColor, COLORREF *pTextColor) { return FALSE; }
/*===========================================================================
for Hierarchy Tree
=========================================================================*/
virtual CPA_BaseObject * GetTreeNodeNextChild (CPA_HierarchyTree *pTreeCtrl, CPA_BaseObject *pRoot, CPA_BaseObject *pParent, CPA_BaseObject *pCurrentChild) { return NULL; }
virtual void * GetInfoForTreeItem (CPA_HierarchyTree *pTreeCtrl, CPA_BaseObject *pRoot, CPA_BaseObject *pObject, CPA_BaseObject *pParent) { return NULL; }
virtual int GetIconForTreeItem (CPA_HierarchyTree *pTreeCtrl, CPA_BaseObject *pRoot, CPA_BaseObject *pObject) { return 0; }
virtual int GetStateForTreeItem (CPA_HierarchyTree *pTreeCtrl, CPA_BaseObject *pRoot, CPA_BaseObject *pObject) { return 0; }
virtual BOOL fn_bAddEntriesToTreePopup (CPA_HierarchyTree *pTreeCtrl, CPA_BaseObject *pRoot, CMenu *pMenu, UINT uiCustomEntriesStart) { return FALSE; }
virtual void fn_vOnCommandInTreePopup (CPA_HierarchyTree *pTreeCtrl, CPA_BaseObject *pRoot, UINT uiCustomEntry) { }
/*===========================================================================
Current Editor
=========================================================================*/
virtual tdePermission fn_eAcceptNewEditor (CPA_EditorBase *pNewEditor) { return C_Allow; }
virtual BOOL fn_bCanActivateEditor (CPA_List<CPA_BaseObject> *pParams) { return !m_bIsCurrentEditor; }
virtual void fn_vOnActivateEditor (CPA_List<CPA_BaseObject> *pParams, BOOL bBackActivated=FALSE) { }
virtual BOOL fn_bCanCloseEditor (void) { return TRUE; }
virtual void fn_vOnCloseEditor (void) { }
virtual void fn_vBackActiveMe (void *pMyData) { };
virtual void fn_vEraseWalkDataStructure (void *pMyData) { };
virtual void fn_vUpdateEditor (tdeModeChange eMode) { }
/*===========================================================================
DialogBar - Mircea Dunka 31 aug 1998
=========================================================================*/
virtual void fn_vDefineDlgBarBtnIcon (tde_DlgBarCategory wCategory, tds_DlgBarBtn *_pDlgBarBtn) { _pDlgBarBtn->hIcon = NULL; };
/*===========================================================================
SubMenus and PopupMenu
=========================================================================*/
virtual BOOL fn_bDefineSubMenu (EDT_SubMenu *_p_oEDTSubMenu) { return FALSE; };
virtual void _OnSubMenuCommand (EDT_SubMenu *_p_oEDTSubMenu,UINT uiMsgID) { };
virtual BOOL fn_bDefinePopupMenu (EDT_PopUpMenu *pPopup, CPA_List<CPA_SuperObject> *pSelection, BOOL bAsCurrentEditor) { return FALSE; };
virtual void _OnPopUpMenuCommand (UINT m_IDCmdMsg) { };
/*===========================================================================
Coherence
=========================================================================*/
virtual BOOL fn_bOnInvalidateLink (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject, BOOL bDestroyed) { return FALSE; }
virtual void fn_vOnRestoreLink (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject) { }
virtual void fn_vOnModifyChild (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject, unsigned long _ulData) { }
/*===========================================================================
Draw Flag
=========================================================================*/
virtual void fn_vOnModifDrawFlag (CPA_SuperObject *pSuperObject) { }
/*===========================================================================
General Purpose
=========================================================================*/
virtual long OnQueryAction (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM) { return 0; };
virtual long OnQueryInfos (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM) { return 0; };
virtual long OnQueryOpen (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM) { return 0; };
virtual long OnQueryClose (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM) { return 0; };
/*===========================================================================
Reachable Objects
=========================================================================*/
virtual BOOL fn_bLoadBaseObject (CPA_BaseObject *p_oObject) { return FALSE; }
void fn_vRegisterObjectsType (CString a_csTypeName[], long lTypeCount);
CPA_BaseObjectList * GetBaseObjectList (CString csTypeName);
CPA_BaseObjectList * GetInvalidObjectList (CString csTypeName);
BOOL fn_bAddObject (CPA_BaseObject *p_oObject);
BOOL fn_bRemoveObject (CPA_BaseObject *p_oObject);
CPA_BaseObject * GetBaseObject (CString csObjectName, CString csObjectType = "", CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
CPA_BaseObject * GetBaseObject (void *p_oEngineStruct, CString csObjectType = "", CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
long fn_lFindObjects (CPA_List<CPA_BaseObject> *p_oList, CString csObjectName, CString csObjectType = "", CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
BOOL fn_bExist (CPA_BaseObject *p_oObject, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
BOOL fn_bExist (CString oObjectName, CString oObjectType = "", CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
/*===========================================================================
Modified Reachable Objects
=========================================================================*/
void fn_vRegisterModificationsType (const CString _csObjectTypeName, CString a_csModificationType[], long lTypeCount);
CPA_ModifNamesList *fn_p_oGetModifNamesList (const CString _csObjectTypeName);
CPA_List<CPA_ModifNamesList> *fn_p_oGetAllModifNamesList () { return & m_oListOfModifications; }
long fn_lFillWithModifiedObject (CPA_List<CPA_ModifiableObject> *_p_oList, const CString _csObjectTypeName, const CString _csModifTypeName);
/*===========================================================================
References
=========================================================================*/
CString GetReferencePath (CString csEntry);
};
#endif /* __EDITOR_BASE_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,94 @@
/*=========================================================================
*
* CPAFileO.hpp - CPA_FileObject : definition
*
*
* Version 1.0
* Creation date 20.06.97
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __FILE_OBJECT_HPP__
#define __FILE_OBJECT_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
/****************************************/
#include "Lst.hpp"
#include "itf\CPABaseO.hpp"
#include "itf\CPAHieEd.hpp"
class CPA_EditorBase;
#define C_szFileTypeName "FileObject"
typedef struct _tdstKeyName
{
CString m_csKey;
CString m_csName;
CString m_csCompletionName;
}
tdstKeyName;
typedef struct _tdstDllKeyList
{
CPA_EditorBase *m_pEditor;
CList<tdstKeyName*, tdstKeyName*> m_oKeyList;
}
tdstDllKeyList;
/*===========================================================================
* Description: Class CPA_FileObject
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_FileObject : public CPA_BaseObject
{
/*only this function may call the constructor of a file object...*/
friend CPA_FileObject *CPA_HierarchyEditor::GetFileObject(CString csFileName);
private:
CList<tdstDllKeyList*,tdstDllKeyList*> m_oDllKeyList;
/*constructor is private to make sure the only way to get one is though the hierarchy*/
CPA_FileObject (CPA_EditorBase *pEditor, const CString csFileName);
public:
~CPA_FileObject (void);
long GetDataType (void) { return 0; }
void * GetData (void) { return NULL; }
CString GetReferencedName (CPA_EditorBase *pEditor, const CString csKey);
char *GetCompletionPath(CPA_EditorBase *pEditor, const CString csKey);
CString GetCompleteName (void);
CString GetNameToDraw (void) { return GetCompleteName(); }
BOOL fn_bSetReferencedName (CPA_EditorBase *pEditor, const CString csKey, const CString csName);
static void sm_vUniformizeSlashes(CString &r_csPath);
protected:
tdstDllKeyList * GetDllKeyList (CPA_EditorBase *pEditor);
tdstKeyName * GetKeyName (tdstDllKeyList *p_stList, const CString csKey);
};
#endif /* __FILE_OBJECT_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,111 @@
/*=========================================================================
*
* CPAHieEd.hpp CPA_HierarchyEditor - Definition
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_HIE_EDITORBASE_HPP__
#define __CPA_HIE_EDITORBASE_HPP__
#include "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
/****************************************/
/* paste mode*/
typedef enum tdePasteMode_
{
E_pm_PasteDefault,
E_pm_PasteChoice,
E_pm_PasteSame
}
tdePasteMode;
class CPA_SuperObject;
class CPA_FileObject;
/*===========================================================================
* Description: Class CPA_HierarchyEditor
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_HierarchyEditor : public CPA_DLLBase
{
public:
CPA_HierarchyEditor (void) { };
~CPA_HierarchyEditor (void) { };
virtual void Create (void);
/* for CPA_SpecificInterface (fn_vDisplayWorld)*/
virtual BOOL fn_bIsDisplayAllModeEnabled (void) { return FALSE; }
/* for CPA_Interface*/
virtual void fn_vUpdateEditor (tdeModeChange eMode) { }
virtual void fn_vCancelAllModes (void) { }
virtual BOOL fn_bIsMultiSelectModeEnabled (void) { return FALSE; }
virtual BOOL fn_bInsertObjectInHierarchy (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bSelect = TRUE, BOOL pBlock = FALSE) { return FALSE; }
virtual BOOL fn_bInsertAsPreviousBrother (CPA_SuperObject *pEdObj, CPA_SuperObject *pBrother, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bSelect = TRUE, BOOL pBlock = FALSE) { return FALSE; }
virtual BOOL fn_bDeleteObjectInHierarchy (CPA_SuperObject *pEdObj, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bDestroySuperObject = FALSE, BOOL bSelect = TRUE, BOOL pBlock = FALSE) { return FALSE; }
/*ANNECY Shaitan EmptySectors 25/02/98*/
virtual BOOL fn_bCanBeParent (CPA_SuperObject *pParent, tdstPosition *p_stPosition, tdeTypeSO eTypeSO, tdeSaveStatus eStatus);
/*ENDANNECY Shaitan EmptySectors*/
virtual BOOL fn_bCanBeParentForAll (CPA_SuperObject *pEdObj) { return FALSE; }
virtual BOOL fn_bCanPasteAllObjects (tdePasteMode eMode, CPA_SuperObject *pNewParent = NULL, MTH3D_tdstVector *pNewPosition = NULL) { return FALSE; }
virtual CPA_SuperObject * GetEditorObject (HIE_tdxHandleToSuperObject hSupObj);
virtual void fn_vUpdateLink (CString csCurrentMode) { }
virtual void fn_vUpdateModel (void) { }
virtual void fn_vBeforeEngine (void);
virtual void fn_vBeforeEditor (void);
virtual CPA_SuperObject * GetNewSuperObject (HIE_tdxHandleToSuperObject hEngineSO,
tdeSaveStatus eStatus, tdeTypeSO eTypeSO = C_NoType,
CString csName = "", CString csEngineFileName = "");
virtual CPA_SuperObject * GetNewSuperObject (tdeSaveStatus eStatus, tdeTypeSO eTypeSO = C_NoType,
CString csName = "", CString csEngineFileName = "");
virtual CPA_SuperObject * GetCopyOfSuperObject (CPA_SuperObject *pModel);
virtual void fn_vOnActivateEditor (CPA_List<CPA_BaseObject> *pParams, BOOL bBackActivated=FALSE);
virtual void fn_vOnCloseEditor (void);
virtual CString GetLoadingMessage (void) { return "Editor Ready"; }
virtual int GetLoadingStatus (void) { return 3; }
CPA_FileObject * GetFileObject (CString csFileName);
/* Begin Silviu Simen september 1998 List of Objects in Sectors*/
virtual void fn_vBuildListOfSectors (void) {};
/* End Silviu Simen september 1998 List of Objects in Sectors*/
};
#endif /* __CPA_HIE_EDITORBASE_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,72 @@
/*=========================================================================
*
* CPASaveO.hpp - CPA_SaveObject : definition
*
*
* Version 1.0
* Creation date 07.07.97
* Revision date
*
* MT
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __MODIFIABLE_OBJECT_HPP__
#define __MODIFIABLE_OBJECT_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
/****************************************/
#include <afxtempl.h>
#include "CPASaveO.hpp"
class CPA_ModifNamesList;
/*#################################################################################*/
/* CPA_ModifiableObject*/
/*#################################################################################*/
class CPA_EXPORT CPA_ModifiableObject : public CPA_SaveObject
{
private:
CList<long,long> m_oListOfModifications;
CPA_ModifNamesList *m_p_oListOfModifNames;
public:
CPA_ModifiableObject (CPA_EditorBase *pEditor, const CString csType, tdeSaveStatus eStatus,
CPA_BaseObject *pOwner = NULL, BOOL bAvailable = TRUE,
char *p_szDataPath = NULL, SCR_tdpfn_Ntfy_Callback pCallBack = NULL);
CPA_ModifiableObject (CPA_ModifiableObject &r_oSource);
~CPA_ModifiableObject (void);
virtual tdeBaseClass fn_eGetBaseClass (void) { return E_bc_ModifiableObject; }
void fn_vUpdateModification (const CString _ocsModificationType, BOOL _bModified, BOOL bInitialState);
void fn_vSetCurrentState (const CString _ocsModificationType, BOOL bInitialState);
void fn_vSetModification (const CString _ocsModificationType, BOOL _bModified = TRUE, BOOL _bInitialState = TRUE);
BOOL fn_bIsOnInitialState (const CString _ocsModificationType);
BOOL fn_bIsModified (const CString _ocsModificationType);
virtual void fn_vSetOnState (const CString _ocsModificationType, BOOL _bOnInitialState) {}
virtual void fn_vValidateState (const CString _ocsModificationType, BOOL bInitialState);
virtual BOOL fn_bCanBeValidated (void) { return TRUE; }
protected:
POSITION fn_stGetModificationPos ( const CString _ocsModificationType );
};
#endif /* __MODIFIABLE_OBJECT_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,98 @@
/*=========================================================================
*
* CPASaveO.hpp - CPA_SaveObject : definition
*
*
* Version 1.0
* Creation date 20.06.97
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __SAVE_OBJECT_HPP__
#define __SAVE_OBJECT_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
/****************************************/
#include "CPABaseO.hpp"
#include "CPASectO.hpp"
/*#################################################################################*/
/* CPA_SaveObject*/
/*#################################################################################*/
class CPA_EXPORT CPA_SaveObject : public CPA_BaseObject,
public CPA_SectionObject
{
private:
tdeSaveStatus m_eSaveStatus;
public:
CPA_SaveObject (CPA_EditorBase *pEditor, const CString csType, tdeSaveStatus eStatus,
CPA_BaseObject *pOwner = NULL, BOOL bAvailable = TRUE,
char *p_szDataPath = NULL, SCR_tdpfn_Ntfy_Callback pCallBack = NULL);
CPA_SaveObject (CPA_SaveObject &r_oSource);
~CPA_SaveObject (void);
protected:
void fn_vDoRename (const CString csNewName);
public:
/* access*/
tdeSaveStatus GetSaveStatus (void) { return m_eSaveStatus; }
/*CPA2 Stegaru Cristian 98-03*/
void SetSaveStatus (tdeSaveStatus eSaveStatus) { m_eSaveStatus = eSaveStatus;}
/*End CPA2 Stegaru Cristian 98-03*/
virtual tdeBaseClass fn_eGetBaseClass (void) { return E_bc_SaveObject; }
/* name*/
CString GetDefaultValidName (const CString csDefaultBaseName = "");
void SetDefaultValidName (const CString csDefaultBaseName = "");
tdeMissingCriteria fn_eRename (const CString csNewName);
BOOL fn_bCheckScriptCharacters (const CString csName);
/* references*/
void fn_vUpdateAllReferences (void);
CString fn_csComputeCompleteSectionName (const CString csNewName);
/* virtual functions*/
virtual BOOL fn_bCanBeNotified (void);
virtual BOOL fn_bCheckNotification (const CString csNewName);
virtual tdeMissingCriteria fn_eCheckValidity (const CString 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);
};
#endif /* __SAVE_OBJECT_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,90 @@
/*=========================================================================
*
* CPASectO.hpp - CPA_SectionObject : definition
*
*
* Version 1.0
* Creation date 20.06.97
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __SECTION_OBJECT_HPP__
#define __SECTION_OBJECT_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
/****************************************/
#include "SCR.h"
/*#################################################################################*/
/* CPA_SectionObject*/
/*#################################################################################*/
class CPA_EXPORT CPA_SectionObject
{
private:
/* section*/
CString m_csReferencedSectionName;
CString m_csInitialReferencedSectionName;
char *m_p_szDataPath;
/* parameters for save*/
SCR_tdpfn_Ntfy_Callback m_p_fnCallBackSave;
SCR_tde_Ntfy_Action m_eCurrentNotify;
SCR_tde_Ntfy_Action m_eLastNotify;
BOOL m_bExistingSection;
void * m_pSectionData;
public:
CPA_SectionObject (const CString csReferencedSectionName, char *p_szDataPath, SCR_tdpfn_Ntfy_Callback pCallBack,
void *pSectionData = NULL, BOOL bExistingSection = TRUE);
CPA_SectionObject (CPA_SectionObject &r_oSource);
~CPA_SectionObject (void);
/* access*/
SCR_tde_Ntfy_Action GetCurrentNotification (void) { return m_eCurrentNotify; }
CString GetInitialSectionName (void) { return m_csInitialReferencedSectionName; }
void * GetSectionData (void) { return m_pSectionData; }
char * GetDataPath (void) { return m_p_szDataPath; }
BOOL fn_bSectionExists (void) { return m_bExistingSection; }
CString GetCompleteSectionName (void);
CString GetReferencedSectionName (void);
/* set functions*/
void SetReferencedSectionName (const CString csNewSectionName) { m_csReferencedSectionName = csNewSectionName; }
void SetSectionData (void *pSectionData) { m_pSectionData = pSectionData; }
void SetExistingSection (BOOL bSectionExists) { m_bExistingSection = bSectionExists; }
void SetCallBackSave (SCR_tdpfn_Ntfy_Callback pCallBack) { m_p_fnCallBackSave = pCallBack; }
void SetDataPath (char *p_szDataPath) { m_p_szDataPath = p_szDataPath; }
/* notifications*/
void fn_vWriteSection (void);
void fn_vDeleteSection (void);
void fn_vRestoreSection (void);
void fn_vRenameSection (const CString csNewReferencedSectionName);
void fn_vNotifySection (SCR_tde_Ntfy_Action eAction);
/* inits*/
void fn_vSectionSaved (void);
void fn_vSectionDeleted (void);
};
#endif /* __SECTION_OBJECT_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,178 @@
/*=========================================================================
*
* CPAdLBox.hpp : class CPA_SortedListBox
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_SORTEDLISTBOX_H__
#define __CPA_SORTEDLISTBOX_H__
/****************************************/
#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
/****************************************/
#include "CPAListB.hpp"
class CPA_EditorBase;
class CPA_DialogList;
/* sort criteria*/
typedef enum tdeSortCriteria_
{
E_sc_State,
E_sc_Icon,
E_sc_Name,
E_sc_Type,
E_sc_Owner,
E_sc_None
}
tdeSortCriteria;
/* style (columns of list control)*/
#define C_lDrawNothing 0
#define C_lDrawState 1
#define C_lDrawIcon 2
#define C_lDrawName 4
#define C_lDrawType 8
#define C_lDrawOwner 16
#define C_lDrawInfo 32
#define C_lDrawAllStandard (C_lDrawName + C_lDrawType + C_lDrawOwner)
#define C_lDrawAllCustom (C_lDrawAllStandard + C_lDrawInfo)
/*#################################################################################*/
/* Sorted ListBox*/
/*#################################################################################*/
/*===========================================================================
* Description: Class for Sorted ListBox
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_SortedListBox : public CListCtrl
{
protected:
CPA_EditorBase *m_pOwnerEditor;
CPA_DialogList *m_pParentDialog;
CPA_BaseObjectList *m_pSortedList;
CImageList *m_pIconList;
CImageList *m_pStateList;
tdeListOrder m_eCurrentOrder;
BOOL m_bDisplayGray;
BOOL m_bHeaders;
long m_lDrawStyle;
long m_lNbColumns;
int m_iSelectedItem;
int m_iDraggedItem;
int m_iTargetItem;
BOOL m_bCanChangeOrder;
BOOL m_bCanChangeDrawStyle;
BOOL m_bCanChangeDisplay;
BOOL m_bCanChangeHeaders;
BOOL m_bCanDragDrop;
BOOL m_bIsSelecting;
BOOL m_bAdjustSize;
public:
CPA_SortedListBox();
~CPA_SortedListBox() { }
void SetOwnerEditor (CPA_EditorBase *pEditor) { m_pOwnerEditor = pEditor; }
void SetParentDialog (CPA_DialogList *pParentDialog) { m_pParentDialog = pParentDialog; }
void SetSortedList (CPA_BaseObjectList *pSortedList);
void SetIconList (CImageList *pIconList, BOOL bUpdate = TRUE);
void SetStateList (CImageList *pStateList, BOOL bUpdate = TRUE);
tdeListOrder GetOrder (void) { return m_eCurrentOrder; }
void SetOrder (tdeListOrder eNewOrder, BOOL bCanChange = TRUE, BOOL bUpdateList = TRUE);
BOOL GetColumnHeaders (void) { return m_bHeaders; }
void SetColumnHeaders (BOOL bHeaders, BOOL bCanChange = TRUE, BOOL bUpdateList = TRUE) ;
long GetDrawStyle (void) { return m_lDrawStyle; }
void SetDrawStyle (long lNewStyle, BOOL bCanChange = TRUE, BOOL bUpdateList = TRUE) ;
BOOL GetDisplayGray (void) { return m_bDisplayGray; }
void SetDisplayGray (BOOL bDisplay, BOOL bCanChange = TRUE, BOOL bUpdateList = TRUE) ;
BOOL GetDragDropRight (void) { return m_bCanDragDrop; }
void SetDragDropRight (BOOL bCanDragDrop) { m_bCanDragDrop = bCanDragDrop; }
void SetOwnerDrawStyle (BOOL bOwnerDraw);
void SetAdjustSize (BOOL bAdjust);
void fn_vReinitListObjects (void);
void fn_vReinitColumnWidth (void);
BOOL fn_bIsSelecting (void) { return m_bIsSelecting; }
void SetSelectedItem (int iNumItem);
int GetSelectedItem (void);
int InsertNewItem (int iNumItem, CPA_BaseObject *pElem);
void fn_vDisableIcon (CDC *pDC, POINT pt, COLORREF cRectColor);
int GetCorrespondingIndex (DWORD pData);
int GetCorrespondingIcon (CPA_BaseObject *pObject);
int GetCorrespondingState (CPA_BaseObject *pObject);
BOOL GetCorrespondingColors (CPA_BaseObject *pObject, COLORREF *pRectColor, COLORREF *pTextColor);
CString GetCorrespondingInfo (CPA_BaseObject *pObject);
int GetIndexByStateToDraw (CPA_BaseObject *pObject);
int GetIndexByIconToDraw (CPA_BaseObject *pObject);
int GetIndexByNameToDraw (CPA_BaseObject *pObject);
int GetIndexByTypeToDraw (CPA_BaseObject *pObject);
int GetIndexByOwnerToDraw (CPA_BaseObject *pObject);
int GetIndexByInfoToDraw (CPA_BaseObject *pObject);
tdeSortCriteria GetColumnType (int iNumColumn);
void fn_vSortListByCriteria (tdeSortCriteria eCriteria);
afx_msg void OnRButtonDown (UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk (UINT nFlags, CPoint point);
afx_msg void OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnBeginDrag (NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnMouseMove (UINT nFlags, CPoint point);
afx_msg void OnLButtonUp (UINT nFlags, CPoint point);
afx_msg void OnColumnClicked (NMHDR* pNMHDR, LRESULT* pResult);
virtual void DrawItem (LPDRAWITEMSTRUCT lpDIS);
virtual void fn_vOnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags) { };
afx_msg void OnSize (UINT nType, int cx, int cy);
BOOL OnCommand( WPARAM wParam, LPARAM lParam );
DECLARE_MESSAGE_MAP()
};
#endif /*__CPA_SORTEDLISTBOX_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,94 @@
/*=========================================================================
*
* CPAdPerm.h : class CPA_DialogPermission
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGPERMISSION_H__
#define __DIALOGPERMISSION_H__
/****************************************/
#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
/****************************************/
#include "CPARes.h"
#include "CPAMCapt.hpp"
class CPA_Interface;
class CPA_BaseObject;
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DialogPermission dialog*/
class CPA_EXPORT CPA_DialogPermission : public CDialog, public CPA_MouseCapturer
{
protected:
CPA_Interface *m_pInterface;
CPA_BaseObject *m_pObject;
long m_lUserIndex;
BOOL m_bCanModify;
BOOL m_bAlways;
public:
/*any class deriving from CPA_MouseCapturer one must declare this method as is*/
CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }
/* parent editor*/
CPA_Interface * GetInterface (void) { return m_pInterface; }
/* standard constructor*/
CPA_DialogPermission(CWnd* pParent = NULL);
/* dialog*/
BOOL fn_bDoDialog (CPA_Interface *pInterface, CPA_BaseObject *pModifiedObject, long lUserIndex);
void fn_vCloseDialog (void);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogPermission)*/
enum { IDD = CPA_IDD_DIALOGPERMISSION };
CEdit m_cObjectName;
CEdit m_cDesignerName;
CButton m_cModify;
CButton m_cCancel;
CButton m_cAlways;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogPermission)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogPermission)*/
virtual BOOL OnInitDialog();
afx_msg void OnModify();
afx_msg void OnCancel();
afx_msg void OnAlways();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__DIALOGPERMISSION_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,89 @@
/*=========================================================================
*
* CPAdStat.h : class CPA_DialogStatus
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGSTATUS_H__
#define __DIALOGSTATUS_H__
/****************************************/
#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
/****************************************/
#include "CPARes.h"
class CPA_SpecificInterface;
/*#################################################################################*/
/* CPA_DialogStatus dialog*/
/*#################################################################################*/
class CPA_EXPORT CPA_DialogStatus : public CDialog
{
/* Construction*/
protected:
CPA_SpecificInterface *m_pEditor;
BOOL m_bCanUpdate;
public:
/* parent editor*/
CPA_SpecificInterface * GetEditor (void) { return m_pEditor; }
/* standard constructor*/
CPA_DialogStatus (CWnd* pParent = NULL);
/* Dialog*/
void fn_vDoDialog (CPA_SpecificInterface *pEditor, BOOL bCanUpdate);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogStatus)*/
enum { IDD = CPA_IDD_DIALOGSTATUS };
CButton m_cGraphic;
CButton m_cDesign;
CButton m_cManager;
CButton m_cSaveStatus;
CButton m_cOK;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogStatus)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogStatus)*/
virtual BOOL OnInitDialog();
afx_msg void OnSave();
afx_msg void OnOK();
afx_msg void OnCancel();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__DIALOGSTATUS_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,137 @@
/*=========================================================================
*
* CPAdTree.hpp : class CPA_HierarchyTree
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_HIERARCHYTREE_H__
#define __CPA_HIERARCHYTREE_H__
/****************************************/
#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
/****************************************/
class CPA_EditorBase;
class CPA_BaseObject;
class CPA_DialogList;
/*#################################################################################*/
/* Tree Control */
/*#################################################################################*/
/*===========================================================================
* Description: Class for the Tree Item
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_TreeItem
{
protected:
CPA_BaseObject *m_pObject;
void *m_pInfo;
int m_iIcon;
int m_iState;
public:
CPA_TreeItem (CPA_BaseObject *pObject);
~CPA_TreeItem (void);
CPA_BaseObject * GetObject (void) { return m_pObject; }
void * GetInfo (void) { return m_pInfo; }
void SetInfo (void *pInfo) { m_pInfo = pInfo; }
int GetIcon (void) { return m_iIcon; }
void SetIcon (int iIcon) { m_iIcon = iIcon; }
int GetState (void) { return m_iState; }
void SetState (int iState) { m_iState = iState; }
};
/*===========================================================================
* Description: Class for Hierarchy Tree
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_HierarchyTree : public CTreeCtrl
{
protected:
CPA_EditorBase *m_pOwnerEditor;
CPA_DialogList *m_pParentDialog;
CPA_BaseObject *m_pRoot;
CImageList *m_pIconList;
CImageList *m_pStateList;
CImageList m_stDefaultImageList;
HTREEITEM m_hDraggedItem;
HTREEITEM m_hTarget;
public:
CPA_HierarchyTree ();
~CPA_HierarchyTree ();
HTREEITEM GetDraggedItem (void) { return m_hDraggedItem; }
HTREEITEM GetDropTarget (void) { return m_hTarget; }
void SetParentDialog (CPA_DialogList *pParentDialog) { m_pParentDialog = pParentDialog; }
void SetOwnerEditor (CPA_EditorBase *pEditor) { m_pOwnerEditor = pEditor; }
void SetDraggedItem (HTREEITEM hItem) { m_hDraggedItem = hItem; }
void SetIconList (CImageList *pIconList, BOOL bUpdate = TRUE);
void SetStateList (CImageList *pIconList, BOOL bUpdate = TRUE);
void SetTreeRoot (CPA_BaseObject *pRoot);
void fn_vDeleteHierarchyTree (HTREEITEM hTreeNode = NULL);
void fn_vFillHierarchyTree (CPA_BaseObject *pEdParent, HTREEITEM hTreeNode);
HTREEITEM GetCorrespondingItem (CPA_BaseObject *pObject, CPA_BaseObject *pParent, HTREEITEM hElem);
CPA_BaseObject * GetCorrespondingChild (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void * GetCorrespondingInfo (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
int GetCorrespondingIcon (CPA_BaseObject *pObject);
int GetCorrespondingState (CPA_BaseObject *pObject);
void * GetItemInfo (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemInfo (CPA_BaseObject *pObject, CPA_BaseObject *pParent, void *pInfo);
int GetItemIcon (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemIcon (CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iIcon);
int GetItemStateI (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemStateI (CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iState);
afx_msg void OnRButtonDown (UINT nFlags, CPoint point);
afx_msg void OnLButtonUp (UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk (UINT nFlags, CPoint point);
afx_msg void OnMouseMove (UINT nFlags, CPoint point);
afx_msg void OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags);
BOOL OnCommand( WPARAM wParam, LPARAM lParam );
DECLARE_MESSAGE_MAP()
};
#endif /*__CPA_HIERARCHYTREE_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,250 @@
/*******************************************************************************/
/** CpaListB.hpp **/
/*******************************************************************************/
/** **/
/** Definition of the CPA_BaseObjectList class : list of CPA_BaseObject with **/
/** different sort orders and fast search functions. **/
/** **/
/*******************************************************************************/
/** Author : Yann Le Tensorer, Alexis Vaisse **/
/*******************************************************************************/
#ifndef __CPABLIST_HPP__
#define __CPABLIST_HPP__
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
#include "Lst.hpp"
class CPA_BaseObject;
typedef CPA_BaseObject * tdp_BaseObjectPointer;
typedef long Position;
typedef enum eListOrder_
{
E_lo_Object ,
E_lo_First = E_lo_Object , /* Sort by adress of the CPA_BaseObject (to quickly find an object)*/
E_lo_Type , /* Sort by type*/
E_lo_Data , /* Sort by adress of the data*/
E_lo_Owner , /* Sort by adress of the owner*/
E_lo_Alpha , /* Sort by alphabetic order*/
E_lo_Common , /* Specific order*/
E_lo_Edited , /* Specific order*/
E_lo_Last = E_lo_Edited
}
tdeListOrder;
#define NO_CRITERIA ((CPA_BaseObject *) -1)
#define C_lNumberOfLists (E_lo_Last + 1)
#define E_lo_GoThrough E_lo_Edited /* When we go through the list with GetNext..., we use the E_lo_Edited order*/
/*---------------------------------*/
class CPA_EXPORT CPA_BaseObjectList
{
private:
CString m_csTypeName; /* Type name of the list. Can be ""*/
char * m_szTypeName; /* Same string, with a char **/
long m_lNumberOfObjects; /* Number of objects in the list*/
long m_lMaxNumberOfObjects; /* Maximum number of objects in the list (that is the size*/
/* of m_lIndexArray). If one try to add one more object,*/
long m_lCurrentUniqueIndex;
/* The array will have to be reallocated*/
tdp_BaseObjectPointer * m_Array [C_lNumberOfLists]; /* Contains the list of pointers to CPA_ObjectBase sorted*/
/* for each order. The actual size of the array is m_lMaxNumberOfObjects*/
/* --- Low level functions ---*/
void ReallocArray (long _lNewSize); /* Change the size of the arrray*/
long fn_lDichoSearchName (CPA_BaseObject** _List , unsigned long _ListSize , char * _NameToFind , BOOL * _bFound , CPA_BaseObject * _BaseObjectToFind = NULL);
/* Low level function to find an object with a given name in a given list*/
long fn_lDichoSearchType (CPA_BaseObject** _List, unsigned long _ListSize, char* _TypeToFind,BOOL* _bFound , CPA_BaseObject * _BaseObjectToFind = NULL);
/* Low level function to find an object with a given type in a given list*/
long fn_lDichoSearchData (CPA_BaseObject** _List, unsigned long _ListSize, void* _DataToFind,BOOL* _bFound , CPA_BaseObject * _BaseObjectToFind = NULL);
/* Low level function to find an object with a given data in a given list*/
long fn_lDichoSearchOwner (CPA_BaseObject** _List, unsigned long _ListSize, CPA_BaseObject* _OwnerToFind,BOOL* _bFound , CPA_BaseObject * _BaseObjectToFind = NULL);
/* Low level function to find an object with a given owner in a given list*/
long fn_lDichoSearchBaseObject (CPA_BaseObject** _List, unsigned long _ListSize, CPA_BaseObject* _BaseObjectToFind,BOOL* _bFound);
/* Low level function to find the index of an object in a given list*/
long fn_lDichoSearchNamesTypesOwners( /* Low level function to find objects with a given name, an optional type and an optional owner*/
CPA_List<CPA_BaseObject> *_p_oReturnList,
CPA_BaseObject** _p_oList,
unsigned long _ulListSize,
BOOL* _p_bFound,
char* _Name,
char* _type=NULL,
CPA_BaseObject* _Owner=NO_CRITERIA);
long fn_lDichoSearchOwnersAndTypes( /* Low level function to find objects with a given owner and an optional type*/
CPA_List<CPA_BaseObject> * _p_oReturnList,
CPA_BaseObject** _p_oList,
unsigned long _ulListSize,
BOOL* _p_bFound,
CPA_BaseObject* _Owner,
char* _type=NULL);
long fn_lDichoSearchNameTypeOwner( /* Low level function to find an object with a given name, an optional type and an optional owner*/
CPA_BaseObject** _p_oList,
unsigned long _ulListSize,
BOOL* _bFound,
char* _NameToFind,
char* _type=NULL,
CPA_BaseObject* _Owner=NO_CRITERIA
);
long fn_lDichoSearchDataTypeOwner( /* Low level function to find an object with a given data, an optional type and an optional owner*/
CPA_BaseObject** _p_oList,
unsigned long _ulListSize,
BOOL* _bFound,
void* _data,
char* _type=NULL,
CPA_BaseObject* _Owner=NO_CRITERIA
);
/* --- Medium level functions ---*/
long FindObjectWithType (CPA_List<CPA_BaseObject> * _p_oList ,
const CString _csTypeName); /* Return all the objects of the list with the given type*/
long FindIndex (tdeListOrder _eListOrder , CPA_BaseObject * _p_oObject , BOOL * _bExist);
/* Return the index of an object into a list with a given order*/
/* If the object is into the list, set _bExist to TRUE and return the index*/
/* If not, set _bExist to FALSE and return the index where to insert the object*/
void InsertObjectInList (tdeListOrder _eListOrder , CPA_BaseObject * _p_oObject , long _lIndex);
/* Insert the give object into the given list in the given Position*/
/* Shift the index after this Position*/
void RemoveObjectFromList (tdeListOrder _eListOrder , long _lIndex);
/* Remove the given index from the given list*/
/* Shift the index after this Position*/
void MoveIndexInList (tdeListOrder _eListOrder , long _lOldIndex , long _lNewIndex);
/* Move an object from one Position to another inside a given list*/
public:
/* --- Construction and destruction ---*/
CPA_BaseObjectList (const CString _csTypeName = ""); /* Constructor*/
~CPA_BaseObjectList (); /* Destructor*/
void DeleteAllElements (); /* Empty the list but do not delete the CPA_BaseObject*/
void DeleteAllObjects (); /* Empty the list and delete all CPA_BaseObject*/
/* --- Type ---*/
CString fn_csGetTypeName () { return m_csTypeName; } /* Return the type name of the list, "" for no type*/
char * fn_szGetTypeName () { return m_szTypeName; } /* Same string with a char **/
BOOL fn_bIsOfType (const CString _csTypeName) ; /* Return TRUE if the list is of the given type*/
/* --- Add and remove objects ---*/
BOOL fn_bAddObject (CPA_BaseObject * _p_oObject); /* Insert an object into the list.*/
/* If the list has a type and the object has not the same type -> ASSERT*/
/* If the object is already in the list, return FALSE*/
/* Else insert the object into the list and return TRUE*/
BOOL fn_bRemoveObject (CPA_BaseObject * _p_oObject); /* Remove an object from the list*/
/* If the object is not into the list, return FALSE*/
/* Else remove the object from the list and return TRUE*/
/* --- Get functions ---*/
long GetCount () { return m_lNumberOfObjects; } /* Return the number of objects in the list*/
CPA_BaseObject * GetObjectWithIndex (long _lIndex , tdeListOrder _eListOrder = E_lo_GoThrough);
/* Return the object with the given index into the given sort order*/
long GetIndexOfObject (CPA_BaseObject * _p_oObject ,
tdeListOrder _eListOrder); /* Return the index (between 0 et GetCount () - 1) of a given object*/
/* for a specific order (must be E_lo_Common or E_lo_Edited)*/
/* If the object is not into the list, return -1*/
/* Do not use this function too much, because it is slower than the others*/
/* --- Search functions ---*/
BOOL fn_bExist (CPA_BaseObject * _p_oObject); /* Return TRUE if the object is into the list*/
BOOL fn_bExist (const CString _csObjectName , /* Return TRUE if there is an object with the given name,*/
const CString _csTypeName = "" , /* eventually with the given type and the given owner*/
CPA_BaseObject * _p_oOwner = NO_CRITERIA);/* into the list*/
long fn_lFindObjects (CPA_List<CPA_BaseObject> * _p_oList , /* Find object from the list, put them into _p_oList*/
const CString _csObjectName , /* and return the number of found objects*/
const CString _csTypeName = "" ,
CPA_BaseObject * _p_oOwner = NO_CRITERIA);
CPA_BaseObject * fn_p_oFindObject /* Find an object from the list with the given name,*/
(const CString _csObjectName , /* eventually the given type and the given owner */
const CString _csTypeName = "" , /* If the object is into the list, return it*/
CPA_BaseObject * _p_oOwner = NO_CRITERIA); /* Else return NULL*/
CPA_BaseObject * fn_p_oFindObjectWithdData /* Find an object from the list with the given data,*/
(void * _p_vData , /* eventually the given type and the given owner*/
const CString _csTypeName = "" , /* If the object is into the list, return it*/
CPA_BaseObject * _p_oOwner = NO_CRITERIA); /* Else return NULL*/
/* --- Change order ---*/
void fn_vBeforeChangingObjectName (CPA_BaseObject * _p_oObject , /* Before changing the name of a CPA_BaseObject, one must*/
char * _szNewName); /* call this function to reorganize the alphabetic order sorted list*/
void fn_vBeforeChangingObjectData (CPA_BaseObject * _p_oObject , /* Before changing the data of a CPA_BaseObject, one must*/
void * _pNewData); /* call this function to reorganize the list*/
void fn_vBeforeChangingObjectOwner (CPA_BaseObject * _p_oObject ,/* Before changing the owner of a CPA_BaseObject, one must*/
CPA_BaseObject * _pNewOwner); /* call this function to reorganize the list*/
void fn_vExchangeObjectOrder (long _lIndex1 , /* Exchange two objects in a specific order*/
long _lIndex2 , /* (must be E_lo_Common or E_lo_Edited)*/
tdeListOrder _eListOrder);
void fn_vChangeObjectOrder (long _lOldIndex , /* Change the position in a specific order sorted list of*/
long _lNewIndex , /* an object (which must already be in the list)*/
tdeListOrder _eListOrder); /* Shift objects if necessary*/
/* (must be E_lo_Common or E_lo_Edited)*/
BOOL fn_bExchangeObjectOrder (CPA_BaseObject * _p_oObject1 , /* Exchange two objects in a specific order*/
CPA_BaseObject * _p_oObject2 , /* (must be E_lo_Common or E_lo_Edited)*/
tdeListOrder _eListOrder); /* If you know the index of the two objects in the list*/
/* (without calling the GetIndexOfObject function),*/
/* call the fn_vExchangeObjectOrder function which is faster*/
/* Return FALSE if one object is not in the list, else return TRUE*/
BOOL fn_bChangeObjectOrder (CPA_BaseObject* _p_oObject , /* Change the position in a specific order sorted list of*/
long _lNewIndex , /* an object. Shift objects if necessary (must be E_lo_Common*/
tdeListOrder _eListOrder); /* or E_lo_Edited). If you know the old index if the object in*/
/* the list (without calling the GetIndexOfObject function),*/
/* call the fn_vChangingObjectOrder function which is faster*/
/* Return FALSE if the object is not in the list, else return TRUE*/
void fn_vReSortListWithAlphaOrder (); /* If some objects may have been renamed without calling the*/
/* fn_vBeforeChangingObjectName function, call this function to sort the list*/
void fn_vReSortListWithDataOrder (); /* If data of some objects may have been changed without calling the*/
/* fn_vBeforeChangingObjectData function, call this function to sort the list*/
void fn_vReSortListWithOwnerOrder (); /* If owner of some objects may have been changed without calling the*/
/* fn_vBeforeChangingObjectOwner function, call this function to sort the list*/
void fn_vReSortList (); /* Call the three previous functions*/
/* --- To go through the list*/
Position GetHeadPosition () { return m_lNumberOfObjects ? 1 : 0; }
CPA_BaseObject * GetHead () { return m_Array [E_lo_GoThrough] [0]; }
CPA_BaseObject * GetHeadElement (Position & _Position);
Position GetTailPosition () { return m_lNumberOfObjects; }
CPA_BaseObject * GetTail () { return m_Array [E_lo_GoThrough] [m_lNumberOfObjects - 1]; }
CPA_BaseObject * GetTailElement (Position & _Position);
CPA_BaseObject * GetAt (Position _Position) { return m_Array [E_lo_GoThrough] [_Position - 1]; }
CPA_BaseObject * GetAtElement (Position _Position) { return m_Array [E_lo_GoThrough] [_Position - 1]; }
CPA_BaseObject * GetNext (Position & _Position);
CPA_BaseObject * GetNextElement (Position & _Position);
CPA_BaseObject * GetPrev (Position & _Position);
CPA_BaseObject * GetPrevElement (Position & _Position);
CPA_BaseObject * operator[] (long _lIndex) { return m_Array [E_lo_GoThrough] [_lIndex]; }
/* --- To get a new name*/
CString GetNewName (const CString csDefaultBaseName = "");
};
#endif /* ACTIVE_EDITOR*/
#endif /* __CPABLIST_HPP__*/

View File

@@ -0,0 +1,70 @@
/*=========================================================================
*
* NameMngr.hpp - CPA_NameManager : definition
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_NAME_MNGR_HPP__
#define __CPA_NAME_MNGR_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
/****************************************/
#include "CPABaseO.hpp"
/*===========================================================================
name conflict : register all parameters
=========================================================================*/
class CPA_EXPORT CPA_NameConflict
{
public:
CPA_BaseObject *m_pInitialObject;
CPA_BaseObject *m_pRenamedObject;
CString m_csInitialName;
tdeMissingCriteria m_eConflict;
public:
CPA_NameConflict (CPA_BaseObject *pInitial, CPA_BaseObject *pRenamed,
const CString csInitialName, tdeMissingCriteria eConflict);
~CPA_NameConflict (void);
};
/*===========================================================================
name manager : register all name conflict
=========================================================================*/
class CPA_EXPORT CPA_NameManager
{
private:
CPA_List<CPA_NameConflict> m_oListOfNameConflict;
public:
CPA_NameManager (void);
~CPA_NameManager (void);
void fn_vRegisterConflict (CPA_BaseObject *pObject, const CString csInitialName, tdeMissingCriteria eConflict);
void fn_vWriteNameConflicts (void);
};
extern CPA_EXPORT CPA_NameManager g_oNameManager;
#endif /* __CPA_NAME_MNGR_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,56 @@
/*===================================================================
*
* Name of Objects and DLL used by Interface
*
*=================================================================*/
#ifndef __STDDLLID_H__
#define __STDDLLID_H__
/*===================================================================
* Name of Objects
*=================================================================*/
/* SectTest.dll or Sector.dll*/
#define C_szSectorTypeName "Sector"
/* GeomTest.dll or 3DGeom.dll*/
#define C_szGeometricObjectTypeName "Geometric"
#define C_sz3DFileTypeName "GeometricFile"
/* CamTest.dll*/
#define C_szCameraObjectTypeName "Camera"
/* po_test.dll*/
#define C_szPhysicalObjectTypeName "Physical"
/* ipo_test.dll : instanciated physicla object*/
#define C_szInstanciatedPhysicalObjectTypeName "InstanciatedPhysical"
#define C_szPhysicalObjectClassTypeName "PhysicalClass"
/*===================================================================
* Name of DLL
*=================================================================*/
/* Hierarchy.dll*/
#define C_szDLLHierarchyName "Hierarchy"
/* SectTest.dll or Sector.dll*/
#define C_szDLLSectorName "Sector"
/* GeomTest.dll or 3DGeom.dll*/
#define C_szDLLGeometryName "Geometry DLL"
/* CamTest.dll*/
#define C_szDLLCameraName "Camera DLL"
/* po_test.dll*/
#define C_szDLLPhysicalObjectName "Physical DLL"
/* ipo_test.dll : instanciated physical object DLL */
#define C_szDLLInstanciatedPhysicalObjectName "Instanciated Physical DLL"
/*===================================================================
*=================================================================*/
#endif /* __STDDLLID_H__*/

View File

@@ -0,0 +1,72 @@
/*===========================================================================*/
/* A3dKeyboardConfDlg.hpp : implementation of Keyboard Configuration Dialog*/
/**/
/* Version 1.0*/
/* Creation date 21/10/96*/
/* Author: Philippe Touillaud*/
/**/
/* Revision date*/
/* Author: */
/**/
/* (c) Ubi Pictures 1996*/
/**/
/*===========================================================================*/
#ifndef __A3dKeyAll_HPP__
#define __A3dKeyAll_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 "CPAKACnf.hpp"
#include "A3dVKeyT.hpp"
#include "CPAres.h"
/*///////////////////////////////////////////////////////////////////////////*/
/* A3d_KeyboardConfDlg dialog*/
class CPA_EXPORT A3d_KeyboardAllConfDlg : public CDialog
{
/* Construction*/
public:
A3d_KeyboardAllConfDlg(); /* standard constructor*/
/* Dialog Data*/
/*{{AFX_DATA(A3d_KeyboardConfDlg)*/
enum { IDD = CPA_IDD_MAINKEYB };
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(A3d_KeyboardConfDlg)*/
protected:
virtual BOOL OnInitDialog();
virtual BOOL UpdateData(BOOL bSaveToClass);
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(A3d_KeyboardConfDlg)*/
afx_msg void OnEdit(void);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* ACTIVE_EDITOR*/
#endif /* __A3dKeyAll_HPP__*/

View File

@@ -0,0 +1,118 @@
/*===========================================================================*/
/* A3dKeyboardConfDlg.hpp : implementation of Keyboard Configuration Dialog*/
/**/
/* Version 1.0*/
/* Creation date 21/10/96*/
/* Author: Philippe Touillaud*/
/**/
/* Revision date*/
/* Author: */
/**/
/* (c) Ubi Pictures 1996*/
/**/
/*===========================================================================*/
#ifndef __A3dKeyboardConfDlg_HPP__
#define __A3dKeyboardConfDlg_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 "CPAKACnf.hpp"
#include "A3dVKeyT.hpp"
#include "CPAres.h"
/*///////////////////////////////////////////////////////////////////////////*/
/* A3d_KeyboardConfDlg dialog*/
class CPA_EXPORT A3d_KeyboardConfDlg : public CDialog
{
/* Construction*/
public:
A3d_KeyboardConfDlg(CWnd* pParent, CString szName); /* standard constructor*/
/* functions*/
void mfn_vSetKAConf(const CPA_KeyActionConfiguration* p_oKAConfig)
{ ASSERT(p_oKAConfig != NULL);
m_p_oKAConfig = (CPA_KeyActionConfiguration*)p_oKAConfig;
}
void mfn_vSetStringList(CList<CString, CString> * p_oKeyStringList)
{ ASSERT(p_oKeyStringList != NULL);
m_p_oKeyStringList = p_oKeyStringList;
}
void mfn_vDetectKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
void mfn_vResetsCombinatedKey(char cChar);
/* Dialog Data*/
/*{{AFX_DATA(A3d_KeyboardConfDlg)*/
enum { IDD = CPA_IDD_KEYBOARD_CONFIGURATION };
CStatic m_oUnmodifCStatic;
A3d_VKeyTypedDetect m_oVKDetector;
CListBox m_oKeyConfCListBox;
BOOL m_bCheckCtrl;
BOOL m_bCheckShift;
BOOL m_bCheckAlt; /* CPA2 Corneliu Babiuc (ALT Key) 14-05-98 */
UINT m_uiCEditValue;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(A3d_KeyboardConfDlg)*/
protected:
virtual BOOL OnInitDialog();
virtual BOOL UpdateData(BOOL bSaveToClass);
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(A3d_KeyboardConfDlg)*/
afx_msg void mfn_vOnCheckCtrl();
afx_msg void mfn_vOnCheckShift();
afx_msg void mfn_vOnCheckAlt(); /* CPA2 Corneliu Babiuc (ALT Key) 14-05-98 */
afx_msg void mfn_vOnSelchangeConfList();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
private:
/* Members*/
CString m_szName; /* Name of dialog*/
/* to be accessed only: DO NOT MODIFY ANYTHING THROUGH THIS*/
CPA_KeyActionConfiguration* m_p_oKAConfig;
/* the list, as it appears in the CListBox*/
CList<CString, CString> * m_p_oKeyStringList;
/* for the combination management*/
char m_cCombinatedKey;
char m_cCurrentKey;
/* functions*/
void mfn_vBuildStringList(void);
void mfn_vReadKeyDef(void);
void mfn_vUpdateKeyDef(char cKey, char cFlags);
BOOL mfn_bKeyIsUsed(char cKey ,char cFlags);
void mfn_vShowKeyTyped(char cChar, char cFlags);
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* ACTIVE_EDITOR*/
#endif /* __A3dKeyboardConfDlg_HPP__*/

View File

@@ -0,0 +1,73 @@
/*=========================================================================*/
/* A3dVKeyTypedDetect.hpp : Special class for key value detection*/
/* used for keyboard configuration.*/
/**/
/* Version 1.0*/
/* Creation date 30/10/96*/
/* Author: Philippe Touillaud*/
/**/
/* Revision date*/
/* Author: */
/**/
/* (c) Ubi Pictures 1996*/
/**/
/*=========================================================================*/
#ifndef __A3dVKeyTypedDetect_HPP__
#define __A3dVKeyTypedDetect_HPP__
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
/*///////////////////////////////////////////////////////////////////////////*/
/* A3d_VKeyTypedDetect window*/
class CPA_EXPORT A3d_VKeyTypedDetect : public CListBox
{
/* Construction*/
public:
A3d_VKeyTypedDetect();
/* Attributes*/
public:
/* Operations*/
public:
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(A3d_VKeyTypedDetect)*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
public:
virtual ~A3d_VKeyTypedDetect();
/* Generated message map functions*/
protected:
/*{{AFX_MSG(A3d_VKeyTypedDetect)*/
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); /* CPA2 Corneliu Babiuc (Alt Key) 14-05-98 */
afx_msg void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); /* END CPA2 Corneliu Babiuc (Alt Key) 14-05-98 */
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __A3dVirtualKeyTypedButton_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,182 @@
/*=========================================================================*/
/* CAMDLLb.hpp : base of camera DLL*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 19/03/97*/
/* 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 __CAMDLLB_HPP__
#define __CAMDLLB_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 "objDLLb.hpp"
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/* CPA_CameraCoords class : used to give coordinates to the camera*/
typedef enum {WorldCoordinates,CameraCoordinates} tdeAxisSystem;
class CPA_EXPORT CPA_CameraCoords
{
private:
tdeAxisSystem m_eAxisSystem;
float m_fX;
float m_fY;
float m_fZ;
public:
CPA_CameraCoords(tdeAxisSystem eAxis = WorldCoordinates, float fX = 0, float fY = 0, float fZ = 0);
void SetX(float fX) { m_fX = fX;};
void SetY(float fY) { m_fY = fY;};
void SetZ(float fZ) { m_fZ = fZ;};
void SetXYZ(float fX, float fY, float fZ);
void SetAxisSystem(tdeAxisSystem eAxis) { m_eAxisSystem = eAxis;};
float GetX() {return m_fX;};
float GetY() {return m_fY;};
float GetZ() {return m_fZ;};
tdeAxisSystem GetAxisSystem() {return m_eAxisSystem;};
void SetCoords(MTH3D_tdstVector *p_stVector);
void SetCoords(POS_tdstCompletePosition *p_stMatrix);
void GetCoords(MTH3D_tdstVector &r_stVector);
void GetCoords(POS_tdstCompletePosition &r_stMatrix);
};
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
typedef enum {rPoint, rSuperObject, rCamera, rTarget} tdeRotationCenterType;
typedef enum {tPoint, tSuperObject, tNone} tdeTargetType;
typedef enum {Relative, Absolute} tdeCoordsType;
typedef enum {X_Camera, Y_Camera, Z_Camera, X_World, Y_World, Z_World, X_Custom, Y_Custom, Z_Custom} tdeAxis;
/* ANNECY MT NewInterface 26/03/98 {*/
typedef enum {DisplayNone,DisplayDownRight,DisplayDownLeft} tdeDisplayReferential;
/* ENDANNECY MT NewInterface }*/
class CPA_DialogBar;
/*##########################################################################*/
/* camera DLL Base Class*/
class CPA_EXPORT CPA_CameraDLLBase : public CPA_ObjectDLLBase
{
public:
/* constructor*/
CPA_CameraDLLBase() {};
~CPA_CameraDLLBase() {};
/* add here all camera-specific functions*/
virtual void SendDialogBarCommandToCamera(CPA_BaseObject *p_oCamera,UINT nID){};
virtual void Activate(CPA_BaseObject *p_oCamera, DEV_ViewPort3D *p_oViewPort, CPA_DialogBar *p_oPopUpParent, CPoint oPos){};
virtual void Disactivate(CPA_BaseObject *p_oCamera){};
virtual BOOL IsActive(CPA_BaseObject *p_oCamera) {return FALSE;};
virtual void SetRotationAxisSystem(CPA_BaseObject *p_oCamera, tdeAxisSystem eSystem){};
virtual void SetTranslationAxisSystem(CPA_BaseObject *p_oCamera, tdeAxisSystem eSystem){};
virtual tdeAxisSystem GetRotationAxisSystem(CPA_BaseObject *p_oCamera){return WorldCoordinates;};
virtual tdeAxisSystem GetTranslationAxisSystem(CPA_BaseObject *p_oCamera){return WorldCoordinates;};
virtual BOOL SetRotationCenterType(CPA_BaseObject *p_oCamera, tdeRotationCenterType eRotCenterType){return FALSE;};
virtual tdeRotationCenterType GetRotationCenterType(CPA_BaseObject *p_oCamera){return rCamera;};
virtual tdeRotationCenterType GetEffectiveRotationCenterType(CPA_BaseObject *p_oCamera){return rCamera;};
virtual BOOL SetTargetType(CPA_BaseObject *p_oCamera, tdeTargetType eTargetType){return FALSE;};
virtual tdeTargetType GetTargetType(CPA_BaseObject *p_oCamera){return tNone;};
virtual BOOL ZoomOnTarget(CPA_BaseObject *p_oCamera, CPA_SuperObject *pTarget){return FALSE;};
virtual void SetRotationCenterPoint(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oRotationCenter, tdeCoordsType eType = Absolute){};
virtual BOOL SetRotationCenterSuperObject(CPA_BaseObject *p_oCamera, CPA_SuperObject *p_oSuperObject){return FALSE;};
virtual BOOL GetRotationCenter(CPA_BaseObject *p_oCamera, MTH3D_tdstVector &r_stCenter){return FALSE;};
virtual void SetTargetPoint(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oRotationCenter){};
virtual BOOL SetTargetSuperObject(CPA_BaseObject *p_oCamera, CPA_SuperObject *p_oSuperObject){return FALSE;};
virtual BOOL GetTarget(CPA_BaseObject *p_oCamera, MTH3D_tdstVector &r_stTarget){return FALSE;};
virtual void Translate(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oOffset, BOOL bUserDefinedAxis = FALSE){};
virtual void SetPosition(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oPos = NULL){};
virtual void Rotate(CPA_BaseObject *p_oCamera, tdeAxis eAxis, double dAngle){};
virtual void SetRotation(CPA_BaseObject *p_oCamera, double dAngleX = 0, double dAngleY = 0, double dAngleZ = 0){};
virtual void Update(CPA_BaseObject *p_oCamera){};
virtual CPA_SuperObject *CreateDefaultCamera(){return NULL;};
virtual void InsertCameraInHierarchy(CPA_SuperObject *p_oCameraSO){return;};
virtual void ShowDialogBar(CPA_BaseObject *p_oCamera){};
virtual void HideDialogBar(CPA_BaseObject *p_oCamera){};
virtual CPA_BaseObject *CopySlotCamera(CPA_BaseObject* p_oCamera){return NULL;};
virtual void CameraToWorldCoordinates_Point(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
virtual void CameraToWorldCoordinates_Vector(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
virtual void WorldToCameraCoordinates_Point(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
virtual void WorldToCameraCoordinates_Vector(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
virtual void GetMatrix(CPA_BaseObject *_p_oCamera, POS_tdstCompletePosition *p_oMatrix){};
virtual void SetMatrix(CPA_BaseObject *_p_oCamera, POS_tdstCompletePosition *p_oMatrix){};
/* camera - viewport communication specific functions*/
virtual BOOL SendKeyDownToCamera (CPA_BaseObject *p_oCamera, UINT nChar, UINT nRepCnt, UINT nFlags) {return FALSE;};
virtual BOOL SendKeyUpToCamera (CPA_BaseObject *p_oCamera, UINT nChar, UINT nRepCnt, UINT nFlags) {return FALSE;};
virtual BOOL SendMouseMoveToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, MTH3D_tdstVector *p_stVect) { return FALSE; };
virtual BOOL SendLButtonDblClkToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
virtual BOOL SendRButtonDblClkToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
virtual BOOL SendLButtonDownToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
virtual BOOL SendRButtonDownToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
virtual BOOL SendLButtonUpToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos) { return FALSE; };
virtual BOOL SendRButtonUpToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos) { return FALSE; };
virtual BOOL OnToolTipNotify (CPA_BaseObject *p_oCamera, TOOLTIPTEXT *p_TTT, UINT nID) { return FALSE;};
virtual void DestroyCamera (CPA_SuperObject *p_oCamera) {};
/* ANNECY MT NewInterface 26/03/98 {*/
virtual void SetReferentialDisplayMode (tdeDisplayReferential eDisplayMode){};
virtual tdeDisplayReferential GetReferentialDisplayMode () {return DisplayNone;};
/* ENDANNECY MT NewInterface }*/
};
#endif /* ACTIVE_EDITOR*/
#endif /* __CAMDLLB_HPP__*/

View File

@@ -0,0 +1,116 @@
#ifndef __CPA_CAMSLOTS_HPP__
#define __CPA_CAMSLOTS_HPP__
#include <afxtempl.h>
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
typedef enum {MakeACopy = 0,DontMakeACopy} tdeMakeCopy;
/*Stefan Dumitrean 1-07-98 ( slots )*/
typedef struct
{
CString csEditorBaseName;
CString csSelectedInstanceName;
}tdstExtraSlotInfo;
/*End Stefan Dumitrean 1-07-98 ( slots )*/
class CPA_BaseObject;
class CPA_CameraDLLBase;
class CPA_EXPORT CPA_CameraSlots
{
private:
typedef struct
{
CPA_BaseObject *p_oCamera;
CString csName;
BOOL bReserved;
BOOL bActive;
/*Stefan Dumitrean 1-07-98 ( slots )*/
tdstExtraSlotInfo stExtraInfo;
/*End Stefan Dumitrean 1-07-98 ( slots )*/
} tdstSlot;
CArray<tdstSlot,tdstSlot> m_oCameraSlots;
CPA_CameraDLLBase *m_p_oInterface;
long m_lPrevCamSlotNum;
/*Stefan Dumitrean 22-06-98 ( slots )*/
long m_lCurrentSlot;
long m_lSpecialSlotForModeChange;
/*End Stefan Dumitrean 22-06-98 ( slots )*/
public:
CPA_CameraSlots(void);
~CPA_CameraSlots(void);
/*Stefan Dumitrean 24-06-98 ( slots )*/
long SaveCameraInSlot(long lNum,CString csName,CPA_BaseObject *p_oCamera,tdeMakeCopy eCopy = MakeACopy);
/*End Stefan Dumitrean 24-06-98 ( slots )*/
CPA_BaseObject *GetCameraFromSlot(long lNum,tdeMakeCopy eCopy = MakeACopy);
/*CPA2 Corneliu Babiuc 05-05-98*/
/*function to get the number of alocated slots*/
long GetTotalSlotsNumber () {return m_oCameraSlots.GetSize();}
/*function to get slot number from name of the slot*/
long GetSlotNumber(CString csSlotName);
/*function to get slot name from its number*/
CString GetSlotName(long lSlotNum) {ASSERT(lSlotNum<m_oCameraSlots.GetSize());
return m_oCameraSlots[lSlotNum].csName;}
/*END CPA2 Corneliu Babiuc 05-05-98*/
/*Stefan Dumitrean 2-07-98 ( slots )*/
void SetCurrentSlot( CString csSlotName );
void SetCurrentSlot( long lSlotNum );
long GetCurrentSlot( );
BOOL IsSlotReserved( CString csSlotName );
BOOL IsSlotReserved( long lSlotNum );
long FindFirstEmptySlot( );
long SetSpecialSlotNr( long lSlotNum ) { m_lSpecialSlotForModeChange = lSlotNum; return lSlotNum; }
BOOL IsSpecialSlot( long lSlotNum ) { return ( m_lSpecialSlotForModeChange == lSlotNum ); }
long GetSpecialSlotNr( ) { return m_lSpecialSlotForModeChange; }
CString GetCurrentEditorName();
CString GetCurrentSelectionName();
void SetCurrentEditorForSlotNr( long lSlotNum );
void SetCurrentSelectionForSlotNr( long lSlotNum );
CString GetEditorNameForSlotNr( long lSlotNum );
CString GetSelectionNameForSlotNr( long lSlotNum );
void SetEditorNameForSlotNr( long lSlotNum, CString csName );
void SetSelectionNameForSlotNr( long lSlotNum, CString csName );
/*End Stefan Dumitrean 2-07-98 ( slots )*/
void SetInterface(CPA_CameraDLLBase *p_oInterface) { m_p_oInterface = p_oInterface;};
/*Stefan Dumitrean 22-06-98 ( slots )*/
CPA_BaseObject *GetCameraFromPopUpMenu( long &lSlotNum, CWnd *p_oParent, tdeMakeCopy eCopy = MakeACopy );
/*End Stefan Dumitrean 22-06-98 ( slots )*/
long GetSlotFromPopUpMenu(CWnd *p_oParent);
long ActivatePrevCamTip();
BOOL IsPrevCamTipActive() { return (m_lPrevCamSlotNum != -1);};
long GetPrevCamSlot() { return m_lPrevCamSlotNum; };
long ReserveASlot(CString csName);
BOOL IsEmpty(long lSlotNum);
};
#endif /*ACTIVE_EDITOR*/
#endif /* __CPA_CAMSLOTS_HPP__*/

View File

@@ -0,0 +1,123 @@
/*=============================================================================
*
* Filename: CMDlg.h
* Version: 1.0
* Date: 20/01/97
* Author: V.L.
*
* Description: dialog that show incoherence
*
*===========================================================================*/
#ifndef __CMDLG_H__
#define __CMDLG_H__
#ifdef ACTIVE_EDITOR
#include "CPARes.h"
#include "CoheMngr.hpp"
/******************************************************************************
*
* define for order in list and modes
*
******************************************************************************/
#define C_cAlpha 0
#define C_cIncoherence 1
#define C_cDLL 2
#define C_CM_Mode_cIncoherence 0
#define C_CM_Mode_cFather 1
#define C_CM_Mode_cChild 2
#define C_CM_cNumberOfModes 3
#define C_szAllDLLName "_All Editors_"
/******************************************************************************
*
* structure for the different modes data
*
******************************************************************************/
typedef struct tdstModeData_
{
CTreeCtrl *p_oTree;
CComboBox *p_oCombo;
char cOrder;
char szOrderName[ 25 ];
} tdstModeData;
/******************************************************************************
*
* CCoherenceManagerDlg dialog class definition
*
******************************************************************************/
class CCoherenceManagerDlg : public CDialog
{
private:
char m_cMode;
tdstModeData m_a_stModeData[ C_CM_cNumberOfModes ];
BOOL m_bBitmapInit;
CBitmap m_a_oBitmap[5];
CImageList m_oBitmapList;
CFatherMap *m_p_oIncoherenceMap;
CFatherMap *m_p_oFatherMap;
CChildMap *m_p_oChildMap;
CChildMap *m_p_oDeletedChildMap;
CPA_List<CPA_BaseObject> m_oReachObjList;
CPA_BaseObject *m_p_oSelectedObject;
RECT m_stWindowPos;
/* Construction*/
public:
enum { IDD = CPA_IDD_DIALOG_COHERENCEMANAGER };
CCoherenceManagerDlg(CWnd* pParent = NULL); /* standard constructor*/
~CCoherenceManagerDlg();
void m_fn_vSetIncoherenceMap ( CFatherMap *_p_oIncoherenceMap ) { m_p_oIncoherenceMap = _p_oIncoherenceMap; }
void m_fn_vSetFatherMap ( CFatherMap *_p_oFatherMap ) { m_p_oFatherMap = _p_oFatherMap; }
void m_fn_vSetChildMap ( CChildMap *_p_oChildMap ) { m_p_oChildMap = _p_oChildMap; }
void m_fn_vSetDeletedChildMap ( CChildMap *_p_oDeletedChildMap ) { m_p_oDeletedChildMap = _p_oDeletedChildMap; }
protected:
virtual void DoDataExchange(CDataExchange* pDX);
/* Implementation*/
protected:
void m_fn_vFatherList( CFatherMap *_p_oMap, char cMode, char *szDLLName );
void m_fn_vChildList( CChildMap *_p_oMap, char cMode, char *szDLLName );
void m_fn_vCallDLL(CPA_BaseObject *_p_oObject);
void m_fn_vSortAlpha( char cMode );
void m_fn_vSortIncoherence( char cMode );
void m_fn_vSortDLL( char cMode );
virtual BOOL OnInitDialog();
BOOL PreTranslateMessage(MSG* pMsg);
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
afx_msg void OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnRadioAlpha();
afx_msg void OnRadioIncoherence();
afx_msg void OnRadioDLL();
afx_msg void OnComboDLLFatherSelChange();
afx_msg void OnComboDLLIncoherenceSelChange();
afx_msg void OnComboDLLChildSelChange();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing( UINT nSide, LPRECT lpRect );
afx_msg void OnDestroy();
DECLARE_MESSAGE_MAP()
};
#endif /*ACTIVE_EDITOR*/
#endif /*__CMDLG_H__*/

View File

@@ -0,0 +1,230 @@
/*=============================================================================
*
* Filename: CoheMngr.hpp
* Version: 1.0
* Date: 16/01/97
* Author: V.L.
*
* Description: class to manage a list of couple of object to try to
* maintain coherence when an object is deleted
*
*===========================================================================*/
#ifndef __COHEMNGR_HPP__
#define __COHEMNGR_HPP__
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#ifdef ACTIVE_EDITOR
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#include <afxtempl.h>
#include "acp_base.h"
#include "CPABaseO.hpp"
#include "CPAEditB.hpp"
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
class CCoherenceManagerDlg;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#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
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*
=======================================================================================
internal structures to store link information
=======================================================================================
*/
struct tdstFather_;
/*
* structure that describe an object as a child
*/
typedef struct tdstChild_
{
CPA_BaseObject *m_p_oChild;
CList<struct tdstFather_ *, struct tdstFather_ *> m_oFatherList;
}tdstChild;
/*
* structure that describe a linked child (it's a child with a counter)
*/
typedef struct tdstLinkedChild_
{
tdstChild *m_p_stChild;
unsigned long m_ulLinkWeight;
}tdstLinkedChild;
/*
* structure that describe an object as a father
*/
typedef struct tdstFather_
{
CPA_BaseObject *m_p_oFather;
CList<tdstLinkedChild *, tdstLinkedChild *> m_oChildList;
CList<char *, char *> m_oDestroyedChildList;
} tdstFather;
/*
=======================================================================================
TYPEDEF
=======================================================================================
*/
/*
* Maps
*/
typedef CMap<CPA_BaseObject *, CPA_BaseObject *, tdstChild *, tdstChild *> CChildMap;
typedef CMap<CPA_BaseObject *, CPA_BaseObject *, tdstFather *, tdstFather *> CFatherMap;
/*
* List
*/
typedef CList< tdstChild *, tdstChild *> CChildList;
typedef CList< tdstFather *, tdstFather *> CFatherList;
typedef CList< tdstLinkedChild *, tdstLinkedChild *> CLinkedChildList;
/*
=======================================================================================
DEFINES
=======================================================================================
*/
/*
* For child state when we call DetachFather function
*/
#define C_cChildIsRestored 0
#define C_cChildIsDeleted 1
#define C_cChildIsDestroyed 2
/*
* for links type
*/
#define C_cLinkedAsValidChild 0x01
#define C_cLinkedAsDeletedChild 0x02
#define C_cLinkedAsChild 0x03 /*(C_cLinkedAsValidChild || C_cLinkedAsDeletedChild)*/
#define C_cLinkedAsValidFather 0x04
#define C_cLinkedAsIncoherentFather 0x08
#define C_cLinkedAsFather 0x0C /*(C_cLinkedAsValidFather || C_cLinkedAsIncoherentFather)*/
#define C_cLinkedAsChildAndFather 0x0F /*(C_cLinkedAsChild || C_cLinkedAsFather)*/
/*
=======================================================================================
coherence manager class
=======================================================================================
*/
class CPA_EXPORT CCoherenceManager
{
/*
* private data members
*/
private:
CChildMap m_oChildMap; /* map of all object who are child*/
CFatherMap m_oFatherMap; /* map of all object who are father*/
CChildMap m_oDeletedChildMap; /* map of all deleted child*/
CFatherMap m_oIncoherenceMap; /* map of all object who are father and have a child that*/
/* have been destroyed*/
CCoherenceManagerDlg *m_p_oCMDlg; /* dialog box to show incoherence*/
BOOL m_bShowAlwaysDlg;
/*
* private functions
*/
private:
/* ==> find object in a map as father or child */
tdstFather *m_fnp_stFindFather( CFatherMap *_p_oMap, CPA_BaseObject *_p_oFather );
tdstChild *m_fnp_stFindChild( CChildMap *_p_oMap, CPA_BaseObject *_p_oChild );
/* ==> find object in a list as father or child */
tdstFather *m_fnp_stFindFather( CFatherList *_p_oList, CPA_BaseObject *_p_oFather );
tdstChild *m_fnp_stFindChild( CChildList *_p_oList, CPA_BaseObject *_p_oChild );
/* ==> find child in a linked child list */
tdstLinkedChild *m_fnp_stFindLinkedChild( CLinkedChildList *_p_oList, tdstChild *_p_stChild);
tdstLinkedChild *m_fnp_stFindLinkedChild( CLinkedChildList *_p_oList, CPA_BaseObject *_p_oChild);
/* ==> is object membership of a list */
BOOL m_fn_bIsFather( CFatherList *_p_oList, tdstFather *_p_stFather );
BOOL m_fn_bIsChild ( CChildList *_p_oList, tdstChild *_p_stChild );
BOOL m_fn_bIsChild ( CLinkedChildList *_p_oList, tdstChild *_p_stChild );
/* ==> remove objects */
void m_fn_vRemoveAllFather( CFatherMap *_p_oMap );
void m_fn_vRemoveAllChild( CChildMap *_p_oMap );
/* ==> remove links */
void m_fn_vDetachAllChild( tdstFather *_p_stFather, CChildMap *_p_oChildMap );
BOOL m_fn_bDetachAllFather( tdstChild *_p_stChild, char _cChildState );
/*
* public functions
*/
public:
/* ==> constructor / destructor */
CCoherenceManager();
~CCoherenceManager();
/* ==> option setting */
void m_fn_vSetAutomaticCoherenceManagerDialog( BOOL bIsAuto ) { m_bShowAlwaysDlg = bIsAuto; }
BOOL m_fn_bIsCoherenceManagerDialogAutomatic( void ) { return m_bShowAlwaysDlg; }
/* ==> getting pointer on map */
CChildMap *m_fnp_oGetChildMap( void ) { return &m_oChildMap; }
CFatherMap *m_fnp_oGetFatherMap( void ) { return &m_oFatherMap; }
CChildMap *m_fnp_oGetDeletedChildMap( void ) { return &m_oDeletedChildMap; }
CFatherMap *m_fnp_oGetIncoherenceMap( void ) { return &m_oIncoherenceMap; }
/* ==> getting pointer on internal structures */
tdstFather *m_fnp_stGetFather( CPA_BaseObject *_p_oFather ) { return m_fnp_stFindFather( &m_oFatherMap, _p_oFather ); }
tdstChild *m_fnp_stGetChild( CPA_BaseObject *_p_oChild ) { return m_fnp_stFindChild( &m_oChildMap, _p_oChild); }
/* ==> dump a list */
void m_fn_vDumpListsInFile( char *_szFile );
/* ==> link management */
void m_fn_vAddALink( CPA_BaseObject *_p_oFather, CPA_BaseObject *_p_oChild );
void m_fn_vRemoveLinks( CPA_BaseObject *_p_oFather, CPA_BaseObject *_p_oChild, unsigned long _ulNbLinkRemoved );
void m_fn_vRemoveALink( CPA_BaseObject *_p_oFather, CPA_BaseObject *_p_oChild );
void m_fn_vRemoveAllLinks( CPA_BaseObject *_p_oFather, CPA_BaseObject *_p_oChild );
void m_fn_vRemoveAllLinks( CPA_BaseObject *_p_oObject, char _cLinkType );
unsigned long m_fn_ulGetLinkWeight( CPA_BaseObject *_p_oFather, CPA_BaseObject *_p_oChild);
/* ==> object state */
BOOL m_fn_bIsFather( CPA_BaseObject *_p_oFather );
BOOL m_fn_bIsChild( CPA_BaseObject *_p_oChild );
BOOL m_fn_bIsIncoherent( CPA_BaseObject *_p_oFather );
/* ==> getting list of father/child for an object */
int m_fn_iGetChildList( CPA_BaseObject *_p_oFather, CList< CPA_BaseObject *, CPA_BaseObject *> *_p_oChildList );
int m_fn_iGetChildCount( CPA_BaseObject *_p_oFather );
int m_fn_iGetDeletedChildList( CPA_BaseObject *_p_oFather, CList< CPA_BaseObject *, CPA_BaseObject *> *_p_oDeletedChildList );
int m_fn_iGetDestroyedChildNameList( CPA_BaseObject *_p_oFather, CList< char *, char *> *_p_oDestroyedChildNameList );
int m_fn_iGetFatherCount( CPA_BaseObject *_p_oChild );
int m_fn_iGetFatherList( CPA_BaseObject *_p_oChild, CList< CPA_BaseObject *, CPA_BaseObject *> *_p_oFatherList );
int m_fn_iGetInvalidFatherList( CPA_BaseObject *_p_oChild, CList< CPA_BaseObject *, CPA_BaseObject *> *_p_oInvalidFatherList );
/* ==> modification of an object */
void m_fn_vDeleteObject( CPA_BaseObject *_p_oObject );
void m_fn_vRestoreObject( CPA_BaseObject *_p_oObject );
void m_fn_vDestroyObject( CPA_BaseObject *_p_oObject );
void m_fn_vNotifyObjectModification( CPA_BaseObject *_p_oObject, unsigned long _ulData );
/* ==> Incoherence list status */
BOOL m_fn_bThereIsIncoherence( void );
/* ==> Incoherence dialog */
void m_fn_vShowIncoherence( void );
};
extern CPA_EXPORT CCoherenceManager g_oCoherenceManager;
#endif /* ACTIVE_EDITOR*/
#endif /*__COHEMNGR_HPP__*/

View File

@@ -0,0 +1,47 @@
/* CPAAbout.hpp : header file*/
/**/
#ifndef __CPAABOUT_HPP__
#define __CPAABOUT_HPP__
#include "cpares.h"
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DlgAbout dialog*/
class CPA_MainWorld;
class CPA_DlgAbout : public CDialog
{
/* Construction*/
public:
CPA_DlgAbout(CWnd* pParent = NULL); /* standard constructor*/
void fn_vSetMainWorld(CPA_MainWorld *_p_oMainWorld) { m_p_oMainWorld = _p_oMainWorld; }
/* Dialog Data*/
/*{{AFX_DATA(CPA_DlgAbout)*/
enum { IDD = CPA_IDD_ABOUT };
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DlgAbout)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
CPA_MainWorld *m_p_oMainWorld;
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DlgAbout)*/
virtual BOOL OnInitDialog();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
void fn_vFillEditorList();
};
#endif /* __CPAABOUT_HPP__*/

View File

@@ -0,0 +1,96 @@
/*=========================================================================*/
/* (c) Ubi Studio 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* VINCENT GRECO OR CHRISTOPHE BEAUDET.*/
/*=========================================================================*/
#ifndef __CPACONST_HPP__
#define __CPACONST_HPP__
/*###########################################*/
/* CPA Version*/
#define C_szCPAVersion "V 6.0.1 23/09/98"
/*############################################*/
/* Data identifiers for Drag & Drop operations*/
/* 0 and after 32768 for CPA const*/
/*############################################*/
#define DD_Invalid 0
/*###########################################*/
/* Action identifiers for keyboard processing*/
/* 0 and after 32768 for CPA const*/
/*###########################################*/
#define KA_Invalid 0
#ifdef OLD_CAMERA
/* For the multidevice 3D*/
#define KA_RotateX 32768
#define KA_InvRotateX 32769
#define KA_RotateY 32770
#define KA_InvRotateY 32771
#define KA_RotateZ 32772
#define KA_InvRotateZ 32773
#define KA_MoveLeft 32774
#define KA_MoveRight 32775
#define KA_MoveUp 32776
#define KA_MoveDown 32777
#define KA_ZoomAdd 32778
#define KA_ZoomSub 32779
#define KA_CenterObj 32780
#define KA_BackgroundColorAddRed 32781
#define KA_BackgroundColorSubRed 32782
#define KA_BackgroundColorAddGreen 32783
#define KA_BackgroundColorSubGreen 32784
#define KA_BackgroundColorAddBlue 32785
#define KA_BackgroundColorSubBlue 32786
#define KA_MouseMoveCamera 32787
#define KA_FreeView 32788
#define KA_FrontView 32789
#define KA_BackView 32790
#define KA_RightView 32791
#define KA_LeftView 32792
#define KA_TopView 32793
#define KA_BottomView 32794
#define KA_ZoomOnObj 32795
#define KA_ConfigureKeyboard 32796
#define KA_CameraSavePos0 32797
#define KA_CameraSavePos1 32798
#define KA_CameraSavePos2 32799
#define KA_CameraSavePos3 32800
#define KA_CameraSavePos4 32801
#define KA_CameraSavePos5 32802
#define KA_CameraSavePos6 32803
#define KA_CameraSavePos7 32804
#define KA_CameraSavePos8 32805
#define KA_CameraSavePos9 32806
#define KA_CameraSaveEnginePos 32807
#define KA_CameraRestorePos0 32808
#define KA_CameraRestorePos1 32809
#define KA_CameraRestorePos2 32810
#define KA_CameraRestorePos3 32811
#define KA_CameraRestorePos4 32812
#define KA_CameraRestorePos5 32813
#define KA_CameraRestorePos6 32814
#define KA_CameraRestorePos7 32815
#define KA_CameraRestorePos8 32816
#define KA_CameraRestorePos9 32817
#define KA_CameraRestorePosNext 32818
#define KA_CameraRestorePosPrev 32819
#define KA_MouseRotateCamera 32820
#else
#define KA_BackgroundColorAddRed 32781
#define KA_BackgroundColorSubRed 32782
#define KA_BackgroundColorAddGreen 32783
#define KA_BackgroundColorSubGreen 32784
#define KA_BackgroundColorAddBlue 32785
#define KA_BackgroundColorSubBlue 32786
#define KA_ConfigureKeyboard 32796
#define KA_PropSizing 32797
#endif
#endif /* __CPACONST_HPP__*/

View File

@@ -0,0 +1,80 @@
/*=========================================================================*/
/* CPACont.hpp : main header file for the CPA_Contact class*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 13/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 __CPACONT_HPP__
#define __CPACONT_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 "CPADllb.hpp"
class DEV_MultiDevice;
class CPA_Interface;
/*#########################*/
/* Definition of base frame*/
/*#########################*/
class CPA_EXPORT CPA_Contact : public CObject
{
DECLARE_DYNCREATE(CPA_Contact)
protected:
DEV_MultiDevice *m_p_oDevice;
public:
CPA_Contact(DEV_MultiDevice *p_oDevice = NULL);
~CPA_Contact();
void SetDevice(DEV_MultiDevice *p_oDevice) { m_p_oDevice = p_oDevice;}
DEV_MultiDevice *GetDevice() { return m_p_oDevice; }
CPA_Interface * GetInterface (void);
virtual BOOL _OnCommand (UINT);
virtual BOOL _OnUpdateCommandUI (CCmdUI *);
virtual BOOL _OnKeyDown (UINT, UINT, UINT);
virtual BOOL _OnKeyUp (UINT, UINT, UINT);
virtual BOOL _OnMouseMove (UINT, tdstMousePos *, MTH3D_tdstVector *);
virtual BOOL _OnLButtonDblClk (UINT, tdstMousePos *, ACP_tdxIndex, HIE_tdstPickInfo *);
virtual BOOL _OnRButtonDblClk (UINT, tdstMousePos *, ACP_tdxIndex, HIE_tdstPickInfo *);
virtual BOOL _OnLButtonDown (UINT, tdstMousePos *, ACP_tdxIndex, HIE_tdstPickInfo *);
virtual BOOL _OnRButtonDown (UINT, tdstMousePos *, ACP_tdxIndex, HIE_tdstPickInfo *);
virtual BOOL _OnLButtonUp (UINT, tdstMousePos *);
virtual BOOL _OnRButtonUp (UINT, tdstMousePos *);
virtual BOOL _OnDragDropEnd (WPARAM wParam, LPARAM lParam);
virtual BOOL _OnDragDropMove (WPARAM wParam, LPARAM lParam);
virtual BOOL _OnDragDropLooseFocus (WPARAM wParam, LPARAM lParam);
virtual BOOL _OnDragDropGainFocus (WPARAM wParam, LPARAM lParam);
virtual void fn_vBeforeDrawingWorld(GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2, DEV_ViewPort* p3);
virtual void fn_vAddObjectsToDraw(GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2, DEV_ViewPort* p3);
virtual void fn_vAddObjectsToDraw2(GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2);
virtual BOOL fn_bPreTranslateMessage(MSG *p_stMsg);
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* ACTIVE_EDITOR*/
#endif /* __CPACONT_HPP__*/

View File

@@ -0,0 +1,99 @@
#ifndef __DRAGDROP_H__
#define __DRAGDROP_H__
#include "CPAMCapt.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
/****************************************/
/**/
/* Constants*/
/**/
#define C_ucMaxCWndRef 20 /* Max num of CWND references*/
#define WM_DRAGDROP_LOOSEFOCUS WM_USER + 0x6100
#define WM_DRAGDROP_GAINFOCUS WM_USER + 0x6101
#define WM_DRAGDROP_MOVE WM_USER + 0x6102
#define WM_DRAGDROP_END WM_USER + 0x6103
#define WM_DRAGDROP_SCROLL WM_USER + 0x6104
/**/
/* Typedef*/
/**/
typedef enum tdeDDError_
{
E_DDERR_None = 0,
E_DDERR_TooMuchRef,
E_DDERR_UnknownRef
} tdeDDError;
typedef struct tdstDDRef
{
HWND hWnd;
char *p_szEditorName;
UINT uiDataType;
BOOL bCopyOnly;
} tdstDDRef;
/**/
/* Class to communicate while doing a drag & drop*/
/**/
class CPA_EXPORT DD_Object : public CObject
#ifdef ACTIVE_EDITOR /* MR0902*/
, public CPA_MouseCapturer
#endif
{
public:
DD_Object(CWnd *pWnd = NULL, char *p_szEditorName = NULL, UINT uiDataType = 0, void *p_vData = NULL )
{
m_p_Owner = pWnd;
m_p_szEditorName = p_szEditorName;
m_uiDataType = uiDataType;
m_p_vData = p_vData;
}
private:
CWnd *m_p_Owner; /* Owner of that object*/
void *m_p_vData; /* Address of datas*/
UINT m_uiDataType; /* A data type*/
char *m_p_szEditorName; /* Editor that own the data*/
public:
POINT m_stMousePos; /* Mouse pos while moving object*/
public:
void fn_vSetOwner(CWnd *p_stWnd) { m_p_Owner = p_stWnd; }
CWnd *fn_p_stGetOwner(void) { return m_p_Owner; }
void fn_vSetData(void *p_vData) { m_p_vData = p_vData; }
void *fn_p_vGetData(void) { return m_p_vData; }
void fn_vSetDataType(UINT uiType) { m_uiDataType = uiType; }
UINT fn_uiGetDataType(void) { return m_uiDataType; }
void fn_vSetEditorName(char *p_szName) { m_p_szEditorName = p_szName; }
char *fn_p_szGetEditorName(void) { return m_p_szEditorName; }
/*any class deriving from CPA_MouseCapturer but not from CWnd must declare this method*/
/*as non usable, the argued version must be used instead to provide for a custom CWnd pointer*/
CWnd *m_p_oGrabCapture() { ASSERT(FALSE); return (CWnd *) NULL; }
};
/**/
/* Protos*/
/**/
extern tdeDDError CPA_EXPORT DD_eAddReference(HWND, char *, UINT, BOOL);
extern tdeDDError CPA_EXPORT DD_eDelReference(HWND);
extern tdeDDError CPA_EXPORT DD_eDelReferenceType(HWND, char *, UINT);
extern BOOL CPA_EXPORT DD_bSearchReference(HWND, char *, UINT, BOOL *);
extern void CPA_EXPORT DD_vDelAllReferences(void);
extern void CPA_EXPORT DD_vRegisterRect(RECT *, HWND);
extern void CPA_EXPORT DD_vSetScrollTime( UINT uiTime );
extern HWND CPA_EXPORT DD_hBeginDragDrop(RECT *, DD_Object *);
#endif /* __DRAGDROP_H__*/

View File

@@ -0,0 +1,179 @@
/*=========================================================================*/
/* CPADgBar.hpp : header file for main dialog bar*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 06/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 __CPADGBAR_HPP__
#define __CPADGBAR_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 "CPAPopTb.hpp"
/* Begin Mircea Dunka 31 August 1998 Editor Buttons on DialogBar*/
#include <afxtempl.h> /*for the new member m_oListOfEditorButtons*/
/* End Mircea Dunka 31 August 1998 Editor Buttons on DialogBar*/
/*CPA2 Corneliu Babiuc 20-05-98*/
/*definitions for constraints masks*/
#define CPA_MASK_CONSTRAINTX 1
#define CPA_MASK_CONSTRAINTY 2
#define CPA_MASK_CONSTRAINTZ 4
/*END CPA2 Corneliu Babiuc 20-05-98*/
class CPA_BaseObject;
class CPA_Interface;
class DEV_MultiDevice;
class FRMBaseMenu;
class FRMSplitter;
class CPA_EXPORT CPA_DialogBar : public CDialogBar
{
/* Begin Mircea Dunka 31 August 1998 Editor Buttons on DialogBar*/
public:
CList<CButton*,CButton*> m_oListOfEditorButtons;
/* End Mircea Dunka 31 August 1998 Editor Buttons on DialogBar*/
public:
CPA_PopUpToolBar m_oDeviceToolbar;
CPA_PopUpToolBar m_oDisplayToolbar;
CPA_BaseObject *m_p_oCamera;
HICON m_hFullSelIcon;
HICON m_hNoFullIcon;
HICON m_hDeltaSelIcon;
HICON m_hNoDeltaIcon;
HICON m_hLockSelIcon;
HICON m_hNoLockIcon;
HICON m_hTargetIcon;
HICON m_hNoTargetIcon;
HICON m_hZoomIcon;
HICON m_hNoZoomIcon;
HICON m_hMoveIcon;
HICON m_hNoMoveIcon;
CToolTipCtrl m_ToolTip;
/* Begin Silviu Simen 13 August 1998 Button for StatusBar*/
HICON m_hInsInfIcon;
HICON m_hInsCamIcon;
HICON m_hCamInfIcon;
/* End Silviu Simen 13 August 1998 Button for StatusBar*/
/* Begin Silviu Simen Select by sector*/
HICON m_hSelectBySector;
/* Begin Silviu Simen Select by sector*/
public:
CPA_DialogBar();
~CPA_DialogBar();
void SetMoveCamera( int state ); /* CPA_Ed_1 FS*/
virtual BOOL Create(CWnd* pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID);
CPA_Interface * GetInterface (void);
FRMBaseMenu * GetParentFrame();
DEV_MultiDevice * GetParentMultiDevice();
FRMSplitter * GetParentSplitter();
void fn_vUpdateAutoTarget (BOOL bAutoTarget);
void fn_vUpdateAutoZoom (BOOL bAutoZoom);
void fn_vUpdateLockButton (void);
void fn_vUpdateFullSelect (BOOL bSelect);
void fn_vUpdateDeltaSelect (BOOL bSelect);
void fn_vUpdateCenterMode (int iNewMode);
void fn_vUpdateAppearance (long lFlag);
void fn_vUpdateBVMode (int iMode);
void fn_vUpdateAxisMode (int iDisplayMode);
void fn_vUpdateConstraints (int iConstraintsMask);
/* Begin Silviu Simen 13 August 1998 Button for StatusBar*/
void fn_vUpdateStatusBarMode (int iStatusMode);
/* End Silviu Simen 13 August 1998 Button for StatusBar*/
/* Begin Mircea Dunka 2 Sept 1998 Button for Editor*/
void ShowWindow(BOOL bStat);
/* End Mircea Dunka 2 Sept 1998 Button for Editor*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogBar)*/
afx_msg void OnSelChangeComboMode();
afx_msg void OnAutoTarget();
afx_msg void OnAutoZoom();
afx_msg void OnFull();
afx_msg void OnDelta();
afx_msg void OnLockSelection();
afx_msg void OnSelChangeComboSector();
afx_msg void OnDisplayWorld(void);
afx_msg void OnDisplayVisible(void);
afx_msg void OnDisplaySector(void);
afx_msg void OnDisplayFog(void);
afx_msg void OnDisplayNoFog(void);
afx_msg void OnTextured(void);
afx_msg void OnNoTex(void);
afx_msg void OnWired(void);
afx_msg void OnWiredNoTex(void);
afx_msg void OnGrided(void);
afx_msg void OnGridedNoTex(void);
afx_msg void OnNoBV(void);
afx_msg void OnSectorBV(void);
afx_msg void OnActorBV(void);
afx_msg void OnObjectBV(void);
afx_msg void OnNoCenter(void);
afx_msg void OnMainCenters(void);
afx_msg void OnAllCenters(void);
afx_msg void OnNoConstraint(void);
afx_msg void OnConstraintX(void);
afx_msg void OnConstraintY(void);
afx_msg void OnConstraintZ(void);
afx_msg void OnConstraintXY(void);
afx_msg void OnConstraintXZ(void);
afx_msg void OnConstraintYZ(void);
afx_msg void OnOpenDevice(void);
afx_msg void OnTileHoriz(void);
afx_msg void OnTileVert(void);
afx_msg void OnCascade(void);
afx_msg void OnSplitHoriz(void);
afx_msg void OnSplitVert(void);
afx_msg void OnCommandRange(UINT nID);
afx_msg BOOL OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnMoveCamera();
afx_msg void OnDisplayNoAxis(void);
afx_msg void OnDisplayAxisDownLeft(void);
afx_msg void OnDisplayAxisDownRight(void);
BOOL PreTranslateMessage(MSG* pMsg);
afx_msg void OnStatusBarMode(void); /* Silviu Simen 13 August 1998 Button for StatusBar*/
afx_msg void OnSelectBySector(void); /* Silviu Simen Select by sector*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /* ACTIVE_EDITOR*/
#endif /* __CPADGBAR_HPP__*/

View File

@@ -0,0 +1,72 @@
/*=========================================================================*/
/* CPADgCam.hpp : For CPADgCam.cpp*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 16/07/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT */
/* VINCENT GRECO OR CHRISTOPHE BEAUDET.*/
/*=========================================================================*/
#ifndef __CPADGCAM_HPP__
#define __CPADGCAM_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 "CPARes.h"
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DialogCamera dialog*/
class CPA_EXPORT CPA_DialogCamera : public CDialog
{
/* Construction*/
public:
CPA_DialogCamera(CWnd* pParent = NULL); /* standard constructor*/
int m_iRotate; /* Value of combo set*/
int m_iTranslate; /* Value of combo set*/
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogCamera)*/
enum { IDD = CPA_IDD_CAMERA };
/* NOTE: the ClassWizard will add data members here*/
/*}}AFX_DATA*/
int DoModal(void);
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogCamera)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogCamera)*/
/* NOTE: the ClassWizard will add member functions here*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /* ACTIVE_EDITOR*/
#endif /* __CPADGCAM_HPP__*/

View File

@@ -0,0 +1,123 @@
/*=========================================================================
*
* CPAdIns.h : class CPA_DialogInsert
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_DIALOGINS_H__
#define __CPA_DIALOGINS_H__
#include "CPARes.h"
#include "CPAModel.hpp"
class CPA_Interface;
/****************************************/
#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
/****************************************/
typedef enum tdePopupMode_
{
E_pm_NoMode,
E_pm_NewModel,
E_pm_LoadList
}
tdePopupMode;
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DialogInsert dialog*/
/*///////////////////////////////////////////////////////////////////////////*/
class CPA_EXPORT CPA_DialogInsert : public CFormView
{
protected:
CPA_Interface *m_p_oInterface;
EDT_ModelView *m_pListModels;
BOOL m_bInitialised;
CString m_csTypeInsert;
int m_iNumDesc;
long m_lNbValidNew;
long m_lNbValidLoad;
tdePopupMode m_ePopupMode;
public:
/* parent editor*/
CPA_Interface * GetInterface (void) { return m_p_oInterface; }
/* view*/
EDT_ModelView * GetModelView (void) { return m_pListModels; }
/* standard constructor*/
CPA_DialogInsert(CWnd* pParent = NULL);
/* dialog*/
void fn_vInitDialog (CPA_Interface *pInterface, FRMBase *pFrame);
void fn_vInitComboType (CString csListName = "");
void fn_vReinitListModel (void);
void fn_vUpdateListModel (void);
void fn_vSetCurrentListModel (CString csListName);
CString fn_csGetCurrentListModel (void) { return m_csTypeInsert; }
void fn_vLoadListModels (CPA_ObjectDLLBase *p_oDLL);
void fn_vLoadNewModel (CPA_ObjectDLLBase *p_oDLL);
CPA_ObjectDLLBase * GetSingleDllForLoad (void);
CPA_ObjectDLLBase * GetSingleDllForNew (void);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogInsert)*/
enum { IDD = CPA_IDD_DIALOGINSERT };
CButton m_cNewModel;
CButton m_cDelModel;
CButton m_cModelIcon;
CButton m_cSaveList;
CButton m_cLoadList;
CComboBox m_cComboType;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogInsert)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogInsert)*/
afx_msg void OnSelchangeCombotype();
afx_msg void OnNewModel();
afx_msg void OnDelModel();
afx_msg void OnModelIcon();
afx_msg void OnSaveList();
afx_msg void OnLoadList();
afx_msg void OnSize(UINT,int,int);
afx_msg void OnDestroy();
BOOL OnCommand(WPARAM, LPARAM);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__CPA_DIALOGINS_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,76 @@
/*=========================================================================
*
* CPAdlang.h : class CPA_DialogLanguage
*
*
* Version 1.0
* Creation date
* Revision date
*
* Xavier Billault
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPADLANG_H__
#define __CPADLANG_H__
/****************************************/
#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
/****************************************/
#include "CPARes.h"
class CPA_Interface;
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DialogLanguage dialog*/
class CPA_DialogLanguage : public CDialog
{
private:
CStringList *m_pcslLanguageList;
CPA_Interface *m_pclInterface;
public:
CString m_csLanguage;
public:
/* standard constructor*/
CPA_DialogLanguage(CPA_Interface *,CStringList *,CWnd* pParent = NULL);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogLanguage)*/
enum { IDD = CPA_IDD_LANG_CHOICE };
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogLanguage)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogLanguage)*/
virtual void OnOK();
virtual BOOL OnInitDialog();
afx_msg void OnSave();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__CPADLANG_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,273 @@
/*=========================================================================
*
* CPAdList.h : class CPA_DialogList
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_DIALOGLIST_H__
#define __CPA_DIALOGLIST_H__
/****************************************/
#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
/****************************************/
/* mode : tree or list*/
typedef enum tdeListDrawMode_
{
E_ldm_Tree,
E_ldm_List
}
tdeListDrawMode;
/* update action*/
typedef enum tdeListReinitMode_
{
E_lrm_ReinitList,
E_lrm_ChangeSelection,
E_lrm_GoToChild,
E_lrm_GoToParent
}
tdeListReinitMode;
/* control position*/
typedef enum tdeListControlPos_
{
E_lcp_Center,
E_lcp_AdjustWidth,
E_lcp_AdjustAll
}
tdeListControlPos;
#include "CPARes.h"
#include "CPAListB.hpp"
#include "CPAdLbox.hpp"
#include "CPAdTree.hpp"
class CPA_EditorBase;
class CPA_SuperObject;
class CPA_DialogList;
/*#################################################################################*/
/* Lists for Dialog */
/*#################################################################################*/
/*===========================================================================
* Description: Class for the Lists of Dialog
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_ListForDialog : public CObject
{
protected:
CPA_BaseObject *m_pTreeRoot; /* Root for the Tree*/
CPA_BaseObjectList *m_pSortedList; /* List for the ListBox */
CImageList *m_pIconList; /* List of icons*/
CImageList *m_pStateList; /* List of state icons*/
CString m_csName; /* Name in the ComboBox*/
tdeListDrawMode m_eDrawMode; /* C_List or C_Tree*/
tdeListOrder m_eListOrder; /* Default order */
long m_lDrawStyle; /* current style;*/
BOOL m_bCanChangeOrder; /* Flag for popup*/
BOOL m_bCanChangeStyle; /* Flag for popup*/
public:
/* constructors*/
CPA_ListForDialog (CString csName, CPA_BaseObjectList *pListObjects,
CImageList *pIconList, CImageList *pStateList = NULL,
tdeListOrder eDefaultOrder = E_lo_Alpha, BOOL bCanChangeOrder = TRUE,
long lDefaultStyle = C_lDrawName, BOOL bCanChangeStyle = TRUE);
CPA_ListForDialog (CString csName, CPA_BaseObject *pTreeRoot,
CImageList *pIconList, CImageList *pStateList = NULL);
~CPA_ListForDialog (void);
/* accessing members*/
CPA_BaseObjectList * GetSortedList (void) { return m_pSortedList; }
CPA_BaseObject * GetRoot (void) { return m_pTreeRoot; }
CImageList * GetIconList (void) { return m_pIconList; }
CImageList * GetStateList (void) { return m_pStateList; }
tdeListDrawMode GetMode (void) { return m_eDrawMode; }
tdeListOrder GetOrder (void) { return m_eListOrder; }
CString GetName (void) { return m_csName; }
long GetStyle (void) { return m_lDrawStyle; }
BOOL fn_bCanChangeOrder (void) { return m_bCanChangeOrder; }
BOOL fn_bCanChangeStyle (void) { return m_bCanChangeStyle; }
/* setting members*/
void SetTreeRoot (CPA_BaseObject *pNewRoot) { m_pTreeRoot = pNewRoot; }
void SetListObjects (CPA_BaseObjectList *pNewList) { m_pSortedList = pNewList; }
void SetIconList (CImageList *pNewIcons) { m_pIconList = pNewIcons; }
void SetStateList (CImageList *pNewStates) { m_pStateList = pNewStates; }
void SetOrder (tdeListOrder eOrder);
void SetStyle (long lStyle);
};
/*#################################################################################*/
/* Dialog */
/*#################################################################################*/
/*===========================================================================
* Description: Class for the Dialog
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_DialogList : public CFormView
{
/* Construction*/
protected:
CPA_EditorBase *m_pOwnerEditor;
CPA_List<CPA_ListForDialog> m_stListOfListObjects;
CPA_ListForDialog * m_pCurrentList;
CPA_BaseObject * m_pSelectedObject;
CPA_BaseObject * m_pSelectedParent;
CPA_BaseObject * m_pClickedObject;
CPA_BaseObject * m_pClickedParent;
BOOL m_bInitialised;
BOOL m_bButtonState;
BOOL m_bTestEnabled;
CString m_csTypeName;
CString m_csTestName;
public:
/* standard constructor*/
CPA_DialogList (CWnd* pParent = NULL);
/* get functions*/
CPA_ListForDialog * GetListFromName (CString csName);
CPA_ListForDialog * GetCurrentList (void) { return m_pCurrentList; }
CPA_BaseObject * GetSelectedObject (void) { return m_pSelectedObject; }
CPA_BaseObject * GetSelectedParent (void) { return m_pSelectedParent; }
CString GetCurrentType (void) { return m_csTypeName; }
/* ALX*/
HWND GetComboHandle (void) { return m_cComboType . m_hWnd; }
HWND GetListHandle (void) { return m_cListObjects . m_hWnd; }
HWND GetTreeHandle (void) { return m_cHierarchy . m_hWnd; }
HWND GetTestButtonHandle (void) { return m_cButtonTest . m_hWnd; }
/* End ALX*/
/* set functions*/
void SetDefaultButtonState (BOOL bEnabled) { m_bButtonState = bEnabled; }
void SetDefaultTestName (CString csName) { m_csTestName = csName; }
void SetDefaultTypeName (CString csName) { m_csTypeName = csName; }
void SetCurrentType (CString csName);
void SetPermanentOrder (tdeListOrder ePermanentOrder);
void SetPermanentDisplay (BOOL bPermanentDisplay);
void SetPermanentHeaders (BOOL bColumnHeaders);
void SetPermanentStyle (long lPermanentStyle);
void SetDefaultOrder (tdeListOrder eDefaultOrder);
void SetDefaultDisplay (BOOL bDefaultDisplay);
void SetDefaultHeaders (BOOL bColumnHeaders);
void SetDefaultStyle (long lDefaultStyle);
void SetItemInfo (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent, void *pInfo);
void * GetItemInfo (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent);
int GetItemIcon (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemIcon (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iIcon);
int GetItemState (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemState (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iState);
/* Dialog*/
void fn_vInitDialog (CPA_EditorBase *pOwnerEditor, CWnd *pParent);
void fn_vInitAllLists (void);
void fn_vReinitDialog (void);
void fn_vInitComboType (void);
void fn_vInitButtonTest (CString CzName, BOOL bButtonState, BOOL bEnabled);
void fn_vUpdateSelection (tdeListReinitMode eType);
void fn_vAddANewList (CString csName, CPA_BaseObjectList *pListObjects,
CImageList *pIconList = NULL, CImageList *pStateList = NULL,
tdeListOrder eOrder = E_lo_Alpha, BOOL bCanChangeOrder = TRUE,
long lListStyle = C_lDrawName, BOOL bCanChangeStyle = TRUE);
void fn_vAddANewTree (CString csName, CPA_BaseObject *pTreeRoot,
CImageList *pIconList = NULL, CImageList *pStateList = NULL);
void fn_vDeleteAList (CString csName);
void fn_vInitHierarchy (void);
void fn_vInitListObjects (void);
BOOL fn_bCanInsertElement (CPA_BaseObject *pElem);
void fn_vOnDragDropEndHierarchy (void);
BOOL fn_bAcceptAsDragDropTarget (HTREEITEM hTarget);
void fn_vOnDblClkHierarchyTree (void);
BOOL fn_bOnKeyDownInControl (UINT nChar, UINT nRepCnt, UINT nFlags);
BOOL fn_bOnKeyUpInControl (UINT nChar, UINT nRepCnt, UINT nFlags);
void fn_vRedrawElement (CPA_BaseObject *pObject, BOOL bEnsureVisible);
protected:
void fn_vReinitPosition (CWnd *pControl, CWnd *pRef, tdeListControlPos ePos);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogList)*/
enum { IDD = CPA_IDD_DIALOGLIST };
CComboBox m_cComboType;
CPA_SortedListBox m_cListObjects;
CPA_HierarchyTree m_cHierarchy;
CButton m_cButtonTest;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogList)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogList)*/
afx_msg void OnSelchangeComboType();
afx_msg void OnButtonTest();
afx_msg void OnSelchangeListObjects(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDblClkListObjects(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSelchangeHierarchy(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDblClkHierarchy(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnBeginDragHierarchy(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSize(UINT, int, int);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__DIALOGLIST_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,212 @@
/*=========================================================================*/
/* 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__*/

View File

@@ -0,0 +1,127 @@
/*=========================================================================*/
/* CPADLLls.hpp : interface of the CPA_DLLList class and to the*/
/**/
/* 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 __CPADLLLS_HPP__
#define __CPADLLLS_HPP__
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
#include "geo.h"
#include "gli.h"
#include <afxtempl.h>
#include "CPADllb.hpp"
#include "DEVMulti.hpp"
/*=========================================================================*/
/* The list of all editors*/
/*=========================================================================*/
class CPA_EXPORT CPA_DLLList
{
private:
/* structure for loading DLL*/
typedef struct
{
CString csPath;
WIN32_FIND_DATA *p_stFileInfo;
BOOL bAlreadyLoaded;
} tdstDLLFiles;
CList<tdstDLLIdentity*,tdstDLLIdentity*> m_oListOfDLLIdentities;
CList<DEV_MultiDevice*,DEV_MultiDevice*> m_oListOfMultiDevices;
unsigned short m_uwCurrentRef;
long m_lObjectDLLCount;
long m_lToolDLLCount;
void LoadAllDLLsFromList(CList<tdstDLLFiles*,tdstDLLFiles*> *p_oListOfDLLFiles);
public:
CPA_DLLList();
~CPA_DLLList();
long GetDLLCount() {return (m_lObjectDLLCount + m_lToolDLLCount); }
void LoadAllDLL();
void DestroyADLL(CPA_DLLBase *p_oDLL);
void AddADLL(tdstDLLIdentity *p_stDLLIdentity);
CPA_DLLBase *GetANewDLL(tdeDLLType eType,CString csName, long lKey);
long GetAllNewDLL(tdeDLLType eType,CPA_DLLBase *ap_oDLL[], long lKey);
public:
tdstDLLIdentity *GetAllreadyRegisteredDLLId(tdstDLLIdentity *p_stDLLIdentity);
void CallRefreshDatas();
BOOL CallAcceptToRunEngine();
BOOL CallAcceptToExit();
void CallBeforeEngine();
void CallBeforeEditor();
void CallJustBeforeClosing();
void CallConstruct();
void CallJustAfterRegistered();
BOOL CallPreTranslateMessage(MSG *p_stMsg);
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* Objects DLL specific functions*/
public:
long GetObjectDLLCount() {return m_lObjectDLLCount; }
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* Tools DLL specific functions*/
public:
long GetToolDLLCount() {return m_lToolDLLCount; }
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* MultiDevice specific functions*/
public:
long GetMultiDeviceCount() {return m_oListOfMultiDevices.GetCount();}
void RegisterNewMultiDevice(DEV_MultiDevice* p_oMultiDevice);
void RemoveAMultiDevice(DEV_MultiDevice *p_oMD);
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* ACTIVE_EDITOR*/
#endif /* __CPADLLLS_HPP__*/

View File

@@ -0,0 +1,64 @@
/*=========================================================================*/
/* CPADoc.hpp : interface of the CPA_ProjectDoc class*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 06/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 __CPADOC_HPP__
#define __CPADOC_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
/****************************************/
class CPA_EXPORT CPA_ProjectDoc : public CDocument
{
protected:
CPA_ProjectDoc();
DECLARE_DYNCREATE(CPA_ProjectDoc)
/* Attributes*/
public:
/* Operations*/
public:
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_ProjectDoc)*/
public:
virtual BOOL OnNewDocument();
/*}}AFX_VIRTUAL*/
/* Implementation*/
public:
virtual ~CPA_ProjectDoc();
protected:
/* Generated message map functions*/
protected:
/*{{AFX_MSG(CPA_ProjectDoc)*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __CPADOC_HPP__*/

View File

@@ -0,0 +1,107 @@
/*=========================================================================
*
* CPAdOpt.h : class CPA_DialogOption
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGOPTION_H__
#define __DIALOGOPTION_H__
/****************************************/
#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
/****************************************/
#include "CPAres.h"
class CPA_Interface;
/*===========================================================================
* Description: CPA_DialogOption dialog
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_DialogOption : public CDialog
{
protected:
CPA_Interface *m_pInterface;
public:
/* parent editor*/
CPA_Interface * GetInterface (void) { return m_pInterface; }
/* standard constructor*/
CPA_DialogOption (CWnd* pParent = NULL);
/* dialog*/
void fn_vDoDialog (CPA_Interface *pInterface);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogOption)*/
enum { IDD = CPA_IDD_DIALOGOPTION };
/* general options*/
CButton m_cCoheMngr;
CButton m_cReinitMap;
CButton m_cScaleEditor;
CEdit m_cPyramidDepth;
CEdit m_cTargetDepth;
CButton m_cAuthorisation;
CButton m_cKeyboard;
/* move options*/
CEdit m_cRotStep;
CEdit m_cTranStep;
CButton m_cGothrough;
CButton m_cBlock;
CButton m_cAccelerate;
/*CPA2 Gabi Dumitrascu 98/07/09*/
/*screen options*/
CButton m_cAutomaticSwap;
CButton m_cSwapLeft;
CButton m_cSwapRight;
CButton m_cSwapBoth;
/*End CPA2 Gabi Dumitrascu 98/07/09*/
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogOption)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogOption)*/
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnInitDialog();
afx_msg void OnAuthorisation();
afx_msg void OnKeyboard();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__DIALOGMOVE_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,83 @@
/*=========================================================================
*
* CPAdSel.h : class CPA_DialogSelect
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGUSERS_H__
#define __DIALOGUSERS_H__
/****************************************/
#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
/****************************************/
#include "CPARes.h"
class CPA_Interface;
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DialogSelect dialog*/
class CPA_DialogPrefix : public CDialog
{
protected:
CPA_Interface *m_pEditor;
CString m_a_csUserNames[50];
long m_lNbUsers;
long m_lUserSelected;
public:
/* standard constructor*/
CPA_DialogPrefix(CWnd* pParent = NULL);
/* dialog*/
long fn_lDoDialog (CPA_Interface *pEditor, CString a_csUserNames[], long lNbUsers);
void fn_vInitDialog (void);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogPrefix)*/
enum { IDD = CPA_IDD_DIALOGPREFIX };
CComboBox m_cComboUsers;
CButton m_cSave;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogPrefix)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogSelect)*/
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnInitDialog();
afx_msg void OnSave();
afx_msg void OnSelChangeComboUsers();
afx_msg void OnDblClkComboUsers();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__DIALOGUSERS_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,106 @@
/*=========================================================================
*
* CPAdSel.h : class CPA_DialogSelect
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGSELECT_H__
#define __DIALOGSELECT_H__
/****************************************/
#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
/****************************************/
#include "CPARes.h"
#include "CPAMCapt.hpp"
#include "CPASObj.hpp"
#include "CPAEnum.hpp"
class CPA_Interface;
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DialogSelect dialog*/
class CPA_EXPORT CPA_DialogSelect : public CDialog, public CPA_MouseCapturer
{
protected:
CPA_Interface *m_pInterface;
tdeSelectMode m_eMode;
CString m_csTypeName;
CString m_a_csValidTypes[20];
long m_lNbTypes;
public:
/*any class deriving from CPA_MouseCapturer one must declare this method as is*/
CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }
/* parent editor*/
CPA_Interface * GetInterface (void) { return m_pInterface; }
/* standard constructor*/
CPA_DialogSelect(CWnd* pParent = NULL);
/* dialog*/
void fn_vDoDialog (CPA_Interface *pInterface, tdeSelectMode eMode, CString csTypeName = "", CString a_csValidType[] = NULL, long lNbTypes = 0);
void fn_vInitDialog (void);
void fn_vInitHierarchy (void);
void fn_vCloseDialog (void);
/* list of selected objets*/
CPA_List<CPA_SuperObject> m_stListSelect;
CPA_List<CPA_SuperObject> m_stHierarchy;
CPA_SuperObject *m_pSelection;
CPA_SuperObject *m_pObjectToSelect;
BOOL m_bDoDialog;
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogSelect)*/
enum { IDD = CPA_IDD_DIALOGCHOICE };
CListBox m_cListSelect2;
CListBox m_cListSelect;
CListBox m_cHierarchy2;
CListBox m_cHierarchy;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogSelect)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogSelect)*/
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnInitDialog();
afx_msg void OnSelchangeListSelect();
afx_msg void OnDblClkListSelect();
afx_msg void OnSelchangeHierarchy();
afx_msg void OnDblClkHierarchy();
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__DIALOGSELECT_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,123 @@
/*=========================================================================
*
* CPAdTip.h : class CPA_DialogTip
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGTIP_H__
#define __DIALOGTIP_H__
/****************************************/
#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
/****************************************/
#include <afxtempl.h>
#include "CPARes.h"
#include "CPAMCapt.hpp"
class CPA_Interface;
class CPA_EditorBase;
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_ColorEdit control*/
class CPA_EXPORT CPA_ColorEdit : public CEdit
{
protected:
COLORREF m_crTextColor;
COLORREF m_crBackColor;
CBrush m_brBrush;
public:
CPA_ColorEdit();
void fn_vSetColors (COLORREF crText, COLORREF crBack);
protected:
/*{{AFX_MSG(CPA_ColorEdit)*/
afx_msg HBRUSH CtlColor (CDC* pDC, UINT nCtlColor);
afx_msg void OnLButtonDown (UINT nFlags, CPoint point);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_DialogTip dialog*/
class CPA_EXPORT CPA_DialogTip : public CDialog, public CPA_MouseCapturer
{
protected:
CString m_csFileName;
CString m_csEditor;
CString m_csTag;
CString m_csText;
long m_lCurrentTip;
CList<CStatic *, CStatic *> m_stListOfBitmaps;
HBITMAP m_hTitle;
public:
/*any class deriving from CPA_MouseCapturer one must declare this method as is*/
CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }
/* standard constructor*/
CPA_DialogTip(CWnd* pParent = NULL);
/* dialog*/
void fn_vDoDialog (CString csEditor, CString csTag, CString csFile, long lCurrentTip);
void fn_vGetNextTip (void);
HBITMAP m_hLoadImage(CString _csName, int _cx, int _cy);
/* Dialog Data*/
/*{{AFX_DATA(CPA_DialogTip)*/
enum { IDD = CPA_IDD_DIALOGTIP };
CPA_ColorEdit m_cTipText;
CStatic m_cTitle;
CStatic m_cEditor;
CButton m_cNextTip;
CButton m_cFirstOnly;
/*}}AFX_DATA*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_DialogTip)*/
protected:
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
protected:
/* Generated message map functions*/
/*{{AFX_MSG(CPA_DialogTip)*/
virtual void OnNextTip();
virtual void OnCloseTip();
virtual void OnCancel();
virtual BOOL OnInitDialog();
afx_msg void OnDestroy();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /*__DIALOGTIP_H__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,110 @@
/*=========================================================================
*
* EDTEnum.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
#ifndef __CPAENUM_HPP__
#define __CPAENUM_HPP__
#include "DEVVp3D.hpp"
#define C_ucModel 1973
/* colors for selection*/
typedef enum tdeLightMode_
{
E_lm_ShowSelected,
E_lm_ShowNormal,
E_lm_ShowOnly,
E_lm_ShowChild,
E_lm_ShowParent,
E_lm_ShowBrother
}
tdeLightMode;
/* selection*/
typedef enum tdeSelectMode_
{
E_sm_SelectParent,
E_sm_SelectByType,
E_sm_SelectPFather,
E_sm_SelectChoice,
E_sm_SelectNormal
}
tdeSelectMode;
/* update mode for drawing and dialogs*/
typedef enum
{
E_mc_JustDraw,
E_mc_UpdateSelection,
E_mc_UpdateDialog,
E_mc_UpdateAll
}
tdeModeChange;
/* local drawing*/
typedef enum
{
E_df_Normal,
E_df_Grided,
E_df_Wired,
/* FBF 20 03 98 {*/
E_df_BoundingV
/* FBF 20 03 98 }*/
}
tdeDrawingFlag;
typedef enum tdeTypeSO_
{
C_Static,
C_Dynamic,
C_Protected,
C_NoType
}
tdeTypeSO;
/* user status*/
typedef enum tdeUserStatus_
{
E_us_StatusGraphic,
E_us_StatusDesign,
E_us_StatusAll,
E_us_NoStatus
}
tdeUserStatus;
/*#################################################################################*/
/* PICKING INFO*/
/*#################################################################################*/
typedef struct tdstPosition_
{
tdstMousePos stPos;
ACP_tdxIndex xIndex;
HIE_aDEF_stTabOfPickInfo a_stPickInfo;
}
tdstPosition;
#endif /* __CPAENUM_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,99 @@
/*=========================================================================*/
/* CPAFrame.hpp : main header file for the CPA_MainFrame class*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 06/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 __CPAFRAME_HPP__
#define __CPAFRAME_HPP__
#include "FRMBsMn.hpp"
class CPA_DLLBase;
/****************************************/
#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 TEST_CPA_VERSION_3D
extern void CPA_EXPORT fn_vInitCompleteWorld3D(LPCTSTR);
extern void CPA_EXPORT fn_vCloseCompleteWorld3D();
#endif /* TEST_CPA_VERSION_3D*/
/*##########*/
/* MainFrame*/
/*##########*/
#define C_ucMaxFrameName 100 /* Max name of mainframe*/
#ifdef ACTIVE_EDITOR
class CPA_EXPORT CPA_MainFrame : public FRMBaseMenu
#else
class CPA_EXPORT CPA_MainFrame : public CFrameWnd
#endif /* ACTIVE_EDITOR*/
{
public:
CPA_MainFrame();
~CPA_MainFrame();
DECLARE_DYNCREATE(CPA_MainFrame)
public:
char m_szProjectName[C_ucMaxFrameName]; /* Name of project*/
/* Operations*/
public:
void OnUpdateFrameTitle(BOOL);
void OnClose(void);
#ifdef ACTIVE_EDITOR
virtual void fn_vInitGeneralDialogBarWithContext(void);
virtual BOOL PreCreateWindow( CREATESTRUCT& cs );
void DisactivateEditors(void);
void ActivateEditors(void);
#endif /* ACTIVE_EDITOR*/
/* Generated message map functions*/
protected:
/*{{AFX_MSG(CPA_MainFrame)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSysCommand(UINT, LPARAM);
afx_msg LRESULT OnDisplayChange(UINT wParam, LONG lParam);
afx_msg LRESULT m_lOnPowerManagement(UINT wParam, LONG lParam);
afx_msg void OnSize(UINT, int, int);
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR *);
#ifdef ACTIVE_EDITOR
afx_msg void OnNcLButtonDown(UINT, CPoint);
afx_msg void OnSwapToEditors(void);
afx_msg void OnFullScreen(void);
afx_msg void OnAppExit(void);
afx_msg void OnWindowPosChanged(WINDOWPOS *);
afx_msg UINT OnNcHitTest(CPoint);
afx_msg int OnMouseActivate( CWnd* pDesktopWnd, UINT nHitTest, UINT message );
#endif /* ACTIVE_EDITOR*/
public:
afx_msg void OnActivateApp(BOOL, DWORD);
afx_msg void OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized );
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __CPAFRAME_HPP__*/

View File

@@ -0,0 +1,727 @@
/*=========================================================================
*
* CPAInterf.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_INTERFACE_HPP__
#define __CPA_INTERFACE_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
/****************************************/
#include "itf/CPADllb.hpp"
#include "itf/CPAEnum.hpp"
#include "itf/CPASObj.hpp"
#include "itf/CPAFileO.hpp"
#include "itf/CPAWorld.hpp"
#include "itf/FRMbsmn.hpp"
#include "itf/FRMSplit.hpp"
#include "itf/CPAdSel.hpp"
#include "itf/CPAdPref.hpp"
#include "itf/CPAdPerm.hpp"
#include "itf/CPASpec.hpp"
#include "itf/CPAModel.hpp"
#include "itf/CPAdIns.hpp"
#include "itf/camdllb.hpp"
#include "itf/CPAdOpt.hpp"
#include "itf/CPAdTip.hpp"
class DEV_MultiDevice;
class CPA_MainWorld;
class CPA_HierarchyEditor;
typedef enum tdeMouseMovePlane_
{
E_mmp_Standard = 1,
E_mmp_Warped
}
tdeMouseMovePlane;
typedef enum tdeBVMode_
{
E_bv_None,
E_bv_Sectors,
E_bv_Actors,
E_bv_Objects,
E_bv_Elements
}
tdeBVMode;
typedef enum tdeStatusBar_
{
E_sb_InstanceInfo,
E_sb_InstanceToCamera,
E_sb_CameraInfo
}
tdeStatusBar;
#define C_szInterfaceIniFile "CPAPref.ini"
#define C_lNbMaxUsers 50
/*===========================================================================
* Description: Class CPA_Interface
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_Interface : public CObject
{
/*#################################################################################*/
/* MEMBERS*/
/*#################################################################################*/
protected:
DEV_MultiDevice *m_p_oMultiDevice;
CPA_MainWorld *m_p_oMainWorld;
CPA_HierarchyEditor *m_p_oEditor;
/* Popup*/
EDT_PopUpMenu m_oPopUpMenu;
/* Select Mode */
CComboBox * m_pComboSelectMode;
CString m_csSelectMode;
BOOL m_bLinkMode;
/* Models */
CPA_List<EDT_ModelsByType> m_stListOfModelsByType;
EDT_ModelsByType * m_pListAllModels;
CBitmapList m_stListAllBitmaps;
EDT_Model * m_pCurrentModel;
/* Selection */
CPA_DialogSelect m_oDialogSelect;
BOOL m_bDeltaSelect;
BOOL m_bFullSelect;
BOOL m_bIgnoreFlags;
/* Model Frame*/
CPA_DialogInsert * m_pDialogInsert;
CSplitFrame * m_pModelFrame;
/* Specific Editor */
CPA_SpecificInterface m_oSpecificInterface;
/* Hierarchy State*/
BOOL m_bInitialState;
/* Camera Mode*/
tdeTargetType m_ePreviousMode;
BOOL m_bAutoTarget;
BOOL m_bAutoZoom;
/* Camera Move Mode */
BOOL m_bMoveCamera;
/* Constraint for X,Y and Z axes*/
BOOL m_bConsX;
BOOL m_bConsY;
BOOL m_bConsZ;
BOOL m_bPyramidMode;
/* Pyramid Selection */
/* Begin Point*/
tdstMousePos m_stSelectionStartVertex;
/* Selection Vertex (closest to camera)*/
tdstMousePos m_stSelectionVertexTopLeft;
tdstMousePos m_stSelectionVertexTopRight;
tdstMousePos m_stSelectionVertexBottomRight;
tdstMousePos m_stSelectionVertexBottomLeft;
/* Far Selection Vertex (farthest to camera)*/
tdstMousePos m_stFarSelectionVertexTopLeft;
tdstMousePos m_stFarSelectionVertexTopRight;
tdstMousePos m_stFarSelectionVertexBottomRight;
tdstMousePos m_stFarSelectionVertexBottomLeft;
/* Pyramid Modes*/
BOOL m_bSelectionFrameVisible;
BOOL m_bSelectionFrameCreating;
BOOL m_bPyramidDepthChanging;
/* Object mouse move mode*/
BOOL m_bModeIsObjectMouseMove;
/* The axis of the plane where the mouse moves (in camera coordinates)*/
MTH3D_tdstVector m_stMouseXAxe, m_stMouseYAxe;
MTH3D_tdstVector m_stLastMoveXAxe, m_stLastMoveYAxe;
MTH3D_tdstVector m_stMouseMovePlaneCenter;
BOOL m_bLastMovePlaneRemembered; /*true when true !*/
tdeMouseMovePlane m_eMouseMovePlane; /*true when true !*/
/* Z in Selection Frames*/
double m_dfZNearSelectionFrame;
double m_dfZFarSelectionFrame;
/* Normals to Pyramid Faces*/
MTH3D_tdstVector m_stNormaleTop;
MTH3D_tdstVector m_stNormaleBottom;
MTH3D_tdstVector m_stNormaleRight;
MTH3D_tdstVector m_stNormaleLeft;
MTH3D_tdstVector m_stNormaleNear;
MTH3D_tdstVector m_stNormaleFar;
/* Mouse Coord.*/
POINT m_stMouseFixPoint;
/* user prefix*/
CPA_DialogPrefix m_oDialogPrefix;
CString m_a_csUserNames[C_lNbMaxUsers];
CString m_a_csUserPrefix[C_lNbMaxUsers];
CString m_a_csAuthorized[C_lNbMaxUsers];
CString m_a_csProhibited[C_lNbMaxUsers];
BOOL m_bUseUserPreferences;
long m_lNbAuthorized;
long m_lNbProhibited;
long m_lNbUsers;
CString m_csUserPrefix;
/* languages*/
CString m_csCurrentLanguage;
/* names*/
CPA_DialogPermission m_oDialogPermission;
BOOL m_bIsLoadingWorld;
long m_lNbObjectsRenamed;
/* options*/
CPA_DialogOption m_oDialogOption;
float m_fPyramidalDepth;
float m_fCameraTargetDepth;
/* display parameters*/
tdeBVMode m_eBVMode;
BOOL m_bScaleObject;
int m_iShowCenter;
/* selection parameters*/
BOOL m_bLockSelection;
BOOL m_bFixedDepth;
BOOL m_bRealTime;
/* status bar parameters*/
tdeStatusBar m_eStatusBarMode;
BOOL m_bDisplayDistance;
/* Show Center*/
ACP_tdxHandleOfMaterial m_hCenterMaterial ;
ACP_tdxHandleOfTexture m_pTexBar;
BOOL m_bLoaded;
/* Mouse Swap*/
BOOL m_bAutomaticSwap;
BOOL m_bCursorInFirstScreen;
tdeForceSwap m_eForceSwap;
/* Tip of Day*/
CPA_DialogTip m_oDialogTip;
BOOL m_bDisplayTipOfDay;
/*#################################################################################*/
/* PUBLIC FUNCTIONS*/
/*#################################################################################*/
public:
/*===========================================================================
Inits
=========================================================================*/
CPA_Interface (void);
~CPA_Interface (void);
void Create (void);
void Init (void);
static void StaticInit (void);
/*===========================================================================
Get Functions
=========================================================================*/
/* acces*/
DEV_MultiDevice * GetMultiDevice (void) { return m_p_oMultiDevice; }
CPA_MainWorld * GetMainWorld (void) { return m_p_oMainWorld; }
CPA_HierarchyEditor * GetEvtEditor (void) { return m_p_oEditor; }
DEV_MultiDevice3D * GetMultiDevice3D (void) { return (DEV_MultiDevice3D *) m_p_oMultiDevice; }
CPA_EditorBase * GetEditor (void);
FRMBaseMenu * GetFrameBase (void);
CPA_World * GetCurrentWorld (void);
/* select mode*/
CComboBox * GetComboSelectMode (void) { return m_pComboSelectMode; }
CString GetSelectMode (void) { return m_csSelectMode; }
BOOL GetLinkMode (void) { return m_bLinkMode; }
/* models*/
CPA_List<EDT_ModelsByType> * GetListOfModelsByType (void) { return &m_stListOfModelsByType; }
EDT_ModelsByType * GetListAllModels (void) { return m_pListAllModels; }
CBitmapList * GetBitmapList (void) { return &m_stListAllBitmaps; }
EDT_Model * GetCurrentModel (void) { return m_pCurrentModel; }
/* selection*/
CPA_DialogSelect * GetDialogSelect (void) { return &m_oDialogSelect; }
BOOL fn_bDeltaSelect (void) { return m_bDeltaSelect; }
BOOL fn_bFullSelect (void) { return m_bFullSelect; }
BOOL fn_bIgnoreFlags (void) { return m_bIgnoreFlags; }
/* Model Frame*/
CPA_DialogInsert * GetDialogInsert (void) { return m_pDialogInsert; }
CSplitFrame * GetModelFrame (void) { return m_pModelFrame; }
/* specific editor*/
CPA_SpecificInterface * GetSpecificInterface (void) { return &m_oSpecificInterface; }
/* hierarchy state*/
BOOL fn_bIsInitialState (void) { return m_bInitialState; }
/* camera mode*/
BOOL fn_bAutoTarget (void) { return m_bAutoTarget; }
BOOL fn_bAutoZoom (void) { return m_bAutoZoom; }
/* camera move mode */
BOOL fn_bMoveCamera (void) { return m_bMoveCamera; }
/* constraint the X,Y and Z axes*/
BOOL fn_bConsX (void) { return m_bConsX; }
BOOL fn_bConsY (void) { return m_bConsY; }
BOOL fn_bConsZ (void) { return m_bConsZ; }
/* display*/
int GetShowcenter (void) { return m_iShowCenter; }
/* selection*/
BOOL GetLockSelection (void) { return m_bLockSelection; }
/* statusbar*/
tdeStatusBar GetStatusBarMode (void) { return m_eStatusBarMode; }
BOOL GetDisplayDistance (void) { return m_bDisplayDistance; }
/* option*/
BOOL GetFixedDepthPyramid (void) { return m_bFixedDepth; }
BOOL GetRealTimePyramid (void) { return m_bRealTime; }
float GetPyramidalDepth (void) { return m_fPyramidalDepth; }
float GetCameraTargetDepth (void) { return m_fCameraTargetDepth; }
BOOL GetPyramidDepthMode (void) { return m_bPyramidMode;}
/*===========================================================================
Set Functions
=========================================================================*/
void SetMainWorld (CPA_MainWorld *p_oMainWorld);
void SetMultiDevice (DEV_MultiDevice *p_oMultiDevice);
void SetHierarchyEditor (CPA_HierarchyEditor *p_oEditor) { m_p_oEditor = p_oEditor; }
void SetSelectMode (CString csSelectMode);
void SetLinkMode (BOOL bLinkMode) { m_bLinkMode = bLinkMode; }
void SetCurrentModel (EDT_Model *pModel);
void SetInitialState (BOOL bInitialState) { m_bInitialState = bInitialState; }
/* selection*/
void SetDeltaSelect (BOOL bDeltaSelect) { m_bDeltaSelect = bDeltaSelect; }
void SetFullSelect (BOOL bFullSelect) { m_bFullSelect = bFullSelect; }
void SetIgnoreFlags (BOOL bIgnoreFlags) { m_bIgnoreFlags = bIgnoreFlags; }
void SetLockSelection (BOOL bLockSel) { m_bLockSelection = bLockSel;}
/* options*/
void SetPyramidDepthMode (BOOL bMode) { m_bPyramidMode = bMode;}
void SetFixedDepthPyramid (BOOL bFix) { m_bFixedDepth = bFix;}
void SetRealTimePyramid (BOOL bRealTime) { m_bRealTime = bRealTime;}
void SetPyramidalDepth (float fDepth) { m_fPyramidalDepth = fDepth; }
void SetCameraTargetDepth (float fDepth) { m_fCameraTargetDepth = fDepth; }
/* display*/
void SetShowcenter (int iShow);
/* status bar*/
void SetStatusBarMode (tdeStatusBar eMode) { m_eStatusBarMode = eMode; }
void SetDisplayDistance (BOOL bDisp) { m_bDisplayDistance = bDisp;}
/*===========================================================================
Update Functions
=========================================================================*/
void fn_vUpdateAll (tdeModeChange eMode);
void fn_vUpdatePositions (void);
void fn_vChangeWorld (void);
void fn_vChangeRoot (void);
void fn_vBeforeEditor (void);
void fn_vUpdateEditor (void);
CString GetTypeSelected (void);
BOOL fn_bIsSelectionValid (void);
void fn_vCancelAllModes (void);
void fn_vCancelAllDrawingFlags (void);
/*===========================================================================
Select Mode
=========================================================================*/
void fn_vInitSelectMode (void);
void fn_vOnChangeSelectMode (void);
void fn_vOnChangeLinkMode (void);
void fn_vChangeSelectMode (CString csSelectMode);
void fn_vUpdateLink (CString csCurrentMode);
/*===========================================================================
Selection
=========================================================================*/
void fn_vAddSelectedObject (CPA_SuperObject *pNewObj, BOOL bUpdateDisplay = TRUE);
void fn_vRemoveSelectedObject (CPA_SuperObject *pEdObj, BOOL bUpdateDisplay = TRUE);
void fn_vCancelCurrentSelection (BOOL bUpdateDisplay = TRUE);
tdeTypeAnswer fn_bCanSelect (CPA_SuperObject *pObjectToSelect, ACP_tdxIndex xIndex = 0, HIE_tdstPickInfo *pPicking = NULL);
BOOL fn_bSelectObject (CPA_SuperObject *pSelectedObject, BOOL bCenter, BOOL bCheck = TRUE);
void fn_vUpdateSelection (CPA_SuperObject *pSelectedObject, tdeSelectMode eMode);
void fn_vSetLocalColor (CPA_SuperObject *pEdObj, tdeLightMode eMode);
/*===========================================================================
Selection (Get Functions)
=========================================================================*/
CPA_List<CPA_SuperObject> * GetSelectedObjects (CPA_ObjectDLLBase *p_oDLL);
CPA_List<CPA_SuperObject> * GetMouseSelection (ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject, CString csTypeName);
CPA_List<CPA_SuperObject> * GetMouseSelection (ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject, CString a_csValidTypes[], long lNbTypes);
CPA_SuperObject * GetUserMouseSelection (ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject, CString csTypeName);
CPA_SuperObject * GetUserMouseSelection (ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject, CString a_csValidTypes[], long lNbTypes);
CPA_SuperObject * GetPickingSelection (tdeSelectMode eModeSelect, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject, tdstMousePos *p_stPos, BOOL *bWillDoDialog, CPA_SuperObject *pPreviousSelection = NULL);
CPA_SuperObject * GetDialogSelection (tdeSelectMode eModeSelect);
CPA_SuperObject * GetFirstSelection (tdeSelectMode eSelect, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo, CString csTypeName = "");
long fn_lFindSelectionInDepth (tdeSelectMode eSelect, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo, CString csTypeName = "");
long fn_lFindSelectionInHierarchy (tdeSelectMode eSelect, CPA_SuperObject *pFirstSelect, CString csTypeName = "");
/*CPA2 Corneliu Babiuc (multiple registration) 02-07-98*/
/*===========================================================================
Registration
=========================================================================*/
void fn_vAddRegisteredObject (CPA_SuperObject *pNewObj);
void fn_vRemoveRegisteredObject (CPA_SuperObject *pEdObj);
void fn_vCancelCurrentRegistration ();
void fn_vUpdateRegistrationFromSelection (CPA_List<CPA_SuperObject> * p_lstSelection);
CPA_SuperObject * GetPreviousRegistration (CPA_SuperObject *pEdObj);
CPA_List<CPA_SuperObject> * GetRegisteredObjects (CPA_ObjectDLLBase *p_oDLL);
/*CPA2 Corneliu Babiuc (multiple registration) 02-07-98*/
/*===========================================================================
Lists (Get Functions)
=========================================================================*/
CPA_List<CPA_SuperObject> * GetObjectListByType (CString csTypeName, CPA_ObjectDLLBase *p_oDLL = NULL);
CPA_BaseObjectList * GetSortedListByType (CString csTypeName, CPA_ObjectDLLBase *p_oDLL = NULL);
EDT_ListByType * GetListWithTypeName (CString csTypeName, CPA_ObjectDLLBase *p_oDLL = NULL);
EDT_ModelsByType * GetModelsWithTypeName (CString csTypeName);
CPA_SuperObject * GetNewInstance (CString csTypeName, CString csModel);
CPA_SuperObject * GetEditorObject (HIE_tdxHandleToSuperObject hSupObj);
CPA_SuperObject * GetSuperObject (CString csTypeName, CString csName);
CPA_SuperObject * GetPreviousSelection (CPA_SuperObject *pEdObj);
/*===========================================================================
Models
=========================================================================*/
void fn_vInitListOfModelsByType (CPA_List<CPA_ObjectDLLBase> *pListOfObjectDLLs);
BOOL fn_bAddANewModelList (CString csListName, CPA_ObjectDLLBase *pObjectDLL);
BOOL fn_bAddANewModel (EDT_Model *pModel, CString csListName, CPA_ObjectDLLBase *pObjectDLL);
BOOL fn_bRemoveAModel (CString csModelName, CString csListName);
/* load & save*/
BOOL fn_bIsAlreadyLoaded (CString csListName);
BOOL fn_bLoadModelList (CString csFileName, CString csListName, CPA_ObjectDLLBase *p_oDLL);
void fn_vSaveModelList (CString csFileName, CString csListName, CPA_ObjectDLLBase *p_oDLL, CPA_List<EDT_Model> *pListModels);
static void CallBackSaveModelList (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
static SCRIPT_tdeReturnValue CallBackLoadModelList (SCR_tdst_File_Description *p_stFile, char *szSectionName, char *szParams[], SCR_tde_Anl_Action eAction);
/*===========================================================================
Hierarchy
=========================================================================*/
BOOL fn_bInsertObjectInHierarchy (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bSelect = TRUE, BOOL pBlock = FALSE);
BOOL fn_bInsertAsPreviousBrother (CPA_SuperObject *pEdObj, CPA_SuperObject *pBrother, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bSelect = TRUE, BOOL pBlock = FALSE);
BOOL fn_bDeleteObjectInHierarchy (CPA_SuperObject *pEdObj, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bDestroySuperObject = FALSE, BOOL bSelect = TRUE, BOOL pBlock = FALSE);
CPA_SuperObject * GetNewSuperObject (HIE_tdxHandleToSuperObject hEngineSO,
tdeSaveStatus eStatus, tdeTypeSO eTypeSO = C_NoType,
CString csName = "", CString csEngineFileName = "");
CPA_SuperObject * GetNewSuperObject (tdeSaveStatus eStatus, tdeTypeSO eTypeSO = C_NoType,
CString csName = "", CString csEngineFileName = "");
CPA_SuperObject * GetCopyOfSuperObject (CPA_SuperObject *pModel);
/*===========================================================================
Files
=========================================================================*/
CPA_FileObject * GetFileObject (CString csFileName);
/*===========================================================================
Pyramid selection
=========================================================================*/
void fn_vInitPyramidDepth (BOOL bInitMove);
void fn_vInitSelectionPyramid (tdstMousePos *p_stPos);
BOOL fn_bDoSelectionPyramid (tdstMousePos *p_stPos);
void fn_vDrawSelectionFrame (GLD_tdstViewportAttributes *p1);
void fn_vEndSelectionPyramid (void);
/*===========================================================================
object moving
=========================================================================*/
void fn_vEnterObjectMouseMoveMode (void);
void fn_vLeaveObjectMouseMoveMode (void);
void fn_vSetMouseMovePlane (tdeMouseMovePlane _eMMP);
void SetPlaneForMouseMove (MTH3D_tdstVector *p_stX_Axe, MTH3D_tdstVector *p_stY_Axe);
void RememberLastMouseMovePlane (MTH3D_tdstVector *p_stX_Axe, MTH3D_tdstVector *p_stY_Axe);
void SetMovePlaneCenter (MTH3D_tdstVector *p_stPosition);
void GetPlaneForMouseMove (MTH3D_tdstVector *p_stX_Axe, MTH3D_tdstVector *p_stY_Axe);
void fn_vDrawMoveObjectFrame (GLD_tdstViewportAttributes *p1);
void fn_vDrawSuperObjectsAxis (GLD_tdstViewportAttributes *p1);
void fn_vTranslate (CPA_SuperObject *pSelected,MTH3D_tdstVector *p_stVector, BOOL bAbsolute);
tdeMouseMovePlane fn_eGetMouseMovePlane (void);
BOOL fn_bGetObjectMouseMoveMode (void);
/*===========================================================================
Popup menu
=========================================================================*/
void fn_vDisplayPopupMenu (tdstMousePos *p_stCoords);
void fn_vDisplayMenuCommand (UINT IDCmdMsg);
BOOL fn_bDefineSubMenu (EDT_SubMenu *_p_oEDTSubMenu);
void _OnSubMenuCommand (EDT_SubMenu *_p_oEDTSubMenu,UINT uiMsgID);
/*===========================================================================
Drawing
=========================================================================*/
void fn_vCenterOnObject (CPA_SuperObject *pTarget, BOOL bZoom, BOOL bKeepTargeted);
void fn_vZoomOnObject (CPA_SuperObject *pTarget);
void SetAutoTarget (BOOL bAutoTarget);
void SetAutoZoom (BOOL bAutoZoom);
void SetMoveCamera (BOOL bMoveCamera) { m_bMoveCamera = bMoveCamera; };
/*constrained X,Y and Z axes*/
void SetConsX (BOOL bCons);
void SetConsY (BOOL bCons);
void SetConsZ (BOOL bCons);
BOOL fn_bWorldIsGrided (void);
BOOL fn_bWorldIsWired (void);
BOOL fn_bWorldIsTextured (void);
void fn_vChangeWorldMask (long lOption, BOOL bAdd);
void fn_vComputeAllBound (void);
void fn_vComputeBoundRecurs (CPA_SuperObject *pFather);
tdeBVMode fn_eGetBVMode (void) { return m_eBVMode; }
void fn_vSetBVMode (tdeBVMode eBVMode);
void fn_vSetDisplayBV (BOOL bDisplayBV, CPA_SuperObject *pSupObj, BOOL bRecursive);
void fn_vComputeSuperObjectsCenters (GLD_tdstViewportAttributes *p1);
void fn_vDrawSuperObjectsCenters (GLD_tdstViewportAttributes *p1);
void fn_vGetScreenProjection (CPA_SuperObject *obj, MTH3D_tdstVector *prj);
/*===========================================================================
Drawing
=========================================================================*/
void fn_vSaveDisplayMode (void);
void fn_vLoadDisplayMode (void);
void fn_vSaveOptions (void);
void fn_vLoadOptions (void);
BOOL fn_bIsScaleActive (void) { return m_bScaleObject ; }
void fn_bSetScaleActive (BOOL bScale) { m_bScaleObject = bScale ;}
void fn_vScale (void);
void fn_vReScale (void);
void fn_vDoDialogOptions (void);
/*===========================================================================
Language
=========================================================================*/
void fn_vSaveLanguage (CString csLanguage);
CString fn_csGetCurrentLanguage (void) { return m_csCurrentLanguage; }
/*===========================================================================
User Prefix
=========================================================================*/
long GetNbObjectsRenamed (void) { return m_lNbObjectsRenamed; }
void fn_vAddRenamedObject (void) { m_lNbObjectsRenamed++; }
void SetNbObjectsRenamed (long lNbRenamed) { m_lNbObjectsRenamed = lNbRenamed; }
BOOL fn_bIsLoadingWorld (void) { return m_bIsLoadingWorld; }
void SetLoadingWorld (BOOL bLoading) { m_bIsLoadingWorld = bLoading; }
CString GetUserPrefix (void) { return m_csUserPrefix; }
CString GetUserPrefix (long lIndex) { return (lIndex != -1) ? m_a_csUserPrefix[lIndex] : ""; }
CString GetUserName (long lIndex) { return (lIndex != -1) ? m_a_csUserNames[lIndex] : "<Unknown>"; }
CString GetPrefixedName (const CString csName);
BOOL fn_bCanModifyObject (CPA_BaseObject *pObject);
void fn_vAddAuthorization (const CString csPrefix);
BOOL fn_bIsAuthorized (const CString csPrefix);
void fn_vAddProhibition (const CString csPrefix);
BOOL fn_bIsProhibited (const CString csPrefix);
void fn_vSaveUserPrefix (CString csUserPrefix);
void fn_vSaveAuthorizations (void);
void fn_vSaveProhibitions (void);
BOOL fn_bUseUserPreferences (void) { return m_bUseUserPreferences; }
void fn_vUseUserPreferences (BOOL bUse) { m_bUseUserPreferences = bUse; }
/*===========================================================================
Mouse move
=========================================================================*/
BOOL fn_bGetAutomaticSwap (void) { return m_bAutomaticSwap;}
BOOL fn_bSetAutomaticSwap (BOOL bASwap) { return m_bAutomaticSwap = bASwap;}
tdeForceSwap fn_eSetForceSwap (tdeForceSwap eForceSwap) { return m_eForceSwap = eForceSwap;}
tdeForceSwap fn_eGetForceSwap (void) { return m_eForceSwap;}
/*===========================================================================
TipOfDay
=========================================================================*/
void fn_vDisplayTipOfDay (CString csEditor, CString csTag, BOOL bFirstTime);
/* Begin Silviu Simen Select by sector*/
/*===========================================================================
Sector Selection
=========================================================================*/
void SelectBySector (void);
/* End Silviu Simen Select by sector*/
/*#################################################################################*/
/* PROTECTED FUNCTIONS*/
/*#################################################################################*/
protected:
/*===========================================================================
Selection
=========================================================================*/
BOOL fn_bCanBeSelected (CPA_SuperObject *pEdObj, CString csTypeName, BOOL bCheckSelect);
void fn_vSendMessageSelect (CPA_SuperObject *pEdObj, tdeTypeModif eType);
/*===========================================================================
Pyramid
=========================================================================*/
void fn_vChangePyramidDepth (tdstMousePos *p_stPos);
void fn_vCreateSelectionFrame (tdstMousePos *p_stPos);
void fn_vCalculateSelectionPyramidNormals (void);
BOOL fn_bIsVertexInSelectionPyramid (MTH3D_tdstVector *p_stVertex);
void fn_vSelectObjectsInPyramid (void);
void fn_vSetZCamera (GLD_tdhDevice hDev,GLD_tdhViewport hVp,MTH3D_tdstVector *p_stSrcVertex,MTH3D_tdstVector *p_stDstVertex,double z);
/*===========================================================================
Drawing
=========================================================================*/
void SetDrawingFlags (CPA_SuperObject *pEdObj, tdeDrawingFlag eNewFlag);
/*===========================================================================
Language
=========================================================================*/
void fn_vInitLanguage (void);
/*===========================================================================
User Prefix
=========================================================================*/
void fn_vInitUserPrefix (void);
BOOL fn_bLoadListOfUsers (void);
void fn_vLoadAuthorizations (void);
void fn_vLoadProhibitions (void);
long GetPrefixIndex (const CString csPrefix);
CString GetUserFromUsersFile (void);
};
/* access*/
#define M_GetMultiDevice3D() GetInterface()->GetMultiDevice3D()
#define M_GetEditManager() GetInterface()->GetMultiDevice()->GetEditManager()
#define M_GetMainWorld() GetInterface()->GetMainWorld()
#define M_GetWorld() GetInterface()->GetCurrentWorld()
#define M_GetEditor() GetInterface()->GetEditor()
#define M_GetEvtEditor() GetInterface()->GetEvtEditor()
#define M_GetObjectDLLList() (M_GetMainWorld()->GetListOfObjectDLLBase())
#define M_GetToolDLLList() (M_GetMainWorld()->GetListOfToolDLLBase())
#define M_GetEditorList() (M_GetMainWorld()->GetListOfEditorBase())
/* members*/
#define M_GetSelectMode() GetInterface()->GetSelectMode()
#define M_GetCurrentModel() GetInterface()->GetCurrentModel()
#define M_GetListOfModelsByType() GetInterface()->GetListOfModelsByType()
/* functions*/
#define M_CancelSelection() GetInterface()->fn_vCancelCurrentSelection()
/* main world members*/
#define M_GetCurrentEditor() ((CPA_DLLBase *) GetInterface()->GetMainWorld()->GetCurrentEditor())
/* world members*/
#define M_GetListSelected() M_GetWorld()->GetListSelected()
#define M_GetSingleSelection() M_GetWorld()->GetSingleSelection()
#define M_GetCountSelected() M_GetWorld()->GetCountSelected()
#define M_GetListAllDLLs() M_GetWorld()->GetListAllDLLs()
#define M_GetListAllTypes() M_GetWorld()->GetListAllTypes()
#define M_GetListAllObjects() M_GetWorld()->GetListAllObjects()
#define M_GetListOfListByDLL() M_GetWorld()->GetListOfListByDLL()
/* editor members*/
#define M_IsCurrentEditor() GetInterface()->GetEditor()->fn_bIsCurrentEditor()
#endif /* __CPA_INTERFACE__HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,172 @@
/*=========================================================================*/
/* CPAKACnf.hpp : CPA_KeyActionConfiguration Class for editors.*/
/**/
/* Version 1.0*/
/* Creation date 21/10/96*/
/* Author: Philippe Touillaud*/
/**/
/* The aim of this class is to provide tools for configurating the keyboard:*/
/* Init and configuration of the actions ran by a defined keypress.*/
/* Revision date*/
/* Author: CB : To isolate from CPA project*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/*=========================================================================*/
#ifndef __CPAKeyActionConfiguration_HPP__
#define __CPAKeyActionConfiguration_HPP__
#ifdef ACTIVE_EDITOR
#include <afxtempl.h>
/****************************************/
#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
/****************************************/
/*///////////////////////////////////////////////////////////////////////////*/
/* Some constants*/
#define C_KeybSHIFT 1
#define C_KeybCTRL 2
/*CPA2 Corneliu Babiuc (ALT key) 14-05-98*/
#define C_KeybALT 4
/*END CPA2 Corneliu Babiuc (ALT key) 14-05-98*/
/*###########################################################################*/
/* To define a key*/
class CPA_EXPORT CPA_KeyDefinition : public CObject
{
public:
CPA_KeyDefinition(char cKey, char cFlags, unsigned short uwAction)
{
m_cKey = cKey;
m_cFlags = cFlags;
m_uwAction = uwAction;
}
public:
char m_cKey; /* Value of key stroke*/
char m_cFlags; /* Value of flags*/
unsigned short m_uwAction; /* Associated action*/
};
/*///////////////////////////////////////////////////////////////////////////*/
/* Structure used for the definition of the link table KAction-IniNames*/
typedef struct tdstKeyboardActionDef_
{
char *p_szIniName; /* Name of section in .INI file*/
unsigned short uwAction; /* Associated action*/
} tdstKeyboardActionDef;
/*///////////////////////////////////////////////////////////////////////////*/
class CPA_EXPORT CPA_KeyActionConfiguration : public CObject
{
/* Construction, Destruction*/
public:
CPA_KeyActionConfiguration(CString, tdstKeyboardActionDef *p_a_stKeybrdDef);
~CPA_KeyActionConfiguration();
private:
typedef enum {VALID, INVALID, UNKNOWN} tdeNameValid;
CString m_szObjectName;
CString m_szFileIniName;
tdeNameValid m_eFileIniNameValid;
tdstKeyboardActionDef *m_p_a_stKeybrdDef;
CList<CPA_KeyDefinition *, CPA_KeyDefinition *> m_lstKeyDefinition;
/*///////////////////////////////////////////////////////////////////////////*/
public:
/**/
/* Get/Set*/
/**/
void mfn_vSetObjectName(CString szName) { m_szObjectName = szName; }
CString mfn_szGetObjectName(void) { return m_szObjectName; }
/**/
/* Flags tools*/
/**/
BOOL mfn_bIsShiftSet(char cFlags) { return (cFlags == C_KeybSHIFT); }
BOOL mfn_bIsCtrlSet (char cFlags) { return (cFlags == C_KeybCTRL); }
void mfn_vSetShift (char *cFlags) { *cFlags = C_KeybSHIFT; }
void mfn_vSetCtrl (char *cFlags) { *cFlags = C_KeybCTRL; }
void mfn_vSetFlag (char cVKCode, char *cFlags);
/*CPA2 Corneliu Babiuc (ALT key) 14-05-98*/
BOOL mfn_bIsAltSet (char cFlags) {return (cFlags == C_KeybALT); }
void mfn_vSetAlt (char *cFlags) { *cFlags = C_KeybALT; }
/*END CPA2 Corneliu Babiuc (ALT key) 14-05-98*/
/**/
/* Key status acces*/
/**/
BOOL mfn_bIsReserved(char cKey);
BOOL mfn_bIsCombined(char cKey);
BOOL mfn_bKeyIsUsed(char cKey, char cFlags);
BOOL mfn_bKeyIsUsedOutside(char cKey, char cFlags);
/**/
/* List inits*/
/**/
void mfn_vUpdateIniFileFromKeyDefList(void);
BOOL IsInitFileValid() { return (m_eFileIniNameValid == VALID); }
/**/
/* Finding associations*/
/**/
unsigned short mfn_uwKeyToAction(char cKey);
unsigned short mfn_uwKeyToAction(char cKey, char cFlags);
char mfn_cActionToKey(unsigned short uwAction, char *p_cFlags);
/**/
/* For the keyboard configuration interface*/
/**/
void mfn_vBuildStringList(CList<CString, CString> *);
void mfn_vUpdateKeyDefListFromStringList(CList<CString, CString> *);
CString mfn_oConvertKeyDefInString(char, char, unsigned short);
char mfn_cConvertStringInKeyDef(const CString *, char *, unsigned short *);
char mfn_cIniStringToKey(LPCTSTR, char *);
CString mfn_oKeyToIniString(char, char);
CString mfn_oKeyToKeyString(char, char);
void CPA_KeyActionConfiguration::mfn_vDialog(CWnd *, CString);
CString mfn_oConvertIniStringToKeyString(const CString *p_oIniString);
/*///////////////////////////////////////////////////////////////////////////*/
private:
/**/
/* Load list from INI file*/
/**/
void mfn_vUpdateKeyDefListFromIniFile(void);
void mfn_vAddKeyDefFromIniFile(LPCTSTR p_szDes, unsigned short uwAction);
/**/
/* Conversions*/
/**/
unsigned short mfn_uwIniStringToAction(const CString *);
CString mfn_oActionToIniString(unsigned short);
/**/
/* INI file access*/
/**/
CString mfn_oGetProfileString(LPCTSTR p_szDes);
BOOL mfn_bWriteProfileString(LPCTSTR p_szDes, LPCTSTR p_oValue);
/**/
/* Other useful tools*/
/**/
void mfn_vRemoveEditorKeyDefList(void);
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* ACTIVE_EDITOR*/
#endif /*__CPAKeyActionConfiguration_HPP__*/

View File

@@ -0,0 +1,142 @@
/*=========================================================================
*
* CPALists.hpp : lists of the Editor Objects
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#include "objdllb.hpp"
#include "Sort3lst.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
/****************************************/
#ifndef __CPA_LISTS_HPP__
#define __CPA_LISTS_HPP__
/* define*/
typedef enum tdeListUpdateMode_
{
E_lum_Insert,
E_lum_ReInsert,
E_lum_Delete,
}
tdeListUpdateMode;
class EDT_ListByDLL;
/*#################################################################################*/
/* Instances */
/*#################################################################################*/
/*===========================================================================
* Description: Class for the Lists By Type
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* List corresponding to the type "m_lTypeObject"
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT EDT_ListByType : public CObject
{
protected:
CPA_ObjectDLLBase *m_pObjectDLL;
CString m_csTypeName;
EDT_ListByType ();
void SetObjectDLL (CPA_ObjectDLLBase *p_oDLL) { m_pObjectDLL = p_oDLL; }
void SetTypeName (CString csTypeName);
public:
/* list of instances*/
CPA_List<CPA_SuperObject> m_stListObjects;
/* list Sorted*/
CPA_BaseObjectList m_stSortedList;
EDT_ListByType (CPA_ObjectDLLBase *p_oDLL, CString csTypeName);
~EDT_ListByType ();
/* Type*/
CString GetTypeName (void) { return m_csTypeName; }
/* DLL*/
CPA_ObjectDLLBase * GetDLL (void) { return m_pObjectDLL; }
/* Instances*/
CPA_SuperObject * GetObjectWithName (CString csName);
/* Reinit*/
void fn_vReinit (void);
friend class EDT_ListByDLL;
};
/*===========================================================================
* Description: Class for the Lists By DLL
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* List corresponding to the type "m_lTypeObject"
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT EDT_ListByDLL : public CObject
{
protected:
/* for identification*/
CPA_ObjectDLLBase *m_pDLLObject;
public:
/* list of instances*/
EDT_ListByType m_stListAllTypes;
/* list of selected objects*/
CPA_List<CPA_SuperObject> m_stListSelected;
/* list of concerned objects*/
CPA_List<CPA_SuperObject> m_stListConcerned;
/* list of protected childs selected*/
CPA_List<CPA_SuperObject> m_stListProtectSelected;
/* list of protected childs concerned*/
CPA_List<CPA_SuperObject> m_stListProtectConcerned;
/* lists by type*/
CPA_List<EDT_ListByType> m_stListOfListByType;
/* constructor*/
EDT_ListByDLL (CPA_ObjectDLLBase *p_oDLL = NULL);
~EDT_ListByDLL (void);
/* Lists*/
EDT_ListByType * GetListByType (CString csTypeName);
/* Instance*/
CPA_SuperObject * GetObject (char *szTypeName, char *szName);
/* DLL*/
CPA_ObjectDLLBase * GetDLL (void) { return m_pDLLObject; }
/* Update*/
void fn_vReinit (void);
void fn_vUpdateSortedList (void);
void fn_vUpdateListObject (CPA_SuperObject *pEdObj, tdeListUpdateMode eType);
void fn_vUpdateListSelect (CPA_SuperObject *pEdObj, tdeListUpdateMode eType, BOOL bIsSelected);
void fn_vUpdateListProtect (CPA_SuperObject *pEdObj, tdeListUpdateMode eType, BOOL bIsSelected);
};
#endif /* __CPA_LISTS_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,164 @@
/* (c) Ubi Studios 1996*/
/* See Vincent Greco for any comment or question*/
#ifndef __CPALST_HPP__
#define __CPALST_HPP__
/*#include "stdafx.h"*/
#include "afxtempl.h"
#include "LstDcl.h"
template<class TYPE>
class CPA_List : public CList<TYPE*, TYPE*>
{
public:
CPA_List(){}
~CPA_List(){}
/* TYPE* FindElementFromPos (POSITION& rPosition) const; */
TYPE* FindElementFromIndex(int nIndex) const;/*nIndex is int (not tIndex) because of MFC compatibility...*/
/*Position based Iteration*/
TYPE* GetAtElement (POSITION& rPosition) const;
TYPE* GetHeadElement (POSITION& rPosition) const;
TYPE* GetTailElement (POSITION& rPosition) const;
TYPE* GetNextElement (POSITION& rPosition) const;
TYPE* GetPrevElement (POSITION& rPosition) const;
BOOL AvailableElement(POSITION& rPosition) const;
/*Element based Iteration*/
TYPE* GetHeadElement (void) const;
TYPE* GetTailElement (void) const;
TYPE* GetNextElement (TYPE* pElement) const;
TYPE* GetPrevElement (TYPE* pElement) const;
BOOL AvailableElement(TYPE* pElement) const;
};
/*inline functions*/
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetAtElement(POSITION& rPosition) const
{
return rPosition!=NULL ? GetAt(rPosition) : NULL;
}
template<class TYPE>
inline TYPE* CPA_List<TYPE>::FindElementFromIndex(int nIndex) const
{
POSITION Position=FindIndex(nIndex);
return GetAtElement(Position);
}
/*Position based Iteration*/
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetHeadElement(POSITION& rPosition) const
{
rPosition = GetHeadPosition();
return GetAtElement(rPosition);
}
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetTailElement(POSITION& rPosition) const
{
rPosition = GetTailPosition();
return GetAtElement(rPosition);
}
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetNextElement(POSITION& rPosition) const
{
if(rPosition)
{
GetNext(rPosition);
return GetAtElement(rPosition);
}
else
return GetHeadElement(rPosition);
}
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetPrevElement(POSITION& rPosition) const
{
if(rPosition)
{
GetPrev(rPosition);
return GetAtElement(rPosition);
}
else
return GetTailElement(rPosition);
}
template<class TYPE>
inline BOOL CPA_List<TYPE>::AvailableElement(POSITION& rPosition) const
{
return (rPosition != NULL);
}
/*Element based Iteration*/
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetHeadElement(void) const
{
POSITION Position;
return GetHeadElement(Position);
}
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetTailElement(void) const
{
POSITION Position;
return GetTailElement(Position);
}
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetNextElement(TYPE* pElement) const
{
POSITION Position=NULL;
if(!pElement) return GetNextElement(Position);/*return head*/
Position=Find(pElement);
return Position?GetNextElement(Position):NULL;/*if not found return NULL*/
}
template<class TYPE>
inline TYPE* CPA_List<TYPE>::GetPrevElement(TYPE* pElement) const
{
POSITION Position=NULL;
if(!pElement) return GetPrevElement(Position);/*return tail*/
Position=Find(pElement);
return Position?GetPrevElement(Position):NULL;/*if not found return NULL*/
}
template<class TYPE>
inline BOOL CPA_List<TYPE>::AvailableElement(TYPE* pElement) const
{
return (pElement != NULL);
}
#define M_ForAllTheElementsInList(pElement, pListe, Position) \
for \
( \
pElement=(pListe)->GetHeadElement(Position); \
(pListe)->AvailableElement(Position); \
pElement=(pListe)->GetNextElement(Position) \
)
#endif/*__CPALST_HPP__*/

View File

@@ -0,0 +1,57 @@
/*=========================================================================*/
/* CPAMCapt.hpp : MouseCapturer class. virtual class that all objects capturing*/
/* mouse movement messages must derive from.*/
/**/
/* Version 1.0*/
/* Creation date 24/01/97*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1997*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* BENOIT GERMAIN.*/
/*=========================================================================*/
#ifndef __CPAMCAPT_HPP__
#define __CPAMCAPT_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
class CPA_MouseCapturer
{
public:
CPA_MouseCapturer();
~CPA_MouseCapturer();
/*any class deriving from CPA_MouseCapturer one must declare these methods as follows,*/
/*because CPA_MouseCapturer does not derive from CWnd*/
/*CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }*/
/*if the object deriving from CPA_MouseCapturer does not derive from CWnd,*/
/*an alternative is provided to the no-argument method, but the first one must overloaded as is:*/
/*CWnd *m_p_oGrabCapture() { ASSERT(FALSE); return (CWnd *) NULL; }*/
virtual CWnd *m_p_oGrabCapture() = 0;
CWnd *m_p_oGrabCaptureFor(CWnd *pWnd);
CWnd *m_p_oSurrenderCapture(BOOL bCheckCoherence = TRUE);
private:
CWnd *m_p_oPreviousCapturer;
CWnd *m_p_oCurrentCapturer;
BOOL m_bDestruction;
};
#endif /* ACTIVE_EDITOR*/
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __CPAMCAPT_HPP__*/

View File

@@ -0,0 +1,83 @@
#ifndef __CPAMDF_HPP__
#define __CPAMDF_HPP__
#ifdef ACTIVE_EDITOR
#include "lst.hpp"
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
class CPA_EXPORT CPA_Modif : public CObject
{
private :
CString Name;
unsigned short Type;
unsigned long Serial;
BOOL m_HasBeenDone;
static unsigned long LastSerial;
public:
CPA_Modif(unsigned short pType, CString pName="something", BOOL pBlock = FALSE);
~CPA_Modif(void){}
virtual BOOL Do(void)=0;
virtual BOOL Undo(void)=0;
void Done(void){m_HasBeenDone=TRUE;}
void Undone(void){m_HasBeenDone=FALSE;}
BOOL HasBeenDone(void){return m_HasBeenDone;}
void SetName(CString pName) {Name=pName;}
CString GetName(void) {return Name;}
void SetType(unsigned short pType) {Type=pType;}
unsigned short GetType(void) {return Type;}
unsigned long GetSerial(void) {return Serial;}
};
/*-------------------------------------------------*/
class CPA_EXPORT CPA_EditManager : public CObject
{
private :
POSITION NextPosition;
POSITION PrevPosition;
CPA_Modif *NextModif;
CPA_Modif *PrevModif;
long CurrentIndex;
int m_iMaxUndo;/*New NZO 10/10/96*/
BOOL m_bIsReDoing;
BOOL m_bIsUnDoing;
public:
CPA_List<CPA_Modif> ListOfModifs;
public :
CPA_EditManager(int iMaxUndo=0);
~CPA_EditManager(void);
BOOL AskFor(CPA_Modif * pModif, BOOL _bDeleteUponFailure = TRUE);
void Reset(void);/*New NZO 10/10/96*/
BOOL CanRedo(void) {return CurrentIndex<ListOfModifs.GetCount();}
BOOL CanUndo(void) {return CurrentIndex>0;}
BOOL Redo(void);
BOOL Undo(void);
BOOL fn_bIsUnDoing (void) { return m_bIsUnDoing; }
BOOL fn_bIsReDoing (void) { return m_bIsReDoing; }
CString GetRedoName(void);
CString GetUndoName(void);
};
#endif /* ACTIVE_EDITOR*/
#endif /*ACTIVE_EDITOR*/
#endif /* __CPAMDF_HPP__*/

View File

@@ -0,0 +1,133 @@
/*=========================================================================
*
* CPAModel.hpp : lists of the Editor Objects
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
#ifndef __CPA_MODELS_HPP__
#define __CPA_MODELS_HPP__
#include "objdllb.hpp"
#include "Sort3lst.hpp"
/*#################################################################################*/
/* Models*/
/*#################################################################################*/
class CPA_Interface;
/*===========================================================================
* Description: Class for the Models
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* List corresponding to the type "m_lTypeObject"
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT EDT_Model : public CObject
{
public:
CPA_ObjectDLLBase *m_pObjectDLL;
CString m_csTypeName;
CString m_csName;
CString m_csBitmapName;
int m_iBitmapPos;
/* constructor*/
EDT_Model (CPA_ObjectDLLBase *p_oDLL, CString csTypeName, CString csName, CString csBitmapName, CPA_Interface *pInterface);
~EDT_Model (void);
/* bitmap*/
BOOL fn_bChangeBitmap (CPA_Interface *pInterface, CString csNewBitmapName);
};
/*===========================================================================
* Description: Class for the Model View
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModelView : public C3ListView
{
public:
/* constructeur*/
EDT_ModelView();
~EDT_ModelView();
protected:
void OnSelectItem( short wCase );
};
/*===========================================================================
* Description: Class for the Models By Type
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* List corresponding to the type "m_lTypeObject"
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT EDT_ModelsByType : public CObject
{
protected:
CPA_ObjectDLLBase *m_pDLLObject;
CString m_csTypeName;
public:
/* models*/
CPA_List<EDT_Model> m_stListModels;
/* view*/
EDT_ModelView *m_pModelView;
/* constructor*/
EDT_ModelsByType (CString csTypeName, CPA_ObjectDLLBase *p_oDLL, CWnd *pParentDialog, CBitmapList *pBitmapList);
~EDT_ModelsByType (void);
/* parameters*/
BOOL CanLoadNewModel (void) { return m_pDLLObject->fn_bCanLoadNewModel(m_csTypeName); }
BOOL CanDeleteModel (void) { return m_pDLLObject->fn_bCanDeleteModel(m_csTypeName); }
BOOL CanChangeModelIcon (void) { return m_pDLLObject->fn_bCanChangeModelIcon(m_csTypeName); }
BOOL CanSaveList (void) { return m_pDLLObject->fn_bCanSaveListModels(m_csTypeName); }
CString GetTypeName (void) { return m_csTypeName; }
/* Model*/
EDT_Model * GetModelWithName (CString csName);
/* DLL*/
CPA_ObjectDLLBase * GetDLL (void) { return m_pDLLObject; }
/* Reinit*/
void fn_vReinit (void);
void fn_vInitModelView (CWnd *pParentDialog, CBitmapList *pBitmapList);
void fn_vFillModelView (void);
/* models*/
void fn_vAddANewModel (EDT_Model *pNewModel);
void fn_vRemoveAModel (EDT_Model *pOldModel);
};
#endif /* __CPA_MODELS_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,118 @@
/* definition of Main world class*/
#ifndef __CPA_MWORLD_HPP__
#define __CPA_MWORLD_HPP__
#ifdef ACTIVE_EDITOR
#include <afxtempl.h>
#include "ToolDLLb.hpp"
#include "ObjDLLb.hpp"
#include "CPAWorld.hpp"
#include "CPASList.hpp"
#include "geo.h"
#include "gli.h"
/****************************************/
#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
/****************************************/
class CPA_Interface;
class DEV_MultiDevice;
class FRMBaseMenu;
class CPA_EXPORT CPA_MainWorld
{
private:
long m_lKey;
CPA_Interface *m_p_oInterface;
protected:
CPA_World *m_p_oGlobalWorld;
CPA_List<CPA_ObjectDLLBase> m_oListOfObjectDLL;
CPA_List<CPA_ToolDLLBase> m_oListOfToolDLL;
CPA_List<CPA_EditorBase> m_oListOfEditorBase;
CPA_List<CPA_ToolDLLBase> m_oListOfToolDLLReceivingWindowMsg;
CPA_List<CPA_ToolDLLBase> m_oListOfToolDLLReceivingEvtEditorMsg;
FRMBaseMenu *m_p_oCurrentFrameBaseMenu;
CPA_EditorBase *m_p_oCurrentEditor;
public:
GLI_tdxHandleToLight m_a_tdxhArrayOfLocalLights[C_lMaxLightInViewport];
long m_lNbLocalLights;
GLI_tdxHandleToLight m_a_tdxhArrayOfDynamicLights[C_lMaxLightInViewport];
long m_lNbDynamicLights;
/* constructor/destructor*/
CPA_MainWorld (long lKey,DEV_MultiDevice *p_oDevice, CPA_Interface *p_oInterface);
~CPA_MainWorld (void);
/* acces to parameters*/
CPA_World *GetWorld (void) { return m_p_oGlobalWorld; }
CPA_Interface *GetInterface (void) { return m_p_oInterface; }
FRMBaseMenu *GetFRMBase (void) { return m_p_oCurrentFrameBaseMenu; }
CPA_EditorBase *GetCurrentEditor (void) { return m_p_oCurrentEditor; }
void fn_vSetCurrentFRMBaseMenu(FRMBaseMenu *_p_oCurrentFrameBaseMenu);
/* load a world*/
void LoadANewWorld(char *szLoadPath, char *szFileName);
/* objects and lists*/
CPA_BaseObjectList * fn_p_oGetOriginalObjectList (CString csTypeName);
CPA_BaseObjectList * fn_p_oGetInvalidObjectList (CString csTypeName);
long fn_lFindObjects (CPA_List<CPA_BaseObject> *p_oList, CString csObjectName, CString csObjectType = "",CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
CPA_BaseObject * fn_p_oFindObject (CString csObjectName, CString csObjectType = "", CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
CPA_BaseObject * fn_p_oFindObjectWithEngine (void *p_vEngineStruct, CString csObjectType = "", CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
BOOL fn_bExist (CString csName, CString csTypeName = "",CPA_BaseObject *p_oOwner = NO_CRITERIA, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
BOOL fn_bExist (CPA_BaseObject *p_oObject, tdeResearchCriteria eCriteria = E_rc_ValidObjects);
/* Editors*/
void fn_vRegisterEditor (CPA_EditorBase *p_oEditor);
CPA_List<CPA_EditorBase> * GetListOfEditorBase (void) { return &m_oListOfEditorBase; }
CPA_EditorBase * GetEditorByName(CString csName);
/* DLLs*/
CPA_DLLBase *GetDLLWithTypeName (CString csTypeName);
/* object DLLs*/
CPA_ObjectDLLBase *GetObjectDLLWithName (CString csName);
CPA_ObjectDLLBase *GetObjectDLLWithType (long lEngineType);
CPA_List<CPA_ObjectDLLBase> *GetListOfObjectDLLBase(void) { return &m_oListOfObjectDLL; }
/* tool DLLs*/
CPA_ToolDLLBase *GetToolDLLWithName(char *szName);
CPA_List<CPA_ToolDLLBase> *GetListOfToolDLLBase (void) { return &m_oListOfToolDLL; }
CPA_List<CPA_ToolDLLBase> *GetToolDLLReceivingWindowMsg (void) { return &m_oListOfToolDLLReceivingWindowMsg; }
CPA_List<CPA_ToolDLLBase> *GetToolDLLReceivingEvtEditorMsg (void) { return &m_oListOfToolDLLReceivingEvtEditorMsg; }
void fn_vSetReceivingWindowMsgState(CPA_ToolDLLBase *,BOOL _bWantToReceive = TRUE);
void fn_vSetReceivingEvtEditorMsgState(CPA_ToolDLLBase *,BOOL _bWantToReceive = TRUE);
/* current editor*/
BOOL fn_bSetCurrentEditor (CPA_EditorBase *pNewEditor);
BOOL fn_bRestoreEditor (CPA_EditorBase *pNewEditor);
BOOL fn_bActivateEditor (CPA_EditorBase *pNewEditor, CPA_List<CPA_BaseObject> *pParams);
BOOL fn_bCloseEditor (CPA_EditorBase *pOldDLL);
/* Begin Silviu Simen 01 september 1998 List of Objects in Sectors*/
CPA_ListBySector m_stListObjectsInSectors;
/* End Silviu Simen 01 september 1998 List of Objects in Sectors*/
};
#endif /*ACTIVE_EDITOR*/
#endif /*__CPA_MWORLD_HPP__*/

View File

@@ -0,0 +1,12 @@
/*===================================================================
* Name of Objects
*=================================================================*/
#ifndef __CPAOBJID_H__
#define __CPAOBJID_H__
/* Sector.dll*/
#define C_szSectorTypeName "Sector"
#define C_szLightTypeName "Light"
#endif /* __CPAOBJID_H__*/

View File

@@ -0,0 +1,110 @@
/*=========================================================================
*
* EDTParam.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
#ifndef __CPAPARAM_HPP__
#define __CPAPARAM_HPP__
#include "itf/DEVVp3D.hpp" /* tdstMousePos*/
class CPA_SuperObject;
/*#################################################################################*/
/* PARENT MODIFICATION*/
/*#################################################################################*/
/*===========================================================================
Class EDT_SaveParents
=========================================================================*/
class EDT_SaveParents : public CObject
{
public:
CPA_SuperObject *m_pChild;
CPA_SuperObject *m_pInitialParent;
CPA_SuperObject *m_pFinalParent;
EDT_SaveParents (CPA_SuperObject *pChild, CPA_SuperObject *pInitParent, CPA_SuperObject *pFinalParent)
{
m_pChild = pChild;
m_pInitialParent = pInitParent;
m_pFinalParent = pFinalParent;
}
~EDT_SaveParents (void) { }
};
/*#################################################################################*/
/* POSITION MODIFICATION*/
/*#################################################################################*/
/*===========================================================================
Class EDT_SavePos
=========================================================================*/
class EDT_SavePos : public CObject
{
public:
CPA_SuperObject *m_pObject;
GEO_tdxHandleToMatrix m_hInitialMatrix;
GEO_tdxHandleToMatrix m_hFinalMatrix;
EDT_SavePos (CPA_SuperObject *pEdObj, GEO_tdxHandleToMatrix hInitMatrix)
{
m_pObject = pEdObj;
m_hFinalMatrix = NULL;
m_hInitialMatrix = (POS_tdxHandleToPosition) malloc (sizeof (POS_tdstCompletePosition));
POS_fn_vSetIdentityMatrix(m_hInitialMatrix);
GEO_M_vCopyMatrix(m_hInitialMatrix, hInitMatrix);
}
~EDT_SavePos (void) { }
};
/*===========================================================================
Class EDT_SaveGlobalPos
=========================================================================*/
class EDT_SaveGlobalPos : public CObject
{
public:
CPA_SuperObject *m_pObject;
GEO_tdxHandleToMatrix m_hInitialGlobalMatrix;
GEO_tdxHandleToMatrix m_hFinalGlobalMatrix;
EDT_SaveGlobalPos (CPA_SuperObject *pEdObj, GEO_tdxHandleToMatrix hInitMatrix)
{
m_pObject = pEdObj;
m_hFinalGlobalMatrix = NULL;
m_hInitialGlobalMatrix = (POS_tdxHandleToPosition) malloc (sizeof (POS_tdstCompletePosition));
POS_fn_vSetIdentityMatrix(m_hInitialGlobalMatrix);
/*m_hInitialGlobalMatrix = POS_fn_hCreateMatrix(POS_C_xCompletePosition);*/
GEO_M_vCopyMatrix(m_hInitialGlobalMatrix, hInitMatrix);
}
~EDT_SaveGlobalPos (void) { }
};
#endif /* __CPAPARAM_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,61 @@
/*=========================================================================
*
* CPAPopM.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* FBF
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDTPOPM_HPP__
#define __EDTPOPM_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
/****************************************/
#include "CPASubM.hpp"
#include "DEVVP3D.hpp"
/*#########################*/
/* the popup entry*/
/*#########################*/
class CPA_EXPORT EDT_PopUpMenuEntry : public EDT_SubMenuEntry
{
public:
EDT_PopUpMenuEntry(CPA_EditorBase *p_oDLL, char *p_cName, UINT uiMsgID, UINT uiIntID, BOOL _bCheck = FALSE, BOOL _bEnable = TRUE);
UINT SendCommand (EDT_SubMenu *_p_oSubMenu);
};
/*#########################*/
/* the popup menu*/
/*#########################*/
class CPA_EXPORT EDT_PopUpMenu : public EDT_SubMenu
{
protected:
CMenu m_oMenu;
public:
EDT_PopUpMenu (UINT _uiIDStart = C_EDTPopUpMenuIDStart);
void Build (CMenu *pPopupMenu = NULL);
void Draw (DEV_ViewPort *_p_oViewPort,tdstMousePos *p_stCoords);
EDT_SubMenu* fn_p_oGetNewSubMenu (char *_szName, tde_SubMenu _eMenuType = C_SubSubMenu);
void AddAnEntry (CPA_EditorBase *p_oOwner = NULL, char *p_cText = NULL, UINT uiEntryID = 0, BOOL _bCheck = FALSE, BOOL _bEnable = TRUE);
};
#endif /* __EDTPOPM_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,167 @@
/*=========================================================================*/
/* CPAPopTB.hpp : PopUpToolBar class. It's a kind of Icon Menu.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 26/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* OLIVIER DIDELOT OR MARC VILLEMAIN.*/
/*=========================================================================*/
#ifndef __CPAPOPTB_HPP__
#define __CPAPOPTB_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
/* Messages that can be send by a toolbar*/
extern BOOL g_bMouseLocked;
#define C_MAX_POPUPTOOLBAR_BUTTONS 220 /* 11 * 20*/
#define C_MAX_POPUPTOOLBAR_FAMILY 20
#define C_MAX_BUTTON_PER_FAMILY 11
typedef struct tdstButton_
{
long lId;
long lIndexBitmap;
BOOL bPermit;
BOOL bVisible;
BOOL bIsAMode;
char szTipText[80];
} tdstButton;
typedef struct tdstButtonDef_
{
long lId;
BOOL bIsAMode;
char szTip[80];
} tdstButtonDef;
#include "CPAWButo.hpp"
/*///////////////////////////////////////////////////////////////////////////*/
/* CPA_PopUpToolBar window*/
class CPA_EXPORT CPA_PopUpToolBar : public CToolBarCtrl
{
/* Construction*/
public:
CPA_PopUpToolBar();
CPA_PopUpToolBar(CPA_PopUpToolBar&);
long GetNbFamilies() { return m_lNbFamilies; };
long GetIdResource() { return m_lIdResource; };
long GetButtonSizeX() { return m_lButtonSizeX; };
long GetButtonSizeY() { return m_lButtonSizeY; };
void SetButton(long lId);
void SetButtons(long pId[]);
BOOL IsPermitted(long lId);
BOOL IsAMode(long lId);
BOOL IsDefined() { return m_bDefined; };
int Define(tdstButtonDef a_stButtonDef[],
long lNbButtons,
long lIdResource,
long lIdEndFamily,
long lSizeX,
long lSizeY);
BOOL GetToolTipText(LPTOOLTIPTEXT p_ToolTipText, UINT Id);
void InitAllStatesArray(long aa_lSaveStates[][C_MAX_POPUPTOOLBAR_FAMILY]);
void SetInitialStates(long a_lIdButtons[], long lNbButtons);
void SetInitialState(long lIdButton);
long GetInitialStates(long a_lIdButtons[]);
long GetStates(long a_lStates[]);
void SetInitialPermissions(long a_lIdButtons[], BOOL a_bPermit[], long lNbbuttons);
void SetInitialPermission(long lIdButton,BOOL bPermit);
long GetInitialPermissions(BOOL a_bPermissions[]);
void SetPermissions(long a_lIdButtons[], BOOL a_bPermit[], long lNbbuttons);
void SetPermission(long lId, BOOL bPermit);
void SetPermissions(BOOL a_bPermit[]);
long GetPermissions(BOOL a_bPermissions[]);
long GetFamily(long lIdButton);
void SetVisibility(long lId, BOOL bVisible);
void SetVisibility(long a_lIdButtons[], BOOL a_bVisible[], long lNbButtons);
long GetOtherAvailableButtonInFamily(long lIdButton,
BOOL a_bPermissions[] = NULL,
long lFamily = -1);
long GetIndex(long lIdButton);
BOOL IsPresent(long lIdButton);
BOOL IsStandAlone(long lId);
BOOL IsOnScreen(long lIdButton);
long CreateToolBarCtrl(CWnd *p_WndParent, CPoint org);
private:
void OnButton(UINT Id, UINT, long lIndexInTB);
long GetNbButtonsTotalInFamily(long lFamily);
/* Attributes*/
private:
tdstButton m_a_stButtons[C_MAX_POPUPTOOLBAR_BUTTONS];
BOOL m_a_bInitialPermissions[C_MAX_POPUPTOOLBAR_BUTTONS];
long m_a_lFamiliesIndex[C_MAX_POPUPTOOLBAR_FAMILY];
long m_a_lButtonsInTBIndex[C_MAX_POPUPTOOLBAR_FAMILY];
long m_a_lInitialStates[C_MAX_POPUPTOOLBAR_FAMILY];
public:
long m_lNbFamilies;
long m_lNbButtonsTotal;
CPA_WndButton m_oWndButton;
int m_lIdResource;
int m_lIdCurrentButton;
long m_lIdEndFamily;
long m_lButtonSizeX;
long m_lButtonSizeY;
BOOL m_bMousePickedButton;
BOOL m_bCurrentButtonAlone;
BOOL m_bDefined;
BOOL m_bAllreadyCreated;
BOOL m_bJustPressed;
/* Operations*/
public:
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_PopUpToolBar)*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
public:
virtual ~CPA_PopUpToolBar();
/* Generated message map functions*/
protected:
/*{{AFX_MSG(CPA_PopUpToolBar)*/
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /* ACTIVE_EDITOR*/
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __PCAPOPTB_HPP__*/

View File

@@ -0,0 +1,470 @@
/*=========================================================================*/
/* CPAProj.hpp : main header file for the ACPPROJECT application*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 06/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 __CPAPROJ_HPP__
#define __CPAPROJ_HPP__
#include <afxtempl.h>
#include "geo.h"
#include "gli.h"
#include "CPAdllls.hpp"
#include "CPADD.hpp"
#include "CPAFrame.hpp"
#include "CPAKaCnf.hpp"
#include "CPAWData.hpp"
#include "CPAInter.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
class CPA_DlgAbout;
/*==================================================================================*/
/**/
/* Some general macros*/
/**/
/*==================================================================================*/
#define M_FocusToDevice(pMDevice) \
{ \
DEV_Device *pDevice = (pMDevice)->GetFocusDevice(); \
(pMDevice)->GetDevice(pDevice->GetNumber())->GetViewPort()->SetFocus(); \
}
#define M_GetMainApp() ((CPA_ProjectApp *) AfxGetApp())
#define M_GetMainWnd() ((CPA_MainFrame *) ((M_GetMainApp())->m_pMainWnd))
#define M_GetMainWnd2() ((FRMBaseMenu*)(g_oFrameGest.ma_p_oWinArray[2][2]))
#ifdef ACTIVE_EDITOR
#define M_GetMainDevice() ((DEV_MultiDevice *) M_GetMainWnd()->m_oSplitter.GetPane(0, 0))
#define M_GetMainDevice2() ((DEV_MultiDevice *) M_GetMainWnd2()->m_oSplitter.GetPane(0, 0))
#else /* ACTIVE_EDITOR*/
#define M_GetMainDevice() ((DEV_MultiDevice *) M_GetMainWnd()->GetActiveView())
#endif /* ACTIVE_EDITOR*/
#define M_GetMainDeviceNum(Num) (M_GetMainDevice()->GetDevice(Num))
#define M_GetMainDevice2D() ((DEV_MultiDevice2D *) M_GetMainDevice())
#define M_GetMainDevice3D() ((DEV_MultiDevice3D *) M_GetMainDevice())
#define M_GetMainActiveViewport() ((DEV_ViewPort *) (M_GetMainDevice()->GetDevice(M_GetMainDevice()->GetFocusDevice()->GetNumber())->GetViewPort()))
#define M_GetActiveViewport(p_Multi) ((DEV_ViewPort *) ((p_Multi)->GetDevice((p_Multi)->GetFocusDevice()->GetNumber())->GetViewPort()))
#define M_GetMainGLDDevice(Num) (M_GetMainDeviceNum(Num)->m_hDisplayDevice)
#define M_GetMainGLDViewport(Num) (M_GetMainDeviceNum(Num)->GetViewPort()->m_hDisplayViewport)
#define M_GetGLDDevice(p_Multi, Num) ((p_Multi)->GetDevice(Num)->m_hDisplayDevice)
#define M_GetGLDViewport(p_Multi, Num) ((p_Multi)->GetDevice(Num)->GetViewPort()->m_hDisplayViewport)
#define M_vFatalError(p_szError) {M_GetMainApp()->fn_vDynaFatalError(p_szError);}
#ifdef ACTIVE_EDITOR
#define M_bEditorsActive() (M_GetMainApp()->m_bEditorsAreActive)
#define M_GetListOfAllDLL() (&(M_GetMainApp()->m_oListOfAllDLL))
#define M_bFullScreenEditor() (M_GetMainApp()->m_bEditorsAreActive && M_GetMainApp()->m_bFullScreenInEditor)
#endif /* ACTIVE_EDITOR*/
class CPA_ProjectApp;
/*###########################################################################*/
/* CPA_ProjectApp:*/
/* See ACPProject.cpp for the implementation of this class*/
/**/
class CPA_MainWorld;
class CPA_EXPORT CPA_ProjectApp : public CWinApp
{
public:
CPA_ProjectApp();
~CPA_ProjectApp();
public:
CWinThread *m_p_oEngineThread; /* Thread for engine loop*/
BOOL m_bOldScreenSaveActive; /* To first actual screen save state*/
char *m_p_szMemoProfile; /* To save profile string*/
BOOL m_bBadResolution; /* Bad resolution ?*/
unsigned char m_bProjectIsClosing; /* Is project closing ?*/
HANDLE m_hDrawSem; /* For display*/
BOOL m_bWasInFullScreenBeforeLooseFocus;
BOOL m_bLeavingApplication;
BOOL m_bFlagTaken;
#ifdef ACTIVE_EDITOR
/*------------------*/
public:
BOOL m_bFullScreenInEditor;
/* BOOL m_bViewerOpened;*/
BOOL m_bAutoReinitTheMap;
CString m_csEditorDataPath; /* Complete access to data path*/
CString m_csEngineDataPath; /* Complete access to data path*/
CPA_DLLList m_oListOfAllDLL; /* List of all DLLs*/
unsigned char m_bEngineOneStep; /* To do one step of engine*/
CPA_MainWorld *m_p_oMainWorld; /* LE monde*/
CPA_KeyActionConfiguration *mp_oAppKeyboard; /* Keyboard defs*/
CPA_KeyActionConfiguration *mp_oDevKeyboard; /* For keyboard*/
/* List of all created keyboard objets*/
CList<CPA_KeyActionConfiguration *, CPA_KeyActionConfiguration *> m_lstKeyboard;
/* WaldDataMgr*/
CPA_WalkDataMgr m_oAppliWalkDataMgr;
/* Drag&Drop*/
int m_iNumRef; /* Number of CWnd reference*/
tdstDDRef m_a_WndRef[C_ucMaxCWndRef]; /* Array of all references*/
BOOL m_bCanDrop; /* Can we drop now ?*/
BOOL m_bCopy; /* Copy object or move it ?*/
BOOL m_bControl; /* Control key is pressed*/
HWND m_LastFocusWnd; /* Last Wnd under mouse.*/
POINT m_stMousePos; /* Current position of mouse*/
HCURSOR m_hFirstCursor; /* Initial cursor*/
/* Mouse*/
BOOL m_bCursorInFirstScreen; /* flag for second screen*/
CString m_csCurrentMapName; /* name of the current map*/
/* About Dialog*/
CString m_csApplicationName;
CString m_csApplicationVersion;
CPA_DlgAbout *m_p_oDlgAbout;
protected:
CPA_SuperObject *m_pSuperObject;
public:
POS_tdstCompletePosition m_stWorldBaseMatrix;
/*------------------*/
#endif /* ACTIVE_EDITOR*/
public:
virtual void fn_vDynaFatalError(char *){};
void fn_vTestWindowsConfig(void);
void fn_vSetWindowsParameters(void);
void fn_vResetWindowsParameters(void);
void BeforeWindows();
void AfterWindows();
virtual BOOL InitApplication(void);
virtual void ExitApplication(void);
virtual BOOL InitInstance(void);
virtual void fn_vWhenAppGainFocus(void) {};
virtual void fn_vWhenAppLooseFocus(void) {};
virtual void fn_vBeforeEngineStarts(void) {};
virtual void fn_vAfterEngineStops(void) {};
virtual BOOL PreTranslateMessageEngine(MSG *p_stMsg);
BOOL PreTranslateMessageEditor(MSG *p_stMsg);
BOOL PreTranslateMessage( MSG* pMsg );
virtual void fn_vUpdateFrameTitle(void) {};
virtual void fn_vCreateEngineThread(void) {};
virtual CString fn_csGetMainCharacterFile (void) {return "";}
virtual void fn_vUpdateDynamicLights (void) {};
/* int fn_iWindowsMainLoop(void);*/
/* void fn_vSuspendEngine(void);*/
/* void fn_vResumeEngine(void);*/
int Run(void);
#ifdef ACTIVE_EDITOR
virtual BOOL fn_bTreatAppKeyboard(UINT) { return FALSE; }
void fn_vLoadAllDLLs(void);
CPA_MainWorld *fn_p_oGetMainWorld() {return m_p_oMainWorld;}
void fn_vDataHasChanged(void);
void fn_vSetWorldBaseMatrix(void);
void fn_vSetCurrentMap(CString csMapName){ m_csCurrentMapName = csMapName;};
CString fn_csGetCurrentMap() {return m_csCurrentMapName; };
virtual void fn_vReinitCurrentMap(void) {};
void OnHelpAbout();
#endif /* ACTIVE_EDITOR*/
#ifdef ACTIVE_EDITOR
CPA_Interface * GetInterface (void);
#endif /* ACTIVE_EDITOR*/
/* FBF Added for new synchro with engine thread*/
public:
BOOL m_bEngineIsStopped; /* set when the engine has been stoped by the appli*/
/* CANNOT be changed by engine */
BOOL m_bEditorsAreActive; /* set when the Editors are active*/
/* CANNOT be changed by engine */
BOOL m_bAppliAskedToStopEngine; /* Set when the appli asked to stop the engine*/
/* CANNOT be changed by engine */
BOOL m_bAppliPulsedOneStep; /* Set when appli ask to do one step*/
/* reset by engine after engine restart*/
BOOL m_bAppliAskedToActivateEditors; /* Set when the appli asked to activate editors*/
/* CANNOT be changed by engine */
BOOL m_bEngineAskedToForceEditors; /* Set when the appli asked to force activation of editors*/
/* MUST be set by engine and reset by appli*/
BOOL m_bAppliAskedToEndGame; /* Set when the appli asked to end the game*/
/* CANNOT be changed by engine */
BOOL m_bEngineIsOver; /* set when the engine is finished*/
/* CANNOT be changed by engine*/
BOOL m_bFinishEngine; /* when the engine is over, setting this to TRUE will close engine thread*/
/* CANNOT be changed by engine*/
/* User Message definition*/
#define USERM_STOP_ENGINE 100
#define USERM_FORCE_START_EDITORS 101
#define USERM_START_EDITORS 102
#define USERM_ENGINE_IS_DONE 103
#define USERM_ENGINE_IS_CLOSING 104
#define USERM_SWAP_FULLSCREEN 105
/* functions called by Appli*/
public:
void fn_vAppliAskToStartEditors(void);
void fn_vAppliAskToStopEditors(void);
void fn_vAppliAskToStartEngine(void);
void fn_vAppliAskToStopEngine(void);
void fn_vAppliAskOneStep(void);
void fn_vAppliAskToEndGame(void);
void fn_vRestartEngine();
void fn_vStopEngine();
private:
void fn_vStartEditors();
/* message map */
afx_msg void OnUserMsg(UINT wParam,LONG lParam);
/* end FBF*/
/*{{AFX_MSG(CPA_ProjectApp)*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#else
class CPA_DlgAbout;
/*==================================================================================*/
/**/
/* Some general macros*/
/**/
/*==================================================================================*/
#define M_FocusToDevice(pMDevice) \
{ \
DEV_Device *pDevice = (pMDevice)->GetFocusDevice(); \
(pMDevice)->GetDevice(pDevice->GetNumber())->GetViewPort()->SetFocus(); \
}
#define M_GetMainApp() ((CPA_ProjectApp *) AfxGetApp())
#define M_GetMainWnd() ((CPA_MainFrame *) ((M_GetMainApp())->m_pMainWnd))
#define M_GetMainDevice() ((DEV_MultiDevice *) M_GetMainWnd()->GetActiveView())
#define M_GetMainDeviceNum(Num) (M_GetMainDevice()->GetDevice(Num))
#define M_GetMainDevice2D() ((DEV_MultiDevice2D *) M_GetMainDevice())
#define M_GetMainDevice3D() ((DEV_MultiDevice3D *) M_GetMainDevice())
#define M_GetMainActiveViewport() ((DEV_ViewPort *) (M_GetMainDevice()->GetDevice(M_GetMainDevice()->GetFocusDevice()->GetNumber())->GetViewPort()))
#define M_GetActiveViewport(p_Multi) ((DEV_ViewPort *) ((p_Multi)->GetDevice(M_GetMainDevice()->GetFocusDevice()->GetNumber())->mpViewPort))
#define M_GetMainGLDDevice(Num) (M_GetMainDeviceNum(Num)->m_hDisplayDevice)
#define M_GetMainGLDViewport(Num) (M_GetMainDeviceNum(Num)->GetViewPort()->m_hDisplayViewport)
#define M_GetGLDDevice(p_Multi, Num) ((p_Multi)->GetDevice(Num)->m_hDisplayDevice)
#define M_GetGLDViewport(p_Multi, Num) ((p_Multi)->GetDevice(Num)->GetViewPort()->m_hDisplayViewport)
#define M_vFatalError(p_szError) {M_GetMainApp()->fn_vDynaFatalError(p_szError);}
class CPA_ProjectApp;
/*###########################################################################*/
/* CPA_ProjectApp:*/
/* See ACPProject.cpp for the implementation of this class*/
/**/
class CPA_MainWorld;
class CPA_EXPORT CPA_ProjectApp : public CWinApp
{
public:
CPA_ProjectApp();
~CPA_ProjectApp();
public:
CWinThread *m_p_oEngineThread; /* Thread for engine loop*/
BOOL m_bOldScreenSaveActive; /* To first actual screen save state*/
char *m_p_szMemoProfile; /* To save profile string*/
BOOL m_bBadResolution; /* Bad resolution ?*/
unsigned char m_bProjectIsClosing; /* Is project closing ?*/
HANDLE m_hDrawSem; /* For display*/
BOOL m_bWasInFullScreenBeforeLooseFocus;
BOOL m_bLeavingApplication;
BOOL m_bFlagTaken;
public:
virtual void fn_vDynaFatalError(char *){};
void fn_vTestWindowsConfig(void);
void fn_vSetWindowsParameters(void);
void fn_vResetWindowsParameters(void);
void BeforeWindows();
void AfterWindows();
virtual BOOL InitApplication(void);
virtual void ExitApplication(void);
virtual BOOL InitInstance(void);
virtual void fn_vWhenAppGainFocus(void) {};
virtual void fn_vWhenAppLooseFocus(void) {};
virtual void fn_vBeforeEngineStarts(void) {};
virtual void fn_vAfterEngineStops(void) {};
virtual BOOL PreTranslateMessageEngine(MSG *p_stMsg);
BOOL PreTranslateMessageEditor(MSG *p_stMsg);
BOOL PreTranslateMessage( MSG* pMsg );
virtual void fn_vUpdateFrameTitle(void) {};
virtual void fn_vCreateEngineThread(void) {};
virtual CString fn_csGetMainCharacterFile (void) {return "";}
virtual void fn_vUpdateDynamicLights (void) {};
/* int fn_iWindowsMainLoop(void);*/
/* void fn_vSuspendEngine(void);*/
/* void fn_vResumeEngine(void);*/
int Run(void);
/* FBF Added for new synchro with engine thread*/
public:
BOOL m_bEngineIsStopped; /* set when the engine has been stoped by the appli*/
/* CANNOT be changed by engine */
BOOL m_bEditorsAreActive; /* set when the Editors are active*/
/* CANNOT be changed by engine */
BOOL m_bAppliAskedToStopEngine; /* Set when the appli asked to stop the engine*/
/* CANNOT be changed by engine */
BOOL m_bAppliPulsedOneStep; /* Set when appli ask to do one step*/
/* reset by engine after engine restart*/
BOOL m_bAppliAskedToActivateEditors; /* Set when the appli asked to activate editors*/
/* CANNOT be changed by engine */
BOOL m_bEngineAskedToForceEditors; /* Set when the appli asked to force activation of editors*/
/* MUST be set by engine and reset by appli*/
BOOL m_bAppliAskedToEndGame; /* Set when the appli asked to end the game*/
/* CANNOT be changed by engine */
BOOL m_bEngineIsOver; /* set when the engine is finished*/
/* CANNOT be changed by engine*/
BOOL m_bFinishEngine; /* when the engine is over, setting this to TRUE will close engine thread*/
/* CANNOT be changed by engine*/
/* User Message definition*/
#define USERM_STOP_ENGINE 100
#define USERM_FORCE_START_EDITORS 101
#define USERM_START_EDITORS 102
#define USERM_ENGINE_IS_DONE 103
#define USERM_ENGINE_IS_CLOSING 104
#define USERM_SWAP_FULLSCREEN 105
/* functions called by Appli*/
public:
void fn_vAppliAskToStartEditors(void);
void fn_vAppliAskToStopEditors(void);
void fn_vAppliAskToStartEngine(void);
void fn_vAppliAskToStopEngine(void);
void fn_vAppliAskOneStep(void);
void fn_vAppliAskToEndGame(void);
void fn_vRestartEngine();
void fn_vStopEngine();
private:
void fn_vStartEditors();
/* message map */
afx_msg void OnUserMsg(UINT wParam,LONG lParam);
/* end FBF*/
/*{{AFX_MSG(CPA_ProjectApp)*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
/*///////////////////////////////////////////////////////////////////////////*/
#endif
#endif /* __CPAPROJ_HPP__*/

View File

@@ -0,0 +1,459 @@
/*=========================================================================*/
/* CPAProj.hpp : main header file for the ACPPROJECT application*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 06/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 __CPAPROJ_HPP__
#define __CPAPROJ_HPP__
#include <afxtempl.h>
#include "geo.h"
#include "gli.h"
/****************************************/
#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
class CPA_DlgAbout;
/*==================================================================================*/
/**/
/* Some general macros*/
/**/
/*==================================================================================*/
#define M_FocusToDevice(pMDevice) \
{ \
DEV_Device *pDevice = (pMDevice)->GetFocusDevice(); \
(pMDevice)->GetDevice(pDevice->GetNumber())->GetViewPort()->SetFocus(); \
}
#define M_GetMainApp() ((CPA_ProjectApp *) AfxGetApp())
#define M_GetMainWnd() ((CPA_MainFrame *) ((M_GetMainApp())->m_pMainWnd))
#ifdef ACTIVE_EDITOR
#define M_GetMainDevice() ((DEV_MultiDevice *) M_GetMainWnd()->m_oSplitter.GetPane(0, 0))
#else /* ACTIVE_EDITOR*/
#define M_GetMainDevice() ((DEV_MultiDevice *) M_GetMainWnd()->GetActiveView())
#endif /* ACTIVE_EDITOR*/
#define M_GetMainDeviceNum(Num) (M_GetMainDevice()->GetDevice(Num))
#define M_GetMainDevice2D() ((DEV_MultiDevice2D *) M_GetMainDevice())
#define M_GetMainDevice3D() ((DEV_MultiDevice3D *) M_GetMainDevice())
#define M_GetMainActiveViewport() ((DEV_ViewPort *) (M_GetMainDevice()->GetDevice(M_GetMainDevice()->GetFocusDevice()->GetNumber())->GetViewPort()))
#define M_GetActiveViewport(p_Multi) ((DEV_ViewPort *) ((p_Multi)->GetDevice(M_GetMainDevice()->GetFocusDevice()->GetNumber())->mpViewPort))
#define M_GetMainGLDDevice(Num) (M_GetMainDeviceNum(Num)->m_hDisplayDevice)
#define M_GetMainGLDViewport(Num) (M_GetMainDeviceNum(Num)->GetViewPort()->m_hDisplayViewport)
#define M_GetGLDDevice(p_Multi, Num) ((p_Multi)->GetDevice(Num)->m_hDisplayDevice)
#define M_GetGLDViewport(p_Multi, Num) ((p_Multi)->GetDevice(Num)->GetViewPort()->m_hDisplayViewport)
#define M_vFatalError(p_szError) {M_GetMainApp()->fn_vDynaFatalError(p_szError);}
#ifdef ACTIVE_EDITOR
#define M_bEditorsActive() (M_GetMainApp()->m_bEditorsAreActive)
#define M_GetListOfAllDLL() (&(M_GetMainApp()->m_oListOfAllDLL))
#define M_bFullScreenEditor() (M_GetMainApp()->m_bEditorsAreActive && M_GetMainApp()->m_bFullScreenInEditor)
#endif /* ACTIVE_EDITOR*/
class CPA_ProjectApp;
/*###########################################################################*/
/* CPA_ProjectApp:*/
/* See ACPProject.cpp for the implementation of this class*/
/**/
class CPA_MainWorld;
class CPA_EXPORT CPA_ProjectApp : public CWinApp
{
public:
CPA_ProjectApp();
~CPA_ProjectApp();
public:
CWinThread *m_p_oEngineThread; /* Thread for engine loop*/
BOOL m_bOldScreenSaveActive; /* To first actual screen save state*/
char *m_p_szMemoProfile; /* To save profile string*/
BOOL m_bBadResolution; /* Bad resolution ?*/
unsigned char m_bProjectIsClosing; /* Is project closing ?*/
HANDLE m_hDrawSem; /* For display*/
BOOL m_bWasInFullScreenBeforeLooseFocus;
BOOL m_bLeavingApplication;
BOOL m_bFlagTaken;
#ifdef ACTIVE_EDITOR
/*------------------*/
public:
BOOL m_bFullScreenInEditor;
BOOL m_bViewerOpened;
BOOL m_bAutoReinitTheMap;
CString m_csEditorDataPath; /* Complete access to data path*/
CString m_csEngineDataPath; /* Complete access to data path*/
CPA_DLLList m_oListOfAllDLL; /* List of all DLLs*/
unsigned char m_bEngineOneStep; /* To do one step of engine*/
CPA_MainWorld *m_p_oMainWorld; /* LE monde*/
CPA_KeyActionConfiguration *mp_oAppKeyboard; /* Keyboard defs*/
CPA_KeyActionConfiguration *mp_oDevKeyboard; /* For keyboard*/
/* List of all created keyboard objets*/
CList<CPA_KeyActionConfiguration *, CPA_KeyActionConfiguration *> m_lstKeyboard;
/* WaldDataMgr*/
CPA_WalkDataMgr m_oAppliWalkDataMgr;
/* Drag&Drop*/
int m_iNumRef; /* Number of CWnd reference*/
tdstDDRef m_a_WndRef[C_ucMaxCWndRef]; /* Array of all references*/
BOOL m_bCanDrop; /* Can we drop now ?*/
BOOL m_bCopy; /* Copy object or move it ?*/
BOOL m_bControl; /* Control key is pressed*/
HWND m_LastFocusWnd; /* Last Wnd under mouse.*/
POINT m_stMousePos; /* Current position of mouse*/
HCURSOR m_hFirstCursor; /* Initial cursor*/
CString m_csCurrentMapName; /* name of the current map*/
/* About Dialog*/
CString m_csApplicationName;
CString m_csApplicationVersion;
CPA_DlgAbout *m_p_oDlgAbout;
protected:
CPA_SuperObject *m_pSuperObject;
public:
POS_tdstCompletePosition m_stWorldBaseMatrix;
/*------------------*/
#endif /* ACTIVE_EDITOR*/
public:
virtual void fn_vDynaFatalError(char *){};
void fn_vTestWindowsConfig(void);
void fn_vSetWindowsParameters(void);
void fn_vResetWindowsParameters(void);
void BeforeWindows();
void AfterWindows();
virtual BOOL InitApplication(void);
virtual void ExitApplication(void);
virtual BOOL InitInstance(void);
virtual void fn_vWhenAppGainFocus(void) {};
virtual void fn_vWhenAppLooseFocus(void) {};
virtual void fn_vBeforeEngineStarts(void) {};
virtual void fn_vAfterEngineStops(void) {};
virtual BOOL PreTranslateMessageEngine(MSG *p_stMsg);
BOOL PreTranslateMessageEditor(MSG *p_stMsg);
BOOL PreTranslateMessage( MSG* pMsg );
virtual void fn_vUpdateFrameTitle(void) {};
virtual void fn_vCreateEngineThread(void) {};
virtual CString fn_csGetMainCharacterFile (void) {return "";}
virtual void fn_vUpdateDynamicLights (void) {};
/* int fn_iWindowsMainLoop(void);*/
/* void fn_vSuspendEngine(void);*/
/* void fn_vResumeEngine(void);*/
int Run(void);
#ifdef ACTIVE_EDITOR
virtual BOOL fn_bTreatAppKeyboard(UINT) { return FALSE; }
void fn_vLoadAllDLLs(void);
CPA_MainWorld *fn_p_oGetMainWorld() {return m_p_oMainWorld;}
void fn_vDataHasChanged(void);
void fn_vSetWorldBaseMatrix(void);
void fn_vSetCurrentMap(CString csMapName){ m_csCurrentMapName = csMapName;};
CString fn_csGetCurrentMap() {return m_csCurrentMapName; };
virtual void fn_vReinitCurrentMap(void) {};
void OnHelpAbout();
#endif /* ACTIVE_EDITOR*/
#ifdef ACTIVE_EDITOR
CPA_Interface * GetInterface (void);
#endif /* ACTIVE_EDITOR*/
/* FBF Added for new synchro with engine thread*/
public:
BOOL m_bEngineIsStopped; /* set when the engine has been stoped by the appli*/
/* CANNOT be changed by engine */
BOOL m_bEditorsAreActive; /* set when the Editors are active*/
/* CANNOT be changed by engine */
BOOL m_bAppliAskedToStopEngine; /* Set when the appli asked to stop the engine*/
/* CANNOT be changed by engine */
BOOL m_bAppliPulsedOneStep; /* Set when appli ask to do one step*/
/* reset by engine after engine restart*/
BOOL m_bAppliAskedToActivateEditors; /* Set when the appli asked to activate editors*/
/* CANNOT be changed by engine */
BOOL m_bEngineAskedToForceEditors; /* Set when the appli asked to force activation of editors*/
/* MUST be set by engine and reset by appli*/
BOOL m_bAppliAskedToEndGame; /* Set when the appli asked to end the game*/
/* CANNOT be changed by engine */
BOOL m_bEngineIsOver; /* set when the engine is finished*/
/* CANNOT be changed by engine*/
BOOL m_bFinishEngine; /* when the engine is over, setting this to TRUE will close engine thread*/
/* CANNOT be changed by engine*/
/* User Message definition*/
#define USERM_STOP_ENGINE 100
#define USERM_FORCE_START_EDITORS 101
#define USERM_START_EDITORS 102
#define USERM_ENGINE_IS_DONE 103
#define USERM_ENGINE_IS_CLOSING 104
#define USERM_SWAP_FULLSCREEN 105
/* functions called by Appli*/
public:
void fn_vAppliAskToStartEditors(void);
void fn_vAppliAskToStopEditors(void);
void fn_vAppliAskToStartEngine(void);
void fn_vAppliAskToStopEngine(void);
void fn_vAppliAskOneStep(void);
void fn_vAppliAskToEndGame(void);
void fn_vRestartEngine();
void fn_vStopEngine();
private:
void fn_vStartEditors();
/* message map */
afx_msg void OnUserMsg(UINT wParam,LONG lParam);
/* end FBF*/
/*{{AFX_MSG(CPA_ProjectApp)*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#else
class CPA_DlgAbout;
/*==================================================================================*/
/**/
/* Some general macros*/
/**/
/*==================================================================================*/
#define M_FocusToDevice(pMDevice) \
{ \
DEV_Device *pDevice = (pMDevice)->GetFocusDevice(); \
(pMDevice)->GetDevice(pDevice->GetNumber())->GetViewPort()->SetFocus(); \
}
#define M_GetMainApp() ((CPA_ProjectApp *) AfxGetApp())
#define M_GetMainWnd() ((CPA_MainFrame *) ((M_GetMainApp())->m_pMainWnd))
#define M_GetMainDevice() ((DEV_MultiDevice *) M_GetMainWnd()->GetActiveView())
#define M_GetMainDeviceNum(Num) (M_GetMainDevice()->GetDevice(Num))
#define M_GetMainDevice2D() ((DEV_MultiDevice2D *) M_GetMainDevice())
#define M_GetMainDevice3D() ((DEV_MultiDevice3D *) M_GetMainDevice())
#define M_GetMainActiveViewport() ((DEV_ViewPort *) (M_GetMainDevice()->GetDevice(M_GetMainDevice()->GetFocusDevice()->GetNumber())->GetViewPort()))
#define M_GetActiveViewport(p_Multi) ((DEV_ViewPort *) ((p_Multi)->GetDevice(M_GetMainDevice()->GetFocusDevice()->GetNumber())->mpViewPort))
#define M_GetMainGLDDevice(Num) (M_GetMainDeviceNum(Num)->m_hDisplayDevice)
#define M_GetMainGLDViewport(Num) (M_GetMainDeviceNum(Num)->GetViewPort()->m_hDisplayViewport)
#define M_GetGLDDevice(p_Multi, Num) ((p_Multi)->GetDevice(Num)->m_hDisplayDevice)
#define M_GetGLDViewport(p_Multi, Num) ((p_Multi)->GetDevice(Num)->GetViewPort()->m_hDisplayViewport)
#define M_vFatalError(p_szError) {M_GetMainApp()->fn_vDynaFatalError(p_szError);}
class CPA_ProjectApp;
/*###########################################################################*/
/* CPA_ProjectApp:*/
/* See ACPProject.cpp for the implementation of this class*/
/**/
class CPA_MainWorld;
class CPA_EXPORT CPA_ProjectApp : public CWinApp
{
public:
CPA_ProjectApp();
~CPA_ProjectApp();
public:
CWinThread *m_p_oEngineThread; /* Thread for engine loop*/
BOOL m_bOldScreenSaveActive; /* To first actual screen save state*/
char *m_p_szMemoProfile; /* To save profile string*/
BOOL m_bBadResolution; /* Bad resolution ?*/
unsigned char m_bProjectIsClosing; /* Is project closing ?*/
HANDLE m_hDrawSem; /* For display*/
BOOL m_bWasInFullScreenBeforeLooseFocus;
BOOL m_bLeavingApplication;
BOOL m_bFlagTaken;
public:
virtual void fn_vDynaFatalError(char *){};
void fn_vTestWindowsConfig(void);
void fn_vSetWindowsParameters(void);
void fn_vResetWindowsParameters(void);
void BeforeWindows();
void AfterWindows();
virtual BOOL InitApplication(void);
virtual void ExitApplication(void);
virtual BOOL InitInstance(void);
virtual void fn_vWhenAppGainFocus(void) {};
virtual void fn_vWhenAppLooseFocus(void) {};
virtual void fn_vBeforeEngineStarts(void) {};
virtual void fn_vAfterEngineStops(void) {};
virtual BOOL PreTranslateMessageEngine(MSG *p_stMsg);
BOOL PreTranslateMessageEditor(MSG *p_stMsg);
BOOL PreTranslateMessage( MSG* pMsg );
virtual void fn_vUpdateFrameTitle(void) {};
virtual void fn_vCreateEngineThread(void) {};
virtual CString fn_csGetMainCharacterFile (void) {return "";}
virtual void fn_vUpdateDynamicLights (void) {};
/* int fn_iWindowsMainLoop(void);*/
/* void fn_vSuspendEngine(void);*/
/* void fn_vResumeEngine(void);*/
int Run(void);
/* FBF Added for new synchro with engine thread*/
public:
BOOL m_bEngineIsStopped; /* set when the engine has been stoped by the appli*/
/* CANNOT be changed by engine */
BOOL m_bEditorsAreActive; /* set when the Editors are active*/
/* CANNOT be changed by engine */
BOOL m_bAppliAskedToStopEngine; /* Set when the appli asked to stop the engine*/
/* CANNOT be changed by engine */
BOOL m_bAppliPulsedOneStep; /* Set when appli ask to do one step*/
/* reset by engine after engine restart*/
BOOL m_bAppliAskedToActivateEditors; /* Set when the appli asked to activate editors*/
/* CANNOT be changed by engine */
BOOL m_bEngineAskedToForceEditors; /* Set when the appli asked to force activation of editors*/
/* MUST be set by engine and reset by appli*/
BOOL m_bAppliAskedToEndGame; /* Set when the appli asked to end the game*/
/* CANNOT be changed by engine */
BOOL m_bEngineIsOver; /* set when the engine is finished*/
/* CANNOT be changed by engine*/
BOOL m_bFinishEngine; /* when the engine is over, setting this to TRUE will close engine thread*/
/* CANNOT be changed by engine*/
/* User Message definition*/
#define USERM_STOP_ENGINE 100
#define USERM_FORCE_START_EDITORS 101
#define USERM_START_EDITORS 102
#define USERM_ENGINE_IS_DONE 103
#define USERM_ENGINE_IS_CLOSING 104
#define USERM_SWAP_FULLSCREEN 105
/* functions called by Appli*/
public:
void fn_vAppliAskToStartEditors(void);
void fn_vAppliAskToStopEditors(void);
void fn_vAppliAskToStartEngine(void);
void fn_vAppliAskToStopEngine(void);
void fn_vAppliAskOneStep(void);
void fn_vAppliAskToEndGame(void);
void fn_vRestartEngine();
void fn_vStopEngine();
private:
void fn_vStartEditors();
/* message map */
afx_msg void OnUserMsg(UINT wParam,LONG lParam);
/* end FBF*/
/*{{AFX_MSG(CPA_ProjectApp)*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
/*///////////////////////////////////////////////////////////////////////////*/
#endif
#endif /* __CPAPROJ_HPP__*/

View File

@@ -0,0 +1,371 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by cpares.rc
//
#define ID_LANG_SAVE 2
#define CPA_IDD_CAMERA 104
#define IDM_MINIMIZE_TOPORLEFT 106
#define IDM_MINIMIZE_BOTTOMORRIGHT 107
#define IDM_MAXIMIZE 108
#define IDM_REDUCE 109
#define IDM_TILE 110
#define IDM_SAVEPOS_1 111
#define IDM_SAVEPOS_2 112
#define IDM_SAVEPOS_3 113
#define IDM_SAVEPOS_4 114
#define IDM_RESTOREPOS_1 115
#define IDM_RESTOREPOS_2 116
#define IDM_RESTOREPOS_3 117
#define IDM_RESTOREPOS_4 118
#define CPA_IDM_GENERALMENU 128
#define CPA_IDR_MAINFRAME 128
#define CPA_IDD_DIALOG_COHERENCEMANAGER 129
#define CPA_IDI_PAUSEENGINE 144
#define CPA_IDI_ONESTEPENGINE 145
#define CPA_IDI_FULLSCREEN 148
#define CPA_IDM_DEVICEMENU 150
#define CPA_IDB_UBISOFT 151
#define CPA_IDB_DEVICE_CLOSE 153
#define CPA_IDC_DRAGMOVE 158
#define CPA_IDD_DIALOGINSERT 158
#define CPA_IDC_DRAGNONE 160
#define CPA_IDC_DRAGCOPY 161
#define CPA_IDD_MAINKEYB 165
#define IDB_BITMAP_FATHER 166
#define IDB_BITMAP_CHILD 167
#define IDB_BITMAP_INCOHERENCE 168
#define CPA_IDD_ABOUT 168
#define IDB_BITMAP_DELETEDCHILD 169
#define CPA_IDI_EDIT_NOOBJECT 169
#define IDB_BITMAP_DESTROYEDCHILD 170
#define CPA_IDI_EDIT_SUPOBJ 170
#define IDB_HMAX 171
#define CPA_IDI_NOEDIT_NOOBJECT 171
#define IDB_HMINLEFT 172
#define CPA_IDI_NOEDIT_SUPOBJ 172
#define IDB_HMINRIGHT 173
#define CPA_IDI_PEDIT_NOOBJECT 173
#define IDB_HUNDEF 174
#define CPA_IDI_PEDIT_SUPOBJ 174
#define IDB_VMAX 175
#define CPA_IDI_PNOEDIT_NOOBJECT 175
#define IDB_VMINBOTTOM 176
#define CPA_IDI_PNOEDIT_SUPOBJ 176
#define IDB_VMINTOP 177
#define CPA_IDR_ACCELERATOR 177
#define IDB_VUNDEF 178
#define CPA_IDI_UNDO 178
#define CPA_IDB_DEVICE_GAMEREFRESH1 179
#define CPA_IDI_REDO 179
#define CPA_IDD_DIALOGPERMISSION 180
#define CPA_IDD_LANG_CHOICE 182
#define CPA_IDC_MOVECAMERA 183
#define CPA_IDC_ROTATECAMERA 184
#define IDD_PYRAMIDALSELECTIONDEPTH 185
#define CPA_IDD_DIALOGOPTION 186
#define CPA_IDI_INSTANCECAM 187
#define CPA_IDI_INSTANCEINFO 188
#define CPA_IDI_CAMERAINFO 189
#define IDI_ITF_DLGBAR_ICON 190
#define CPA_IDD_DIALOGTIP 191
#define CPA_IDI_SELECTBYSECTOR 192
#define CPA_IDD_DIALOGPREFIX 315
#define CPA_IDD_KEYBOARD_CONFIGURATION 332
#define CPA_IDCO_COMBO1 1002
#define CPA_IDD_DIALOGLIST 1003
#define CPA_IDI_SWAPTOEDITORS 1004
#define CPA_IDCB_SWAPTOEDITORS 1004
#define CPA_IDTB_VIEWPORT 1005
#define CPA_IDI_EDIT_DEFAULT 1005
#define CPA_IDD_GENERALDIALOGBAR 1006
#define CPA_IDI_MASK 1006
#define CPA_IDI_DELTASELECT 1007
#define CPA_IDCB_PAUSEENGINE 1008
#define CPA_IDI_LOCKSEL 1008
#define CPA_IDCB_ONESTEPENGINE 1009
#define CPA_IDD_DIALOGCHOICE 1009
#define CPA_IDI_NODELTASELECT 1009
#define CPA_IDCB_FULLSCREEN 1010
#define CPA_IDD_DIALOGUSER 1010
#define CPA_IDI_NOLOCK 1010
#define CPA_IDCB_DIALOGINSERT 1011
#define CPA_IDD_DIALOGSTATUS 1011
#define CPA_IDI_TARGET 1011
#define CPA_IDCB_DIALOGLIST 1012
#define CPA_IDI_NOTARGET 1012
#define CPA_IDI_MOVE 1013
#define CPA_IDI_NOMOVE 1014
#define CPA_IDI_SAVE 1015
#define IDC_TREE_INCOHERENCE 1016
#define CPA_IDI_OPTION 1016
#define CPA_IDC_RADIO2 1017
#define IDC_STATIC_NOTHING 1017
#define CPA_IDI_FULLSELECT 1017
#define CPA_IDC_RADIO3 1018
#define IDC_TREE_FATHER 1018
#define CPA_IDI_NOFULLSELECT 1018
#define CPA_IDTB_DEVICE 1019
#define IDC_TREE_CHILD 1019
#define CPA_IDI_NOZOOM 1019
#define CPA_IDC_RADIO5 1020
#define CPA_IDB_DEVICE_GAMEREFRESH2 1020
#define CPA_IDCB_UNDO 1020
#define CPA_IDI_ZOOM 1020
#define CPA_IDC_RADIO6 1021
#define CPA_IDCB_REDO 1021
#define CPA_IDTB_DISPLAY 1021
#define CPA_IDTB_CENTER 1022
#define CPA_IDC_RADIO1 1023
#define CPA_IDC_RADIO_2 1024
#define CPA_IDC_RADIO_3 1025
#define CPA_IDC_RADIO_5 1027
#define CPA_IDC_RADIO_6 1028
#define CPA_IDC_RADIO_1 1030
#define IDC_TREE 1035
#define IDC_LIST 1036
#define IDC_COMBO1 1044
#define IDC_COMBO_DLLINCOHERENCE 1044
#define CPA_IDC_COMBOUSERS 1044
#define CPA_IDCB_SELECTMODE 1044
#define IDC_LANG_COMBO 1044
#define IDC_COMBO_DLLFATHER 1045
#define IDC_COMBO_DLLCHILD 1046
#define CPA_IDC_NEWDIALOG 1050
#define IDC_LIST1 1055
#define CPA_IDC_BUTTONTEST 1061
#define CPA_IDC_POSBUTTON 1062
#define CPA_IDC_POSLIST 1063
#define CPA_IDC_POSINSERT 1066
#define CPA_IDC_TEXT 1067
#define IDC_TAB 1077
#define IDC_RADIO_ALPHA 1078
#define IDC_RADIO_INCOHERENCE 1079
#define IDC_RADIO_DLL 1080
#define CPA_IDC_MANAGER 1084
#define IDC_ST_APPNAME 1095
#define IDC_ST_APPVERSION 1096
#define IDC_ST_APPNAME2 1097
#define IDC_LIST_EDITOR 1098
#define IDC_ST_APPVERSION2 1099
#define CPA_IDC_SAVESTATUS 1099
#define CPA_IDCB_CURRENTSECTOR 1108
#define CPA_IDCB_AUTOTARGET 1113
#define CPA_IDC_GRAPHIST 1114
#define CPA_IDCB_MOVECAMERA 1114
#define CPA_IDC_DESIGNER 1115
#define CPA_IDCB_DELTA 1115
#define CPA_IDC_SAVEPREFIX 1116
#define CPA_IDCB_FULL 1116
#define CPA_IDC_TEXT1 1117
#define CPA_IDCB_AUTOZOOM 1117
#define CPA_IDC_TEXT2 1118
#define CPA_IDC_OBJECTNAME 1119
#define CPA_IDC_TEXT0 1120
#define CPA_IDC_DESIGNERNAME 1121
#define CPA_IDC_MODIFY 1122
#define CPA_IDC_CANCEL 1123
#define CPA_IDC_ALWAYS 1124
#define CPA_IDC_SAVE 1125
#define CPA_IDC_NEVER 1126
#define CPA_IDCB_CONSX 1129
#define CPA_IDCB_CONSY 1130
#define CPA_IDCB_CONSZ 1131
#define IDC_SHOWCENTER 1134
#define IDC_SHOWSELECTIONCENTER 1135
#define IDC_LOCKSELECTION 1136
#define CPA_IDCB_LOCK 1136
#define CPA_IDC_EDIT1 1137
#define CPA_IDC_AUTOCOHEMNGR 1137
#define CPA_IDC_REINITMAP 1138
#define CPA_IDC_SCALEOBJECTS 1139
#define CPA_IDC_PYRAMIDDEPTH 1141
#define CPA_IDC_TARGETDEPTH 1143
#define CPA_IDC_AUTHORISATIONS 1144
#define CPA_IDC_KEYBOARD 1145
#define CPA_IDC_ROTSTEP 1146
#define CPA_IDC_TRANSTEP 1147
#define CPA_IDC_GOTHROUGH 1148
#define CPA_IDC_BLOCK 1149
#define CPA_IDCB_SAVEALL 1149
#define CPA_IDC_SPEEDUP 1150
#define CPA_IDCB_OPTIONS 1150
#define IDC_CHECK_AUTOMATIC_SWAP 1151
#define CPA_IDCB_SAVEALL2 1151
#define IDC_RADIO_SWAP_LEFT 1152
#define CPA_IDCB_SAVEALL3 1152
#define IDC_RADIO_SWAP_RIGHT 1153
#define CPA_IDCB_SAVEALL4 1153
#define IDC_RADIO_SWAP_BOTH 1154
#define CPA_IDCB_SAVEALL5 1154
#define IDC_NEXTTIP 1154
#define CPA_IDC_NEXTTIP 1154
#define CPA_IDCB_SAVEALL6 1155
#define IDC_EDITORNAME 1155
#define CPA_IDC_EDITORNAME 1155
#define CPA_IDC_COMBOTYPE 1156
#define CPA_IDCB_SAVEALL7 1156
#define IDC_TIPTEXT 1156
#define CPA_IDC_TIPTEXT 1156
#define CPA_IDC_LISTOBJECTS 1157
#define CPA_IDCB_SAVEALL8 1157
#define CPA_IDC_FIRSTONLY 1157
#define CPA_IDC_HIERARCHY 1158
#define CPA_IDC_STATICPOS 1159
#define CPA_IDC_POSCOMBO 1159
#define CPA_IDC_CLOSETIP 1160
#define CPA_IDC_NEWMODEL 2008
#define CPA_IDC_SAVELIST 2009
#define CPA_IDC_LOADLIST 2010
#define CPA_IDC_DELMODEL 2011
#define CPA_IDC_LISTSELECT 2012
#define CPA_IDC_CHANGEICON 2012
#define CPA_IDC_LISTSELECT2 2013
#define CPA_IDC_HIERARCHY1 2014
#define CPA_IDC_HIERARCHY2 2015
#define IDC_A3D_KBDCONF_LIST 2126
#define IDC_A3D_KBDCONF_CHECK_CTRL 2127
#define IDC_A3D_KBDCONF_CHECK_SHIFT 2128
#define IDC_A3D_KBDCONF_CHECK_ALT 2129
#define IDC_A3D_KBDCONF_EDIT_KEY 2132
#define IDC_A3D_KBDCONF_DEFAULT_CONF 2136
#define IDC_A3D_KDBCONF_UNMODIFTEXT 2138
#define IDC_A3D_KDBCONF_KEYPRESS 2140
#define CPA_IDB_RIGHTVIEW 32773
#define CPA_IDB_FRONTVIEW 32774
#define CPA_IDB_LEFTVIEW 32775
#define CPA_IDB_PERSPVIEW 32780
#define CPA_IDB_ENDFAMILY 32781
#define CPA_IDB_OPENDEVICE 32782
#define IDCB_CONSTRAINTX 32782
#define CPA_IDB_DEVICE_TILE_VERT 32783
#define CPA_IDB_DEVICE_TILE_HORZ 32784
#define CPA_IDB_FILAIRE 32785
#define CPA_IDB_TEXTURE 32786
#define CPA_IDB_FREECAMERA 32790
#define CPA_ID_APP_EXIT 32793
#define CPA_ID_EDIT_PASTE 32794
#define CPA_ID_EDIT_CUT 32796
#define CPA_ID_EDIT_COPY 32797
#define CPA_IDB_CAMERA_PROPERTIES 32798
#define CPA_IDB_CAMPICKOBJ 32801
#define CPA_ID_EDIT_UNDO 32802
#define CPA_ID_EDIT_REDO 32803
#define CPA_IDB_ISOCAMERA 32804
#define CPA_IDB_PERSPCAMERA 32805
#define CPA_IDB_CAMONOBJ 32806
#define CPA_IDB_DEVICE_CASCADE 32807
#define CPA_IDB_DEVICE_MAXIMIZE 32818
#define CPA_IDB_DEVICE_RESTORE 32819
#define CPA_IDM_SAVEALL 32820
#define CPA_IDM_DEVICE_CLOSE 32821
#define CPA_IDB_CAMZOOMOBJ 32821
#define CPA_IDM_DEVICE_CLOSEALL 32822
#define CPA_IDB_BACKVIEW 32822
#define CPA_IDB_TOPVIEW 32823
#define CPA_IDCB_KEYBOARD 32823
#define CPA_IDB_BOTTOMVIEW 32824
#define CPA_IDB_CAMONCUSTOMPOINT 32825
#define CPA_IDB_CAMNOCONSTRAINT 32826
#define CPA_IDB_CAMALTITUDE 32827
#define CPA_IDB_CAMCOLLIDE 32828
#define CPA_IDB_CAMALTANDCOLLIDE 32829
#define CPA_IDB_SAVESLOT0 32831
#define CPA_IDB_SAVESLOT1 32832
#define CPA_IDB_SAVESLOT2 32833
#define CPA_IDB_SAVESLOT3 32834
#define CPA_IDB_SAVESLOT4 32835
#define CPA_IDB_SAVESLOT5 32836
#define CPA_IDB_SAVESLOT6 32837
#define CPA_IDB_SAVESLOT7 32838
#define CPA_IDB_SAVESLOT8 32839
#define CPA_IDB_SAVESLOT9 32840
#define CPA_IDB_CAMDORESTORE 32841
#define CPA_IDB_CAMDOSAVE 32845
#define CPA_IDB_RESTORESLOT0 32846
#define CPA_IDB_RESTORESLOT1 32847
#define CPA_IDB_RESTORESLOT2 32848
#define CPA_IDB_RESTORESLOT3 32849
#define CPA_IDB_RESTORESLOT4 32850
#define CPA_IDB_RESTORESLOT5 32851
#define CPA_IDB_RESTORESLOT6 32852
#define CPA_IDB_RESTORESLOT7 32853
#define CPA_IDB_RESTORESLOT8 32854
#define CPA_IDB_RESTORESLOT9 32855
#define CPA_IDB_SAVEENGINESLOT 32856
#define CPA_IDCB_ACTIVE_EDITOR 32857
#define CPA_IDM_CM_SHOW 32858
#define CPA_ID_DEVICEMENU_VIEWINGAME 32858
#define CPA_IDM_CM_AUTOMATIC 32859
#define CPA_IDM_DEVICE_NEWDEVICE 32859
#define CPA_IDB_DEVICE_SPLITVERT 32859
#define IDCB_CONSTRAINTXZ 32859
#define CPA_ID_DEVICEMENU_SPLITVERTICAL 32860
#define CPA_IDB_DEVICE_SPLITHORIZ 32860
#define IDCB_CONSTRAINTYZ 32860
#define CPA_ID_DEVICEMENU_SPLITHORIZONTAL 32861
#define CPA_IDB_TOOLDEVICE 32862
#define CPA_IDCB_DISPLAYCOLLISIONMAP 32863
#define CPA_IDCB_BOUND 32865
#define CPA_IDCB_VIEWBOUND 32866
#define CPA_IDM_INITMAP 32867
#define CPA_IDCB_WORLDTEXTURED 32868
#define CPA_IDCB_WORLDGRID 32869
#define CPA_IDCB_WORLDWIRED 32870
#define CPA_IDCB_DISPLAYWORLD 32872
#define CPA_IDCB_DISPLAYSECTOR 32873
#define CPA_IDB_DISPLAYWORLD 32874
#define CPA_IDB_DISPLAYVISIBLE 32875
#define CPA_IDB_DISPLAYSECTOR 32876
#define CPA_IDB_DENDFAMILY 32878
#define CPA_IDCB_DISPLAYVISIBLE 32879
#define CPA_IDCB_WATEREFFECT 32880
#define CPA_IDCB_WATERREFRACTION 32881
#define CPA_IDM_CM_AUTOREINIT 32882
#define IDM_PYRAMIDALDEPTH 32883
#define IDM_CAMERATARGETDEPTH 32884
#define CPA_IDB_NOCENTER 32885
#define CPA_IDB_MAINCENTERS 32886
#define CPA_IDB_ALLCENTERS 32887
#define CPA_IDB_CENDFAMILY 32888
#define IDCB_NORMAL 32889
#define IDCB_MAINCENTERS 32890
#define IDCB_ALLCENTERS 32891
#define IDCB_NOCONSTRAINT1 32893
#define CPA_IDB_TEXTURED 32893
#define IDCB_CONSTRAINTX1 32894
#define CPA_IDB_NOTEX 32894
#define IDCB_CONSTRAINTY1 32895
#define CPA_IDB_GRIDED 32895
#define IDCB_CONSTRAINTZ1 32896
#define CPA_IDB_GRIDEDNOTEX 32896
#define IDCB_CONSTRAINTXY1 32897
#define CPA_IDB_WIRED 32897
#define IDCB_CONSTRAINTXZ1 32898
#define CPA_IDB_WIREDNOTEX 32898
#define IDCB_CONSTRAINTYZ1 32899
#define CPA_IDB_SECTORBV 32899
#define IDCB_NOCONSTRAINT 32900
#define IDCB_CONSTRAINTY 32901
#define IDCB_CONSTRAINTZ 32902
#define IDCB_CONSTRAINTXY 32903
#define CPA_IDB_ACTORBV 32905
#define CPA_IDB_NOBV 32906
#define CPA_IDB_OBJECTBV 32907
#define CPA_IDB_NOAXIS 32908
#define CPA_IDB_AXISDOWNLEFT 32910
#define CPA_IDB_AXISDOWNRIGHT 32911
#define CPA_IDB_DISPLAYFOG 32914
#define CPA_IDB_DISPLAYNOFOG 32915
#define CPA_IDCB_STATUSBARMODE 32916
#define CPA_IDCB_SELECTBYSECTOR 32917
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 193
#define _APS_NEXT_COMMAND_VALUE 32916
#define _APS_NEXT_CONTROL_VALUE 1161
#define _APS_NEXT_SYMED_VALUE 119
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,84 @@
/*////////////////////////////////////////////////////////////////////*/
/**/
/* SectorList.h: interface for the CPA_SectorList class.*/
/**/
/*////////////////////////////////////////////////////////////////////*/
/* Author: Silviu Simen 01 september 1998*/
/*////////////////////////////////////////////////////////////////////*/
#if !defined(CPA_SECTORLIST_H)
#define CPA_SECTORLIST_H
/****************************************/
#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
/****************************************/
#include "acp_base.h"
#include "itf/CPASObj.hpp"
#include "itf/cpalistb.hpp"
/* this one is for possibly use of HIE_tdxHandleToSuperObject */
/* instead of CPA_SuperObject **/
#define SECTOR_TYPE CPA_SuperObject *
/*////////////////////////////////////////////////////////////////////*/
/**/
/* interface of the CPA_ListBySector class.*/
/**/
/*////////////////////////////////////////////////////////////////////*/
/* Author: Silviu Simen 01 september 1998*/
/*////////////////////////////////////////////////////////////////////*/
class CPA_ListOfObjectsInSectors
{
public:
CPA_BaseObjectList m_lstObjectList;
SECTOR_TYPE m_pSector;
};
class CPA_ListOfObjectsInSectorsByType
{
public:
CPA_BaseObjectList m_lstObjectList;
SECTOR_TYPE m_pSector;
unsigned long m_ulType;
};
class CPA_EXPORT CPA_ListBySector
{
private:
POSITION m_pos; /* for get first / next sector*/
CPA_List<CPA_ListOfObjectsInSectors> m_lstList;
CPA_List<CPA_ListOfObjectsInSectorsByType> m_lstTypeList;
public:
CPA_ListBySector();
virtual ~CPA_ListBySector();
void fn_vCleanAllListsOfSectors (void);
void AddElement (CPA_SuperObject * pObject, SECTOR_TYPE pSector);
BOOL RemoveElement (CPA_SuperObject * pObject);
BOOL UpdateElement (CPA_SuperObject * pObject, SECTOR_TYPE pNewSector);
CPA_BaseObjectList * GetListOfSector (SECTOR_TYPE pSector);
CPA_BaseObjectList * GetListOfSectorByType (SECTOR_TYPE pSector,unsigned long ulType);
CPA_BaseObjectList * GetListOfSectorByName (CString csName);
};
#endif

View File

@@ -0,0 +1,182 @@
#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*/

View File

@@ -0,0 +1,129 @@
#ifndef __CPASOBJ_BASE_HPP__
#define __CPASOBJ_BASE_HPP__
#ifdef ACTIVE_EDITOR
#pragma warning(disable:4786)
#include "stdafx.h"
#include <afxtempl.h>
#include "geo.h"
#include "gli.h"
#define HieFriend
#include "lst.hpp"
#undef HieFriend
#include "itf/devvp3d.hpp"
#include "itf/CPAEnum.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
/****************************************/
typedef enum tdeLocalColor_
{
E_lc_NoColor = 0,
E_lc_Red = 1,
E_lc_Green = 2,
E_lc_Blue = 3,
E_lc_Yellow = 4,
E_lc_Violet = 5,
E_lc_LightBlue = 6
}
tdeLocalColor;
/*NZO, provisoire, pour faire plus propre*/
typedef struct GLI_tdstLight_* GLI_tdxHandleToLight;
typedef struct GLD_tdstViewportAttributes_* GLD_tdxHandleToViewportAttributes;
#pragma warning(disable : 4250)
/*ANNECY TQ 27/02/98{*/
static ACP_tdxHandleOfObject s_hBoxGeomObj;
static ACP_tdxHandleOfObject s_hSphereGeomObj;
/*ENDANNECY TQ}*/
class CPA_EXPORT CPA_SuperObjectBase:
public CPA_EdNode<CPA_SuperObjectBase,HIE_tdxHandleToSuperObject,HIE_tdxHandleToSuperObject>
{
protected:
tdeDrawingFlag m_eDrawingFlag;
tdeLocalColor m_eColor;
BOOL m_bMustDraw;
BOOL m_bDrawBV;
float m_fOldTransparency;
BOOL m_bHasALinkedZDM;
public:
CPA_SuperObjectBase ();
CPA_SuperObjectBase (HIE_tdxHandleToSuperObject hEngineSO);
~CPA_SuperObjectBase() { }
/*ANNECY TQ 26/02/98{*/
static void CreateParallelBoxGeometricObject();
static void CreateBoundingSphereGeometricObject();
static void DestroyParallelBoxGeometricObject();
static void DestroyBoundingSphereGeometricObject();
/*ENDANNECY TQ}*/
/* engine structure*/
virtual void SetSuperObjectStruct (HIE_tdxHandleToSuperObject hSupObj) { SetStruct(hSupObj); }
void *GetSuperObjectStruct(void) { return GetStruct(); }
/* local flag*/
tdeDrawingFlag GetDrawingFlag (void) { return m_eDrawingFlag; }
virtual void SetDrawingFlag (tdeDrawingFlag eNewFlag) { m_eDrawingFlag = eNewFlag; }
/* local color*/
tdeLocalColor GetLocalColor (void) { return m_eColor; }
/* FBF 01 04 98 {*/
/*void SetLocalColor (tdeLocalColor eNewColor) { m_eColor = eNewColor; }*/
void SetLocalColor (tdeLocalColor eNewColor);
/* FBF 01 04 98}*/
/*ANNECY Shaitan NewInterface 24/03/98 {*/
/* bounding volume*/
BOOL fn_bDisplayBV (void) { return m_bDrawBV; }
void fn_vDisplayBV (BOOL bDisplay) { m_bDrawBV = bDisplay; }
/*ENDANNECY Shaitan NewInterface }*/
/*ANNECY TQ 29/04/98{*/
BOOL fn_bHasALinkedZDM (void) { return m_bHasALinkedZDM; }
void fn_vHasALinkedZDM(BOOL bZDM) { m_bHasALinkedZDM = bZDM; }
/*ENDANNECY TQ}*/
/* Draw*/
void SetDisplayFlag (BOOL bMustDraw) { m_bMustDraw = bMustDraw; }
BOOL fn_bMustDraw (void) { return m_bMustDraw; }
void Display(GLD_tdxHandleToViewportAttributes hVpt, long DrawMask,
tdstSaveLight a_tdxhArrayOfLights[], long lNbLights,
HIE_tdxHandleToSuperObject pWorld,
BOOL bUseLocalFlag = TRUE);
void DisplayWorld(GLD_tdxHandleToViewportAttributes hVpt,
tdstSaveLight a_tdxhArrayOfLights[], long lNbLights,
BOOL bUseLocalFlag = TRUE);
};
/*#####################################################################*/
#endif /*ACTIVE_EDITOR*/
#endif /* __CPASOBJ_BASE_HPP__*/

View File

@@ -0,0 +1,149 @@
/*=========================================================================
*
* CPASpec.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPASPEC_HPP__
#define __CPASPEC_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
/****************************************/
#include "CPAEnum.hpp"
#include "CPAdStat.hpp"
class DEV_ViewPort3D;
/* display*/
typedef enum tdeDisplayMode_
{
E_dm_DrawWorld,
E_dm_DrawCollisionMap,
E_dm_DrawVisibleSectors,
E_dm_DrawOnlyCurrentSector
}
tdeDisplayMode;
class CPA_Interface;
class CPA_SuperObject;
/*===========================================================================
* Description: Class EDT_Specific
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_SpecificInterface
{
protected:
CPA_Interface * m_pInterface;
tdeDisplayMode m_eDisplayMode;
BOOL m_bDisplayFog;
CPA_SuperObject * m_pCurrentSector;
CComboBox * m_pComboSector;
tdeUserStatus m_eUserStatus;
CPA_DialogStatus m_oDialogStatus;
CPA_List<CPA_SuperObject> m_stListOfSurfaces;
public:
CPA_SpecificInterface (void);
~CPA_SpecificInterface (void);
/* inits*/
void fn_vSpecificInit (void);
void fn_vSpecificUpdate (BOOL bReinitDisplayMode = FALSE);
/* parameters*/
CPA_Interface * GetInterface (void) { return m_pInterface; }
void SetInterface (CPA_Interface *pInterface) { m_pInterface = pInterface; }
CPA_SuperObject * GetCurrentSector (void) { return m_pCurrentSector; }
void SetCurrentSector (CPA_SuperObject *pNewSector);
/* hierarchy*/
CPA_SuperObject * GetDynamicRoot (void);
CPA_SuperObject * GetStaticRoot (void);
BOOL fn_bHasValidWorld (BOOL bCheckRoot = TRUE);
/* display mode*/
tdeDisplayMode GetDisplayMode (void) { return m_eDisplayMode; }
void SetDisplayMode (tdeDisplayMode eMode);
void fn_vOnChangeDisplayMode (tdeDisplayMode eMode);
/* fog*/
void fn_vChangeDisplayFog (BOOL bDisplay);
/* current sector*/
void fn_vOnChangeCurrentSector (void);
void fn_vInitCurrentSector (void);
CPA_SuperObject * GetSuperObjectCurrentSector (CPA_SuperObject *pEdObj);
CPA_SuperObject * GetCurrentSectorFromPos (MTH3D_tdstVector * p_stAbsolutePosition);
/* display world*/
void fn_vDisplayWorld (DEV_ViewPort3D *pViewport, GLD_tdxHandleToViewportAttributes hVpt,
GLI_tdxHandleToLight hLight, CPA_SuperObject *pRoot);
void fn_vInitLightsInViewport (DEV_ViewPort3D *pViewport, GLD_tdxHandleToViewportAttributes hVpt,
GLI_tdxHandleToLight hLight, HIE_tdxHandleToSuperObject hSector,
BOOL bUseStaticLights = TRUE);
/* parent*/
/*ANNECY Shaitan EmptySectors (25/02/98)*/
/* CPA_SuperObject * GetDefaultParentFromPos (tdstPosition *p_stPosition, tdeTypeSO eTypeInsert);*/
CPA_SuperObject * GetDefaultParentFromPos (tdstPosition *p_stPosition, tdeTypeSO eTypeInsert, tdeSaveStatus eStatus);
/*ENDANNECY Shaitan EmptySectors*/
/* user mode*/
CPA_DialogStatus * GetDialogStatus (void) { return &m_oDialogStatus; }
tdeUserStatus GetUserStatus (void) { return m_eUserStatus; }
void SetUserStatus (tdeUserStatus eStatus) { m_eUserStatus = eStatus; }
void fn_vInitUserStatus (void);
void fn_vSaveUserStatus (tdeUserStatus eStatus);
void fn_vSetFrameTitle (void);
/* surfaces*/
BOOL fn_bIsSurfaceInList (CPA_SuperObject *pSurface);
void fn_vAddSurfaceInList (CPA_SuperObject *pSurface);
void fn_vReinitSurfaceList (void);
void fn_vUpdateSurfaces (BOOL bDrawSurfaces);
protected:
/* visible sectors (display mode)*/
BOOL fn_bIsSectorVisible (CPA_SuperObject *pSector);
/* current sector (display mode)*/
CPA_SuperObject * GetDefaultCurrentSector (void);
};
#endif /* __CPASPEC_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,148 @@
/*=========================================================================
*
* CPASubM.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* FBF
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDTSUBM_HPP__
#define __EDTSUBM_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
/****************************************/
#include "CustomID.h"
#include <afxtempl.h>
class CPA_EditorBase;
class EDT_SubMenu;
typedef enum {
C_SubMenuEdit,
C_SubMenuEditor,
C_SubMenuTool,
/*ANNECY Shaitan NewInterface 24/03/98 {*/
C_SubMenuLoad,
C_SubMenu3DView,
C_SubMenuSpecific,
/*ENDANNECY Shaitan NewInterface }*/
C_SubMenuPreference,
C_PopupMenu,
C_SubSubMenu
} tde_SubMenu;
typedef enum {
C_SMEEntry,
C_SMESeparator,
C_SMEMenu
} tde_SubMenuElementType;
/*#########################*/
/* Base class*/
/*#########################*/
class EDT_SubMenuElement
{
/* datas*/
protected:
tde_SubMenuElementType m_eType;
public:
EDT_SubMenuElement(tde_SubMenuElementType _eType) { m_eType = _eType; }
virtual ~EDT_SubMenuElement() {}
/* methods*/
public:
tde_SubMenuElementType mfn_eGetElementType() { return m_eType; }
};
/*#########################*/
/* Entry*/
/*#########################*/
class CPA_EXPORT EDT_SubMenuEntry : public EDT_SubMenuElement
{
protected:
char *m_p_cText; /* text of entry in menu*/
UINT m_uiID; /* Intern ID*/
UINT m_IDCmdMsg; /* ID of message to send to owner*/
CPA_EditorBase *m_pOwner; /* concerned Editor*/
BOOL m_bChecked; /* check entry menu*/
BOOL m_bEnabled; /* enable entry menu*/
public:
EDT_SubMenuEntry(CPA_EditorBase *pOwner, char *p_cName, UINT uiMsgID, UINT uiIntID, BOOL _bCheck = FALSE, BOOL _bEnable = TRUE);
virtual ~EDT_SubMenuEntry();
void fn_vSetCheck (BOOL _bCheck) { m_bChecked = _bCheck; }
void fn_vSetEnable (BOOL _bEnable) { m_bEnabled = _bEnable; }
BOOL GetCheck (void) { return m_bChecked; }
BOOL GetEnable (void) { return m_bEnabled; }
UINT GetInternalID (void) { return m_uiID; }
char *GetText (void) { return m_p_cText;}
UINT GetCmdID (void) { return m_IDCmdMsg; }
CPA_EditorBase * GetOwner (void) { return m_pOwner; }
virtual UINT SendCommand (EDT_SubMenu *_p_oSubMenu);
};
/*#########################*/
/* Separator*/
/*#########################*/
class EDT_SubMenuSeparator : public EDT_SubMenuElement
{
/* methods*/
public:
EDT_SubMenuSeparator() : EDT_SubMenuElement(C_SMESeparator) {};
};
/*#########################*/
/* SubMenu*/
/*#########################*/
class CPA_EXPORT EDT_SubMenu : public EDT_SubMenuElement, public CList<EDT_SubMenuElement*,EDT_SubMenuElement*>
{
/* datas*/
protected:
tde_SubMenu m_eSubMenu;
UINT m_uiInternalIDStart;
UINT m_uiInternalID;
BOOL m_bHasFather;
EDT_SubMenu *m_p_oFather;
char *m_szName;
/* methods*/
public:
EDT_SubMenu(tde_SubMenu _eSubMenu,UINT _uiIDStart = C_CustomIDUserEnd);
virtual ~EDT_SubMenu();
tde_SubMenu GetSubMenuType (void);
virtual EDT_SubMenu *fn_p_oGetNewSubMenu(char *_szName, tde_SubMenu _eMenuType = C_SubSubMenu);
void fn_vSetIDStart (UINT _uiIDStart) { m_uiInternalIDStart = _uiIDStart; }
void AddASeparator (void);
virtual void AddAnEntry (CPA_EditorBase *p_oOwner = NULL, char *p_cText = NULL, UINT uiEntryID = 0, BOOL _bCheck = FALSE, BOOL _bEnable = TRUE);
virtual void AddASubMenu (EDT_SubMenu *_p_oSubMenu);
virtual void Build (CMenu *pPopupMenu = NULL);
UINT _OnCommand (UINT uiInternalID);
void Clear (void);
BOOL fn_bFindCmdID (UINT uiInternalID, CPA_EditorBase **, UINT *CmdID);
void fn_vSetFather (EDT_SubMenu *_p_oFather);
void fn_vSetName (char *_szName);
char fn_cGrayedItem (CMenu *pPopupMenu, char *szItem) ;
protected:
UINT mfn_vGetNextInternalID (void);
void DeleteEntirePopupMenu (CMenu* pPopupMenu);
void fn_vGrayedAllMenuItem ( CMenu *pPopupMenu );
};
#endif /* __EDTSUBM_HPP__*/
#endif /* ACTIVE_EDITOR*/

View File

@@ -0,0 +1,94 @@
/*=========================================================================*/
/* CPAWndButo.hpp : Window Button used by PopUpToolBar.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 26/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* OLIVIER DIDELOT OR MARC VILLEMAIN.*/
/*=========================================================================*/
/* CPA_WndButton window*/
#ifndef __CPAWBUTO_HPP__
#define __CPAWBUTO_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 "CPAMCapt.hpp"
class CPA_PopUpToolBar;
/*#########################################################################*/
class CPA_EXPORT CPA_WndButton : public CWnd, public CPA_MouseCapturer
{
public:
CPA_WndButton();
private:
CToolBarCtrl m_oToolBarCtrl;
CPA_PopUpToolBar *m_p_oPopUpTBParent;
long m_lFamily;
tdstButton m_a_stButtons[C_MAX_BUTTON_PER_FAMILY];
long m_lNbButtons;
long m_lNbButtonsTotal;
long m_lIdResource;
long m_lIdChosenButton;
/* Operations*/
public:
void CreateWndButton(CPA_PopUpToolBar *p_oPopUpTB,
long lWndPosX,
long lWndPosY,
tdstButton a_stButtons[],
long lNbButtons,
long lFamily,
long lNbButtonsTotal,
long lIdResource);
long GetChosenButtonId() { return m_lIdChosenButton; };
/*any class deriving from CPA_MouseCapturer one must declare this method as is*/
CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }
private:
int CreateToolBarCtrl();
int CreateToolBar();
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(CPA_WndButton)*/
protected:
/*}}AFX_VIRTUAL*/
/* Implementation*/
public:
virtual ~CPA_WndButton();
/* Generated message map functions*/
protected:
/*{{AFX_MSG(CPA_WndButton)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnLButtonUp( UINT, CPoint );
afx_msg void OnMouseMove( UINT, CPoint );
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /* ACTIVE_EDITOR*/
#endif /* __PCAWBUTO_HPP__*/
/*///////////////////////////////////////////////////////////////////////////*/

View File

@@ -0,0 +1,100 @@
/* See WalkData.doc for explanation of this module */
/* Here are some implementation details :
- there is a main class WalkDataMgr which derives from WalkData
- the main class defines an array of 512 WDElement. This array is
quadrupled linked. The first double link corresponds to the order
in which the datas were edited. The second one corresponds to the
order after several walks (back and forth). When there is a specific
action the second order is written in the first.
Each element has a reference to a data, given by the editor, and
to its parent WalkData
- each walkdata is a simple manager of a set of elements. It
corresponds to a DLL. It has the values Last, First, Current.
Current : current data edited in the list
First : latest data added to the list
Last : oldest data modified during walk.
LastUsed : oldest data used (to erase it if needed)
- the Mgr derives from walkdata because it maintains a specific set
of data : the editor themselves. Indeed, we can walk through the
editors. In this case, the Data in the elements is not the DLL itself
but a pointer to the WalkData managing it.*/
#ifdef ACTIVE_EDITOR
#ifndef __CPAWALKDATA__
#define __CPAWALKDATA__
#include "ACP_Base.h"
#include "CPADLLB.hpp"
#define MAX_WALKDATA_ELEMENT 512
#define NO_ID -1
#define CHECK /* to check for double occurences in lists*/
/* put this in commentary if you want to speed up the process.*/
class WalkData;
class CPA_WalkDataMgr;
struct WalkDataElement {
void *ItsData;
int next; /* ALink*/
int prev;
int backnext; /* BLink*/
int backprev;
WalkData *aWalkData; /* its father*/
};
class WalkData : public CObject {
friend CPA_WalkDataMgr;
private :
int iCurrent;
int iLast;
int iFirst;
int iLastUsed;
CPA_WalkDataMgr *MyWDM;
WalkDataElement *aWD;
CPA_DLLBase *MyDLL;
WalkData(CPA_WalkDataMgr *aWDM, CPA_DLLBase *pDLL);
inline void ABLink (int a, int b); /* set Alink and BLink */
inline void BLink (int a, int b); /* set Blink */
virtual void UpdateList(); /* set BLink in ALink */
int CheckAndGoElement (void *ItsData); /* check if Itsdata element already exists, go to it if it's the cas*/
void InsertVoidElement (void *ItsData); /* add a new element in the list*/
int Backward ();
int Forward ();
void Go(int iNew); /* go directly to an element*/
void BackActive (); /* activate back a DLL*/
};
class CPA_WalkDataMgr:public WalkData {
friend WalkData;
public:
CPA_WalkDataMgr ();
~CPA_WalkDataMgr();
void ActiveElement (CPA_DLLBase *pDLL); /* activate a specific DLL*/
void InsertElement (CPA_DLLBase *pDLL, void *ItsData); /* insert an element of given dLL type*/
void DBackward (); /* Backward one data*/
void DForward ();
void EBackward (); /* Backward one editor*/
void EForward ();
private :
struct WalkDataElement aWD[MAX_WALKDATA_ELEMENT]; /* 12 Ko*/
int iVoid; /* index of next free entry*/
int iCount; /* number of entries in the array*/
inline void ActiveCurrent (); /* active DLL of current element*/
void UpdateAll (); /* update order in each DLL list*/
void UpdateIVoid(); /* find next entry*/
int FindOrCreateWalkData (CPA_DLLBase *pDLL); /* find WD of given dLL, or create a new WD if none are found*/
void GoElement (CPA_DLLBase *pDLL); /* Go to given dLL*/
};
#endif /*__CPAWALKDATA__*/
#endif /*ACTIVE_EDITOR*/

View File

@@ -0,0 +1,127 @@
/* class world*/
#ifndef __CPA_WORLD_HPP__
#define __CPA_WORLD_HPP__
#ifdef ACTIVE_EDITOR
/****************************************/
#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
/****************************************/
#include "CPASObj.hpp"
#include "CPALists.hpp"
#include "camslots.hpp"
class CPA_ObjectDLLBase;
class DEV_MultiDevice3D;
class CPA_CameraSlots;
class CPA_Interface;
class CPA_EXPORT CPA_World
{
private:
DEV_MultiDevice3D *m_p_oMultiDevice;
protected:
/*CPA2 Corneliu Babiuc (multiple registration) 01-07-98*/
CPA_List<EDT_ListByDLL> m_lstRegisterListByDLL;
EDT_ListByDLL m_stRegisterListAllDLLs;
/*END CPA2 Corneliu Babiuc (multiple registration) 02-07-98*/
CPA_List<EDT_ListByDLL> m_lstListByDLL;
CPA_List<CPA_SuperObject> m_stListAllObjects;
EDT_ListByDLL m_stListAllDLLs;
CPA_SuperObject *m_p_oSprObjRoot;
BOOL m_bIsTemporary;
CPA_CameraSlots m_oCameraSlots;
public:
CPA_CameraSlots *GetCameraSlots() { return &m_oCameraSlots;};
/* constructors / destructor*/
CPA_World(CPA_MainWorld *_p_oMainWorld, BOOL bIsTemporary = FALSE);
virtual ~CPA_World(void);
DEV_MultiDevice3D * GetMultiDevice3D() { return m_p_oMultiDevice; }
CPA_Interface * GetInterface();
void SetMultiDevice(DEV_MultiDevice3D *p_oMDev) {m_p_oMultiDevice = p_oMDev; }
void fn_vSetRoot(CPA_SuperObject *_p_SprObj);
void InitWorldForDrawing();
CPA_SuperObject *GetRoot() { return m_p_oSprObjRoot; }
/* Editor Messages Functions overload*/
virtual BOOL fn_bAcceptModifDelete (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptModifParent (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptModifCopy (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptModifTranslate (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptModifRotate (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptModifScale (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptModifInsert (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptModifName (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptSelect (CPA_ObjectDLLBase *pDLLBase) { return TRUE; }
virtual BOOL fn_bAcceptMultiSelect (void) { return TRUE; }
/* Called before editor timer execution*/
virtual BOOL fn_bAcceptToRunTimerEngine(void) { return TRUE; };
/* inits*/
void fn_vCreateListFromHierarchy (CPA_List<CPA_ObjectDLLBase> *_p_oListOfObjectDLL);
void fn_vInitListAllObjects (CPA_SuperObject *pEdObj);
void fn_vInitListObjects (CPA_List<CPA_ObjectDLLBase> *_p_oListOfObjectDLL);
void fn_vAddANewListByType (char *szTypeName, CPA_ObjectDLLBase *pObjectDLL);
/* Lists by types*/
void fn_vReinitListObjects (void);
void fn_vReinitSortedList (void);
void fn_vFillListObjects (CPA_SuperObject *pEdObj);
/* Accessing the lists*/
CPA_List<CPA_SuperObject> * GetListAllObjects (void) { return (&m_stListAllObjects); }
CPA_List<EDT_ListByDLL> * GetListOfListByDLL (void) { return (&m_lstListByDLL); }
EDT_ListByDLL * GetListAllDLLs (void) { return (&m_stListAllDLLs); }
/*CPA2 Corneliu Babiuc (multiple registration) 01-07-98*/
CPA_List<EDT_ListByDLL> * GetListOfRegisteredListByDLL (void) { return (&m_lstRegisterListByDLL); }
EDT_ListByDLL * GetRegisterListAllDLLs (void) { return (&m_stRegisterListAllDLLs); }
/*CPA2 Corneliu Babiuc (multiple registration) 01-07-98*/
/* Lists of super-objects*/
void fn_vUpdateListObjects (CPA_SuperObject *pEdObj, tdeListUpdateMode eType, BOOL bUpdateObject = TRUE);
void fn_vUpdateSelectLists (CPA_SuperObject *pEdObj, tdeListUpdateMode eType, BOOL bIsSelected);
/*CPA2 Corneliu Babiuc (multiple registration) 01-07-98*/
void fn_vUpdateRegisterLists (CPA_SuperObject *pEdObj, tdeListUpdateMode eType, BOOL bIsSelected);
EDT_ListByDLL * GetListFromObject (CPA_List<EDT_ListByDLL> *p_lstListByDLL, CPA_SuperObject *pEdObj);
EDT_ListByDLL * GetListFromObjectDLL (CPA_List<EDT_ListByDLL> *p_lstListByDLL, CPA_ObjectDLLBase *p_oDLL);
EDT_ListByDLL * GetListFromObjectDLL (CPA_ObjectDLLBase *p_oDLL) {return GetListFromObjectDLL(&m_lstListByDLL, p_oDLL); };
EDT_ListByDLL * GetListFromObject (CPA_SuperObject *pEdObj) {return GetListFromObject(&m_lstListByDLL, pEdObj); };
/*END CPA2 Corneliu Babiuc (multiple registration) 02-07-98*/
CPA_List<CPA_SuperObject> * GetListSelected (void) { return &m_stListAllDLLs.m_stListSelected; }
CPA_SuperObject * GetSingleSelection (void) { return (m_stListAllDLLs.m_stListSelected.FindElementFromIndex(0)); }
long GetCountSelected (void) { return (m_stListAllDLLs.m_stListSelected.GetCount()); }
/*CPA2 Corneliu Babiuc (multiple registration) 01-07-98*/
CPA_List<CPA_SuperObject> * GetListRegistered (void) { return &m_stRegisterListAllDLLs.m_stListSelected; }
CPA_SuperObject * GetSingleRegistration (void) { return (m_stRegisterListAllDLLs.m_stListSelected.FindElementFromIndex(0)); }
long GetCountRegistered (void) { return (m_stRegisterListAllDLLs.m_stListSelected.GetCount()); }
/*END CPA2 Corneliu Babiuc (multiple registration) 02-07-98*/
/* fill world*/
void fn_vInsertSuperObjectInNewWorld (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent, BOOL bUpdateDrawing = TRUE);
void fn_vDeleteSuperObjectInNewWorld (CPA_SuperObject *pEdObj, BOOL bUpdateDrawing = TRUE);
/* check editor*/
BOOL fn_bIsTemporaryWorld (void) { return m_bIsTemporary; }
void fn_vSetTemporary (BOOL bIsTemporary = TRUE) { m_bIsTemporary = bIsTemporary; }
};
#endif /*ACTIVE_EDITOR*/
#endif /* __CPA_WORLD_HPP__*/

View File

@@ -0,0 +1,45 @@
/* definition of constants for custom resources ID*/
/* and for Event Editor popupmenu internal ID*/
#define C_CustomIDUserStart 4500
#define C_CustomIDStart (C_CustomIDUserStart) /* 4500*/
#define C_CustomIDEnd (C_CustomIDStart+500) /* 5000*/
#define C_EditMenuIDStart (C_CustomIDEnd+1) /* 5001*/
/* !!!! We must change the general dialog bar buttons ID if*/
/* we change that two ids !!!!*/
#define C_EditMenuIDUndo (C_EditMenuIDStart+0) /* 5001 (first entry of EditMenu)*/
#define C_EditMenuIDRedo (C_EditMenuIDStart+1) /* 5002 (second entry of EditMenu)*/
#define C_EditMenuIDEnd (C_EditMenuIDStart+50) /* 5051*/
#define C_EDTPopUpMenuIDStart (C_EditMenuIDEnd+1) /* 5052*/
#define C_EDTPopUpMenuIDEnd (C_EDTPopUpMenuIDStart+50) /* 5102*/
#define C_EditorMenuIDStart (C_EDTPopUpMenuIDEnd+1) /* 5103*/
#define C_EditorMenuIDEnd (C_EditorMenuIDStart+50) /* 5153*/
#define C_ToolMenuIDStart (C_EditorMenuIDEnd+1) /* 5154*/
#define C_ToolMenuIDEnd (C_ToolMenuIDStart+50) /* 5204*/
/*ANNECY Shaitan NewInterface 24/03/98 {*/
#define C_LoadMenuIDStart (C_ToolMenuIDEnd+1) /* 5255*/
#define C_LoadMenuIDEnd (C_LoadMenuIDStart+50) /* 5305*/
#define C_3DViewMenuIDStart (C_LoadMenuIDEnd+1) /* 5306*/
#define C_3DViewMenuIDEnd (C_3DViewMenuIDStart+50) /* 5356*/
#define C_SpecificMenuIDStart (C_3DViewMenuIDEnd+1) /* 5357*/
#define C_SpecificMenuIDEnd (C_SpecificMenuIDStart+50) /* 5407*/
/*ENDANNECY Shaitan NewInterface }*/
#define C_PrefMenuIDStart (C_SpecificMenuIDEnd+1) /* 5408*/
#define C_PrefMenuIDEnd (C_PrefMenuIDStart+50) /* 5458*/
/*Mircea Dunka - DialogBar buttons for editors*/
#define C_EditorButtonIDStart (C_PrefMenuIDEnd+1) /* 5459*/
#define C_EditorButtonIDEnd (C_EditorButtonIDStart+50) /* 5509*/
#define C_HelpMenuIDStart (C_EditorButtonIDEnd+1) /* 5560*/
#define C_HelpMenuIDEnd (C_HelpMenuIDStart+50) /* 5610*/
/* update the next value when add a new group*/
#define C_CustomIDUserEnd (C_HelpMenuIDEnd+1) /* 5611*/

View File

@@ -0,0 +1,301 @@
/*=========================================================================*/
/* DEVDevic.hpp : Device dealed by MultiDevice.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 26/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* OLIVIER DIDELOT OR MARC VILLEMAIN.*/
/*=========================================================================*/
#ifndef __DEVDEVIC_HPP__
#define __DEVDEVIC_HPP__
/*#include "Tde.h"*/
#define HieFriend
#include "LST.h"
#undef HieFriend
class DEV_ViewPort;
class DEV_MultiDevice;
class DEV_MultiDevice2D;
class DEV_MultiDevice3D;
class FRMSplitter;
class FRMBaseMenu;
class CPA_DialogBar;
#ifdef ACTIVE_EDITOR
class CPA_SuperObject;
/****************************************/
#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
/****************************************/
/*
#define M_DGetParentMultiDevice() ((DEV_MultiDevice *) (GetWindowParent()))
#define M_DGetParentMultiDevice2D() ((DEV_MultiDevice2D *) (GetWindowParent()))
#define M_DGetParentMultiDevice3D() ((DEV_MultiDevice3D *) (GetWindowParent()))
*/
/* type of view in the device.*/
#define C_DEVICE2D 0
#define C_DEVICE3D 1
#define DEV_YCaption 8 /* Size of caption bar*/
class CPA_EXPORT DEV_Device : public CWnd
{
public:
DEV_Device();
virtual ~DEV_Device();
public:
GLD_tdhDevice m_hDisplayDevice;
private:
CWnd *m_p_oWndParent;
DEV_ViewPort *mpViewPort; /* ViewPort in the client zone.*/
int mType; /* Type of Device.*/
UINT mViewType; /* 2D or 3D.*/
BOOL mbFullScreen;
BOOL mbFreezed;
char mRed, mGreen, mBlue; /* Background Color.*/
CRect m_stRectWhileFullscreen;
#ifdef ACTIVE_EDITOR
CBitmap m_oBmClose; /* Bitmap to close frame*/
CBitmap m_oBmGameRefresh1;
CBitmap m_oBmGameRefresh2;
CRect m_oRestoreRect; /* Restore position of window*/
BOOL m_bIsMaximize; /* Is device maximized ?*/
int mNumber; /* number of Device.*/
CRect m_oSizingRect; /* Current rectangle for resizing*/
double m_dfProp; /* Proportionnal resizing*/
public:
BOOL mbGameRefresh; /* Engine will refresh that device ?*/
#endif /* ACTIVE_EDITOR*/
public:
int GetNumber();
GLI_tdxHandleToCamera GetCamera();
DEV_ViewPort * GetViewPort() { return mpViewPort; };
CWnd * GetWindowParent() { return m_p_oWndParent; }
DEV_MultiDevice * GetParentMultiDevice() { return (DEV_MultiDevice *) m_p_oWndParent; }
DEV_MultiDevice2D * GetParentMultiDevice2D() { return (DEV_MultiDevice2D *) m_p_oWndParent; }
DEV_MultiDevice3D * GetParentMultiDevice3D() { return (DEV_MultiDevice3D *) m_p_oWndParent; }
FRMSplitter * GetParentSplitter() { return (FRMSplitter *) GetParent()->GetParent(); }
CPA_DialogBar * GetParentDialogBar();
#ifdef ACTIVE_EDITOR
FRMBaseMenu* GetParentFrame();
#else
CFrameWnd* GetParentFrame();
#endif
#ifdef ACTIVE_EDITOR
void SetNumber(int);
void CreateDevice(void *,int,int,int,int, UINT);
BOOL IsMaximize();
#endif /* ACTIVE_EDITOR*/
void AfterCreate();
BOOL IsFreezed() { return mbFreezed; };
void Freeze() { mbFreezed = TRUE; ShowWindow(SW_HIDE); };
void Unfreeze() { mbFreezed = FALSE; ShowWindow(SW_SHOW); };
void SetBackgroundColor(COLORREF Color);
void SetBackgroundColor(char Red, char Green, char Blue);
void GetBackgroundColor(char *Red, char *Green, char *Blue);
void CreateDeviceBackground(void *, UINT);
BOOL IsFullScreen() { return mbFullScreen; };
BOOL SwapFullScreen(BOOL Show = TRUE);
void SetMainWindowForRender(BOOL Show = TRUE); //chbani
#ifdef ACTIVE_EDITOR
void DrawObject(GLI_tdxHandleToLight hLight, HIE_tdxHandleToSuperObject hObject);
void DrawEditorObject(GLI_tdxHandleToLight hLight, CPA_SuperObject *pRoot);
void DrawDeviceTitle(void);
#endif /* ACTIVE_EDITOR*/
protected:
/*{{AFX_MSG(DEV_Device)*/
afx_msg void OnDestroy();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);
afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos);
afx_msg void OnPaint();
afx_msg BOOL OnNcActivate(BOOL bActiv);
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
#ifdef ACTIVE_EDITOR
afx_msg void OnSizing(UINT, LPRECT);
afx_msg void OnNcLButtonDblClk(UINT, CPoint);
afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point);
afx_msg void OnNcPaint(void);
afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
afx_msg UINT OnNcHitTest(CPoint point);
afx_msg void OnNcRButtonDown(UINT HitTest, CPoint point);
afx_msg void OnNcLButtonDown(UINT HitTest, CPoint point);
afx_msg void OnNcLButtonUp(UINT HitTest, CPoint point);
/* Message from title context menu*/
afx_msg void OnCxtMenu1();
afx_msg void OnCxtMenu2();
afx_msg void OnCxtMenu3();
afx_msg void OnCxtMenu4();
afx_msg void OnCxtMenu5();
afx_msg void OnCxtMenu6();
afx_msg void OnCxtMenu7();
afx_msg void OnCxtMenu8();
afx_msg void OnCxtMenu9();
afx_msg void OnCxtMenu10();
afx_msg void OnCxtMenu11();
afx_msg void OnCxtMenu12();
#endif /* ACTIVE_EDITOR*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
#else
/****************************************/
#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 of view in the device.*/
#define C_DEVICE2D 0
#define C_DEVICE3D 1
#define DEV_YCaption 8 /* Size of caption bar*/
class CPA_EXPORT DEV_Device : public CWnd
{
public:
DEV_Device();
virtual ~DEV_Device();
public:
GLD_tdhDevice m_hDisplayDevice;
private:
CWnd *m_p_oWndParent;
DEV_ViewPort *mpViewPort; /* ViewPort in the client zone.*/
int mType; /* Type of Device.*/
UINT mViewType; /* 2D or 3D.*/
BOOL mbFullScreen;
BOOL mbFreezed;
char mRed, mGreen, mBlue; /* Background Color.*/
CRect m_stRectWhileFullscreen;
public:
void AfterCreate();
int GetNumber();
GLI_tdxHandleToCamera GetCamera();
DEV_ViewPort * GetViewPort() { return mpViewPort; };
CWnd * GetWindowParent() { return m_p_oWndParent; }
DEV_MultiDevice * GetParentMultiDevice() { return (DEV_MultiDevice *) m_p_oWndParent; }
DEV_MultiDevice2D * GetParentMultiDevice2D() { return (DEV_MultiDevice2D *) m_p_oWndParent; }
DEV_MultiDevice3D * GetParentMultiDevice3D() { return (DEV_MultiDevice3D *) m_p_oWndParent; }
FRMSplitter * GetParentSplitter() { return (FRMSplitter *) GetParent()->GetParent(); }
CPA_DialogBar * GetParentDialogBar();
CFrameWnd* GetParentFrame();
BOOL IsFreezed() { return mbFreezed; };
void Freeze() { mbFreezed = TRUE; ShowWindow(SW_HIDE); };
void Unfreeze() { mbFreezed = FALSE; ShowWindow(SW_SHOW); };
void SetBackgroundColor(COLORREF Color);
void SetBackgroundColor(char Red, char Green, char Blue);
void GetBackgroundColor(char *Red, char *Green, char *Blue);
void CreateDeviceBackground(void *, UINT);
BOOL IsFullScreen() { return mbFullScreen; };
BOOL SwapFullScreen();
protected:
/*{{AFX_MSG(DEV_Device)*/
afx_msg void OnDestroy();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);
afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos);
afx_msg void OnPaint();
afx_msg BOOL OnNcActivate(BOOL bActiv);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*////////////////////////*/
#endif
#endif /* __DEVDEVIC_HPP__*/

View File

@@ -0,0 +1,71 @@
/*=========================================================================*/
/* DEVMul2D.hpp : MultiDevice 3D which manage the Device 2D.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 22/07/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT */
/* OLIVIER DIDELOT.*/
/*=========================================================================*/
#ifndef __DEVMUL2D_HPP__
#define __DEVMUL2D_HPP__
#include "DEVMulti.hpp"
class CPA_ProjectDoc;
/****************************************/
#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
/****************************************/
/*-------------------------------------------------------------------------*/
class CPA_EXPORT DEV_MultiDevice2D : public DEV_MultiDevice
{
protected:
DEV_MultiDevice2D();
DECLARE_DYNCREATE(DEV_MultiDevice2D)
public:
DEV_MultiDevice2D(int);
virtual ~DEV_MultiDevice2D();
void Init(void);
CPA_ProjectDoc *GetDocument();
/* Engine*/
/*----------------------------------------------------------------------------------------------------------------------*/
/* Editor*/
/*----------------------------------------------------------------------------------------------------------------------*/
#ifdef ACTIVE_EDITOR
public:
void ViewportTips(LPTOOLTIPTEXT p_ToolTipText, UINT Id);
void CreateViewportToolBar(void);
void DrawObject(void);
void DrawObjectExcept0(void);
#endif /* ACTIVE_EDITOR*/
protected:
/*{{AFX_MSG(DEV_MultiDevice)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*--------------------------------------------------------------------*/
inline CPA_ProjectDoc* DEV_MultiDevice2D::GetDocument()
{
return (CPA_ProjectDoc*) m_pDocument;
}
#endif /* __DEVMUL2D_HPP__*/

View File

@@ -0,0 +1,107 @@
/*=========================================================================*/
/* DEVMul3D.hpp : MultiDevice 3D which manage the Device 3D.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 17/07/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* OLIVIER DIDELOT.*/
/*=========================================================================*/
#ifndef __DEVMUL3D_HPP__
#define __DEVMUL3D_HPP__
#include "DEVMulti.hpp"
/*#include "CPACam.hpp"*/
class CPA_ProjectDoc;
class CPA_DLLList;
class CPA_World;
/****************************************/
#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
/****************************************/
#define C_DefaultRotateUnit (GLI_tdxValue)0.01
#define C_DefaultTranslateUnit (GLI_tdxValue)0.01
#define C_MaxCameraSlots 10
/*--------------------------------------------------------------------------------*/
class CPA_EXPORT DEV_MultiDevice3D : public DEV_MultiDevice
{
protected:
DEV_MultiDevice3D();
DECLARE_DYNCREATE(DEV_MultiDevice3D)
public:
DEV_MultiDevice3D(int);
virtual ~DEV_MultiDevice3D();
CPA_ProjectDoc *GetDocument();
void Init(void);
/* Engine*/
/*----------------------------------------------------------------------------------------------------------------------*/
private:
HIE_tdxHandleToSuperObject m_hSuperObjectWorld; /* The World display in the view.*/
GLI_tdxHandleToLight m_hLight; /* Light to display the 3D world.*/
public:
GLI_tdxHandleToLight GetEngineLight();
HIE_tdxHandleToSuperObject GetEngineWorld();
void SetEngineWorld(HIE_tdxHandleToSuperObject hObj);
/* Editor*/
/*----------------------------------------------------------------------------------------------------------------------*/
#ifdef ACTIVE_EDITOR
private:
CPA_World *m_p_oWorld;
public:
CPA_World *GetWorld();
void SetWorld(CPA_World *p_oWorld);
GLI_tdxHandleToCamera GetEngineFocusCamera() { return GetFocusDevice()->GetCamera(); }
/*----------------------------------------------------------------------------------------------------------------------*/
public:
void CreateViewportToolBar(void);
void DrawObject(void);
void DrawEditorObject(void);
void DrawObjectExcept0(void);
void RotateObjectX();
void RotateObjectY();
void RotateObjectZ();
void RotateWorldX();
void RotateWorldY();
void RotateWorldZ();
#endif /* ACTIVE_EDITOR*/
protected:
/*{{AFX_MSG(DEV_MultiDevice)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*--------------------------------------------------------------------------------*/
inline CPA_ProjectDoc* DEV_MultiDevice3D::GetDocument()
{
return (CPA_ProjectDoc*) m_pDocument;
}
#endif /* __DEVMUL3D_HPP__*/

View File

@@ -0,0 +1,242 @@
/*=========================================================================*/
/* DEVMulti.hpp : MultiDevice which manage the Device.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 26/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* OLIVIER DIDELOT OR MARC VILLEMAIN.*/
/*=========================================================================*/
#ifndef __DEVMULTI_HPP__
#define __DEVMULTI_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
/****************************************/
#include "CPAMdf.hpp"
#include "DEVDevic.hpp"
#include "CPAWorld.hpp"
class CPA_Contact;
class CPA_Interface;
class FRMBaseMenu;
class CPA_ProjectDoc;
class CPA_KeyActionConfiguration;
#define CPA_MSG_DRAWOBJECT WM_USER + 0x6500
#define CPA_MSG_DRAWOBJECTEXCEPT0 WM_USER + 0x6501
#define MD_ONEDEVICE (1)
#define MD_NOTRANSLATIONX (1<<2)
#define MD_NOTRANSLATIONY (1<<3)
#define MD_NOTRANSLATIONZ (1<<4)
#define MD_NOTRANSLATION (1<<5)
#define MD_NOROTATIONX (1<<6)
#define MD_NOROTATIONY (1<<7)
#define MD_NOROTATIONZ (1<<8)
#define MD_NOROTATION (1<<9)
#define MD_NOZOOMX (1<<10)
#define MD_NOZOOMY (1<<11)
#define MD_VIEW2D (1<<12)
#define MAX_DEVICE (10+1) /* Maximum number of Device.*/
typedef enum {MultiDevice3D = 1,MultiDevice2D,
SingleDevice3D, SingleDevice2D } tdeMultiDeviceType;
/*---------------------------------------------------------------------*/
class CPA_EXPORT DEV_MultiDevice : public CView
{
protected:
DEV_MultiDevice();
DECLARE_DYNCREATE(DEV_MultiDevice)
public:
DEV_MultiDevice(int);
virtual ~DEV_MultiDevice();
/*--------------------------------------------------------------------------------*/
/* VARIABLE MEMBERS*/
/*--------------------------------------------------------------------------------*/
BOOL mbOnDestroy; /* Is MultiDevice is Destroy.*/
protected:
short mFlags; /* Flags defining behaviour of MultiDevice.*/
#ifdef ACTIVE_EDITOR
DEV_Device *mpDevice[MAX_DEVICE]; /* List of Devices.*/
DEV_Device mDevice[MAX_DEVICE];
BOOL mActivDevice[MAX_DEVICE]; /* List of active Devices.*/
long m_lFocusDevice; /* Number of the device who has the focus.*/
long m_lFocusPane; /* Number of the pane who has the focus. */
public:
CWnd *m_p_oMultiToDraw;
BOOL mbForceDrawing;
char m_cIsAdditional; /* Additional multi device ?*/
private:
CPA_EditManager *m_p_oEditManager; /* For undo*/
CPA_Contact *m_p_oContact; /* Address of contact object.*/
CPA_Interface *m_p_oInterface; /* Adress of Interface*/
BOOL m_bActive;
protected:
CWnd *m_p_oParent; /* Parent of multidevice*/
#else
DEV_Device mDeviceAlone; /* When there is only one Device.*/
BOOL mActivDeviceAlone; /* Is the device is active.*/
#endif /* ACTIVE_EDITOR*/
/*--------------------------------------------------------------------------------*/
/* GET-FUNCTIONS*/
/*--------------------------------------------------------------------------------*/
public:
CPA_ProjectDoc *GetDocument();
int GetFlags() { return mFlags; }
DEV_Device *GetDevice(int);
DEV_Device *GetFocusDevice();
DEV_Device *GetFocusDevice2();
#ifdef ACTIVE_EDITOR
FRMBaseMenu *GetParentFrame() { return (FRMBaseMenu *) GetParent()->GetParent(); }
#else
CFrameWnd *GetParentFrame() { return (CFrameWnd *) GetParent(); }
#endif
#ifdef ACTIVE_EDITOR
void Activate() { m_bActive = TRUE;};
void Disactivate() { m_bActive = FALSE;};
BOOL IsActive() { return m_bActive; };
CPA_EditManager *GetEditManager();
CPA_Contact *GetContact();
CPA_Interface *GetInterface();
long GetNumFocusDevice() { return m_lFocusDevice; }
protected:
DEV_MultiDevice3D *GetPane_0_0();
private:
UINT GetNextNumDevice();
#endif /* ACTIVE_EDITOR*/
/*--------------------------------------------------------------------------------*/
/* SET-FUNCTIONS*/
/*--------------------------------------------------------------------------------*/
public:
void SetFlags(int flag) { mFlags = (short) flag; };
void SetBackgroundColor(COLORREF Color);
void SetBackgroundColor(char Red, char Green, char Blue);
void GetBackgroundColor(char *Red, char *Green, char *Blue);
#ifdef ACTIVE_EDITOR
void SetEditManager(CPA_EditManager *p_oMng);
void SetContact(CPA_Contact *p_oContact);
void SetInterface (CPA_Interface *p_oInterface);
void SetFocusPane(long lPane);
void SetActivDevice(int num, BOOL activ) { mActivDevice[num] = activ; };
void SetFocusDevice(int);
private:
BOOL SetDevice(DEV_Device *pDevice, UINT num);
#endif /* ACTIVE_EDITOR*/
/*--------------------------------------------------------------------------------*/
/* TEST-FUNCTIONS*/
/*--------------------------------------------------------------------------------*/
public:
BOOL TestFlags(int flag) { return mFlags & flag; };
BOOL IsView2D() { return (mFlags & MD_VIEW2D); };
#ifdef ACTIVE_EDITOR
BOOL IsDevice(DEV_Device *);
BOOL IsActivDevice(int num) { return mActivDevice[num]; };
#endif /* ACTIVE_EDITOR*/
/*--------------------------------------------------------------------------------*/
/* ACTION-FUNCTIONS*/
/*--------------------------------------------------------------------------------*/
public:
void FreezeAllButOne(UINT Number);
void FreezeAll();
void UnfreezeAll();
void Init();
DEV_Device* OpenNewDevice(int _iLeft = -1, int _iTop = -1, int _iWidth = -1, int _iHeight = -1);
void CloseAllDevices();
private:
void OnOpenDeviceBackground();
void DelFlags(int flag) { mFlags &= !flag; };
protected:
void AddFlags(int flag) { mFlags |= flag; };
#ifdef ACTIVE_EDITOR
public:
void UpdateColorTitle(void);
virtual long InitButtonsViewport(long) { return 0; };
virtual void DrawObject(void) {};
virtual void DrawEditorObject(void) {};
virtual void DrawObjectExcept0(void) {};
#endif /* ACTIVE_EDITOR*/
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(DEV_MultiDevice)*/
public:
virtual void OnDraw(CDC* pDC);
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
/*}}AFX_VIRTUAL*/
/*--------------------------------------------------------------------------------*/
/* MESSAGE MAP FUNCTIONS*/
/*--------------------------------------------------------------------------------*/
protected:
/*{{AFX_MSG(DEV_MultiDevice)*/
afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDestroy();
afx_msg BOOL OnNotifyEx( UINT id, NMHDR * pNotifyStruct, LRESULT * result );
#ifdef ACTIVE_EDITOR
public:
afx_msg void OnDeviceTileHorz();
afx_msg void OnDeviceTileVert();
afx_msg void OnDeviceCascade();
afx_msg void OnOpenDevice();
afx_msg void OnCloseDevice();
afx_msg void OnCloseAllDevice();
afx_msg void OnMaximizeDevice(void);
afx_msg void OnRestoreDevice(void);
afx_msg LONG OnDrawObject(UINT, LONG);
afx_msg LONG OnDrawObjectExcept0(UINT, LONG);
#endif /* ACTIVE_EDITOR*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
inline CPA_ProjectDoc* DEV_MultiDevice::GetDocument()
{
return (CPA_ProjectDoc*)m_pDocument;
}
#endif /* __DEVMULTI_HPP__*/

View File

@@ -0,0 +1,74 @@
/*=========================================================================*/
/* DEVSgl3D.hpp : SingleDevice 3D which manage only one Device 3D.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 19/07/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT */
/* OLIVIER DIDELOT OR MARC VILLEMAIN.*/
/*=========================================================================*/
#ifndef __DEVSGL3D_HPP__
#define __DEVSGL3D_HPP__
#include "DEVMul3D.hpp"
class CPA_ProjectDoc;
/****************************************/
#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
/****************************************/
class CPA_EXPORT DEV_SingleDevice3D : public DEV_MultiDevice3D
{
protected: /* create from serialization only*/
DEV_SingleDevice3D();
DECLARE_DYNCREATE(DEV_SingleDevice3D)
public:
DEV_SingleDevice3D(int);
/* Attributes*/
public:
CPA_ProjectDoc* GetDocument();
/* variables membres*/
public:
/* Operations*/
public:
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(DEV_SingleDevice3D)*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
public:
virtual ~DEV_SingleDevice3D();
protected:
/* Generated message map functions*/
protected:
/*{{AFX_MSG(DEV_SingleDevice3D)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
inline CPA_ProjectDoc* DEV_SingleDevice3D::GetDocument()
{ return (CPA_ProjectDoc*)m_pDocument; }
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __DEVSGL3D_HPP__*/

View File

@@ -0,0 +1,75 @@
/*=========================================================================*/
/* DEVSingl.hpp : SingleDevice which manage only one Device.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 27/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT */
/* OLIVIER DIDELOT OR MARC VILLEMAIN.*/
/*=========================================================================*/
#ifndef __DEVSINGL_HPP__
#define __DEVSINGL_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
/****************************************/
class CPA_EXPORT DEV_SingleDevice : public DEV_MultiDevice
{
protected: /* create from serialization only*/
DEV_SingleDevice();
DECLARE_DYNCREATE(DEV_SingleDevice)
public:
DEV_SingleDevice(int);
/* Attributes*/
public:
CPA_ProjectDoc* GetDocument();
/* variables membres*/
public:
/* Operations*/
public:
/* Overrides*/
/* ClassWizard generated virtual function overrides*/
/*{{AFX_VIRTUAL(DEV_SingleDevice)*/
/*}}AFX_VIRTUAL*/
/* Implementation*/
public:
virtual ~DEV_SingleDevice();
void DrawObject(void) {};
void DrawObjectExcept0(void) {};
protected:
/* Generated message map functions*/
protected:
/*{{AFX_MSG(DEV_SingleDevice)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
inline CPA_ProjectDoc* DEV_SingleDevice::GetDocument()
{ return (CPA_ProjectDoc*)m_pDocument; }
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __DEVSINGL_HPP__*/

View File

@@ -0,0 +1,128 @@
/*=========================================================================*/
/* DEVViewp.hpp : Viewport used by the Device.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 26/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* OLIVIER DIDELOT OR MARC VILLEMAIN.*/
/*=========================================================================*/
#ifndef __DEVVIEWP_HPP__
#define __DEVVIEWP_HPP__
#include "geo.h"
#include "gli.h"
#include "CPAMCapt.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
/****************************************/
#define M_PaintParent() ((DEV_Device *) GetDevice())->SendMessage(WM_PAINT)
#define M_PaintParentOf(instance) ((DEV_Device *) instance->GetDevice())->SendMessage(WM_PAINT)
/*
#define M_GetParentDevice() ((DEV_Device *) GetDevice())
#define M_VGetParentMultiDevice() ((DEV_MultiDevice *) (((DEV_Device *) GetDevice())->GetWindowParent()))
#define M_VGetParentMultiDevice2D() ((DEV_MultiDevice2D *) (((DEV_Device *) GetDevice())->GetWindowParent()))
#define M_VGetParentMultiDevice3D() ((DEV_MultiDevice3D *) (((DEV_Device *) GetDevice())->GetWindowParent()))
#define M_GetParentContact() (M_VGetParentMultiDevice()->GetContact())
#define M_VGetParentDialogBar() (&(((FRMBaseMenu*)(M_VGetParentMultiDevice()->GetParent()->GetParent()))->m_oGeneralDialogBar))
*/
/*
#define M_VGetParentMultiDeviceOf(instance) ((DEV_MultiDevice *) (((DEV_Device *) instance->GetDevice())->GetWindowParent()))
#define M_VGetParentMultiDevice3DOf(instance) ((DEV_MultiDevice3D *) (((DEV_Device *) instance->GetDevice())->GetWindowParent()))
#define M_GetParentContactOf(instance) (M_VGetParentMultiDeviceOf(instance)->GetContact())
*/
#define M_VGetParentMultiDeviceOf(instance) (instance->GetParentMultiDevice())
#define M_VGetParentMultiDevice3DOf(instance) (instance->GetParentMultiDevice3D())
#define M_GetParentContactOf(instance) (M_VGetParentMultiDeviceOf(instance)->GetContact())
class DEV_Device;
class DEV_MultiDevice;
class DEV_MultiDevice2D;
class DEV_MultiDevice3D;
class CPA_Contact;
class FRMBaseMenu;
class CPA_DialogBar;
class CPA_EXPORT DEV_ViewPort : public CWnd
#ifdef ACTIVE_EDITOR /* MR0902*/
, public CPA_MouseCapturer
#endif
{
protected:
DEV_Device *m_p_oDevice;
public:
DEV_ViewPort();
virtual ~DEV_ViewPort();
#ifdef ACTIVE_EDITOR /* MR0902*/
/*any class deriving from CPA_MouseCapturer one must declare this method as is*/
CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }
#endif
public:
GLD_tdhViewport m_hDisplayViewport;
GLD_tdhDevice m_hDisplayDevice;
public:
virtual void CreateViewPort(void *, GLD_tdhDevice) = 0;
GLD_tdhViewport GetDisplayViewport() { return m_hDisplayViewport; };
DEV_Device * GetDevice() { return m_p_oDevice; }
DEV_MultiDevice * GetParentMultiDevice();
DEV_MultiDevice2D * GetParentMultiDevice2D();
DEV_MultiDevice3D * GetParentMultiDevice3D();
CPA_Contact * GetParentContact();
CPA_DialogBar * GetParentDialogBar();
#ifdef ACTIVE_EDITOR
FRMBaseMenu *GetParentFrame();
#else
CFrameWnd *GetParentFrame();
#endif
protected:
/*{{AFX_MSG(DEV_ViewPort)*/
afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);
afx_msg void OnPaint();
/*}}AFX_MSG*/
#ifdef ACTIVE_EDITOR
/*{{AFX_MSG(DEV_Device)*/
afx_msg int OnCreate( LPCREATESTRUCT );
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
virtual BOOL OnCommand (WPARAM wParam, LPARAM lParam);
/* afx_msg void OnCommandRange(UINT uiId);*/
afx_msg void OnUpdateCommandUIRange(CCmdUI *);
/*}}AFX_MSG*/
#endif /* ACTIVE_EDITOR*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __DEVVIEWP_HPP__*/

View File

@@ -0,0 +1,58 @@
/*=========================================================================*/
/* DEVVp2D.hpp : Viewport 2D.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 22/07/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT */
/* OLIVIER DIDELOT.*/
/*=========================================================================*/
#ifndef __DEVVP2D_HPP__
#define __DEVVP2D_HPP__
/*#include "Tde.h"*/
#include "DEVViewp.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
/****************************************/
class CPA_EXPORT DEV_ViewPort2D : public DEV_ViewPort
{
public:
DEV_ViewPort2D();
virtual ~DEV_ViewPort2D();
void CreateViewPort(void *, GLD_tdhDevice);
#ifdef ACTIVE_EDITOR
void DrawObject(void *p_stObject);
#endif /* ACTIVE_EDITOR*/
protected:
/*{{AFX_MSG(DEV_ViewPort)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
#ifdef ACTIVE_EDITOR
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
#endif /* ACTIVE_EDITOR*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
#endif /* __DEVVP2D_HPP__*/

View File

@@ -0,0 +1,218 @@
/*=========================================================================*/
/* DEVVp3D.hpp : Viewport 3D.*/
/* This is a part of the PCA project.*/
/**/
/* Version 1.0*/
/* Creation date 17/07/96*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* OLIVIER DIDELOT.*/
/*=========================================================================*/
#ifndef __DEVVP3D_HPP__
#define __DEVVP3D_HPP__
#include "DEVViewp.hpp"
/*#include "CPACam.hpp"*/
#include "itf/DEVDevic.hpp"
#include "lst.hpp"
#include "spo.h"
#ifdef ACTIVE_EDITOR
class CPA_SuperObject;
class CPA_BaseObject;
class CPA_CameraDLLBase;
class CPA_MainWorld;
#endif
/****************************************/
#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
/****************************************/
/*##########################################################################*/
/* Definition of mouse position in main view*/
typedef struct tdstMousePos_
{
CPoint stPos; /* 2D pos of editor*/
GLI_tdst2DVertex stPos2D; /* GLI 2D pos of editor*/
MTH3D_tdstVector stPos3D; /* GLI 3D pos of editor*/
} tdstMousePos;
/*##########################################################################*/
/*#################################################################################*/
/* Definition of mouse swap in main view*/
typedef enum eForceSwap
{
eNone,
eSwapRight,
eSwapLeft,
eSwapBoth
}
tdeForceSwap;
/*#################################################################################*/
/*##########################################################################*/
/* Definition of light for selection*/
typedef struct tdstSaveLight_
{
GLI_tdxHandleToLight hLight;
long lInitialState;
} tdstSaveLight;
/*##########################################################################*/
template <class DEV_ViewPort3D> class DEV_Timer;
class CPA_EXPORT DEV_ViewPort3D : public DEV_ViewPort
{
/* public functions, with and without editor*/
public:
DEV_ViewPort3D();
virtual ~DEV_ViewPort3D();
DECLARE_DYNCREATE(DEV_ViewPort3D)
void CreateViewPort(void *, GLD_tdhDevice);
GLI_tdxHandleToCamera GetEngineCamera ();
void m_vFakeMouseMove(CPoint oScreenMousePoint);
void m_vFakeMouseLButtonDown(CPoint oScreenMousePoint);
BOOL m_bWasInSecondScreen;
BOOL m_bIsVerticalSwap;
/* private member, with and without editor*/
private:
GLI_tdstSpecificAttributesFor3D m_Attributes3D;
UINT m_uiLastMouseState;
#ifdef ACTIVE_EDITOR
private:
CPA_SuperObject *m_p_oCameraSO;
CPA_BaseObject *m_p_oCamera;
CPA_CameraDLLBase *m_p_oCameraInterface;
CPoint m_oLastCursorScreenPos;
MTH3D_tdstVector m_stMousePos; /* The 3D-coordinates of the mouse*/
MTH3D_tdstVector m_stInitMousePos; /* The 3D-coordinates of the initial position of the mouse ( when we start to move the object )*/
public:
tdstSaveLight m_a_tdxhArrayOfLights[C_lMaxLightInViewport];
long m_lCurrentLights;
CPA_SuperObject *GetCameraSO (void) { return m_p_oCameraSO; }
CPA_BaseObject *GetCamera (void) { return m_p_oCamera; }
CPA_CameraDLLBase *GetCameraInterface (void) { return m_p_oCameraInterface; }
CPA_SuperObject *ChangeCamera (CPA_SuperObject *p_oCamera, BOOL bWithPrevCam = TRUE);
void fn_vInitLightsInViewport (GLD_tdxHandleToViewportAttributes _hVpt, GLI_tdxHandleToLight _hLight, CPA_MainWorld *pMainWorld);
void DrawObject (GLI_tdxHandleToLight hLight, HIE_tdxHandleToSuperObject hObject);
void DrawEditorObject(GLI_tdxHandleToLight hLight, CPA_SuperObject *pRoot);
void DetectMouseSwap (BOOL bDrawCursor = FALSE, GLD_tdstViewportAttributes *p_stViewportAttr = NULL);
void fn_vUpdateStatusBarMessage (void);
void SetSelectedInstance (CString csName) { m_csSelectedInstance = csName; }
void SetPickedInstance (CString csName) { m_csPickedInstance = csName; }
void SetPosition (MTH3D_tdstVector *pNewPos);
void SetMoveVector (MTH3D_tdstVector *pNewMove);
void AddtoMoveVector (MTH3D_tdstVector *pNewMove);
void SetDistanceVector (MTH3D_tdstVector *pDist);
void SetDistanceToCamera (MTH3D_tdstVector *pDist);
/*fonctions <20> revoire FBFFBF*/
/* void SetPlaneForMouseMove (MTH3D_tdstVector * p_stX_Axe , MTH3D_tdstVector * p_stY_Axe);*/
/*void GetPlaneForMouseMove (MTH3D_tdstVector * p_stX_Axe , MTH3D_tdstVector * p_stY_Axe);*/
void Convert3dTo2d(GLI_tdst2DVertex *p_stDest, MTH3D_tdstVector *p_stSource);
void InitMouseMove (MTH3D_tdstVector *stMousePos3D, GLI_tdst2DVertex* stMousePos2D);
void DoneMouseMove (void);
/*CPA2 Gabi Dumitrascu 98/06/26*/
BOOL IsCursorInFirstScreen ();
void SetCursorInFirstScreen ();
void SetCursorInSecondScreen ();
BOOL IsCursorInDeadScreen ();
void mfn_vChangeCursorFrom1To2 (CPoint &rptMouse, tdeForceSwap eSwapMode, BOOL bVerticalSwap = FALSE);
void mfn_vChangeCursorFrom2To1 (CPoint &rptMouse, tdeForceSwap eSwapMode, BOOL bVerticalSwap = FALSE);
/*End CPA2 Gabi Dumitrascu 98/06/26*/
private:
CString m_csMessage;
CString m_csSelectedInstance;
CString m_csPickedInstance;
MTH3D_tdstVector m_stPosition;
MTH3D_tdstVector m_stMoveVector;
MTH3D_tdstVector m_stCameraDistance;
MTH3D_tdstVector m_stDistance;
CString fn_csGetSelectedInstanceName( ACP_tdxIndex, HIE_tdstPickInfo*, tdstMousePos* );
/* Function used by OnMouseMove to compute mouse move into the selected plane*/
/* Input : p_stOriginalMouseMove, output : p_stConstrainedMouseMove*/
BOOL ComputeMouseMoveIntoPlane(MTH3D_tdstVector *p_stConstrainedMouseMove, MTH3D_tdstVector *p_stOriginalMouseMove);
/*FBFFBF to remove when we have rush voodoo cards*/
public:
BOOL m_bObjectIsMoving;
BOOL m_bBeginMove;
MTH3D_tdstVector m_stCamToEndingPos;
void ClientToVoodooFullScreen(CPoint &point);
void ClientToVoodoo(CPoint &point);
void VoodooToClient(CPoint &point);
void ClientToVoodoo(GLI_tdst2DVertex & point);
void PointToMousePos(CPoint point, tdstMousePos* pPos);
#endif /* ACTIVE_EDITOR*/
protected:
/*{{AFX_MSG(DEV_ViewPort3D)*/
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDestroy();
#ifdef ACTIVE_EDITOR
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); /* CPA2 Corneliu Babiuc (Alt Key) 14-05-98 */
afx_msg void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); /* CPA2 Corneliu Babiuc (Alt Key) 14-05-98 */
afx_msg void OnSetFocus(CWnd* pOldWnd);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonUp(UINT nFlags, CPoint point); /* CPA_Ed_1 FS*/
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg LONG OnDragDropEnd(WPARAM wparam, LPARAM lparam);
afx_msg LONG OnDragDropLooseFocus(WPARAM wparam, LPARAM lparam);
afx_msg LONG OnDragDropGainFocus(WPARAM wparam, LPARAM lparam);
afx_msg LONG OnDragDropMove(WPARAM wparam, LPARAM lparam);
afx_msg void OnTimer( UINT nIDEvent );
/*CPA2 Gabi Dumitrascu 98/07/13*/
afx_msg void OnNcMouseMove (UINT nHitTest, CPoint point);
afx_msg UINT OnNcHitTest (CPoint point);
afx_msg void OnKillFocus(CWnd* pNewWnd);
/*End CPA2 Gabi Dumitrascu 98/07/13*/
#endif /* ACTIVE_EDITOR*/
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __DEVVP3D_HPP__*/

View File

@@ -0,0 +1,93 @@
#ifndef __FRMBASE_HPP__
#define __FRMBASE_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
/* To associate another view to a frame*/
#define M_FRMAssociateView(pFrame, CClassView)\
{\
CCreateContext creat;\
CClassView *pView;\
creat.m_pNewViewClass = RUNTIME_CLASS(CClassView);\
creat.m_pCurrentDoc = M_GetMainWnd()->GetActiveView()->GetDocument();\
pView = (CClassView *) ((pFrame)->CreateView(&creat));\
pView->ShowWindow(TRUE);\
(pFrame)->SetActiveView(pView, TRUE);\
}
class CPA_MainWorld;
/* Types of sizing*/
#define FRM_C_MoveLeft 0x01
#define FRM_C_MoveRight 0x02
#define FRM_C_MoveTop 0x04
#define FRM_C_MoveBottom 0x08
/* A link to another window*/
class FRMBase;
typedef struct tdstFRMLink_
{
char cLinkSame;
} tdstFRMLink;
/* Base class of a window*/
class CPA_EXPORT FRMBase : public CFrameWnd
{
public:
CPA_MainWorld *m_p_oMainWorld;
BOOL m_bAlreadySize; /* For recursive sizing*/
unsigned int m_uiHitTest;
char m_cLock; /* Can be size in a given direction*/
CRect m_oLastPos; /* Last position for refresh*/
CRect m_oCurPos;
CRect m_oMainPos;
public:
tdstFRMLink m_stWinTop; /* Links with other windows*/
tdstFRMLink m_stWinBottom;
tdstFRMLink m_stWinLeft;
tdstFRMLink m_stWinRight;
int m_iCol, m_iRow; /* Type of window*/
BOOL m_bKeepPos; /* We want to keep last position*/
int m_iInitWidth; /* First width and height*/
int m_iInitHeight;
DWORD m_dwCaptionStyle; /* Style of caption of window*/
public:
FRMBase(void);
DECLARE_DYNCREATE(FRMBase)
virtual BOOL CreateBase(LPCTSTR, int, int, CPA_MainWorld*, CCreateContext *pContext = NULL);
void mfn_vEnableCaption(BOOL);
CPA_MainWorld* GetMainWorld() { return m_p_oMainWorld; }
virtual void fn_vOnActivate(void) {};
void mfn_vComputeWidthWindow(int);
void mfn_vWidthWindow(int);
void mfn_vComputeHeightWindow(int);
void mfn_vHeightWindow(int);
protected:
afx_msg void OnNcLButtonDown(UINT, CPoint);
afx_msg UINT OnNcHitTest(CPoint);
afx_msg void OnSize(UINT, int, int);
afx_msg void OnInitMenu(CMenu *);
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR *);
DECLARE_MESSAGE_MAP()
};
#endif /* ACTIVE_EDITOR*/
#endif /* __FRMBASE_HPP__*/

View File

@@ -0,0 +1,156 @@
#ifndef __FRMBSMN_HPP__
#define __FRMBSMN_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
class EDT_SubMenu;
class CPA_DLLBase;
class CPA_EditorBase;
class CPA_KeyActionConfiguration;
#include "FRMBase.hpp"
#include "Lst.hpp"
#include "CPADgBar.hpp"
class DEV_MultiDevice;
class CPA_Interface;
/**/
/* Constants for status bar.*/
/**/
#define C_STATUS_WARNING 1 /* blue background*/
#define C_STATUS_ERROR 2 /* red background*/
#define C_STATUS_NORMAL 3 /* normal background*/
#define C_STATUSPANE_EDITOR 0
#define C_STATUSPANE_INFOS 1
class FRMbaseMenu;
/**/
/* Splitter.*/
/**/
class FRMSplitter : public CSplitterWnd
{
public:
DECLARE_DYNCREATE(FRMSplitter)
public:
virtual BOOL CreateView(int, int, CRuntimeClass *, SIZE, CCreateContext *);
virtual void DeleteView(int, int);
virtual void DeleteRow(int);
virtual void DeleteColumn(int);
virtual void SetActivePane(int, int, CWnd *pWnd = NULL);
virtual void RecalcLayout(void);
virtual int HitTest(CPoint pt) const;
void DrawObject(CWnd *);
BOOL CreateScrollBarCtrl(DWORD, UINT);
void MakeSplit(int);
FRMBaseMenu * GetParentFrame() { return (FRMBaseMenu *) GetParent(); }
protected:
afx_msg void OnLButtonDown(UINT, CPoint);
afx_msg void OnPaint();
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
DECLARE_MESSAGE_MAP()
};
/**/
/* Frame.*/
/**/
class CPA_EXPORT FRMBaseMenu : public FRMBase
{
protected:
public:
BOOL mbWantSplit;
BOOL mbWantNew;
BOOL mbWantTile;
BOOL mbWantClose;
FRMSplitter m_oSplitter;
CMenu m_oGeneralMenu; /* Starting menu*/
EDT_SubMenu *m_p_oEditSubMenu;
EDT_SubMenu *m_p_oEditorSubMenu;
EDT_SubMenu *m_p_oToolSubMenu;
/*ANNECY Shaitan NewInterface 24/03/98 {*/
EDT_SubMenu *m_p_oLoadSubMenu;
EDT_SubMenu *m_p_o3DViewSubMenu;
EDT_SubMenu *m_p_oSpecificSubMenu;
/*ENDANNECY Shaitan NewInterface }*/
EDT_SubMenu *m_p_oPrefSubMenu;
CPA_DialogBar m_oGeneralDialogBar; /* General dialog bar of application*/
CStatusBar m_oStatusBar;
BOOL m_bEnableEditors;
public:
FRMBaseMenu();
~FRMBaseMenu();
DECLARE_DYNCREATE(FRMBaseMenu)
virtual void UpdateStatus(char *, int, int);
virtual void fn_vInitGeneralMenuWithContext(void);
virtual BOOL OnCommand( WPARAM wParam, LPARAM lParam );
virtual BOOL CreateBase(LPCTSTR, int, int, CPA_MainWorld*);
virtual BOOL CreateBase(LPCTSTR, CPA_MainWorld*);
virtual void fn_vInitGeneralDialogBarWithContext(void);
virtual void mfn_vUpdateDeviceToolBar(void);
virtual void fn_vShowGeneralInterface(BOOL);
virtual void fn_vEnableEditors(BOOL);
void fn_vUpdateCurrentEditor (CPA_EditorBase *pNewCurrentEditor);
virtual void fn_vOnActivate(void);
virtual BOOL OnCreateClient(LPCREATESTRUCT, CCreateContext *);
DEV_MultiDevice * GetMultiDevice() { return (DEV_MultiDevice *) GetActiveView(); }
CPA_Interface * GetInterface();
BOOL fn_bCanClose(void);
/*Mircea Dunka - Dialog Bar Buttons for Editors*/
protected:
void fn_vUpdateEditorButtonsToolbar(void);
/*end Mircea Dunka - Dialog Bar Buttons for Editors */
protected:
/*{{AFX_MSG(FRMBaseMenu)*/
afx_msg void OnNcLButtonDblClk(UINT, CPoint);
afx_msg void OnSysCommand(UINT, LPARAM);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnInitMenu(CMenu *_pMenu);
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
afx_msg void OnSaveAll(void);
afx_msg void OnOptions(void);
afx_msg void OnInitMap(void);
afx_msg void OnUndo(void);
afx_msg void OnRedo(void);
afx_msg void OnDrawItem(int, LPDRAWITEMSTRUCT);
afx_msg void OnActivate(UINT State, CWnd *pOther, BOOL bMini);
afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);
afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
/*}}AFX_MSG*/
DECLARE_MESSAGE_MAP()
/*Mircea Dunka - I need this function for dialog bar buittons initialization*/
public:
BOOL AddItemToPopupMenu(EDT_SubMenu* _pSubMenu, CPA_List<CPA_DLLBase>* _p_oListOfDLL);
/*end Mircea Dunka*/
protected:
void fn_vActivateHelp(UINT IDCmdMsg);
void fn_vFillHelpMenu(CMenu *pPopupMenu);
};
#endif ACTIVE_EDITOR
#endif __FRMBSMN_HPP__

View File

@@ -0,0 +1,83 @@
#ifndef __FRMGEST_HPP__
#define __FRMGEST_HPP__
#ifdef ACTIVE_EDITOR
#include <afxtempl.h>
#include "FRMBase.hpp"
#define FRM_C_MaxRow 3
#define FRM_C_MaxCol 3
/****************************************/
#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
/****************************************/
class CPA_EXPORT FRMGest
{
public:
FRMGest(void);
~FRMGest(void);
public:
int m_iCanRefresh;
public:
FRMBase *ma_p_oWinArray[FRM_C_MaxCol+2][FRM_C_MaxRow+2];
FRMBase *ma_p_oOccupyArray[FRM_C_MaxCol+2][FRM_C_MaxRow+2];
int ma_iOrder[FRM_C_MaxCol+2][FRM_C_MaxRow+2];
FRMBase *mp_oFirstWindow;
int m_iBeginSize;
CList<FRMBase*,FRMBase*> m_lstFrames; /* List of all frames*/
private:
void mfn_vRecomputeSizeOpposite(FRMBase *, FRMBase *, char);
void mfn_vRecomputeSizeSame(FRMBase *, FRMBase *, char);
void mfn_vComputeActivatePos(FRMBase *);
void mfn_vExpandFrame(int, int);
void mfn_vExpandAll(void);
void mfn_vSearchNextOrder(int, int *, int *);
FRMBase *fn_vSearchHorizWindow(FRMBase *, int);
FRMBase *fn_vSearchVertWindow(FRMBase *, int);
public:
void mfn_vAddOneFrame(FRMBase *);
void mfn_vActivateWindow(FRMBase *);
void mfn_vDisactivateWindow(FRMBase *);
void mfn_vAWindowHasMoved(FRMBase *, char);
void mfn_vRefreshWindows(BOOL);
void mfn_vSetRefresh(BOOL);
void mfn_vUpdateWidthHeight(FRMBase *);
void mfn_vUpdateLastPos(void);
};
extern CPA_EXPORT FRMGest g_oFrameGest;
/*------------------------------------------------------------------------*/
class CPA_EXPORT BaseFrame : public CFrameWnd
{
public:
void mfnv_UpdateTitle(char *);
virtual BOOL PreTranslateMessage( MSG* pMsg );
afx_msg void OnActivate(UINT, CWnd*,BOOL);
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
/*CPA2 Gabi Dumitrascu 98/07/13*/
afx_msg void OnNcMouseMove (UINT nHitTest, CPoint point);
afx_msg UINT OnNcHitTest (CPoint point);
/*End CPA2 Gabi Dumitrascu 98/07/13*/
DECLARE_MESSAGE_MAP()
};
extern CPA_EXPORT BaseFrame g_oBaseFrame;
#endif /* ACTIVE_EDITOR*/
#endif /* __FRMGEST_HPP__*/

View File

@@ -0,0 +1,219 @@
/*=============================================================================
*
* Filename: FRMSplit.hpp
* Version: 1.0
* Date: 06/11/96
* Author: V.L.
*
* Description: definition off following class:
* CPaneFrame each pane contain a CPaneView which contain a CPaneFrame
* CPaneView each pane contain a CPaneView
* CVectorSplitterWnd the Wnd that manage splitters, call by this name
* because it could only be a (1,n) or a (n,1) splitter
* CSplitFrame a classe derived from FRMBase that contain splitter
*
*===========================================================================*/
#ifndef __FRMSPLIT_HPP__
#define __FRMSPLIT_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 "afxext.h"
#include "FRMBase.hpp"
#include "CPAMCapt.hpp"
/*=============================================================================
* Defines
=============================================================================*/
/* caption height or width*/
/*#define C_wCaptionHeight 18*/
#define C_wCaptionHeight 11
/* Splitter type*/
#define C_cHorizontalSplitter 0
#define C_cVerticalSplitter 1
/*=============================================================================
* CPaneFrame class
=============================================================================*/
class CPA_EXPORT CPaneFrame : public CFrameWnd
{
DECLARE_DYNCREATE(CPaneFrame)
private:
int m_a_iButton[4]; /* buttons to draw in frame title bar*/
public:
CPaneFrame();
protected:
void m_fn_vDrawHorizontalCaption( void );
void m_fn_vDrawVerticalCaption( void );
void m_fn_vDrawButton( CWindowDC *pDC, int iX, int iY, UINT nIDResource);
int m_fn_iGetButtonFromPoint( CPoint point);
afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
afx_msg void OnNcPaint( void );
afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
afx_msg UINT OnNcHitTest(CPoint point);
afx_msg void OnNcLButtonUp(UINT HitTest, CPoint point);
afx_msg void OnNcLButtonDown(UINT HitTest, CPoint point);
afx_msg void OnNcLButtonDblClk( UINT nHitTest, CPoint point );
afx_msg void OnNcRButtonDown( UINT nHitTest, CPoint point );
afx_msg void OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDIS );
afx_msg void OnMeasureItem( int nIDCtl, LPMEASUREITEMSTRUCT lpMIS );
afx_msg void m_fn_vOnTile( void );
afx_msg void m_fn_vOnMaximize( void );
afx_msg void m_fn_vOnReduce( void );
afx_msg void m_fn_vMinimizeUp( void );
afx_msg void m_fn_vMinimizeDown( void );
afx_msg void m_fn_vSavePos( UINT uID );
afx_msg void m_fn_vRestorePos( UINT uID );
DECLARE_MESSAGE_MAP()
};
/*=============================================================================
* CPaneView class
=============================================================================*/
class CPA_EXPORT CPaneView : public CView
{
DECLARE_DYNCREATE(CPaneView)
private:
CPaneFrame *m_p_oPaneFrame; /* frame associated with this view*/
public:
CPaneView();
CPaneFrame *m_fn_p_oGetFrame() { return m_p_oPaneFrame; }
protected:
void OnDraw( CDC* pDC );
afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
afx_msg void OnSize( UINT nType, int cx, int cy );
DECLARE_MESSAGE_MAP()
};
/*=============================================================================
* CVectorSplitterWnd class
=============================================================================*/
class CPA_EXPORT CVectorSplitterWnd : public CSplitterWnd, public CPA_MouseCapturer
{
DECLARE_DYNCREATE(CVectorSplitterWnd)
private:
char m_cType; /* Horizontal or Vertical*/
int m_iMaximizedSize; /* the maximum size for a pane*/
int m_iTileSize; /* the pane size for a tile view*/
int m_iNumberOfPanes; /* number of pane*/
char m_a_cState[16]; /* state of each panel*/
char m_a_cCloseDir[16]; /* the direction the window was closed*/
int m_a_iSize[16]; /* size of each panel, size is the width for an horizontal splitter, height for vertical*/
int m_a_iSizeBeforeMax[16]; /* size of each panel before a maximize operation*/
int m_aa_iSavePosition[4][16]; /* saved position*/
int m_iTrackPane; /* pane that is being sized*/
CPoint m_oBeginPoint; /* point when track begin*/
public:
int m_iCaptionDelta; /* used by CPaneFrame*/
int m_iPopupClosed; /* used by CPaneFrame*/
/*any class deriving from CPA_MouseCapturer one must declare this method as is*/
CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }
CVectorSplitterWnd();
~CVectorSplitterWnd();
BOOL Create( CWnd *_pParentWnd, char _cType, int _iNumberOfPanes );
BOOL CreateView( int _iPane, CRuntimeClass *_pViewClass, char *_szName, int _iSize );
BOOL SetPaneView( int _iPane, CView *_pView, char *_szName, int _iSize);
int m_fn_iGetNumberOfPanes( void ) { return m_iNumberOfPanes; }
char m_fn_cGetType( void ) { return m_cType; }
CWnd *m_fn_p_oGetPane( int _iPane );
void m_fn_vMinimizePane( CWnd *p_xPane, BOOL _bTop = TRUE );
void m_fn_vMaximizePane( CWnd *p_xPane );
void m_fn_vResizePane( CWnd *p_xPane );
void m_fn_vTilePanes( void );
void m_fn_vSavePos( char cSave );
void m_fn_vRestorePos( char cRestore );
BOOL m_fn_bIsSavedUsed( char cSave );
void m_fn_vGetPositionRatio( char cSave, float *p_aRatio16 );
void m_fn_vChangePaneSize( int _iPane, int _iNewSize, BOOL bBottomOrRight = TRUE);
void m_fn_vGetButton( CWnd *p_xPane, int *p_a_iButton );
int m_fn_iGetPaneSize( int _iPane );
private:
int m_fn_iGetNextOpenPane( int iFromPane, BOOL bBottomOrRight );
int m_fn_iGetNextPane( int iFromPane, BOOL bBottomOrRight );
void m_fn_vPaneToRowCol( int _iPane, int& _iRow,int& _iCol);
int m_fn_iRowColToPane( int _iRow,int _iCol);
void m_fn_vSetPaneSize( int _iPane, int _iSize );
int HitTest(CPoint pt) const;
afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
afx_msg void OnLButtonUp( UINT nFlags, CPoint point );
afx_msg void OnMouseMove( UINT nFlags, CPoint point );
afx_msg void OnSize( UINT nType, int cx, int cy );
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
DECLARE_MESSAGE_MAP()
};
/*=============================================================================
* CSplitFrame
=============================================================================*/
class CPA_EXPORT CSplitFrame : public FRMBase
{
DECLARE_DYNCREATE(CSplitFrame)
private:
CVectorSplitterWnd *m_p_oView;
public:
CSplitFrame();
BOOL CreateSplitter( char cType, int iNumberOfPanes );
BOOL CreateView( int iPane, CRuntimeClass *pViewClass, char *szName, int iSize);
BOOL SetPaneView( int iPane, CView *pView, char *szName, int iSize);
void SetPaneSize( int iPane, int iNewSize, BOOL bBottomOrRight = TRUE );
int GetPaneSize( int iPane ) { return m_p_oView->m_fn_iGetPaneSize(iPane); }
CWnd *m_fn_p_oGetPane( int _iPane );
protected:
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
#endif /* ACTIVE_EDITOR */
#endif /* __FRMSPLIT_HPP__ */

View File

@@ -0,0 +1,119 @@
/*=========================================================================*/
/* OBJDLLb.hpp : base of objects 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 __OBJDLLB_HPP__
#define __OBJDLLB_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 "CPADLLb.hpp"
/* need these class*/
class CPA_MainWorld;
class CPA_World;
class EDT_Model;
/*##########################################################################*/
/* Definition of an object DLL*/
typedef struct tdstObjectDLLDef_
{
}
tdstObjectDLLDef;
class CPA_ObjectDLLBase;
class CPA_Object;
/*##########################################################################*/
/* object DLL Base Class*/
class CPA_EXPORT CPA_ObjectDLLBase : public CPA_DLLBase
{
protected:
tdstObjectDLLDef m_stObjectDLLDefinition;
public:
/* constructor*/
CPA_ObjectDLLBase() {};
~CPA_ObjectDLLBase() {};
/* get parameters*/
tdstObjectDLLDef *GetDefinition(void) { return &m_stObjectDLLDefinition; }
/* hierarchy*/
virtual CPA_SuperObject * GetNewEditorInstance (HIE_tdxHandleToSuperObject pEngineInstance) { return NULL; }
virtual void fn_vBuildNewEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance) { }
virtual void fn_vUpdateEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance) { }
virtual BOOL fn_bCanHandleThisType (long lEngineType) { return FALSE; }
/* 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) { return ""; }
virtual EDT_Model * GetNewModel (CString csListName) { return NULL; }
virtual BOOL fn_bCanLoadNewModel (CString csListName) { return FALSE; }
virtual BOOL fn_bCanDeleteModel (CString csListName) { return FALSE; }
virtual BOOL fn_bCanChangeModelIcon (CString csListName) { return FALSE; }
virtual BOOL fn_bCanSaveListModels (CString csListName) { return FALSE; }
virtual BOOL fn_bCanLoadListModels (void) { return FALSE; }
virtual void fn_vOnLoadNewModel (CString csListName, EDT_Model *pNewModel) { }
virtual CString fn_csChangeModelIcon (CString csListName, CString csModelName) { return "";}
virtual CPA_SuperObject * GetNewInstance (CString csTypeName, CString csModelName, CPA_SuperObject *pParent) { return NULL; }
virtual tdeTypeSO GetTypeInstance (CString csTypeName, CString csModelName) { return C_NoType; }
/*ANNECY Shaitan EmptySectors 25/02/98*/
virtual tdeSaveStatus GetStatusInstance (CString csTypeName, CString csModelName) { return E_ss_NoStatus; }
/*ENDANNECY Shaitan EmptySectors*/
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) { return FALSE; }
/* objects*/
virtual CPA_BaseObject * GetNewObject (CString csObjectFile, CString csObjectName, FILE *p_fFile, CPA_MainWorld *p_oMainWorld) { return NULL; }
virtual CPA_BaseObject * Duplicate (CPA_BaseObject *pObject, CPA_SuperObject *pNewSuperObject) { return NULL; }
virtual CPA_SuperObject * GetCopyOfProtectedChild (CPA_SuperObject *pInitialChild, CPA_SuperObject *pNewOwner) { return NULL; }
/* permissions for EvtEditor*/
virtual BOOL fn_bAcceptAsParent (CPA_BaseObject *pChild, CPA_BaseObject *pParent) { return TRUE; }
virtual BOOL fn_bAcceptAsChild (CPA_BaseObject *pParent, CPA_BaseObject *pChild) { return TRUE; }
/* for bounding volumes*/
virtual void fn_vComputeBoundingVolume(CPA_BaseObject *pObject) {};
virtual ACP_tdxHandleOfObject fn_hGetBoundingVolume(CPA_BaseObject *_pObj) { return NULL; }
/* when insertion is canceled*/
virtual void fn_vOnCancelInsertion (CPA_SuperObject *pInstance);
/* Shaitan Scale {*/
/* to scale editor objects*/
virtual CPA_SuperObject * GetVisualSuperObject (CPA_SuperObject *pInstance) { return NULL; }
/*End Shaitan Scale }*/
};
#endif /* ACTIVE_EDITOR*/
#endif /* __OBJDLLB_HPP__*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Some files were not shown because too many files have changed in this diff Show More