71 lines
2.1 KiB
C++
71 lines
2.1 KiB
C++
//-------------------------------------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
// = FileName : TArchAppDocGlobals 类
|
|
// = Version : ver2.0
|
|
// = Author : wlw
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: TArchAppDocGlobals 定义
|
|
// = Maintainers:
|
|
//
|
|
//-------------------------------------------------------------------------------------------------------+
|
|
#include "StdAfx.h"
|
|
#include "TArchAppDocGlobals.h"
|
|
#include "TArchDocReactor.h"
|
|
#include "TArchLayoutReactor.h"
|
|
#include "AcDbLMgr.h"
|
|
#include "dbapserv.h"
|
|
|
|
#ifdef TASD
|
|
#include "TDbExtentsZoneTable.h"
|
|
CMapPtrToPtr TArchAppDocGlobals::g_mapGlobalsDb2Reactor;
|
|
#endif
|
|
|
|
|
|
TArchAppDocGlobals::TArchAppDocGlobals()
|
|
{
|
|
m_pDocReactor = new TArchDocReactor();
|
|
acDocManager->addReactor(m_pDocReactor);
|
|
m_pLayoutReactor = new TArchLayoutReactor();
|
|
acdbHostApplicationServices()->layoutManager()->addReactor(m_pLayoutReactor);
|
|
}
|
|
|
|
void TArchAppDocGlobals::InitDocGlobals(AcApDocument *pDoc)
|
|
{
|
|
ASSERT(pDoc);
|
|
TArchPerDocData *pData = TArchDocReactor::g_pTArchAppDocGlobals->FindNode(pDoc, TArchPerDocData::CompareForFind);
|
|
if(!pData)
|
|
{
|
|
TArchDocReactor::g_pTArchAppDocGlobals->Append(new TArchPerDocData(pDoc));
|
|
}
|
|
#ifdef TASD
|
|
pData = TArchDocReactor::g_pTArchAppDocGlobals->CurData();
|
|
if (pData)
|
|
{
|
|
pData->AttachReactor();
|
|
}
|
|
#endif
|
|
}
|
|
void TArchAppDocGlobals::RemoveDocGlobals(AcApDocument *pDoc)
|
|
{
|
|
ASSERT(pDoc);
|
|
TArchPerDocData *pData = TArchDocReactor::g_pTArchAppDocGlobals->FindNode(pDoc, TArchPerDocData::CompareForFind);
|
|
if(pData)
|
|
{
|
|
pData->DetachReactor();
|
|
TArchDocReactor::g_pTArchAppDocGlobals->Remove();
|
|
}
|
|
}
|
|
|
|
void TArchAppDocGlobals::OnUnloadApp()
|
|
{
|
|
if(m_pDocReactor)
|
|
{
|
|
acDocManager->removeReactor(m_pDocReactor);
|
|
delete m_pDocReactor;
|
|
m_pDocReactor=NULL;
|
|
|
|
acdbHostApplicationServices()->layoutManager()->removeReactor(m_pLayoutReactor);
|
|
delete m_pLayoutReactor;
|
|
m_pLayoutReactor=NULL;
|
|
}
|
|
}
|