OSDN Git Service

Add /self-compare command line option
[winmerge-jp/winmerge-jp.git] / Src / OptionsDiffColors.cpp
1 /** 
2  * @file  OptionsDiffColors.cpp
3  *
4  * @brief Implementation for OptionsDiffColors class.
5  */
6 #include "pch.h"
7 #include "OptionsDiffColors.h"
8 #include "OptionsDef.h"
9 #include "OptionsMgr.h"
10 #include <any>
11
12 namespace Options { namespace DiffColors {
13
14 const struct Map
15 {
16         const String& name;
17         const int offset;
18         const std::any defValue;
19 } map[] =
20 {
21         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
22         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
23         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
24         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
25         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
26         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
27         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
28         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
29         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
30         {OPT_CLR_DIFF, offsetof(COLORSETTINGS, clrDiff), RGB(239,203,5)},
31 };
32
33 void SetDefaults(COptionsMgr *pOptionsMgr)
34 {
35         pOptionsMgr->InitOption(OPT_CLR_DIFF, (int)RGB(239,203,5));
36         pOptionsMgr->InitOption(OPT_CLR_DIFF_DELETED, (int)RGB(192, 192, 192));
37         pOptionsMgr->InitOption(OPT_CLR_DIFF_TEXT, (int)RGB(0,0,0));
38         pOptionsMgr->InitOption(OPT_CLR_SELECTED_DIFF, (int)RGB(239,119,116));
39         pOptionsMgr->InitOption(OPT_CLR_SELECTED_DIFF_DELETED, (int)RGB(240, 192, 192));
40         pOptionsMgr->InitOption(OPT_CLR_SELECTED_DIFF_TEXT, (int)RGB(0,0,0));
41         pOptionsMgr->InitOption(OPT_CLR_TRIVIAL_DIFF, (int)RGB(251,242,191));
42         pOptionsMgr->InitOption(OPT_CLR_TRIVIAL_DIFF_DELETED, (int)RGB(233,233,233));
43         pOptionsMgr->InitOption(OPT_CLR_TRIVIAL_DIFF_TEXT, (int)RGB(0,0,0));
44         pOptionsMgr->InitOption(OPT_CLR_MOVEDBLOCK, (int)RGB(228,155,82));
45         pOptionsMgr->InitOption(OPT_CLR_MOVEDBLOCK_DELETED, (int)RGB(192, 192, 192));
46         pOptionsMgr->InitOption(OPT_CLR_MOVEDBLOCK_TEXT, (int)RGB(0,0,0));
47         pOptionsMgr->InitOption(OPT_CLR_SELECTED_MOVEDBLOCK, (int)RGB(248,112,78));
48         pOptionsMgr->InitOption(OPT_CLR_SELECTED_MOVEDBLOCK_DELETED, (int)RGB(252, 181, 163));
49         pOptionsMgr->InitOption(OPT_CLR_SELECTED_MOVEDBLOCK_TEXT, (int)RGB(0,0,0));
50         pOptionsMgr->InitOption(OPT_CLR_SNP, (int)RGB(251,250,223));
51         pOptionsMgr->InitOption(OPT_CLR_SNP_DELETED, (int)RGB(233, 233, 233));
52         pOptionsMgr->InitOption(OPT_CLR_SNP_TEXT, (int)RGB(0,0,0));
53         pOptionsMgr->InitOption(OPT_CLR_SELECTED_SNP, (int)RGB(239,183,180));
54         pOptionsMgr->InitOption(OPT_CLR_SELECTED_SNP_DELETED, (int)RGB(240, 224, 224));
55         pOptionsMgr->InitOption(OPT_CLR_SELECTED_SNP_TEXT, (int)RGB(0,0,0));
56         pOptionsMgr->InitOption(OPT_CLR_WORDDIFF, (int)RGB(241,226,173));
57         pOptionsMgr->InitOption(OPT_CLR_WORDDIFF_DELETED, (int)RGB(255,170,130));
58         pOptionsMgr->InitOption(OPT_CLR_WORDDIFF_TEXT, (int)RGB(0,0,0));
59         pOptionsMgr->InitOption(OPT_CLR_SELECTED_WORDDIFF, (int)RGB(255,160,160));
60         pOptionsMgr->InitOption(OPT_CLR_SELECTED_WORDDIFF_DELETED, (int)RGB(200,129,108));
61         pOptionsMgr->InitOption(OPT_CLR_SELECTED_WORDDIFF_TEXT, (int)RGB(0,0,0));
62         pOptionsMgr->InitOption(OPT_CLR_DEFAULT_TEXT_COLORING, true);
63 }
64
65 void Load(const COptionsMgr *pOptionsMgr, COLORSETTINGS& colors)
66 {
67         colors.clrDiff = pOptionsMgr->GetInt(OPT_CLR_DIFF);
68         colors.clrSelDiff = pOptionsMgr->GetInt(OPT_CLR_SELECTED_DIFF);
69         colors.clrDiffDeleted = pOptionsMgr->GetInt(OPT_CLR_DIFF_DELETED);
70         colors.clrSelDiffDeleted = pOptionsMgr->GetInt(OPT_CLR_SELECTED_DIFF_DELETED);
71         colors.clrDiffText = pOptionsMgr->GetInt(OPT_CLR_DIFF_TEXT);
72         colors.clrSelDiffText = pOptionsMgr->GetInt(OPT_CLR_SELECTED_DIFF_TEXT);
73         colors.clrTrivial = pOptionsMgr->GetInt(OPT_CLR_TRIVIAL_DIFF);
74         colors.clrTrivialDeleted = pOptionsMgr->GetInt(OPT_CLR_TRIVIAL_DIFF_DELETED);
75         colors.clrTrivialText = pOptionsMgr->GetInt(OPT_CLR_TRIVIAL_DIFF_TEXT);
76         colors.clrMoved = pOptionsMgr->GetInt(OPT_CLR_MOVEDBLOCK);
77         colors.clrMovedDeleted = pOptionsMgr->GetInt(OPT_CLR_MOVEDBLOCK_DELETED);
78         colors.clrMovedText = pOptionsMgr->GetInt(OPT_CLR_MOVEDBLOCK_TEXT);
79         colors.clrSelMoved = pOptionsMgr->GetInt(OPT_CLR_SELECTED_MOVEDBLOCK);
80         colors.clrSelMovedDeleted = pOptionsMgr->GetInt(OPT_CLR_SELECTED_MOVEDBLOCK_DELETED);
81         colors.clrSelMovedText = pOptionsMgr->GetInt(OPT_CLR_SELECTED_MOVEDBLOCK_TEXT);
82         colors.clrSNP = pOptionsMgr->GetInt(OPT_CLR_SNP);
83         colors.clrSNPDeleted = pOptionsMgr->GetInt(OPT_CLR_SNP_DELETED);
84         colors.clrSNPText = pOptionsMgr->GetInt(OPT_CLR_SNP_TEXT);
85         colors.clrSelSNP = pOptionsMgr->GetInt(OPT_CLR_SELECTED_SNP);
86         colors.clrSelSNPDeleted = pOptionsMgr->GetInt(OPT_CLR_SELECTED_SNP_DELETED);
87         colors.clrSelSNPText = pOptionsMgr->GetInt(OPT_CLR_SELECTED_SNP_TEXT);
88         colors.clrWordDiff = pOptionsMgr->GetInt(OPT_CLR_WORDDIFF);
89         colors.clrWordDiffDeleted = pOptionsMgr->GetInt(OPT_CLR_WORDDIFF_DELETED);
90         colors.clrSelWordDiff = pOptionsMgr->GetInt(OPT_CLR_SELECTED_WORDDIFF);
91         colors.clrSelWordDiffDeleted = pOptionsMgr->GetInt(OPT_CLR_SELECTED_WORDDIFF_DELETED);
92         colors.clrWordDiffText = pOptionsMgr->GetInt(OPT_CLR_WORDDIFF_TEXT);
93         colors.clrSelWordDiffText = pOptionsMgr->GetInt(OPT_CLR_SELECTED_WORDDIFF_TEXT);
94 }
95
96 void Save(COptionsMgr *pOptionsMgr, const COLORSETTINGS& colors)
97 {
98         pOptionsMgr->SaveOption(OPT_CLR_DIFF, (int)colors.clrDiff);
99         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF, (int)colors.clrSelDiff);
100         pOptionsMgr->SaveOption(OPT_CLR_DIFF_DELETED, (int)colors.clrDiffDeleted);
101         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF_DELETED, (int)colors.clrSelDiffDeleted);
102         pOptionsMgr->SaveOption(OPT_CLR_DIFF_TEXT, (int)colors.clrDiffText);
103         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF_TEXT, (int)colors.clrSelDiffText);
104         pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF, (int)colors.clrTrivial);
105         pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF_DELETED, (int)colors.clrTrivialDeleted);
106         pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF_TEXT, (int)colors.clrTrivialText);
107         pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK, (int)colors.clrMoved);
108         pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK_DELETED, (int)colors.clrMovedDeleted);
109         pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK_TEXT, (int)colors.clrMovedText);
110         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK, (int)colors.clrSelMoved);
111         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK_DELETED, (int)colors.clrSelMovedDeleted);
112         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK_TEXT, (int)colors.clrSelMovedText);
113         pOptionsMgr->SaveOption(OPT_CLR_SNP, (int)colors.clrSNP);
114         pOptionsMgr->SaveOption(OPT_CLR_SNP_DELETED, (int)colors.clrSNPDeleted);
115         pOptionsMgr->SaveOption(OPT_CLR_SNP_TEXT, (int)colors.clrSNPText);
116         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_SNP, (int)colors.clrSelSNP);
117         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_SNP_DELETED, (int)colors.clrSelSNPDeleted);
118         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_SNP_TEXT, (int)colors.clrSelSNPText);
119         pOptionsMgr->SaveOption(OPT_CLR_WORDDIFF, (int)colors.clrWordDiff);
120         pOptionsMgr->SaveOption(OPT_CLR_WORDDIFF_DELETED, (int)colors.clrWordDiffDeleted);
121         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_WORDDIFF, (int)colors.clrSelWordDiff);
122         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_WORDDIFF_DELETED, (int)colors.clrSelWordDiffDeleted);
123         pOptionsMgr->SaveOption(OPT_CLR_WORDDIFF_TEXT, (int)colors.clrWordDiffText);
124         pOptionsMgr->SaveOption(OPT_CLR_SELECTED_WORDDIFF_TEXT, (int)colors.clrSelWordDiffText);
125 }
126
127 }}