OSDN Git Service

Rewrite some progressdlg to share to Sync Dialog
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / ProgressDlg.h
1 #pragma once\r
2 \r
3 #include "StandAloneDlg.h"\r
4 \r
5 #define MSG_PROGRESSDLG_UPDATE_UI       (WM_USER+121)\r
6 // CProgressDlg dialog\r
7 #define MSG_PROGRESSDLG_START 0\r
8 #define MSG_PROGRESSDLG_RUN   50\r
9 #define MSG_PROGRESSDLG_END   110\r
10 #define MSG_PROGRESSDLG_FAILED 111\r
11 \r
12 class CProgressDlg : public CResizableStandAloneDialog\r
13 {\r
14         DECLARE_DYNAMIC(CProgressDlg)\r
15 \r
16 public:\r
17         CProgressDlg(CWnd* pParent = NULL);   // standard constructor\r
18         virtual ~CProgressDlg();\r
19         virtual BOOL OnInitDialog();\r
20 // Dialog Data\r
21         enum { IDD = IDD_GITPROGRESS };\r
22         CString m_GitCmd;\r
23         std::vector<CString> m_GitCmdList;\r
24         bool m_bAutoCloseOnSuccess;\r
25         CString m_changeAbortButtonOnSuccessTo;\r
26 \r
27         CString m_LogFile;\r
28 \r
29         CProgressCtrl m_Progress;\r
30         \r
31         CEdit             m_Log;\r
32         CString m_Title;\r
33         CAnimateCtrl  m_Animate;\r
34         CStatic           m_CurrentWork;\r
35         CWinThread*                             m_pThread;      \r
36         volatile LONG                   m_bThreadRunning;\r
37         DWORD                     m_GitStatus;\r
38         BOOL              m_bShowCommand;       // whether to display the command in the log window (default true)\r
39         CString           m_PreText;            // optional text to show in log window before running command\r
40         CString           m_LogText;\r
41 \r
42         bool                    m_bAbort;\r
43         bool                    m_bDone;\r
44         bool                    m_bAltAbortPress;\r
45 protected:\r
46         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support\r
47         static UINT ProgressThreadEntry(LPVOID pVoid);\r
48         UINT            ProgressThread();\r
49 \r
50         void            ParserCmdOutput(TCHAR ch);\r
51         \r
52         void        RemoveLastLine(CString &str);\r
53 \r
54         LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam);\r
55 \r
56         void            OnCancel();\r
57 \r
58         \r
59         DECLARE_MESSAGE_MAP()\r
60 public:\r
61 \r
62         //Share with Sync Dailog\r
63         static int      FindPercentage(CString &log);\r
64         static UINT  RunCmdList(CWnd *pWnd,std::vector<CString> &cmdlist,bool bShowCommand,CString *pfilename,bool *bAbort);\r
65 \r
66         afx_msg void OnBnClickedOk();\r
67         afx_msg void OnBnClickedButton1();\r
68 };\r