[Libreoffice-commits] core.git: sw/source
Michaël Lefèvre
lefevre00 at yahoo.fr
Tue Nov 25 08:53:52 PST 2014
sw/source/core/layout/paintfrm.cxx | 183 ++++++++++++++++++++-----------------
1 file changed, 99 insertions(+), 84 deletions(-)
New commits:
commit cccf054a4353d1efdb8318e8dbed73de6d9c3d70
Author: Michaël Lefèvre <lefevre00 at yahoo.fr>
Date: Mon Nov 24 11:07:32 2014 +0100
Use parameters instead of static access when possible
Change-Id: I36ef1f24567b9e561f2bd5e981cbd60dba1343d1
Reviewed-on: https://gerrit.libreoffice.org/13103
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 92a1153..9ace578 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -224,12 +224,10 @@ public:
}
};
-// Current zoom factor
+// Default zoom factor
const static double aMinDistScale = 0.73;
const static double aEdgeScale = 0.5;
-//static SwSubsRects *gProp.pSSubsLines = 0;
-
//To optimize the expensive RetouchColor determination
Color aGlobalRetoucheColor;
@@ -386,7 +384,7 @@ void SwCalcPixStatics( OutputDevice *pOut )
}
/**
- * To be able to save the statics so the paint is more or lees reentrant
+ * To be able to save the statics so the paint is more or less reentrant
*/
class SwSavePaintStatics : public SwPaintProperties
{
@@ -443,8 +441,8 @@ SwSavePaintStatics::~SwSavePaintStatics()
gProp.pSFlyMetafileOut = pSFlyMetafileOut;
gProp.pSRetoucheFly = pSRetoucheFly;
gProp.pSRetoucheFly2 = pSRetoucheFly2;
- gProp.pSFlyOnlyDraw = pSFlyOnlyDraw;
- gProp.pBLines = pBLines;
+ gProp.pSFlyOnlyDraw = pSFlyOnlyDraw;
+ gProp.pBLines = pBLines;
gProp.pSLines = pSLines;
gProp.pSSubsLines = pSSubsLines;
gProp.pSSpecSubsLines = pSSpecSubsLines;
@@ -455,9 +453,9 @@ SwSavePaintStatics::~SwSavePaintStatics()
gProp.nSHalfPixelSzH = nSHalfPixelSzH;
gProp.nSMinDistPixelW = nSMinDistPixelW;
gProp.nSMinDistPixelH = nSMinDistPixelH;
- aGlobalRetoucheColor = aSGlobalRetoucheColor;
- gProp.aSScaleX = aSScaleX;
- gProp.aSScaleY = aSScaleY;
+ aGlobalRetoucheColor = aSGlobalRetoucheColor;
+ gProp.aSScaleX = aSScaleX;
+ gProp.aSScaleY = aSScaleY;
}
/**
@@ -471,9 +469,10 @@ SwSavePaintStatics::~SwSavePaintStatics()
**/
static sal_uInt8 lcl_TryMergeLines(
pair<double, double> const mergeA,
- pair<double, double> const mergeB)
+ pair<double, double> const mergeB,
+ SwPaintProperties *properties)
{
- double const fMergeGap(gProp.nSPixelSzW + gProp.nSHalfPixelSzW); // NOT static!
+ double const fMergeGap(properties->nSPixelSzW + properties->nSHalfPixelSzW); // NOT static!
// A is above/before B
if( mergeA.second <= mergeB.second &&
mergeA.second + fMergeGap >= mergeB.first )
@@ -528,7 +527,8 @@ lcl_MergeBorderLines(
**/
static ::rtl::Reference<BorderLinePrimitive2D>
lcl_TryMergeBorderLine(BorderLinePrimitive2D const& rThis,
- BorderLinePrimitive2D const& rOther)
+ BorderLinePrimitive2D const& rOther,
+ SwPaintProperties *properties)
{
assert(rThis.getEnd().getX() >= rThis.getStart().getX());
assert(rThis.getEnd().getY() >= rThis.getStart().getY());
@@ -558,7 +558,8 @@ lcl_TryMergeBorderLine(BorderLinePrimitive2D const& rThis,
assert(rThis.getEnd().getX() == rOther.getEnd().getX());
nRet = lcl_TryMergeLines(
make_pair(rThis.getStart().getY(), rThis.getEnd().getY()),
- make_pair(rOther.getStart().getY(),rOther.getEnd().getY()));
+ make_pair(rOther.getStart().getY(),rOther.getEnd().getY()),
+ properties);
}
}
else // horizontal line
@@ -568,7 +569,8 @@ lcl_TryMergeBorderLine(BorderLinePrimitive2D const& rThis,
assert(rThis.getEnd().getY() == rOther.getEnd().getY());
nRet = lcl_TryMergeLines(
make_pair(rThis.getStart().getX(), rThis.getEnd().getX()),
- make_pair(rOther.getStart().getX(),rOther.getEnd().getX()));
+ make_pair(rOther.getStart().getX(),rOther.getEnd().getX()),
+ properties);
}
}
@@ -601,7 +603,7 @@ void BorderLines::AddBorderLine(
++it)
{
::rtl::Reference<BorderLinePrimitive2D> const xMerged =
- lcl_TryMergeBorderLine(**it, *xLine);
+ lcl_TryMergeBorderLine(**it, *xLine, &gProp);
if (xMerged.is())
{
*it = xMerged; // replace existing line with merged
@@ -1377,35 +1379,35 @@ void SwAlignGrfRect( SwRect *pGrfRect, const OutputDevice &rOut )
pGrfRect->SSize( rOut.PixelToLogic( aPxRect.GetSize() ) );
}
-static long lcl_AlignWidth( const long nWidth )
+static long lcl_AlignWidth( const long nWidth, SwPaintProperties *properties )
{
if ( nWidth )
{
- const long nW = nWidth % gProp.nSPixelSzW;
+ const long nW = nWidth % properties->nSPixelSzW;
- if ( !nW || nW > gProp.nSHalfPixelSzW )
- return std::max(1L, nWidth - gProp.nSHalfPixelSzW);
+ if ( !nW || nW > properties->nSHalfPixelSzW )
+ return std::max(1L, nWidth - properties->nSHalfPixelSzW);
}
return nWidth;
}
-static long lcl_AlignHeight( const long nHeight )
+static long lcl_AlignHeight( const long nHeight, SwPaintProperties *properties )
{
if ( nHeight )
{
- const long nH = nHeight % gProp.nSPixelSzH;
+ const long nH = nHeight % properties->nSPixelSzH;
- if ( !nH || nH > gProp.nSHalfPixelSzH )
- return std::max(1L, nHeight - gProp.nSHalfPixelSzH);
+ if ( !nH || nH > properties->nSHalfPixelSzH )
+ return std::max(1L, nHeight - properties->nSHalfPixelSzH);
}
return nHeight;
}
-static long lcl_MinHeightDist( const long nDist )
+static long lcl_MinHeightDist( const long nDist, SwPaintProperties *properties )
{
- if ( gProp.aSScaleX < aMinDistScale || gProp.aSScaleY < aMinDistScale )
+ if ( properties->aSScaleX < aMinDistScale || properties->aSScaleY < aMinDistScale )
return nDist;
- return ::lcl_AlignHeight( std::max( nDist, gProp.nSMinDistPixelH ));
+ return ::lcl_AlignHeight( std::max( nDist, properties->nSMinDistPixelH ), properties);
}
/**
@@ -1413,7 +1415,8 @@ static long lcl_MinHeightDist( const long nDist )
*/
static void lcl_CalcBorderRect( SwRect &rRect, const SwFrm *pFrm,
const SwBorderAttrs &rAttrs,
- const bool bShadow )
+ const bool bShadow,
+ SwPaintProperties *properties)
{
// Special handling for cell frames.
// The printing area of a cell frame is completely enclosed in the frame area
@@ -1502,7 +1505,7 @@ static void lcl_CalcBorderRect( SwRect &rRect, const SwFrm *pFrm,
}
}
- ::SwAlignRect( rRect, gProp.pSGlobalShell );
+ ::SwAlignRect( rRect, properties->pSGlobalShell );
}
/**
@@ -1696,13 +1699,14 @@ static void lcl_ExtendLeftAndRight( SwRect& _rRect,
static void lcl_implDrawGraphicBackgrd( const SvxBrushItem& _rBackgrdBrush,
OutputDevice* _pOut,
const SwRect& _rAlignedPaintRect,
- const GraphicObject& _rGraphicObj )
+ const GraphicObject& _rGraphicObj,
+ SwPaintProperties *properties)
{
/// determine color of background
/// If color of background brush is not "no fill"/"auto fill" or
- /// <gProp.bSFlyMetafile> is set, use color of background brush, otherwise
+ /// <SwPaintProperties.bSFlyMetafile> is set, use color of background brush, otherwise
/// use global retouche color.
- const Color aColor( ( (_rBackgrdBrush.GetColor() != COL_TRANSPARENT) || gProp.bSFlyMetafile )
+ const Color aColor( ( (_rBackgrdBrush.GetColor() != COL_TRANSPARENT) || properties->bSFlyMetafile )
? _rBackgrdBrush.GetColor()
: aGlobalRetoucheColor );
@@ -1779,7 +1783,8 @@ static inline void lcl_DrawGraphicBackgrd( const SvxBrushItem& _rBackgrdBrush,
const SwRect& _rAlignedPaintRect,
const GraphicObject& _rGraphicObj,
bool _bNumberingGraphic,
- bool _bBackgrdAlreadyDrawn = false )
+ SwPaintProperties *properties,
+ bool _bBackgrdAlreadyDrawn = false)
{
// draw background with background color, if
// (1) graphic is not used as a numbering AND
@@ -1790,7 +1795,7 @@ static inline void lcl_DrawGraphicBackgrd( const SvxBrushItem& _rBackgrdBrush,
( _rGraphicObj.IsTransparent() || _rGraphicObj.GetType() == GRAPHIC_NONE )
)
{
- lcl_implDrawGraphicBackgrd( _rBackgrdBrush, _pOut, _rAlignedPaintRect, _rGraphicObj );
+ lcl_implDrawGraphicBackgrd( _rBackgrdBrush, _pOut, _rAlignedPaintRect, _rGraphicObj, properties );
}
}
@@ -1812,6 +1817,7 @@ static inline void lcl_DrawGraphicBackgrd( const SvxBrushItem& _rBackgrdBrush,
static void lcl_DrawGraphic( const SvxBrushItem& rBrush, OutputDevice *pOut,
SwViewShell &rSh, const SwRect &rGrf, const SwRect &rOut,
bool bClip, bool bGrfNum,
+ SwPaintProperties *properties,
bool bBackgrdAlreadyDrawn = false )
// add parameter <bBackgrdAlreadyDrawn> to indicate
// that the background is already drawn.
@@ -1834,7 +1840,7 @@ static void lcl_DrawGraphic( const SvxBrushItem& rBrush, OutputDevice *pOut,
GraphicObject *pGrf = (GraphicObject*)rBrush.GetGraphicObject();
// Outsource drawing of background with a background color
- ::lcl_DrawGraphicBackgrd( rBrush, pOut, aAlignedGrfRect, *pGrf, bGrfNum, bBackgrdAlreadyDrawn );
+ ::lcl_DrawGraphicBackgrd( rBrush, pOut, aAlignedGrfRect, *pGrf, bGrfNum, properties, bBackgrdAlreadyDrawn );
// Because for drawing a graphic left-top-corner and size coordinates are
// used, these coordinates have to be determined on pixel level.
@@ -2051,7 +2057,7 @@ void DrawGraphic(
SwRect aAlignedPaintRect = rOut;
::SwAlignRect( aAlignedPaintRect, &rSh );
// draw background color for aligned paint rectangle
- lcl_DrawGraphicBackgrd( *pBrush, pOutDev, aAlignedPaintRect, *pGraphicObj, bGrfNum );
+ lcl_DrawGraphicBackgrd( *pBrush, pOutDev, aAlignedPaintRect, *pGraphicObj, bGrfNum, &gProp );
// set left-top-corner of background graphic to left-top-corner of the
// area, from which the background brush is determined.
@@ -2270,7 +2276,7 @@ void DrawGraphic(
if( bDraw && aGrf.IsOver( rOut ) )
// OD 02.09.2002 #99657#
// add parameter <bGrfBackgrdAlreadyDrawn>
- lcl_DrawGraphic( *pBrush, pOutDev, rSh, aGrf, rOut, true, bGrfNum,
+ lcl_DrawGraphic( *pBrush, pOutDev, rSh, aGrf, rOut, true, bGrfNum, &gProp,
bGrfBackgrdAlreadyDrawn );
if( bReplaceGrfNum )
@@ -4366,7 +4372,7 @@ void SwTabFrm::Paint(SwRect const& rRect, SwPrintData const*const) const
if ( rAttrs.GetShadow().GetLocation() != SVX_SHADOW_NONE )
{
SwRect aRect;
- ::lcl_CalcBorderRect( aRect, this, rAttrs, true );
+ ::lcl_CalcBorderRect( aRect, this, rAttrs, true, &gProp );
PaintShadow( rRect, aRect, rAttrs );
}
@@ -4405,10 +4411,11 @@ void SwTabFrm::Paint(SwRect const& rRect, SwPrintData const*const) const
static void lcl_PaintShadow( const SwRect& rRect, SwRect& rOutRect,
const SvxShadowItem& rShadow, const bool bDrawFullShadowRectangle,
const bool bTop, const bool bBottom,
- const bool bLeft, const bool bRight )
+ const bool bLeft, const bool bRight,
+ SwPaintProperties *properties)
{
- const long nWidth = ::lcl_AlignWidth ( rShadow.GetWidth() );
- const long nHeight = ::lcl_AlignHeight( rShadow.GetWidth() );
+ const long nWidth = ::lcl_AlignWidth ( rShadow.GetWidth(), properties );
+ const long nHeight = ::lcl_AlignHeight( rShadow.GetWidth(), properties );
SwRects aRegion( 2 );
SwRect aOut( rOutRect );
@@ -4568,11 +4575,11 @@ static void lcl_PaintShadow( const SwRect& rRect, SwRect& rOutRect,
break;
}
- OutputDevice *pOut = gProp.pSGlobalShell->GetOut();
+ OutputDevice *pOut = properties->pSGlobalShell->GetOut();
sal_uLong nOldDrawMode = pOut->GetDrawMode();
Color aShadowColor( rShadow.GetColor().GetRGBColor() );
- if( !aRegion.empty() && gProp.pSGlobalShell->GetWin() &&
+ if( !aRegion.empty() && properties->pSGlobalShell->GetWin() &&
Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
{
// In high contrast mode, the output device has already set the
@@ -4646,7 +4653,7 @@ void SwFrm::PaintShadow( const SwRect& rRect, SwRect& rOutRect,
SWRECTFN( this );
::lcl_ExtendLeftAndRight( rOutRect, *(this), rAttrs, fnRect );
- lcl_PaintShadow(rRect, rOutRect, rShadow, bDrawFullShadowRectangle, bTop, bBottom, true, true);
+ lcl_PaintShadow(rRect, rOutRect, rShadow, bDrawFullShadowRectangle, bTop, bBottom, true, true, &gProp);
}
void SwFrm::PaintBorderLine( const SwRect& rRect,
@@ -4697,7 +4704,8 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
const SwBorderAttrs& _rAttrs,
const SwFrm& _rFrm,
const SwRectFn& _rRectFn,
- const bool _bPrtOutputDev )
+ const bool _bPrtOutputDev,
+ SwPaintProperties *properties )
{
const bool bCnt = _rFrm.IsCntntFrm();
if ( _rBox.GetTop() && _rBox.GetTop()->GetInWidth() &&
@@ -4705,7 +4713,7 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
)
{
// subtract distance between outer and inner line.
- SwTwips nDist = ::lcl_MinHeightDist( _rBox.GetTop()->GetDistance() );
+ SwTwips nDist = ::lcl_MinHeightDist( _rBox.GetTop()->GetDistance(), properties );
// OD 19.05.2003 #109667# - non-overlapping border rectangles:
// adjust x-/y-position, if inner top line is a hair line (width = 1)
bool bIsInnerTopLineHairline = false;
@@ -4713,13 +4721,13 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
{
// additionally subtract width of top outer line
// --> left/right inner/outer line doesn't overlap top outer line.
- nDist += ::lcl_AlignHeight( _rBox.GetTop()->GetOutWidth() );
+ nDist += ::lcl_AlignHeight( _rBox.GetTop()->GetOutWidth(), properties );
}
else
{
// OD 29.04.2003 #107169# - additionally subtract width of top inner line
// --> left/right inner/outer line doesn't overlap top inner line.
- nDist += ::lcl_AlignHeight( _rBox.GetTop()->GetInWidth() );
+ nDist += ::lcl_AlignHeight( _rBox.GetTop()->GetInWidth(), properties );
bIsInnerTopLineHairline = _rBox.GetTop()->GetInWidth() == 1;
}
(_iorRect.*_rRectFn->fnSubTop)( -nDist );
@@ -4732,7 +4740,7 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
// right of border rectangle has to be checked and adjusted
Point aCompPt( _iorRect.Right(), 0 );
Point aRefPt( aCompPt.X() + 1, aCompPt.Y() );
- lcl_CompPxPosAndAdjustPos( *(gProp.pSGlobalShell->GetOut()),
+ lcl_CompPxPosAndAdjustPos( *(properties->pSGlobalShell->GetOut()),
aRefPt, aCompPt,
true, -1 );
_iorRect.Right( aCompPt.X() );
@@ -4742,7 +4750,7 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
// top of border rectangle has to be checked and adjusted
Point aCompPt( 0, _iorRect.Top() );
Point aRefPt( aCompPt.X(), aCompPt.Y() - 1 );
- lcl_CompPxPosAndAdjustPos( *(gProp.pSGlobalShell->GetOut()),
+ lcl_CompPxPosAndAdjustPos( *(properties->pSGlobalShell->GetOut()),
aRefPt, aCompPt,
false, +1 );
_iorRect.Top( aCompPt.Y() );
@@ -4755,7 +4763,7 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
)
{
// subtract distance between outer and inner line.
- SwTwips nDist = ::lcl_MinHeightDist( _rBox.GetBottom()->GetDistance() );
+ SwTwips nDist = ::lcl_MinHeightDist( _rBox.GetBottom()->GetDistance(), properties );
// OD 19.05.2003 #109667# - non-overlapping border rectangles:
// adjust x-/y-position, if inner bottom line is a hair line (width = 1)
bool bIsInnerBottomLineHairline = false;
@@ -4763,13 +4771,13 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
{
// additionally subtract width of bottom outer line
// --> left/right inner/outer line doesn't overlap bottom outer line.
- nDist += ::lcl_AlignHeight( _rBox.GetBottom()->GetOutWidth() );
+ nDist += ::lcl_AlignHeight( _rBox.GetBottom()->GetOutWidth(), properties );
}
else
{
// OD 29.04.2003 #107169# - additionally subtract width of bottom inner line
// --> left/right inner/outer line doesn't overlap bottom inner line.
- nDist += ::lcl_AlignHeight( _rBox.GetBottom()->GetInWidth() );
+ nDist += ::lcl_AlignHeight( _rBox.GetBottom()->GetInWidth(), properties );
bIsInnerBottomLineHairline = _rBox.GetBottom()->GetInWidth() == 1;
}
(_iorRect.*_rRectFn->fnAddBottom)( -nDist );
@@ -4782,7 +4790,7 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
// left of border rectangle has to be checked and adjusted
Point aCompPt( _iorRect.Left(), 0 );
Point aRefPt( aCompPt.X() - 1, aCompPt.Y() );
- lcl_CompPxPosAndAdjustPos( *(gProp.pSGlobalShell->GetOut()),
+ lcl_CompPxPosAndAdjustPos( *(properties->pSGlobalShell->GetOut()),
aRefPt, aCompPt,
true, +1 );
_iorRect.Left( aCompPt.X() );
@@ -4792,7 +4800,7 @@ static void lcl_SubTopBottom( SwRect& _iorRect,
// bottom of border rectangle has to be checked and adjusted
Point aCompPt( 0, _iorRect.Bottom() );
Point aRefPt( aCompPt.X(), aCompPt.Y() + 1 );
- lcl_CompPxPosAndAdjustPos( *(gProp.pSGlobalShell->GetOut()),
+ lcl_CompPxPosAndAdjustPos( *(properties->pSGlobalShell->GetOut()),
aRefPt, aCompPt,
false, -1 );
_iorRect.Bottom( aCompPt.Y() );
@@ -4827,7 +4835,8 @@ static void lcl_MakeBorderLine(SwRect const& rRect,
bool const isVertical,
SvxBorderLine const& rBorder,
SvxBorderLine const*const pLeftOrTopNeighbour,
- SvxBorderLine const*const pRightOrBottomNeighbour)
+ SvxBorderLine const*const pRightOrBottomNeighbour,
+ SwPaintProperties *properties)
{
bool const isLeftOrTopBorder((isVerticalInModel == isVertical)
? isLeftOrTopBorderInModel
@@ -4848,10 +4857,10 @@ static void lcl_MakeBorderLine(SwRect const& rRect,
: rRect.Right() - (rRect.Width() / 2.0));
aStart.setX(fStartX);
aStart.setY(rRect.Top() +
- lcl_AlignHeight(lcl_GetLineWidth(pStartNeighbour))/2.0);
+ lcl_AlignHeight(lcl_GetLineWidth(pStartNeighbour), properties)/2.0);
aEnd.setX(fStartX);
aEnd.setY(rRect.Bottom() -
- lcl_AlignHeight(lcl_GetLineWidth(pEndNeighbour))/2.0);
+ lcl_AlignHeight(lcl_GetLineWidth(pEndNeighbour), properties)/2.0);
}
else
{ // fdo#38635: always from outer edge
@@ -4859,10 +4868,10 @@ static void lcl_MakeBorderLine(SwRect const& rRect,
? rRect.Top() + (rRect.Height() / 2.0)
: rRect.Bottom() - (rRect.Height() / 2.0));
aStart.setX(rRect.Left() +
- lcl_AlignWidth(lcl_GetLineWidth(pStartNeighbour))/2.0);
+ lcl_AlignWidth(lcl_GetLineWidth(pStartNeighbour), properties)/2.0);
aStart.setY(fStartY);
aEnd.setX(rRect.Right() -
- lcl_AlignWidth(lcl_GetLineWidth(pEndNeighbour))/2.0);
+ lcl_AlignWidth(lcl_GetLineWidth(pEndNeighbour), properties)/2.0);
aEnd.setY(fStartY);
}
@@ -4901,7 +4910,7 @@ static void lcl_MakeBorderLine(SwRect const& rRect,
aLeftColor.getBColor(), aRightColor.getBColor(),
rBorder.GetColorGap().getBColor(), rBorder.HasGapColor(),
rBorder.GetBorderLineStyle() );
- gProp.pBLines->AddBorderLine(xLine);
+ properties->pBLines->AddBorderLine(xLine);
}
/**
@@ -4914,7 +4923,8 @@ static void lcl_PaintLeftRightLine( const bool _bLeft,
const SwRect& _rOutRect,
const SwRect& /*_rRect*/,
const SwBorderAttrs& _rAttrs,
- const SwRectFn& _rRectFn )
+ const SwRectFn& _rRectFn,
+ SwPaintProperties *properties)
{
const SvxBoxItem& rBox = _rAttrs.GetBox();
const bool bR2L = _rFrm.IsCellFrm() && _rFrm.IsRightToLeft();
@@ -4939,7 +4949,7 @@ static void lcl_PaintLeftRightLine( const bool _bLeft,
SwRect aRect( _rOutRect );
if ( _bLeft )
{
- (aRect.*_rRectFn->fnAddRight)( ::lcl_AlignWidth( lcl_GetLineWidth( pLeftRightBorder ) ) -
+ (aRect.*_rRectFn->fnAddRight)( ::lcl_AlignWidth( lcl_GetLineWidth( pLeftRightBorder ), properties ) -
(aRect.*_rRectFn->fnGetWidth)() );
// Shift the left border to the left.
@@ -4954,7 +4964,7 @@ static void lcl_PaintLeftRightLine( const bool _bLeft,
}
else
{
- (aRect.*_rRectFn->fnSubLeft)( ::lcl_AlignWidth( lcl_GetLineWidth( pLeftRightBorder ) ) -
+ (aRect.*_rRectFn->fnSubLeft)( ::lcl_AlignWidth( lcl_GetLineWidth( pLeftRightBorder ), properties ) -
(aRect.*_rRectFn->fnGetWidth)() );
}
@@ -4971,17 +4981,17 @@ static void lcl_PaintLeftRightLine( const bool _bLeft,
{
// OD 06.05.2003 #107169# - init boolean indicating printer output device.
const bool bPrtOutputDev =
- ( OUTDEV_PRINTER == gProp.pSGlobalShell->GetOut()->GetOutDevType() );
+ ( OUTDEV_PRINTER == properties->pSGlobalShell->GetOut()->GetOutDevType() );
// OD 06.05.2003 #107169# - add 6th parameter
- ::lcl_SubTopBottom( aRect, rBox, _rAttrs, _rFrm, _rRectFn, bPrtOutputDev );
+ ::lcl_SubTopBottom( aRect, rBox, _rAttrs, _rFrm, _rRectFn, bPrtOutputDev, properties);
}
if ( lcl_GetLineWidth( pLeftRightBorder ) > 0 )
{
lcl_MakeBorderLine(
aRect, true, _bLeft, aRect.Height() > aRect.Width(),
- *pLeftRightBorder, pTopBorder, pBottomBorder);
+ *pLeftRightBorder, pTopBorder, pBottomBorder, properties);
}
}
@@ -4995,7 +5005,8 @@ static void lcl_PaintTopBottomLine( const bool _bTop,
const SwRect& _rOutRect,
const SwRect& /*_rRect*/,
const SwBorderAttrs& _rAttrs,
- const SwRectFn& _rRectFn )
+ const SwRectFn& _rRectFn,
+ SwPaintProperties *properties)
{
const SvxBoxItem& rBox = _rAttrs.GetBox();
const SvxBorderLine* pTopBottomBorder = 0;
@@ -5017,7 +5028,7 @@ static void lcl_PaintTopBottomLine( const bool _bTop,
SwRect aRect( _rOutRect );
if ( _bTop )
{
- (aRect.*_rRectFn->fnAddBottom)( ::lcl_AlignHeight( lcl_GetLineWidth( pTopBottomBorder ) ) -
+ (aRect.*_rRectFn->fnAddBottom)( ::lcl_AlignHeight( lcl_GetLineWidth( pTopBottomBorder ), properties ) -
(aRect.*_rRectFn->fnGetHeight)() );
// Push the top border up a bit.
@@ -5032,7 +5043,7 @@ static void lcl_PaintTopBottomLine( const bool _bTop,
}
else
{
- (aRect.*_rRectFn->fnSubTop)( ::lcl_AlignHeight( lcl_GetLineWidth( pTopBottomBorder ) ) -
+ (aRect.*_rRectFn->fnSubTop)( ::lcl_AlignHeight( lcl_GetLineWidth( pTopBottomBorder ), properties ) -
(aRect.*_rRectFn->fnGetHeight)() );
}
@@ -5040,7 +5051,7 @@ static void lcl_PaintTopBottomLine( const bool _bTop,
{
lcl_MakeBorderLine(
aRect, false, _bTop, aRect.Height() > aRect.Width(),
- *pTopBottomBorder, rBox.GetLeft(), rBox.GetRight());
+ *pTopBottomBorder, rBox.GetLeft(), rBox.GetRight(), properties);
}
}
@@ -5088,7 +5099,7 @@ void PaintCharacterBorder(
if( aShadow.GetLocation() != SVX_SHADOW_NONE )
{
lcl_PaintShadow( SwRect(aAlignedRect), aAlignedRect, aShadow,
- false, bTop, bBottom, bLeft, bRight);
+ false, bTop, bBottom, bLeft, bRight, &gProp);
}
}
@@ -5119,7 +5130,8 @@ void PaintCharacterBorder(
false, true, false,
aTopBorder.get(),
aLeftBorder.get_ptr(),
- aRightBorder.get_ptr());
+ aRightBorder.get_ptr(),
+ &gProp);
}
if( aBottomBorder )
@@ -5139,7 +5151,8 @@ void PaintCharacterBorder(
false, false, false,
aBottomBorder.get(),
aLeftBorder.get_ptr(),
- aRightBorder.get_ptr());
+ aRightBorder.get_ptr(),
+ &gProp );
}
if( aLeftBorder )
@@ -5158,7 +5171,8 @@ void PaintCharacterBorder(
true, true, true,
aLeftBorder.get(),
aTopBorder.get_ptr(),
- aBottomBorder.get_ptr());
+ aBottomBorder.get_ptr(),
+ &gProp );
}
if( aRightBorder )
@@ -5178,7 +5192,8 @@ void PaintCharacterBorder(
true, false, true,
aRightBorder.get(),
aTopBorder.get_ptr(),
- aBottomBorder.get_ptr());
+ aBottomBorder.get_ptr(),
+ &gProp );
}
}
@@ -5474,7 +5489,7 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
if ( !pPage )
pPage = FindPageFrm();
- ::lcl_CalcBorderRect( aRect, this, rAttrs, true );
+ ::lcl_CalcBorderRect( aRect, this, rAttrs, true, &gProp );
rAttrs.SetGetCacheLine( true );
if ( bShadow )
PaintShadow( rRect, aRect, rAttrs );
@@ -5487,8 +5502,8 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
{
const SwFrm* pDirRefFrm = IsCellFrm() ? FindTabFrm() : this;
SWRECTFN( pDirRefFrm )
- ::lcl_PaintLeftRightLine ( true, *(this), *(pPage), aRect, rRect, rAttrs, fnRect );
- ::lcl_PaintLeftRightLine ( false, *(this), *(pPage), aRect, rRect, rAttrs, fnRect );
+ ::lcl_PaintLeftRightLine ( true, *(this), *(pPage), aRect, rRect, rAttrs, fnRect, &gProp);
+ ::lcl_PaintLeftRightLine ( false, *(this), *(pPage), aRect, rRect, rAttrs, fnRect, &gProp);
if ( !IsCntntFrm() || rAttrs.GetTopLine( *(this) ) )
{
// -
@@ -5499,11 +5514,11 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
SwBorderAttrAccess aAccess( SwFrm::GetCache(),
pCellFrmForTopBorderAttrs );
const SwBorderAttrs &rTopAttrs = *aAccess.Get();
- ::lcl_PaintTopBottomLine( true, *(this), *(pPage), aRect, rRect, rTopAttrs, fnRect );
+ ::lcl_PaintTopBottomLine( true, *(this), *(pPage), aRect, rRect, rTopAttrs, fnRect, &gProp);
}
else
{
- ::lcl_PaintTopBottomLine( true, *(this), *(pPage), aRect, rRect, rAttrs, fnRect );
+ ::lcl_PaintTopBottomLine( true, *(this), *(pPage), aRect, rRect, rAttrs, fnRect, &gProp );
}
}
if ( !IsCntntFrm() || rAttrs.GetBottomLine( *(this) ) )
@@ -5516,11 +5531,11 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
SwBorderAttrAccess aAccess( SwFrm::GetCache(),
pCellFrmForBottomBorderAttrs );
const SwBorderAttrs &rBottomAttrs = *aAccess.Get();
- ::lcl_PaintTopBottomLine(false, *(this), *(pPage), aRect, rRect, rBottomAttrs, fnRect);
+ ::lcl_PaintTopBottomLine(false, *(this), *(pPage), aRect, rRect, rBottomAttrs, fnRect, &gProp);
}
else
{
- ::lcl_PaintTopBottomLine(false, *(this), *(pPage), aRect, rRect, rAttrs, fnRect);
+ ::lcl_PaintTopBottomLine(false, *(this), *(pPage), aRect, rRect, rAttrs, fnRect, &gProp);
}
}
}
@@ -6537,7 +6552,7 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage,
}
else
{
- ::lcl_CalcBorderRect( aRect, this, rAttrs, false );
+ ::lcl_CalcBorderRect( aRect, this, rAttrs, false, &gProp);
if ( (IsTxtFrm() || IsTabFrm()) && GetPrev() )
{
if ( GetPrev()->GetAttrSet()->GetBackground() ==
@@ -7556,7 +7571,7 @@ bool SwFrm::GetBackgroundBrush(
{
SwBorderAttrAccess aAccess( SwFrm::GetCache(), pFrm );
const SwBorderAttrs &rAttrs = *aAccess.Get();
- ::lcl_CalcBorderRect( rOrigRect, pFrm, rAttrs, false );
+ ::lcl_CalcBorderRect( rOrigRect, pFrm, rAttrs, false, &gProp );
}
else
{
More information about the Libreoffice-commits
mailing list