\r
m_font = 0;\r
m_italicfont = 0;\r
- m_blamewidth = 100;\r
+ m_blamewidth = 0;\r
m_revwidth = 0;\r
m_datewidth = 0;\r
m_authorwidth = 0;\r
m_colorage = true;\r
\r
m_bShowLine=true;\r
+\r
+ m_bShowAuthor=true;\r
+ m_bShowDate=false;\r
}\r
\r
CTortoiseGitBlameView::~CTortoiseGitBlameView()\r
\r
LONG CTortoiseGitBlameView::GetBlameWidth()\r
{\r
-#if 0\r
- if (m_blamewidth)\r
- return m_blamewidth;\r
LONG blamewidth = 0;\r
SIZE width;\r
CreateFont();\r
- HDC hDC = ::GetDC(wBlame);\r
+ HDC hDC = this->GetDC()->m_hDC;\r
HFONT oldfont = (HFONT)::SelectObject(hDC, m_font);\r
+ \r
TCHAR buf[MAX_PATH];\r
- _stprintf_s(buf, MAX_PATH, _T("%8ld "), 88888888);\r
+ //_stprintf_s(buf, MAX_PATH, _T("%8ld "), 88888888);\r
+ //::GetTextExtentPoint(hDC, buf, _tcslen(buf), &width);\r
+ //m_revwidth = width.cx + BLAMESPACE;\r
+ //blamewidth += m_revwidth;\r
+\r
+ int maxnum=0;\r
+ for (int i=0;i<this->m_Authors.size();i++)\r
+ {\r
+ if(m_ID[i]>maxnum)\r
+ maxnum=m_ID[i];\r
+ }\r
+ _stprintf_s(buf, MAX_PATH, _T("%d."), maxnum);\r
::GetTextExtentPoint(hDC, buf, _tcslen(buf), &width);\r
m_revwidth = width.cx + BLAMESPACE;\r
blamewidth += m_revwidth;\r
- if (ShowDate)\r
+\r
+#if 0\r
+ _stprintf_s(buf, MAX_PATH, _T("%d"), m_CommitHash.size());\r
+ ::GetTextExtentPoint(hDC, buf, _tcslen(buf), &width);\r
+ m_linewidth = width.cx + BLAMESPACE;\r
+ blamewidth += m_revwidth;\r
+#endif \r
+\r
+ if (m_bShowDate)\r
{\r
_stprintf_s(buf, MAX_PATH, _T("%30s"), _T("31.08.2001 06:24:14"));\r
::GetTextExtentPoint32(hDC, buf, _tcslen(buf), &width);\r
m_datewidth = width.cx + BLAMESPACE;\r
blamewidth += m_datewidth;\r
}\r
- if (ShowAuthor)\r
+ if ( m_bShowAuthor)\r
{\r
SIZE maxwidth = {0};\r
- for (std::vector<CString>::iterator I = authors.begin(); I != authors.end(); ++I)\r
+\r
+ for (int i=0;i<this->m_Authors.size();i++)\r
+ //for (std::vector<CString>::iterator I = authors.begin(); I != authors.end(); ++I)\r
{\r
- ::GetTextExtentPoint32(hDC, I->c_str(), I->size(), &width);\r
+ ::GetTextExtentPoint32(hDC,m_Authors[i] , m_Authors[i].GetLength(), &width);\r
if (width.cx > maxwidth.cx)\r
maxwidth = width;\r
}\r
m_authorwidth = maxwidth.cx + BLAMESPACE;\r
blamewidth += m_authorwidth;\r
}\r
+#if 0\r
if (ShowPath)\r
{\r
SIZE maxwidth = {0};\r
m_pathwidth = maxwidth.cx + BLAMESPACE;\r
blamewidth += m_pathwidth;\r
}\r
+#endif\r
::SelectObject(hDC, oldfont);\r
POINT pt = {blamewidth, 0};\r
LPtoDP(hDC, &pt, 1);\r
m_blamewidth = pt.x;\r
- ReleaseDC(wBlame, hDC);\r
-#endif\r
+ //::ReleaseDC(wBlame, hDC);\r
+\r
//return m_blamewidth;\r
- return 100;\r
+ return blamewidth;\r
+\r
}\r
\r
void CTortoiseGitBlameView::CreateFont()\r
//}\r
\r
CString str;\r
- str.Format(_T("%d.%s"),m_ID[i],m_Authors[i]);\r
+ str.Format(_T("%d"),m_ID[i]);\r
\r
//_stprintf_s(buf, MAX_PATH, _T("%8ld "), revs[i]);\r
rc.top=Y;\r
rc.right = rc.left + m_blamewidth;\r
::ExtTextOut(hDC, LOCATOR_WIDTH, Y, ETO_CLIPPED, &rc, str, str.GetLength(), 0);\r
int Left = m_revwidth;\r
+ \r
+ if (m_bShowAuthor)\r
+ {\r
+ rc.right = rc.left + Left + m_authorwidth;\r
+ //_stprintf_s(buf, MAX_PATH, _T("%-30s "), authors[i].c_str());\r
+ ::ExtTextOut(hDC, Left, Y, ETO_CLIPPED, &rc, m_Authors[i], m_Authors[i].GetLength(), 0);\r
+ Left += m_authorwidth;\r
+ }\r
#if 0\r
if (ShowDate)\r
{\r
::ExtTextOut(hDC, Left, Y, ETO_CLIPPED, &rc, buf, _tcslen(buf), 0);\r
Left += m_datewidth;\r
}\r
- if (ShowAuthor)\r
- {\r
- rc.right = rc.left + Left + m_authorwidth;\r
- _stprintf_s(buf, MAX_PATH, _T("%-30s "), authors[i].c_str());\r
- ::ExtTextOut(hDC, Left, Y, ETO_CLIPPED, &rc, buf, _tcslen(buf), 0);\r
- Left += m_authorwidth;\r
- }\r
+ \r
#endif\r
#if 0\r
if (ShowPath)\r
m_lowestrev=1;\r
m_highestrev=this->GetLogData()->size();\r
\r
+ GetBlameWidth();\r
+ CRect rect;\r
+ this->GetClientRect(rect);\r
+ //this->m_TextView.GetWindowRect(rect);\r
+ //this->m_TextView.ScreenToClient(rect);\r
+ rect.left=this->m_blamewidth;\r
+ this->m_TextView.MoveWindow(rect);\r
+\r
this->Invalidate();\r
}\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