#include "OutputWnd.h"\r
#include "Resource.h"\r
#include "MainFrm.h"\r
+#include "TortoiseGitBlameDoc.h"\r
+#include "TortoiseGitBlameView.h"\r
\r
#ifdef _DEBUG\r
#define new DEBUG_NEW\r
{\r
}\r
\r
+IMPLEMENT_DYNCREATE(CGitMFCTabCtrl, CMFCTabCtrl)\r
+\r
+BEGIN_MESSAGE_MAP(CGitMFCTabCtrl, CMFCTabCtrl)\r
+ ON_NOTIFY(LVN_ITEMCHANGED, 0, OnLvnItemchangedLoglist)\r
+END_MESSAGE_MAP()\r
+\r
+void CGitMFCTabCtrl::OnLvnItemchangedLoglist(NMHDR *pNMHDR, LRESULT *pResult)\r
+{\r
+ COutputWnd *pWnd=DYNAMIC_DOWNCAST(COutputWnd,this->GetParent());\r
+ pWnd->OnLvnItemchangedLoglist(pNMHDR,pResult);\r
+}\r
+\r
BEGIN_MESSAGE_MAP(COutputWnd, CDockablePane)\r
ON_WM_CREATE()\r
ON_WM_SIZE()\r
+ ON_NOTIFY(LVN_ITEMCHANGED, 0, OnLvnItemchangedLoglist)\r
END_MESSAGE_MAP()\r
\r
int COutputWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)\r
if (CDockablePane::OnCreate(lpCreateStruct) == -1)\r
return -1;\r
\r
+ TRACE(_T("%u\n"),LVN_ITEMCHANGED);\r
m_Font.CreateStockObject(DEFAULT_GUI_FONT);\r
\r
CRect rectDummy;\r
rectDummy.SetRectEmpty();\r
\r
// Create tabs window:\r
- if (!m_wndTabs.Create(CMFCTabCtrl::STYLE_FLAT, rectDummy, this, 1))\r
+ if (!m_wndTabs.Create(CMFCTabCtrl::STYLE_FLAT, rectDummy, this, 0))\r
{\r
TRACE0("Failed to create output tab window\n");\r
return -1; // fail to create\r
\r
// Create output panes:\r
//const DWORD dwStyle = LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL;\r
- const DWORD dwStyle =LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP |LVS_SINGLESEL ;\r
+ const DWORD dwStyle =LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP |LVS_SINGLESEL |WS_CHILD | WS_VISIBLE;\r
\r
- if (! m_LogList.Create(dwStyle,rectDummy,&m_wndTabs,2) )\r
+ if (! m_LogList.Create(dwStyle,rectDummy,&m_wndTabs,0) )\r
{\r
TRACE0("Failed to create output windows\n");\r
return -1; // fail to create\r
return 0;\r
\r
}\r
+void COutputWnd::OnLvnItemchangedLoglist(NMHDR *pNMHDR, LRESULT *pResult)\r
+{\r
+ LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);\r
+ *pResult = 0;\r
+\r
+ //if (this->IsThreadRunning())\r
+ if (pNMLV->iItem >= 0)\r
+ {\r
+ if (pNMLV->iSubItem != 0)\r
+ return;\r
+ \r
+ if (pNMLV->uNewState & LVIS_SELECTED)\r
+ {\r
+ CMainFrame *pMain=DYNAMIC_DOWNCAST(CMainFrame,AfxGetApp()->GetMainWnd());\r
+ POSITION pos=pMain->GetActiveDocument()->GetFirstViewPosition();\r
+ CTortoiseGitBlameView *pView=DYNAMIC_DOWNCAST(CTortoiseGitBlameView,pMain->GetActiveDocument()->GetNextView(pos));\r
+ pView->FocusOn(&this->m_LogList.m_logEntries[pNMLV->iItem]);\r
+ }\r
+ }\r
+}\r
/////////////////////////////////////////////////////////////////////////////\r
// COutputList1\r
\r
DECLARE_MESSAGE_MAP()\r
};\r
\r
+class COutputWnd;\r
+\r
+class CGitMFCTabCtrl: public CMFCTabCtrl\r
+{\r
+protected:\r
+ DECLARE_MESSAGE_MAP()\r
+ afx_msg void OnLvnItemchangedLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
+\r
+ DECLARE_DYNCREATE(CGitMFCTabCtrl);\r
+};\r
+\r
class COutputWnd : public CDockablePane\r
{\r
// Construction\r
public:\r
CFont m_Font;\r
\r
- CMFCTabCtrl m_wndTabs;\r
+ CGitMFCTabCtrl m_wndTabs;\r
\r
CGitBlameLogList m_LogList;\r
// COutputList m_wndOutputBuild;\r
void FillFindWindow();\r
\r
void AdjustHorzScroll(CListBox& wndListBox);\r
-\r
+ \r
// Implementation\r
public:\r
virtual ~COutputWnd();\r
-\r
+ afx_msg void OnLvnItemchangedLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
int LoadHistory(CString filename);\r
\r
protected:\r
RelativePath=".\TortoiseGitBlameView.h"\r
>\r
</File>\r
+ <Filter\r
+ Name="HTML Help Files"\r
+ Filter="hhp;hhc;hhk;gif;jpg"\r
+ >\r
+ <File\r
+ RelativePath=".\hlp\TortoiseGitBlame.hhc"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\hlp\TortoiseGitBlame.hhk"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\hlp\TortoiseGitBlame.hhp"\r
+ >\r
+ <FileConfiguration\r
+ Name="Debug|Win32"\r
+ >\r
+ <Tool\r
+ Name="VCCustomBuildTool"\r
+ Description="Making help file..."\r
+ CommandLine="start /wait hhc "hlp\TortoiseGitBlame.hhp"
if not exist "hlp\TortoiseGitBlame.chm" goto :HelpError
copy "hlp\TortoiseGitBlame.chm" "$(OutDir)\TortoiseGitBlame.chm"
goto :HelpDone
:HelpError
echo hlp\TortoiseGitBlame.hhp(1) : error:Problem encountered creating help file
echo.
:HelpDone
echo.
"\r
+ AdditionalDependencies="hlp\HTMLDefines.h"\r
+ Outputs="$(OutDir)\$(ProjectName).chm"\r
+ />\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32"\r
+ >\r
+ <Tool\r
+ Name="VCCustomBuildTool"\r
+ Description="Making help file..."\r
+ CommandLine="start /wait hhc "hlp\TortoiseGitBlame.hhp"
if not exist "hlp\TortoiseGitBlame.chm" goto :HelpError
copy "hlp\TortoiseGitBlame.chm" "$(OutDir)\TortoiseGitBlame.chm"
goto :HelpDone
:HelpError
echo hlp\TortoiseGitBlame.hhp(1) : error:Problem encountered creating help file
echo.
:HelpDone
echo.
"\r
+ AdditionalDependencies="hlp\HTMLDefines.h"\r
+ Outputs="$(OutDir)\$(ProjectName).chm"\r
+ />\r
+ </FileConfiguration>\r
+ </File>\r
+ </Filter>\r
</Filter>\r
<Filter\r
Name="Resource Files"\r
</File>\r
</Filter>\r
<Filter\r
- Name="HTML Help Files"\r
- Filter="hhp;hhc;hhk;gif;jpg"\r
- >\r
- <File\r
- RelativePath=".\hlp\TortoiseGitBlame.hhc"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\hlp\TortoiseGitBlame.hhk"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\hlp\TortoiseGitBlame.hhp"\r
- >\r
- <FileConfiguration\r
- Name="Debug|Win32"\r
- >\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- Description="Making help file..."\r
- CommandLine="start /wait hhc "hlp\TortoiseGitBlame.hhp"
if not exist "hlp\TortoiseGitBlame.chm" goto :HelpError
copy "hlp\TortoiseGitBlame.chm" "$(OutDir)\TortoiseGitBlame.chm"
goto :HelpDone
:HelpError
echo hlp\TortoiseGitBlame.hhp(1) : error:Problem encountered creating help file
echo.
:HelpDone
echo.
"\r
- AdditionalDependencies="hlp\HTMLDefines.h"\r
- Outputs="$(OutDir)\$(ProjectName).chm"\r
- />\r
- </FileConfiguration>\r
- <FileConfiguration\r
- Name="Release|Win32"\r
- >\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- Description="Making help file..."\r
- CommandLine="start /wait hhc "hlp\TortoiseGitBlame.hhp"
if not exist "hlp\TortoiseGitBlame.chm" goto :HelpError
copy "hlp\TortoiseGitBlame.chm" "$(OutDir)\TortoiseGitBlame.chm"
goto :HelpDone
:HelpError
echo hlp\TortoiseGitBlame.hhp(1) : error:Problem encountered creating help file
echo.
:HelpDone
echo.
"\r
- AdditionalDependencies="hlp\HTMLDefines.h"\r
- Outputs="$(OutDir)\$(ProjectName).chm"\r
- />\r
- </FileConfiguration>\r
- </File>\r
- </Filter>\r
- <Filter\r
Name="HTML Help Topics"\r
Filter="htm;html"\r
>\r
notification->lParam = InterColor(DWORD(m_regOldLinesColor), DWORD(m_regNewLinesColor), (m_ID[notification->line]-m_lowestrev)*100/((m_highestrev-m_lowestrev)+1));\r
}\r
\r
+}\r
+\r
+void CTortoiseGitBlameView::FocusOn(GitRev *pRev)\r
+{\r
+ m_SelectedHash = pRev->m_CommitHash;\r
+\r
+ //GitRev *pRev;\r
+ //pRev=&this->GetLogData()->at(this->GetLogList()->GetItemCount()-m_ID[line]);\r
+ this->GetDocument()->GetMainFrame()->m_wndProperties.UpdateProperties(pRev);\r
+\r
+ this->Invalidate();\r
+ this->m_TextView.Invalidate();\r
\r
}
\ No newline at end of file
public:\r
\r
void UpdateInfo();\r
+ void FocusOn(GitRev *pRev);\r
\r
CSciEdit m_TextView;\r
\r