41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
#pragma once
|
|
#include <set>
|
|
#include "dbobjectoverrule.h"
|
|
#include "dbentityoverrule.h"
|
|
|
|
class CEntityOverrule : public AcDbObjectOverrule
|
|
{
|
|
public:
|
|
CEntityOverrule(const std::set<AcDbObjectId> &ids);
|
|
~CEntityOverrule();
|
|
ACRX_DECLARE_MEMBERS(CEntityOverrule);
|
|
|
|
virtual ACDB_PORT Acad::ErrorStatus erase( AcDbObject* pSubject, Adesk::Boolean erasing );
|
|
|
|
bool isApplicable(const AcRxObject* pOverruledSubject) const { return true; }
|
|
|
|
void getOverruleIds(std::set<AcDbObjectId> &ids) { ids = m_ids; }
|
|
|
|
static void addOverrule(const std::set<AcDbObjectId> &ids);
|
|
static void delOverrule();
|
|
static void getBindIds(std::set<AcDbObjectId> &ids);
|
|
|
|
public:
|
|
static CEntityOverrule *g_EntityOverrule;
|
|
|
|
private:
|
|
std::set<AcDbObjectId> m_ids; // 不可以被删除的ID
|
|
AcDbDatabase *m_pOwnerDb; // 绑定的数据库指针
|
|
};
|
|
|
|
namespace LayerTools
|
|
{
|
|
const CString g_sLayerName = _T("_dtyg_modify_layer_");
|
|
bool createNewLayer(LPCTSTR layer);
|
|
void deleteLayer(LPCTSTR layer);
|
|
void getAllLayers(std::set<CString> &layers);
|
|
void lockLayers(const std::set<CString> &layers, const bool &bLock);
|
|
bool setCLayer(LPCTSTR psz);
|
|
}
|
|
|