diff options
author | Armin Le Grand <alg@apache.org> | 2012-01-17 16:54:04 +0000 |
---|---|---|
committer | Armin Le Grand <alg@apache.org> | 2012-01-17 16:54:04 +0000 |
commit | 2a0cd925bebb0c7d3513db311b185a04f259b68d (patch) | |
tree | 8d1ed154b241a9823c54b76ed091ecb6b6935a9d /canvas | |
parent | 63480c993d8e2fb0929d3c39f621aae9443faa04 (diff) |
linecap: Reintegrating finished LineCap feature, kudos to Regina Henschel for doing the basic implementation and offering it under apache license
Notes
merged as: 44cfc7cb6533d827fd2d6e586d92c61d7d7f7a70
Diffstat (limited to 'canvas')
-rw-r--r-- | canvas/source/vcl/canvashelper.cxx | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/canvas/source/vcl/canvashelper.cxx b/canvas/source/vcl/canvashelper.cxx index 41550361c202..0dcc74fd03fc 100644 --- a/canvas/source/vcl/canvashelper.cxx +++ b/canvas/source/vcl/canvashelper.cxx @@ -35,6 +35,7 @@ #include <com/sun/star/rendering/TexturingMode.hpp> #include <com/sun/star/rendering/PathCapType.hpp> #include <com/sun/star/rendering/PathJoinType.hpp> +#include <com/sun/star/drawing/LineCap.hpp> #include <tools/poly.hxx> #include <vcl/window.hxx> @@ -94,6 +95,26 @@ namespace vclcanvas return basegfx::B2DLINEJOIN_NONE; } + + drawing::LineCap unoCapeFromCap( sal_Int8 nCapType) + { + switch ( nCapType) + { + case rendering::PathCapType::BUTT: + return drawing::LineCap_BUTT; + + case rendering::PathCapType::ROUND: + return drawing::LineCap_ROUND; + + case rendering::PathCapType::SQUARE: + return drawing::LineCap_SQUARE; + + default: + ENSURE_OR_THROW( false, + "unoCapeFromCap(): Unexpected cap type" ); + } + return drawing::LineCap_BUTT; + } } CanvasHelper::CanvasHelper() : @@ -384,7 +405,10 @@ namespace vclcanvas // AW: New interface, will create bezier polygons now aStrokedPolyPoly.append(basegfx::tools::createAreaGeometry( - aPolyPoly.getB2DPolygon(i), strokeAttributes.StrokeWidth*0.5, b2DJoineFromJoin(strokeAttributes.JoinType))); + aPolyPoly.getB2DPolygon(i), + strokeAttributes.StrokeWidth*0.5, + b2DJoineFromJoin(strokeAttributes.JoinType), + unoCapeFromCap(strokeAttributes.StartCapType))); //aStrokedPolyPoly.append( // ::basegfx::tools::createAreaGeometryForPolygon( aPolyPoly.getB2DPolygon(i), // strokeAttributes.StrokeWidth*0.5, |