LCOV - code coverage report
Current view: top level - include/vcl - metaact.hxx (source / functions) Hit Total Coverage
Test: commit 0e63ca4fde4e446f346e35849c756a30ca294aab Lines: 62 190 32.6 %
Date: 2014-04-11 Functions: 58 186 31.2 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #ifndef INCLUDED_VCL_METAACT_HXX
      21             : #define INCLUDED_VCL_METAACT_HXX
      22             : 
      23             : #include <vcl/dllapi.h>
      24             : #include <vcl/gradient.hxx>
      25             : #include <vcl/hatch.hxx>
      26             : #include <vcl/wall.hxx>
      27             : #include <vcl/font.hxx>
      28             : #include <tools/poly.hxx>
      29             : #include <vcl/bitmap.hxx>
      30             : #include <vcl/bitmapex.hxx>
      31             : #include <vcl/region.hxx>
      32             : #include <vcl/graph.hxx>
      33             : #include <vcl/outdev.hxx>
      34             : #include <vcl/gdimtf.hxx>
      35             : #include <vcl/gfxlink.hxx>
      36             : #include <vcl/lineinfo.hxx>
      37             : 
      38             : class SvStream;
      39             : 
      40             : #define META_NULL_ACTION                    (0)
      41             : #define META_PIXEL_ACTION                   (100)
      42             : #define META_POINT_ACTION                   (101)
      43             : #define META_LINE_ACTION                    (102)
      44             : #define META_RECT_ACTION                    (103)
      45             : #define META_ROUNDRECT_ACTION               (104)
      46             : #define META_ELLIPSE_ACTION                 (105)
      47             : #define META_ARC_ACTION                     (106)
      48             : #define META_PIE_ACTION                     (107)
      49             : #define META_CHORD_ACTION                   (108)
      50             : #define META_POLYLINE_ACTION                (109)
      51             : #define META_POLYGON_ACTION                 (110)
      52             : #define META_POLYPOLYGON_ACTION             (111)
      53             : #define META_TEXT_ACTION                    (112)
      54             : #define META_TEXTARRAY_ACTION               (113)
      55             : #define META_STRETCHTEXT_ACTION             (114)
      56             : #define META_TEXTRECT_ACTION                (115)
      57             : #define META_BMP_ACTION                     (116)
      58             : #define META_BMPSCALE_ACTION                (117)
      59             : #define META_BMPSCALEPART_ACTION            (118)
      60             : #define META_BMPEX_ACTION                   (119)
      61             : #define META_BMPEXSCALE_ACTION              (120)
      62             : #define META_BMPEXSCALEPART_ACTION          (121)
      63             : #define META_MASK_ACTION                    (122)
      64             : #define META_MASKSCALE_ACTION               (123)
      65             : #define META_MASKSCALEPART_ACTION           (124)
      66             : #define META_GRADIENT_ACTION                (125)
      67             : #define META_HATCH_ACTION                   (126)
      68             : #define META_WALLPAPER_ACTION               (127)
      69             : #define META_CLIPREGION_ACTION              (128)
      70             : #define META_ISECTRECTCLIPREGION_ACTION     (129)
      71             : #define META_ISECTREGIONCLIPREGION_ACTION   (130)
      72             : #define META_MOVECLIPREGION_ACTION          (131)
      73             : #define META_LINECOLOR_ACTION               (132)
      74             : #define META_FILLCOLOR_ACTION               (133)
      75             : #define META_TEXTCOLOR_ACTION               (134)
      76             : #define META_TEXTFILLCOLOR_ACTION           (135)
      77             : #define META_TEXTALIGN_ACTION               (136)
      78             : #define META_MAPMODE_ACTION                 (137)
      79             : #define META_FONT_ACTION                    (138)
      80             : #define META_PUSH_ACTION                    (139)
      81             : #define META_POP_ACTION                     (140)
      82             : #define META_RASTEROP_ACTION                (141)
      83             : #define META_TRANSPARENT_ACTION             (142)
      84             : #define META_EPS_ACTION                     (143)
      85             : #define META_REFPOINT_ACTION                (144)
      86             : #define META_TEXTLINECOLOR_ACTION           (145)
      87             : #define META_TEXTLINE_ACTION                (146)
      88             : #define META_FLOATTRANSPARENT_ACTION        (147)
      89             : #define META_GRADIENTEX_ACTION              (148)
      90             : #define META_LAYOUTMODE_ACTION              (149)
      91             : #define META_TEXTLANGUAGE_ACTION            (150)
      92             : #define META_OVERLINECOLOR_ACTION           (151)
      93             : 
      94             : #define META_COMMENT_ACTION                 (512)
      95             : 
      96             : struct ImplMetaReadData
      97             : {
      98             :     rtl_TextEncoding        meActualCharSet;
      99             : 
     100        5019 :                             ImplMetaReadData() :
     101        5019 :                                 meActualCharSet( RTL_TEXTENCODING_ASCII_US )
     102             :                             {
     103        5019 :                             }
     104             : };
     105             : 
     106             : struct ImplMetaWriteData
     107             : {
     108             :     rtl_TextEncoding        meActualCharSet;
     109             : 
     110        5699 :                             ImplMetaWriteData() :
     111        5699 :                                 meActualCharSet( RTL_TEXTENCODING_ASCII_US )
     112             :                             {
     113        5699 :                             }
     114             : };
     115             : 
     116             : #define DECL_META_ACTION( Name, nType )                                     \
     117             :                         Meta##Name##Action();                               \
     118             : protected:                                                                  \
     119             :     virtual             ~Meta##Name##Action();                              \
     120             : public:                                                                     \
     121             :     virtual void        Execute( OutputDevice* pOut ) SAL_OVERRIDE;                      \
     122             :     virtual MetaAction* Clone() SAL_OVERRIDE;                                            \
     123             :     virtual void        Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE; \
     124             :     virtual void        Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
     125             : 
     126             : #define IMPL_META_ACTION( Name, nType )                                 \
     127             : Meta##Name##Action::Meta##Name##Action() :                              \
     128             :     MetaAction( nType ) {}                                              \
     129             : Meta##Name##Action::~Meta##Name##Action() {}
     130             : 
     131           0 : class VCL_DLLPUBLIC MetaAction
     132             : {
     133             : private:
     134             :     sal_uLong               mnRefCount;
     135             :     sal_uInt16              mnType;
     136             : 
     137             :     virtual bool    Compare( const MetaAction& ) const;
     138             : 
     139             : protected:
     140             :     virtual             ~MetaAction();
     141             : 
     142             : public:
     143             :                         MetaAction();
     144             :     explicit            MetaAction( sal_uInt16 nType );
     145             : 
     146             :     virtual void        Execute( OutputDevice* pOut );
     147             : 
     148             :     virtual MetaAction* Clone();
     149             : 
     150             :     virtual void        Move( long nHorzMove, long nVertMove );
     151             :     virtual void        Scale( double fScaleX, double fScaleY );
     152             : 
     153             :     virtual void        Write( SvStream& rOStm, ImplMetaWriteData* pData );
     154             :     virtual void        Read( SvStream& rIStm, ImplMetaReadData* pData );
     155             : 
     156      718397 :     sal_uInt16              GetType() const { return mnType; }
     157       10172 :     sal_uLong               GetRefCount() const { return mnRefCount; }
     158          64 :     void                ResetRefCount() { mnRefCount = 1; }
     159      781929 :     void                Duplicate()  { mnRefCount++; }
     160     1713746 :     void                Delete() { if ( 0 == --mnRefCount ) delete this; }
     161             : 
     162             : public:
     163             :     static MetaAction*  ReadMetaAction( SvStream& rIStm, ImplMetaReadData* pData );
     164             : };
     165             : 
     166           0 : class VCL_DLLPUBLIC MetaPixelAction : public MetaAction
     167             : {
     168             : private:
     169             :     Point               maPt;
     170             :     Color               maColor;
     171             : 
     172             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     173             : 
     174             : public:
     175             :                         DECL_META_ACTION( Pixel, META_PIXEL_ACTION )
     176             : 
     177             :                         MetaPixelAction( const Point& rPt, const Color& rColor );
     178             : 
     179             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     180             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     181             : 
     182           0 :     const Point&        GetPoint() const { return maPt; }
     183           0 :     const Color&        GetColor() const { return maColor; }
     184             : };
     185             : 
     186           0 : class VCL_DLLPUBLIC MetaPointAction : public MetaAction
     187             : {
     188             : private:
     189             :     Point               maPt;
     190             : 
     191             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     192             : 
     193             : public:
     194             :                         DECL_META_ACTION( Point, META_POINT_ACTION )
     195             : 
     196             :     explicit            MetaPointAction( const Point& );
     197             : 
     198             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     199             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     200             : 
     201           0 :     const Point&        GetPoint() const { return maPt; }
     202             : };
     203             : 
     204           0 : class VCL_DLLPUBLIC MetaLineAction : public MetaAction
     205             : {
     206             : private:
     207             : 
     208             :     LineInfo            maLineInfo;
     209             :     Point               maStartPt;
     210             :     Point               maEndPt;
     211             : 
     212             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     213             : 
     214             : public:
     215             :                         DECL_META_ACTION( Line, META_LINE_ACTION )
     216             : 
     217             :                         MetaLineAction( const Point& rStart, const Point& rEnd );
     218             :                         MetaLineAction( const Point& rStart, const Point& rEnd,
     219             :                                         const LineInfo& rLineInfo );
     220             : 
     221             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     222             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     223             : 
     224         905 :     const Point&        GetStartPoint() const { return maStartPt; }
     225        1620 :     const Point&        GetEndPoint() const { return maEndPt; }
     226         810 :     const LineInfo&     GetLineInfo() const { return maLineInfo; }
     227             : };
     228             : 
     229           0 : class VCL_DLLPUBLIC MetaRectAction : public MetaAction
     230             : {
     231             : private:
     232             : 
     233             :     Rectangle           maRect;
     234             : 
     235             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     236             : public:
     237             :                         DECL_META_ACTION( Rect, META_RECT_ACTION )
     238             : 
     239             :     explicit            MetaRectAction( const Rectangle& );
     240             : 
     241             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     242             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     243             : 
     244         327 :     const Rectangle&    GetRect() const { return maRect; }
     245             : };
     246             : 
     247           0 : class VCL_DLLPUBLIC MetaRoundRectAction : public MetaAction
     248             : {
     249             : private:
     250             : 
     251             :     Rectangle           maRect;
     252             :     sal_uInt32          mnHorzRound;
     253             :     sal_uInt32          mnVertRound;
     254             : 
     255             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     256             : 
     257             : public:
     258             :                         DECL_META_ACTION( RoundRect, META_ROUNDRECT_ACTION )
     259             : 
     260             :                         MetaRoundRectAction( const Rectangle& rRect,
     261             :                                              sal_uInt32 nHorzRound, sal_uInt32 nVertRound );
     262             : 
     263             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     264             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     265             : 
     266           0 :     const Rectangle&    GetRect() const { return maRect; }
     267           0 :     sal_uInt32          GetHorzRound() const { return mnHorzRound; }
     268           0 :     sal_uInt32          GetVertRound() const { return mnVertRound; }
     269             : };
     270             : 
     271           0 : class VCL_DLLPUBLIC MetaEllipseAction : public MetaAction
     272             : {
     273             : private:
     274             : 
     275             :     Rectangle           maRect;
     276             : 
     277             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     278             : 
     279             : public:
     280             :                         DECL_META_ACTION( Ellipse, META_ELLIPSE_ACTION )
     281             : 
     282             :     explicit            MetaEllipseAction( const Rectangle& );
     283             : 
     284             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     285             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     286             : 
     287           0 :     const Rectangle&    GetRect() const { return maRect; }
     288             : };
     289             : 
     290           0 : class VCL_DLLPUBLIC MetaArcAction : public MetaAction
     291             : {
     292             : private:
     293             : 
     294             :     Rectangle           maRect;
     295             :     Point               maStartPt;
     296             :     Point               maEndPt;
     297             : 
     298             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     299             : 
     300             : public:
     301             :                         DECL_META_ACTION( Arc, META_ARC_ACTION )
     302             : 
     303             :                         MetaArcAction( const Rectangle& rRect,
     304             :                                        const Point& rStart, const Point& rEnd );
     305             : 
     306             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     307             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     308             : 
     309           0 :     const Rectangle&    GetRect() const { return maRect; }
     310           0 :     const Point&        GetStartPoint() const { return maStartPt; }
     311           0 :     const Point&        GetEndPoint() const { return maEndPt; }
     312             : };
     313             : 
     314           0 : class VCL_DLLPUBLIC MetaPieAction : public MetaAction
     315             : {
     316             : private:
     317             : 
     318             :     Rectangle           maRect;
     319             :     Point               maStartPt;
     320             :     Point               maEndPt;
     321             : 
     322             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     323             : 
     324             : public:
     325             :                         DECL_META_ACTION( Pie, META_PIE_ACTION )
     326             : 
     327             :                         MetaPieAction( const Rectangle& rRect,
     328             :                                        const Point& rStart, const Point& rEnd );
     329             : 
     330             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     331             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     332             : 
     333           0 :     const Rectangle&    GetRect() const { return maRect; }
     334           0 :     const Point&        GetStartPoint() const { return maStartPt; }
     335           0 :     const Point&        GetEndPoint() const { return maEndPt; }
     336             : };
     337             : 
     338           0 : class VCL_DLLPUBLIC MetaChordAction : public MetaAction
     339             : {
     340             : private:
     341             : 
     342             :     Rectangle           maRect;
     343             :     Point               maStartPt;
     344             :     Point               maEndPt;
     345             : 
     346             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     347             : 
     348             : public:
     349             :                         DECL_META_ACTION( Chord, META_CHORD_ACTION )
     350             : 
     351             :                         MetaChordAction( const Rectangle& rRect,
     352             :                                          const Point& rStart, const Point& rEnd );
     353             : 
     354             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     355             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     356             : 
     357           0 :     const Rectangle&    GetRect() const { return maRect; }
     358           0 :     const Point&        GetStartPoint() const { return maStartPt; }
     359           0 :     const Point&        GetEndPoint() const { return maEndPt; }
     360             : };
     361             : 
     362           0 : class VCL_DLLPUBLIC MetaPolyLineAction : public MetaAction
     363             : {
     364             : private:
     365             : 
     366             :     LineInfo            maLineInfo;
     367             :     Polygon             maPoly;
     368             : 
     369             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     370             : 
     371             : public:
     372             :                         DECL_META_ACTION( PolyLine, META_POLYLINE_ACTION )
     373             : 
     374             :     explicit            MetaPolyLineAction( const Polygon& );
     375             :     explicit            MetaPolyLineAction( const Polygon&, const LineInfo& );
     376             : 
     377             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     378             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     379             : 
     380         587 :     const Polygon&      GetPolygon() const { return maPoly; }
     381          42 :     const LineInfo&     GetLineInfo() const { return maLineInfo; }
     382             : };
     383             : 
     384           0 : class VCL_DLLPUBLIC MetaPolygonAction : public MetaAction
     385             : {
     386             : private:
     387             : 
     388             :     Polygon             maPoly;
     389             : 
     390             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     391             : 
     392             : public:
     393             :                         DECL_META_ACTION( Polygon, META_POLYGON_ACTION )
     394             : 
     395             :     explicit            MetaPolygonAction( const Polygon& );
     396             : 
     397             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     398             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     399             : 
     400        2625 :     const Polygon&      GetPolygon() const { return maPoly; }
     401             : };
     402             : 
     403           0 : class VCL_DLLPUBLIC MetaPolyPolygonAction : public MetaAction
     404             : {
     405             : private:
     406             : 
     407             :     PolyPolygon         maPolyPoly;
     408             : 
     409             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     410             : 
     411             : public:
     412             :                         DECL_META_ACTION( PolyPolygon, META_POLYPOLYGON_ACTION )
     413             : 
     414             :     explicit            MetaPolyPolygonAction( const PolyPolygon& );
     415             : 
     416             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     417             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     418             : 
     419        1974 :     const PolyPolygon&  GetPolyPolygon() const { return maPolyPoly; }
     420             : };
     421             : 
     422           0 : class VCL_DLLPUBLIC MetaTextAction : public MetaAction
     423             : {
     424             : private:
     425             : 
     426             :     Point           maPt;
     427             :     OUString        maStr;
     428             :     sal_Int32       mnIndex;
     429             :     sal_Int32       mnLen;
     430             : 
     431             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     432             : 
     433             : public:
     434             :                         DECL_META_ACTION( Text, META_TEXT_ACTION )
     435             : 
     436             :     MetaTextAction( const Point& rPt, const OUString& rStr,
     437             :                     sal_Int32 nIndex, sal_Int32 nLen );
     438             : 
     439             :     virtual void    Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     440             :     virtual void    Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     441             : 
     442         934 :     const Point&    GetPoint() const { return maPt; }
     443        5073 :     const OUString& GetText() const { return maStr; }
     444        1401 :     sal_Int32       GetIndex() const { return mnIndex; }
     445         934 :     sal_Int32       GetLen() const { return mnLen; }
     446             : };
     447             : 
     448             : class VCL_DLLPUBLIC MetaTextArrayAction : public MetaAction
     449             : {
     450             : private:
     451             : 
     452             :     Point       maStartPt;
     453             :     OUString    maStr;
     454             :     sal_Int32*  mpDXAry;
     455             :     sal_Int32   mnIndex;
     456             :     sal_Int32   mnLen;
     457             : 
     458             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     459             : 
     460             : protected:
     461             :     virtual             ~MetaTextArrayAction();
     462             : 
     463             : public:
     464             :                         MetaTextArrayAction();
     465             :                         MetaTextArrayAction( const MetaTextArrayAction& rAction );
     466             :     MetaTextArrayAction( const Point& rStartPt, const OUString& rStr,
     467             :                          const sal_Int32* pDXAry, sal_Int32 nIndex,
     468             :                          sal_Int32 nLen );
     469             : 
     470             :     virtual void        Execute( OutputDevice* pOut ) SAL_OVERRIDE;
     471             : 
     472             :     virtual MetaAction* Clone() SAL_OVERRIDE;
     473             : 
     474             :     virtual void    Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     475             :     virtual void    Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     476             : 
     477             :     virtual void    Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
     478             :     virtual void    Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
     479             : 
     480         285 :     const Point&    GetPoint() const { return maStartPt; }
     481        4312 :     const OUString& GetText() const { return maStr; }
     482         472 :     sal_Int32       GetIndex() const { return mnIndex; }
     483        4177 :     sal_Int32       GetLen() const { return mnLen; }
     484        4187 :     sal_Int32*      GetDXArray() const { return mpDXAry; }
     485             : };
     486             : 
     487           0 : class VCL_DLLPUBLIC MetaStretchTextAction : public MetaAction
     488             : {
     489             : private:
     490             : 
     491             :     Point       maPt;
     492             :     OUString    maStr;
     493             :     sal_uInt32  mnWidth;
     494             :     sal_Int32   mnIndex;
     495             :     sal_Int32   mnLen;
     496             : 
     497             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     498             : 
     499             : public:
     500             :                         DECL_META_ACTION( StretchText, META_STRETCHTEXT_ACTION )
     501             : 
     502             :     MetaStretchTextAction( const Point& rPt, sal_uInt32 nWidth,
     503             :                            const OUString& rStr,
     504             :                            sal_Int32 nIndex, sal_Int32 nLen );
     505             : 
     506             :     virtual void    Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     507             :     virtual void    Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     508             : 
     509         907 :     const Point&    GetPoint() const { return maPt; }
     510        1376 :     const OUString& GetText() const { return maStr; }
     511         416 :     sal_uInt32      GetWidth() const { return mnWidth; }
     512        1376 :     sal_Int32       GetIndex() const { return mnIndex; }
     513         688 :     sal_Int32       GetLen() const { return mnLen; }
     514             : };
     515             : 
     516           0 : class VCL_DLLPUBLIC MetaTextRectAction : public MetaAction
     517             : {
     518             : private:
     519             : 
     520             :     Rectangle           maRect;
     521             :     OUString       maStr;
     522             :     sal_uInt16          mnStyle;
     523             : 
     524             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     525             : 
     526             : public:
     527             :                         DECL_META_ACTION( TextRect, META_TEXTRECT_ACTION )
     528             : 
     529             :     MetaTextRectAction( const Rectangle& rRect,
     530             :                         const OUString& rStr, sal_uInt16 nStyle );
     531             : 
     532             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     533             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     534             : 
     535           0 :     const Rectangle&    GetRect() const { return maRect; }
     536           0 :     const OUString& GetText() const { return maStr; }
     537           0 :     sal_uInt16              GetStyle() const { return mnStyle; }
     538             : };
     539             : 
     540           0 : class VCL_DLLPUBLIC MetaTextLineAction : public MetaAction
     541             : {
     542             : private:
     543             : 
     544             :     Point               maPos;
     545             :     long                mnWidth;
     546             :     FontStrikeout       meStrikeout;
     547             :     FontUnderline       meUnderline;
     548             :     FontUnderline       meOverline;
     549             : 
     550             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     551             : 
     552             : public:
     553             :                         DECL_META_ACTION( TextLine, META_TEXTLINE_ACTION )
     554             : 
     555             :                         MetaTextLineAction( const Point& rPos, long nWidth,
     556             :                                             FontStrikeout eStrikeout,
     557             :                                             FontUnderline eUnderline,
     558             :                                             FontUnderline eOverline );
     559             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     560             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     561             : 
     562           0 :     const Point&        GetStartPoint() const { return maPos; }
     563           0 :     long                GetWidth() const { return mnWidth; }
     564           0 :     FontStrikeout       GetStrikeout() const { return meStrikeout; }
     565           0 :     FontUnderline       GetUnderline() const { return meUnderline; }
     566           0 :     FontUnderline       GetOverline()  const { return meOverline; }
     567             : };
     568             : 
     569           0 : class VCL_DLLPUBLIC MetaBmpAction : public MetaAction
     570             : {
     571             : private:
     572             : 
     573             :     Bitmap              maBmp;
     574             :     Point               maPt;
     575             : 
     576             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     577             : 
     578             : public:
     579             :                         DECL_META_ACTION( Bmp, META_BMP_ACTION )
     580             : 
     581             :                         MetaBmpAction( const Point& rPt, const Bitmap& rBmp );
     582             : 
     583             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     584             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     585             : 
     586           0 :     const Bitmap&       GetBitmap() const { return maBmp; }
     587           0 :     const Point&        GetPoint() const { return maPt; }
     588             : };
     589             : 
     590           0 : class VCL_DLLPUBLIC MetaBmpScaleAction : public MetaAction
     591             : {
     592             : private:
     593             : 
     594             :     Bitmap              maBmp;
     595             :     Point               maPt;
     596             :     Size                maSz;
     597             : 
     598             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     599             : 
     600             : public:
     601             :                         DECL_META_ACTION( BmpScale, META_BMPSCALE_ACTION )
     602             : 
     603             :                         MetaBmpScaleAction( const Point& rPt, const Size& rSz,
     604             :                                             const Bitmap& rBmp );
     605             : 
     606             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     607             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     608             : 
     609         689 :     const Bitmap&       GetBitmap() const { return maBmp; }
     610         681 :     const Point&        GetPoint() const { return maPt; }
     611         681 :     const Size&         GetSize() const { return maSz; }
     612             : };
     613             : 
     614           0 : class VCL_DLLPUBLIC MetaBmpScalePartAction : public MetaAction
     615             : {
     616             : private:
     617             : 
     618             :     Bitmap              maBmp;
     619             :     Point               maDstPt;
     620             :     Size                maDstSz;
     621             :     Point               maSrcPt;
     622             :     Size                maSrcSz;
     623             : 
     624             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     625             : 
     626             : public:
     627             :                         DECL_META_ACTION( BmpScalePart, META_BMPSCALEPART_ACTION )
     628             : 
     629             :                         MetaBmpScalePartAction( const Point& rDstPt, const Size& rDstSz,
     630             :                                                 const Point& rSrcPt, const Size& rSrcSz,
     631             :                                                 const Bitmap& rBmp );
     632             : 
     633             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     634             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     635             : 
     636           0 :     const Bitmap&       GetBitmap() const { return maBmp; }
     637           0 :     const Point&        GetDestPoint() const { return maDstPt; }
     638           0 :     const Size&         GetDestSize() const { return maDstSz; }
     639           0 :     const Point&        GetSrcPoint() const { return maSrcPt; }
     640           0 :     const Size&         GetSrcSize() const { return maSrcSz; }
     641             : };
     642             : 
     643           0 : class VCL_DLLPUBLIC MetaBmpExAction : public MetaAction
     644             : {
     645             : private:
     646             : 
     647             :     BitmapEx            maBmpEx;
     648             :     Point               maPt;
     649             : 
     650             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     651             : 
     652             : public:
     653             :                         DECL_META_ACTION( BmpEx, META_BMPEX_ACTION )
     654             : 
     655             :                         MetaBmpExAction( const Point& rPt, const BitmapEx& rBmpEx );
     656             : 
     657             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     658             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     659             : 
     660          12 :     const BitmapEx&     GetBitmapEx() const { return maBmpEx; }
     661          12 :     const Point&        GetPoint() const { return maPt; }
     662             : };
     663             : 
     664           0 : class VCL_DLLPUBLIC MetaBmpExScaleAction : public MetaAction
     665             : {
     666             : private:
     667             : 
     668             :     BitmapEx            maBmpEx;
     669             :     Point               maPt;
     670             :     Size                maSz;
     671             : 
     672             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     673             : 
     674             : public:
     675             :                         DECL_META_ACTION( BmpExScale, META_BMPEXSCALE_ACTION )
     676             : 
     677             :                         MetaBmpExScaleAction( const Point& rPt, const Size& rSz,
     678             :                                               const BitmapEx& rBmpEx ) ;
     679             : 
     680             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     681             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     682             : 
     683          56 :     const BitmapEx&     GetBitmapEx() const { return maBmpEx; }
     684          86 :     const Point&        GetPoint() const { return maPt; }
     685          86 :     const Size&         GetSize() const { return maSz; }
     686             : };
     687             : 
     688           0 : class VCL_DLLPUBLIC MetaBmpExScalePartAction : public MetaAction
     689             : {
     690             : private:
     691             : 
     692             :     BitmapEx            maBmpEx;
     693             :     Point               maDstPt;
     694             :     Size                maDstSz;
     695             :     Point               maSrcPt;
     696             :     Size                maSrcSz;
     697             : 
     698             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     699             : 
     700             : public:
     701             :                         DECL_META_ACTION( BmpExScalePart, META_BMPEXSCALEPART_ACTION )
     702             : 
     703             :                         MetaBmpExScalePartAction( const Point& rDstPt, const Size& rDstSz,
     704             :                                                   const Point& rSrcPt, const Size& rSrcSz,
     705             :                                                   const BitmapEx& rBmpEx );
     706             : 
     707             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     708             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     709             : 
     710           0 :     const BitmapEx&     GetBitmapEx() const { return maBmpEx; }
     711           0 :     const Point&        GetDestPoint() const { return maDstPt; }
     712           0 :     const Size&         GetDestSize() const { return maDstSz; }
     713           0 :     const Point&        GetSrcPoint() const { return maSrcPt; }
     714           0 :     const Size&         GetSrcSize() const { return maSrcSz; }
     715             : };
     716             : 
     717           0 : class VCL_DLLPUBLIC MetaMaskAction : public MetaAction
     718             : {
     719             : private:
     720             : 
     721             :     Bitmap              maBmp;
     722             :     Color               maColor;
     723             :     Point               maPt;
     724             : 
     725             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     726             : 
     727             : public:
     728             :                         DECL_META_ACTION( Mask, META_MASK_ACTION )
     729             : 
     730             :                         MetaMaskAction( const Point& rPt,
     731             :                                         const Bitmap& rBmp,
     732             :                                         const Color& rColor );
     733             : 
     734             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     735             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     736             : 
     737           0 :     const Bitmap&       GetBitmap() const { return maBmp; }
     738           0 :     const Color&        GetColor() const { return maColor; }
     739           0 :     const Point&        GetPoint() const { return maPt; }
     740             : };
     741             : 
     742           0 : class VCL_DLLPUBLIC MetaMaskScaleAction : public MetaAction
     743             : {
     744             : private:
     745             : 
     746             :     Bitmap              maBmp;
     747             :     Color               maColor;
     748             :     Point               maPt;
     749             :     Size                maSz;
     750             : 
     751             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     752             : 
     753             : public:
     754             :                         DECL_META_ACTION( MaskScale, META_MASKSCALE_ACTION )
     755             : 
     756             :                         MetaMaskScaleAction( const Point& rPt, const Size& rSz,
     757             :                                              const Bitmap& rBmp,
     758             :                                              const Color& rColor );
     759             : 
     760             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     761             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     762             : 
     763           0 :     const Bitmap&       GetBitmap() const { return maBmp; }
     764           0 :     const Color&        GetColor() const { return maColor; }
     765           0 :     const Point&        GetPoint() const { return maPt; }
     766           0 :     const Size&         GetSize() const { return maSz; }
     767             : };
     768             : 
     769           0 : class VCL_DLLPUBLIC MetaMaskScalePartAction : public MetaAction
     770             : {
     771             : private:
     772             : 
     773             :     Bitmap              maBmp;
     774             :     Color               maColor;
     775             :     Point               maDstPt;
     776             :     Size                maDstSz;
     777             :     Point               maSrcPt;
     778             :     Size                maSrcSz;
     779             : 
     780             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     781             : 
     782             : public:
     783             :                         DECL_META_ACTION( MaskScalePart, META_MASKSCALEPART_ACTION )
     784             : 
     785             :                         MetaMaskScalePartAction( const Point& rDstPt, const Size& rDstSz,
     786             :                                                  const Point& rSrcPt, const Size& rSrcSz,
     787             :                                                  const Bitmap& rBmp,
     788             :                                                  const Color& rColor );
     789             : 
     790             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     791             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     792             : 
     793           0 :     const Bitmap&       GetBitmap() const { return maBmp; }
     794           0 :     const Color&        GetColor() const { return maColor; }
     795           0 :     const Point&        GetDestPoint() const { return maDstPt; }
     796           0 :     const Size&         GetDestSize() const { return maDstSz; }
     797           0 :     const Point&        GetSrcPoint() const { return maSrcPt; }
     798           0 :     const Size&         GetSrcSize() const { return maSrcSz; }
     799             : };
     800             : 
     801           0 : class VCL_DLLPUBLIC MetaGradientAction : public MetaAction
     802             : {
     803             : private:
     804             : 
     805             :     Rectangle           maRect;
     806             :     Gradient            maGradient;
     807             : 
     808             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     809             : 
     810             : public:
     811             :                         DECL_META_ACTION( Gradient, META_GRADIENT_ACTION )
     812             : 
     813             :                         MetaGradientAction( const Rectangle& rRect, const Gradient& rGradient );
     814             : 
     815             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     816             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     817             : 
     818           0 :     const Rectangle&    GetRect() const { return maRect; }
     819           0 :     const Gradient&     GetGradient() const { return maGradient; }
     820             : };
     821             : 
     822           0 : class VCL_DLLPUBLIC MetaGradientExAction : public MetaAction
     823             : {
     824             : private:
     825             : 
     826             :     PolyPolygon         maPolyPoly;
     827             :     Gradient            maGradient;
     828             : 
     829             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     830             : 
     831             : public:
     832             :                         DECL_META_ACTION( GradientEx, META_GRADIENTEX_ACTION )
     833             : 
     834             :                         MetaGradientExAction( const PolyPolygon& rPolyPoly, const Gradient& rGradient );
     835             : 
     836             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     837             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     838             : 
     839           0 :     const PolyPolygon&  GetPolyPolygon() const { return maPolyPoly; }
     840           0 :     const Gradient&     GetGradient() const { return maGradient; }
     841             : };
     842             : 
     843           0 : class VCL_DLLPUBLIC MetaHatchAction : public MetaAction
     844             : {
     845             : private:
     846             : 
     847             :     PolyPolygon         maPolyPoly;
     848             :     Hatch               maHatch;
     849             : 
     850             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     851             : 
     852             : public:
     853             :                         DECL_META_ACTION( Hatch, META_HATCH_ACTION )
     854             : 
     855             :                         MetaHatchAction( const PolyPolygon& rPolyPoly, const Hatch& rHatch );
     856             : 
     857             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     858             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     859             : 
     860          14 :     const PolyPolygon&  GetPolyPolygon() const { return maPolyPoly; }
     861          14 :     const Hatch&        GetHatch() const { return maHatch; }
     862             : };
     863             : 
     864           0 : class VCL_DLLPUBLIC MetaWallpaperAction : public MetaAction
     865             : {
     866             : private:
     867             : 
     868             :     Rectangle           maRect;
     869             :     Wallpaper           maWallpaper;
     870             : 
     871             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     872             : 
     873             : public:
     874             :                         DECL_META_ACTION( Wallpaper, META_WALLPAPER_ACTION )
     875             : 
     876             :                         MetaWallpaperAction( const Rectangle& rRect,
     877             :                                              const Wallpaper& rPaper );
     878             : 
     879             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     880             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     881             : 
     882           0 :     const Rectangle&    GetRect() const { return maRect; }
     883           0 :     const Wallpaper&    GetWallpaper() const { return maWallpaper; }
     884             : };
     885             : 
     886           0 : class VCL_DLLPUBLIC MetaClipRegionAction : public MetaAction
     887             : {
     888             : private:
     889             : 
     890             :     Region              maRegion;
     891             :     bool                mbClip;
     892             : 
     893             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     894             : 
     895             : public:
     896             :                         DECL_META_ACTION( ClipRegion, META_CLIPREGION_ACTION )
     897             : 
     898             :                         MetaClipRegionAction( const Region& rRegion, bool bClip );
     899             : 
     900             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     901             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     902             : 
     903         385 :     const Region&       GetRegion() const { return maRegion; }
     904          93 :     bool                IsClipping() const { return mbClip; }
     905             : };
     906             : 
     907           0 : class VCL_DLLPUBLIC MetaISectRectClipRegionAction : public MetaAction
     908             : {
     909             : private:
     910             : 
     911             :     Rectangle           maRect;
     912             : 
     913             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     914             : 
     915             : public:
     916             :                         DECL_META_ACTION( ISectRectClipRegion, META_ISECTRECTCLIPREGION_ACTION )
     917             : 
     918             :     explicit            MetaISectRectClipRegionAction( const Rectangle& );
     919             : 
     920             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     921             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     922             : 
     923         133 :     const Rectangle&    GetRect() const { return maRect; }
     924             : };
     925             : 
     926           0 : class VCL_DLLPUBLIC MetaISectRegionClipRegionAction : public MetaAction
     927             : {
     928             : private:
     929             : 
     930             :     Region              maRegion;
     931             : 
     932             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     933             : 
     934             : public:
     935             :                         DECL_META_ACTION( ISectRegionClipRegion, META_ISECTREGIONCLIPREGION_ACTION )
     936             : 
     937             :     explicit            MetaISectRegionClipRegionAction( const Region& );
     938             : 
     939             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
     940             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     941             : 
     942           0 :     const Region&       GetRegion() const { return maRegion; }
     943             : };
     944             : 
     945           0 : class VCL_DLLPUBLIC MetaMoveClipRegionAction : public MetaAction
     946             : {
     947             : private:
     948             : 
     949             :     long                mnHorzMove;
     950             :     long                mnVertMove;
     951             : 
     952             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     953             : 
     954             : public:
     955             :                         DECL_META_ACTION( MoveClipRegion, META_MOVECLIPREGION_ACTION )
     956             : 
     957             :                         MetaMoveClipRegionAction( long nHorzMove, long nVertMove );
     958             : 
     959             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
     960             : 
     961           0 :     long                GetHorzMove() const { return mnHorzMove; }
     962           0 :     long                GetVertMove() const { return mnVertMove; }
     963             : };
     964             : 
     965           0 : class VCL_DLLPUBLIC MetaLineColorAction : public MetaAction
     966             : {
     967             : private:
     968             : 
     969             :     Color               maColor;
     970             :     bool                mbSet;
     971             : 
     972             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     973             : 
     974             : public:
     975             :                         DECL_META_ACTION( LineColor, META_LINECOLOR_ACTION )
     976             : 
     977             :                         MetaLineColorAction( const Color& rColor, bool bSet );
     978             : 
     979         613 :     const Color&        GetColor() const { return maColor; }
     980         934 :     bool                IsSetting() const { return mbSet; }
     981             : };
     982             : 
     983           0 : class VCL_DLLPUBLIC MetaFillColorAction : public MetaAction
     984             : {
     985             : private:
     986             : 
     987             :     Color               maColor;
     988             :     bool                mbSet;
     989             : 
     990             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
     991             : 
     992             : public:
     993             :                         DECL_META_ACTION( FillColor, META_FILLCOLOR_ACTION )
     994             : 
     995             :                         MetaFillColorAction( const Color& rColor, bool bSet );
     996             : 
     997         943 :     const Color&        GetColor() const { return maColor; }
     998        1061 :     bool                IsSetting() const { return mbSet; }
     999             : };
    1000             : 
    1001           0 : class VCL_DLLPUBLIC MetaTextColorAction : public MetaAction
    1002             : {
    1003             : private:
    1004             : 
    1005             :     Color               maColor;
    1006             : 
    1007             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1008             : 
    1009             : public:
    1010             :                         DECL_META_ACTION( TextColor, META_TEXTCOLOR_ACTION )
    1011             : 
    1012             :     explicit            MetaTextColorAction( const Color& );
    1013             : 
    1014         609 :     const Color&        GetColor() const { return maColor; }
    1015             : };
    1016             : 
    1017           0 : class VCL_DLLPUBLIC MetaTextFillColorAction : public MetaAction
    1018             : {
    1019             : private:
    1020             : 
    1021             :     Color               maColor;
    1022             :     bool                mbSet;
    1023             : 
    1024             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1025             : 
    1026             : public:
    1027             :                         DECL_META_ACTION( TextFillColor, META_TEXTFILLCOLOR_ACTION )
    1028             : 
    1029             :                         MetaTextFillColorAction( const Color& rColor, bool bSet );
    1030             : 
    1031           0 :     const Color&        GetColor() const { return maColor; }
    1032         637 :     bool                IsSetting() const { return mbSet; }
    1033             : };
    1034             : 
    1035           0 : class VCL_DLLPUBLIC MetaTextLineColorAction : public MetaAction
    1036             : {
    1037             : private:
    1038             : 
    1039             :     Color               maColor;
    1040             :     bool                mbSet;
    1041             : 
    1042             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1043             : 
    1044             : public:
    1045             :                         DECL_META_ACTION( TextLineColor, META_TEXTLINECOLOR_ACTION )
    1046             : 
    1047             :                         MetaTextLineColorAction( const Color& rColor, bool bSet );
    1048             : 
    1049           0 :     const Color&        GetColor() const { return maColor; }
    1050           0 :     bool                IsSetting() const { return mbSet; }
    1051             : };
    1052             : 
    1053           0 : class VCL_DLLPUBLIC MetaOverlineColorAction : public MetaAction
    1054             : {
    1055             : private:
    1056             : 
    1057             :     Color               maColor;
    1058             :     bool                mbSet;
    1059             : 
    1060             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1061             : 
    1062             : public:
    1063             :                         DECL_META_ACTION( OverlineColor, META_OVERLINECOLOR_ACTION )
    1064             : 
    1065             :                         MetaOverlineColorAction( const Color& rColor, bool bSet );
    1066             : 
    1067           0 :     const Color&        GetColor() const { return maColor; }
    1068           0 :     bool                IsSetting() const { return mbSet; }
    1069             : };
    1070             : 
    1071           0 : class VCL_DLLPUBLIC MetaTextAlignAction : public MetaAction
    1072             : {
    1073             : private:
    1074             : 
    1075             :     TextAlign           maAlign;
    1076             : 
    1077             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1078             : 
    1079             : public:
    1080             :                         DECL_META_ACTION( TextAlign, META_TEXTALIGN_ACTION )
    1081             : 
    1082             :     explicit            MetaTextAlignAction( TextAlign eAlign );
    1083             : 
    1084         612 :     TextAlign           GetTextAlign() const { return maAlign; }
    1085             : };
    1086             : 
    1087           0 : class VCL_DLLPUBLIC MetaMapModeAction : public MetaAction
    1088             : {
    1089             : private:
    1090             : 
    1091             :     MapMode             maMapMode;
    1092             : 
    1093             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1094             : 
    1095             : public:
    1096             :                         DECL_META_ACTION( MapMode, META_MAPMODE_ACTION )
    1097             : 
    1098             :     explicit            MetaMapModeAction( const MapMode& );
    1099             : 
    1100             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
    1101             : 
    1102          12 :     const MapMode&      GetMapMode() const { return maMapMode; }
    1103             : };
    1104             : 
    1105           0 : class VCL_DLLPUBLIC MetaFontAction : public MetaAction
    1106             : {
    1107             : private:
    1108             : 
    1109             :     Font                maFont;
    1110             : 
    1111             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1112             : 
    1113             : public:
    1114             :                         DECL_META_ACTION( Font, META_FONT_ACTION )
    1115             : 
    1116             :     explicit            MetaFontAction( const Font& );
    1117             : 
    1118             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
    1119             : 
    1120        1311 :     const Font&         GetFont() const { return maFont; }
    1121             : };
    1122             : 
    1123           0 : class VCL_DLLPUBLIC MetaPushAction : public MetaAction
    1124             : {
    1125             : private:
    1126             : 
    1127             :     sal_uInt16              mnFlags;
    1128             : 
    1129             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1130             : 
    1131             : public:
    1132             :                         DECL_META_ACTION( Push, META_PUSH_ACTION )
    1133             : 
    1134             :     explicit            MetaPushAction( sal_uInt16 nFlags );
    1135             : 
    1136        1102 :     sal_uInt16              GetFlags() const { return mnFlags; }
    1137             : };
    1138             : 
    1139           0 : class VCL_DLLPUBLIC MetaPopAction : public MetaAction
    1140             : {
    1141             : public:
    1142             : 
    1143             :         DECL_META_ACTION( Pop, META_POP_ACTION )
    1144             : };
    1145             : 
    1146           0 : class VCL_DLLPUBLIC MetaRasterOpAction : public MetaAction
    1147             : {
    1148             : private:
    1149             : 
    1150             :     RasterOp            meRasterOp;
    1151             : 
    1152             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1153             : 
    1154             : public:
    1155             :                         DECL_META_ACTION( RasterOp, META_RASTEROP_ACTION )
    1156             : 
    1157             :     explicit            MetaRasterOpAction( RasterOp eRasterOp );
    1158             : 
    1159         643 :     RasterOp            GetRasterOp() const { return meRasterOp; }
    1160             : };
    1161             : 
    1162           0 : class VCL_DLLPUBLIC MetaTransparentAction : public MetaAction
    1163             : {
    1164             : private:
    1165             : 
    1166             :     PolyPolygon         maPolyPoly;
    1167             :     sal_uInt16              mnTransPercent;
    1168             : 
    1169             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1170             : 
    1171             : public:
    1172             :                         DECL_META_ACTION( Transparent, META_TRANSPARENT_ACTION )
    1173             : 
    1174             :                         MetaTransparentAction( const PolyPolygon& rPolyPoly, sal_uInt16 nTransPercent );
    1175             : 
    1176             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
    1177             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
    1178             : 
    1179           0 :     const PolyPolygon&  GetPolyPolygon() const { return maPolyPoly; }
    1180           0 :     sal_uInt16              GetTransparence() const { return mnTransPercent; }
    1181             : };
    1182             : 
    1183           0 : class VCL_DLLPUBLIC MetaFloatTransparentAction : public MetaAction
    1184             : {
    1185             : private:
    1186             : 
    1187             :     GDIMetaFile         maMtf;
    1188             :     Point               maPoint;
    1189             :     Size                maSize;
    1190             :     Gradient            maGradient;
    1191             : 
    1192             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1193             : 
    1194             : public:
    1195             :                         DECL_META_ACTION( FloatTransparent, META_FLOATTRANSPARENT_ACTION )
    1196             : 
    1197             :                         MetaFloatTransparentAction( const GDIMetaFile& rMtf, const Point& rPos,
    1198             :                                                     const Size& rSize, const Gradient& rGradient );
    1199             : 
    1200             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
    1201             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
    1202             : 
    1203           0 :     const GDIMetaFile&  GetGDIMetaFile() const { return maMtf; }
    1204           0 :     const Point&        GetPoint() const { return maPoint; }
    1205           0 :     const Size&         GetSize() const { return maSize; }
    1206           0 :     const Gradient&     GetGradient() const { return maGradient; }
    1207             : };
    1208             : 
    1209           0 : class VCL_DLLPUBLIC MetaEPSAction : public MetaAction
    1210             : {
    1211             : private:
    1212             : 
    1213             :     GfxLink             maGfxLink;
    1214             :     GDIMetaFile         maSubst;
    1215             :     Point               maPoint;
    1216             :     Size                maSize;
    1217             : 
    1218             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1219             : 
    1220             : public:
    1221             :                         DECL_META_ACTION( EPS, META_EPS_ACTION )
    1222             : 
    1223             :                         MetaEPSAction( const Point& rPoint, const Size& rSize,
    1224             :                                        const GfxLink& rGfxLink, const GDIMetaFile& rSubst );
    1225             : 
    1226             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
    1227             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
    1228             : 
    1229           0 :     const GfxLink&      GetLink() const { return maGfxLink; }
    1230           0 :     const GDIMetaFile&  GetSubstitute() const { return maSubst; }
    1231           0 :     const Point&        GetPoint() const { return maPoint; }
    1232           0 :     const Size&         GetSize() const { return maSize; }
    1233             : };
    1234             : 
    1235           0 : class VCL_DLLPUBLIC MetaRefPointAction : public MetaAction
    1236             : {
    1237             : private:
    1238             : 
    1239             :     Point               maRefPoint;
    1240             :     bool                mbSet;
    1241             : 
    1242             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1243             : 
    1244             : public:
    1245             :                         DECL_META_ACTION( RefPoint, META_REFPOINT_ACTION )
    1246             : 
    1247             :                         MetaRefPointAction( const Point& rRefPoint, bool bSet );
    1248             : 
    1249           0 :     const Point&        GetRefPoint() const { return maRefPoint; }
    1250           0 :     bool                IsSetting() const { return mbSet; }
    1251             : };
    1252             : 
    1253             : class VCL_DLLPUBLIC MetaCommentAction : public MetaAction
    1254             : {
    1255             : private:
    1256             : 
    1257             :     OString        maComment;
    1258             :     sal_Int32           mnValue;
    1259             :     sal_uInt32          mnDataSize;
    1260             :     sal_uInt8*          mpData;
    1261             : 
    1262             :     SAL_DLLPRIVATE void ImplInitDynamicData( const sal_uInt8* pData, sal_uInt32 nDataSize );
    1263             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1264             : 
    1265             : protected:
    1266             :     virtual             ~MetaCommentAction();
    1267             : 
    1268             : public:
    1269             :     explicit            MetaCommentAction( sal_Int32 nValue = 0L );
    1270             :     explicit            MetaCommentAction( const MetaCommentAction& rAct );
    1271             :     explicit            MetaCommentAction( const OString& rComment, sal_Int32 nValue = 0L, const sal_uInt8* pData = NULL, sal_uInt32 nDataSize = 0UL );
    1272             : 
    1273             :     virtual void        Move( long nHorzMove, long nVertMove ) SAL_OVERRIDE;
    1274             :     virtual void        Scale( double fScaleX, double fScaleY ) SAL_OVERRIDE;
    1275             : 
    1276             :     virtual void        Execute( OutputDevice* pOut ) SAL_OVERRIDE;
    1277             :     virtual MetaAction* Clone() SAL_OVERRIDE;
    1278             :     virtual void        Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
    1279             :     virtual void        Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
    1280             : 
    1281        1509 :     const OString& GetComment() const { return maComment; }
    1282           0 :     sal_Int32           GetValue() const { return mnValue; }
    1283          12 :     sal_uInt32          GetDataSize() const { return mnDataSize; }
    1284          12 :     const sal_uInt8*        GetData() const { return mpData; }
    1285             : };
    1286             : 
    1287           0 : class VCL_DLLPUBLIC MetaLayoutModeAction : public MetaAction
    1288             : {
    1289             : private:
    1290             : 
    1291             :     sal_uInt32          mnLayoutMode;
    1292             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1293             : 
    1294             : public:
    1295             :                         DECL_META_ACTION( LayoutMode, META_LAYOUTMODE_ACTION )
    1296             : 
    1297             :     explicit            MetaLayoutModeAction( sal_uInt32 nLayoutMode );
    1298             : 
    1299         124 :     sal_uInt32          GetLayoutMode() const { return mnLayoutMode; }
    1300             : };
    1301             : 
    1302           0 : class VCL_DLLPUBLIC MetaTextLanguageAction : public MetaAction
    1303             : {
    1304             : private:
    1305             : 
    1306             :     LanguageType        meTextLanguage;
    1307             :     virtual bool    Compare( const MetaAction& ) const SAL_OVERRIDE;
    1308             : 
    1309             : public:
    1310             :                         DECL_META_ACTION( TextLanguage, META_TEXTLANGUAGE_ACTION )
    1311             : 
    1312             :     explicit            MetaTextLanguageAction( LanguageType );
    1313             : 
    1314          11 :     LanguageType        GetTextLanguage() const { return meTextLanguage; }
    1315             : };
    1316             : 
    1317             : #endif // INCLUDED_VCL_METAACT_HXX
    1318             : 
    1319             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10