109 lines
2.4 KiB
C++
109 lines
2.4 KiB
C++
#pragma once
|
|
#include "resource.h"
|
|
#include "aecdbxdraw.h"
|
|
#include <vector>
|
|
|
|
class AecDbEwEquipment;
|
|
class CBDQGDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CBDQGDlg)
|
|
|
|
public:
|
|
CBDQGDlg(CWnd* pParent = NULL);
|
|
virtual ~CBDQGDlg();
|
|
|
|
enum { IDD = IDD_BDQG_DLG };
|
|
|
|
struct _Record
|
|
{
|
|
public:
|
|
_Record(){}
|
|
_Record(const void *pData) { fromBinary(pData); }
|
|
_Record(LPCTSTR psz):_sName(psz){}
|
|
_Record(const _Record &r) { this->operator=(r); }
|
|
_Record(LPCTSTR pszName
|
|
, LPCTSTR pszUse
|
|
, LPCTSTR pszDesc
|
|
, double h
|
|
, double w
|
|
, double d):_sName(pszName)
|
|
, _sUse(pszUse)
|
|
, _sDesc(pszDesc)
|
|
, _dHeight(h)
|
|
, _dWidth(w)
|
|
, _dDeep(d) {}
|
|
|
|
_Record &operator = (const _Record &r)
|
|
{
|
|
_sName = r._sName;
|
|
_sUse = r._sUse;
|
|
_sDesc = r._sDesc;
|
|
_dHeight = r._dHeight;
|
|
_dWidth = r._dWidth;
|
|
_dDeep = r._dDeep;
|
|
return *this;
|
|
}
|
|
|
|
CString _sName, _sUse, _sDesc;
|
|
int _dHeight, _dWidth, _dDeep;
|
|
bool operator == (const _Record &r)const { return _sName == r._sName; }
|
|
int getBinarySize();
|
|
void makeBinary(void*& pData, int &nSize);
|
|
void fromBinary(const void* pData);
|
|
};
|
|
|
|
typedef std::vector<_Record> _Records;
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
void initCtrls();
|
|
afx_msg void OnClickListItem(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickedAdd();
|
|
afx_msg void OnBnClickedModify();
|
|
afx_msg void OnBnClickedDel();
|
|
afx_msg void OnBnClickedUp();
|
|
afx_msg void OnBnClickedDw();
|
|
DECLARE_MESSAGE_MAP();
|
|
|
|
void moveUpData(const int &idx);
|
|
_Records::iterator findDataByName(LPCTSTR psz);
|
|
void makeBinaryByDatas(void *&pData, int &nSize);
|
|
CString getCurrentSelectName();
|
|
int getCurrentSelectIdx();
|
|
void setCurrentSelect(const int &idx);
|
|
void makeDatasByBinary(const void *pData);
|
|
public:
|
|
AecDbEwEquipment* getEqu(const AcGePoint3d &ptIns, const AcGeVector3d &vtDir);
|
|
|
|
bool initByEqu(AecDbEwEquipment *pEqu, AcGePoint3d &ptIns, AcGeVector3d &vtDir);
|
|
|
|
private:
|
|
void refreshList();
|
|
|
|
private:
|
|
CString m_sName, m_sUse, m_sDesc;
|
|
int m_dHeight, m_dWidth, m_dDeep;
|
|
int m_dSpace, m_dElev;
|
|
CString m_sMaterial, m_sFactory, m_sCommon;
|
|
int m_iAlignV, m_iAlignH;
|
|
CListCtrl m_list;
|
|
_Records m_datas;
|
|
};
|
|
|
|
class DBClick_DQG: public AecDbXDraw
|
|
{
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(DBClick_DQG);
|
|
|
|
public:
|
|
DBClick_DQG(void);
|
|
~DBClick_DQG(void);
|
|
|
|
public:
|
|
|
|
virtual Acad::ErrorStatus Edit();
|
|
};
|
|
|