drawinglayer/source/primitive2d/baseprimitive2d.cxx | 1 drawinglayer/source/processor2d/vclpixelprocessor2d.hxx | 1 include/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx | 1 include/svx/framelinkarray.hxx | 14 --- sc/source/ui/miscdlgs/autofmt.cxx | 19 +++-- svx/source/dialog/framelinkarray.cxx | 37 ++-------- svx/source/dialog/frmsel.cxx | 16 ++-- sw/source/ui/table/tautofmt.cxx | 11 ++ 8 files changed, 45 insertions(+), 55 deletions(-)
New commits: commit a3a53ebd2bb642a7a1235d33ca7fda0b8c5fc529 Author: Armin Le Grand <armin.le.gr...@cib.de> Date: Wed Aug 30 12:10:54 2017 +0200 borderline: CellRect->CellRange, cleanups Change-Id: Ie03c7b2f446bd3cf353cc92905218276385599fc diff --git a/drawinglayer/source/primitive2d/baseprimitive2d.cxx b/drawinglayer/source/primitive2d/baseprimitive2d.cxx index bdb96f96d423..581f0c421c75 100644 --- a/drawinglayer/source/primitive2d/baseprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/baseprimitive2d.cxx @@ -367,7 +367,6 @@ namespace drawinglayer case PRIMITIVE2D_ID_PATTERNFILLPRIMITIVE2D: return OUString("PATTERNFILL"); case PRIMITIVE2D_ID_OBJECTINFOPRIMITIVE2D: return OUString("OBJECTINFO"); case PRIMITIVE2D_ID_POLYPOLYGONSELECTIONPRIMITIVE2D: return OUString("POLYPOLYGONSELECTION"); - case PRIMITIVE2D_ID_CLIPPEDBORDERLINEPRIMITIVE2D: return OUString("CLIPPEDBORDERLINE"); default: return OUString::number((nId >> 16) & 0xFF) + "|" + OUString::number(nId & 0xFF); } } diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx index 19c0282ffc5a..fb7cc5280c64 100644 --- a/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx +++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx @@ -34,7 +34,6 @@ namespace drawinglayer { namespace primitive2d { class PolyPolygonColorPrimitive2D; class PolygonHairlinePrimitive2D; class PolygonStrokePrimitive2D; - class BorderLinePrimitive2D; }} diff --git a/include/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx b/include/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx index 9e78c8c3c0c5..7dcc2455effb 100644 --- a/include/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx +++ b/include/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx @@ -102,7 +102,6 @@ #define PRIMITIVE2D_ID_PATTERNFILLPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 67) #define PRIMITIVE2D_ID_OBJECTINFOPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 68) #define PRIMITIVE2D_ID_POLYPOLYGONSELECTIONPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 69) -#define PRIMITIVE2D_ID_CLIPPEDBORDERLINEPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 70) // When you add a new primitive, please update the drawinglayer::primitive2d::idToString() function // in drawinglayer/source/primitive2d/baseprimitive2d.cxx. diff --git a/include/svx/framelinkarray.hxx b/include/svx/framelinkarray.hxx index 29e44994ff68..4801db277147 100644 --- a/include/svx/framelinkarray.hxx +++ b/include/svx/framelinkarray.hxx @@ -289,17 +289,9 @@ public: /** Returns the output height of the entire array. */ long GetHeight() const; - /** Returns the top-left output position of the cell (nCol,nRow). - Returns output position of top-left corner of merged ranges. */ - Point GetCellPosition( size_t nCol, size_t nRow ) const; - - /** Returns the output size of the cell (nCol,nRow). - Returns total output size of merged ranges. */ - Size GetCellSize( size_t nCol, size_t nRow ) const; - - /** Returns the output rectangle of the cell (nCol,nRow). - Returns total output rectangle of merged ranges. */ - tools::Rectangle GetCellRect( size_t nCol, size_t nRow ) const; + /** Returns the output range of the cell (nCol,nRow). + Returns total output range of merged ranges. */ + basegfx::B2DRange GetCellRange( size_t nCol, size_t nRow ) const; // mirroring -------------------------------------------------------------- diff --git a/sc/source/ui/miscdlgs/autofmt.cxx b/sc/source/ui/miscdlgs/autofmt.cxx index 70bbc0b33b6e..9783431083eb 100644 --- a/sc/source/ui/miscdlgs/autofmt.cxx +++ b/sc/source/ui/miscdlgs/autofmt.cxx @@ -250,8 +250,8 @@ void ScAutoFmtPreview::DrawString(vcl::RenderContext& rRenderContext, size_t nCo Size aStrSize; sal_uInt16 nFmtIndex = GetFormatIndex( nCol, nRow ); - tools::Rectangle cellRect = maArray.GetCellRect( nCol, nRow ); - Point aPos = cellRect.TopLeft(); + const basegfx::B2DRange cellRange(maArray.GetCellRange( nCol, nRow )); + Point aPos = Point(basegfx::fround(cellRange.getMinX()), basegfx::fround(cellRange.getMinY())); sal_uInt16 nRightX = 0; bool bJustify = pCurData->GetIncludeJustify(); SvxCellHorJustify eJustification; @@ -271,7 +271,7 @@ void ScAutoFmtPreview::DrawString(vcl::RenderContext& rRenderContext, size_t nCo MakeFonts( nFmtIndex, aFont, aCJKFont, aCTLFont ); - theMaxStrSize = cellRect.GetSize(); + theMaxStrSize = Size(basegfx::fround(cellRange.getWidth()), basegfx::fround(cellRange.getHeight())); theMaxStrSize.Width() -= FRAME_OFFSET; theMaxStrSize.Height() -= FRAME_OFFSET; @@ -304,7 +304,7 @@ void ScAutoFmtPreview::DrawString(vcl::RenderContext& rRenderContext, size_t nCo aStrSize = aScriptedText.GetTextSize(); } - nRightX = sal_uInt16(cellRect.GetWidth() - aStrSize.Width() - FRAME_OFFSET); + nRightX = sal_uInt16(basegfx::fround(cellRange.getWidth()) - aStrSize.Width() - FRAME_OFFSET); // vertical (always center): @@ -314,7 +314,8 @@ void ScAutoFmtPreview::DrawString(vcl::RenderContext& rRenderContext, size_t nCo if (eJustification != SvxCellHorJustify::Standard) { - sal_uInt16 nHorPos = sal_uInt16((cellRect.GetWidth()-aStrSize.Width()) / 2); + sal_uInt16 nHorPos = sal_uInt16((basegfx::fround(cellRange.getWidth())-aStrSize.Width()) / 2); + //sal_uInt16 nHorPos = sal_uInt16((basegfx::fround(cellRange.getWidth())-aStrSize.Width()) / 2); switch (eJustification) { @@ -372,7 +373,13 @@ void ScAutoFmtPreview::DrawBackground(vcl::RenderContext& rRenderContext) rRenderContext.Push( PushFlags::LINECOLOR | PushFlags::FILLCOLOR ); rRenderContext.SetLineColor(); rRenderContext.SetFillColor( pItem->GetColor() ); - rRenderContext.DrawRect( maArray.GetCellRect( nCol, nRow ) ); + + const basegfx::B2DRange aCellRange(maArray.GetCellRange( nCol, nRow )); + rRenderContext.DrawRect( + tools::Rectangle( + basegfx::fround(aCellRange.getMinX()), basegfx::fround(aCellRange.getMinY()), + basegfx::fround(aCellRange.getMaxX()), basegfx::fround(aCellRange.getMaxY()))); + rRenderContext.Pop(); } } diff --git a/svx/source/dialog/framelinkarray.cxx b/svx/source/dialog/framelinkarray.cxx index eaf8d01813a8..ef6c410a7220 100644 --- a/svx/source/dialog/framelinkarray.cxx +++ b/svx/source/dialog/framelinkarray.cxx @@ -808,25 +808,15 @@ long Array::GetHeight() const return GetRowPosition( mxImpl->mnHeight ) - GetRowPosition( 0 ); } -Point Array::GetCellPosition( size_t nCol, size_t nRow ) const +basegfx::B2DRange Array::GetCellRange( size_t nCol, size_t nRow ) const { size_t nFirstCol = mxImpl->GetMergedFirstCol( nCol, nRow ); size_t nFirstRow = mxImpl->GetMergedFirstRow( nCol, nRow ); - return Point( GetColPosition( nFirstCol ), GetRowPosition( nFirstRow ) ); -} - -Size Array::GetCellSize( size_t nCol, size_t nRow ) const -{ - size_t nFirstCol = mxImpl->GetMergedFirstCol( nCol, nRow ); - size_t nFirstRow = mxImpl->GetMergedFirstRow( nCol, nRow ); size_t nLastCol = mxImpl->GetMergedLastCol( nCol, nRow ); size_t nLastRow = mxImpl->GetMergedLastRow( nCol, nRow ); - return Size( GetColWidth( nFirstCol, nLastCol ) + 1, GetRowHeight( nFirstRow, nLastRow ) + 1 ); -} - -tools::Rectangle Array::GetCellRect( size_t nCol, size_t nRow ) const -{ - tools::Rectangle aRect( GetCellPosition( nCol, nRow ), GetCellSize( nCol, nRow ) ); + const Point aPoint( GetColPosition( nFirstCol ), GetRowPosition( nFirstRow ) ); + const Size aSize( GetColWidth( nFirstCol, nLastCol ) + 1, GetRowHeight( nFirstRow, nLastRow ) + 1 ); + tools::Rectangle aRect(aPoint, aSize); // adjust rectangle for partly visible merged cells const Cell& rCell = CELL( nCol, nRow ); @@ -837,7 +827,7 @@ tools::Rectangle Array::GetCellRect( size_t nCol, size_t nRow ) const aRect.Top() -= rCell.mnAddTop; aRect.Bottom() += rCell.mnAddBottom; } - return aRect; + return basegfx::B2DRange(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom()); } // mirroring @@ -938,9 +928,9 @@ void Array::DrawRange( drawinglayer::processor2d::BaseProcessor2D& rProcessor, if ((!bOverlapX && !bOverlapY) || (bFirstCol && bFirstRow) || (!bOverlapY && bFirstCol) || (!bOverlapX && bFirstRow)) { - const tools::Rectangle aRect(GetCellRect(nCol, nRow)); + const basegfx::B2DRange aRange(GetCellRange(nCol, nRow)); - if ((aRect.GetWidth() > 1) && (aRect.GetHeight() > 1)) + if (!aRange.isEmpty()) { size_t _nFirstCol = mxImpl->GetMergedFirstCol(nCol, nRow); size_t _nFirstRow = mxImpl->GetMergedFirstRow(nCol, nRow); @@ -952,7 +942,6 @@ void Array::DrawRange( drawinglayer::processor2d::BaseProcessor2D& rProcessor, if (rTLBR.GetWidth() || rBLTR.GetWidth()) { drawinglayer::primitive2d::Primitive2DContainer aSequence; - const basegfx::B2DRange aRange(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom()); basegfx::B2DPoint aOrigin; basegfx::B2DVector aX; basegfx::B2DVector aY; @@ -1039,8 +1028,7 @@ void Array::DrawRange( drawinglayer::processor2d::BaseProcessor2D& rProcessor, // we need to take care if the borderline is at top or bottom, so use pointer // compare here to find out const bool bUpper(&pCell->GetStyleTop() == pStart); - const tools::Rectangle aRect(GetCellRect(nCol - 1, bUpper ? nRow : nRow - 1)); - const basegfx::B2DRange aRange(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom()); + const basegfx::B2DRange aRange(GetCellRange(nCol - 1, bUpper ? nRow : nRow - 1)); // adapt to cell coordinate system, including shear CreateCoordinateSystemForCell(aRange, *pCell, aOrigin, aX, aY); @@ -1110,8 +1098,7 @@ void Array::DrawRange( drawinglayer::processor2d::BaseProcessor2D& rProcessor, if (pCell && pCell->IsRotated()) { const bool bUpper(&pCell->GetStyleTop() == pStart); - const tools::Rectangle aRect(GetCellRect(nCol - 1, bUpper ? nRow : nRow - 1)); - const basegfx::B2DRange aRange(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom()); + const basegfx::B2DRange aRange(GetCellRange(nCol - 1, bUpper ? nRow : nRow - 1)); CreateCoordinateSystemForCell(aRange, *pCell, aOrigin, aX, aY); @@ -1198,8 +1185,7 @@ void Array::DrawRange( drawinglayer::processor2d::BaseProcessor2D& rProcessor, if (pCell && pCell->IsRotated()) { const bool bLeft(&pCell->GetStyleLeft() == pStart); - const tools::Rectangle aRect(GetCellRect(bLeft ? nCol : nCol - 1, nRow - 1)); - const basegfx::B2DRange aRange(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom()); + const basegfx::B2DRange aRange(GetCellRange(bLeft ? nCol : nCol - 1, nRow - 1)); CreateCoordinateSystemForCell(aRange, *pCell, aOrigin, aX, aY); @@ -1278,8 +1264,7 @@ void Array::DrawRange( drawinglayer::processor2d::BaseProcessor2D& rProcessor, if (pCell && pCell->IsRotated()) { const bool bLeft(&pCell->GetStyleLeft() == pStart); - const tools::Rectangle aRect(GetCellRect(bLeft ? nCol : nCol - 1, nRow - 1)); - const basegfx::B2DRange aRange(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom()); + const basegfx::B2DRange aRange(GetCellRange(bLeft ? nCol : nCol - 1, nRow - 1)); CreateCoordinateSystemForCell(aRange, *pCell, aOrigin, aX, aY); diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx index 0bb928039b07..859afd787995 100644 --- a/svx/source/dialog/frmsel.cxx +++ b/svx/source/dialog/frmsel.cxx @@ -410,8 +410,11 @@ void FrameSelectorImpl::InitBorderGeometry() { for( nRow = 0, nRows = maArray.GetRowCount(); nRow < nRows; ++nRow ) { - tools::Rectangle aRect( maArray.GetCellRect( nCol, nRow ) ); - const double fHorDiagAngle(atan2(static_cast< double >(std::abs(aRect.GetHeight())), static_cast< double >(std::abs(aRect.GetWidth())))); + const basegfx::B2DRange aCellRange(maArray.GetCellRange( nCol, nRow )); + const tools::Rectangle aRect( + basegfx::fround(aCellRange.getMinX()), basegfx::fround(aCellRange.getMinY()), + basegfx::fround(aCellRange.getMaxX()), basegfx::fround(aCellRange.getMaxY())); + const double fHorDiagAngle(atan2(fabs(aCellRange.getHeight()), fabs(aCellRange.getWidth()))); const double fVerDiagAngle(fHorDiagAngle > 0.0 ? F_PI2 - fHorDiagAngle : 0.0); const long nDiagFocusOffsX(basegfx::fround(-mnFocusOffs / tan(fHorDiagAngle) + mnFocusOffs / sin(fHorDiagAngle))); const long nDiagFocusOffsY(basegfx::fround(-mnFocusOffs / tan(fVerDiagAngle) + mnFocusOffs / sin(fVerDiagAngle))); @@ -466,11 +469,10 @@ void FrameSelectorImpl::InitBorderGeometry() for( nRow = 0, nRows = maArray.GetRowCount(); nRow < nRows; ++nRow ) { // the usable area between horizonal/vertical frame borders of current quadrant - tools::Rectangle aRect( maArray.GetCellRect( nCol, nRow ) ); - aRect.Left() += nClV + 1; - aRect.Right() -= nClV + 1; - aRect.Top() += nClH + 1; - aRect.Bottom() -= nClH + 1; + const basegfx::B2DRange aCellRange(maArray.GetCellRange( nCol, nRow )); + const tools::Rectangle aRect( + basegfx::fround(aCellRange.getMinX()) + nClV + 1, basegfx::fround(aCellRange.getMinY()) + nClH + 1, + basegfx::fround(aCellRange.getMaxX()) - nClV + 1, basegfx::fround(aCellRange.getMaxY()) - nClH + 1); /* Both diagonal frame borders enabled. */ if( mbTLBR && mbBLTR ) diff --git a/sw/source/ui/table/tautofmt.cxx b/sw/source/ui/table/tautofmt.cxx index 0793190c75b3..ab2650d8587f 100644 --- a/sw/source/ui/table/tautofmt.cxx +++ b/sw/source/ui/table/tautofmt.cxx @@ -709,7 +709,10 @@ MAKENUMSTR: SvtScriptedTextHelper aScriptedText(rRenderContext); Size aStrSize; sal_uInt8 nFormatIndex = GetFormatIndex( nCol, nRow ); - tools::Rectangle cellRect = maArray.GetCellRect( nCol, nRow ); + const basegfx::B2DRange aCellRange(maArray.GetCellRange( nCol, nRow )); + const tools::Rectangle cellRect( + basegfx::fround(aCellRange.getMinX()), basegfx::fround(aCellRange.getMinY()), + basegfx::fround(aCellRange.getMaxX()), basegfx::fround(aCellRange.getMaxY())); Point aPos = cellRect.TopLeft(); long nRightX = 0; @@ -801,7 +804,11 @@ void AutoFormatPreview::DrawBackground(vcl::RenderContext& rRenderContext) rRenderContext.Push(PushFlags::LINECOLOR | PushFlags::FILLCOLOR); rRenderContext.SetLineColor(); rRenderContext.SetFillColor(aBrushItem.GetColor()); - rRenderContext.DrawRect(maArray.GetCellRect(nCol, nRow)); + const basegfx::B2DRange aCellRange(maArray.GetCellRange( nCol, nRow )); + rRenderContext.DrawRect( + tools::Rectangle( + basegfx::fround(aCellRange.getMinX()), basegfx::fround(aCellRange.getMinY()), + basegfx::fround(aCellRange.getMaxX()), basegfx::fround(aCellRange.getMaxY()))); rRenderContext.Pop(); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits