You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/Module/GeoSigmaDraw/DrawUndoManager.cpp

109 lines
2.5 KiB
C++

#include "StdAfx.h"
/*
#include "DrawUndoManager.h"
namespace NAction
{
CUndoManager *m_pUndoManager = 0;
CUndoManager *m_gMarkEditUndoManager = 0;
CUndoManager *m_gTreeLayerUndoManager = 0;
CDrawUndoManager* GetDrawUndoManager(void)
{
return (CDrawUndoManager*)GetUndoManager();
}
void CDrawUndoManager::EnableMarkEditUndoManager(BOOL bEnable, void* pDoc)
{
if(bEnable)
::SetUndoManager(m_gMarkEditUndoManager);
else
{
::SetUndoManager(m_pUndoManager);
if(pDoc) m_gMarkEditUndoManager->ClearTarget(pDoc);
//if(m_gMarkEditUndoManager)
// m_gMarkEditUndoManager->Clear();
}
if(pDoc) m_gTreeLayerUndoManager->ClearTarget(pDoc);
}
CUndoManager* m_pBakActiveUndoManager=NULL;
void CDrawUndoManager::EnableTreeLayerUndoManager(BOOL bEnable)
{
if(bEnable)
{
m_pBakActiveUndoManager = GetDrawUndoManager();
::SetUndoManager(m_gTreeLayerUndoManager);
}
else if(m_pBakActiveUndoManager)
{
::SetUndoManager(m_pBakActiveUndoManager);
m_pBakActiveUndoManager=NULL;
}
else
::SetUndoManager(m_pUndoManager);
}
void CDrawUndoManager::RegisterDoc(void* pDoc, long capacity)
{
m_gMarkEditUndoManager->RegisterTarget(pDoc, capacity);
m_pUndoManager->RegisterTarget(pDoc, capacity);
m_gTreeLayerUndoManager->RegisterTarget(pDoc, capacity);
}
void CDrawUndoManager::SetAllStackCapacity(const void *pDoc, long capacity)
{
m_gMarkEditUndoManager->SetStackCapacity(pDoc, capacity);
m_pUndoManager->SetStackCapacity(pDoc, capacity);
m_gTreeLayerUndoManager->SetStackCapacity(pDoc, capacity);
}
void CDrawUndoManager::ClearDoc(void* pDoc)
{
m_gMarkEditUndoManager->ClearTarget(pDoc);
m_pUndoManager->ClearTarget(pDoc);
m_gTreeLayerUndoManager->ClearTarget(pDoc);
}
void CDrawUndoManager::CreateUndoManagerObject()
{
CreateUndoManager();
}
void CDrawUndoManager::CreateUndoManager()
{
DeleteUndoManager();
m_gMarkEditUndoManager = new CDrawUndoManager();
m_pUndoManager = new CDrawUndoManager();
m_gTreeLayerUndoManager = new CDrawUndoManager();
::SetUndoManager(m_pUndoManager);
}
void CDrawUndoManager::DeleteUndoManager()
{
if(m_pUndoManager) delete m_pUndoManager;
if(m_gMarkEditUndoManager) delete m_gMarkEditUndoManager;
if(m_gTreeLayerUndoManager) delete m_gTreeLayerUndoManager;
m_pUndoManager=NULL;
m_gMarkEditUndoManager=NULL;
m_gTreeLayerUndoManager=NULL;
::SetUndoManager(NULL);
}
///////////////////////////////////////////////////////////////////
CDrawUndoManager::CDrawUndoManager(void)
{
}
CDrawUndoManager::~CDrawUndoManager(void)
{
}
}//namespace
*/