diff options
author | Radek Doulik <rodo@novell.com> | 2013-03-15 14:48:05 +0100 |
---|---|---|
committer | Radek Doulik <rodo@novell.com> | 2013-03-15 14:48:39 +0100 |
commit | cf6b2f0ecef2c23c24114ca1a1609a4a81ade8a1 (patch) | |
tree | 8a494967632e22c747d4e297254dde25f2c8a4fc | |
parent | b6f6c3a2ed19cc34cce5d19c32c921227165bdd0 (diff) |
implemented EmfPlusRecordTypeFillEllipse record
Change-Id: Id9362d05ddae2066f2fa289640f447393d7cda84
-rw-r--r-- | cppcanvas/source/mtfrenderer/emfplus.cxx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx index 6712031d90b9..84245977dcc9 100644 --- a/cppcanvas/source/mtfrenderer/emfplus.cxx +++ b/cppcanvas/source/mtfrenderer/emfplus.cxx @@ -53,6 +53,8 @@ #define EmfPlusRecordTypeFillRects 16394 #define EmfPlusRecordTypeFillPolygon 16396 #define EmfPlusRecordTypeDrawLines 16397 +#define EmfPlusRecordTypeFillEllipse 16398 +#define EmfPlusRecordTypeDrawEllipse 16399 #define EmfPlusRecordTypeFillPie 16400 #define EmfPlusRecordTypeFillPath 16404 #define EmfPlusRecordTypeDrawPath 16405 @@ -1296,6 +1298,30 @@ namespace cppcanvas EMFPPlusFillPolygon (((EMFPPath*) aObjects [index])->GetPolygon (*this), rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor); } break; + case EmfPlusRecordTypeFillEllipse: + { + sal_uInt32 index = flags & 0xff; + sal_uInt32 brushIndexOrColor; + + rMF >> brushIndexOrColor; + + EMFP_DEBUG (printf ("EMF+ FillEllipse slot: %u\n", (unsigned int)index)); + + float dx, dy, dw, dh; + + ReadRectangle (rMF, dx, dy, dw, dh, flags & 0x4000); + + EMFP_DEBUG (printf ("EMF+ RectData: %f,%f %fx%f\n", dx, dy, dw, dh)); + + B2DPoint mappedCenter (Map (dx + dw/2, dy + dh/2)); + B2DSize mappedSize( MapSize (dw/2, dh/2)); + + ::basegfx::B2DPolyPolygon polyPolygon( ::basegfx::B2DPolygon( ::basegfx::tools::createPolygonFromEllipse( mappedCenter, mappedSize.getX (), mappedSize.getY () ) ) ); + + EMFPPlusFillPolygon( polyPolygon, + rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor ); + } + break; case EmfPlusRecordTypeFillRects: { EMFP_DEBUG (printf ("EMF+ FillRects\n")); |