drawinglayer/source/processor2d/vclpixelprocessor2d.cxx | 22 ++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-)
New commits: commit 80187cb4faeb7426dcb565abe43f5616b4e9d8a8 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon Jan 20 12:30:11 2014 -0500 Handle double lines for screen rendering. Double lines are always drawn as 2 parallel hair lines that are 1 pixel apart, at any zoom level. Change-Id: I2796477d0ea45c9880aa8057bd1a10104df96673 diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx index 439ce61..61145f5 100644 --- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx @@ -297,11 +297,14 @@ namespace drawinglayer switch (rSource.getStyle()) { case table::BorderLineStyle::SOLID: + case table::BorderLineStyle::DOUBLE: { const basegfx::BColor aLineColor = maBColorModifierStack.getModifiedColor(rSource.getRGBColorLeft()); double nThick = rtl::math::round(rSource.getLeftWidth()); + bool bDouble = rSource.getStyle() == table::BorderLineStyle::DOUBLE; + basegfx::B2DPolygon aTarget; if (bHorizontal) @@ -314,12 +317,20 @@ namespace drawinglayer basegfx::B2DRange aRange = aTarget.getB2DRange(); double fH = aRange.getHeight(); - if (fH <= 1.0) + if (fH <= 1.0 || bDouble) { // Draw it as a line. drawHairLine( mpOutputDevice, aRange.getMinX(), aRange.getMinY(), aRange.getMaxX(), aRange.getMinY(), aLineColor); + + if (bDouble) + { + drawHairLine( + mpOutputDevice, aRange.getMinX(), aRange.getMinY()+2.0, aRange.getMaxX(), aRange.getMinY()+2.0, + aLineColor); + } + return true; } } @@ -333,12 +344,19 @@ namespace drawinglayer basegfx::B2DRange aRange = aTarget.getB2DRange(); double fW = aRange.getWidth(); - if (fW <= 1.0) + if (fW <= 1.0 || bDouble) { // Draw it as a line. drawHairLine( mpOutputDevice, aRange.getMinX(), aRange.getMinY(), aRange.getMinX(), aRange.getMaxY(), aLineColor); + + if (bDouble) + { + drawHairLine( + mpOutputDevice, aRange.getMinX()+2.0, aRange.getMinY(), aRange.getMinX()+2.0, aRange.getMaxY(), + aLineColor); + } return true; } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits