i++;\r
}\r
}\r
+\r
+\r
+COLORREF CColors::MixColors(COLORREF baseColor, COLORREF newColor, unsigned char mixFactor)\r
+{\r
+ short colRed;\r
+ short colGreen;\r
+ short colBlue;\r
+ colRed = ((float)( baseColor&0x000000FF) -(float)( newColor&0x000000FF) )*mixFactor/0xFF;//red\r
+ colGreen = ((float)((baseColor&0x0000FF00)>>8) -(float)((newColor&0x0000FF00)>>8 ))*mixFactor/0xFF;//green\r
+ colBlue = ((float)((baseColor&0x00FF0000)>>16)-(float)((newColor&0x00FF0000)>>16))*mixFactor/0xFF;//blue\r
+ \r
+ colRed = ( baseColor&0x000000FF) -colRed;\r
+ colGreen = ((baseColor&0x0000FF00)>>8) -colGreen;\r
+ colBlue = ((baseColor&0x00FF0000)>>16) -colBlue;\r
+ baseColor=(int)colRed|((int)colGreen<<8)|((int)colBlue<<16);\r
+ return baseColor;\r
+}\r
+\r
+COLORREF CColors::Lighten(COLORREF baseColor, unsigned char amount)\r
+{\r
+ return MixColors(baseColor, RGB(255,255,255), amount);\r
+}\r
+\r
+COLORREF CColors::Darken(COLORREF baseColor, unsigned char amount)\r
+{\r
+ return MixColors(baseColor, RGB(0,0,0), amount);\r
+}\r
+\r
str=m_HashMap[data->m_CommitHash][i];\r
\r
CString shortname;\r
- HBRUSH brush=0;\r
- shortname=_T("");\r
+ HBRUSH brush = 0;\r
+ shortname = _T("");\r
+ COLORREF colRef = 0;\r
+\r
if(GetShortName(str,shortname,_T("refs/heads/")))\r
{\r
if( shortname == m_CurrentBranch )\r
- brush = ::CreateSolidBrush(m_Colors.GetColor(CColors::CurrentBranch));\r
+ colRef = m_Colors.GetColor(CColors::CurrentBranch);\r
else\r
- brush = ::CreateSolidBrush(m_Colors.GetColor(CColors::LocalBranch));\r
+ colRef = m_Colors.GetColor(CColors::LocalBranch);\r
\r
}else if(GetShortName(str,shortname,_T("refs/remotes/")))\r
{\r
- brush = ::CreateSolidBrush(m_Colors.GetColor(CColors::RemoteBranch));\r
+ colRef = m_Colors.GetColor(CColors::RemoteBranch);\r
}\r
else if(GetShortName(str,shortname,_T("refs/tags/")))\r
{\r
- brush = ::CreateSolidBrush(m_Colors.GetColor(CColors::Tag));\r
+ colRef = m_Colors.GetColor(CColors::Tag);\r
}\r
else if(GetShortName(str,shortname,_T("refs/stash")))\r
{\r
- brush = ::CreateSolidBrush(m_Colors.GetColor(CColors::Stash));\r
+ colRef = m_Colors.GetColor(CColors::Stash);\r
shortname=_T("stash");\r
}\r
+ brush = ::CreateSolidBrush(colRef);\r
\r
\r
if(!shortname.IsEmpty())\r
GetTextExtentPoint32(hdc, shortname,shortname.GetLength(),&size);\r
\r
rt.SetRect(rt.left,rt.top,rt.left+size.cx,rt.bottom);\r
- rt.right+=4;\r
+ rt.right+=8;\r
+\r
+ //Fill interior of ref label\r
::FillRect(hdc, &rt, brush);\r
+\r
+ //Draw edge of label\r
+ CDC W_Dc;\r
+ W_Dc.Attach(hdc);\r
+\r
+ CRect rectEdge = rt;\r
+\r
+ W_Dc.Draw3dRect(rectEdge, m_Colors.Lighten(colRef,100), m_Colors.Darken(colRef,100));\r
+ rectEdge.DeflateRect(1,1);\r
+ W_Dc.Draw3dRect(rectEdge, m_Colors.Lighten(colRef,50), m_Colors.Darken(colRef,50));\r
+\r
+ W_Dc.Detach();\r
+\r
+ //Draw text inside label\r
if (m_Theme.IsAppThemed() && m_bVista)\r
{\r
int txtState = LISS_NORMAL;\r
}\r
\r
\r
- ::MoveToEx(hdc,rt.left,rt.top,NULL);\r
- ::LineTo(hdc,rt.right,rt.top);\r
- ::LineTo(hdc,rt.right,rt.bottom);\r
- ::LineTo(hdc,rt.left,rt.bottom);\r
- ::LineTo(hdc,rt.left,rt.top);\r
+ //::MoveToEx(hdc,rt.left,rt.top,NULL);\r
+ //::LineTo(hdc,rt.right,rt.top);\r
+ //::LineTo(hdc,rt.right,rt.bottom);\r
+ //::LineTo(hdc,rt.left,rt.bottom);\r
+ //::LineTo(hdc,rt.left,rt.top);\r
+\r
\r
- rt.left=rt.right+3;\r
+ rt.left=rt.right+1;\r
}\r
if(brush)\r
::DeleteObject(brush);\r