sc/source/ui/inc/overlayobject.hxx |    3 ++-
 sc/source/ui/view/hintwin.cxx      |   13 +++++++------
 sc/source/ui/view/tabview3.cxx     |   13 ++++++++++---
 3 files changed, 19 insertions(+), 10 deletions(-)

New commits:
commit 3359b944fe3feab3fdc30aad3552c8ebb5ae886a
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Tue Dec 17 21:00:02 2024 +0000
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Wed Dec 18 09:20:31 2024 +0100

    Resolves: tdf#156398 use same color combination as used in tdf#51300
    
    so we don't get white text on yellow background
    
    Change-Id: I346decaab293e2bb15c1110dfa61df5838607d79
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178694
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins

diff --git a/sc/source/ui/inc/overlayobject.hxx 
b/sc/source/ui/inc/overlayobject.hxx
index 35ea695edaf0..525a1bde30f2 100644
--- a/sc/source/ui/inc/overlayobject.hxx
+++ b/sc/source/ui/inc/overlayobject.hxx
@@ -44,7 +44,7 @@ private:
 class ScOverlayHint : public sdr::overlay::OverlayObject
 {
 public:
-    ScOverlayHint(OUString aTit, const OUString& rMsg, const Color& rColor, 
vcl::Font aFont);
+    ScOverlayHint(OUString aTit, const OUString& rMsg, const Color& rBack, 
const Color& rText, vcl::Font aFont);
     Size GetSizePixel() const;
     void SetPos(const Point& rPos, const MapMode& rMode);
 
@@ -57,6 +57,7 @@ private:
     const OUString m_aTitle;
     const OUString m_aMessage;
     const vcl::Font m_aTextFont;
+    const Color m_aTextColor;
     MapMode m_aMapMode;
     sal_Int32 m_nLeft;
     sal_Int32 m_nTop;
diff --git a/sc/source/ui/view/hintwin.cxx b/sc/source/ui/view/hintwin.cxx
index fbc0b17596b3..a322cc324a4b 100644
--- a/sc/source/ui/view/hintwin.cxx
+++ b/sc/source/ui/view/hintwin.cxx
@@ -38,11 +38,14 @@
 #define HINT_INDENT     3
 #define HINT_MARGIN     4
 
-ScOverlayHint::ScOverlayHint(OUString aTit, const OUString& rMsg, const Color& 
rColor, vcl::Font aFont)
-    : OverlayObject(rColor)
+ScOverlayHint::ScOverlayHint(OUString aTit, const OUString& rMsg,
+                             const Color& rBackColor, const Color& rTextColor,
+                             vcl::Font aFont)
+    : OverlayObject(rBackColor)
     , m_aTitle(std::move(aTit))
     , m_aMessage(convertLineEnd(rMsg, LINEEND_CR))
     , m_aTextFont(std::move(aFont))
+    , m_aTextColor(rTextColor)
     , m_aMapMode(MapUnit::MapPixel)
     , m_nLeft(0)
     , m_nTop(0)
@@ -57,8 +60,6 @@ drawinglayer::primitive2d::Primitive2DContainer 
ScOverlayHint::createOverlaySequ
     MapMode aOld = pDefaultDev->GetMapMode();
     pDefaultDev->SetMapMode(rMapMode);
 
-    const StyleSettings& rStyleSettings = 
Application::GetSettings().GetStyleSettings();
-    const Color& rColor = rStyleSettings.GetLabelTextColor();
     vcl::Font aTextFont = m_aTextFont;
     aTextFont.SetFontSize(pDefaultDev->PixelToLogic(aTextFont.GetFontSize(), 
rMapMode));
     vcl::Font aHeadFont = aTextFont;
@@ -84,7 +85,7 @@ drawinglayer::primitive2d::Primitive2DContainer 
ScOverlayHint::createOverlaySequ
         new drawinglayer::primitive2d::TextSimplePortionPrimitive2D(
                         aTextMatrix, m_aTitle, 0, m_aTitle.getLength(),
                         std::vector<double>(), {}, std::move(aFontAttr), 
css::lang::Locale(),
-                        rColor.getBColor());
+                        m_aTextColor.getBColor());
 
     Point aTextStart(nLeft + aHintMargin.Width() + aIndent.Width(),
                      nTop + aHintMargin.Height() + aFontMetric.GetLineHeight() 
+ aIndent.Height());
@@ -125,7 +126,7 @@ drawinglayer::primitive2d::Primitive2DContainer 
ScOverlayHint::createOverlaySequ
                                         new 
drawinglayer::primitive2d::TextSimplePortionPrimitive2D(
                                                 aTextMatrix, aLine, 0, 
aLine.getLength(),
                                                 std::vector<double>(), {}, 
aFontAttr, css::lang::Locale(),
-                                                rColor.getBColor());
+                                                m_aTextColor.getBColor());
 
         rRange.expand(pMessage->getB2DRange(aDummy));
 
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 68642aee1c24..f9e534d55cd2 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -835,9 +835,13 @@ void ScTabView::TestHintWindow()
                  aPos.X() < aWinSize.Width() && aPos.Y() < aWinSize.Height() )
             {
                 const svtools::ColorConfig& rColorCfg = 
ScModule::get()->GetColorConfig();
-                Color aCommentColor = 
rColorCfg.GetColorValue(svtools::CALCNOTESBACKGROUND).nColor;
+                // tdf#156398 use same color combination as used in 
XclDefaultPalette
+                Color aCommentText = 
rColorCfg.GetColorValue(svtools::FONTCOLOR).nColor;
+                Color aCommentBack = 
rColorCfg.GetColorValue(svtools::CALCNOTESBACKGROUND).nColor;
                 // create HintWindow, determines its size by itself
-                ScOverlayHint* pOverlay = new ScOverlayHint(aTitle, aMessage, 
aCommentColor, pFrameWin->GetFont());
+                ScOverlayHint* pOverlay = new ScOverlayHint(aTitle, aMessage,
+                                                            aCommentBack, 
aCommentText,
+                                                            
pFrameWin->GetFont());
 
                 mxInputHintOO.reset(new sdr::overlay::OverlayObjectList);
                 
mxInputHintOO->append(std::unique_ptr<sdr::overlay::OverlayObject>(pOverlay));
@@ -872,7 +876,10 @@ void ScTabView::TestHintWindow()
                         //missing portions will be displayed in the other 
split windows to form an apparent
                         //single tip, albeit "under" the split lines
                         Point 
aOtherPos(pWindow->ScreenToOutputPixel(pWin->OutputToScreenPixel(aHintPos)));
-                        std::unique_ptr<ScOverlayHint> pOtherOverlay(new 
ScOverlayHint(aTitle, aMessage, aCommentColor, pFrameWin->GetFont()));
+                        std::unique_ptr<ScOverlayHint> pOtherOverlay(new 
ScOverlayHint(aTitle, aMessage,
+                                                                               
        aCommentBack,
+                                                                               
        aCommentText,
+                                                                               
        pFrameWin->GetFont()));
                         Point aFooPos(pWindow->PixelToLogic(aOtherPos, 
pWindow->GetDrawMapMode()));
                         pOtherOverlay->SetPos(aFooPos, 
pWindow->GetDrawMapMode());
                         xOverlayManager->add(*pOtherOverlay);

Reply via email to