Index: src/ch/StatusDlg.h =================================================================== diff -u -rd5c3edd0d167db9b5d47d04248820fda49499a5e -r0d5b67ee96b435d63f7bf075dc8e28603793b187 --- src/ch/StatusDlg.h (.../StatusDlg.h) (revision d5c3edd0d167db9b5d47d04248820fda49499a5e) +++ src/ch/StatusDlg.h (.../StatusDlg.h) (revision 0d5b67ee96b435d63f7bf075dc8e28603793b187) @@ -19,9 +19,16 @@ #ifndef __STATUSDLG_H__ #define __STATUSDLG_H__ -#include "structs.h" #include "FFListCtrl.h" +#include "TProgressCtrlEx.h" +#include "TExplorerTaskBarProgress.h" +#include "../libchengine/TTask.h" +#include "../libchengine/TTaskManager.h" +namespace chengine { + class TTaskManager; +} + #define WM_UPDATESTATUS WM_USER+6 #define WM_STATUSCLOSING WM_USER+12 @@ -31,74 +38,56 @@ { // Construction public: - CStatusDlg(CTaskArray* pTasks, CWnd* pParent = NULL); // standard constructor - ~CStatusDlg(); + explicit CStatusDlg(chengine::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(long lSeconds, LPTSTR lpszBuffer, size_t stMaxBufferSize); - int GetImageFromStatus(UINT nStatus); + int GetImageFromStatus(chengine::ETaskCurrentState eState); + void ApplyButtonsState(); - void ApplyDisplayDetails(bool bInitial=false); - CTask* GetSelectedItemPointer(); + chengine::TTaskPtr GetSelectedItemPointer(); + size_t GetSelectedItemSessionUniqueID(); - void AddTaskInfo(int nPos, CTask *pTask, DWORD dwCurrentTime); void EnableControls(bool bEnable=true); - CTaskArray* m_pTasks; - CTask* pSelectedItem; - const CTask *m_pLastSelected; - const CTask* m_pInitialSelection; +protected: + void DoDataExchange(CDataExchange* pDX) override; // DDX/DDV support + BOOL OnCommand(WPARAM wParam, LPARAM lParam) override; + LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam) override; - TCHAR m_szData[_MAX_PATH]; - TCHAR m_szTimeBuffer1[40]; - TCHAR m_szTimeBuffer2[40]; + void OnLanguageChanged() override; - __int64 m_i64LastProcessed; - __int64 m_i64LastAllTasksProcessed; - DWORD m_dwLastUpdate; + void PrepareResizableControls(); + CString GetStatusString(const chengine::TTaskStatsSnapshotPtr& spTaskStats); - LVITEM lvi; - TASK_DISPLAY_DATA td; - CString m_strTemp, m_strTemp2; + void StickDialogToScreenEdge(); - CImageList m_images; + CString FormatTime(unsigned long long timeSeconds); + CString FormatTimeMiliseconds(unsigned long long timeMiliSeconds); - static bool m_bLock; // locker + CString GetProcessedText(unsigned long long ullProcessedCount, unsigned long long ullTotalCount, unsigned long long ullProcessedSize, unsigned long long ullTotalSize); + void UpdateTaskStatsDetails(const chengine::TTaskStatsSnapshotPtr& spTaskStats); + void SetTaskListEntry(size_t stPos, const chengine::TTaskStatsSnapshotPtr& spTaskStats); + CString GetSubtaskName(chengine::ESubOperationType eSubtask) const; -// Dialog Data - //{{AFX_DATA(CStatusDlg) - enum { IDD = IDD_STATUS_DIALOG }; - CEdit m_ctlErrors; - CProgressCtrl m_ctlCurrentProgress; - CFFListCtrl m_ctlStatusList; - CProgressCtrl m_ctlProgressAll; - //}}AFX_DATA + CString GetProgressWindowTitleText() const; + void UpdateTaskBarProgress() const; + CString GetSpeedString(double dSizeSpeed, double dAvgSizeSpeed, double dCountSpeed, double dAvgCountSpeed) const; + void SetWindowTitle(PCTSTR pszText); -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CStatusDlg) - public: - 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 + BOOL OnInitDialog() override; -// Implementation -protected: - virtual void OnLanguageChanged(); + void SelectInitialTask(); - // Generated message map functions - //{{AFX_MSG(CStatusDlg) - 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(); @@ -109,17 +98,33 @@ afx_msg void OnRemoveFinishedButton(); 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(); + void OnCancel() override; 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: + chengine::TTaskPtr m_spInitialSelection; + static bool m_bLock; // locker + +protected: + chengine::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; + + chengine::TTaskManagerStatsSnapshotPtr m_spTaskMgrStats; + TExplorerTaskBarProgress m_taskBarProgress; +}; + #endif