www.pudn.com > DiskInfo.tgz > DetailView.h


// DetailView.h : interface of the CDetailView class 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_DETAILVIEW_H__C3455E3D_7FBF_11D2_929A_0080C8E7F1DB__INCLUDED_) 
#define AFX_DETAILVIEW_H__C3455E3D_7FBF_11D2_929A_0080C8E7F1DB__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include  
 
#define WM_FOLDER_RESELECTED WM_USER+20 
 
///////////////////////////////////////////////////////////////////////////// 
// CInfoCtrl window 
class CInfoCtrl : public CWnd 
{ 
public: 
	int DrawItemArray(CDC* pDC, CRect rc, int nItem); 
	class CInfoCtrlItem; 
	typedef CTypedPtrArray CInfoCtrlItemArray; 
	CInfoCtrlItemArray m_arrayDiskInfo, m_arrayInfoItem, m_arrayRootItem; 
 
	CFont m_font; 
 
	CString m_strDriveTitle, m_strFolderTitle; 
 
	void InsertColumn(UINT, CInfoCtrlItemArray* pArray); 
	void DrawPercentItem(CDC* pDC, const CRect& rc, CInfoCtrlItem* pItem); 
	void DrawTextItem(CDC* pDC, const CRect& rc, CInfoCtrlItem* pItem); 
	void UpdateCtrl(); 
	void SetValue(UINT nID, const CString& str, int nT, int nArray); 
	void ResetInfoValues(); 
	void ResetDriveValues(); 
	void ResetRootValues(); 
	 
	CInfoCtrl(); 
	virtual ~CInfoCtrl(); 
	 
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL); 
	 
	// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CInfoCtrl) 
	//}}AFX_VIRTUAL 
	 
	// Generated message map functions 
protected: 
	//{{AFX_MSG(CInfoCtrl) 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg void OnPaint(); 
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); 
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
class CInfoCtrl::CInfoCtrlItem : public CObject 
{ 
public: 
	CInfoCtrlItem(): m_nITEMID(0), m_strItemName(""), m_nPercentData(-1), m_strTextData(""){;} 
	~CInfoCtrlItem() {;} 
 
	UINT m_nITEMID; 
	CString m_strItemName; 
	int m_nPercentData; // = -1 if the item contains text data 
	CString m_strTextData; 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
// CDetailView window 
 
#include "DiskTreeCtrl.h" 
#include "Common/PieChartCtrl.h" 
#include "Common/ListCtrlEx.h" 
#include "Common/Splitwnd.h" 
#include "Common/FlatHeaderCtrl.h" 
 
class CDetailView : public CView 
{ 
	// For printing 
	/*ont m_printerFont; 
	CFont m_headerFont; 
	UINT m_nCharWidth; 
	 
	UINT m_cyItemHeight; 
	UINT m_cxOffset; 
    UINT m_cxWidth; 
 
    int m_nItemsPerPage; 
	int m_nItemsTotal; 
 
	void PrintPageHeader (CDC*, UINT, UINT);*/ 
	CFlatHeaderCtrl m_wndFlatHeader; // For the subitem list 
public: 
	CDetailView(); 
 
// Attributes 
public: 
	CDiskTreeCtrl m_wndDiskTree; 
	int m_nInfoWidth, m_nInfoHeight; 
	BOOL m_bVerMode; 
	BOOL m_bScanFinished; 
 
	CPieChartCtrl m_wndChart; 
	CListCtrlEx m_wndChartInfo; 
	CImageList m_imgColorList; 
	BOOL m_bShowChart, m_bShowInfo; 
 
	CSplitWnd m_wndSplitVer, m_wndSplitHor; 
 
	CInfoCtrl m_wndInfo; 
 
	CString m_strTitle; 
	CFont m_fontTitle; 
	CRect m_rcTitle; 
 
	int m_nMouseInCode; 
	BOOL m_bMouseDown; 
	BOOL m_bFirstTime; 
 
	CMyFolder m_folder; 
	CMyFolder* m_pSelectedFolder; 
	BOOL m_bSelectedIsFile; 
 
	int m_nSortedCol; 
	static BOOL m_bChartInfoSortAscending; 
	static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort); 
 
	 
// Operations 
public: 
 
	// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CDetailView) 
	protected: 
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 
	virtual void OnDraw(CDC* pDC); 
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); 
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); 
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); 
	virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo); 
	virtual void OnEndPrintPreview(CDC* pDC, CPrintInfo* pInfo, POINT point, CPreviewView* pView); 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	void AutoResizeColumns(); 
	void OnPrintPreview(); 
	void ShowMe(); 
	void OnSplitWnd(); 
	void UpdateFolderChart(CMyFolder* pFolder); 
	// Compare two folders to sort 
	// Used in UpdateFolderChart 
	static int CompareFolderSize(const void* f1, const void* f2); 
	void SetCurrentFolder(CString& str); 
	void OnSelectFolder(); 
	void OnRescan(); 
	void Reset(); 
	void RedrawItem(int nCode); 
	int HitTestEx(const CPoint& pt); 
	void SetTitle(const CString& str); 
	void RepositionCtrls(); 
	virtual ~CDetailView(); 
 
	void UpdateShowInfo(); 
	void UpdateShowChart(); 
 
	afx_msg void OnStop(); 
	// Generated message map functions 
protected: 
	//{{AFX_MSG(CDetailView) 
	afx_msg void OnPaint(); 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	afx_msg void OnSize(UINT nType, int cx, int cy); 
	afx_msg void OnMouseMove(UINT nFlags, CPoint point); 
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point); 
	afx_msg void OnTimer(UINT nIDEvent); 
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point); 
	afx_msg void OnUpdateStop(CCmdUI* pCmdUI); 
	afx_msg void OnGetdispFolderChartList(NMHDR* pNMHDR, LRESULT* pResult); 
	afx_msg void OnColumnclickChartList(NMHDR* pNMHDR, LRESULT* pResult); 
	afx_msg void OnChangedTreeFolder(WPARAM wParam, LPARAM lParam); 
	afx_msg void OnShowChart(); 
	afx_msg void OnUpdateShowChart(CCmdUI* pCmdUI); 
	afx_msg void OnShowInfo(); 
	afx_msg void OnUpdateShowInfo(CCmdUI* pCmdUI); 
	afx_msg void OnFileSelect(); 
	afx_msg void OnUpdateRescan(CCmdUI* pCmdUI); 
	afx_msg void OnUpdateFileSelect(CCmdUI* pCmdUI); 
	afx_msg void OnDestroy(); 
	afx_msg void OnSaveResult(); 
	afx_msg void OnToolsSafeclean(); 
	afx_msg void OnCollapseAll(); 
	afx_msg void OnExpandAll(); 
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 
	afx_msg void OnUpdateSaveResult(CCmdUI* pCmdUI); 
	afx_msg void OnUpdateFilePrint(CCmdUI* pCmdUI); 
	afx_msg void OnUpdateFilePrintPreview(CCmdUI* pCmdUI); 
	afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
///////////////////////////////////////////////////////////////////////////// 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_DETAILVIEW_H__C3455E3D_7FBF_11D2_929A_0080C8E7F1DB__INCLUDED_)