OSDN Git Service

Unified SyncDlg and progressdlg log handle
[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         CRichEditCtrl  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         bool                    m_bBufferAll;   // Buffer All to improve speed when there are many file add at commit \r
46 protected:\r
47         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support\r
48         static UINT ProgressThreadEntry(LPVOID pVoid);\r
49         UINT            ProgressThread();\r
50 \r
51         void            ParserCmdOutput(TCHAR ch);\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         std::vector<TCHAR> m_Databuf;\r
59         int                     m_BufStart;\r
60         \r
61         void InsertCRLF(); //Insert \r before \n\r
62 \r
63         DECLARE_MESSAGE_MAP()\r
64 public:\r
65 \r
66         //Share with Sync Dailog\r
67         static int      FindPercentage(CString &log);\r
68         static void     ParserCmdOutput(CRichEditCtrl &log,CProgressCtrl &progressctrl,CString &oneline, TCHAR ch);\r
69 \r
70         static UINT  RunCmdList(CWnd *pWnd,std::vector<CString> &cmdlist,bool bShowCommand,CString *pfilename,bool *bAbort,std::vector<TCHAR> *pdata=NULL);\r
71 \r
72         afx_msg void OnBnClickedOk();\r
73         afx_msg void OnBnClickedButton1();\r
74 };\r