#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 m_mapInt; CMap m_mapFloat; CMap 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__)