include/vcl/settings.hxx           |   12 ++++++
 vcl/osx/salframe.cxx               |    5 ++
 vcl/source/app/settings.cxx        |   68 +++++++++++++++++++++++++++++++++++++
 vcl/source/control/imp_listbox.cxx |    8 ++--
 4 files changed, 89 insertions(+), 4 deletions(-)

New commits:
commit 3c6a53b9ce64180b2a03e097c1844f7496f26815
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sat Apr 17 14:49:43 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Jun 22 09:50:46 2022 +0200

    improve the look of the macOS combobox
    
    Change-Id: I4484fabcf6d883deeb3e417e46ce3973f2332f94
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114251
    Tested-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index 6795150819a7..4926c4b4c509 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -384,6 +384,18 @@ public:
     void                            SetMenuHighlightTextColor( const Color& 
rColor );
     const Color&                    GetMenuHighlightTextColor() const;
 
+    void                            SetListBoxWindowBackgroundColor( const 
Color& rColor );
+    const Color&                    GetListBoxWindowBackgroundColor() const;
+
+    void                            SetListBoxWindowTextColor( const Color& 
rColor );
+    const Color&                    GetListBoxWindowTextColor() const;
+
+    void                            SetListBoxWindowHighlightColor( const 
Color& rColor );
+    const Color&                    GetListBoxWindowHighlightColor() const;
+
+    void                            SetListBoxWindowHighlightTextColor( const 
Color& rColor );
+    const Color&                    GetListBoxWindowHighlightTextColor() const;
+
     void                            SetTabTextColor( const Color& rColor );
     const Color&                    GetTabTextColor() const;
 
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 984ff8c5f5be..574122a1a91d 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -1283,6 +1283,11 @@ SAL_WNODEPRECATED_DECLARATIONS_POP
     aStyleSettings.SetMenuBarRolloverTextColor( aMenuTextColor );
     
aStyleSettings.SetMenuBarHighlightTextColor(aStyleSettings.GetMenuHighlightTextColor());
 
+    aStyleSettings.SetListBoxWindowBackgroundColor( aBackgroundColor );
+    aStyleSettings.SetListBoxWindowTextColor( aMenuTextColor );
+    aStyleSettings.SetListBoxWindowHighlightColor( aMenuHighlightColor );
+    aStyleSettings.SetListBoxWindowHighlightTextColor( aMenuHighlightTextColor 
);
+
     // Set text colors for buttons and their different status according to OS 
settings, typically white for selected buttons,
     // black otherwise
 
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index f17c8286f68f..82093fcf2d65 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -125,6 +125,10 @@ struct ImplStyleData
     Color                           maMenuHighlightColor;
     Color                           maMenuHighlightTextColor;
     Color                           maMenuTextColor;
+    Color                           maListBoxWindowBackgroundColor;
+    Color                           maListBoxWindowTextColor;
+    Color                           maListBoxWindowHighlightColor;
+    Color                           maListBoxWindowHighlightTextColor;
     Color                           maMenuBarTextColor;
     Color                           maMenuBarRolloverTextColor;
     Color                           maMenuBarHighlightTextColor;
@@ -546,6 +550,10 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) 
:
     maMenuHighlightColor( rData.maMenuHighlightColor ),
     maMenuHighlightTextColor( rData.maMenuHighlightTextColor ),
     maMenuTextColor( rData.maMenuTextColor ),
+    maListBoxWindowBackgroundColor( rData.maListBoxWindowBackgroundColor ),
+    maListBoxWindowTextColor( rData.maListBoxWindowTextColor ),
+    maListBoxWindowHighlightColor( rData.maListBoxWindowHighlightColor ),
+    maListBoxWindowHighlightTextColor( rData.maListBoxWindowHighlightTextColor 
),
     maMenuBarTextColor( rData.maMenuBarTextColor ),
     maMenuBarRolloverTextColor( rData.maMenuBarRolloverTextColor ),
     maMenuBarHighlightTextColor( rData.maMenuBarHighlightTextColor ),
@@ -692,6 +700,10 @@ void ImplStyleData::SetStandardStyles()
     maMenuBarRolloverColor      = COL_BLUE;
     maMenuBorderColor           = COL_LIGHTGRAY;
     maMenuTextColor             = COL_BLACK;
+    maListBoxWindowBackgroundColor = COL_LIGHTGRAY;
+    maListBoxWindowTextColor    = COL_BLACK;
+    maListBoxWindowHighlightColor = COL_BLUE;
+    maListBoxWindowHighlightTextColor = COL_WHITE;
     maMenuBarTextColor          = COL_BLACK;
     maMenuBarRolloverTextColor  = COL_WHITE;
     maMenuBarHighlightTextColor = COL_WHITE;
@@ -1438,6 +1450,58 @@ StyleSettings::GetMenuHighlightTextColor() const
     return mxData->maMenuHighlightTextColor;
 }
 
+void
+StyleSettings::SetListBoxWindowBackgroundColor( const Color& rColor )
+{
+    CopyData();
+    mxData->maListBoxWindowBackgroundColor = rColor;
+}
+
+const Color&
+StyleSettings::GetListBoxWindowBackgroundColor() const
+{
+    return mxData->maListBoxWindowBackgroundColor;
+}
+
+void
+StyleSettings::SetListBoxWindowTextColor( const Color& rColor )
+{
+    CopyData();
+    mxData->maListBoxWindowTextColor = rColor;
+}
+
+const Color&
+StyleSettings::GetListBoxWindowTextColor() const
+{
+    return mxData->maListBoxWindowTextColor;
+}
+
+void
+StyleSettings::SetListBoxWindowHighlightColor( const Color& rColor )
+{
+    CopyData();
+    mxData->maListBoxWindowHighlightColor = rColor;
+}
+
+const Color&
+StyleSettings::GetListBoxWindowHighlightColor() const
+{
+    return mxData->maListBoxWindowHighlightColor;
+}
+
+void
+StyleSettings::SetListBoxWindowHighlightTextColor( const Color& rColor )
+{
+    CopyData();
+    mxData->maListBoxWindowHighlightTextColor = rColor;
+}
+
+const Color&
+StyleSettings::GetListBoxWindowHighlightTextColor() const
+{
+    return mxData->maListBoxWindowHighlightTextColor;
+}
+
 void
 StyleSettings::SetTabTextColor( const Color& rColor )
 {
@@ -2476,6 +2540,10 @@ bool StyleSettings::operator ==( const StyleSettings& 
rSet ) const
          (mxData->maMenuBarRolloverColor    == 
rSet.mxData->maMenuBarRolloverColor)     &&
          (mxData->maMenuBorderColor         == rSet.mxData->maMenuBorderColor) 
         &&
          (mxData->maMenuTextColor           == rSet.mxData->maMenuTextColor)   
         &&
+         (mxData->maListBoxWindowBackgroundColor == 
rSet.mxData->maListBoxWindowBackgroundColor) &&
+         (mxData->maListBoxWindowTextColor       == 
rSet.mxData->maListBoxWindowTextColor) &&
+         (mxData->maListBoxWindowHighlightColor  == 
rSet.mxData->maListBoxWindowHighlightColor) &&
+         (mxData->maListBoxWindowHighlightTextColor == 
rSet.mxData->maListBoxWindowHighlightTextColor) &&
          (mxData->maMenuBarTextColor        == 
rSet.mxData->maMenuBarTextColor)         &&
          (mxData->maMenuBarRolloverTextColor == 
rSet.mxData->maMenuBarRolloverTextColor) &&
          (mxData->maMenuHighlightColor      == 
rSet.mxData->maMenuHighlightColor)       &&
diff --git a/vcl/source/control/imp_listbox.cxx 
b/vcl/source/control/imp_listbox.cxx
index fa01c647e9b0..e0e731a4b5b7 100644
--- a/vcl/source/control/imp_listbox.cxx
+++ b/vcl/source/control/imp_listbox.cxx
@@ -498,12 +498,12 @@ void ImplListBoxWindow::ApplySettings(vcl::RenderContext& 
rRenderContext)
     const StyleSettings& rStyleSettings = 
rRenderContext.GetSettings().GetStyleSettings();
 
     ApplyControlFont(rRenderContext, rStyleSettings.GetFieldFont());
-    ApplyControlForeground(rRenderContext, rStyleSettings.GetFieldTextColor());
+    ApplyControlForeground(rRenderContext, 
rStyleSettings.GetListBoxWindowTextColor());
 
     if (IsControlBackground())
         rRenderContext.SetBackground(GetControlBackground());
     else
-        rRenderContext.SetBackground(rStyleSettings.GetFieldColor());
+        
rRenderContext.SetBackground(rStyleSettings.GetListBoxWindowBackgroundColor());
 }
 
 void ImplListBoxWindow::ImplCalcMetrics()
@@ -1617,8 +1617,8 @@ void ImplListBoxWindow::ImplPaint(vcl::RenderContext& 
rRenderContext, sal_Int32
     bool bSelected = maEntryList.IsEntryPosSelected(nPos);
     if (bSelected)
     {
-        rRenderContext.SetTextColor(!IsEnabled() ? 
rStyleSettings.GetDisableColor() : rStyleSettings.GetHighlightTextColor());
-        rRenderContext.SetFillColor(rStyleSettings.GetHighlightColor());
+        rRenderContext.SetTextColor(!IsEnabled() ? 
rStyleSettings.GetDisableColor() : 
rStyleSettings.GetListBoxWindowHighlightTextColor());
+        
rRenderContext.SetFillColor(rStyleSettings.GetListBoxWindowHighlightColor());
         rRenderContext.SetLineColor();
         rRenderContext.DrawRect(aRect);
     }

Reply via email to