diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2006-08-03 11:37:57 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2006-08-03 11:37:57 +0000 |
commit | aa79c81491f5dfb1b9b49079bbeb3db233d0a364 (patch) | |
tree | 53bd2719467fd95688c4ffc7a149ef5f96903490 /vcl/source | |
parent | b4ebd63eb02e30dfa6251d6d6c768a6ab09e485f (diff) |
INTEGRATION: CWS impress100 (1.19.24); FILE MERGED
2006/07/27 14:39:09 sj 1.19.24.1: #i56656# svt/graphictools has been moved from svtools to vcl, mirroring/rotation of svm metafiles is now working properly
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/gdi/gdimtf.cxx | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx index b35577be509b..a3add4329da1 100644 --- a/vcl/source/gdi/gdimtf.cxx +++ b/vcl/source/gdi/gdimtf.cxx @@ -4,9 +4,9 @@ * * $RCSfile: gdimtf.cxx,v $ * - * $Revision: 1.19 $ + * $Revision: 1.20 $ * - * last change: $Author: obo $ $Date: 2006-07-13 10:44:37 $ + * last change: $Author: ihi $ $Date: 2006-08-03 12:37:57 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -64,6 +64,7 @@ #include <virdev.hxx> #endif #include <gdimtf.hxx> +#include "graphictools.hxx" // ----------- // - Defines - @@ -1238,6 +1239,47 @@ void GDIMetaFile::Rotate( long nAngle10 ) pAction = (MetaAction*) Next(); } } + else + { + sal_Bool bPathStroke = pCommentAct->GetComment().Equals( "XPATHSTROKE_SEQ_BEGIN" ); + if ( bPathStroke || pCommentAct->GetComment().Equals( "XPATHFILL_SEQ_BEGIN" ) ) + { + if ( pCommentAct->GetDataSize() ) + { + SvMemoryStream aMemStm( (void*)pCommentAct->GetData(), pCommentAct->GetDataSize(), STREAM_READ ); + SvMemoryStream aDest; + if ( bPathStroke ) + { + SvtGraphicStroke aStroke; + aMemStm >> aStroke; + Polygon aPath; + aStroke.getPath( aPath ); + aStroke.setPath( ImplGetRotatedPolygon( aPath, aRotAnchor, aRotOffset, fSin, fCos ) ); + aDest << aStroke; + aMtf.AddAction( new MetaCommentAction( "XPATHSTROKE_SEQ_BEGIN", 0, + static_cast<const BYTE*>( aDest.GetData()), aDest.Tell() ) ); + } + else + { + SvtGraphicFill aFill; + aMemStm >> aFill; + PolyPolygon aPath; + aFill.getPath( aPath ); + aFill.setPath( ImplGetRotatedPolyPolygon( aPath, aRotAnchor, aRotOffset, fSin, fCos ) ); + aDest << aFill; + aMtf.AddAction( new MetaCommentAction( "XPATHFILL_SEQ_BEGIN", 0, + static_cast<const BYTE*>( aDest.GetData()), aDest.Tell() ) ); + } + } + } + else if ( pCommentAct->GetComment().Equals( "XPATHSTROKE_SEQ_END" ) + || pCommentAct->GetComment().Equals( "XPATHFILL_SEQ_END" ) ) + { + pAction->Execute( &aMapVDev ); + pAction->Duplicate(); + aMtf.AddAction( pAction ); + } + } } break; |