204 lines
5.7 KiB
C++
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
|