ON_REGISTERED_MESSAGE(CGitStatusListCtrl::SVNSLNM_NEEDSREFRESH, OnGitStatusListCtrlNeedsRefresh)\r
ON_REGISTERED_MESSAGE(CGitStatusListCtrl::SVNSLNM_ADDFILE, OnFileDropped)\r
ON_REGISTERED_MESSAGE(CGitStatusListCtrl::SVNSLNM_CHECKCHANGED, &CCommitDlg::OnGitStatusListCtrlCheckChanged)\r
+ ON_REGISTERED_MESSAGE(CGitStatusListCtrl::SVNSLNM_ITEMCHANGED, &CCommitDlg::OnGitStatusListCtrlItemChanged)\r
+ \r
ON_REGISTERED_MESSAGE(WM_AUTOLISTREADY, OnAutoListReady) \r
ON_WM_TIMER()\r
ON_WM_SIZE()\r
ON_WM_MOVE()\r
ON_WM_MOVING()\r
ON_WM_SIZING()\r
+ ON_NOTIFY(HDN_ITEMCHANGED, 0, &CCommitDlg::OnHdnItemchangedFilelist)\r
END_MESSAGE_MAP()\r
\r
BOOL CCommitDlg::OnInitDialog()\r
SysFreeString(temp);\r
\r
}\r
+LRESULT CCommitDlg::OnGitStatusListCtrlItemChanged(WPARAM wparam, LPARAM lparam)\r
+{\r
+ TRACE("OnGitStatusListCtrlItemChanged %d\r\n", wparam);\r
+ if(::IsWindow(this->m_patchViewdlg.m_hWnd))\r
+ {\r
+ m_patchViewdlg.m_ctrlPatchView.SetText(CString());\r
+\r
+ POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition();\r
+ m_patchViewdlg.m_ctrlPatchView.Call(SCI_SETREADONLY, FALSE);\r
+ while(pos)\r
+ {\r
+ int nSelect = m_ListCtrl.GetNextSelectedItem(pos);\r
+ CTGitPath * p=(CTGitPath*)m_ListCtrl.GetItemData(nSelect);\r
+ if(p)\r
+ {\r
+ CString cmd,out;\r
+ cmd.Format(_T("git.exe diff -- \"%s\""),p->GetGitPathString());\r
+ g_Git.Run(cmd,&out,CP_ACP);\r
+\r
+ m_patchViewdlg.m_ctrlPatchView.SetText(out);\r
+ }\r
+\r
+ }\r
+ m_patchViewdlg.m_ctrlPatchView.Call(SCI_SETREADONLY, TRUE);\r
+ m_patchViewdlg.m_ctrlPatchView.Call(SCI_GOTOPOS, 0);\r
+\r
+ }\r
+ return 0;\r
+}\r
+\r
\r
LRESULT CCommitDlg::OnGitStatusListCtrlCheckChanged(WPARAM, LPARAM)\r
{\r
}\r
// TODO: Add your message handler code here\r
}\r
+\r
+void CCommitDlg::OnHdnItemchangedFilelist(NMHDR *pNMHDR, LRESULT *pResult)\r
+{\r
+ LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);\r
+ // TODO: Add your control notification handler code here\r
+ *pResult = 0;\r
+ TRACE("Item Changed\r\n");\r
+}\r