include/vcl/settings.hxx              |    3 +++
 sc/source/ui/view/gridwin.cxx         |    2 +-
 sc/source/ui/view/hdrcont.cxx         |    2 +-
 vcl/osx/salframe.cxx                  |    4 ++++
 vcl/qt5/QtFrame.cxx                   |    2 ++
 vcl/source/app/settings.cxx           |   17 +++++++++++++++++
 vcl/unx/gtk3/salnativewidgets-gtk.cxx |    1 +
 vcl/win/window/salframe.cxx           |    4 ++++
 8 files changed, 33 insertions(+), 2 deletions(-)

New commits:
commit 258686a58f909ab04c7281c05f15882eb400748e
Author:     Heiko Tietze <tietze.he...@gmail.com>
AuthorDate: Wed May 17 16:48:30 2023 +0200
Commit:     Heiko Tietze <heiko.tie...@documentfoundation.org>
CommitDate: Tue May 23 09:44:21 2023 +0200

    Resolves tdf#145080 - Use accent color for focused cell
    
    Accent color added but effectively working only on macOS
    See inline comments for gtk, qt, and win
    
    Change-Id: I1e4a729331735683921f94b27bb2bb02555c0165
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151887
    Tested-by: Jenkins
    Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org>

diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index 05c7678869d0..7f4849c7b718 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -336,6 +336,9 @@ public:
     void                            SetDeactiveBorderColor( const Color& 
rColor );
     const Color&                    GetDeactiveBorderColor() const;
 
+    void                            SetAccentColor( const Color& rColor );
+    const Color&                    GetAccentColor() const;
+
     void                            SetHighlightColor( const Color& rColor );
     const Color&                    GetHighlightColor() const;
 
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index c2ec3311bc9d..d32313ae4308 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -6454,7 +6454,7 @@ void ScGridWindow::UpdateCursorOverlay()
 
             if (xOverlayManager.is())
             {
-                Color aCursorColor = 
GetSettings().GetStyleSettings().GetHighlightColor();
+                Color aCursorColor = 
GetSettings().GetStyleSettings().GetAccentColor();
                 if (mrViewData.GetActivePart() != eWhich)
                     // non-active pane uses a different color.
                     aCursorColor = 
SC_MOD()->GetColorConfig().GetColorValue(svtools::CALCPAGEBREAKAUTOMATIC).nColor;
diff --git a/sc/source/ui/view/hdrcont.cxx b/sc/source/ui/view/hdrcont.cxx
index 305ada306856..d6e9b5dbeb3f 100644
--- a/sc/source/ui/view/hdrcont.cxx
+++ b/sc/source/ui/view/hdrcont.cxx
@@ -361,7 +361,7 @@ void ScHeaderControl::Paint( vcl::RenderContext& 
/*rRenderContext*/, const tools
             {
                 // background for selection
                 GetOutDev()->SetLineColor();
-                GetOutDev()->SetFillColor( rStyleSettings.GetHighlightColor() 
);
+                GetOutDev()->SetFillColor( rStyleSettings.GetAccentColor() );
                 GetOutDev()->DrawRect( aFillRect );
             }
         }
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index ea514b786ada..b4a2d07463b8 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -1384,6 +1384,10 @@ SAL_WNODEPRECATED_DECLARATIONS_POP
     vcl::Font aTooltipFont(getFont([NSFont toolTipsFontOfSize: 0], nDPIY, 
aAppFont));
     aStyleSettings.SetHelpFont(aTooltipFont);
 
+    Color aAccentColor( getColor( [NSColor controlAccentColor],
+                                   aStyleSettings.GetAccentColor(), mpNSWindow 
) );
+    aStyleSettings.SetAccentColor( aAccentColor );
+
     Color aHighlightColor( getColor( [NSColor selectedTextBackgroundColor],
                                       aStyleSettings.GetHighlightColor(), 
mpNSWindow ) );
     aStyleSettings.SetHighlightColor( aHighlightColor );
diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx
index ed5c0538e5cb..08d206261b88 100644
--- a/vcl/qt5/QtFrame.cxx
+++ b/vcl/qt5/QtFrame.cxx
@@ -1143,6 +1143,8 @@ void QtFrame::UpdateSettings(AllSettings& rSettings)
     style.SetWorkspaceColor(aMid);
 
     // Selection
+    // https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/305
+    style.SetAccentColor(aHigh);
     style.SetHighlightColor(aHigh);
     style.SetHighlightTextColor(aHighText);
     style.SetListBoxWindowHighlightColor(aHigh);
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 313aacfce155..9921b0b774bc 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -112,6 +112,7 @@ struct ImplStyleData
     Color                           maGroupTextColor;
     Color                           maHelpColor;
     Color                           maHelpTextColor;
+    Color                           maAccentColor;
     Color                           maHighlightColor;
     Color                           maHighlightTextColor;
     Color                           maLabelTextColor;
@@ -536,6 +537,7 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
     maGroupTextColor( rData.maGroupTextColor ),
     maHelpColor( rData.maHelpColor ),
     maHelpTextColor( rData.maHelpTextColor ),
+    maAccentColor( rData.maAccentColor ),
     maHighlightColor( rData.maHighlightColor ),
     maHighlightTextColor( rData.maHighlightTextColor ),
     maLabelTextColor( rData.maLabelTextColor ),
@@ -708,6 +710,7 @@ void ImplStyleData::SetStandardStyles()
     maMenuBarHighlightTextColor = COL_WHITE;
     maMenuHighlightColor        = COL_BLUE;
     maMenuHighlightTextColor    = COL_WHITE;
+    maAccentColor               = COL_RED;
     maHighlightColor            = COL_BLUE;
     maHighlightTextColor        = COL_WHITE;
     // make active like highlight, except with a small contrast
@@ -1253,6 +1256,19 @@ StyleSettings::GetDeactiveBorderColor() const
     return mxData->maDeactiveBorderColor;
 }
 
+void
+StyleSettings::SetAccentColor( const Color& rColor )
+{
+    CopyData();
+    mxData->maAccentColor = rColor;
+}
+
+const Color&
+StyleSettings::GetAccentColor() const
+{
+    return mxData->maAccentColor;
+}
+
 void
 StyleSettings::SetHighlightColor( const Color& rColor )
 {
@@ -2539,6 +2555,7 @@ bool StyleSettings::operator ==( const StyleSettings& 
rSet ) const
          (mxData->maMenuBarRolloverTextColor == 
rSet.mxData->maMenuBarRolloverTextColor) &&
          (mxData->maMenuHighlightColor      == 
rSet.mxData->maMenuHighlightColor)       &&
          (mxData->maMenuHighlightTextColor  == 
rSet.mxData->maMenuHighlightTextColor)   &&
+         (mxData->maAccentColor             == rSet.mxData->maAccentColor)     
         &&
          (mxData->maHighlightColor          == rSet.mxData->maHighlightColor)  
         &&
          (mxData->maHighlightTextColor      == 
rSet.mxData->maHighlightTextColor)       &&
          (mxData->maTabTextColor            == rSet.mxData->maTabTextColor)    
         &&
diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx 
b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
index b5efe1b59ddc..425c642d45fd 100644
--- a/vcl/unx/gtk3/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
@@ -2420,6 +2420,7 @@ bool GtkSalGraphics::updateSettings(AllSettings& 
rSettings)
         ::Color aHighlightColor = style_context_get_background_color(pCStyle);
         style_context_get_color(pCStyle, &text_color);
         ::Color aHighlightTextColor = getColor( text_color );
+        aStyleSet.SetAccentColor( aHighlightColor ); // 
https://debugpointnews.com/gnome-native-accent-colour-announcement/
         aStyleSet.SetHighlightColor( aHighlightColor );
         aStyleSet.SetHighlightTextColor( aHighlightTextColor );
         aStyleSet.SetListBoxWindowHighlightColor( aHighlightColor );
diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx
index 2ab3ef3c56ca..e0a99d8e8779 100644
--- a/vcl/win/window/salframe.cxx
+++ b/vcl/win/window/salframe.cxx
@@ -2829,6 +2829,10 @@ void WinSalFrame::UpdateSettings( AllSettings& rSettings 
)
     aStyleSettings.SetFieldTextColor( aStyleSettings.GetWindowTextColor() );
     aStyleSettings.SetFieldRolloverTextColor( 
aStyleSettings.GetFieldTextColor() );
     aStyleSettings.SetListBoxWindowTextColor( 
aStyleSettings.GetFieldTextColor() );
+
+    aStyleSettings.SetAccentColor( ImplWinColorToSal( GetSysColor( 
COLOR_HIGHLIGHT ) ) );
+    // https://devblogs.microsoft.com/oldnewthing/20170405-00/?p=95905
+
     aStyleSettings.SetHighlightColor( ImplWinColorToSal( GetSysColor( 
COLOR_HIGHLIGHT ) ) );
     aStyleSettings.SetHighlightTextColor(aHighlightTextColor);
     aStyleSettings.SetListBoxWindowHighlightColor( 
aStyleSettings.GetHighlightColor() );

Reply via email to