⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rdatabasereactor.cpp

📁 AUTOCAD 程序员使用的
💻 CPP
字号:
/////////////////////////////////////////////
// AcDbDatabaseReactor reactors.

#include "StdAfx.h"
#include "StdArx.h"
#include "resource.h"

#include "AcDialogBar.h"
#include "InspectorBar.h"

AsdkDbReact::AsdkDbReact(const bool storeInDocVars, AcApDocument* pDoc)
{
	if (storeInDocVars) {

		assert(DocVars.docData(pDoc).m_pAsdkDbReact == NULL);

		m_pDoc = pDoc;
		m_pDoc->database()->addReactor(this);
		DocVars.docData(m_pDoc).m_pAsdkDbReact = this;

	} else
		m_pDoc = NULL;
}

AsdkDbReact::~AsdkDbReact()
{
	if (m_pDoc) {
		m_pDoc->database()->removeReactor(this);
		if (DocVars.docData(m_pDoc).m_pAsdkDbReact) {
			DocVars.docData(m_pDoc).m_pAsdkDbReact = NULL;
		}
	}
}

void AsdkDbReact::objectAppended(const AcDbDatabase* dwg,
                                 const AcDbObject* dbObj)
{
	if ( pInspTree && pInspTree->GetSafeHwnd () )
		pInspTree->OnNewObj ((AcRxObject *)dbObj) ;

}

void AsdkDbReact::objectUnAppended(const AcDbDatabase* dwg,
                                   const AcDbObject* dbObj)
{
	if ( pInspTree && pInspTree->GetSafeHwnd () )
		pInspTree->OnDelObj ((AcRxObject *)dbObj) ;

}

void AsdkDbReact::objectReAppended(const AcDbDatabase* dwg,
                                   const AcDbObject* dbObj)
{
	if ( pInspTree && pInspTree->GetSafeHwnd () )
		pInspTree->OnNewObj ((AcRxObject *)dbObj) ;
}

void AsdkDbReact::objectModified(const AcDbDatabase* dwg,
                                 const AcDbObject* dbObj)
{
	if ( pInspTree && pInspTree->GetSafeHwnd () )
		pInspTree->OnUpdObj ((AcRxObject *)dbObj) ;

}

void AsdkDbReact::objectErased(const AcDbDatabase* dwg,
                               const AcDbObject* dbObj,
                               Adesk::Boolean pErased)
{
	if ( pErased ) {
		DocVars.docData (acDocManager->document ((AcDbDatabase *)dwg)).mErasedList.append (dbObj->objectId ()) ;
	} else {
		DocVars.docData (acDocManager->document ((AcDbDatabase *)dwg)).mErasedList.remove (dbObj->objectId (), 0) ;
	}
	if ( pInspTree && pInspTree->GetSafeHwnd () )
		pInspTree->OnUpdObj ((AcRxObject *)dbObj) ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -