OSDN Git Service

Fix ProgressDlg Sometime thread is dead blocked.
[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_END   110\r
9 \r
10 class CProgressDlg : public CResizableStandAloneDialog\r
11 {\r
12         DECLARE_DYNAMIC(CProgressDlg)\r
13 \r
14 public:\r
15         CProgressDlg(CWnd* pParent = NULL);   // standard constructor\r
16         virtual ~CProgressDlg();\r
17         virtual BOOL OnInitDialog();\r
18 // Dialog Data\r
19         enum { IDD = IDD_GITPROGRESS };\r
20         CString m_GitCmd;\r
21         CString m_LogFile;\r
22 \r
23         CProgressCtrl m_Progress;\r
24         \r
25         CEdit             m_Log;\r
26         CAnimateCtrl  m_Animate;\r
27         CStatic           m_CurrentWork;\r
28         CWinThread*                             m_pThread;      \r
29         volatile LONG                   m_bThreadRunning;\r
30         DWORD                     m_GitStatus;\r
31         BOOL              m_bShowCommand;       // whether to display the command in the log window (default true)\r
32         CString           m_PreText;            // optional text to show in log window before running command\r
33 protected:\r
34         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support\r
35         static UINT ProgressThreadEntry(LPVOID pVoid);\r
36         UINT            ProgressThread();\r
37 \r
38         void            ParserCmdOutput(TCHAR ch);\r
39         int                     FindPercentage(CString &log);\r
40         void        RemoveLastLine(CString &str);\r
41 \r
42         LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam);\r
43 \r
44         CString         m_LogText;\r
45         DECLARE_MESSAGE_MAP()\r
46 };\r