[PATCH 2/4] Decoview cleanup - DrawButton

Matteo Casalin matteo.casalin at poste.it
Sun Dec 4 03:18:49 PST 2011


---
 vcl/source/window/decoview.cxx |  508 ++++++++++++++++++++--------------------
 1 files changed, 249 insertions(+), 259 deletions(-)

diff --git a/vcl/source/window/decoview.cxx b/vcl/source/window/decoview.cxx
index 9abd97e..452bbb4 100644
--- a/vcl/source/window/decoview.cxx
+++ b/vcl/source/window/decoview.cxx
@@ -430,6 +430,214 @@ void ImplDrawSymbol( OutputDevice* pDev, Rectangle nRect, const SymbolType eType
     }
 }
 
+
+void ImplDrawDPILineRect( OutputDevice *const pDev, Rectangle& rRect,
+                          const Color *const pColor, const bool bRound = false )
+{
+    long nLineWidth = pDev->ImplGetDPIX()/300;
+    long nLineHeight = pDev->ImplGetDPIY()/300;
+    if ( !nLineWidth )
+        nLineWidth = 1;
+    if ( !nLineHeight )
+        nLineHeight = 1;
+
+    if ( pColor )
+    {
+        if ( (nLineWidth == 1) && (nLineHeight == 1) )
+        {
+            pDev->SetLineColor( *pColor );
+            if( bRound )
+            {
+                pDev->DrawLine( Point( rRect.Left()+1, rRect.Top()), Point( rRect.Right()-1, rRect.Top()) );
+                pDev->DrawLine( Point( rRect.Left()+1, rRect.Bottom()), Point( rRect.Right()-1, rRect.Bottom()) );
+                pDev->DrawLine( Point( rRect.Left(), rRect.Top()+1), Point( rRect.Left(), rRect.Bottom()-1) );
+                pDev->DrawLine( Point( rRect.Right(), rRect.Top()+1), Point( rRect.Right(), rRect.Bottom()-1) );
+            }
+            else
+            {
+                pDev->SetFillColor();
+                pDev->DrawRect( rRect );
+            }
+        }
+        else
+        {
+            const long nWidth = rRect.GetWidth();
+            const long nHeight = rRect.GetHeight();
+            pDev->SetLineColor();
+            pDev->SetFillColor( *pColor );
+            pDev->DrawRect( Rectangle( rRect.TopLeft(), Size( nWidth, nLineHeight ) ) );
+            pDev->DrawRect( Rectangle( rRect.TopLeft(), Size( nLineWidth, nHeight ) ) );
+            pDev->DrawRect( Rectangle( Point( rRect.Left(), rRect.Bottom()-nLineHeight ),
+                                       Size( nWidth, nLineHeight ) ) );
+            pDev->DrawRect( Rectangle( Point( rRect.Right()-nLineWidth, rRect.Top() ),
+                                       Size( nLineWidth, nHeight ) ) );
+        }
+    }
+
+    rRect.Left()   += nLineWidth;
+    rRect.Top()    += nLineHeight;
+    rRect.Right()  -= nLineWidth;
+    rRect.Bottom() -= nLineHeight;
+}
+
+
+void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
+                     const sal_uInt16 nStyle )
+{
+    const StyleSettings& rStyleSettings = pDev->GetSettings().GetStyleSettings();
+
+    if ( (nStyle & BUTTON_DRAW_MONO) ||
+         (rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
+    {
+        const Color aBlackColor( COL_BLACK );
+
+        if ( nStyle & BUTTON_DRAW_DEFAULT )
+        {
+            // default selection shows a wider border
+            ImplDrawDPILineRect( pDev, aFillRect, &aBlackColor );
+        }
+
+        ImplDrawDPILineRect( pDev, aFillRect, &aBlackColor );
+
+        Size aBrdSize( 1, 1 );
+        if ( pDev->GetOutDevType() == OUTDEV_PRINTER )
+        {
+            aBrdSize = pDev->LogicToPixel( Size( 20, 20 ), MapMode(MAP_100TH_MM) );
+            if ( !aBrdSize.Width() )
+                aBrdSize.Width() = 1;
+            if ( !aBrdSize.Height() )
+                aBrdSize.Height() = 1;
+        }
+
+        pDev->SetLineColor();
+        pDev->SetFillColor( aBlackColor );
+        const Rectangle aOrigFillRect(aFillRect);
+        if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
+        {
+            // shrink fill rect
+            aFillRect.Left() += aBrdSize.Width();
+            aFillRect.Top()  += aBrdSize.Height();
+            // draw top and left borders (aOrigFillRect-aFillRect)
+            pDev->DrawRect( Rectangle( aOrigFillRect.Left(), aOrigFillRect.Top(),
+                                       aOrigFillRect.Right(), aFillRect.Top()-1 ) );
+            pDev->DrawRect( Rectangle( aOrigFillRect.Left(), aOrigFillRect.Top(),
+                                       aFillRect.Left()-1, aOrigFillRect.Bottom() ) );
+        }
+        else
+        {
+            // shrink fill rect
+            aFillRect.Right()  -= aBrdSize.Width();
+            aFillRect.Bottom() -= aBrdSize.Height();
+            // draw bottom and right borders (aOrigFillRect-aFillRect)
+            pDev->DrawRect( Rectangle( aOrigFillRect.Left(), aFillRect.Bottom()+1,
+                                       aOrigFillRect.Right(), aOrigFillRect.Bottom() ) );
+            pDev->DrawRect( Rectangle( aFillRect.Right()+1, aOrigFillRect.Top(),
+                                       aOrigFillRect.Right(), aOrigFillRect.Bottom() ) );
+        }
+
+        if ( !(nStyle & BUTTON_DRAW_NOFILL) )
+        {
+            // Hack: Auf Druckern wollen wir im MonoChrom-Modus trotzdem
+            // erstmal graue Buttons haben
+            if ( pDev->GetOutDevType() == OUTDEV_PRINTER )
+                pDev->SetFillColor( Color( COL_LIGHTGRAY ) );
+            else
+                pDev->SetFillColor( Color( COL_WHITE ) );
+            pDev->DrawRect( aFillRect );
+        }
+    }
+    else
+    {
+        if ( nStyle & BUTTON_DRAW_DEFAULT )
+        {
+            const Color aDefBtnColor = rStyleSettings.GetDarkShadowColor();
+            ImplDrawDPILineRect( pDev, aFillRect, &aDefBtnColor );
+        }
+
+        if ( nStyle & BUTTON_DRAW_NOLEFTLIGHTBORDER )
+        {
+            pDev->SetLineColor( rStyleSettings.GetLightBorderColor() );
+            pDev->DrawLine( Point( aFillRect.Left(), aFillRect.Top() ),
+                            Point( aFillRect.Left(), aFillRect.Bottom() ) );
+            ++aFillRect.Left();
+        }
+
+        Color aColor1;
+        Color aColor2;
+        if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
+        {
+            aColor1 = rStyleSettings.GetDarkShadowColor();
+            aColor2 = rStyleSettings.GetLightColor();
+        }
+        else
+        {
+            if ( nStyle & BUTTON_DRAW_NOTOPLIGHTBORDER )
+            {
+                pDev->SetLineColor( rStyleSettings.GetLightBorderColor() );
+                pDev->DrawLine( Point( aFillRect.Left(), aFillRect.Top()),
+                                Point( aFillRect.Right(), aFillRect.Top() ) );
+                ++aFillRect.Top();
+            }
+            if ( (( (nStyle & BUTTON_DRAW_NOBOTTOMSHADOWBORDER) | BUTTON_DRAW_FLAT) == (BUTTON_DRAW_NOBOTTOMSHADOWBORDER | BUTTON_DRAW_FLAT)) &&
+                    !(nStyle & BUTTON_DRAW_HIGHLIGHT) )
+            {
+                pDev->SetLineColor( rStyleSettings.GetDarkShadowColor() );
+                pDev->DrawLine( Point( aFillRect.Left(), aFillRect.Bottom() ),
+                                Point( aFillRect.Right(), aFillRect.Bottom() ) );
+                --aFillRect.Bottom();
+            }
+
+            if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
+                aColor1 = rStyleSettings.GetLightBorderColor();
+            else
+                aColor1 = rStyleSettings.GetLightColor();
+            if ( (nStyle & BUTTON_DRAW_FLATTEST) == BUTTON_DRAW_FLAT )
+                aColor2 = rStyleSettings.GetShadowColor();
+            else
+                aColor2 = rStyleSettings.GetDarkShadowColor();
+        }
+
+        pDev->SetLineColor();
+
+        pDev->ImplDraw2ColorFrame( aFillRect, aColor1, aColor2 );
+        ++aFillRect.Left();
+        ++aFillRect.Top();
+        --aFillRect.Right();
+        --aFillRect.Bottom();
+
+        if ( !((nStyle & BUTTON_DRAW_FLATTEST) == BUTTON_DRAW_FLAT) )
+        {
+            if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
+            {
+                aColor1 = rStyleSettings.GetShadowColor();
+                aColor2 = rStyleSettings.GetLightBorderColor();
+            }
+            else
+            {
+                if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
+                    aColor1 = rStyleSettings.GetLightColor();
+                else
+                    aColor1 = rStyleSettings.GetLightBorderColor();
+                aColor2 = rStyleSettings.GetShadowColor();
+            }
+            pDev->ImplDraw2ColorFrame( aFillRect, aColor1, aColor2 );
+            ++aFillRect.Left();
+            ++aFillRect.Top();
+            --aFillRect.Right();
+            --aFillRect.Bottom();
+        }
+
+        if ( !(nStyle & BUTTON_DRAW_NOFILL) )
+        {
+            if ( nStyle & (BUTTON_DRAW_CHECKED | BUTTON_DRAW_DONTKNOW) )
+                pDev->SetFillColor( rStyleSettings.GetCheckedColor() );
+            else
+                pDev->SetFillColor( rStyleSettings.GetFaceColor() );
+            pDev->DrawRect( aFillRect );
+        }
+    }
+}
+
 }
 
 
@@ -548,55 +756,6 @@ void DecorationView::DrawHighlightFrame( const Rectangle& rRect,
 
 // =======================================================================
 
-static void ImplDrawDPILineRect( OutputDevice* pDev, Rectangle& rRect,
-                                 const Color* pColor, sal_Bool bRound = sal_False )
-{
-    long nLineWidth = pDev->ImplGetDPIX()/300;
-    long nLineHeight = pDev->ImplGetDPIY()/300;
-    if ( !nLineWidth )
-        nLineWidth = 1;
-    if ( !nLineHeight )
-        nLineHeight = 1;
-
-    if ( pColor )
-    {
-        if ( (nLineWidth == 1) && (nLineHeight == 1) )
-        {
-            pDev->SetLineColor( *pColor );
-            pDev->SetFillColor();
-            if( bRound )
-            {
-                pDev->DrawLine( Point( rRect.Left()+1, rRect.Top()), Point( rRect.Right()-1, rRect.Top()) );
-                pDev->DrawLine( Point( rRect.Left()+1, rRect.Bottom()), Point( rRect.Right()-1, rRect.Bottom()) );
-                pDev->DrawLine( Point( rRect.Left(), rRect.Top()+1), Point( rRect.Left(), rRect.Bottom()-1) );
-                pDev->DrawLine( Point( rRect.Right(), rRect.Top()+1), Point( rRect.Right(), rRect.Bottom()-1) );
-            }
-            else
-                pDev->DrawRect( rRect );
-        }
-        else
-        {
-            long nWidth = rRect.GetWidth();
-            long nHeight = rRect.GetHeight();
-            pDev->SetLineColor();
-            pDev->SetFillColor( *pColor );
-            pDev->DrawRect( Rectangle( rRect.TopLeft(), Size( nWidth, nLineHeight ) ) );
-            pDev->DrawRect( Rectangle( rRect.TopLeft(), Size( nLineWidth, nHeight ) ) );
-            pDev->DrawRect( Rectangle( Point( rRect.Left(), rRect.Bottom()-nLineHeight ),
-                                       Size( nWidth, nLineHeight ) ) );
-            pDev->DrawRect( Rectangle( Point( rRect.Right()-nLineWidth, rRect.Top() ),
-                                       Size( nLineWidth, nHeight ) ) );
-        }
-    }
-
-    rRect.Left()    += nLineWidth;
-    rRect.Top()     += nLineHeight;
-    rRect.Right()   -= nLineWidth;
-    rRect.Bottom()  -= nLineHeight;
-}
-
-// =======================================================================
-
 static void ImplDrawFrame( OutputDevice* pDev, Rectangle& rRect,
                            const StyleSettings& rStyleSettings, sal_uInt16 nStyle )
 {
@@ -865,247 +1024,78 @@ Rectangle DecorationView::DrawFrame( const Rectangle& rRect, sal_uInt16 nStyle )
 
 // =======================================================================
 
-static void ImplDrawButton( OutputDevice* pDev, Rectangle& rRect,
-                            const StyleSettings& rStyleSettings, sal_uInt16 nStyle )
+Rectangle DecorationView::DrawButton( const Rectangle& rRect, sal_uInt16 nStyle )
 {
-    Rectangle aFillRect = rRect;
-
-    if ( nStyle & BUTTON_DRAW_MONO )
+    if ( rRect.IsEmpty() )
     {
-        if ( !(nStyle & BUTTON_DRAW_NODRAW) )
-        {
-            Color aBlackColor( COL_BLACK );
-
-            if ( nStyle & BUTTON_DRAW_DEFAULT )
-                ImplDrawDPILineRect( pDev, aFillRect, &aBlackColor );
-
-            ImplDrawDPILineRect( pDev, aFillRect, &aBlackColor );
-
-            Size aBrdSize( 1, 1 );
-            if ( pDev->GetOutDevType() == OUTDEV_PRINTER )
-            {
-                MapMode aResMapMode( MAP_100TH_MM );
-                aBrdSize = pDev->LogicToPixel( Size( 20, 20 ), aResMapMode );
-                if ( !aBrdSize.Width() )
-                    aBrdSize.Width() = 1;
-                if ( !aBrdSize.Height() )
-                    aBrdSize.Height() = 1;
-            }
-            pDev->SetLineColor();
-            pDev->SetFillColor( aBlackColor );
-            Rectangle aRect1;
-            Rectangle aRect2;
-            aRect1.Left()   = aFillRect.Left();
-            aRect1.Right()  = aFillRect.Right(),
-            aRect2.Top()    = aFillRect.Top();
-            aRect2.Bottom() = aFillRect.Bottom();
-            if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
-            {
-                aRect1.Top()    = aFillRect.Top();
-                aRect1.Bottom() = aBrdSize.Height()-1;
-                aRect2.Left()   = aFillRect.Left();
-                aRect2.Right()  = aFillRect.Left()+aBrdSize.Width()-1;
-                aFillRect.Left() += aBrdSize.Width();
-                aFillRect.Top()  += aBrdSize.Height();
-            }
-            else
-            {
-                aRect1.Top()    = aFillRect.Bottom()-aBrdSize.Height()+1;
-                aRect1.Bottom() = aFillRect.Bottom();
-                aRect2.Left()   = aFillRect.Right()-aBrdSize.Width()+1;
-                aRect2.Right()  = aFillRect.Right(),
-                aFillRect.Right()  -= aBrdSize.Width();
-                aFillRect.Bottom() -= aBrdSize.Height();
-            }
-            pDev->DrawRect( aRect1 );
-            pDev->DrawRect( aRect2 );
-        }
+        return rRect;
     }
-    else
-    {
-        if ( !(nStyle & BUTTON_DRAW_NODRAW) )
-        {
-            if ( nStyle & BUTTON_DRAW_DEFAULT )
-            {
-                Color aDefBtnColor = rStyleSettings.GetDarkShadowColor();
-                ImplDrawDPILineRect( pDev, aFillRect, &aDefBtnColor );
-            }
-        }
-
-        if ( !(nStyle & BUTTON_DRAW_NODRAW) )
-        {
-            pDev->SetLineColor();
-            if ( nStyle & BUTTON_DRAW_NOLEFTLIGHTBORDER )
-            {
-                pDev->SetFillColor( rStyleSettings.GetLightBorderColor() );
-                pDev->DrawRect( Rectangle( aFillRect.Left(), aFillRect.Top(),
-                                           aFillRect.Left(), aFillRect.Bottom() ) );
-                aFillRect.Left()++;
-            }
-            if ( (nStyle & BUTTON_DRAW_NOTOPLIGHTBORDER) &&
-                 !(nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED)) )
-            {
-                pDev->SetFillColor( rStyleSettings.GetLightBorderColor() );
-                pDev->DrawRect( Rectangle( aFillRect.Left(), aFillRect.Top(),
-                                           aFillRect.Right(), aFillRect.Top() ) );
-                aFillRect.Top()++;
-            }
-            if ( (( (nStyle & BUTTON_DRAW_NOBOTTOMSHADOWBORDER) | BUTTON_DRAW_FLAT) == (BUTTON_DRAW_NOBOTTOMSHADOWBORDER | BUTTON_DRAW_FLAT)) &&
-                 !(nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED | BUTTON_DRAW_HIGHLIGHT)) )
-            {
-                pDev->SetFillColor( rStyleSettings.GetDarkShadowColor() );
-                pDev->DrawRect( Rectangle( aFillRect.Left(), aFillRect.Bottom(),
-                                           aFillRect.Right(), aFillRect.Bottom() ) );
-                aFillRect.Bottom()--;
-            }
 
-            Color aColor1;
-            Color aColor2;
-            if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
-            {
-                aColor1 = rStyleSettings.GetDarkShadowColor();
-                aColor2 = rStyleSettings.GetLightColor();
-            }
-            else
-            {
-                if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
-                    aColor1 = rStyleSettings.GetLightBorderColor();
-                else
-                    aColor1 = rStyleSettings.GetLightColor();
-                if ( (nStyle & BUTTON_DRAW_FLATTEST) == BUTTON_DRAW_FLAT )
-                    aColor2 = rStyleSettings.GetShadowColor();
-                else
-                    aColor2 = rStyleSettings.GetDarkShadowColor();
-            }
-            pDev->ImplDraw2ColorFrame( aFillRect, aColor1, aColor2 );
-            aFillRect.Left()++;
-            aFillRect.Top()++;
-            aFillRect.Right()--;
-            aFillRect.Bottom()--;
+    Rectangle aRect = rRect;
+    const bool bOldMap = mpOutDev->IsMapModeEnabled();
 
-            if ( !((nStyle & BUTTON_DRAW_FLATTEST) == BUTTON_DRAW_FLAT) )
-            {
-                if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
-                {
-                    aColor1 = rStyleSettings.GetShadowColor();
-                    aColor2 = rStyleSettings.GetLightBorderColor();
-                }
-                else
-                {
-                    if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
-                        aColor1 = rStyleSettings.GetLightColor();
-                    else
-                        aColor1 = rStyleSettings.GetLightBorderColor();
-                    aColor2 = rStyleSettings.GetShadowColor();
-                }
-                pDev->ImplDraw2ColorFrame( aFillRect, aColor1, aColor2 );
-                aFillRect.Left()++;
-                aFillRect.Top()++;
-                aFillRect.Right()--;
-                aFillRect.Bottom()--;
-            }
-        }
+    if ( bOldMap )
+    {
+        aRect = mpOutDev->LogicToPixel( aRect );
+        mpOutDev->EnableMapMode( false );
     }
 
-    if ( !(nStyle & (BUTTON_DRAW_NOFILL | BUTTON_DRAW_NODRAW)) )
+    if ( !(nStyle & BUTTON_DRAW_NODRAW) )
     {
-        pDev->SetLineColor();
-        if ( nStyle & BUTTON_DRAW_MONO )
-        {
-            // Hack: Auf Druckern wollen wir im MonoChrom-Modus trotzdem
-            // erstmal graue Buttons haben
-            if ( pDev->GetOutDevType() == OUTDEV_PRINTER )
-                pDev->SetFillColor( Color( COL_LIGHTGRAY ) );
-            else
-                pDev->SetFillColor( Color( COL_WHITE ) );
-        }
-        else
-        {
-            if ( nStyle & (BUTTON_DRAW_CHECKED | BUTTON_DRAW_DONTKNOW) )
-                pDev->SetFillColor( rStyleSettings.GetCheckedColor() );
-            else
-                pDev->SetFillColor( rStyleSettings.GetFaceColor() );
-        }
-        pDev->DrawRect( aFillRect );
+        const Color maOldLineColor = mpOutDev->GetLineColor();
+        const Color maOldFillColor = mpOutDev->GetFillColor();
+        ImplDrawButton( mpOutDev, aRect, nStyle );
+        mpOutDev->SetLineColor( maOldLineColor );
+        mpOutDev->SetFillColor( maOldFillColor );
     }
 
     // Ein Border freilassen, der jedoch bei Default-Darstellung
     // mitbenutzt wird
-    rRect.Left()++;
-    rRect.Top()++;
-    rRect.Right()--;
-    rRect.Bottom()--;
+    ++aRect.Left();
+    ++aRect.Top();
+    --aRect.Right();
+    --aRect.Bottom();
 
     if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
     {
-        rRect.Left()++;
-        rRect.Top()++;
+        ++aRect.Left();
+        ++aRect.Top();
     }
     else if ( nStyle & BUTTON_DRAW_NOLEFTLIGHTBORDER )
-        rRect.Left()++;
+    {
+        ++aRect.Left();
+    }
 
     if ( nStyle & BUTTON_DRAW_PRESSED )
     {
-        if ( (rRect.GetHeight() > 10) && (rRect.GetWidth() > 10) )
+        if ( (aRect.GetHeight() > 10) && (aRect.GetWidth() > 10) )
         {
-            rRect.Left()    += 4;
-            rRect.Top()     += 4;
-            rRect.Right()   -= 1;
-            rRect.Bottom()  -= 1;
+            aRect.Left()   += 4;
+            aRect.Top()    += 4;
+            aRect.Right()  -= 1;
+            aRect.Bottom() -= 1;
         }
         else
         {
-            rRect.Left()    += 3;
-            rRect.Top()     += 3;
-            rRect.Right()   -= 2;
-            rRect.Bottom()  -= 2;
+            aRect.Left()   += 3;
+            aRect.Top()    += 3;
+            aRect.Right()  -= 2;
+            aRect.Bottom() -= 2;
         }
     }
     else if ( nStyle & BUTTON_DRAW_CHECKED )
     {
-        rRect.Left()    += 3;
-        rRect.Top()     += 3;
-        rRect.Right()   -= 2;
-        rRect.Bottom()  -= 2;
+        aRect.Left()   += 3;
+        aRect.Top()    += 3;
+        aRect.Right()  -= 2;
+        aRect.Bottom() -= 2;
     }
     else
     {
-        rRect.Left()    += 2;
-        rRect.Top()     += 2;
-        rRect.Right()   -= 3;
-        rRect.Bottom()  -= 3;
-    }
-}
-
-// -----------------------------------------------------------------------
-
-Rectangle DecorationView::DrawButton( const Rectangle& rRect, sal_uInt16 nStyle )
-{
-    Rectangle   aRect = rRect;
-    sal_Bool        bOldMap = mpOutDev->IsMapModeEnabled();
-    if ( bOldMap )
-    {
-        aRect = mpOutDev->LogicToPixel( aRect );
-        mpOutDev->EnableMapMode( sal_False );
-    }
-
-    if ( !rRect.IsEmpty() )
-    {
-        const StyleSettings& rStyleSettings = mpOutDev->GetSettings().GetStyleSettings();
-
-        if ( rStyleSettings.GetOptions() & STYLE_OPTION_MONO )
-            nStyle |= BUTTON_DRAW_MONO;
-
-        if ( nStyle & BUTTON_DRAW_NODRAW )
-             ImplDrawButton( mpOutDev, aRect, rStyleSettings, nStyle );
-        else
-        {
-             Color maOldLineColor  = mpOutDev->GetLineColor();
-             Color maOldFillColor  = mpOutDev->GetFillColor();
-             ImplDrawButton( mpOutDev, aRect, rStyleSettings, nStyle );
-             mpOutDev->SetLineColor( maOldLineColor );
-             mpOutDev->SetFillColor( maOldFillColor );
-        }
+        aRect.Left()   += 2;
+        aRect.Top()    += 2;
+        aRect.Right()  -= 3;
+        aRect.Bottom() -= 3;
     }
 
     if ( bOldMap )
-- 
1.7.5.4


--------------080003030406010305090108--


More information about the LibreOffice mailing list