OSDN Git Service

RebaseDlg: List Conflict file when cherry pick fail
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / RebaseDlg.h
1 #pragma once\r
2 #include "afxcmn.h"\r
3 #include "afxwin.h"\r
4 #include "StandAloneDlg.h"\r
5 #include "GitStatusListCtrl.h"\r
6 #include "SciEdit.h"\r
7 #include "SplitterControl.h"\r
8 #include "HistoryCombo.h"\r
9 #include "Balloon.h"\r
10 #include "GitLogList.h"\r
11 // CRebaseDlg dialog\r
12 #define IDC_REBASE_TAB 0x1000000\r
13 \r
14 #define REBASE_TAB_CONFLICT  0\r
15 #define REBASE_TAB_MESSAGE   1\r
16 #define REBASE_TAB_LOG           2\r
17 \r
18 #define MSG_REBASE_UPDATE_UI    (WM_USER+151)\r
19 \r
20 class CRebaseDlg : public CResizableStandAloneDialog\r
21 {\r
22         DECLARE_DYNAMIC(CRebaseDlg)\r
23 \r
24 public:\r
25         CRebaseDlg(CWnd* pParent = NULL);   // standard constructor\r
26         virtual ~CRebaseDlg();\r
27 \r
28 // Dialog Data\r
29         enum { IDD = IDD_REBASE };\r
30 \r
31         enum REBASE_STAGE\r
32         {\r
33                 CHOOSE_BRANCH,\r
34                 CHOOSE_COMMIT_PICK_MODE,\r
35                 REBASE_START,\r
36                 REBASE_CONTINUE,\r
37                 REBASE_ABORT,\r
38                 REBASE_FINISH,\r
39                 REBASE_CONFLICT,\r
40         };\r
41 \r
42 protected:\r
43         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support\r
44         virtual BOOL OnInitDialog();\r
45         DECLARE_MESSAGE_MAP()\r
46         virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);\r
47         LRESULT OnRebaseUpdateUI(WPARAM wParam, LPARAM lParam);\r
48         void DoSize(int delta);\r
49         void AddRebaseAnchor();\r
50         void RemoveAnchor();\r
51 \r
52         void SetSplitterRange();\r
53         void SaveSplitterPos();\r
54         \r
55         void LoadBranchInfo();\r
56         void FetchLogList();\r
57         void SetAllRebaseAction(int action);\r
58 \r
59         CRect                           m_DlgOrigRect;\r
60         CRect                           m_CommitListOrigRect;\r
61         BOOL PreTranslateMessage(MSG* pMsg);\r
62 \r
63         CSciEdit m_wndOutputRebase;\r
64         void SetContinueButtonText();\r
65         void SetControlEnable();\r
66         void UpdateProgress();\r
67         void UpdateCurrentStatus();\r
68         void ListConflictFile();\r
69         int  DoRebase();\r
70         volatile LONG           m_bThreadRunning;\r
71         int  RebaseThread();\r
72         static UINT RebaseThreadEntry(LPVOID pVoid){return ((CRebaseDlg *)pVoid)->RebaseThread();};\r
73         BOOL IsEnd();\r
74 \r
75 public:\r
76    \r
77     afx_msg void OnBnClickedPickAll();\r
78     afx_msg void OnBnClickedSquashAll();\r
79     afx_msg void OnBnClickedEditAll();\r
80     afx_msg void OnBnClickedRebaseSplit();\r
81         afx_msg void OnSize(UINT nType, int cx, int cy);\r
82         afx_msg void OnCbnSelchangeBranch();\r
83         afx_msg void OnCbnSelchangeUpstream();\r
84         afx_msg void OnBnClickedContinue();\r
85 \r
86     CProgressCtrl m_ProgressBar;\r
87     CStatic m_CtrlStatusText;\r
88         CBalloon                        m_tooltips;\r
89 \r
90     BOOL m_bPickAll;\r
91     BOOL m_bSquashAll;\r
92     BOOL m_bEditAll;\r
93 \r
94         CSplitterControl        m_wndSplitter;\r
95         CMFCTabCtrl m_ctrlTabCtrl;\r
96         CGitStatusListCtrl m_FileListCtrl;\r
97         CSciEdit                   m_LogMessageCtrl;\r
98         \r
99         CGitLogList                m_CommitList;\r
100 \r
101         CHistoryCombo m_BranchCtrl;\r
102         CHistoryCombo m_UpstreamCtrl;\r
103 \r
104         REBASE_STAGE       m_RebaseStage;\r
105 \r
106         void AddBranchToolTips(CHistoryCombo *pBranch);\r
107         void AddLogString(CString str);\r
108         int      StartRebase();\r
109         int  CheckRebaseCondition();\r
110         int  m_CurrentRebaseIndex;\r
111         int  StateAction();\r
112         int  GoNext();\r
113 };\r