reman3/Rayman_X/cpa/tempgrp/Edt/inc/edttemp.hpp

204 lines
5.7 KiB
C++

/*=========================================================================
*
* EDTTemp.hpp - List of Temporary Modifs - definition
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDT_TEMP_HPP__
#define __EDT_TEMP_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/CPASectO.hpp"
#include "incPOS.h"
#include "SCR.h"
class EDT_HierarchyEditor;
class EDT_SuperObject;
// modifications
#define C_szCreation "Creation"
#define C_szSuppression "Suppression"
#define C_szChangeFather "Father"
#define C_szChangePosition "Position"
#define C_szChangeName "Name"
#define C_lNbTypeModifs 5
static CString g_a_csTypeModifs [] =
{
C_szCreation,
C_szSuppression,
C_szChangeFather,
C_szChangePosition,
C_szChangeName
};
typedef enum tdeTempModif_
{
E_tm_SaveTemp,
E_tm_DeleteTemp
}
tdeTempModif;
/*===========================================================================
* Description: class EDT_TemporarySO
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_TempModif : public CPA_SectionObject
{
private:
// original super-object
EDT_SuperObject * m_pOriginalSO;
// matrix
CPA_SectionObject * m_pMatrixSection;
// changes
BOOL m_bCreated;
BOOL m_bDeleted;
// name
CString m_csFinalName;
// father
EDT_SuperObject * m_pFinalFather;
// position
GEO_tdxHandleToMatrix m_hFinalPosition;
// loaded modification
BOOL m_bLoaded;
//CPA2 Stegaru Cristian 98-02
CString m_csOriginalSOName,
m_csInitialSPOName;
BOOL m_bNameChanged,
m_bFatherChanged,
m_bPositionChanged;
//End CPA2 Stegaru Cristian 98-02
public:
// constructors
//CPA2 Stegaru Cristian 98-02
EDT_TempModif (EDT_SuperObject *pOriginalSO, BOOL bLoaded, CString csModifSectionName = "", CString csOriginalSOName = "");
//End CPA2 Stegaru Cristian 98-02
~EDT_TempModif (void);
// original object
EDT_SuperObject * GetOriginalSO (void) { return m_pOriginalSO; }
// matrix
CString GetMatrixSectionName (void);
CPA_SectionObject * GetMatrixSection (void) { return m_pMatrixSection; }
// load
BOOL fn_bWasLoaded (void) { return m_bLoaded; }
// get functions
BOOL fn_bWasCreated (void) { return m_bCreated; }
BOOL fn_bWasDeleted (void) { return m_bDeleted; }
CString GetFinalName (void) { return m_csFinalName; }
EDT_SuperObject * GetFinalFather (void) { return m_pFinalFather; }
GEO_tdxHandleToMatrix GetFinalPosition (void) { return m_hFinalPosition; }
// set functions
void SetCreated (BOOL bCreated);
void SetDeleted (BOOL bDeleted);
//CPA2 Stegaru Cristian 98-02
void SetFinalPosition (GEO_tdxHandleToMatrix hNewPosition);
void SetFinalFather (EDT_SuperObject *pNewFather);
void SetFinalName (CString csNewName);
CString mfn_csGetOriginalSOName () { return m_csOriginalSOName;}
void mfn_vSetOriginalSOName (CString csOriginalSOName) { m_csOriginalSOName = csOriginalSOName;}
BOOL mfn_bValidModif ()
{
BOOL bRet = FALSE;
if (m_bLoaded || //modif from a previous session
(!m_bLoaded && m_bCreated)) //inserted
bRet = TRUE;
return bRet;
}
CString mfn_csGetInitialSPOName ()
{
return m_csInitialSPOName;
/* CString csInitialSPOName;
if (m_pOriginalSO)
csInitialSPOName = m_pOriginalSO->mfn_csGetInitialSPOName ();
return csInitialSPOName;
*/ }
void mfn_vSetInitialSPOName (CString csInitialSPOName)
{
m_csInitialSPOName = csInitialSPOName;
}
//End CPA2 Stegaru Cristian 98-02
// modification functions
void fn_vUpdateModification (CString csTypeModif, BOOL bAddModif = TRUE);
void fn_vCancelModification (CString csTypeModif);
BOOL fn_bIsModified (CString csTypeModif);
// save
void fn_vNotifySave (void);
void fn_vNotifyUnsave (void);
void fn_vNotifyRename (void);
static void CallBackSaveModif (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
static void CallBackSaveMatrix (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
/*===========================================================================
* Description: Class EDT_TempList
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_TempList : public CPA_SectionObject
{
private:
CPA_List<EDT_TempModif> m_oListOfTempModif;
EDT_HierarchyEditor *m_pEditor;
public:
EDT_TempList (EDT_HierarchyEditor *pEditor, BOOL bLoaded);
~EDT_TempList (void);
CPA_List<EDT_TempModif> * GetListOfTemporaryModifs (void) { return &m_oListOfTempModif; }
EDT_HierarchyEditor * GetEditor (void) { return m_pEditor; }
void fn_vAddTemporaryModif (EDT_TempModif *pModif, BOOL bNotify = TRUE);
void fn_vRemoveTemporaryModif (EDT_TempModif *pModif);
void fn_vChangeTemporaryModif (EDT_TempModif *pModif);
void fn_vRemoveAllTemporaryModifs (void);
static void CallBackSaveListModif (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
#endif // __EDT_TEMP_HPP__
#endif // ACTIVE_EDITOR