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.
109 lines
2.5 KiB
C++
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
|
|
*/
|
|
|