Files
envi-code/SourceCode/Code2026/inc/KTCadTempOverrides.h
T
2026-09-28 15:28:50 +08:00

135 lines
3.3 KiB
C++

#if !defined(__KTCADTEMPOVERRIDES_H__)
#define __KTCADTEMPOVERRIDES_H__
// Description:
// 临时数据或状态自动管理类, 通过在函数需要的位置声明相应管理类的一个临时实例,
// 利于临时实例的释放时, 对类的析构函数的调用来恢复数据或状态.
// 类CKTTempLockDoc用于临时锁定文档,在非模式界面下作交互操作,需要锁定文档
// 类CKTTempSetSysVar用于临时设置系统变量
// 类CKTTempCloseCursor用于临时关闭十字光标
// 类CKTTempUndoGroup用于临时把以后操作作为一组来Undo
// 类CKTTempSetTol用于临时改变计算精度(浮点数,点,向量比较)
// 类CKTTempZoom用于临时缩放图形窗口
// Company: Kingtouch Software Corporation. Copyright 2002-2005
// Author: WangYongguang
// Date: 2002.05.01
#ifdef EARTHWORM_EXPORT
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP __declspec(dllimport)
#endif
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class DLLIMPEXP CKTTempLockDoc
{
public:
// 构造函数, 默认锁定当前文档
CKTTempLockDoc();
// 构造函数, 锁定指定文档
CKTTempLockDoc(AcApDocument* pDoc);
// 析构函数, 解锁被锁定的文档
virtual ~CKTTempLockDoc();
protected:
// 锁定指定文档, 原先被锁定的文档将解锁
BOOL LockDocument(AcApDocument* pDoc);
// 锁定当前文档, 原先被锁定的文档将解锁
BOOL LockCurrentDocument();
// 解锁被锁定的文档
BOOL UnlockDocument();
AcApDocument* m_pDoc;
};
class DLLIMPEXP CKTTempSetSysVar
{
public:
// 默认构造函数
CKTTempSetSysVar();
// 构造函数, 保存指定的系统变量
CKTTempSetSysVar(LPCTSTR pszVarName);
// 构造函数, 保存指定的系统变量后, 设置新值
CKTTempSetSysVar(LPCTSTR pszVarName, short iVal);
CKTTempSetSysVar(LPCTSTR pszVarName, int iVal);
CKTTempSetSysVar(LPCTSTR pszVarName, long lVal);
CKTTempSetSysVar(LPCTSTR pszVarName, double dVal);
CKTTempSetSysVar(LPCTSTR pszVarName, LPCTSTR pszVal);
CKTTempSetSysVar(LPCTSTR pszVarName, ads_point ptVal);
// 析构函数, 恢复保存的系统变量
virtual ~CKTTempSetSysVar();
// 保存指定的系统变量
BOOL PushSystemVar(LPCTSTR pszVarName);
// 恢复指定的系统变量
BOOL PopSystemVar(LPCTSTR pszVarName);
// 恢复所有的系统变量
BOOL PopAllSystemVar();
// 保存指定的系统变量后, 设置新值
BOOL SetSystemVar(LPCTSTR pszVarName, short iVal);
BOOL SetSystemVar(LPCTSTR pszVarName, int iVal);
BOOL SetSystemVar(LPCTSTR pszVarName, long lVal);
BOOL SetSystemVar(LPCTSTR pszVarName, double dVal);
BOOL SetSystemVar(LPCTSTR pszVarName, LPCTSTR pszVal);
BOOL SetSystemVar(LPCTSTR pszVarName, ads_point ptVal);
protected:
CMapStringToString m_mapText;
CMap<CString, LPCTSTR, long, long> m_mapInt;
CMap<CString, LPCTSTR, double, double> m_mapFloat;
CMap<CString, LPCTSTR, AcGePoint3d, AcGePoint3d&> m_mapPoint;
};
class DLLIMPEXP CKTTempCloseCursor
{
public:
CKTTempCloseCursor();
virtual ~CKTTempCloseCursor();
protected:
AcEdInputPointManager* m_pInputMgr;
};
class DLLIMPEXP CKTTempUndoGroup
{
public:
CKTTempUndoGroup();
virtual ~CKTTempUndoGroup();
protected:
int m_iCmdEcho;
};
class DLLIMPEXP CKTTempSetTol
{
public:
CKTTempSetTol(double dTol);
virtual ~CKTTempSetTol();
protected:
double m_dTol;
AcGeTol m_geTol;
};
class DLLIMPEXP CKTTempZoom
{
public:
CKTTempZoom(BOOL bLockUpdate = TRUE);
CKTTempZoom(const AcGePoint3d& ptMin, const AcGePoint3d& ptMax, BOOL bLockUpdate = TRUE);
virtual ~CKTTempZoom();
protected:
BOOL m_bRestore;
BOOL m_bMyLock;
AcGePoint3d m_ptMin;
AcGePoint3d m_ptMax;
static BOOL m_bLockUpdate;
};
#endif // !defined(__KTCADTEMPOVERRIDES_H__)