3 #include "HintListCtrl.h"
\r
5 #include "resource.h"
\r
7 #include "ProjectProperties.h"
\r
8 #include "StandAloneDlg.h"
\r
9 #include "TGitPath.h"
\r
10 #include "registry.h"
\r
11 #include "SplitterControl.h"
\r
13 #include "MenuButton.h"
\r
14 #include "LogDlgHelper.h"
\r
15 #include "FilterEdit.h"
\r
17 #include "Tooltip.h"
\r
18 #include "HintListCtrl.h"
\r
19 #include "GitLogList.h"
\r
23 #if (NTDDI_VERSION < NTDDI_LONGHORN)
\r
25 enum LISTITEMSTATES_MINE {
\r
30 LISS_SELECTEDNOTFOCUS = 5,
\r
31 LISS_HOTSELECTED = 6,
\r
34 #define MCS_NOTRAILINGDATES 0x0040
\r
35 #define MCS_SHORTDAYSOFWEEK 0x0080
\r
36 #define MCS_NOSELCHANGEONNAV 0x0100
\r
38 #define DTM_SETMCSTYLE (DTM_FIRST + 11)
\r
42 #define ICONITEMBORDER 5
\r
44 #define GITLOG_START 0
\r
45 #define GITLOG_END 100
\r
47 typedef void CALLBACK_PROCESS(void * data, int progress);
\r
49 class CGitLogList : public CHintListCtrl
\r
51 DECLARE_DYNAMIC(CGitLogList)
\r
55 virtual ~CGitLogList();
\r
56 volatile LONG m_bNoDispUpdates;
\r
57 BOOL m_bStrictStopped;
\r
58 BOOL m_bShowBugtraqColumn;
\r
59 BOOL m_bSearchIndex;
\r
63 volatile LONG m_bThreadRunning;
\r
73 LOGLIST_MESSAGE_MAX=250
\r
78 // needs to start with 1, since 0 is the return value if *nothing* is clicked on in the context menu
\r
107 ID_COMPAREWITHPREVIOUS,
\r
108 ID_BLAMEWITHPREVIOUS,
\r
112 void InsertGitColumn();
\r
113 void ResizeAllListCtrlCols();
\r
114 void CopySelectionToClipBoard();
\r
115 void DiffSelectedRevWithPrevious();
\r
116 bool IsSelectionContinuous();
\r
118 inline int ShownCountWithStopped() const { return (int)m_arShownList.GetCount() + (m_bStrictStopped ? 1 : 0); }
\r
119 int FetchLogAsync(CALLBACK_PROCESS *proc=NULL, void * data=NULL);
\r
120 CPtrArray m_arShownList;
\r
123 DECLARE_MESSAGE_MAP()
\r
124 afx_msg void OnNMCustomdrawLoglist(NMHDR *pNMHDR, LRESULT *pResult);
\r
125 afx_msg void OnLvnGetdispinfoLoglist(NMHDR *pNMHDR, LRESULT *pResult);
\r
126 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
\r
127 afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
\r
128 void OnNMDblclkLoglist(NMHDR * /*pNMHDR*/, LRESULT *pResult);
\r
129 afx_msg void OnLvnOdfinditemLoglist(NMHDR *pNMHDR, LRESULT *pResult);
\r
130 void PreSubclassWindow();
\r
131 virtual BOOL PreTranslateMessage(MSG* pMsg);
\r
132 static UINT LogThreadEntry(LPVOID pVoid);
\r
134 void FillBackGround(HDC hdc, int Index,CRect &rect);
\r
135 void DrawTagBranch(HDC,CRect &rect,INT_PTR index);
\r
136 BOOL GetShortName(CString ref, CString &shortname,CString prefix);
\r
141 HICON m_hModifiedIcon;
\r
142 HICON m_hReplacedIcon;
\r
143 HICON m_hAddedIcon;
\r
144 HICON m_hDeletedIcon;
\r
148 CRegDWORD m_regMaxBugIDColWidth;
\r
149 int m_nSearchIndex;
\r
150 CLogDataVector m_logEntries;
\r
151 CALLBACK_PROCESS *m_ProcCallBack;
\r
153 CStoreSelection* m_pStoreSelection;
\r
154 MAP_HASH_NAME m_HashMap;
\r