diff options
author | Andras Timar <andras.timar@collabora.com> | 2014-01-19 14:15:05 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-04-22 22:07:38 +0200 |
commit | 109c1bf5c2bfa3563a8cc8ad158f236b6ad43dc6 (patch) | |
tree | 1eb1b9893018a80099972961d51a7715328bdd9c /vcl | |
parent | ca54846e15080af963dc76f4941dd04a514f7a98 (diff) |
WMF: parse line cap and line join
Change-Id: I5a19a724856938d5a0495ee1e454582238dbd3f0
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/filter/wmf/winwmf.cxx | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx index db4fb7543932..7c2b5a01c2c9 100644 --- a/vcl/source/filter/wmf/winwmf.cxx +++ b/vcl/source/filter/wmf/winwmf.cxx @@ -739,7 +739,7 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc ) sal_Bool bTransparent = sal_False; sal_uInt16 nDashCount = 0; sal_uInt16 nDotCount = 0; - switch( nStyle ) + switch( nStyle & 0xFF ) { case PS_DASHDOTDOT : nDotCount++; @@ -760,6 +760,32 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc ) case PS_SOLID : aLineInfo.SetStyle( LINE_SOLID ); } + switch( nStyle & 0xF00 ) + { + case PS_ENDCAP_ROUND : + aLineInfo.SetLineCap( com::sun::star::drawing::LineCap_ROUND ); + break; + case PS_ENDCAP_SQUARE : + aLineInfo.SetLineCap( com::sun::star::drawing::LineCap_SQUARE ); + break; + case PS_ENDCAP_FLAT : + default : + aLineInfo.SetLineCap( com::sun::star::drawing::LineCap_BUTT ); + } + switch( nStyle & 0xF000 ) + { + case PS_JOIN_ROUND : + aLineInfo.SetLineJoin ( basegfx::B2DLINEJOIN_ROUND ); + break; + case PS_JOIN_MITER : + aLineInfo.SetLineJoin ( basegfx::B2DLINEJOIN_MITER ); + break; + case PS_JOIN_BEVEL : + aLineInfo.SetLineJoin ( basegfx::B2DLINEJOIN_BEVEL ); + break; + default : + aLineInfo.SetLineJoin ( basegfx::B2DLINEJOIN_NONE ); + } if ( nDashCount | nDotCount ) { aLineInfo.SetStyle( LINE_DASH ); |