Kaydet (Commit) 31507aac authored tarafından Andras Timar's avatar Andras Timar

WMF: parse line cap and line join

Change-Id: I5a19a724856938d5a0495ee1e454582238dbd3f0
üst 26fc9be1
...@@ -751,7 +751,7 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc ) ...@@ -751,7 +751,7 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc )
sal_Bool bTransparent = sal_False; sal_Bool bTransparent = sal_False;
sal_uInt16 nDashCount = 0; sal_uInt16 nDashCount = 0;
sal_uInt16 nDotCount = 0; sal_uInt16 nDotCount = 0;
switch( nStyle ) switch( nStyle & 0xFF )
{ {
case PS_DASHDOTDOT : case PS_DASHDOTDOT :
nDotCount++; nDotCount++;
...@@ -772,6 +772,32 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc ) ...@@ -772,6 +772,32 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc )
case PS_SOLID : case PS_SOLID :
aLineInfo.SetStyle( LINE_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 ) if ( nDashCount | nDotCount )
{ {
aLineInfo.SetStyle( LINE_DASH ); aLineInfo.SetStyle( LINE_DASH );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment