Files
envi-code/SourceCode/Code2026/inc/AECStatusRecord.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

121 lines
2.4 KiB
C++

#ifndef _AECSTATUSRECORD_H__
#define _AECSTATUSRECORD_H__
#if _MSC_VER > 1000
#pragma once
#endif
#include <map>
#ifdef EARTHWORM_EXPORT
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP __declspec(dllimport)
#endif
class DLLIMPEXP AECStatusRecord
{
public:
AECStatusRecord();
AECStatusRecord(const AECStatusRecord& src);
~AECStatusRecord();
enum EAcquire
{
kString = 1,
kAngle = 2,
kDist = 3,
kPoint = 4,
kEntity = 5,
};
LPCTSTR Prompt();
void SetPrompt(LPCTSTR pszPrompt);
LPCTSTR KeywordList();
void SetKeywordList(LPCTSTR pszKeys);
void SetNextStatus(AECStatusRecord* pStatus,int nPos = 0);
AECStatusRecord* GetNextStatus(int nPos = 0);
void SetCommandStop(BOOL bStop);
BOOL IsCommand2Stop();
AECStatusRecord* GetLastStatus(int nPos = 0);
void SetPos(int nPos);
int GetPos();
void SetUndoGroupId(int nUndoGoupid);
int GetUndoGroupId();
//当next status为null时,返回的root状态
void SetBackStatus(AECStatusRecord* pStatus);
AECStatusRecord* GetBackStatus();
void SetKeyStatus(LPCTSTR pszKey,AECStatusRecord* pStatuss);
AECStatusRecord* GetKeyStatus(LPCTSTR pszKey);
AECStatusRecord* GetParentStaRec();
void SetStatusType(EAcquire eType);
EAcquire GetStatusType();
void SetAcquireDouble(double dVl);
double GetAcquireDouble();
void SetAcquireString(LPCTSTR pszVal);
LPCTSTR GetAcquireString();
void SetAcquirePoint(const AcGePoint3d& ptGe);
AcGePoint3d GetAcquirePoint();
void SetAcquireEntity(const AcDbObjectId& id);
void GetAcquireEntity(AcDbObjectId& id);
void SetPlanPosition(int nPos);
int GetPlanPosition();
void SetSegStatusFinish(BOOL bFlag);
BOOL IsStatusFinish();
void SetRefDblValue(double dVal);
double GetRefDblValue();
BOOL IsValSeted();
AECStatusRecord& operator = (const AECStatusRecord& src);
void CopyFrom(const AECStatusRecord* pRec);
private:
TCHAR m_szPrompt[256];
TCHAR m_szKeywords[256];
std::map<int,AECStatusRecord*> m_mapPos2StatusNext;
std::map<int,AECStatusRecord*> m_mapPos2StatusLast;
AECStatusRecord* m_pParentStatus;
AECStatusRecord* m_pBackStatus;
union
{
double m_dVal[3];
TCHAR m_szVal[256];
ads_name m_adsEnt;
};
double m_dRefValue;
BOOL m_bValSeted;
BOOL m_bCmdStop;
int m_nPlanPos;
int m_nPos;
BOOL m_bSegStatFinish;
EAcquire m_eAcquire;
int m_nUndoGoupid;
std::map<CString,AECStatusRecord*> m_mapStatus;
};
#endif //_AECSTATUSRECORD_H__