1
// TortoiseGitMerge - a Diff/Patch program
3 // Copyright (C) 2006-2008, 2012-2014, 2017, 2020 - TortoiseSVN
4 // Copyright (C) 2016, 2020, 2023 - TortoiseGit
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software Foundation,
18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 #include "TortoiseMerge.h"
22 #include "SetColorPage.h"
23 #include "DiffColors.h"
26 // CSetColorPage dialog
28 IMPLEMENT_DYNAMIC(CSetColorPage
, CPropertyPage
)
29 CSetColorPage::CSetColorPage()
30 : CPropertyPage(CSetColorPage::IDD
)
31 , m_regInlineAdded(L
"Software\\TortoiseGitMerge\\Colors\\InlineAdded", INLINEADDED_COLOR
)
32 , m_regInlineRemoved(L
"Software\\TortoiseGitMerge\\Colors\\InlineRemoved", INLINEREMOVED_COLOR
)
33 , m_regModifiedBackground(L
"Software\\TortoiseGitMerge\\Colors\\ColorModifiedB", MODIFIED_COLOR
)
34 , m_regDarkInlineAdded(L
"Software\\TortoiseGitMerge\\Colors\\DarkInlineAdded", INLINEADDED_DARK_COLOR
)
35 , m_regDarkInlineRemoved(L
"Software\\TortoiseGitMerge\\Colors\\DarkInlineRemoved", INLINEREMOVED_DARK_COLOR
)
36 , m_regDarkModifiedBackground(L
"Software\\TortoiseGitMerge\\Colors\\DarkColorModifiedB", MODIFIED_DARK_COLOR
)
37 , m_regUseDarkMode(L
"Software\\TortoiseGitMerge\\DarkTheme", FALSE
)
38 , m_IsDarkMode(CTheme::Instance().IsDarkTheme())
42 CSetColorPage::~CSetColorPage()
44 CTheme::Instance().RemoveRegisteredCallback(m_themeCallbackId
);
48 static COLORREF
GetColorFromButton(const CMFCColorButton
& button
)
50 COLORREF col
= button
.GetColor();
52 return button
.GetAutomaticColor();
56 void CSetColorPage::SaveData()
61 COLORREF cFg
= GetColorFromButton(m_cFgNormal
);
62 COLORREF cBk
= GetColorFromButton(m_cBkNormal
);
63 CDiffColors::GetInstance().SetColors(DiffState::Normal
, m_IsDarkMode
, cBk
, cFg
);
64 CDiffColors::GetInstance().SetColors(DiffState::Unknown
, m_IsDarkMode
, cBk
, cFg
);
66 cFg
= GetColorFromButton(m_cFgRemoved
);
67 cBk
= GetColorFromButton(m_cBkRemoved
);
68 CDiffColors::GetInstance().SetColors(DiffState::Removed
, m_IsDarkMode
, cBk
, cFg
);
69 CDiffColors::GetInstance().SetColors(DiffState::IdenticalRemoved
, m_IsDarkMode
, cBk
, cFg
);
70 CDiffColors::GetInstance().SetColors(DiffState::TheirsRemoved
, m_IsDarkMode
, cBk
, cFg
);
71 CDiffColors::GetInstance().SetColors(DiffState::YoursRemoved
, m_IsDarkMode
, cBk
, cFg
);
73 cFg
= GetColorFromButton(m_cFgAdded
);
74 cBk
= GetColorFromButton(m_cBkAdded
);
75 CDiffColors::GetInstance().SetColors(DiffState::Added
, m_IsDarkMode
, cBk
, cFg
);
76 CDiffColors::GetInstance().SetColors(DiffState::IdenticalAdded
, m_IsDarkMode
, cBk
, cFg
);
77 CDiffColors::GetInstance().SetColors(DiffState::TheirsAdded
, m_IsDarkMode
, cBk
, cFg
);
78 CDiffColors::GetInstance().SetColors(DiffState::YoursAdded
, m_IsDarkMode
, cBk
, cFg
);
82 if (static_cast<DWORD
>(m_regDarkInlineAdded
) != m_cBkInlineAdded
.GetColor())
83 m_bReloadNeeded
= true;
84 m_regDarkInlineAdded
= GetColorFromButton(m_cBkInlineAdded
);
88 if (static_cast<DWORD
>(m_regInlineAdded
) != m_cBkInlineAdded
.GetColor())
89 m_bReloadNeeded
= true;
90 m_regInlineAdded
= GetColorFromButton(m_cBkInlineAdded
);
94 if (static_cast<DWORD
>(m_regDarkInlineRemoved
) != m_cBkInlineRemoved
.GetColor())
95 m_bReloadNeeded
= true;
96 m_regDarkInlineRemoved
= GetColorFromButton(m_cBkInlineRemoved
);
100 if (static_cast<DWORD
>(m_regInlineRemoved
) != m_cBkInlineRemoved
.GetColor())
101 m_bReloadNeeded
= true;
102 m_regInlineRemoved
= GetColorFromButton(m_cBkInlineRemoved
);
106 if (static_cast<DWORD
>(m_regDarkModifiedBackground
) != m_cBkModified
.GetColor())
107 m_bReloadNeeded
= true;
108 m_regDarkModifiedBackground
= GetColorFromButton(m_cBkModified
);
112 if (static_cast<DWORD
>(m_regModifiedBackground
) != m_cBkModified
.GetColor())
113 m_bReloadNeeded
= true;
114 m_regModifiedBackground
= GetColorFromButton(m_cBkModified
);
116 CDiffColors::GetInstance().SetColors(DiffState::Edited
, m_IsDarkMode
, m_IsDarkMode
? static_cast<DWORD
>(m_regDarkModifiedBackground
) : static_cast<DWORD
>(m_regModifiedBackground
), cFg
);
118 cFg
= GetColorFromButton(m_cFgEmpty
);
119 cBk
= GetColorFromButton(m_cBkEmpty
);
120 CDiffColors::GetInstance().SetColors(DiffState::Empty
, m_IsDarkMode
, cBk
, cFg
);
122 COLORREF adjustedcolor
= cBk
;
123 cFg
= GetColorFromButton(m_cFgConflict
);
124 cBk
= GetColorFromButton(m_cBkConflict
);
125 CDiffColors::GetInstance().SetColors(DiffState::Conflicted
, m_IsDarkMode
, cBk
, cFg
);
126 CDiffColors::GetInstance().SetColors(DiffState::Conflicted_Ignored
, m_IsDarkMode
, cBk
, cFg
);
127 CDiffColors::GetInstance().SetColors(DiffState::ConflictAdded
, m_IsDarkMode
, cBk
, cFg
);
128 CDiffColors::GetInstance().SetColors(DiffState::ConflictEmpty
, m_IsDarkMode
, adjustedcolor
, cFg
);
130 cFg
= GetColorFromButton(m_cFgConflictResolved
);
131 cBk
= GetColorFromButton(m_cBkConflictResolved
);
132 CDiffColors::GetInstance().SetColors(DiffState::ConflictResolved
, m_IsDarkMode
, cBk
, cFg
);
134 cFg
= GetColorFromButton(m_cFgWhitespaces
);
135 CRegDWORD
regWhitespaceColor(L
"Software\\TortoiseGitMerge\\Colors\\Whitespace", GetSysColor(COLOR_3DSHADOW
));
136 regWhitespaceColor
= cFg
;
138 cBk
= GetColorFromButton(m_cBkFiltered
);
139 CDiffColors::GetInstance().SetColors(DiffState::FilteredDiff
, m_IsDarkMode
, cBk
, m_IsDarkMode
? DIFFSTATE_NORMAL_DEFAULT_DARK_FG
: DIFFSTATE_NORMAL_DEFAULT_FG
);
141 m_IsDarkMode
= m_chkUseDarkMode
.GetCheck() == BST_CHECKED
;
142 m_regUseDarkMode
= m_IsDarkMode
? 1 : 0;
145 void CSetColorPage::DoDataExchange(CDataExchange
* pDX
)
147 CPropertyPage::DoDataExchange(pDX
);
148 DDX_Control(pDX
, IDC_BKNORMAL
, m_cBkNormal
);
149 DDX_Control(pDX
, IDC_BKREMOVED
, m_cBkRemoved
);
150 DDX_Control(pDX
, IDC_BKADDED
, m_cBkAdded
);
151 DDX_Control(pDX
, IDC_BKWHITESPACES
, m_cBkInlineAdded
);
152 DDX_Control(pDX
, IDC_BKWHITESPACEDIFF
, m_cBkInlineRemoved
);
153 DDX_Control(pDX
, IDC_BKMODIFIED
, m_cBkModified
);
154 DDX_Control(pDX
, IDC_BKEMPTY
, m_cBkEmpty
);
155 DDX_Control(pDX
, IDC_BKCONFLICTED
, m_cBkConflict
);
156 DDX_Control(pDX
, IDC_BKCONFLICTRESOLVED
, m_cBkConflictResolved
);
157 DDX_Control(pDX
, IDC_FGWHITESPACES
, m_cFgWhitespaces
);
158 DDX_Control(pDX
, IDC_FGNORMAL
, m_cFgNormal
);
159 DDX_Control(pDX
, IDC_FGREMOVED
, m_cFgRemoved
);
160 DDX_Control(pDX
, IDC_FGADDED
, m_cFgAdded
);
161 DDX_Control(pDX
, IDC_FGEMPTY
, m_cFgEmpty
);
162 DDX_Control(pDX
, IDC_FGCONFLICTED
, m_cFgConflict
);
163 DDX_Control(pDX
, IDC_FGCONFLICTRESOLVED
, m_cFgConflictResolved
);
164 DDX_Control(pDX
, IDC_BKFILTERED
, m_cBkFiltered
);
165 DDX_Control(pDX
, IDC_DARKMODE
, m_chkUseDarkMode
);
169 BEGIN_MESSAGE_MAP(CSetColorPage
, CPropertyPage
)
170 ON_BN_CLICKED(IDC_BKNORMAL
, &CSetColorPage::OnBnClickedColor
)
171 ON_BN_CLICKED(IDC_BKREMOVED
, &CSetColorPage::OnBnClickedColor
)
172 ON_BN_CLICKED(IDC_BKADDED
, &CSetColorPage::OnBnClickedColor
)
173 ON_BN_CLICKED(IDC_BKWHITESPACES
, &CSetColorPage::OnBnClickedColor
)
174 ON_BN_CLICKED(IDC_BKWHITESPACEDIFF
, &CSetColorPage::OnBnClickedColor
)
175 ON_BN_CLICKED(IDC_BKMODIFIED
, &CSetColorPage::OnBnClickedColor
)
176 ON_BN_CLICKED(IDC_BKEMPTY
, &CSetColorPage::OnBnClickedColor
)
177 ON_BN_CLICKED(IDC_BKCONFLICTED
, &CSetColorPage::OnBnClickedColor
)
178 ON_BN_CLICKED(IDC_BKCONFLICTRESOLVED
, &CSetColorPage::OnBnClickedColor
)
179 ON_BN_CLICKED(IDC_FGNORMAL
, &CSetColorPage::OnBnClickedColor
)
180 ON_BN_CLICKED(IDC_FGREMOVED
, &CSetColorPage::OnBnClickedColor
)
181 ON_BN_CLICKED(IDC_FGADDED
, &CSetColorPage::OnBnClickedColor
)
182 ON_BN_CLICKED(IDC_FGEMPTY
, &CSetColorPage::OnBnClickedColor
)
183 ON_BN_CLICKED(IDC_FGCONFLICTED
, &CSetColorPage::OnBnClickedColor
)
184 ON_BN_CLICKED(IDC_FGCONFLICTRESOLVED
, &CSetColorPage::OnBnClickedColor
)
185 ON_BN_CLICKED(IDC_FGWHITESPACES
, &CSetColorPage::OnBnClickedColor
)
186 ON_BN_CLICKED(IDC_BKFILTERED
, &CSetColorPage::OnBnClickedColor
)
187 ON_BN_CLICKED(IDC_RESTORE
, &CSetColorPage::OnBnClickedRestore
)
188 ON_BN_CLICKED(IDC_DARKMODE
, &CSetColorPage::OnBnClickedDarkmode
)
191 // CSetColorPage message handlers
193 BOOL
CSetColorPage::OnInitDialog()
195 CPropertyPage::OnInitDialog();
197 m_chkUseDarkMode
.EnableWindow(CTheme::Instance().IsDarkModeAllowed());
198 m_chkUseDarkMode
.SetCheck((static_cast<DWORD
>(m_regUseDarkMode
) != 0 && CTheme::Instance().IsDarkModeAllowed()) ? BST_CHECKED
: BST_UNCHECKED
);
199 m_IsDarkMode
= m_chkUseDarkMode
.GetCheck() == BST_CHECKED
;
203 m_themeCallbackId
= CTheme::Instance().RegisterThemeChangeCallback([this]() { CTheme::Instance().SetThemeForDialog(GetSafeHwnd(), CTheme::Instance().IsDarkTheme()); });
205 CTheme::Instance().SetThemeForDialog(GetSafeHwnd(), CTheme::Instance().IsDarkTheme());
207 return TRUE
; // return TRUE unless you set the focus to a control
208 // EXCEPTION: OCX Property Pages should return FALSE
211 void CSetColorPage::SetupColorButtons()
216 CString sDefaultText
, sCustomText
;
217 sDefaultText
.LoadString(IDS_COLOURPICKER_DEFAULTTEXT
);
218 sCustomText
.LoadString(IDS_COLOURPICKER_CUSTOMTEXT
);
220 CDiffColors::GetInstance().GetColors(DiffState::Normal
, m_IsDarkMode
, cBk
, cFg
);
221 m_cFgNormal
.SetColor(cFg
);
222 m_cFgNormal
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_NORMAL_DEFAULT_DARK_FG
: DIFFSTATE_NORMAL_DEFAULT_FG
);
223 m_cFgNormal
.EnableOtherButton(sCustomText
);
224 m_cBkNormal
.SetColor(cBk
);
225 m_cBkNormal
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_NORMAL_DEFAULT_DARK_BG
: DIFFSTATE_NORMAL_DEFAULT_BG
);
226 m_cBkNormal
.EnableOtherButton(sCustomText
);
228 CDiffColors::GetInstance().GetColors(DiffState::Removed
, m_IsDarkMode
, cBk
, cFg
);
229 m_cFgRemoved
.SetColor(cFg
);
230 m_cFgRemoved
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_REMOVED_DEFAULT_DARK_FG
: DIFFSTATE_REMOVED_DEFAULT_FG
);
231 m_cFgRemoved
.EnableOtherButton(sCustomText
);
232 m_cBkRemoved
.SetColor(cBk
);
233 m_cBkRemoved
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_REMOVED_DEFAULT_DARK_BG
: DIFFSTATE_REMOVED_DEFAULT_BG
);
234 m_cBkRemoved
.EnableOtherButton(sCustomText
);
236 CDiffColors::GetInstance().GetColors(DiffState::Added
, m_IsDarkMode
, cBk
, cFg
);
237 m_cFgAdded
.SetColor(cFg
);
238 m_cFgAdded
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_ADDED_DEFAULT_DARK_FG
: DIFFSTATE_ADDED_DEFAULT_FG
);
239 m_cFgAdded
.EnableOtherButton(sCustomText
);
240 m_cBkAdded
.SetColor(cBk
);
241 m_cBkAdded
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_ADDED_DEFAULT_DARK_BG
: DIFFSTATE_ADDED_DEFAULT_BG
);
242 m_cBkAdded
.EnableOtherButton(sCustomText
);
244 m_cBkInlineAdded
.SetColor(m_IsDarkMode
? static_cast<DWORD
>(m_regDarkInlineAdded
) : static_cast<DWORD
>(m_regInlineAdded
));
245 m_cBkInlineAdded
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? INLINEADDED_DARK_COLOR
: INLINEADDED_COLOR
);
246 m_cBkInlineAdded
.EnableOtherButton(sCustomText
);
248 m_cBkInlineRemoved
.SetColor(m_IsDarkMode
? static_cast<DWORD
>(m_regDarkInlineRemoved
) : static_cast<DWORD
>(m_regInlineRemoved
));
249 m_cBkInlineRemoved
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? INLINEREMOVED_DARK_COLOR
: INLINEREMOVED_COLOR
);
250 m_cBkInlineRemoved
.EnableOtherButton(sCustomText
);
252 m_cBkModified
.SetColor(m_IsDarkMode
? static_cast<DWORD
>(m_regDarkModifiedBackground
) : static_cast<DWORD
>(m_regModifiedBackground
));
253 m_cBkModified
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? MODIFIED_DARK_COLOR
: MODIFIED_COLOR
);
254 m_cBkModified
.EnableOtherButton(sCustomText
);
256 CDiffColors::GetInstance().GetColors(DiffState::Empty
, m_IsDarkMode
, cBk
, cFg
);
257 m_cFgEmpty
.SetColor(cFg
);
258 m_cFgEmpty
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_EMPTY_DEFAULT_DARK_FG
: DIFFSTATE_EMPTY_DEFAULT_FG
);
259 m_cFgEmpty
.EnableOtherButton(sCustomText
);
260 m_cBkEmpty
.SetColor(cBk
);
261 m_cBkEmpty
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_EMPTY_DEFAULT_DARK_BG
: DIFFSTATE_EMPTY_DEFAULT_BG
);
262 m_cBkEmpty
.EnableOtherButton(sCustomText
);
264 CDiffColors::GetInstance().GetColors(DiffState::Conflicted
, m_IsDarkMode
, cBk
, cFg
);
265 m_cFgConflict
.SetColor(cFg
);
266 m_cFgConflict
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_CONFLICTED_DEFAULT_DARK_FG
: DIFFSTATE_CONFLICTED_DEFAULT_FG
);
267 m_cFgConflict
.EnableOtherButton(sCustomText
);
268 m_cBkConflict
.SetColor(cBk
);
269 m_cBkConflict
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_CONFLICTED_DEFAULT_DARK_BG
: DIFFSTATE_CONFLICTED_DEFAULT_BG
);
270 m_cBkConflict
.EnableOtherButton(sCustomText
);
272 CDiffColors::GetInstance().GetColors(DiffState::ConflictResolved
, m_IsDarkMode
, cBk
, cFg
);
273 m_cFgConflictResolved
.SetColor(cFg
);
274 m_cFgConflictResolved
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_CONFLICTRESOLVED_DEFAULT_DARK_FG
: DIFFSTATE_CONFLICTRESOLVED_DEFAULT_FG
);
275 m_cFgConflictResolved
.EnableOtherButton(sCustomText
);
276 m_cBkConflictResolved
.SetColor(cBk
);
277 m_cBkConflictResolved
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_CONFLICTRESOLVED_DEFAULT_DARK_BG
: DIFFSTATE_CONFLICTRESOLVED_DEFAULT_BG
);
278 m_cBkConflictResolved
.EnableOtherButton(sCustomText
);
280 CRegDWORD
regWhitespaceColor(L
"Software\\TortoiseGitMerge\\Colors\\Whitespace", GetSysColor(COLOR_3DSHADOW
));
281 m_cFgWhitespaces
.SetColor(regWhitespaceColor
);
282 m_cFgWhitespaces
.EnableAutomaticButton(sDefaultText
, GetSysColor(COLOR_3DSHADOW
));
283 m_cFgWhitespaces
.EnableOtherButton(sCustomText
);
285 CDiffColors::GetInstance().GetColors(DiffState::FilteredDiff
, m_IsDarkMode
, cBk
, cFg
);
286 m_cBkFiltered
.SetColor(cBk
);
287 m_cBkEmpty
.EnableAutomaticButton(sDefaultText
, m_IsDarkMode
? DIFFSTATE_FILTERED_DEFAULT_DARK_BG
: DIFFSTATE_FILTERED_DEFAULT_BG
);
288 m_cBkEmpty
.EnableOtherButton(sCustomText
);
291 BOOL
CSetColorPage::OnApply()
296 return CPropertyPage::OnApply();
299 void CSetColorPage::OnBnClickedColor()
304 void CSetColorPage::OnBnClickedRestore()
306 m_IsDarkMode
= m_chkUseDarkMode
.GetCheck() == BST_CHECKED
;
309 m_cBkNormal
.SetColor(DIFFSTATE_NORMAL_DEFAULT_DARK_BG
);
310 m_cBkRemoved
.SetColor(DIFFSTATE_REMOVED_DEFAULT_DARK_BG
);
311 m_cBkAdded
.SetColor(DIFFSTATE_ADDED_DEFAULT_DARK_BG
);
312 m_cBkInlineAdded
.SetColor(INLINEADDED_DARK_COLOR
);
313 m_cBkInlineRemoved
.SetColor(INLINEREMOVED_DARK_COLOR
);
314 m_cBkModified
.SetColor(MODIFIED_DARK_COLOR
);
315 m_cBkEmpty
.SetColor(DIFFSTATE_EMPTY_DEFAULT_DARK_BG
);
316 m_cBkConflict
.SetColor(DIFFSTATE_CONFLICTED_DEFAULT_DARK_BG
);
317 m_cBkConflictResolved
.SetColor(DIFFSTATE_CONFLICTRESOLVED_DEFAULT_DARK_BG
);
318 m_cFgNormal
.SetColor(DIFFSTATE_NORMAL_DEFAULT_DARK_FG
);
319 m_cFgRemoved
.SetColor(DIFFSTATE_REMOVED_DEFAULT_DARK_FG
);
320 m_cFgAdded
.SetColor(DIFFSTATE_ADDED_DEFAULT_DARK_FG
);
321 m_cFgEmpty
.SetColor(DIFFSTATE_EMPTY_DEFAULT_DARK_FG
);
322 m_cFgConflict
.SetColor(DIFFSTATE_CONFLICTED_DEFAULT_DARK_FG
);
323 m_cFgConflictResolved
.SetColor(DIFFSTATE_CONFLICTRESOLVED_DEFAULT_DARK_FG
);
324 m_cFgWhitespaces
.SetColor(GetSysColor(COLOR_3DSHADOW
));
325 m_cBkFiltered
.SetColor(DIFFSTATE_FILTERED_DEFAULT_DARK_BG
);
329 m_cBkNormal
.SetColor(DIFFSTATE_NORMAL_DEFAULT_BG
);
330 m_cBkRemoved
.SetColor(DIFFSTATE_REMOVED_DEFAULT_BG
);
331 m_cBkAdded
.SetColor(DIFFSTATE_ADDED_DEFAULT_BG
);
332 m_cBkInlineAdded
.SetColor(INLINEADDED_COLOR
);
333 m_cBkInlineRemoved
.SetColor(INLINEREMOVED_COLOR
);
334 m_cBkModified
.SetColor(MODIFIED_COLOR
);
335 m_cBkEmpty
.SetColor(DIFFSTATE_EMPTY_DEFAULT_BG
);
336 m_cBkConflict
.SetColor(DIFFSTATE_CONFLICTED_DEFAULT_BG
);
337 m_cBkConflictResolved
.SetColor(DIFFSTATE_CONFLICTRESOLVED_DEFAULT_BG
);
338 m_cFgNormal
.SetColor(DIFFSTATE_NORMAL_DEFAULT_FG
);
339 m_cFgRemoved
.SetColor(DIFFSTATE_REMOVED_DEFAULT_FG
);
340 m_cFgAdded
.SetColor(DIFFSTATE_ADDED_DEFAULT_FG
);
341 m_cFgEmpty
.SetColor(DIFFSTATE_EMPTY_DEFAULT_FG
);
342 m_cFgConflict
.SetColor(DIFFSTATE_CONFLICTED_DEFAULT_FG
);
343 m_cFgConflictResolved
.SetColor(DIFFSTATE_CONFLICTRESOLVED_DEFAULT_FG
);
344 m_cFgWhitespaces
.SetColor(GetSysColor(COLOR_3DSHADOW
));
345 m_cBkFiltered
.SetColor(DIFFSTATE_FILTERED_DEFAULT_BG
);
350 void CSetColorPage::OnBnClickedDarkmode()
352 m_IsDarkMode
= m_chkUseDarkMode
.GetCheck() == BST_CHECKED
;
353 CTheme::Instance().SetDarkTheme(m_IsDarkMode
);
355 m_bReloadNeeded
= true;