@@ -238,41 +238,44 @@ static dmlib_color::ThemeView& getThemeView() noexcept
238238 return tView;
239239}
240240
241- COLORREF DarkMode::setBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . background , clrNew); }
242- COLORREF DarkMode::setCtrlBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . ctrlBackground , clrNew); }
243- COLORREF DarkMode::setHotBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . hotBackground , clrNew); }
244- COLORREF DarkMode::setDlgBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . dlgBackground , clrNew); }
245- COLORREF DarkMode::setErrorBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . errorBackground , clrNew); }
246- COLORREF DarkMode::setTextColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . text , clrNew); }
247- COLORREF DarkMode::setDarkerTextColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . darkerText , clrNew); }
248- COLORREF DarkMode::setDisabledTextColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . disabledText , clrNew); }
249- COLORREF DarkMode::setLinkTextColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . linkText , clrNew); }
250- COLORREF DarkMode::setEdgeColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . edge , clrNew); }
251- COLORREF DarkMode::setHotEdgeColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . hotEdge , clrNew); }
252- COLORREF DarkMode::setDisabledEdgeColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getTheme ().m_colors . disabledEdge , clrNew); }
241+ COLORREF DarkMode::setBackgroundColor (COLORREF clrNew) { return getTheme ().setColorBackground ( clrNew); }
242+ COLORREF DarkMode::setCtrlBackgroundColor (COLORREF clrNew) { return getTheme ().setColorCtrlBackground ( clrNew); }
243+ COLORREF DarkMode::setHotBackgroundColor (COLORREF clrNew) { return getTheme ().setColorHotBackground ( clrNew); }
244+ COLORREF DarkMode::setDlgBackgroundColor (COLORREF clrNew) { return getTheme ().setColorDlgBackground ( clrNew); }
245+ COLORREF DarkMode::setErrorBackgroundColor (COLORREF clrNew) { return getTheme ().setColorErrorBackground ( clrNew); }
246+ COLORREF DarkMode::setTextColor (COLORREF clrNew) { return getTheme ().setColorText ( clrNew); }
247+ COLORREF DarkMode::setDarkerTextColor (COLORREF clrNew) { return getTheme ().setColorDarkerText ( clrNew); }
248+ COLORREF DarkMode::setDisabledTextColor (COLORREF clrNew) { return getTheme ().setColorDisabledText ( clrNew); }
249+ COLORREF DarkMode::setLinkTextColor (COLORREF clrNew) { return getTheme ().setColorLinkText ( clrNew); }
250+ COLORREF DarkMode::setEdgeColor (COLORREF clrNew) { return getTheme ().setColorEdge ( clrNew); }
251+ COLORREF DarkMode::setHotEdgeColor (COLORREF clrNew) { return getTheme ().setColorHotEdge ( clrNew); }
252+ COLORREF DarkMode::setDisabledEdgeColor (COLORREF clrNew) { return getTheme ().setColorDisabledEdge ( clrNew); }
253253
254- void DarkMode::setThemeColors (Colors colors)
254+ void DarkMode::setThemeColors (Colors* colors)
255255{
256- getTheme ().updateTheme (colors);
256+ if (colors != nullptr )
257+ {
258+ getTheme ().updateTheme (*colors);
259+ }
257260}
258261
259262void DarkMode::updateThemeBrushesAndPens ()
260263{
261264 getTheme ().updateTheme ();
262265}
263266
264- COLORREF DarkMode::getBackgroundColor () { return getTheme ().m_colors .background ; }
265- COLORREF DarkMode::getCtrlBackgroundColor () { return getTheme ().m_colors .ctrlBackground ; }
266- COLORREF DarkMode::getHotBackgroundColor () { return getTheme ().m_colors .hotBackground ; }
267- COLORREF DarkMode::getDlgBackgroundColor () { return getTheme ().m_colors .dlgBackground ; }
268- COLORREF DarkMode::getErrorBackgroundColor () { return getTheme ().m_colors .errorBackground ; }
269- COLORREF DarkMode::getTextColor () { return getTheme ().m_colors .text ; }
270- COLORREF DarkMode::getDarkerTextColor () { return getTheme ().m_colors .darkerText ; }
271- COLORREF DarkMode::getDisabledTextColor () { return getTheme ().m_colors .disabledText ; }
272- COLORREF DarkMode::getLinkTextColor () { return getTheme ().m_colors .linkText ; }
273- COLORREF DarkMode::getEdgeColor () { return getTheme ().m_colors .edge ; }
274- COLORREF DarkMode::getHotEdgeColor () { return getTheme ().m_colors .hotEdge ; }
275- COLORREF DarkMode::getDisabledEdgeColor () { return getTheme ().m_colors .disabledEdge ; }
267+ COLORREF DarkMode::getBackgroundColor () { return getTheme ().getColors () .background ; }
268+ COLORREF DarkMode::getCtrlBackgroundColor () { return getTheme ().getColors () .ctrlBackground ; }
269+ COLORREF DarkMode::getHotBackgroundColor () { return getTheme ().getColors () .hotBackground ; }
270+ COLORREF DarkMode::getDlgBackgroundColor () { return getTheme ().getColors () .dlgBackground ; }
271+ COLORREF DarkMode::getErrorBackgroundColor () { return getTheme ().getColors () .errorBackground ; }
272+ COLORREF DarkMode::getTextColor () { return getTheme ().getColors () .text ; }
273+ COLORREF DarkMode::getDarkerTextColor () { return getTheme ().getColors () .darkerText ; }
274+ COLORREF DarkMode::getDisabledTextColor () { return getTheme ().getColors () .disabledText ; }
275+ COLORREF DarkMode::getLinkTextColor () { return getTheme ().getColors () .linkText ; }
276+ COLORREF DarkMode::getEdgeColor () { return getTheme ().getColors () .edge ; }
277+ COLORREF DarkMode::getHotEdgeColor () { return getTheme ().getColors () .hotEdge ; }
278+ COLORREF DarkMode::getDisabledEdgeColor () { return getTheme ().getColors () .disabledEdge ; }
276279
277280HBRUSH DarkMode::getBackgroundBrush () { return getTheme ().getBrushes ().m_background ; }
278281HBRUSH DarkMode::getCtrlBackgroundBrush () { return getTheme ().getBrushes ().m_ctrlBackground ; }
@@ -289,33 +292,36 @@ HPEN DarkMode::getEdgePen() { return getTheme().getPens().m_
289292HPEN DarkMode::getHotEdgePen () { return getTheme ().getPens ().m_hotEdge ; }
290293HPEN DarkMode::getDisabledEdgePen () { return getTheme ().getPens ().m_disabledEdge ; }
291294
292- COLORREF DarkMode::setViewBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getThemeView ().m_clrView . background , clrNew); }
293- COLORREF DarkMode::setViewTextColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getThemeView ().m_clrView . text , clrNew); }
294- COLORREF DarkMode::setViewGridlinesColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getThemeView ().m_clrView . gridlines , clrNew); }
295+ COLORREF DarkMode::setViewBackgroundColor (COLORREF clrNew) { return getThemeView ().setColorBackground ( clrNew); }
296+ COLORREF DarkMode::setViewTextColor (COLORREF clrNew) { return getThemeView ().setColorText ( clrNew); }
297+ COLORREF DarkMode::setViewGridlinesColor (COLORREF clrNew) { return getThemeView ().setColorGridlines ( clrNew); }
295298
296- COLORREF DarkMode::setHeaderBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getThemeView ().m_clrView . headerBackground , clrNew); }
297- COLORREF DarkMode::setHeaderHotBackgroundColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getThemeView ().m_clrView . headerHotBackground , clrNew); }
298- COLORREF DarkMode::setHeaderTextColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getThemeView ().m_clrView . headerText , clrNew); }
299- COLORREF DarkMode::setHeaderEdgeColor (COLORREF clrNew) { return dmlib_color::setNewColor ( getThemeView ().m_clrView . headerEdge , clrNew); }
299+ COLORREF DarkMode::setHeaderBackgroundColor (COLORREF clrNew) { return getThemeView ().setColorHeaderBackground ( clrNew); }
300+ COLORREF DarkMode::setHeaderHotBackgroundColor (COLORREF clrNew) { return getThemeView ().setColorHeaderHotBackground ( clrNew); }
301+ COLORREF DarkMode::setHeaderTextColor (COLORREF clrNew) { return getThemeView ().setColorHeaderText ( clrNew); }
302+ COLORREF DarkMode::setHeaderEdgeColor (COLORREF clrNew) { return getThemeView ().setColorHeaderEdge ( clrNew); }
300303
301- void DarkMode::setViewColors (ColorsView colors)
304+ void DarkMode::setViewColors (ColorsView* colors)
302305{
303- getThemeView ().updateView (colors);
306+ if (colors != nullptr )
307+ {
308+ getThemeView ().updateView (*colors);
309+ }
304310}
305311
306312void DarkMode::updateViewBrushesAndPens ()
307313{
308314 getThemeView ().updateView ();
309315}
310316
311- COLORREF DarkMode::getViewBackgroundColor () { return getThemeView ().m_clrView .background ; }
312- COLORREF DarkMode::getViewTextColor () { return getThemeView ().m_clrView .text ; }
313- COLORREF DarkMode::getViewGridlinesColor () { return getThemeView ().m_clrView .gridlines ; }
317+ COLORREF DarkMode::getViewBackgroundColor () { return getThemeView ().getColors () .background ; }
318+ COLORREF DarkMode::getViewTextColor () { return getThemeView ().getColors () .text ; }
319+ COLORREF DarkMode::getViewGridlinesColor () { return getThemeView ().getColors () .gridlines ; }
314320
315- COLORREF DarkMode::getHeaderBackgroundColor () { return getThemeView ().m_clrView .headerBackground ; }
316- COLORREF DarkMode::getHeaderHotBackgroundColor () { return getThemeView ().m_clrView .headerHotBackground ; }
317- COLORREF DarkMode::getHeaderTextColor () { return getThemeView ().m_clrView .headerText ; }
318- COLORREF DarkMode::getHeaderEdgeColor () { return getThemeView ().m_clrView .headerEdge ; }
321+ COLORREF DarkMode::getHeaderBackgroundColor () { return getThemeView ().getColors () .headerBackground ; }
322+ COLORREF DarkMode::getHeaderHotBackgroundColor () { return getThemeView ().getColors () .headerHotBackground ; }
323+ COLORREF DarkMode::getHeaderTextColor () { return getThemeView ().getColors () .headerText ; }
324+ COLORREF DarkMode::getHeaderEdgeColor () { return getThemeView ().getColors () .headerEdge ; }
319325
320326HBRUSH DarkMode::getViewBackgroundBrush () { return getThemeView ().getViewBrushesAndPens ().m_background ; }
321327HBRUSH DarkMode::getViewGridlinesBrush () { return getThemeView ().getViewBrushesAndPens ().m_gridlines ; }
@@ -349,14 +355,14 @@ void DarkMode::setDefaultColors(bool updateBrushesAndOther)
349355 case DarkModeType::dark:
350356 {
351357 getTheme ().setToneColors ();
352- getThemeView ().m_clrView = dmlib_color:: kDarkColorsView ;
358+ getThemeView ().resetColors ( true ) ;
353359 break ;
354360 }
355361
356362 case DarkModeType::light:
357363 {
358- getTheme ().m_colors = dmlib_color::getLightColors ();
359- getThemeView ().m_clrView = dmlib_color:: kLightColorsView ;
364+ getTheme ().setLightColors ();
365+ getThemeView ().resetColors ( false ) ;
360366 break ;
361367 }
362368
@@ -591,6 +597,8 @@ static void initOptions(const std::wstring& iniName)
591597 g_dmCfg.m_borderColor = DWMWA_COLOR_DEFAULT;
592598 }
593599
600+ getThemeView ().resetColors (useDark);
601+
594602 if (useDark)
595603 {
596604 UINT tone = ::GetPrivateProfileIntW (sectionBase.c_str (), L" tone" , 0 , iniPath.c_str ());
@@ -600,10 +608,9 @@ static void initOptions(const std::wstring& iniName)
600608 }
601609
602610 getTheme ().setToneColors (static_cast <DarkMode::ColorTone>(tone));
603- getThemeView ().m_clrView = dmlib_color::kDarkColorsView ;
604- getThemeView ().m_clrView .headerBackground = getTheme ().m_colors .background ;
605- getThemeView ().m_clrView .headerHotBackground = getTheme ().m_colors .hotBackground ;
606- getThemeView ().m_clrView .headerText = getTheme ().m_colors .darkerText ;
611+ getThemeView ().setColorHeaderBackground (getTheme ().getColors ().background );
612+ getThemeView ().setColorHeaderHotBackground (getTheme ().getColors ().hotBackground );
613+ getThemeView ().setColorHeaderText (getTheme ().getColors ().darkerText );
607614
608615 if (!DarkMode::isWindowsModeEnabled ())
609616 {
@@ -612,8 +619,7 @@ static void initOptions(const std::wstring& iniName)
612619 }
613620 else
614621 {
615- getTheme ().m_colors = dmlib_color::getLightColors ();
616- getThemeView ().m_clrView = dmlib_color::kLightColorsView ;
622+ getTheme ().setLightColors ();
617623 }
618624
619625 struct ColorEntry
@@ -624,29 +630,29 @@ static void initOptions(const std::wstring& iniName)
624630
625631 static constexpr size_t nColorsViewMembers = 7 ;
626632 const std::array<ColorEntry, nColorsViewMembers> viewColors{ {
627- {L" backgroundView" , &getThemeView ().m_clrView .background },
628- {L" textView" , &getThemeView ().m_clrView .text },
629- {L" gridlines" , &getThemeView ().m_clrView .gridlines },
630- {L" backgroundHeader" , &getThemeView ().m_clrView .headerBackground },
631- {L" backgroundHotHeader" , &getThemeView ().m_clrView .headerHotBackground },
632- {L" textHeader" , &getThemeView ().m_clrView .headerText },
633- {L" edgeHeader" , &getThemeView ().m_clrView .headerEdge }
633+ {L" backgroundView" , &getThemeView ().getToSetColors () .background },
634+ {L" textView" , &getThemeView ().getToSetColors () .text },
635+ {L" gridlines" , &getThemeView ().getToSetColors () .gridlines },
636+ {L" backgroundHeader" , &getThemeView ().getToSetColors () .headerBackground },
637+ {L" backgroundHotHeader" , &getThemeView ().getToSetColors () .headerHotBackground },
638+ {L" textHeader" , &getThemeView ().getToSetColors () .headerText },
639+ {L" edgeHeader" , &getThemeView ().getToSetColors () .headerEdge }
634640 } };
635641
636642 static constexpr size_t nColorsMembers = 12 ;
637643 const std::array<ColorEntry, nColorsMembers> baseColors{ {
638- {L" background" , &getTheme ().m_colors .background },
639- {L" backgroundCtrl" , &getTheme ().m_colors .ctrlBackground },
640- {L" backgroundHot" , &getTheme ().m_colors .hotBackground },
641- {L" backgroundDlg" , &getTheme ().m_colors .dlgBackground },
642- {L" backgroundError" , &getTheme ().m_colors .errorBackground },
643- {L" text" , &getTheme ().m_colors .text },
644- {L" textItem" , &getTheme ().m_colors .darkerText },
645- {L" textDisabled" , &getTheme ().m_colors .disabledText },
646- {L" textLink" , &getTheme ().m_colors .linkText },
647- {L" edge" , &getTheme ().m_colors .edge },
648- {L" edgeHot" , &getTheme ().m_colors .hotEdge },
649- {L" edgeDisabled" , &getTheme ().m_colors .disabledEdge }
644+ {L" background" , &getTheme ().getToSetColors () .background },
645+ {L" backgroundCtrl" , &getTheme ().getToSetColors () .ctrlBackground },
646+ {L" backgroundHot" , &getTheme ().getToSetColors () .hotBackground },
647+ {L" backgroundDlg" , &getTheme ().getToSetColors () .dlgBackground },
648+ {L" backgroundError" , &getTheme ().getToSetColors () .errorBackground },
649+ {L" text" , &getTheme ().getToSetColors () .text },
650+ {L" textItem" , &getTheme ().getToSetColors () .darkerText },
651+ {L" textDisabled" , &getTheme ().getToSetColors () .disabledText },
652+ {L" textLink" , &getTheme ().getToSetColors () .linkText },
653+ {L" edge" , &getTheme ().getToSetColors () .edge },
654+ {L" edgeHot" , &getTheme ().getToSetColors () .hotEdge },
655+ {L" edgeDisabled" , &getTheme ().getToSetColors () .disabledEdge }
650656 } };
651657
652658 for (const auto & entry : viewColors)
0 commit comments