Index: src/ch/StatusDlg.h
===================================================================
diff -u -N -r9b8cccbee0fcfeca28a112cc0253a7641f73f74f -ra5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8
--- src/ch/StatusDlg.h	(.../StatusDlg.h)	(revision 9b8cccbee0fcfeca28a112cc0253a7641f73f74f)
+++ src/ch/StatusDlg.h	(.../StatusDlg.h)	(revision a5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8)
@@ -41,18 +41,18 @@
 // Construction
 public:
 	CStatusDlg(chcore::TTaskManager* pTasks, CWnd* pParent = NULL);   // standard constructor
-	~CStatusDlg();
+	virtual ~CStatusDlg();
 
 	void PostCloseMessage();
-	void SetBufferSizesString(UINT uiValue, int iIndex);
+	void SetBufferSizesString(unsigned long long ullValue, int iIndex);
 	void RefreshStatus();
 
 	int GetImageFromStatus(chcore::ETaskCurrentState eState);
 
 	void ApplyButtonsState();
 	chcore::TTaskPtr GetSelectedItemPointer();
+	size_t GetSelectedItemSessionUniqueID();
 
-	void AddTaskInfo(int nPos, const chcore::TTaskPtr& spTask, DWORD dwCurrentTime);
 	void EnableControls(bool bEnable=true);
 
 protected:
@@ -63,17 +63,22 @@
 	virtual void OnLanguageChanged();
 
 	void PrepareResizableControls();
-	CString GetStatusString(const chcore::TASK_DISPLAY_DATA& rTaskDisplayData);
+	CString GetStatusString(const chcore::TTaskStatsSnapshotPtr& spTaskStats);
 
 	void StickDialogToScreenEdge();
 
-	LPTSTR FormatTime(time_t timeSeconds, LPTSTR lpszBuffer, size_t stMaxBufferSize);
+	LPTSTR FormatTime(unsigned long long timeSeconds, LPTSTR lpszBuffer, size_t stMaxBufferSize);
 	LPTSTR FormatTimeMiliseconds(unsigned long long timeMiliSeconds, LPTSTR lpszBuffer, size_t stMaxBufferSize);
 
 	CString GetProcessedText(unsigned long long ullProcessedCount, unsigned long long ullTotalCount, unsigned long long ullProcessedSize, unsigned long long ullTotalSize);
-	void UpdateTaskStatsDetails( chcore::TASK_DISPLAY_DATA &td, DWORD dwCurrentTime );
-	void SetTaskListEntry(const chcore::TASK_DISPLAY_DATA &td, int nPos, const chcore::TTaskPtr& spTask);
+	void UpdateTaskStatsDetails(const chcore::TTaskStatsSnapshotPtr& spTaskStats);
+	void SetTaskListEntry(size_t stPos, const chcore::TTaskStatsSnapshotPtr& spTaskStats);
+	CString GetSubtaskName(chcore::ESubOperationType eSubtask) const;
 
+	CString GetProgressWindowTitleText() const;
+	CString GetSpeedString(double dSizeSpeed, double dAvgSizeSpeed, double dCountSpeed, double dAvgCountSpeed) const;
+	void SetWindowTitle(PCTSTR pszText);
+
 	virtual BOOL OnInitDialog();
 	afx_msg void OnTimer(UINT_PTR nIDEvent);
 	afx_msg void OnPauseButton();
@@ -103,28 +108,24 @@
 
 protected:
 	chcore::TTaskManager* m_pTasks;
-	chcore::TTaskPtr m_spSelectedItem;
 
 	TCHAR m_szData[_MAX_PATH];
 	TCHAR m_szTimeBuffer1[40];
 	TCHAR m_szTimeBuffer2[40];
 	TCHAR m_szTimeBuffer3[40];
 
-	__int64 m_i64LastProcessed;
-	__int64 m_i64LastAllTasksProcessed;
-	DWORD m_dwLastUpdate;
-
 	CImageList m_images;
+	CFFListCtrl m_ctlStatusList;
 
-	CFFListCtrl	m_ctlStatusList;
-
 private:
 	TProgressCtrlEx	m_ctlTaskCountProgress;
 	TProgressCtrlEx	m_ctlTaskSizeProgress;
 	TProgressCtrlEx m_ctlCurrentObjectProgress;
 	TProgressCtrlEx m_ctlSubTaskCountProgress;
 	TProgressCtrlEx m_ctlSubTaskSizeProgress;
 	TProgressCtrlEx	m_ctlProgressAll;
+
+	chcore::TTaskManagerStatsSnapshotPtr m_spTaskMgrStats;
 };
 
 #endif