332 lines
7.8 KiB
C++
332 lines
7.8 KiB
C++
#ifndef PRJECT_MANAGER_H
|
|
#define PRJECT_MANAGER_H
|
|
|
|
#define TPR_MANGER_TITLE _T("工程管理")
|
|
#define FLOOR_GROUP _T("平面图")
|
|
|
|
#include "groupbox.h"
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
// TFileTreeComboBox
|
|
// “工程管理”下拉列表控件
|
|
class TFileTreeComboBox: public CComboBox
|
|
{
|
|
protected:
|
|
CMenu m_menu;
|
|
PDList<CString> m_lstRecent; // 最近打开的工程
|
|
|
|
public:
|
|
TFileTreeComboBox();
|
|
virtual ~TFileTreeComboBox();
|
|
|
|
void DoNewProject();
|
|
void DoOpenProject();
|
|
void DoSetProject();
|
|
void DoImportFloor();
|
|
void DoExportFloor();
|
|
void DoSaveProject();
|
|
void DoRecentProject(int nPos,bool bRefresh=true);
|
|
|
|
void AddToRecent(const CString &szRecent);
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
|
afx_msg void OnMenuCommand(UINT nID);
|
|
afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// TFileTreeData
|
|
class TFileTreeData
|
|
{
|
|
public:
|
|
TFileTreeData(){}
|
|
TFileTreeData(int nType, HTREEITEM hItem, TProjectGroupItem *pParentGroup, TProjectItem *pGroup)
|
|
:m_nType(nType), m_hItem(hItem), m_pGroup(pGroup), m_pParentGroup(pParentGroup){}
|
|
|
|
public:
|
|
int m_nType;
|
|
HTREEITEM m_hItem;
|
|
TProjectItem *m_pGroup;
|
|
TProjectGroupItem *m_pParentGroup;
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// TFileTreeCtrl
|
|
class TFileTreeCtrl: public CTreeCtrl
|
|
{
|
|
public:
|
|
TFileTreeCtrl();
|
|
TProjectGroupItem *m_pCurGroup;
|
|
|
|
BOOL InitTreeCtrl();
|
|
HTREEITEM InsertItemEx(TProjectItem *pGroup, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
|
|
void DeleteItemEx(HTREEITEM hItem);
|
|
void ExpandAll();
|
|
void CollapseAll();
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
|
|
protected:
|
|
BOOL m_bEdit;
|
|
UINT m_TimerTicks;
|
|
// Zyu modify on 100722,支持64位
|
|
//UINT m_nScrollTimerID;
|
|
UINT_PTR m_nScrollTimerID;
|
|
CPoint m_HoverPoint;
|
|
//UINT m_nHoverTimerID;
|
|
UINT_PTR m_nHoverTimerID;
|
|
DWORD m_dwDragStart;
|
|
BOOL m_bDragging;
|
|
CImageList* m_pDragImage;
|
|
HTREEITEM m_hItemDragS;
|
|
HTREEITEM m_hItemDragD;
|
|
int m_nShowFlag;
|
|
CPoint m_ptSta;
|
|
CPoint m_ptEnd;
|
|
BOOL m_bRub;
|
|
|
|
void DoOpenDrawing();
|
|
void DoInsDrawing();
|
|
void DoDelDrawing();
|
|
void DoAddDrawing();
|
|
void DoAddChildCollect();
|
|
void DoInsCollect();
|
|
void DoRenCollect();
|
|
void DoDelCollect();
|
|
void DoExpandCollect();
|
|
void DoCollapseCollect();
|
|
void DoExpandWorks();
|
|
void DoCollapseWorks();
|
|
int GetShowFlag(HTREEITEM hItem, CPoint pt);
|
|
void DrawTempLine(CPoint ptSta, CPoint ptEnd);
|
|
HTREEITEM GroupToTree(TProjectGroupItem *pGroup, HTREEITEM hParent, HTREEITEM hInsertAfter = TVI_LAST);
|
|
HTREEITEM CopyItem(HTREEITEM hItem, HTREEITEM htiNewParent, HTREEITEM htiAfter);
|
|
HTREEITEM CopyBranch(HTREEITEM htiBranch, HTREEITEM htiNewParent, HTREEITEM htiAfter);
|
|
void DeleteAllItemData(HTREEITEM hItem = TVI_ROOT);
|
|
|
|
afx_msg void OnDestroy(){DeleteAllItemData();CTreeCtrl::OnDestroy();}//ok
|
|
afx_msg void OnMenuCommand(UINT id);
|
|
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
|
|
afx_msg void OnTvnEndlabeledit(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg void OnTvnBegindrag(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
|
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
|
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
|
// Zyu modify on 100721,支持64位
|
|
//afx_msg void OnTimer(UINT nIDEvent);
|
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
|
afx_msg void OnTvnBeginlabeledit(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
|
|
afx_msg void OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult);
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
#if ADS<16
|
|
class CAdUiPaletteSet:public CAcUiDockControlBar
|
|
{
|
|
public:
|
|
DECLARE_DYNAMIC(CAdUiPaletteSet)
|
|
DECLARE_MESSAGE_MAP();
|
|
};
|
|
#endif
|
|
|
|
|
|
///////////////////////////////////////////////////////
|
|
// TProjectBar
|
|
// 工程管理工具条
|
|
class TProjectBar: public CAdUiPaletteSet
|
|
{
|
|
public:
|
|
BitTable m_unfoldFlags;
|
|
|
|
WGroupBoxes m_allGroups;
|
|
TFileTreeComboBox m_comboBox; // 下拉列表
|
|
|
|
CFont m_font;
|
|
|
|
XString m_sCurCmd; // 命令
|
|
|
|
public:
|
|
TProjectBar();
|
|
|
|
void AddGroup(WGroupBox*pGroup, UINT idTemplate) { // ok
|
|
m_allGroups.AddGroup(pGroup,idTemplate);
|
|
}
|
|
|
|
void Refresh();
|
|
|
|
WGroupBox* FindGroupBox(const TCHAR* sName) { // ok
|
|
return m_allGroups.FindGroup(sName);
|
|
}
|
|
|
|
void OpenRecent(bool bRefresh = true) { // ok
|
|
m_comboBox.DoRecentProject(0,bRefresh);
|
|
}
|
|
|
|
void SendCommand(XString sCmd) { // ok
|
|
m_sCurCmd = sCmd;
|
|
SetTimer(1, 1, NULL);
|
|
}
|
|
|
|
public:
|
|
virtual void SizeChanged(CRect*lpRect,BOOL bfloating,int flags);
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpcs);
|
|
// Zyu modify on 100721,支持64位
|
|
//afx_msg LONG OnAcadKeepFocus ( UINT, LONG );
|
|
afx_msg LONG_PTR OnAcadKeepFocus(UINT_PTR, LONG_PTR);
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
|
afx_msg LRESULT OnRefreshMsg(WPARAM wp, LPARAM lp);
|
|
};
|
|
|
|
|
|
extern TProjectBar g_projectBar;
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// TFileManager——图纸
|
|
class TFileManager:public WGroupBox
|
|
{
|
|
public:
|
|
TFileTreeCtrl m_ctrlTree; // 控件
|
|
|
|
CToolBarCtrl m_toolBar;
|
|
|
|
protected:
|
|
CImageList m_ImageList;
|
|
|
|
void InitToolbar();
|
|
void DoDrawingList();
|
|
virtual BOOL OnInitDialog();
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
|
|
public:
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg void OnClickToolBar(UINT nID);
|
|
afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// TFloorGridData
|
|
class TFloorGridData : public WRowData
|
|
{
|
|
public:
|
|
CString m_szName; // 图纸名称
|
|
|
|
CString m_sLayerNo;
|
|
double m_dHeight;
|
|
|
|
int m_iFlag;
|
|
|
|
XPoint m_ptBase;
|
|
XPoint m_ptMin,
|
|
m_ptMax;
|
|
|
|
public:
|
|
TFloorGridData(){ m_iFlag = 0; }
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// TFloorGrid——楼层表格
|
|
class TFloorGrid: public WDGrid
|
|
{
|
|
public:
|
|
TProjectGroupItem *m_pCurGroup;
|
|
|
|
TFloorGrid();
|
|
|
|
void SetData(TProjectGroupItem *pGroup);
|
|
void ExtendDataToGrid(const TFloorGridData *pData, int nRow);
|
|
TFloorGridData *GridToExtendData(int nRow);
|
|
|
|
void AppendToTreeCtrl();
|
|
|
|
CString GetLayerNo();
|
|
|
|
int GetFirstNo(int nRow);
|
|
int GetLastNo(int nRow);
|
|
|
|
public:
|
|
virtual bool OnCellButtonDown(WDGridCell &cell, CString &res);
|
|
virtual bool OnCellButtonTip(long row, long col, CString &res) const { // ok
|
|
res = _T("选楼层文件");
|
|
return true;
|
|
}
|
|
virtual bool OnRowTip(long row, CString&res) const { // ok
|
|
res = _T("双击此处查看楼层范围");
|
|
return true;
|
|
}
|
|
virtual void OnDataChanged();
|
|
virtual void OnDblClick(WDGridRow&row);
|
|
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// TFloorTable——楼层表(包括表格控件和命令按钮)
|
|
class TFloorTable: public WGroupBox
|
|
{
|
|
public:
|
|
TProjectGroupItem *m_pCurGroup; // 当前工程文件组
|
|
|
|
CToolBarCtrl m_toolBar;
|
|
TFloorGrid m_grid;
|
|
|
|
public:
|
|
virtual BOOL OnInitDialog();
|
|
void InitToolbar();
|
|
void InitGrid();
|
|
|
|
public:
|
|
void DoSelectFile();
|
|
void DoSelectPart();
|
|
void DoBuildingModel();
|
|
void DoBuildingElev();
|
|
void DoBuildingSect();
|
|
void DoCheckOpening();
|
|
void DoOpeningTable();
|
|
|
|
void SelectPart(int nCur, XPoint ptMin, XPoint ptMax, XPoint ptBase);
|
|
|
|
void AppendToTreeCtrl() {
|
|
m_grid.AppendToTreeCtrl();
|
|
}
|
|
|
|
protected:
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnSize(UINT nType,int cx,int cy);
|
|
afx_msg void OnClickToolBar(UINT nID);
|
|
afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);
|
|
};
|
|
|
|
|
|
///////////////////////////////////////////////////////////////
|
|
// TAttribute——属性
|
|
class TAttribute: public WGroupBox
|
|
{
|
|
public:
|
|
CString m_szFileName;
|
|
CStatic m_ctrlPreview;
|
|
|
|
void SetPreviewFile(const TCHAR* pszDwgfilename);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
|
|
public:
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnPaint();
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
};
|
|
|
|
|
|
#endif |