Index: src/ch/StatusDlg.h =================================================================== diff -u -r1fa2eb7e39e2f8d84868d421fe1c4f0afc58d353 -r8068e0c351055554340ac9755d1bc846893bf2b8 --- src/ch/StatusDlg.h (.../StatusDlg.h) (revision 1fa2eb7e39e2f8d84868d421fe1c4f0afc58d353) +++ src/ch/StatusDlg.h (.../StatusDlg.h) (revision 8068e0c351055554340ac9755d1bc846893bf2b8) @@ -19,9 +19,16 @@ #ifndef __STATUSDLG_H__ #define __STATUSDLG_H__ -#include "task.h" #include "FFListCtrl.h" +#include "TProgressCtrlEx.h" +namespace chcore +{ + class TTaskManager; + class TTask; + typedef std::shared_ptr TTaskPtr; +} + #define WM_UPDATESTATUS WM_USER+6 #define WM_STATUSCLOSING WM_USER+12 @@ -31,76 +38,51 @@ { // Construction public: - CStatusDlg(CTaskArray* pTasks, CWnd* pParent = NULL); // standard constructor - ~CStatusDlg(); + CStatusDlg(chcore::TTaskManager* pTasks, CWnd* pParent = nullptr); // standard constructor + virtual ~CStatusDlg(); + void PostCloseMessage(); - void SetBufferSizesString(UINT uiValue, int iIndex); + void SetBufferSizesString(unsigned long long ullValue, int iIndex); void RefreshStatus(); - LPTSTR FormatTime(time_t timeSeconds, LPTSTR lpszBuffer, size_t stMaxBufferSize); - int GetImageFromStatus(UINT nStatus); + int GetImageFromStatus(chcore::ETaskCurrentState eState); + void ApplyButtonsState(); - void ApplyDisplayDetails(bool bInitial=false); - CTaskPtr GetSelectedItemPointer(); + chcore::TTaskPtr GetSelectedItemPointer(); + size_t GetSelectedItemSessionUniqueID(); - void AddTaskInfo(int nPos, const CTaskPtr& spTask, DWORD dwCurrentTime); void EnableControls(bool bEnable=true); - CTaskArray* m_pTasks; - CTaskPtr m_spSelectedItem; - CTaskPtr m_spLastSelected; - CTaskPtr m_spInitialSelection; - - 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; - - LVITEM lvi; - TASK_DISPLAY_DATA td; - CString m_strTemp; - - CImageList m_images; - - static bool m_bLock; // locker - -// Dialog Data - //{{AFX_DATA(CStatusDlg) - enum { IDD = IDD_STATUS_DIALOG }; - CProgressCtrl m_ctlCurrentProgress; - CFFListCtrl m_ctlStatusList; - CProgressCtrl m_ctlProgressAll; - //}}AFX_DATA - - -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CStatusDlg) - public: - protected: +protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); - //}}AFX_VIRTUAL -// Implementation -protected: virtual void OnLanguageChanged(); void PrepareResizableControls(); + CString GetStatusString(const chcore::TTaskStatsSnapshotPtr& spTaskStats); - // Generated message map functions - //{{AFX_MSG(CStatusDlg) + void StickDialogToScreenEdge(); + + CString FormatTime(unsigned long long timeSeconds); + CString FormatTimeMiliseconds(unsigned long long timeMiliSeconds); + + CString GetProcessedText(unsigned long long ullProcessedCount, unsigned long long ullTotalCount, unsigned long long ullProcessedSize, unsigned long long ullTotalSize); + 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(); afx_msg void OnCancelButton(); - afx_msg void OnRollUnrollButton(); afx_msg void OnSetPriorityButton(); + afx_msg void OnTaskAdvancedOptions(); afx_msg void OnSetBuffersizeButton(); afx_msg void OnStartAllButton(); afx_msg void OnRestartButton(); @@ -112,16 +94,31 @@ afx_msg void OnKeydownStatusList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnSelectionChanged(NMHDR* /*pNMHDR*/, LRESULT* /*pResult*/); virtual void OnCancel(); - afx_msg void OnAdvancedButton(); - afx_msg void OnPopupReplacePaths(); afx_msg void OnShowLogButton(); afx_msg void OnStickButton(); afx_msg void OnResumeButton(); - //}}AFX_MSG + DECLARE_MESSAGE_MAP() -}; -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. +public: + chcore::TTaskPtr m_spInitialSelection; + static bool m_bLock; // locker + +protected: + chcore::TTaskManager* m_pTasks; + + CImageList m_images; + CFFListCtrl m_ctlStatusList; + + TProgressCtrlEx m_ctlTaskCountProgress; + TProgressCtrlEx m_ctlTaskSizeProgress; + TProgressCtrlEx m_ctlCurrentObjectProgress; + TProgressCtrlEx m_ctlSubTaskCountProgress; + TProgressCtrlEx m_ctlSubTaskSizeProgress; + TProgressCtrlEx m_ctlProgressAll; + + chcore::TTaskManagerStatsSnapshotPtr m_spTaskMgrStats; +}; + #endif