summaryrefslogtreecommitdiff
path: root/canvas
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2012-01-17 16:54:04 +0000
committerArmin Le Grand <alg@apache.org>2012-01-17 16:54:04 +0000
commit2a0cd925bebb0c7d3513db311b185a04f259b68d (patch)
tree8d1ed154b241a9823c54b76ed091ecb6b6935a9d /canvas
parent63480c993d8e2fb0929d3c39f621aae9443faa04 (diff)
linecap: Reintegrating finished LineCap feature, kudos to Regina Henschel for doing the basic implementation and offering it under apache license
Notes
Diffstat (limited to 'canvas')
-rw-r--r--canvas/source/vcl/canvashelper.cxx26
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,