[Libreoffice-commits] core.git: include/vcl vcl/source

Caolán McNamara caolanm at redhat.com
Wed Jan 18 16:38:00 UTC 2017


 include/vcl/ctrl.hxx           |    7 ++++---
 vcl/source/control/button.cxx  |    8 ++++----
 vcl/source/control/ctrl.cxx    |   15 +++++++--------
 vcl/source/control/fixed.cxx   |    4 ++--
 vcl/source/control/tabctrl.cxx |    4 ++--
 5 files changed, 19 insertions(+), 19 deletions(-)

New commits:
commit bc6479e92b56df742dd7339d337ffc78d2f9e4a1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Jan 18 16:36:19 2017 +0000

    change DrawControlText to return new rect rather than change old one
    
    Change-Id: Id5c80ff263e429d4239a844db216e87a656edb2e

diff --git a/include/vcl/ctrl.hxx b/include/vcl/ctrl.hxx
index ca23031..2f93f64 100644
--- a/include/vcl/ctrl.hxx
+++ b/include/vcl/ctrl.hxx
@@ -80,10 +80,11 @@ protected:
         If no reference device is set, the draw request will simply be forwarded to OutputDevice::DrawText. Otherwise,
         the text will be rendered according to the metrics at the reference device.
 
-        Note that the given rectangle might be modified, it will contain the result of a GetTextRect call (either
-        directly at the target device, or taking the reference device into account) when returning.
+        return will contain the result of a GetTextRect call (either directly
+        at the target device, or taking the reference device into account) when
+        returning.
     */
-    void        DrawControlText( OutputDevice& _rTargetDevice, Rectangle& _io_rRect,
+    Rectangle DrawControlText( OutputDevice& _rTargetDevice, const Rectangle& _rRect,
                                  const OUString& _rStr, DrawTextFlags _nStyle,
                                  MetricVector* _pVector, OUString* _pDisplayText ) const;
 
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 486625b..91cc0dd 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -286,7 +286,7 @@ void Button::ImplDrawAlignedImage(OutputDevice* pDev, Point& rPos,
     }
     else if (bDrawText && !bDrawImage && !bHasSymbol)
     {
-        DrawControlText(*pDev, aOutRect, aText, nTextStyle, nullptr, nullptr);
+        aOutRect = DrawControlText(*pDev, aOutRect, aText, nTextStyle, nullptr, nullptr);
 
         ImplSetFocusRect(aOutRect);
         rSize = aOutRect.GetSize();
@@ -511,9 +511,9 @@ void Button::ImplDrawAlignedImage(OutputDevice* pDev, Point& rPos,
 
     if (bDrawText)
     {
-        Rectangle       aTOutRect( aTextPos, aTextSize );
-        ImplSetFocusRect( aTOutRect );
-        DrawControlText( *pDev, aTOutRect, aText, nTextStyle, nullptr, nullptr );
+        const Rectangle aTOutRect(aTextPos, aTextSize);
+        ImplSetFocusRect(aTOutRect);
+        DrawControlText(*pDev, aTOutRect, aText, nTextStyle, nullptr, nullptr);
     }
     else
     {
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx
index 94af54c..f75e54f 100644
--- a/vcl/source/control/ctrl.cxx
+++ b/vcl/source/control/ctrl.cxx
@@ -412,7 +412,7 @@ void Control::ImplInitSettings(const bool, const bool)
     ApplySettings(*this);
 }
 
-void Control::DrawControlText( OutputDevice& _rTargetDevice, Rectangle& _io_rRect, const OUString& _rStr,
+Rectangle Control::DrawControlText( OutputDevice& _rTargetDevice, const Rectangle& rRect, const OUString& _rStr,
     DrawTextFlags _nStyle, MetricVector* _pVector, OUString* _pDisplayText ) const
 {
     OUString rPStr = _rStr;
@@ -429,14 +429,13 @@ void Control::DrawControlText( OutputDevice& _rTargetDevice, Rectangle& _io_rRec
 
     if ( !mpControlData->mpReferenceDevice || ( mpControlData->mpReferenceDevice == &_rTargetDevice ) )
     {
-        _io_rRect = _rTargetDevice.GetTextRect( _io_rRect, rPStr, nPStyle );
-        _rTargetDevice.DrawText( _io_rRect, rPStr, nPStyle, _pVector, _pDisplayText );
-    }
-    else
-    {
-        ControlTextRenderer aRenderer( *this, _rTargetDevice, *mpControlData->mpReferenceDevice );
-        _io_rRect = aRenderer.DrawText( _io_rRect, rPStr, nPStyle, _pVector, _pDisplayText );
+        const Rectangle aRet = _rTargetDevice.GetTextRect(rRect, rPStr, nPStyle);
+        _rTargetDevice.DrawText(aRet, rPStr, nPStyle, _pVector, _pDisplayText);
+        return aRet;
     }
+
+    ControlTextRenderer aRenderer( *this, _rTargetDevice, *mpControlData->mpReferenceDevice );
+    return aRenderer.DrawText(rRect, rPStr, nPStyle, _pVector, _pDisplayText);
 }
 
 Font
diff --git a/vcl/source/control/fixed.cxx b/vcl/source/control/fixed.cxx
index 483e136..46d1299 100644
--- a/vcl/source/control/fixed.cxx
+++ b/vcl/source/control/fixed.cxx
@@ -182,7 +182,7 @@ void FixedText::ImplDraw(OutputDevice* pDev, DrawFlags nDrawFlags,
     if( bFillLayout )
         (mpControlData->mpLayoutData->m_aDisplayText).clear();
 
-    Rectangle aRect( Rectangle( aPos, rSize ) );
+    const Rectangle aRect(aPos, rSize);
     DrawControlText(*pDev, aRect, aText, nTextStyle,
         bFillLayout ? &mpControlData->mpLayoutData->m_aUnicodeBoundRects : nullptr,
         bFillLayout ? &mpControlData->mpLayoutData->m_aDisplayText : nullptr);
@@ -557,7 +557,7 @@ void FixedLine::ImplDraw(vcl::RenderContext& rRenderContext)
         if (rStyleSettings.GetOptions() & StyleSettingsOptions::Mono)
             nStyle |= DrawTextFlags::Mono;
 
-        DrawControlText(*this, aRect, aText, nStyle, nullptr, nullptr);
+        aRect = DrawControlText(*this, aRect, aText, nStyle, nullptr, nullptr);
 
         long nTop = aRect.Top() + ((aRect.GetHeight() - 1) / 2);
         aDecoView.DrawSeparator(Point(aRect.Right() + FIXEDLINE_TEXT_BORDER, nTop), Point(aOutSize.Width() - 1, nTop), false);
diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx
index 4c69fce..f0369b5 100644
--- a/vcl/source/control/tabctrl.cxx
+++ b/vcl/source/control/tabctrl.cxx
@@ -940,8 +940,8 @@ void TabControl::ImplDrawItem(vcl::RenderContext& rRenderContext, ImplTabItem* p
         Color aOldColor(rRenderContext.GetTextColor());
         rRenderContext.SetTextColor(aColor);
 
-        Rectangle aOutRect(nXPos + aImageSize.Width(), nYPos,
-                           nXPos + aImageSize.Width() + nTextWidth, nYPos + nTextHeight);
+        const Rectangle aOutRect(nXPos + aImageSize.Width(), nYPos,
+                                 nXPos + aImageSize.Width() + nTextWidth, nYPos + nTextHeight);
         DrawControlText(rRenderContext, aOutRect, pItem->maFormatText, nStyle,
                         nullptr, nullptr);
 


More information about the Libreoffice-commits mailing list