91 lines
3.2 KiB
C++
91 lines
3.2 KiB
C++
#ifndef __DBPROMPTMARK_H
|
|
#define __DBPROMPTMARK_H
|
|
//#include "DbEntity.h"
|
|
|
|
#define PMF_DRAW_TEXT 0x01
|
|
class TARCH_EXP TDbPromptMark: public TDbEntity /*, public XRectAngle*/ {
|
|
DECLARE_TENTBASE();
|
|
public:
|
|
enum ShapeFlag {
|
|
kRectCrossing=0,
|
|
kCircle=1,
|
|
kRect=2,
|
|
kTriangle=3,
|
|
kCrossing=4,
|
|
kItericCrossing=5, //斜叉
|
|
kCircleCrossing=6, //园叉
|
|
kCircleICrossing=7, //圆斜叉
|
|
};
|
|
protected:
|
|
XString m_sPrompt;
|
|
const static Adesk::UInt8 g_nVersion;
|
|
|
|
Adesk::UInt32 m_nControlFlag; //控制标记,保留备用
|
|
ShapeFlag m_shape;
|
|
AcDbHardPointerId m_idTextStyle;
|
|
XPoint m_ptLocation;
|
|
double m_xSize, m_ySize;
|
|
double m_nRotation;
|
|
|
|
//TArch7
|
|
Adesk::UInt16 m_colorText;//文字颜色
|
|
public:
|
|
void SetLocation(XPoint pt);
|
|
void SetSizeX(double x);
|
|
void SetSizeY(double y);
|
|
void SetRotation(double nRot);
|
|
void SetPrompt(const TCHAR *pszMsg);
|
|
void SetShape(TDbPromptMark::ShapeFlag sp);
|
|
void SetTextStyle(AcDbObjectId id);
|
|
void SetDrawText(BOOL bTrue);
|
|
|
|
BOOL GetDrawText() const;
|
|
const TCHAR *GetPrompt() const { return (const TCHAR *)m_sPrompt; }
|
|
TDbPromptMark::ShapeFlag GetShape() const;
|
|
AcDbObjectId GetTextStyle() const;
|
|
|
|
XPoint GetLocation() const { return m_ptLocation;}
|
|
double GetSizeX() const { return m_xSize; }
|
|
double GetSizeY() const { return m_ySize; }
|
|
double GetRotation() const { return m_nRotation; }
|
|
//void GetPolyline(AcDbPolyline &pline) const;
|
|
|
|
|
|
int CompareTo(const TDbPromptMark &src) const;
|
|
public:
|
|
TDbPromptMark();
|
|
TDbPromptMark(const XPoint &pt1, const XPoint &pt2, const TCHAR *pszMsg);
|
|
~TDbPromptMark();
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
|
|
|
|
ACRX_DECLARE_MEMBERS(TDbPromptMark);
|
|
// Overriden function from AcDbEntity
|
|
virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const;
|
|
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
|
|
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
|
|
virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints,
|
|
AcDbIntArray& osnapModes,
|
|
AcDbIntArray& geomIds) const;
|
|
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const;
|
|
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
|
|
|
|
|
|
// drived from TDbEntity
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
|
|
virtual DrawType GetDrawType() const {
|
|
return TEntityBase::k2DOnly;
|
|
}
|
|
virtual void GetTips(DList<TObjInfoUnit> &) const; //取动态属性显示数据
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
virtual const TCHAR * GetDefaultLayer() const;
|
|
virtual int ConvertText(TConvertTextPtr ptr, void *pData=NULL);
|
|
virtual void SetSubText(long i,CString sText){SetPrompt(sText);}//ok
|
|
};
|
|
|
|
#endif |