Includes cleanup
[TortoiseGit.git] / src / TortoiseProc / GitRefCompareList.h
blob0fb03e89b19c5463e9a7ad35de83a7a28a92642e
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008-2015 - TortoiseGit
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 // GitLogList.cpp : implementation file
21 #pragma once
23 #include "HintListCtrl.h"
24 #include "GitHash.h"
25 #include "Git.h"
27 class CGitRefCompareList : public CHintListCtrl
29 DECLARE_DYNAMIC(CGitRefCompareList);
31 enum ChangeType
33 Unknown,
34 New,
35 Deleted,
36 FastForward,
37 NewerTime,
38 Rewind,
39 OlderTime,
40 SameTime,
41 Same
44 struct RefEntry
46 CString fullName;
47 CGit::REF_TYPE refType;
48 CString shortName;
49 CString change;
50 ChangeType changeType;
51 CString oldHash;
52 CString oldMessage;
53 CString newHash;
54 CString newMessage;
57 public:
58 CGitRefCompareList();
60 virtual ~CGitRefCompareList()
64 void Init();
66 int AddEntry(git_repository* repo, CString ref, CGitHash *oldHash, CGitHash *newHash);
67 void Show();
68 void Clear();
70 protected:
71 afx_msg void OnContextMenu(CWnd *pWnd, CPoint point);
72 void OnContextMenuList(CWnd *pWnd, CPoint point);
73 void OnContextMenuHeader(CWnd *pWnd, CPoint point);
75 DECLARE_MESSAGE_MAP()
77 private:
78 static CString GetCommitMessage(git_commit *commit);
79 static bool SortPredicate(const RefEntry &e1, const RefEntry &e2);
81 std::vector<RefEntry> m_RefList;
82 BOOL m_bHideUnchanged;
83 static BOOL m_bSortLogical;
85 int colRef;
86 int colChange;
87 int colOldHash;
88 int colOldMessage;
89 int colNewHash;
90 int colNewMessage;