OSDN Git Service

Pull/Fetch Dlg: Used git config to determine default remote and remote branch. Also...
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Colors.cpp
index e8b7000..ecc3e87 100644 (file)
 #include "StdAfx.h"\r
 #include ".\colors.h"\r
 \r
-CColors::CColors(void) : m_regAdded(_T("Software\\TortoiseGit\\Colors\\Added"), RGB(100, 0, 100))\r
-       , m_regCmd(_T("Software\\TortoiseGit\\Colors\\Cmd"), ::GetSysColor(COLOR_GRAYTEXT))\r
-       , m_regConflict(_T("Software\\TortoiseGit\\Colors\\Conflict"), RGB(255, 0, 0))\r
-       , m_regModified(_T("Software\\TortoiseGit\\Colors\\Modified"), RGB(0, 50, 160))\r
-       , m_regMerged(_T("Software\\TortoiseGit\\Colors\\Merged"), RGB(0, 100, 0))\r
-       , m_regDeleted(_T("Software\\TortoiseGit\\Colors\\Deleted"), RGB(100, 0, 0))\r
-       , m_regLastCommit(_T("Software\\TortoiseGit\\Colors\\LastCommit"), RGB(100, 100, 100))\r
-       , m_regDeletedNode(_T("Software\\TortoiseGit\\Colors\\DeletedNode"), RGB(255, 0, 0))\r
-       , m_regAddedNode(_T("Software\\TortoiseGit\\Colors\\AddedNode"), RGB(0, 255, 0))\r
-       , m_regReplacedNode(_T("Software\\TortoiseGit\\Colors\\ReplacedNode"), RGB(0, 255, 0))\r
-       , m_regRenamedNode(_T("Software\\TortoiseGit\\Colors\\RenamedNode"), RGB(0, 0, 255))\r
-       , m_regLastCommitNode(_T("Software\\TortoiseGit\\Colors\\LastCommitNode"), RGB(200, 200, 200))\r
-       , m_regPropertyChanged(_T("Software\\TortoiseGit\\Colors\\PropertyChanged"), RGB(0, 50, 160))\r
+CColors::COLOR_DATA CColors::m_ColorArray[]=\r
+{\r
+       {Cmd,_T("Software\\TortoiseGit\\Colors\\Cmd"),RGB(100, 100, 100)},\r
+       {Conflict,_T("Software\\TortoiseGit\\Colors\\Conflict"), RGB(255, 0, 0)},\r
+       {Modified,_T("Software\\TortoiseGit\\Colors\\Modified"), RGB(0, 50, 160)},\r
+       {Merged,_T("Software\\TortoiseGit\\Colors\\Merged"), RGB(0, 100, 0)},\r
+       {Deleted,_T("Software\\TortoiseGit\\Colors\\Deleted"), RGB(100, 0, 0)},\r
+       {Added,_T("Software\\TortoiseGit\\Colors\\Added"), RGB(100, 0, 100)},\r
+       {LastCommit,_T("Software\\TortoiseGit\\Colors\\LastCommit"), RGB(100, 100, 100)},\r
+       {DeletedNode,_T("Software\\TortoiseGit\\Colors\\DeletedNode"), RGB(255, 0, 0)},\r
+       {AddedNode,_T("Software\\TortoiseGit\\Colors\\AddedNode"), RGB(0, 255, 0)},\r
+       {ReplacedNode,_T("Software\\TortoiseGit\\Colors\\ReplacedNode"), RGB(0, 255, 0)},\r
+       {RenamedNode,_T("Software\\TortoiseGit\\Colors\\RenamedNode"), RGB(0, 0, 255)},\r
+       {LastCommitNode,_T("Software\\TortoiseGit\\Colors\\LastCommitNode"), RGB(200, 200, 200)},\r
+       {PropertyChanged,_T("Software\\TortoiseGit\\Colors\\PropertyChanged"), RGB(0, 50, 160)},\r
+       {CurrentBranch,_T("Software\\TortoiseGit\\Colors\\CurrentBranch"), RGB(200, 0, 0)},\r
+       {LocalBranch,_T("Software\\TortoiseGit\\Colors\\LocalBranch"), RGB(0, 195, 0)},\r
+       {RemoteBranch,_T("Software\\TortoiseGit\\Colors\\RemoteBranch"), RGB(255, 221, 170)},\r
+       {Tag,_T("Software\\TortoiseGit\\Colors\\Tag"), RGB(255, 255, 0)},\r
+       {Stash,_T("Software\\TortoiseGit\\Colors\\Stash"), RGB(128, 128, 128)},\r
+       {BranchLine1,_T("Software\\TortoiseGit\\Colors\\BranchLine1"), RGB(0,0,0)},\r
+       {BranchLine2,_T("Software\\TortoiseGit\\Colors\\BranchLine2"), RGB(0xFF,0,0)},\r
+       {BranchLine3,_T("Software\\TortoiseGit\\Colors\\BranchLine3"), RGB(0,0xFF,0)},\r
+       {BranchLine4,_T("Software\\TortoiseGit\\Colors\\BranchLine4"), RGB(0,0,0xFF)},\r
+       {BranchLine5,_T("Software\\TortoiseGit\\Colors\\BranchLine5"), RGB(128,128,128)},\r
+       {BranchLine6,_T("Software\\TortoiseGit\\Colors\\BranchLine6"), RGB(128,128,0)},\r
+       {BranchLine7,_T("Software\\TortoiseGit\\Colors\\BranchLine7"), RGB(0,128,128)},\r
+       {BranchLine8,_T("Software\\TortoiseGit\\Colors\\BranchLine8"), RGB(128,0,128)},\r
+       {COLOR_END,_T("Software\\TortoiseGit\\Colors\\END"),RGB(0,0,0)},\r
+\r
+};\r
+\r
+CColors::CColors(void) \r
 {\r
 }\r
 \r
@@ -41,105 +61,69 @@ CColors::~CColors(void)
 \r
 COLORREF CColors::GetColor(Colors col, bool bDefault /*=true*/)\r
 {\r
-       switch (col)\r
+       int i=0;\r
+       while(1)\r
        {\r
-       case Cmd:\r
-               if (bDefault)\r
-                       return ::GetSysColor(COLOR_GRAYTEXT);\r
-               return (COLORREF)(DWORD)m_regCmd;\r
-       case Conflict:\r
-               if (bDefault)\r
-                       return RGB(255, 0, 0);\r
-               return (COLORREF)(DWORD)m_regConflict;\r
-       case Modified:\r
-               if (bDefault)\r
-                       return RGB(0, 50, 160);\r
-               return (COLORREF)(DWORD)m_regModified;\r
-       case Merged:\r
-               if (bDefault)\r
-                       return RGB(0, 100, 0);\r
-               return (COLORREF)(DWORD)m_regMerged;\r
-       case Deleted:\r
-               if (bDefault)\r
-                       return RGB(100, 0, 0);\r
-               return (COLORREF)(DWORD)m_regDeleted;\r
-       case Added:\r
-               if (bDefault)\r
-                       return RGB(100, 0, 100);\r
-               return (COLORREF)(DWORD)m_regAdded;\r
-       case LastCommit:\r
-               if (bDefault)\r
-                       return RGB(100, 100, 100);\r
-               return (COLORREF)(DWORD)m_regAdded;\r
-       case DeletedNode:\r
-               if (bDefault)\r
-                       return RGB(255, 0, 0);\r
-               return (COLORREF)(DWORD)m_regDeletedNode;\r
-       case AddedNode:\r
-               if (bDefault)\r
-                       return RGB(0, 255, 0);\r
-               return (COLORREF)(DWORD)m_regAddedNode;\r
-       case ReplacedNode:\r
-               if (bDefault)\r
-                       return RGB(0, 255, 0);\r
-               return (COLORREF)(DWORD)m_regReplacedNode;\r
-       case RenamedNode:\r
-               if (bDefault)\r
-                       return RGB(0, 0, 255);\r
-               return (COLORREF)(DWORD)m_regRenamedNode;\r
-       case LastCommitNode:\r
-               if (bDefault)\r
-                       return RGB(200, 200, 200);\r
-               return (COLORREF)(DWORD)m_regLastCommitNode;\r
-       case PropertyChanged:\r
-               if (bDefault)\r
-                       return RGB(0, 50, 160);\r
-               return (COLORREF)(DWORD)m_regPropertyChanged;\r
+               if(m_ColorArray[i].Color == COLOR_END)\r
+                       return RGB(0,0,0);\r
+\r
+               if(m_ColorArray[i].Color == col)\r
+               {\r
+                       if(bDefault)\r
+                               return m_ColorArray[i].Default;\r
+                       else\r
+                       {\r
+                               CRegDWORD reg(m_ColorArray[i].RegKey,m_ColorArray[i].Default);\r
+                               return (COLORREF)(DWORD) reg;\r
+                       }\r
+               }\r
+\r
+               i++;\r
        }\r
-       return RGB(0,0,0);\r
 }\r
 \r
 void CColors::SetColor(Colors col, COLORREF cr)\r
 {\r
-       switch (col)\r
+       int i=0;\r
+       while(1)\r
        {\r
-       case Cmd:\r
-               m_regCmd = cr;\r
-               break;\r
-       case Conflict:\r
-               m_regConflict = cr;\r
-               break;\r
-       case Modified:\r
-               m_regModified = cr;\r
-               break;\r
-       case Merged:\r
-               m_regMerged = cr;\r
-               break;\r
-       case Deleted:\r
-               m_regDeleted = cr;\r
-               break;\r
-       case Added:\r
-               m_regAdded = cr;\r
-               break;\r
-       case DeletedNode:\r
-               m_regDeletedNode = cr;\r
-               break;\r
-       case AddedNode:\r
-               m_regAddedNode = cr;\r
-               break;\r
-       case ReplacedNode:\r
-               m_regReplacedNode = cr;\r
-               break;\r
-       case RenamedNode:\r
-               m_regRenamedNode = cr;\r
-               break;\r
-       case LastCommit:\r
-               m_regLastCommit = cr;\r
-               break;\r
-       case PropertyChanged:\r
-               m_regPropertyChanged = cr;\r
-               break;\r
-       default:\r
-               ATLASSERT(false);\r
+               if(m_ColorArray[i].Color == COLOR_END)\r
+                       break;\r
+\r
+               if(m_ColorArray[i].Color == col)\r
+               {\r
+                       CRegDWORD reg(m_ColorArray[i].RegKey,m_ColorArray[i].Default);\r
+                       reg=cr;\r
+                       \r
+               }\r
+               i++;\r
        }\r
-}
\ No newline at end of file
+}\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