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

112 lines
2.5 KiB
C++

#pragma once
#include "resource.h"
#include "supergridctrl.h"
#include <set>
#include <map>
class CPipeSysSettingList;
class CPipeSystemSettingDlg : public CDialog
{
DECLARE_DYNAMIC(CPipeSystemSettingDlg)
public:
struct RECORD
{
int outClr, innClr;
double innLw, outLw;
AcDbObjectId outLt, innLt;
CString outLy, innLy, oldSys, newSys;
};
typedef std::map<CString, RECORD> MAP_RECORD;
typedef struct PipeSysLayer
{
TCHAR layerCenter[256];
TCHAR lineTypeCenter[256];
int nclrCenter;
double dCenlinewidth;
TCHAR layerOutline[256];
TCHAR lineTypeOutline[256];
int nclrOutline;
double dOutlinewidth;
TCHAR layer[256];
TCHAR lineType[256];
int nclr;
double dlinewidth;
int nCheckOK;//3 表示三段提取正确 至少 2
}PIPESYSLAYER;
public:
CPipeSystemSettingDlg(CWnd* pParent = NULL); // standard constructor
virtual ~CPipeSystemSettingDlg();
// Dialog Data
enum { IDD = IDD_PIPE_SYSTEM_SETTING };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
afx_msg void OnBntClickAdd();
afx_msg void OnBntClickDel();
afx_msg void OnBntClickExport();
afx_msg void OnBntClickImport();
afx_msg void OnBntLoadCurDwg();
afx_msg void OnOK();
private:
void refreshListCtrl();
CTreeItem* addRootRecord(LPCTSTR title);
void addChildRecord(CTreeItem *pTree
, LPCTSTR title
, LPCTSTR clr
, LPCTSTR linetype
, LPCTSTR lineweight
, LPCTSTR layer );
void AddMapData(CString &sSysName,CMapStringToPtr &mapName2Data, AcDbLayerTableRecord *pRc, int nPos);
bool AddSys(CString &sName, PipeSysLayer *psl, CStdioFile *pFile = NULL);
private:
CImageList m_image;
CStatic m_ctrlPos;
CPipeSysSettingList *m_pListCtrl;
BOOL m_bUpdateAllEntity;
BOOL m_bUseOutClrFor3D;
CUIISQLiteServer m_db;
};
class CPipeSysSettingList : public CSuperGridCtrl
{
public:
typedef CPipeSystemSettingDlg::MAP_RECORD MAP_RECORD;
public:
CPipeSysSettingList();
virtual ~CPipeSysSettingList();
public:
void Initialize();
bool hasModify(LPCTSTR sys);
void getRecords(MAP_RECORD &rcs, bool bAll);
protected:
virtual BOOL PreTranslateMessage(MSG *pMsg);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg BOOL OnEndlabeledit(NMHDR *pNMHDR, LRESULT *pResult);
DECLARE_MESSAGE_MAP()
public:
CUIISQLiteServer *m_pDb;
CImageList m_image;
// 被修改的行号
std::set<CString> m_setOfModify;
// 如果系统名称被修改,则保存到这里
// first-new second-old
std::map<CString, CString> m_mapOfSysModify;
};