Apply backgroundcolors.patch
[TortoiseGit.git] / src / TortoiseMerge / SetColorPage.cpp
blob168b70259d0a4ff7af969bce007c7d7f44d025e7
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.
20 #include "stdafx.h"
21 #include "TortoiseMerge.h"
22 #include "SetColorPage.h"
23 #include "DiffColors.h"
24 #include "Theme.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);
45 m_bInit = FALSE;
48 static COLORREF GetColorFromButton(const CMFCColorButton& button)
50 COLORREF col = button.GetColor();
51 if (col == -1)
52 return button.GetAutomaticColor();
53 return col;
56 void CSetColorPage::SaveData()
58 if (!m_bInit)
59 return;
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);
80 if (m_IsDarkMode)
82 if (static_cast<DWORD>(m_regDarkInlineAdded) != m_cBkInlineAdded.GetColor())
83 m_bReloadNeeded = true;
84 m_regDarkInlineAdded = GetColorFromButton(m_cBkInlineAdded);
86 else
88 if (static_cast<DWORD>(m_regInlineAdded) != m_cBkInlineAdded.GetColor())
89 m_bReloadNeeded = true;
90 m_regInlineAdded = GetColorFromButton(m_cBkInlineAdded);
92 if (m_IsDarkMode)
94 if (static_cast<DWORD>(m_regDarkInlineRemoved) != m_cBkInlineRemoved.GetColor())
95 m_bReloadNeeded = true;
96 m_regDarkInlineRemoved = GetColorFromButton(m_cBkInlineRemoved);
98 else
100 if (static_cast<DWORD>(m_regInlineRemoved) != m_cBkInlineRemoved.GetColor())
101 m_bReloadNeeded = true;
102 m_regInlineRemoved = GetColorFromButton(m_cBkInlineRemoved);
104 if (m_IsDarkMode)
106 if (static_cast<DWORD>(m_regDarkModifiedBackground) != m_cBkModified.GetColor())
107 m_bReloadNeeded = true;
108 m_regDarkModifiedBackground = GetColorFromButton(m_cBkModified);
110 else
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)
189 END_MESSAGE_MAP()
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;
200 SetupColorButtons();
201 m_bInit = TRUE;
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()
213 COLORREF cBk;
214 COLORREF cFg;
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()
293 UpdateData();
294 SaveData();
295 SetModified(FALSE);
296 return CPropertyPage::OnApply();
299 void CSetColorPage::OnBnClickedColor()
301 SetModified();
304 void CSetColorPage::OnBnClickedRestore()
306 m_IsDarkMode = m_chkUseDarkMode.GetCheck() == BST_CHECKED;
307 if (m_IsDarkMode)
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);
327 else
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);
347 SetModified();
350 void CSetColorPage::OnBnClickedDarkmode()
352 m_IsDarkMode = m_chkUseDarkMode.GetCheck() == BST_CHECKED;
353 CTheme::Instance().SetDarkTheme(m_IsDarkMode);
354 SetupColorButtons();
355 m_bReloadNeeded = true;
356 SetModified();