[Libreoffice-commits] .: svtools/source
Joseph Powers
jpowers at kemper.freedesktop.org
Wed Jul 20 06:33:50 PDT 2011
svtools/source/filter/wmf/winmtf.hxx | 937 +++++++++++++++++++----------------
1 file changed, 518 insertions(+), 419 deletions(-)
New commits:
commit 726fd3c2a130654234db0fb0650dd98a54c3a43d
Author: Joseph Powers <jpowers27 at cox.net>
Date: Wed Jul 20 06:33:30 2011 -0700
Whitespace cleanup
diff --git a/svtools/source/filter/wmf/winmtf.hxx b/svtools/source/filter/wmf/winmtf.hxx
index 013a55d..270af93 100644
--- a/svtools/source/filter/wmf/winmtf.hxx
+++ b/svtools/source/filter/wmf/winmtf.hxx
@@ -57,141 +57,141 @@
#define SIMPLEREGION 2
#define COMPLEXREGION 3
-#define RGN_AND 1
-#define RGN_OR 2
-#define RGN_XOR 3
-#define RGN_DIFF 4
-#define RGN_COPY 5
+#define RGN_AND 1
+#define RGN_OR 2
+#define RGN_XOR 3
+#define RGN_DIFF 4
+#define RGN_COPY 5
-#define TRANSPARENT 1
-#define OPAQUE 2
-#define BKMODE_LAST 2
+#define TRANSPARENT 1
+#define OPAQUE 2
+#define BKMODE_LAST 2
/* xform stuff */
-#define MWT_IDENTITY 1
-#define MWT_LEFTMULTIPLY 2
-#define MWT_RIGHTMULTIPLY 3
+#define MWT_IDENTITY 1
+#define MWT_LEFTMULTIPLY 2
+#define MWT_RIGHTMULTIPLY 3
#define ENHMETA_STOCK_OBJECT 0x80000000
/* Stock Logical Objects */
-#define WHITE_BRUSH 0
-#define LTGRAY_BRUSH 1
-#define GRAY_BRUSH 2
-#define DKGRAY_BRUSH 3
-#define BLACK_BRUSH 4
-#define NULL_BRUSH 5
-#define HOLLOW_BRUSH NULL_BRUSH
-#define WHITE_PEN 6
-#define BLACK_PEN 7
-#define NULL_PEN 8
-#define OEM_FIXED_FONT 10
-#define ANSI_FIXED_FONT 11
-#define ANSI_VAR_FONT 12
-#define SYSTEM_FONT 13
-#define DEVICE_DEFAULT_FONT 14
-#define DEFAULT_PALETTE 15
-#define SYSTEM_FIXED_FONT 16
-
-
-#define R2_BLACK 1
-#define R2_NOTMERGEPEN 2
-#define R2_MASKNOTPEN 3
-#define R2_NOTCOPYPEN 4
-#define R2_MASKPENNOT 5
-#define R2_NOT 6
-#define R2_XORPEN 7
-#define R2_NOTMASKPEN 8
-#define R2_MASKPEN 9
-#define R2_NOTXORPEN 10
-#define R2_NOP 11
-#define R2_MERGENOTPEN 12
-#define R2_COPYPEN 13
-#define R2_MERGEPENNOT 14
-#define R2_MERGEPEN 15
-#define R2_WHITE 16
+#define WHITE_BRUSH 0
+#define LTGRAY_BRUSH 1
+#define GRAY_BRUSH 2
+#define DKGRAY_BRUSH 3
+#define BLACK_BRUSH 4
+#define NULL_BRUSH 5
+#define HOLLOW_BRUSH NULL_BRUSH
+#define WHITE_PEN 6
+#define BLACK_PEN 7
+#define NULL_PEN 8
+#define OEM_FIXED_FONT 10
+#define ANSI_FIXED_FONT 11
+#define ANSI_VAR_FONT 12
+#define SYSTEM_FONT 13
+#define DEVICE_DEFAULT_FONT 14
+#define DEFAULT_PALETTE 15
+#define SYSTEM_FIXED_FONT 16
+
+
+#define R2_BLACK 1
+#define R2_NOTMERGEPEN 2
+#define R2_MASKNOTPEN 3
+#define R2_NOTCOPYPEN 4
+#define R2_MASKPENNOT 5
+#define R2_NOT 6
+#define R2_XORPEN 7
+#define R2_NOTMASKPEN 8
+#define R2_MASKPEN 9
+#define R2_NOTXORPEN 10
+#define R2_NOP 11
+#define R2_MERGENOTPEN 12
+#define R2_COPYPEN 13
+#define R2_MERGEPENNOT 14
+#define R2_MERGEPEN 15
+#define R2_WHITE 16
/* Mapping Modes */
-#define MM_TEXT 1
-#define MM_LOMETRIC 2
-#define MM_HIMETRIC 3
-#define MM_LOENGLISH 4
-#define MM_HIENGLISH 5
-#define MM_TWIPS 6
-#define MM_ISOTROPIC 7
-#define MM_ANISOTROPIC 8
+#define MM_TEXT 1
+#define MM_LOMETRIC 2
+#define MM_HIMETRIC 3
+#define MM_LOENGLISH 4
+#define MM_HIENGLISH 5
+#define MM_TWIPS 6
+#define MM_ISOTROPIC 7
+#define MM_ANISOTROPIC 8
/* Graphics Modes */
-#define GM_COMPATIBLE 1
-#define GM_ADVANCED 2
-#define GM_LAST 2
+#define GM_COMPATIBLE 1
+#define GM_ADVANCED 2
+#define GM_LAST 2
/* StretchBlt() Modes */
-#define BLACKONWHITE 1
-#define WHITEONBLACK 2
-#define COLORONCOLOR 3
-#define HALFTONE 4
-#define MAXSTRETCHBLTMODE 4
-#define STRETCH_ANDSCANS BLACKONWHITE
-#define STRETCH_ORSCANS WHITEONBLACK
-#define STRETCH_DELETESCANS COLORONCOLOR
-#define STRETCH_HALFTONE HALFTONE
-
-#define LF_FACESIZE 32
+#define BLACKONWHITE 1
+#define WHITEONBLACK 2
+#define COLORONCOLOR 3
+#define HALFTONE 4
+#define MAXSTRETCHBLTMODE 4
+#define STRETCH_ANDSCANS BLACKONWHITE
+#define STRETCH_ORSCANS WHITEONBLACK
+#define STRETCH_DELETESCANS COLORONCOLOR
+#define STRETCH_HALFTONE HALFTONE
+
+#define LF_FACESIZE 32
struct LOGFONTW
{
- sal_Int32 lfHeight;
- sal_Int32 lfWidth;
- sal_Int32 lfEscapement;
- sal_Int32 lfOrientation;
- sal_Int32 lfWeight;
- sal_uInt8 lfItalic;
- sal_uInt8 lfUnderline;
- sal_uInt8 lfStrikeOut;
- sal_uInt8 lfCharSet;
- sal_uInt8 lfOutPrecision;
- sal_uInt8 lfClipPrecision;
- sal_uInt8 lfQuality;
- sal_uInt8 lfPitchAndFamily;
- String alfFaceName;
+ sal_Int32 lfHeight;
+ sal_Int32 lfWidth;
+ sal_Int32 lfEscapement;
+ sal_Int32 lfOrientation;
+ sal_Int32 lfWeight;
+ sal_uInt8 lfItalic;
+ sal_uInt8 lfUnderline;
+ sal_uInt8 lfStrikeOut;
+ sal_uInt8 lfCharSet;
+ sal_uInt8 lfOutPrecision;
+ sal_uInt8 lfClipPrecision;
+ sal_uInt8 lfQuality;
+ sal_uInt8 lfPitchAndFamily;
+ String alfFaceName;
};
struct WMF_APMFILEHEADER;
-#define TA_NOUPDATECP 0x0000
-#define TA_UPDATECP 0x0001
-#define TA_LEFT 0x0000
-#define TA_RIGHT 0x0002
-#define TA_CENTER 0x0006
-#define TA_RIGHT_CENTER (TA_RIGHT | TA_CENTER)
-#define TA_TOP 0x0000
-#define TA_BOTTOM 0x0008
-#define TA_BASELINE 0x0018
-
-#define SRCCOPY 0x00CC0020L
-#define SRCPAINT 0x00EE0086L
-#define SRCAND 0x008800C6L
-#define SRCINVERT 0x00660046L
-#define SRCERASE 0x00440328L
-#define NOTSRCCOPY 0x00330008L
-#define NOTSRCERASE 0x001100A6L
-#define MERGECOPY 0x00C000CAL
-#define MERGEPAINT 0x00BB0226L
-#define PATCOPY 0x00F00021L
-#define PATPAINT 0x00FB0A09L
-#define PATINVERT 0x005A0049L
-#define DSTINVERT 0x00550009L
-#define BLACKNESS 0x00000042L
-#define WHITENESS 0x00FF0062L
-
-#define PS_SOLID 0
-#define PS_DASH 1
-#define PS_DOT 2
-#define PS_DASHDOT 3
-#define PS_DASHDOTDOT 4
-#define PS_NULL 5
-#define PS_INSIDEFRAME 6
+#define TA_NOUPDATECP 0x0000
+#define TA_UPDATECP 0x0001
+#define TA_LEFT 0x0000
+#define TA_RIGHT 0x0002
+#define TA_CENTER 0x0006
+#define TA_RIGHT_CENTER (TA_RIGHT | TA_CENTER)
+#define TA_TOP 0x0000
+#define TA_BOTTOM 0x0008
+#define TA_BASELINE 0x0018
+
+#define SRCCOPY 0x00CC0020L
+#define SRCPAINT 0x00EE0086L
+#define SRCAND 0x008800C6L
+#define SRCINVERT 0x00660046L
+#define SRCERASE 0x00440328L
+#define NOTSRCCOPY 0x00330008L
+#define NOTSRCERASE 0x001100A6L
+#define MERGECOPY 0x00C000CAL
+#define MERGEPAINT 0x00BB0226L
+#define PATCOPY 0x00F00021L
+#define PATPAINT 0x00FB0A09L
+#define PATINVERT 0x005A0049L
+#define DSTINVERT 0x00550009L
+#define BLACKNESS 0x00000042L
+#define WHITENESS 0x00FF0062L
+
+#define PS_SOLID 0
+#define PS_DASH 1
+#define PS_DOT 2
+#define PS_DASHDOT 3
+#define PS_DASHDOTDOT 4
+#define PS_NULL 5
+#define PS_INSIDEFRAME 6
#define PS_USERSTYLE 7
#define PS_ALTERNATE 8
#define PS_STYLE_MASK 15
@@ -210,14 +210,14 @@ struct WMF_APMFILEHEADER;
#define PS_GEOMETRIC 0x10000
#define PS_TYPE_MASK 0xF0000
-#define ANSI_CHARSET 0
-#define DEFAULT_CHARSET 1
-#define SYMBOL_CHARSET 2
-#define SHIFTJIS_CHARSET 128
-#define HANGEUL_CHARSET 129
-#define GB2312_CHARSET 134
-#define CHINESEBIG5_CHARSET 136
-#define OEM_CHARSET 255
+#define ANSI_CHARSET 0
+#define DEFAULT_CHARSET 1
+#define SYMBOL_CHARSET 2
+#define SHIFTJIS_CHARSET 128
+#define HANGEUL_CHARSET 129
+#define GB2312_CHARSET 134
+#define CHINESEBIG5_CHARSET 136
+#define OEM_CHARSET 255
/*WINVER >= 0x0400*/
#define JOHAB_CHARSET 130
#define HEBREW_CHARSET 177
@@ -231,74 +231,73 @@ struct WMF_APMFILEHEADER;
#define MAC_CHARSET 77
#define BALTIC_CHARSET 186
-#define ETO_OPAQUE 0x0002
-#define ETO_CLIPPED 0x0004
+#define ETO_OPAQUE 0x0002
+#define ETO_CLIPPED 0x0004
/*WINVER >= 0x0400*/
-#define ETO_GLYPH_INDEX 0x0010
-#define ETO_RTLREADING 0x0080
-#define ETO_NUMERICSLOCAL 0x0400
-#define ETO_NUMERICSLATIN 0x0800
-#define ETO_IGNORELANGUAGE 0x1000
+#define ETO_GLYPH_INDEX 0x0010
+#define ETO_RTLREADING 0x0080
+#define ETO_NUMERICSLOCAL 0x0400
+#define ETO_NUMERICSLATIN 0x0800
+#define ETO_IGNORELANGUAGE 0x1000
/*_WIN32_WINNT >= 0x0500*/
-#define ETO_PDY 0x2000
+#define ETO_PDY 0x2000
-#define DEFAULT_PITCH 0x00
-#define FIXED_PITCH 0x01
-#define VARIABLE_PITCH 0x02
+#define DEFAULT_PITCH 0x00
+#define FIXED_PITCH 0x01
+#define VARIABLE_PITCH 0x02
/* Font Families */
-#define FF_DONTCARE 0x00
-#define FF_ROMAN 0x10
-#define FF_SWISS 0x20
-#define FF_MODERN 0x30
-#define FF_SCRIPT 0x40
-#define FF_DECORATIVE 0x50
-
-#define FW_DONTCARE 0
-#define FW_THIN 100
-#define FW_EXTRALIGHT 200
-#define FW_LIGHT 300
-#define FW_NORMAL 400
-#define FW_MEDIUM 500
-#define FW_SEMIBOLD 600
-#define FW_BOLD 700
-#define FW_EXTRABOLD 800
-#define FW_HEAVY 900
-#define FW_ULTRALIGHT 200
-#define FW_REGULAR 400
-#define FW_DEMIBOLD 600
-#define FW_ULTRABOLD 800
-#define FW_BLACK 900
-
-#define BS_SOLID 0
-#define BS_NULL 1
-#define BS_HOLLOW 1
-#define BS_HATCHED 2
-#define BS_PATTERN 3
-#define BS_INDEXED 4
-#define BS_DIBPATTERN 5
-#define BS_DIBPATTERNPT 6
-#define BS_PATTERN8X8 7
-#define BS_DIBPATTERN8X8 8
-#define BS_MONOPATTERN 9
-
-#define W_HS_HORIZONTAL 0
-#define W_HS_VERTICAL 1
-#define W_HS_FDIAGONAL 2
-#define W_HS_BDIAGONAL 3
-#define W_HS_CROSS 4
-#define W_HS_DIAGCROSS 5
+#define FF_DONTCARE 0x00
+#define FF_ROMAN 0x10
+#define FF_SWISS 0x20
+#define FF_MODERN 0x30
+#define FF_SCRIPT 0x40
+#define FF_DECORATIVE 0x50
+
+#define FW_DONTCARE 0
+#define FW_THIN 100
+#define FW_EXTRALIGHT 200
+#define FW_LIGHT 300
+#define FW_NORMAL 400
+#define FW_MEDIUM 500
+#define FW_SEMIBOLD 600
+#define FW_BOLD 700
+#define FW_EXTRABOLD 800
+#define FW_HEAVY 900
+#define FW_ULTRALIGHT 200
+#define FW_REGULAR 400
+#define FW_DEMIBOLD 600
+#define FW_ULTRABOLD 800
+#define FW_BLACK 900
+
+#define BS_SOLID 0
+#define BS_NULL 1
+#define BS_HOLLOW 1
+#define BS_HATCHED 2
+#define BS_PATTERN 3
+#define BS_INDEXED 4
+#define BS_DIBPATTERN 5
+#define BS_DIBPATTERNPT 6
+#define BS_PATTERN8X8 7
+#define BS_DIBPATTERN8X8 8
+#define BS_MONOPATTERN 9
+
+#define W_HS_HORIZONTAL 0
+#define W_HS_VERTICAL 1
+#define W_HS_FDIAGONAL 2
+#define W_HS_BDIAGONAL 3
+#define W_HS_CROSS 4
+#define W_HS_DIAGCROSS 5
#define RDH_RECTANGLES 1
-#define W_MFCOMMENT 15
+#define W_MFCOMMENT 15
-#define PRIVATE_ESCAPE_UNICODE 2
+#define PRIVATE_ESCAPE_UNICODE 2
//============================ WMFReader ==================================
-
#ifdef WIN_MTF_ASSERT
#define WIN_MTF_ASSERT_INIT 0x80000000
#define WIN_MTF_ASSERT_ONCE 0x40000000
@@ -314,40 +313,39 @@ class WinMtfClipPath
public :
WinMtfClipPath(): maClip() {};
- void setClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode );
- void intersectClipRect( const Rectangle& rRect );
- void excludeClipRect( const Rectangle& rRect );
- void moveClipRegion( const Size& rSize );
+ void setClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode );
+ void intersectClipRect( const Rectangle& rRect );
+ void excludeClipRect( const Rectangle& rRect );
+ void moveClipRegion( const Size& rSize );
- bool isEmpty() const { return maClip.isCleared(); }
+ bool isEmpty() const { return maClip.isCleared(); }
basegfx::B2DPolyPolygon getClipPath() const;
- bool operator==( const WinMtfClipPath& rPath ) const
- {
- return maClip == rPath.maClip;
- };
+ bool operator==( const WinMtfClipPath& rPath ) const
+ {
+ return maClip == rPath.maClip;
+ };
};
class WinMtfPathObj : public PolyPolygon
{
- sal_Bool bClosed;
+ sal_Bool bClosed;
- public :
+public :
WinMtfPathObj() { bClosed = sal_True; }
- void Init() { Clear(); bClosed = sal_True; };
- void ClosePath();
-
- void AddPoint( const Point& rPoint );
- void AddPolygon( const Polygon& rPoly );
- void AddPolyLine( const Polygon& rPoly );
- void AddPolyPolygon( const PolyPolygon& rPolyPolygon );
+ void Init() { Clear(); bClosed = sal_True; };
+ void ClosePath();
+ void AddPoint( const Point& rPoint );
+ void AddPolygon( const Polygon& rPoly );
+ void AddPolyLine( const Polygon& rPoly );
+ void AddPolyPolygon( const PolyPolygon& rPolyPolygon );
};
struct WinMtfFontStyle
{
- Font aFont;
+ Font aFont;
WinMtfFontStyle( LOGFONTW& rLogFont );
};
@@ -361,8 +359,8 @@ typedef enum {
struct WinMtfFillStyle
{
- Color aFillColor;
- sal_Bool bTransparent;
+ Color aFillColor;
+ sal_Bool bTransparent;
WinMtfFillStyleType aType;
Bitmap aBmp;
@@ -387,36 +385,72 @@ struct WinMtfFillStyle
}
sal_Bool operator==( const WinMtfFillStyle& rStyle )
- { return ( ( aFillColor == rStyle.aFillColor ) && ( bTransparent == rStyle.bTransparent ) && ( aType == rStyle.aType ) ); }
+ {
+ return ( ( aFillColor == rStyle.aFillColor )
+ && ( bTransparent == rStyle.bTransparent )
+ && ( aType == rStyle.aType )
+ );
+ }
sal_Bool operator==( WinMtfFillStyle* pStyle )
- { return ( ( aFillColor == pStyle->aFillColor ) && ( bTransparent == pStyle->bTransparent ) && ( aType == pStyle->aType ) ); }
- WinMtfFillStyle& operator=( const WinMtfFillStyle& rStyle ) { aFillColor = rStyle.aFillColor; bTransparent = rStyle.bTransparent; aBmp = rStyle.aBmp; aType = rStyle.aType; return *this; }
- WinMtfFillStyle& operator=( WinMtfFillStyle* pStyle ) { aFillColor = pStyle->aFillColor; bTransparent = pStyle->bTransparent; aBmp = pStyle->aBmp; aType = pStyle->aType; return *this; }
+ {
+ return ( ( aFillColor == pStyle->aFillColor )
+ && ( bTransparent == pStyle->bTransparent )
+ && ( aType == pStyle->aType )
+ );
+ }
+ WinMtfFillStyle& operator=( const WinMtfFillStyle& rStyle )
+ {
+ aFillColor = rStyle.aFillColor;
+ bTransparent = rStyle.bTransparent;
+ aBmp = rStyle.aBmp;
+ aType = rStyle.aType;
+ return *this;
+ }
+ WinMtfFillStyle& operator=( WinMtfFillStyle* pStyle )
+ {
+ aFillColor = pStyle->aFillColor;
+ bTransparent = pStyle->bTransparent;
+ aBmp = pStyle->aBmp;
+ aType = pStyle->aType;
+ return *this;
+ }
};
// -----------------------------------------------------------------------------
struct WinMtfLineStyle
{
- Color aLineColor;
- LineInfo aLineInfo;
- sal_Bool bTransparent;
+ Color aLineColor;
+ LineInfo aLineInfo;
+ sal_Bool bTransparent;
WinMtfLineStyle() :
- aLineColor ( COL_BLACK ),
+ aLineColor ( COL_BLACK ),
bTransparent( sal_False ) {}
WinMtfLineStyle( const Color& rColor, sal_Bool bTrans = sal_False ) :
- aLineColor ( rColor ),
+ aLineColor ( rColor ),
bTransparent( bTrans ) {}
WinMtfLineStyle( const Color& rColor, const LineInfo rStyle, sal_Bool bTrans = sal_False ) :
- aLineColor ( rColor ),
- aLineInfo ( rStyle ),
+ aLineColor ( rColor ),
+ aLineInfo ( rStyle ),
bTransparent( bTrans ) {}
- sal_Bool operator==( const WinMtfLineStyle& rStyle ) { return ( ( aLineColor == rStyle.aLineColor ) && ( bTransparent == rStyle.bTransparent ) && ( aLineInfo == rStyle.aLineInfo ) ); }
- sal_Bool operator==( WinMtfLineStyle* pStyle ) { return ( ( aLineColor == pStyle->aLineColor ) && ( bTransparent == pStyle->bTransparent ) && ( aLineInfo == pStyle->aLineInfo ) ); }
+ sal_Bool operator==( const WinMtfLineStyle& rStyle )
+ {
+ return ( ( aLineColor == rStyle.aLineColor )
+ && ( bTransparent == rStyle.bTransparent )
+ && ( aLineInfo == rStyle.aLineInfo )
+ );
+ }
+ sal_Bool operator==( WinMtfLineStyle* pStyle )
+ {
+ return ( ( aLineColor == pStyle->aLineColor )
+ && ( bTransparent == pStyle->bTransparent )
+ && ( aLineInfo == pStyle->aLineInfo )
+ );
+ }
WinMtfLineStyle& operator=( const WinMtfLineStyle& rStyle )
{
aLineColor = rStyle.aLineColor;
@@ -438,12 +472,12 @@ struct WinMtfLineStyle
struct XForm
{
- float eM11;
- float eM12;
- float eM21;
- float eM22;
- float eDx;
- float eDy;
+ float eM11;
+ float eM12;
+ float eM21;
+ float eM22;
+ float eDx;
+ float eDy;
XForm()
{
eM11 = eM22 = 1.0f;
@@ -458,25 +492,25 @@ struct XForm
struct SaveStruct
{
sal_uInt32 nBkMode, nMapMode, nGfxMode, nTextLayoutMode;
- sal_Int32 nWinOrgX, nWinOrgY, nWinExtX, nWinExtY;
- sal_Int32 nDevOrgX, nDevOrgY, nDevWidth, nDevHeight;
+ sal_Int32 nWinOrgX, nWinOrgY, nWinExtX, nWinExtY;
+ sal_Int32 nDevOrgX, nDevOrgY, nDevWidth, nDevHeight;
- WinMtfLineStyle aLineStyle;
- WinMtfFillStyle aFillStyle;
+ WinMtfLineStyle aLineStyle;
+ WinMtfFillStyle aFillStyle;
- Font aFont;
- Color aBkColor;
- Color aTextColor;
+ Font aFont;
+ Color aBkColor;
+ Color aTextColor;
sal_uInt32 nTextAlign;
RasterOp eRasterOp;
- Point aActPos;
- WinMtfPathObj aPathObj;
- WinMtfClipPath aClipPath;
- XForm aXForm;
+ Point aActPos;
+ WinMtfPathObj aPathObj;
+ WinMtfClipPath aClipPath;
+ XForm aXForm;
- sal_Bool bRecordPath;
- sal_Bool bFillStyleSelected;
+ sal_Bool bRecordPath;
+ sal_Bool bFillStyleSelected;
};
typedef ::boost::shared_ptr< SaveStruct > SaveStructPtr;
@@ -485,27 +519,44 @@ typedef ::boost::shared_ptr< SaveStruct > SaveStructPtr;
struct BSaveStruct
{
- Bitmap aBmp;
- Rectangle aOutRect;
- sal_uInt32 nWinRop;
+ Bitmap aBmp;
+ Rectangle aOutRect;
+ sal_uInt32 nWinRop;
WinMtfFillStyle aStyle;
- BSaveStruct( const Bitmap& rBmp, const Rectangle& rOutRect, sal_uInt32 nRop, WinMtfFillStyle& rStyle ) :
- aBmp( rBmp ), aOutRect( rOutRect ), nWinRop( nRop ), aStyle ( rStyle ){}
+ BSaveStruct(
+ const Bitmap& rBmp,
+ const Rectangle& rOutRect,
+ sal_uInt32 nRop,
+ WinMtfFillStyle& rStyle
+ )
+ : aBmp( rBmp )
+ , aOutRect( rOutRect )
+ , nWinRop( nRop )
+ , aStyle ( rStyle )
+ {}
};
// -----------------------------------------------------------------------------
-enum GDIObjectType { GDI_DUMMY = 0, GDI_PEN = 1, GDI_BRUSH = 2, GDI_FONT = 3, GDI_PALETTE = 4, GDI_BITMAP = 5, GDI_REGION = 6 };
+enum GDIObjectType {
+ GDI_DUMMY = 0,
+ GDI_PEN = 1,
+ GDI_BRUSH = 2,
+ GDI_FONT = 3,
+ GDI_PALETTE = 4,
+ GDI_BITMAP = 5,
+ GDI_REGION = 6
+};
struct GDIObj
{
- void* pStyle;
- GDIObjectType eType;
+ void* pStyle;
+ GDIObjectType eType;
GDIObj() :
- pStyle ( NULL ),
- eType ( GDI_DUMMY )
+ pStyle ( NULL ),
+ eType ( GDI_DUMMY )
{
}
@@ -546,178 +597,212 @@ struct GDIObj
class WinMtfOutput
{
- WinMtfPathObj aPathObj;
- WinMtfClipPath aClipPath;
-
- WinMtfLineStyle maLatestLineStyle;
- WinMtfLineStyle maLineStyle;
- WinMtfFillStyle maLatestFillStyle;
- WinMtfFillStyle maFillStyle;
- Font maLatestFont;
- Font maFont;
- sal_uInt32 mnLatestTextAlign;
- sal_uInt32 mnTextAlign;
- Color maLatestTextColor;
- Color maTextColor;
- Color maLatestBkColor;
- Color maBkColor;
- sal_uInt32 mnLatestTextLayoutMode;
- sal_uInt32 mnTextLayoutMode;
- sal_uInt32 mnLatestBkMode;
- sal_uInt32 mnBkMode;
- RasterOp meLatestRasterOp;
- RasterOp meRasterOp;
-
- std::vector< GDIObj* > vGDIObj;
-
- Point maActPos;
-
- sal_uInt32 mnRop;
- sal_Bool mbNopMode;
- sal_Bool mbFillStyleSelected;
- sal_Bool mbClipNeedsUpdate;
- sal_Bool mbComplexClip;
-
- std::vector< SaveStructPtr > vSaveStack;
-
- sal_uInt32 mnGfxMode;
- sal_uInt32 mnMapMode;
- sal_uInt16 mnUnitsPerInch;
-
- XForm maXForm;
- sal_Int32 mnDevOrgX, mnDevOrgY;
- sal_Int32 mnDevWidth, mnDevHeight;
- sal_Int32 mnWinOrgX, mnWinOrgY; // aktuelles Window-Origin
- sal_Int32 mnWinExtX, mnWinExtY; // aktuelles Window-Extent
-
- sal_Int32 mnPixX, mnPixY; // Reference Device in pixel
- sal_Int32 mnMillX, mnMillY; // Reference Device in Mill
- Rectangle mrclFrame; // rectangle in logical units 1/100th mm
- Rectangle mrclBounds;
-
- GDIMetaFile* mpGDIMetaFile;
-
- void UpdateLineStyle();
- void UpdateFillStyle();
-
- Point ImplMap( const Point& rPt );
- Size ImplMap( const Size& rSz );
- Rectangle ImplMap( const Rectangle& rRectangle );
- void ImplMap( Font& rFont );
- Polygon& ImplMap( Polygon& rPolygon );
- PolyPolygon& ImplMap( PolyPolygon& rPolyPolygon );
- void ImplResizeObjectArry( sal_uInt32 nNewEntry );
- void ImplSetNonPersistentLineColorTransparenz();
- void ImplDrawClippedPolyPolygon( const PolyPolygon& rPolyPoly );
- void ImplDrawBitmap( const Point& rPos, const Size& rSize, const BitmapEx rBitmap );
-
- public:
-
- void SetDevOrg( const Point& rPoint );
- void SetDevOrgOffset( sal_Int32 nXAdd, sal_Int32 nYAdd );
- void SetDevExt( const Size& rSize );
- void ScaleDevExt( double fX, double fY );
-
- void SetWinOrg( const Point& rPoint );
- void SetWinOrgOffset( sal_Int32 nX, sal_Int32 nY );
- void SetWinExt( const Size& rSize );
- void ScaleWinExt( double fX, double fY );
-
- void SetrclBounds( const Rectangle& rRect );
- void SetrclFrame( const Rectangle& rRect );
- void SetRefPix( const Size& rSize );
- void SetRefMill( const Size& rSize );
-
- sal_uInt32 GetMapMode() const { return mnMapMode; };
- void SetMapMode( sal_uInt32 mnMapMode );
- void SetUnitsPerInch( sal_uInt16 nUnitsPerInch );
- void SetWorldTransform( const XForm& rXForm );
- void ModifyWorldTransform( const XForm& rXForm, sal_uInt32 nMode );
-
- void Push();
- void Pop();
-
- sal_uInt32 SetRasterOp( sal_uInt32 nRasterOp );
- void StrokeAndFillPath( sal_Bool bStroke, sal_Bool bFill );
-
- void SetGfxMode( sal_Int32 nGfxMode ){ mnGfxMode = nGfxMode; };
- sal_Int32 GetGfxMode() const { return mnGfxMode; };
- void SetBkMode( sal_uInt32 nMode );
- void SetBkColor( const Color& rColor );
- void SetTextColor( const Color& rColor );
- void SetTextAlign( sal_uInt32 nAlign );
- void CreateObject( GDIObjectType, void* pStyle = NULL );
- void CreateObject( sal_Int32 nIndex, GDIObjectType, void* pStyle = NULL );
- void DeleteObject( sal_Int32 nIndex );
- void SelectObject( sal_Int32 nIndex );
- CharSet GetCharSet(){ return maFont.GetCharSet(); };
- WinMtfFillStyle& GetFillStyle () { return maFillStyle; }
- void SetFont( const Font& rFont );
- const Font& GetFont() const;
- void SetTextLayoutMode( const sal_uInt32 nLayoutMode );
- sal_uInt32 GetTextLayoutMode() const;
-
- void ClearPath(){ aPathObj.Init(); };
- void ClosePath(){ aPathObj.ClosePath(); };
- const PolyPolygon& GetPathObj(){ return aPathObj; };
-
- void MoveTo( const Point& rPoint, sal_Bool bRecordPath = sal_False );
- void LineTo( const Point& rPoint, sal_Bool bRecordPath = sal_False );
- void DrawPixel( const Point& rSource, const Color& rColor );
- void DrawLine( const Point& rSource, const Point& rDest );
- void DrawRect( const Rectangle& rRect, sal_Bool bEdge = sal_True );
- void DrawRoundRect( const Rectangle& rRect, const Size& rSize );
- void DrawEllipse( const Rectangle& rRect );
- void DrawArc( const Rectangle& rRect, const Point& rStartAngle, const Point& rEndAngle, sal_Bool bDrawTo = sal_False );
- void DrawPie( const Rectangle& rRect, const Point& rStartAngle, const Point& rEndAngle );
- void DrawChord( const Rectangle& rRect, const Point& rStartAngle, const Point& rEndAngle );
- void DrawPolygon( Polygon& rPolygon, sal_Bool bRecordPath = sal_False );
- void DrawPolyPolygon( PolyPolygon& rPolyPolygon, sal_Bool bRecordPath = sal_False );
- void DrawPolyLine( Polygon& rPolygon, sal_Bool bDrawTo = sal_False, sal_Bool bRecordPath = sal_False );
- void DrawPolyBezier( Polygon& rPolygin, sal_Bool bDrawTo = sal_False, sal_Bool bRecordPath = sal_False );
- void DrawText( Point& rPosition, String& rString, sal_Int32* pDXArry = NULL, sal_Bool bRecordPath = sal_False,
- sal_Int32 nGraphicsMode = GM_COMPATIBLE );
- void ResolveBitmapActions( List& rSaveList );
-
- void IntersectClipRect( const Rectangle& rRect );
- void ExcludeClipRect( const Rectangle& rRect );
- void MoveClipRegion( const Size& rSize );
- void SetClipPath( const PolyPolygon& rPolyPoly, sal_Int32 nClippingMode, sal_Bool bIsMapped );
- void UpdateClipRegion();
- void AddFromGDIMetaFile( GDIMetaFile& rGDIMetaFile );
-
- void PassEMFPlus( void* pBuffer, sal_uInt32 nLength );
- void PassEMFPlusHeaderInfo();
-
- WinMtfOutput( GDIMetaFile& rGDIMetaFile );
- virtual ~WinMtfOutput();
+ WinMtfPathObj aPathObj;
+ WinMtfClipPath aClipPath;
+
+ WinMtfLineStyle maLatestLineStyle;
+ WinMtfLineStyle maLineStyle;
+ WinMtfFillStyle maLatestFillStyle;
+ WinMtfFillStyle maFillStyle;
+ Font maLatestFont;
+ Font maFont;
+ sal_uInt32 mnLatestTextAlign;
+ sal_uInt32 mnTextAlign;
+ Color maLatestTextColor;
+ Color maTextColor;
+ Color maLatestBkColor;
+ Color maBkColor;
+ sal_uInt32 mnLatestTextLayoutMode;
+ sal_uInt32 mnTextLayoutMode;
+ sal_uInt32 mnLatestBkMode;
+ sal_uInt32 mnBkMode;
+ RasterOp meLatestRasterOp;
+ RasterOp meRasterOp;
+
+ std::vector< GDIObj* > vGDIObj;
+
+ Point maActPos;
+
+ sal_uInt32 mnRop;
+ sal_Bool mbNopMode;
+ sal_Bool mbFillStyleSelected;
+ sal_Bool mbClipNeedsUpdate;
+ sal_Bool mbComplexClip;
+
+ std::vector< SaveStructPtr > vSaveStack;
+
+ sal_uInt32 mnGfxMode;
+ sal_uInt32 mnMapMode;
+ sal_uInt16 mnUnitsPerInch;
+
+ XForm maXForm;
+ sal_Int32 mnDevOrgX, mnDevOrgY;
+ sal_Int32 mnDevWidth, mnDevHeight;
+ sal_Int32 mnWinOrgX, mnWinOrgY; // aktuelles Window-Origin
+ sal_Int32 mnWinExtX, mnWinExtY; // aktuelles Window-Extent
+
+ sal_Int32 mnPixX, mnPixY; // Reference Device in pixel
+ sal_Int32 mnMillX, mnMillY; // Reference Device in Mill
+ Rectangle mrclFrame; // rectangle in logical units 1/100th mm
+ Rectangle mrclBounds;
+
+ GDIMetaFile* mpGDIMetaFile;
+
+ void UpdateLineStyle();
+ void UpdateFillStyle();
+
+ Point ImplMap( const Point& rPt );
+ Size ImplMap( const Size& rSz );
+ Rectangle ImplMap( const Rectangle& rRectangle );
+ void ImplMap( Font& rFont );
+ Polygon& ImplMap( Polygon& rPolygon );
+ PolyPolygon& ImplMap( PolyPolygon& rPolyPolygon );
+ void ImplResizeObjectArry( sal_uInt32 nNewEntry );
+ void ImplSetNonPersistentLineColorTransparenz();
+ void ImplDrawClippedPolyPolygon( const PolyPolygon& rPolyPoly );
+ void ImplDrawBitmap( const Point& rPos, const Size& rSize, const BitmapEx rBitmap );
+
+public:
+
+ void SetDevOrg( const Point& rPoint );
+ void SetDevOrgOffset( sal_Int32 nXAdd, sal_Int32 nYAdd );
+ void SetDevExt( const Size& rSize );
+ void ScaleDevExt( double fX, double fY );
+
+ void SetWinOrg( const Point& rPoint );
+ void SetWinOrgOffset( sal_Int32 nX, sal_Int32 nY );
+ void SetWinExt( const Size& rSize );
+ void ScaleWinExt( double fX, double fY );
+
+ void SetrclBounds( const Rectangle& rRect );
+ void SetrclFrame( const Rectangle& rRect );
+ void SetRefPix( const Size& rSize );
+ void SetRefMill( const Size& rSize );
+
+ sal_uInt32 GetMapMode() const { return mnMapMode; };
+ void SetMapMode( sal_uInt32 mnMapMode );
+ void SetUnitsPerInch( sal_uInt16 nUnitsPerInch );
+ void SetWorldTransform( const XForm& rXForm );
+ void ModifyWorldTransform( const XForm& rXForm, sal_uInt32 nMode );
+
+ void Push();
+ void Pop();
+
+ sal_uInt32 SetRasterOp( sal_uInt32 nRasterOp );
+ void StrokeAndFillPath( sal_Bool bStroke, sal_Bool bFill );
+
+ void SetGfxMode( sal_Int32 nGfxMode ){ mnGfxMode = nGfxMode; };
+ sal_Int32 GetGfxMode() const { return mnGfxMode; };
+ void SetBkMode( sal_uInt32 nMode );
+ void SetBkColor( const Color& rColor );
+ void SetTextColor( const Color& rColor );
+ void SetTextAlign( sal_uInt32 nAlign );
+ void CreateObject( GDIObjectType, void* pStyle = NULL );
+ void CreateObject( sal_Int32 nIndex, GDIObjectType, void* pStyle = NULL );
+ void DeleteObject( sal_Int32 nIndex );
+ void SelectObject( sal_Int32 nIndex );
+ CharSet GetCharSet(){ return maFont.GetCharSet(); };
+ WinMtfFillStyle& GetFillStyle () { return maFillStyle; }
+ void SetFont( const Font& rFont );
+ const Font& GetFont() const;
+ void SetTextLayoutMode( const sal_uInt32 nLayoutMode );
+ sal_uInt32 GetTextLayoutMode() const;
+
+ void ClearPath(){ aPathObj.Init(); };
+ void ClosePath(){ aPathObj.ClosePath(); };
+ const PolyPolygon& GetPathObj(){ return aPathObj; };
+
+ void MoveTo( const Point& rPoint, sal_Bool bRecordPath = sal_False );
+ void LineTo( const Point& rPoint, sal_Bool bRecordPath = sal_False );
+ void DrawPixel( const Point& rSource, const Color& rColor );
+ void DrawLine( const Point& rSource, const Point& rDest );
+ void DrawRect( const Rectangle& rRect, sal_Bool bEdge = sal_True );
+ void DrawRoundRect( const Rectangle& rRect, const Size& rSize );
+ void DrawEllipse( const Rectangle& rRect );
+ void DrawArc(
+ const Rectangle& rRect,
+ const Point& rStartAngle,
+ const Point& rEndAngle,
+ sal_Bool bDrawTo = sal_False
+ );
+ void DrawPie(
+ const Rectangle& rRect,
+ const Point& rStartAngle,
+ const Point& rEndAngle
+ );
+ void DrawChord(
+ const Rectangle& rRect,
+ const Point& rStartAngle,
+ const Point& rEndAngle
+ );
+ void DrawPolygon( Polygon& rPolygon, sal_Bool bRecordPath = sal_False );
+ void DrawPolyPolygon( PolyPolygon& rPolyPolygon, sal_Bool bRecordPath = sal_False );
+ void DrawPolyLine(
+ Polygon& rPolygon,
+ sal_Bool bDrawTo = sal_False,
+ sal_Bool bRecordPath = sal_False
+ );
+ void DrawPolyBezier(
+ Polygon& rPolygin,
+ sal_Bool bDrawTo = sal_False,
+ sal_Bool bRecordPath = sal_False
+ );
+ void DrawText(
+ Point& rPosition,
+ String& rString,
+ sal_Int32* pDXArry = NULL,
+ sal_Bool bRecordPath = sal_False,
+ sal_Int32 nGraphicsMode = GM_COMPATIBLE
+ );
+ void ResolveBitmapActions( List& rSaveList );
+
+ void IntersectClipRect( const Rectangle& rRect );
+ void ExcludeClipRect( const Rectangle& rRect );
+ void MoveClipRegion( const Size& rSize );
+ void SetClipPath(
+ const PolyPolygon& rPolyPoly,
+ sal_Int32 nClippingMode,
+ sal_Bool bIsMapped
+ );
+ void UpdateClipRegion();
+ void AddFromGDIMetaFile( GDIMetaFile& rGDIMetaFile );
+
+ void PassEMFPlus( void* pBuffer, sal_uInt32 nLength );
+ void PassEMFPlusHeaderInfo();
+
+ WinMtfOutput( GDIMetaFile& rGDIMetaFile );
+ virtual ~WinMtfOutput();
};
// -----------------------------------------------------------------------------
class WinMtf
{
- protected:
+protected:
- WinMtfOutput* pOut; //
- SvStream* pWMF; // Die einzulesende WMF/EMF-Datei
+ WinMtfOutput* pOut; //
+ SvStream* pWMF; // Die einzulesende WMF/EMF-Datei
- sal_uInt32 nStartPos, nEndPos;
- List aBmpSaveList;
+ sal_uInt32 nStartPos, nEndPos;
+ List aBmpSaveList;
- FilterConfigItem* pFilterConfigItem;
+ FilterConfigItem* pFilterConfigItem;
com::sun::star::uno::Reference< com::sun::star::task::XStatusIndicator > xStatusIndicator;
// Sorgt dafuer, das aSampledBrush der aktuelle Brush des GDIMetaFiles ist.
- Color ReadColor();
- void Callback( sal_uInt16 nPercent );
+ Color ReadColor();
+ void Callback( sal_uInt16 nPercent );
- WinMtf( WinMtfOutput* pOut, SvStream& rStreamWMF, FilterConfigItem* pConfigItem = NULL );
+ WinMtf(
+ WinMtfOutput* pOut,
+ SvStream& rStreamWMF,
+ FilterConfigItem* pConfigItem = NULL
+ );
~WinMtf();
- public:
+public:
};
@@ -725,21 +810,31 @@ class WinMtf
class EnhWMFReader : public WinMtf
{
- sal_Bool bRecordPath;
- sal_Int32 nRecordCount;
+ sal_Bool bRecordPath;
+ sal_Int32 nRecordCount;
sal_Bool bEMFPlus;
- sal_Bool ReadHeader();
- Rectangle ReadRectangle( sal_Int32, sal_Int32, sal_Int32, sal_Int32 ); // Liesst und konvertiert ein Rechteck
- void ImplExtTextOut( sal_Bool bWideCharakter );
+ sal_Bool ReadHeader();
+ // Liesst und konvertiert ein Rechteck
+ Rectangle ReadRectangle( sal_Int32, sal_Int32, sal_Int32, sal_Int32 );
+ void ImplExtTextOut( sal_Bool bWideCharakter );
public:
- EnhWMFReader( SvStream& rStreamWMF, GDIMetaFile& rGDIMetaFile, FilterConfigItem* pConfigItem = NULL )
- : WinMtf( new WinMtfOutput( rGDIMetaFile ), rStreamWMF, pConfigItem ), bRecordPath( sal_False ), bEMFPlus( sal_False ) {};
+ EnhWMFReader(
+ SvStream& rStreamWMF,
+ GDIMetaFile& rGDIMetaFile,
+ FilterConfigItem* pConfigItem = NULL
+ )
+ : WinMtf( new WinMtfOutput( rGDIMetaFile )
+ , rStreamWMF
+ , pConfigItem )
+ , bRecordPath( sal_False )
+ , bEMFPlus( sal_False )
+ {};
~EnhWMFReader();
- sal_Bool ReadEnhWMF();
+ sal_Bool ReadEnhWMF();
void ReadEMFPlusComment(sal_uInt32 length, sal_Bool& bHaveDC);
void ReadGDIComment();
};
@@ -750,9 +845,9 @@ class WMFReader : public WinMtf
{
private:
- VirtualDevice aVDev; // just for the purpose of "IsFontAvailable"
- sal_uInt16 nUnitsPerInch;
- sal_uInt32 nRecSize;
+ VirtualDevice aVDev; // just for the purpose of "IsFontAvailable"
+ sal_uInt16 nUnitsPerInch;
+ sal_uInt32 nRecSize;
// embedded EMF data
SvMemoryStream* pEMFStream;
@@ -766,33 +861,37 @@ private:
// total size of embedded EMF data
sal_uInt32 nEMFSize;
- sal_uInt32 nSkipActions;
- sal_uInt32 nCurrentAction;
- sal_uInt32 nUnicodeEscapeAction;
+ sal_uInt32 nSkipActions;
+ sal_uInt32 nCurrentAction;
+ sal_uInt32 nUnicodeEscapeAction;
// Liesst den Kopf der WMF-Datei
- sal_Bool ReadHeader(WMF_APMFILEHEADER *pAPMHeader);
+ sal_Bool ReadHeader( WMF_APMFILEHEADER *pAPMHeader );
// Liesst die Parameter des Rocords mit der Funktionsnummer nFunction.
- void ReadRecordParams( sal_uInt16 nFunction );
+ void ReadRecordParams( sal_uInt16 nFunction );
- Point ReadPoint(); // Liesst und konvertiert einen Punkt (erst X dann Y)
- Point ReadYX(); // Liesst und konvertiert einen Punkt (erst Y dann X)
- Rectangle ReadRectangle(); // Liesst und konvertiert ein Rechteck
- Size ReadYXExt();
+ Point ReadPoint(); // Liesst und konvertiert einen Punkt (erst X dann Y)
+ Point ReadYX(); // Liesst und konvertiert einen Punkt (erst Y dann X)
+ Rectangle ReadRectangle(); // Liesst und konvertiert ein Rechteck
+ Size ReadYXExt();
sal_Bool GetPlaceableBound( Rectangle& rSize, SvStream* pStrm );
public:
- WMFReader( SvStream& rStreamWMF, GDIMetaFile& rGDIMetaFile, FilterConfigItem* pConfigItem = NULL )
+ WMFReader(
+ SvStream& rStreamWMF,
+ GDIMetaFile& rGDIMetaFile,
+ FilterConfigItem* pConfigItem = NULL
+ )
: WinMtf( new WinMtfOutput( rGDIMetaFile ), rStreamWMF, pConfigItem )
, pEMFStream(NULL)
- {}
+ {}
~WMFReader();
// Liesst aus dem Stream eine WMF-Datei und fuellt das GDIMetaFile
- void ReadWMF(WMF_APMFILEHEADER *pAPMHeader=NULL);
+ void ReadWMF(WMF_APMFILEHEADER *pAPMHeader=NULL);
};
#endif
More information about the Libreoffice-commits
mailing list