LCOV - code coverage report
Current view: top level - vcl/source/gdi - metaact.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 557 1922 29.0 %
Date: 2012-08-25 Functions: 200 584 34.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 415 2586 16.0 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : 
      30                 :            : #include <algorithm>
      31                 :            : #include <string.h>
      32                 :            : #include <tools/stream.hxx>
      33                 :            : #include <tools/vcompat.hxx>
      34                 :            : #include <tools/helpers.hxx>
      35                 :            : #include <vcl/outdev.hxx>
      36                 :            : #include <vcl/metaact.hxx>
      37                 :            : #include <vcl/graphictools.hxx>
      38                 :            : #include <vcl/rendergraphicrasterizer.hxx>
      39                 :            : 
      40                 :            : // ========================================================================
      41                 :            : 
      42                 :          0 : inline void ImplScalePoint( Point& rPt, double fScaleX, double fScaleY )
      43                 :            : {
      44                 :          0 :     rPt.X() = FRound( fScaleX * rPt.X() );
      45                 :          0 :     rPt.Y() = FRound( fScaleY * rPt.Y() );
      46                 :          0 : }
      47                 :            : 
      48                 :            : // ------------------------------------------------------------------------
      49                 :            : 
      50                 :          0 : inline void ImplScaleRect( Rectangle& rRect, double fScaleX, double fScaleY )
      51                 :            : {
      52                 :          0 :     Point aTL( rRect.TopLeft() );
      53         [ #  # ]:          0 :     Point aBR( rRect.BottomRight() );
      54                 :            : 
      55                 :          0 :     ImplScalePoint( aTL, fScaleX, fScaleY );
      56                 :          0 :     ImplScalePoint( aBR, fScaleX, fScaleY );
      57                 :            : 
      58         [ #  # ]:          0 :     rRect = Rectangle( aTL, aBR );
      59         [ #  # ]:          0 :     rRect.Justify();
      60                 :          0 : }
      61                 :            : 
      62                 :            : // ------------------------------------------------------------------------
      63                 :            : 
      64                 :          0 : inline void ImplScalePoly( Polygon& rPoly, double fScaleX, double fScaleY )
      65                 :            : {
      66         [ #  # ]:          0 :     for( sal_uInt16 i = 0, nCount = rPoly.GetSize(); i < nCount; i++ )
      67                 :          0 :         ImplScalePoint( rPoly[ i ], fScaleX, fScaleY );
      68                 :          0 : }
      69                 :            : 
      70                 :            : // ------------------------------------------------------------------------
      71                 :            : 
      72                 :          0 : inline void ImplScaleLineInfo( LineInfo& rLineInfo, double fScaleX, double fScaleY )
      73                 :            : {
      74         [ #  # ]:          0 :     if( !rLineInfo.IsDefault() )
      75                 :            :     {
      76                 :          0 :         const double fScale = ( fabs(fScaleX) + fabs(fScaleY) ) * 0.5;
      77                 :            : 
      78                 :          0 :         rLineInfo.SetWidth( FRound( fScale * rLineInfo.GetWidth() ) );
      79                 :          0 :         rLineInfo.SetDashLen( FRound( fScale * rLineInfo.GetDashLen() ) );
      80                 :          0 :         rLineInfo.SetDotLen( FRound( fScale * rLineInfo.GetDotLen() ) );
      81                 :          0 :         rLineInfo.SetDistance( FRound( fScale * rLineInfo.GetDistance() ) );
      82                 :            :     }
      83                 :          0 : }
      84                 :            : 
      85                 :            : // ========================================================================
      86                 :            : 
      87                 :            : #define COMPAT( _def_rIStm ) VersionCompat aCompat( ( _def_rIStm ), STREAM_READ );
      88                 :            : #define WRITE_BASE_COMPAT( _def_rOStm, _def_nVer, _pWriteData )         \
      89                 :            :     MetaAction::Write( ( _def_rOStm ), _pWriteData );                   \
      90                 :            :     VersionCompat aCompat( ( _def_rOStm ), STREAM_WRITE, ( _def_nVer ) );
      91                 :            : 
      92                 :            : // ========================================================================
      93                 :            : 
      94                 :          0 : MetaAction::MetaAction() :
      95                 :            :     mnRefCount( 1 ),
      96                 :          0 :     mnType( META_NULL_ACTION )
      97                 :            : {
      98                 :          0 : }
      99                 :            : 
     100                 :            : // ------------------------------------------------------------------------
     101                 :            : 
     102                 :    1640682 : MetaAction::MetaAction( sal_uInt16 nType ) :
     103                 :            :     mnRefCount( 1 ),
     104                 :    1640682 :     mnType( nType )
     105                 :            : {
     106                 :    1640682 : }
     107                 :            : 
     108                 :            : // ------------------------------------------------------------------------
     109                 :            : 
     110                 :    1632513 : MetaAction::~MetaAction()
     111                 :            : {
     112         [ -  + ]:    1632513 : }
     113                 :            : 
     114                 :            : // ------------------------------------------------------------------------
     115                 :            : 
     116                 :          0 : void MetaAction::Execute( OutputDevice* )
     117                 :            : {
     118                 :          0 : }
     119                 :            : 
     120                 :            : // ------------------------------------------------------------------------
     121                 :            : 
     122                 :          0 : MetaAction* MetaAction::Clone()
     123                 :            : {
     124         [ #  # ]:          0 :     return new MetaAction;
     125                 :            : }
     126                 :            : 
     127                 :            : // ------------------------------------------------------------------------
     128                 :            : 
     129                 :          3 : void MetaAction::Move( long, long )
     130                 :            : {
     131                 :          3 : }
     132                 :            : 
     133                 :            : // ------------------------------------------------------------------------
     134                 :            : 
     135                 :          0 : void MetaAction::Scale( double, double )
     136                 :            : {
     137                 :          0 : }
     138                 :            : 
     139                 :            : // ------------------------------------------------------------------------
     140                 :            : 
     141                 :          0 : sal_Bool MetaAction::Compare( const MetaAction& ) const
     142                 :            : {
     143                 :          0 :     return sal_True;
     144                 :            : }
     145                 :            : 
     146                 :            : // ------------------------------------------------------------------------
     147                 :            : 
     148                 :     869126 : void MetaAction::Write( SvStream& rOStm, ImplMetaWriteData* )
     149                 :            : {
     150                 :     869126 :     rOStm << mnType;
     151                 :     869126 : }
     152                 :            : 
     153                 :            : // ------------------------------------------------------------------------
     154                 :            : 
     155                 :          0 : void MetaAction::Read( SvStream& rIStm, ImplMetaReadData* )
     156                 :            : {
     157                 :          0 :     rIStm >> mnType;
     158                 :          0 : }
     159                 :            : 
     160                 :            : // ------------------------------------------------------------------------
     161                 :            : 
     162                 :     641728 : MetaAction* MetaAction::ReadMetaAction( SvStream& rIStm, ImplMetaReadData* pData )
     163                 :            : {
     164                 :     641728 :     MetaAction* pAction = NULL;
     165                 :            :     sal_uInt16      nType;
     166                 :            : 
     167         [ +  - ]:     641728 :     rIStm >> nType;
     168                 :            : 
     169   [ -  -  -  -  :     641728 :     switch( nType )
          +  -  -  -  -  
          -  +  -  +  -  
          +  +  -  -  -  
          -  -  -  +  -  
          -  -  -  -  -  
          -  -  -  +  +  
          -  +  +  +  +  
          -  -  +  -  +  
          +  +  -  -  -  
          -  -  +  +  +  
                   -  - ]
     170                 :            :     {
     171 [ #  # ][ #  # ]:          0 :         case( META_NULL_ACTION ): pAction = new MetaAction; break;
     172 [ #  # ][ #  # ]:          0 :         case( META_PIXEL_ACTION ): pAction = new MetaPixelAction; break;
     173 [ #  # ][ #  # ]:          0 :         case( META_POINT_ACTION ): pAction = new MetaPointAction; break;
     174 [ #  # ][ #  # ]:          0 :         case( META_LINE_ACTION ): pAction = new MetaLineAction; break;
     175 [ +  - ][ +  - ]:       9301 :         case( META_RECT_ACTION ): pAction = new MetaRectAction; break;
     176 [ #  # ][ #  # ]:          0 :         case( META_ROUNDRECT_ACTION ): pAction = new MetaRoundRectAction; break;
     177 [ #  # ][ #  # ]:          0 :         case( META_ELLIPSE_ACTION ): pAction = new MetaEllipseAction; break;
     178 [ #  # ][ #  # ]:          0 :         case( META_ARC_ACTION ): pAction = new MetaArcAction; break;
     179 [ #  # ][ #  # ]:          0 :         case( META_PIE_ACTION ): pAction = new MetaPieAction; break;
     180 [ #  # ][ #  # ]:          0 :         case( META_CHORD_ACTION ): pAction = new MetaChordAction; break;
     181 [ +  - ][ +  - ]:       4666 :         case( META_POLYLINE_ACTION ): pAction = new MetaPolyLineAction; break;
     182 [ #  # ][ #  # ]:          0 :         case( META_POLYGON_ACTION ): pAction = new MetaPolygonAction; break;
     183 [ +  - ][ +  - ]:       1188 :         case( META_POLYPOLYGON_ACTION ): pAction = new MetaPolyPolygonAction; break;
     184 [ #  # ][ #  # ]:          0 :         case( META_TEXT_ACTION ): pAction = new MetaTextAction; break;
     185 [ +  - ][ +  - ]:       3763 :         case( META_TEXTARRAY_ACTION ): pAction = new MetaTextArrayAction; break;
     186 [ +  - ][ +  - ]:      62112 :         case( META_STRETCHTEXT_ACTION ): pAction = new MetaStretchTextAction; break;
     187 [ #  # ][ #  # ]:          0 :         case( META_TEXTRECT_ACTION ): pAction = new MetaTextRectAction; break;
     188 [ #  # ][ #  # ]:          0 :         case( META_TEXTLINE_ACTION ): pAction = new MetaTextLineAction; break;
     189 [ #  # ][ #  # ]:          0 :         case( META_BMP_ACTION ): pAction = new MetaBmpAction; break;
     190 [ #  # ][ #  # ]:          0 :         case( META_BMPSCALE_ACTION ): pAction = new MetaBmpScaleAction; break;
     191 [ #  # ][ #  # ]:          0 :         case( META_BMPSCALEPART_ACTION ): pAction = new MetaBmpScalePartAction; break;
     192 [ #  # ][ #  # ]:          0 :         case( META_BMPEX_ACTION ): pAction = new MetaBmpExAction; break;
     193 [ +  - ][ +  - ]:         13 :         case( META_BMPEXSCALE_ACTION ): pAction = new MetaBmpExScaleAction; break;
     194 [ #  # ][ #  # ]:          0 :         case( META_BMPEXSCALEPART_ACTION ): pAction = new MetaBmpExScalePartAction; break;
     195 [ #  # ][ #  # ]:          0 :         case( META_MASK_ACTION ): pAction = new MetaMaskAction; break;
     196 [ #  # ][ #  # ]:          0 :         case( META_MASKSCALE_ACTION ): pAction = new MetaMaskScaleAction; break;
     197 [ #  # ][ #  # ]:          0 :         case( META_MASKSCALEPART_ACTION ): pAction = new MetaMaskScalePartAction; break;
     198 [ #  # ][ #  # ]:          0 :         case( META_GRADIENT_ACTION ): pAction = new MetaGradientAction; break;
     199 [ #  # ][ #  # ]:          0 :         case( META_GRADIENTEX_ACTION ): pAction = new MetaGradientExAction; break;
     200 [ #  # ][ #  # ]:          0 :         case( META_HATCH_ACTION ): pAction = new MetaHatchAction; break;
     201 [ #  # ][ #  # ]:          0 :         case( META_WALLPAPER_ACTION ): pAction = new MetaWallpaperAction; break;
     202 [ #  # ][ #  # ]:          0 :         case( META_CLIPREGION_ACTION ): pAction = new MetaClipRegionAction; break;
     203 [ +  - ][ +  - ]:       6905 :         case( META_ISECTRECTCLIPREGION_ACTION ): pAction = new MetaISectRectClipRegionAction; break;
     204 [ +  - ][ +  - ]:        178 :         case( META_ISECTREGIONCLIPREGION_ACTION ): pAction = new MetaISectRegionClipRegionAction; break;
     205 [ #  # ][ #  # ]:          0 :         case( META_MOVECLIPREGION_ACTION ): pAction = new MetaMoveClipRegionAction; break;
     206 [ +  - ][ +  - ]:      19821 :         case( META_LINECOLOR_ACTION ): pAction = new MetaLineColorAction; break;
     207 [ +  - ][ +  - ]:      15155 :         case( META_FILLCOLOR_ACTION ): pAction = new MetaFillColorAction; break;
     208 [ +  - ][ +  - ]:      70099 :         case( META_TEXTCOLOR_ACTION ): pAction = new MetaTextColorAction; break;
     209 [ +  - ][ +  - ]:      69523 :         case( META_TEXTFILLCOLOR_ACTION ): pAction = new MetaTextFillColorAction; break;
     210 [ #  # ][ #  # ]:          0 :         case( META_TEXTLINECOLOR_ACTION ): pAction = new MetaTextLineColorAction; break;
     211 [ #  # ][ #  # ]:          0 :         case( META_OVERLINECOLOR_ACTION ): pAction = new MetaOverlineColorAction; break;
     212 [ +  - ][ +  - ]:      69523 :         case( META_TEXTALIGN_ACTION ): pAction = new MetaTextAlignAction; break;
     213 [ #  # ][ #  # ]:          0 :         case( META_MAPMODE_ACTION ): pAction = new MetaMapModeAction; break;
     214 [ +  - ][ +  - ]:      69523 :         case( META_FONT_ACTION ): pAction = new MetaFontAction; break;
     215 [ +  - ][ +  - ]:      72843 :         case( META_PUSH_ACTION ): pAction = new MetaPushAction; break;
     216 [ +  - ][ +  - ]:      72843 :         case( META_POP_ACTION ): pAction = new MetaPopAction; break;
     217 [ #  # ][ #  # ]:          0 :         case( META_RASTEROP_ACTION ): pAction = new MetaRasterOpAction; break;
     218 [ #  # ][ #  # ]:          0 :         case( META_TRANSPARENT_ACTION ): pAction = new MetaTransparentAction; break;
     219 [ #  # ][ #  # ]:          0 :         case( META_FLOATTRANSPARENT_ACTION ): pAction = new MetaFloatTransparentAction; break;
     220 [ #  # ][ #  # ]:          0 :         case( META_EPS_ACTION ): pAction = new MetaEPSAction; break;
     221 [ #  # ][ #  # ]:          0 :         case( META_REFPOINT_ACTION ): pAction = new MetaRefPointAction; break;
     222 [ +  - ][ +  - ]:      60014 :         case( META_COMMENT_ACTION ): pAction = new MetaCommentAction; break;
     223 [ +  - ][ +  - ]:      13721 :         case( META_LAYOUTMODE_ACTION ): pAction = new MetaLayoutModeAction; break;
     224 [ +  - ][ +  - ]:      20537 :         case( META_TEXTLANGUAGE_ACTION ): pAction = new MetaTextLanguageAction; break;
     225 [ #  # ][ #  # ]:          0 :         case( META_RENDERGRAPHIC_ACTION ): pAction = new MetaRenderGraphicAction; break;
     226                 :            : 
     227                 :            :         default:
     228                 :            :         {
     229                 :            :             // Action ueberlesen durch Kombination Ctor/Dtor,
     230                 :            :             // new/delete, weil Compiler sonst vielleicht wegoptimieren
     231 [ #  # ][ #  # ]:          0 :             delete ( new VersionCompat( rIStm, STREAM_READ ) );
         [ #  # ][ #  # ]
     232                 :            :         }
     233                 :          0 :         break;
     234                 :            :     }
     235                 :            : 
     236         [ +  - ]:     641728 :     if( pAction )
     237         [ +  - ]:     641728 :         pAction->Read( rIStm, pData );
     238                 :            : 
     239                 :     641728 :     return pAction;
     240                 :            : }
     241                 :            : 
     242                 :            : // ========================================================================
     243                 :            : 
     244         [ #  # ]:          0 : IMPL_META_ACTION( Pixel, META_PIXEL_ACTION )
     245                 :            : 
     246                 :            : // ------------------------------------------------------------------------
     247                 :            : 
     248                 :          0 : MetaPixelAction::MetaPixelAction( const Point& rPt, const Color& rColor ) :
     249                 :            :     MetaAction  ( META_PIXEL_ACTION ),
     250                 :            :     maPt        ( rPt ),
     251                 :          0 :     maColor     ( rColor )
     252                 :            : {
     253                 :          0 : }
     254                 :            : 
     255                 :            : // ------------------------------------------------------------------------
     256                 :            : 
     257                 :          0 : void MetaPixelAction::Execute( OutputDevice* pOut )
     258                 :            : {
     259                 :          0 :     pOut->DrawPixel( maPt, maColor );
     260                 :          0 : }
     261                 :            : 
     262                 :            : // ------------------------------------------------------------------------
     263                 :            : 
     264                 :          0 : MetaAction* MetaPixelAction::Clone()
     265                 :            : {
     266         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPixelAction( *this );
     267                 :          0 :     pClone->ResetRefCount();
     268                 :          0 :     return pClone;
     269                 :            : }
     270                 :            : 
     271                 :            : // ------------------------------------------------------------------------
     272                 :            : 
     273                 :          0 : void MetaPixelAction::Move( long nHorzMove, long nVertMove )
     274                 :            : {
     275                 :          0 :     maPt.Move( nHorzMove, nVertMove );
     276                 :          0 : }
     277                 :            : 
     278                 :            : // ------------------------------------------------------------------------
     279                 :            : 
     280                 :          0 : void MetaPixelAction::Scale( double fScaleX, double fScaleY )
     281                 :            : {
     282                 :          0 :     ImplScalePoint( maPt, fScaleX, fScaleY );
     283                 :          0 : }
     284                 :            : 
     285                 :            : // ------------------------------------------------------------------------
     286                 :            : 
     287                 :          0 : sal_Bool MetaPixelAction::Compare( const MetaAction& rMetaAction ) const
     288                 :            : {
     289                 :          0 :     return ( maPt == ((MetaPixelAction&)rMetaAction).maPt ) &&
     290 [ #  # ][ #  # ]:          0 :            ( maColor == ((MetaPixelAction&)rMetaAction).maColor );
     291                 :            : }
     292                 :            : 
     293                 :            : // ------------------------------------------------------------------------
     294                 :            : 
     295                 :          0 : void MetaPixelAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     296                 :            : {
     297 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     298         [ #  # ]:          0 :     rOStm << maPt;
     299 [ #  # ][ #  # ]:          0 :     maColor.Write( rOStm, sal_True );
     300                 :          0 : }
     301                 :            : 
     302                 :            : // ------------------------------------------------------------------------
     303                 :            : 
     304                 :          0 : void MetaPixelAction::Read( SvStream& rIStm, ImplMetaReadData* )
     305                 :            : {
     306         [ #  # ]:          0 :     COMPAT( rIStm );
     307         [ #  # ]:          0 :     rIStm >> maPt;
     308 [ #  # ][ #  # ]:          0 :     maColor.Read( rIStm, sal_True );
     309                 :          0 : }
     310                 :            : 
     311                 :            : // ========================================================================
     312                 :            : 
     313         [ -  + ]:       6024 : IMPL_META_ACTION( Point, META_POINT_ACTION )
     314                 :            : 
     315                 :            : // ------------------------------------------------------------------------
     316                 :            : 
     317                 :       3012 : MetaPointAction::MetaPointAction( const Point& rPt ) :
     318                 :            :     MetaAction  ( META_POINT_ACTION ),
     319                 :       3012 :     maPt        ( rPt )
     320                 :            : {
     321                 :       3012 : }
     322                 :            : 
     323                 :            : // ------------------------------------------------------------------------
     324                 :            : 
     325                 :       3012 : void MetaPointAction::Execute( OutputDevice* pOut )
     326                 :            : {
     327                 :       3012 :     pOut->DrawPixel( maPt );
     328                 :       3012 : }
     329                 :            : 
     330                 :            : // ------------------------------------------------------------------------
     331                 :            : 
     332                 :          0 : MetaAction* MetaPointAction::Clone()
     333                 :            : {
     334         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPointAction( *this );
     335                 :          0 :     pClone->ResetRefCount();
     336                 :          0 :     return pClone;
     337                 :            : }
     338                 :            : 
     339                 :            : // ------------------------------------------------------------------------
     340                 :            : 
     341                 :          0 : void MetaPointAction::Move( long nHorzMove, long nVertMove )
     342                 :            : {
     343                 :          0 :     maPt.Move( nHorzMove, nVertMove );
     344                 :          0 : }
     345                 :            : 
     346                 :            : // ------------------------------------------------------------------------
     347                 :            : 
     348                 :          0 : void MetaPointAction::Scale( double fScaleX, double fScaleY )
     349                 :            : {
     350                 :          0 :     ImplScalePoint( maPt, fScaleX, fScaleY );
     351                 :          0 : }
     352                 :            : 
     353                 :            : // ------------------------------------------------------------------------
     354                 :            : 
     355                 :          0 : sal_Bool MetaPointAction::Compare( const MetaAction& rMetaAction ) const
     356                 :            : {
     357                 :          0 :     return maPt == ((MetaPointAction&)rMetaAction).maPt;
     358                 :            : }
     359                 :            : 
     360                 :            : // ------------------------------------------------------------------------
     361                 :            : 
     362                 :          0 : void MetaPointAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     363                 :            : {
     364 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     365 [ #  # ][ #  # ]:          0 :     rOStm << maPt;
     366                 :          0 : }
     367                 :            : 
     368                 :            : // ------------------------------------------------------------------------
     369                 :            : 
     370                 :          0 : void MetaPointAction::Read( SvStream& rIStm, ImplMetaReadData* )
     371                 :            : {
     372         [ #  # ]:          0 :     COMPAT( rIStm );
     373 [ #  # ][ #  # ]:          0 :     rIStm >> maPt;
     374                 :          0 : }
     375                 :            : 
     376                 :            : // ========================================================================
     377                 :            : 
     378 [ +  - ][ -  + ]:      92926 : IMPL_META_ACTION( Line, META_LINE_ACTION )
                 [ #  # ]
     379                 :            : 
     380                 :            : // ------------------------------------------------------------------------
     381                 :            : 
     382                 :      46463 : MetaLineAction::MetaLineAction( const Point& rStart, const Point& rEnd ) :
     383                 :            :     MetaAction  ( META_LINE_ACTION ),
     384                 :            :     maStartPt   ( rStart ),
     385         [ +  - ]:      46463 :     maEndPt     ( rEnd )
     386                 :            : {
     387                 :      46463 : }
     388                 :            : 
     389                 :            : // ------------------------------------------------------------------------
     390                 :            : 
     391                 :          0 : MetaLineAction::MetaLineAction( const Point& rStart, const Point& rEnd,
     392                 :            :                                 const LineInfo& rLineInfo ) :
     393                 :            :     MetaAction  ( META_LINE_ACTION ),
     394                 :            :     maLineInfo  ( rLineInfo ),
     395                 :            :     maStartPt   ( rStart ),
     396         [ #  # ]:          0 :     maEndPt     ( rEnd )
     397                 :            : {
     398                 :          0 : }
     399                 :            : 
     400                 :            : // ------------------------------------------------------------------------
     401                 :            : 
     402                 :      46463 : void MetaLineAction::Execute( OutputDevice* pOut )
     403                 :            : {
     404         [ +  - ]:      46463 :     if( maLineInfo.IsDefault() )
     405                 :      46463 :         pOut->DrawLine( maStartPt, maEndPt );
     406                 :            :     else
     407                 :          0 :         pOut->DrawLine( maStartPt, maEndPt, maLineInfo );
     408                 :      46463 : }
     409                 :            : 
     410                 :            : // ------------------------------------------------------------------------
     411                 :            : 
     412                 :          0 : MetaAction* MetaLineAction::Clone()
     413                 :            : {
     414         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaLineAction( *this );
     415                 :          0 :     pClone->ResetRefCount();
     416                 :          0 :     return pClone;
     417                 :            : }
     418                 :            : 
     419                 :            : // ------------------------------------------------------------------------
     420                 :            : 
     421                 :          0 : void MetaLineAction::Move( long nHorzMove, long nVertMove )
     422                 :            : {
     423                 :          0 :     maStartPt.Move( nHorzMove, nVertMove );
     424                 :          0 :     maEndPt.Move( nHorzMove, nVertMove );
     425                 :          0 : }
     426                 :            : 
     427                 :            : // ------------------------------------------------------------------------
     428                 :            : 
     429                 :          0 : void MetaLineAction::Scale( double fScaleX, double fScaleY )
     430                 :            : {
     431                 :          0 :     ImplScalePoint( maStartPt, fScaleX, fScaleY );
     432                 :          0 :     ImplScalePoint( maEndPt, fScaleX, fScaleY );
     433                 :          0 :     ImplScaleLineInfo( maLineInfo, fScaleX, fScaleY );
     434                 :          0 : }
     435                 :            : 
     436                 :            : // ------------------------------------------------------------------------
     437                 :            : 
     438                 :          0 : sal_Bool MetaLineAction::Compare( const MetaAction& rMetaAction ) const
     439                 :            : {
     440                 :          0 :     return ( maLineInfo == ((MetaLineAction&)rMetaAction).maLineInfo ) &&
     441                 :          0 :            ( maStartPt == ((MetaLineAction&)rMetaAction).maStartPt ) &&
     442         [ #  # ]:          0 :            ( maEndPt == ((MetaLineAction&)rMetaAction).maEndPt );
           [ #  #  #  # ]
     443                 :            : }
     444                 :            : 
     445                 :            : // ------------------------------------------------------------------------
     446                 :            : 
     447                 :          0 : void MetaLineAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     448                 :            : {
     449 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
     450                 :            : 
     451 [ #  # ][ #  # ]:          0 :     rOStm << maStartPt << maEndPt;  // Version 1
     452 [ #  # ][ #  # ]:          0 :     rOStm << maLineInfo;            // Version 2
     453                 :          0 : }
     454                 :            : 
     455                 :            : // ------------------------------------------------------------------------
     456                 :            : 
     457                 :          0 : void MetaLineAction::Read( SvStream& rIStm, ImplMetaReadData* )
     458                 :            : {
     459         [ #  # ]:          0 :     COMPAT( rIStm );
     460                 :            : 
     461                 :            :     // Version 1
     462 [ #  # ][ #  # ]:          0 :     rIStm >> maStartPt >> maEndPt;
     463                 :            : 
     464                 :            :     // Version 2
     465         [ #  # ]:          0 :     if( aCompat.GetVersion() >= 2 )
     466                 :            :     {
     467         [ #  # ]:          0 :         rIStm >> maLineInfo;
     468         [ #  # ]:          0 :     }
     469                 :          0 : }
     470                 :            : 
     471                 :            : // ========================================================================
     472                 :            : 
     473 [ -  + ][ +  - ]:      68807 : IMPL_META_ACTION( Rect, META_RECT_ACTION )
     474                 :            : 
     475                 :            : // ------------------------------------------------------------------------
     476                 :            : 
     477                 :      20509 : MetaRectAction::MetaRectAction( const Rectangle& rRect ) :
     478                 :            :     MetaAction  ( META_RECT_ACTION ),
     479                 :      20509 :     maRect      ( rRect )
     480                 :            : {
     481                 :      20509 : }
     482                 :            : 
     483                 :            : // ------------------------------------------------------------------------
     484                 :            : 
     485                 :      12228 : void MetaRectAction::Execute( OutputDevice* pOut )
     486                 :            : {
     487                 :      12228 :     pOut->DrawRect( maRect );
     488                 :      12228 : }
     489                 :            : 
     490                 :            : // ------------------------------------------------------------------------
     491                 :            : 
     492                 :          0 : MetaAction* MetaRectAction::Clone()
     493                 :            : {
     494         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaRectAction( *this );
     495                 :          0 :     pClone->ResetRefCount();
     496                 :          0 :     return pClone;
     497                 :            : }
     498                 :            : 
     499                 :            : // ------------------------------------------------------------------------
     500                 :            : 
     501                 :          0 : void MetaRectAction::Move( long nHorzMove, long nVertMove )
     502                 :            : {
     503                 :          0 :     maRect.Move( nHorzMove, nVertMove );
     504                 :          0 : }
     505                 :            : 
     506                 :            : // ------------------------------------------------------------------------
     507                 :            : 
     508                 :          0 : void MetaRectAction::Scale( double fScaleX, double fScaleY )
     509                 :            : {
     510                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
     511                 :          0 : }
     512                 :            : 
     513                 :            : // ------------------------------------------------------------------------
     514                 :            : 
     515                 :          0 : sal_Bool MetaRectAction::Compare( const MetaAction& rMetaAction ) const
     516                 :            : {
     517                 :          0 :     return maRect == ((MetaRectAction&)rMetaAction).maRect;
     518                 :            : }
     519                 :            : 
     520                 :            : // ------------------------------------------------------------------------
     521                 :            : 
     522                 :      18780 : void MetaRectAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     523                 :            : {
     524 [ +  - ][ +  - ]:      18780 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     525 [ +  - ][ +  - ]:      18780 :     rOStm << maRect;
     526                 :      18780 : }
     527                 :            : 
     528                 :            : // ------------------------------------------------------------------------
     529                 :            : 
     530                 :       9301 : void MetaRectAction::Read( SvStream& rIStm, ImplMetaReadData* )
     531                 :            : {
     532         [ +  - ]:       9301 :     COMPAT( rIStm );
     533 [ +  - ][ +  - ]:       9301 :     rIStm >> maRect;
     534                 :       9301 : }
     535                 :            : 
     536                 :            : // ========================================================================
     537                 :            : 
     538 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( RoundRect, META_ROUNDRECT_ACTION )
     539                 :            : 
     540                 :            : // ------------------------------------------------------------------------
     541                 :            : 
     542                 :          0 : MetaRoundRectAction::MetaRoundRectAction( const Rectangle& rRect,
     543                 :            :                                           sal_uInt32 nHorzRound, sal_uInt32 nVertRound ) :
     544                 :            :     MetaAction  ( META_ROUNDRECT_ACTION ),
     545                 :            :     maRect      ( rRect ),
     546                 :            :     mnHorzRound ( nHorzRound ),
     547                 :          0 :     mnVertRound ( nVertRound )
     548                 :            : {
     549                 :          0 : }
     550                 :            : 
     551                 :            : // ------------------------------------------------------------------------
     552                 :            : 
     553                 :          0 : void MetaRoundRectAction::Execute( OutputDevice* pOut )
     554                 :            : {
     555                 :          0 :     pOut->DrawRect( maRect, mnHorzRound, mnVertRound );
     556                 :          0 : }
     557                 :            : 
     558                 :            : // ------------------------------------------------------------------------
     559                 :            : 
     560                 :          0 : MetaAction* MetaRoundRectAction::Clone()
     561                 :            : {
     562         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaRoundRectAction( *this );
     563                 :          0 :     pClone->ResetRefCount();
     564                 :          0 :     return pClone;
     565                 :            : }
     566                 :            : 
     567                 :            : // ------------------------------------------------------------------------
     568                 :            : 
     569                 :          0 : void MetaRoundRectAction::Move( long nHorzMove, long nVertMove )
     570                 :            : {
     571                 :          0 :     maRect.Move( nHorzMove, nVertMove );
     572                 :          0 : }
     573                 :            : 
     574                 :            : // ------------------------------------------------------------------------
     575                 :            : 
     576                 :          0 : void MetaRoundRectAction::Scale( double fScaleX, double fScaleY )
     577                 :            : {
     578                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
     579                 :          0 :     mnHorzRound = FRound( mnHorzRound * fabs(fScaleX) );
     580                 :          0 :     mnVertRound = FRound( mnVertRound * fabs(fScaleY) );
     581                 :          0 : }
     582                 :            : 
     583                 :            : // ------------------------------------------------------------------------
     584                 :            : 
     585                 :          0 : sal_Bool MetaRoundRectAction::Compare( const MetaAction& rMetaAction ) const
     586                 :            : {
     587                 :          0 :     return ( maRect == ((MetaRoundRectAction&)rMetaAction).maRect ) &&
     588                 :            :            ( mnHorzRound == ((MetaRoundRectAction&)rMetaAction).mnHorzRound ) &&
     589 [ #  # ][ #  # ]:          0 :            ( mnVertRound == ((MetaRoundRectAction&)rMetaAction).mnVertRound );
                 [ #  # ]
     590                 :            : }
     591                 :            : 
     592                 :            : // ------------------------------------------------------------------------
     593                 :            : 
     594                 :          0 : void MetaRoundRectAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     595                 :            : {
     596 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     597 [ #  # ][ #  # ]:          0 :     rOStm << maRect << mnHorzRound << mnVertRound;
         [ #  # ][ #  # ]
     598                 :          0 : }
     599                 :            : 
     600                 :            : // ------------------------------------------------------------------------
     601                 :            : 
     602                 :          0 : void MetaRoundRectAction::Read( SvStream& rIStm, ImplMetaReadData* )
     603                 :            : {
     604         [ #  # ]:          0 :     COMPAT( rIStm );
     605 [ #  # ][ #  # ]:          0 :     rIStm >> maRect >> mnHorzRound >> mnVertRound;
         [ #  # ][ #  # ]
     606                 :          0 : }
     607                 :            : 
     608                 :            : // ========================================================================
     609                 :            : 
     610 [ -  + ][ #  # ]:          6 : IMPL_META_ACTION( Ellipse, META_ELLIPSE_ACTION )
     611                 :            : 
     612                 :            : // ------------------------------------------------------------------------
     613                 :            : 
     614                 :          3 : MetaEllipseAction::MetaEllipseAction( const Rectangle& rRect ) :
     615                 :            :     MetaAction  ( META_ELLIPSE_ACTION ),
     616                 :          3 :     maRect      ( rRect )
     617                 :            : {
     618                 :          3 : }
     619                 :            : 
     620                 :            : // ------------------------------------------------------------------------
     621                 :            : 
     622                 :          0 : void MetaEllipseAction::Execute( OutputDevice* pOut )
     623                 :            : {
     624                 :          0 :     pOut->DrawEllipse( maRect );
     625                 :          0 : }
     626                 :            : 
     627                 :            : // ------------------------------------------------------------------------
     628                 :            : 
     629                 :          0 : MetaAction* MetaEllipseAction::Clone()
     630                 :            : {
     631         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaEllipseAction( *this );
     632                 :          0 :     pClone->ResetRefCount();
     633                 :          0 :     return pClone;
     634                 :            : }
     635                 :            : 
     636                 :            : // ------------------------------------------------------------------------
     637                 :            : 
     638                 :          0 : void MetaEllipseAction::Move( long nHorzMove, long nVertMove )
     639                 :            : {
     640                 :          0 :     maRect.Move( nHorzMove, nVertMove );
     641                 :          0 : }
     642                 :            : 
     643                 :            : // ------------------------------------------------------------------------
     644                 :            : 
     645                 :          0 : void MetaEllipseAction::Scale( double fScaleX, double fScaleY )
     646                 :            : {
     647                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
     648                 :          0 : }
     649                 :            : 
     650                 :            : // ------------------------------------------------------------------------
     651                 :            : 
     652                 :          0 : sal_Bool MetaEllipseAction::Compare( const MetaAction& rMetaAction ) const
     653                 :            : {
     654                 :          0 :     return maRect == ((MetaEllipseAction&)rMetaAction).maRect;
     655                 :            : }
     656                 :            : 
     657                 :            : // ------------------------------------------------------------------------
     658                 :            : 
     659                 :          0 : void MetaEllipseAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     660                 :            : {
     661 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     662 [ #  # ][ #  # ]:          0 :     rOStm << maRect;
     663                 :          0 : }
     664                 :            : 
     665                 :            : // ------------------------------------------------------------------------
     666                 :            : 
     667                 :          0 : void MetaEllipseAction::Read( SvStream& rIStm, ImplMetaReadData* )
     668                 :            : {
     669         [ #  # ]:          0 :     COMPAT( rIStm );
     670 [ #  # ][ #  # ]:          0 :     rIStm >> maRect;
     671                 :          0 : }
     672                 :            : 
     673                 :            : // ========================================================================
     674                 :            : 
     675 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Arc, META_ARC_ACTION )
     676                 :            : 
     677                 :            : // ------------------------------------------------------------------------
     678                 :            : 
     679                 :          0 : MetaArcAction::MetaArcAction( const Rectangle& rRect,
     680                 :            :                               const Point& rStart, const Point& rEnd ) :
     681                 :            :     MetaAction  ( META_ARC_ACTION ),
     682                 :            :     maRect      ( rRect ),
     683                 :            :     maStartPt   ( rStart ),
     684                 :          0 :     maEndPt     ( rEnd )
     685                 :            : {
     686                 :          0 : }
     687                 :            : 
     688                 :            : // ------------------------------------------------------------------------
     689                 :            : 
     690                 :          0 : void MetaArcAction::Execute( OutputDevice* pOut )
     691                 :            : {
     692                 :          0 :     pOut->DrawArc( maRect, maStartPt, maEndPt );
     693                 :          0 : }
     694                 :            : 
     695                 :            : // ------------------------------------------------------------------------
     696                 :            : 
     697                 :          0 : MetaAction* MetaArcAction::Clone()
     698                 :            : {
     699         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaArcAction( *this );
     700                 :          0 :     pClone->ResetRefCount();
     701                 :          0 :     return pClone;
     702                 :            : }
     703                 :            : 
     704                 :            : // ------------------------------------------------------------------------
     705                 :            : 
     706                 :          0 : void MetaArcAction::Move( long nHorzMove, long nVertMove )
     707                 :            : {
     708                 :          0 :     maRect.Move(  nHorzMove, nVertMove );
     709                 :          0 :     maStartPt.Move(  nHorzMove, nVertMove );
     710                 :          0 :     maEndPt.Move(  nHorzMove, nVertMove );
     711                 :          0 : }
     712                 :            : 
     713                 :            : // ------------------------------------------------------------------------
     714                 :            : 
     715                 :          0 : void MetaArcAction::Scale( double fScaleX, double fScaleY )
     716                 :            : {
     717                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
     718                 :          0 :     ImplScalePoint( maStartPt, fScaleX, fScaleY );
     719                 :          0 :     ImplScalePoint( maEndPt, fScaleX, fScaleY );
     720                 :          0 : }
     721                 :            : 
     722                 :            : // ------------------------------------------------------------------------
     723                 :            : 
     724                 :          0 : sal_Bool MetaArcAction::Compare( const MetaAction& rMetaAction ) const
     725                 :            : {
     726                 :          0 :     return ( maRect == ((MetaArcAction&)rMetaAction).maRect ) &&
     727                 :          0 :            ( maStartPt == ((MetaArcAction&)rMetaAction).maStartPt ) &&
     728         [ #  # ]:          0 :            ( maEndPt == ((MetaArcAction&)rMetaAction).maEndPt );
           [ #  #  #  # ]
     729                 :            : }
     730                 :            : 
     731                 :            : // ------------------------------------------------------------------------
     732                 :            : 
     733                 :          0 : void MetaArcAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     734                 :            : {
     735 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     736 [ #  # ][ #  # ]:          0 :     rOStm << maRect << maStartPt << maEndPt;
         [ #  # ][ #  # ]
     737                 :          0 : }
     738                 :            : 
     739                 :            : // ------------------------------------------------------------------------
     740                 :            : 
     741                 :          0 : void MetaArcAction::Read( SvStream& rIStm, ImplMetaReadData* )
     742                 :            : {
     743         [ #  # ]:          0 :     COMPAT( rIStm );
     744 [ #  # ][ #  # ]:          0 :     rIStm >> maRect >> maStartPt >> maEndPt;
         [ #  # ][ #  # ]
     745                 :          0 : }
     746                 :            : 
     747                 :            : // ========================================================================
     748                 :            : 
     749 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Pie, META_PIE_ACTION )
     750                 :            : 
     751                 :            : // ------------------------------------------------------------------------
     752                 :            : 
     753                 :          0 : MetaPieAction::MetaPieAction( const Rectangle& rRect,
     754                 :            :                               const Point& rStart, const Point& rEnd ) :
     755                 :            :     MetaAction  ( META_PIE_ACTION ),
     756                 :            :     maRect      ( rRect ),
     757                 :            :     maStartPt   ( rStart ),
     758                 :          0 :     maEndPt     ( rEnd )
     759                 :            : {
     760                 :          0 : }
     761                 :            : 
     762                 :            : // ------------------------------------------------------------------------
     763                 :            : 
     764                 :          0 : void MetaPieAction::Execute( OutputDevice* pOut )
     765                 :            : {
     766                 :          0 :     pOut->DrawPie( maRect, maStartPt, maEndPt );
     767                 :          0 : }
     768                 :            : 
     769                 :            : // ------------------------------------------------------------------------
     770                 :            : 
     771                 :          0 : MetaAction* MetaPieAction::Clone()
     772                 :            : {
     773         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPieAction( *this );
     774                 :          0 :     pClone->ResetRefCount();
     775                 :          0 :     return pClone;
     776                 :            : }
     777                 :            : 
     778                 :            : // ------------------------------------------------------------------------
     779                 :            : 
     780                 :          0 : void MetaPieAction::Move( long nHorzMove, long nVertMove )
     781                 :            : {
     782                 :          0 :     maRect.Move(  nHorzMove, nVertMove );
     783                 :          0 :     maStartPt.Move(  nHorzMove, nVertMove );
     784                 :          0 :     maEndPt.Move(  nHorzMove, nVertMove );
     785                 :          0 : }
     786                 :            : 
     787                 :            : // ------------------------------------------------------------------------
     788                 :            : 
     789                 :          0 : void MetaPieAction::Scale( double fScaleX, double fScaleY )
     790                 :            : {
     791                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
     792                 :          0 :     ImplScalePoint( maStartPt, fScaleX, fScaleY );
     793                 :          0 :     ImplScalePoint( maEndPt, fScaleX, fScaleY );
     794                 :          0 : }
     795                 :            : 
     796                 :            : // ------------------------------------------------------------------------
     797                 :            : 
     798                 :          0 : sal_Bool MetaPieAction::Compare( const MetaAction& rMetaAction ) const
     799                 :            : {
     800                 :          0 :     return ( maRect == ((MetaPieAction&)rMetaAction).maRect ) &&
     801                 :          0 :            ( maStartPt == ((MetaPieAction&)rMetaAction).maStartPt ) &&
     802         [ #  # ]:          0 :            ( maEndPt == ((MetaPieAction&)rMetaAction).maEndPt );
           [ #  #  #  # ]
     803                 :            : }
     804                 :            : 
     805                 :            : // ------------------------------------------------------------------------
     806                 :            : 
     807                 :          0 : void MetaPieAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     808                 :            : {
     809 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     810 [ #  # ][ #  # ]:          0 :     rOStm << maRect << maStartPt << maEndPt;
         [ #  # ][ #  # ]
     811                 :          0 : }
     812                 :            : 
     813                 :            : // ------------------------------------------------------------------------
     814                 :            : 
     815                 :          0 : void MetaPieAction::Read( SvStream& rIStm, ImplMetaReadData* )
     816                 :            : {
     817         [ #  # ]:          0 :     COMPAT( rIStm );
     818 [ #  # ][ #  # ]:          0 :     rIStm >> maRect >> maStartPt >> maEndPt;
         [ #  # ][ #  # ]
     819                 :          0 : }
     820                 :            : 
     821                 :            : // ========================================================================
     822                 :            : 
     823 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Chord, META_CHORD_ACTION )
     824                 :            : 
     825                 :            : // ------------------------------------------------------------------------
     826                 :            : 
     827                 :          0 : MetaChordAction::MetaChordAction( const Rectangle& rRect,
     828                 :            :                                   const Point& rStart, const Point& rEnd ) :
     829                 :            :     MetaAction  ( META_CHORD_ACTION ),
     830                 :            :     maRect      ( rRect ),
     831                 :            :     maStartPt   ( rStart ),
     832                 :          0 :     maEndPt     ( rEnd )
     833                 :            : {
     834                 :          0 : }
     835                 :            : 
     836                 :            : // ------------------------------------------------------------------------
     837                 :            : 
     838                 :          0 : void MetaChordAction::Execute( OutputDevice* pOut )
     839                 :            : {
     840                 :          0 :     pOut->DrawChord( maRect, maStartPt, maEndPt );
     841                 :          0 : }
     842                 :            : 
     843                 :            : // ------------------------------------------------------------------------
     844                 :            : 
     845                 :          0 : MetaAction* MetaChordAction::Clone()
     846                 :            : {
     847         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaChordAction( *this );
     848                 :          0 :     pClone->ResetRefCount();
     849                 :          0 :     return pClone;
     850                 :            : }
     851                 :            : 
     852                 :            : // ------------------------------------------------------------------------
     853                 :            : 
     854                 :          0 : void MetaChordAction::Move( long nHorzMove, long nVertMove )
     855                 :            : {
     856                 :          0 :     maRect.Move(  nHorzMove, nVertMove );
     857                 :          0 :     maStartPt.Move(  nHorzMove, nVertMove );
     858                 :          0 :     maEndPt.Move(  nHorzMove, nVertMove );
     859                 :          0 : }
     860                 :            : 
     861                 :            : // ------------------------------------------------------------------------
     862                 :            : 
     863                 :          0 : void MetaChordAction::Scale( double fScaleX, double fScaleY )
     864                 :            : {
     865                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
     866                 :          0 :     ImplScalePoint( maStartPt, fScaleX, fScaleY );
     867                 :          0 :     ImplScalePoint( maEndPt, fScaleX, fScaleY );
     868                 :          0 : }
     869                 :            : 
     870                 :            : // ------------------------------------------------------------------------
     871                 :            : 
     872                 :          0 : sal_Bool MetaChordAction::Compare( const MetaAction& rMetaAction ) const
     873                 :            : {
     874                 :          0 :     return ( maRect == ((MetaChordAction&)rMetaAction).maRect ) &&
     875                 :          0 :            ( maStartPt == ((MetaChordAction&)rMetaAction).maStartPt ) &&
     876         [ #  # ]:          0 :            ( maEndPt == ((MetaChordAction&)rMetaAction).maEndPt );
           [ #  #  #  # ]
     877                 :            : }
     878                 :            : 
     879                 :            : // ------------------------------------------------------------------------
     880                 :            : 
     881                 :          0 : void MetaChordAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     882                 :            : {
     883 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
     884 [ #  # ][ #  # ]:          0 :     rOStm << maRect << maStartPt << maEndPt;
         [ #  # ][ #  # ]
     885                 :          0 : }
     886                 :            : 
     887                 :            : // ------------------------------------------------------------------------
     888                 :            : 
     889                 :          0 : void MetaChordAction::Read( SvStream& rIStm, ImplMetaReadData* )
     890                 :            : {
     891         [ #  # ]:          0 :     COMPAT( rIStm );
     892 [ #  # ][ #  # ]:          0 :     rIStm >> maRect >> maStartPt >> maEndPt;
         [ #  # ][ #  # ]
     893                 :          0 : }
     894                 :            : 
     895                 :            : // ========================================================================
     896                 :            : 
     897 [ +  - ][ +  - ]:      28774 : IMPL_META_ACTION( PolyLine, META_POLYLINE_ACTION )
         [ -  + ][ +  - ]
                 [ +  - ]
     898                 :            : 
     899                 :            : // ------------------------------------------------------------------------
     900                 :            : 
     901                 :          0 : MetaPolyLineAction::MetaPolyLineAction( const Polygon& rPoly ) :
     902                 :            :     MetaAction  ( META_POLYLINE_ACTION ),
     903 [ #  # ][ #  # ]:          0 :     maPoly      ( rPoly )
     904                 :            : {
     905                 :          0 : }
     906                 :            : 
     907                 :            : // ------------------------------------------------------------------------
     908                 :            : 
     909                 :       7388 : MetaPolyLineAction::MetaPolyLineAction( const Polygon& rPoly, const LineInfo& rLineInfo ) :
     910                 :            :     MetaAction  ( META_POLYLINE_ACTION ),
     911                 :            :     maLineInfo  ( rLineInfo ),
     912 [ +  - ][ +  - ]:       7388 :     maPoly      ( rPoly )
     913                 :            : {
     914                 :       7388 : }
     915                 :            : 
     916                 :            : // ------------------------------------------------------------------------
     917                 :            : 
     918                 :       3170 : void MetaPolyLineAction::Execute( OutputDevice* pOut )
     919                 :            : {
     920         [ +  - ]:       3170 :     if( maLineInfo.IsDefault() )
     921                 :       3170 :         pOut->DrawPolyLine( maPoly );
     922                 :            :     else
     923                 :          0 :         pOut->DrawPolyLine( maPoly, maLineInfo );
     924                 :       3170 : }
     925                 :            : 
     926                 :            : // ------------------------------------------------------------------------
     927                 :            : 
     928                 :          0 : MetaAction* MetaPolyLineAction::Clone()
     929                 :            : {
     930         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPolyLineAction( *this );
     931                 :          0 :     pClone->ResetRefCount();
     932                 :          0 :     return pClone;
     933                 :            : }
     934                 :            : 
     935                 :            : // ------------------------------------------------------------------------
     936                 :            : 
     937                 :          0 : void MetaPolyLineAction::Move( long nHorzMove, long nVertMove )
     938                 :            : {
     939                 :          0 :     maPoly.Move( nHorzMove, nVertMove );
     940                 :          0 : }
     941                 :            : 
     942                 :            : // ------------------------------------------------------------------------
     943                 :            : 
     944                 :          0 : void MetaPolyLineAction::Scale( double fScaleX, double fScaleY )
     945                 :            : {
     946                 :          0 :     ImplScalePoly( maPoly, fScaleX, fScaleY );
     947                 :          0 :     ImplScaleLineInfo( maLineInfo, fScaleX, fScaleY );
     948                 :          0 : }
     949                 :            : 
     950                 :            : // ------------------------------------------------------------------------
     951                 :            : 
     952                 :          0 : sal_Bool MetaPolyLineAction::Compare( const MetaAction& rMetaAction ) const
     953                 :            : {
     954                 :          0 :     sal_Bool bIsEqual = sal_True;
     955         [ #  # ]:          0 :     if ( maLineInfo != ((MetaPolyLineAction&)rMetaAction).maLineInfo )
     956                 :          0 :         bIsEqual = sal_False;
     957                 :            :     else
     958                 :          0 :         bIsEqual = maPoly.IsEqual(((MetaPolyLineAction&)rMetaAction).maPoly );
     959                 :          0 :     return bIsEqual;
     960                 :            : 
     961                 :            : }
     962                 :            : 
     963                 :            : // ------------------------------------------------------------------------
     964                 :            : 
     965                 :      12705 : void MetaPolyLineAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     966                 :            : {
     967 [ +  - ][ +  - ]:      12705 :     WRITE_BASE_COMPAT( rOStm, 3, pData );
     968                 :            : 
     969         [ +  - ]:      12705 :     Polygon aSimplePoly;
     970         [ +  - ]:      12705 :     maPoly.AdaptiveSubdivide( aSimplePoly );
     971                 :            : 
     972         [ +  - ]:      12705 :     rOStm << aSimplePoly;                               // Version 1
     973         [ +  - ]:      12705 :     rOStm << maLineInfo;                                // Version 2
     974                 :            : 
     975         [ +  - ]:      12705 :     sal_uInt8 bHasPolyFlags = maPoly.HasFlags();        // Version 3
     976         [ +  - ]:      12705 :     rOStm << bHasPolyFlags;
     977         [ -  + ]:      12705 :     if ( bHasPolyFlags )
     978 [ #  # ][ +  - ]:      12705 :         maPoly.Write( rOStm );
                 [ +  - ]
     979                 :      12705 : }
     980                 :            : 
     981                 :            : // ------------------------------------------------------------------------
     982                 :            : 
     983                 :       4666 : void MetaPolyLineAction::Read( SvStream& rIStm, ImplMetaReadData* )
     984                 :            : {
     985         [ +  - ]:       4666 :     COMPAT( rIStm );
     986                 :            : 
     987                 :            :     // Version 1
     988         [ +  - ]:       4666 :     rIStm >> maPoly;
     989                 :            : 
     990                 :            :     // Version 2
     991         [ +  - ]:       4666 :     if( aCompat.GetVersion() >= 2 )
     992         [ +  - ]:       4666 :         rIStm >> maLineInfo;
     993         [ +  - ]:       4666 :     if ( aCompat.GetVersion() >= 3 )
     994                 :            :     {
     995                 :            :         sal_uInt8 bHasPolyFlags;
     996         [ +  - ]:       4666 :         rIStm >> bHasPolyFlags;
     997         [ -  + ]:       4666 :         if ( bHasPolyFlags )
     998         [ #  # ]:       4666 :             maPoly.Read( rIStm );
     999         [ +  - ]:       4666 :     }
    1000                 :       4666 : }
    1001                 :            : 
    1002                 :            : // ========================================================================
    1003                 :            : 
    1004 [ +  - ][ -  + ]:        378 : IMPL_META_ACTION( Polygon, META_POLYGON_ACTION )
                 [ #  # ]
    1005                 :            : 
    1006                 :            : // ------------------------------------------------------------------------
    1007                 :            : 
    1008                 :        189 : MetaPolygonAction::MetaPolygonAction( const Polygon& rPoly ) :
    1009                 :            :     MetaAction  ( META_POLYGON_ACTION ),
    1010         [ +  - ]:        189 :     maPoly      ( rPoly )
    1011                 :            : {
    1012                 :        189 : }
    1013                 :            : 
    1014                 :            : // ------------------------------------------------------------------------
    1015                 :            : 
    1016                 :          0 : void MetaPolygonAction::Execute( OutputDevice* pOut )
    1017                 :            : {
    1018                 :          0 :     pOut->DrawPolygon( maPoly );
    1019                 :          0 : }
    1020                 :            : 
    1021                 :            : // ------------------------------------------------------------------------
    1022                 :            : 
    1023                 :          0 : MetaAction* MetaPolygonAction::Clone()
    1024                 :            : {
    1025         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPolygonAction( *this );
    1026                 :          0 :     pClone->ResetRefCount();
    1027                 :          0 :     return pClone;
    1028                 :            : }
    1029                 :            : 
    1030                 :            : // ------------------------------------------------------------------------
    1031                 :            : 
    1032                 :          0 : void MetaPolygonAction::Move( long nHorzMove, long nVertMove )
    1033                 :            : {
    1034                 :          0 :     maPoly.Move( nHorzMove, nVertMove );
    1035                 :          0 : }
    1036                 :            : 
    1037                 :            : // ------------------------------------------------------------------------
    1038                 :            : 
    1039                 :          0 : void MetaPolygonAction::Scale( double fScaleX, double fScaleY )
    1040                 :            : {
    1041                 :          0 :     ImplScalePoly( maPoly, fScaleX, fScaleY );
    1042                 :          0 : }
    1043                 :            : 
    1044                 :            : // ------------------------------------------------------------------------
    1045                 :            : 
    1046                 :          0 : sal_Bool MetaPolygonAction::Compare( const MetaAction& rMetaAction ) const
    1047                 :            : {
    1048                 :          0 :     return maPoly.IsEqual(((MetaPolygonAction&)rMetaAction).maPoly );
    1049                 :            : }
    1050                 :            : 
    1051                 :            : // ------------------------------------------------------------------------
    1052                 :            : 
    1053                 :        288 : void MetaPolygonAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1054                 :            : {
    1055 [ +  - ][ +  - ]:        288 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
    1056                 :            : 
    1057         [ +  - ]:        288 :     Polygon aSimplePoly;                            // Version 1
    1058         [ +  - ]:        288 :     maPoly.AdaptiveSubdivide( aSimplePoly );
    1059         [ +  - ]:        288 :     rOStm << aSimplePoly;
    1060                 :            : 
    1061         [ +  - ]:        288 :     sal_uInt8 bHasPolyFlags = maPoly.HasFlags();    // Version 2
    1062         [ +  - ]:        288 :     rOStm << bHasPolyFlags;
    1063         [ -  + ]:        288 :     if ( bHasPolyFlags )
    1064 [ #  # ][ +  - ]:        288 :         maPoly.Write( rOStm );
                 [ +  - ]
    1065                 :        288 : }
    1066                 :            : 
    1067                 :            : // ------------------------------------------------------------------------
    1068                 :            : 
    1069                 :          0 : void MetaPolygonAction::Read( SvStream& rIStm, ImplMetaReadData* )
    1070                 :            : {
    1071         [ #  # ]:          0 :     COMPAT( rIStm );
    1072                 :            : 
    1073         [ #  # ]:          0 :     rIStm >> maPoly;                    // Version 1
    1074                 :            : 
    1075         [ #  # ]:          0 :     if( aCompat.GetVersion() >= 2 )     // Version 2
    1076                 :            :     {
    1077                 :            :         sal_uInt8 bHasPolyFlags;
    1078         [ #  # ]:          0 :         rIStm >> bHasPolyFlags;
    1079         [ #  # ]:          0 :         if ( bHasPolyFlags )
    1080         [ #  # ]:          0 :             maPoly.Read( rIStm );
    1081         [ #  # ]:          0 :     }
    1082                 :          0 : }
    1083                 :            : 
    1084                 :            : // ========================================================================
    1085                 :            : 
    1086 [ +  - ][ -  + ]:       6326 : IMPL_META_ACTION( PolyPolygon, META_POLYPOLYGON_ACTION )
                 [ +  - ]
    1087                 :            : 
    1088                 :            : // ------------------------------------------------------------------------
    1089                 :            : 
    1090                 :       1381 : MetaPolyPolygonAction::MetaPolyPolygonAction( const PolyPolygon& rPolyPoly ) :
    1091                 :            :     MetaAction  ( META_POLYPOLYGON_ACTION ),
    1092         [ +  - ]:       1381 :     maPolyPoly  ( rPolyPoly )
    1093                 :            : {
    1094                 :       1381 : }
    1095                 :            : 
    1096                 :            : // ------------------------------------------------------------------------
    1097                 :            : 
    1098                 :        464 : void MetaPolyPolygonAction::Execute( OutputDevice* pOut )
    1099                 :            : {
    1100                 :        464 :     pOut->DrawPolyPolygon( maPolyPoly );
    1101                 :        464 : }
    1102                 :            : 
    1103                 :            : // ------------------------------------------------------------------------
    1104                 :            : 
    1105                 :          0 : MetaAction* MetaPolyPolygonAction::Clone()
    1106                 :            : {
    1107         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPolyPolygonAction( *this );
    1108                 :          0 :     pClone->ResetRefCount();
    1109                 :          0 :     return pClone;
    1110                 :            : }
    1111                 :            : 
    1112                 :            : // ------------------------------------------------------------------------
    1113                 :            : 
    1114                 :          0 : void MetaPolyPolygonAction::Move( long nHorzMove, long nVertMove )
    1115                 :            : {
    1116                 :          0 :     maPolyPoly.Move( nHorzMove, nVertMove );
    1117                 :          0 : }
    1118                 :            : 
    1119                 :            : // ------------------------------------------------------------------------
    1120                 :            : 
    1121                 :          0 : void MetaPolyPolygonAction::Scale( double fScaleX, double fScaleY )
    1122                 :            : {
    1123         [ #  # ]:          0 :     for( sal_uInt16 i = 0, nCount = maPolyPoly.Count(); i < nCount; i++ )
    1124                 :          0 :         ImplScalePoly( maPolyPoly[ i ], fScaleX, fScaleY );
    1125                 :          0 : }
    1126                 :            : 
    1127                 :            : // ------------------------------------------------------------------------
    1128                 :            : 
    1129                 :          0 : sal_Bool MetaPolyPolygonAction::Compare( const MetaAction& rMetaAction ) const
    1130                 :            : {
    1131                 :          0 :     return maPolyPoly.IsEqual(((MetaPolyPolygonAction&)rMetaAction).maPolyPoly );
    1132                 :            : }
    1133                 :            : 
    1134                 :            : // ------------------------------------------------------------------------
    1135                 :            : 
    1136                 :       2973 : void MetaPolyPolygonAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1137                 :            : {
    1138 [ +  - ][ +  - ]:       2973 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
    1139                 :            : 
    1140                 :       2973 :     sal_uInt16 nNumberOfComplexPolygons = 0;
    1141         [ +  - ]:       2973 :     sal_uInt16 i, nPolyCount = maPolyPoly.Count();
    1142                 :            : 
    1143         [ +  - ]:       2973 :     Polygon aSimplePoly;                                // Version 1
    1144         [ +  - ]:       2973 :     rOStm << nPolyCount;
    1145         [ +  + ]:       5946 :     for ( i = 0; i < nPolyCount; i++ )
    1146                 :            :     {
    1147         [ +  - ]:       2973 :         const Polygon& rPoly = maPolyPoly.GetObject( i );
    1148 [ +  - ][ -  + ]:       2973 :         if ( rPoly.HasFlags() )
    1149                 :          0 :             nNumberOfComplexPolygons++;
    1150         [ +  - ]:       2973 :         rPoly.AdaptiveSubdivide( aSimplePoly );
    1151         [ +  - ]:       2973 :         rOStm << aSimplePoly;
    1152                 :            :     }
    1153                 :            : 
    1154         [ +  - ]:       2973 :     rOStm << nNumberOfComplexPolygons;                  // Version 2
    1155 [ -  + ][ #  # ]:       2973 :     for ( i = 0; nNumberOfComplexPolygons && ( i < nPolyCount ); i++ )
                 [ -  + ]
    1156                 :            :     {
    1157         [ #  # ]:          0 :         const Polygon& rPoly = maPolyPoly.GetObject( i );
    1158 [ #  # ][ #  # ]:          0 :         if ( rPoly.HasFlags() )
    1159                 :            :         {
    1160         [ #  # ]:          0 :             rOStm << i;
    1161         [ #  # ]:          0 :             rPoly.Write( rOStm );
    1162                 :            : 
    1163                 :          0 :             nNumberOfComplexPolygons--;
    1164                 :            :         }
    1165 [ +  - ][ +  - ]:       2973 :     }
    1166                 :       2973 : }
    1167                 :            : 
    1168                 :            : // ------------------------------------------------------------------------
    1169                 :            : 
    1170                 :       1188 : void MetaPolyPolygonAction::Read( SvStream& rIStm, ImplMetaReadData* )
    1171                 :            : {
    1172         [ +  - ]:       1188 :     COMPAT( rIStm );
    1173         [ +  - ]:       1188 :     rIStm >> maPolyPoly;                // Version 1
    1174                 :            : 
    1175         [ +  - ]:       1188 :     if ( aCompat.GetVersion() >= 2 )    // Version 2
    1176                 :            :     {
    1177                 :            :         sal_uInt16 i, nIndex, nNumberOfComplexPolygons;
    1178         [ +  - ]:       1188 :         rIStm >> nNumberOfComplexPolygons;
    1179         [ -  + ]:       1188 :         for ( i = 0; i < nNumberOfComplexPolygons; i++ )
    1180                 :            :         {
    1181         [ #  # ]:          0 :             rIStm >> nIndex;
    1182         [ #  # ]:          0 :             Polygon aPoly;
    1183         [ #  # ]:          0 :             aPoly.Read( rIStm );
    1184         [ #  # ]:          0 :             maPolyPoly.Replace( aPoly, nIndex );
    1185         [ #  # ]:          0 :         }
    1186         [ +  - ]:       1188 :     }
    1187                 :       1188 : }
    1188                 :            : 
    1189                 :            : // ========================================================================
    1190                 :            : 
    1191         [ -  + ]:       5154 : IMPL_META_ACTION( Text, META_TEXT_ACTION )
    1192                 :            : 
    1193                 :            : // ------------------------------------------------------------------------
    1194                 :            : 
    1195                 :       2577 : MetaTextAction::MetaTextAction( const Point& rPt, const rtl::OUString& rStr,
    1196                 :            :                                 sal_uInt16 nIndex, sal_uInt16 nLen ) :
    1197                 :            :     MetaAction  ( META_TEXT_ACTION ),
    1198                 :            :     maPt        ( rPt ),
    1199                 :            :     maStr       ( rStr ),
    1200                 :            :     mnIndex     ( nIndex ),
    1201                 :       2577 :     mnLen       ( nLen )
    1202                 :            : {
    1203                 :       2577 : }
    1204                 :            : 
    1205                 :            : // ------------------------------------------------------------------------
    1206                 :            : 
    1207                 :       2577 : void MetaTextAction::Execute( OutputDevice* pOut )
    1208                 :            : {
    1209         [ +  - ]:       2577 :     pOut->DrawText( maPt, maStr, mnIndex, mnLen );
    1210                 :       2577 : }
    1211                 :            : 
    1212                 :            : // ------------------------------------------------------------------------
    1213                 :            : 
    1214                 :          0 : MetaAction* MetaTextAction::Clone()
    1215                 :            : {
    1216         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextAction( *this );
    1217                 :          0 :     pClone->ResetRefCount();
    1218                 :          0 :     return pClone;
    1219                 :            : }
    1220                 :            : 
    1221                 :            : // ------------------------------------------------------------------------
    1222                 :            : 
    1223                 :          0 : void MetaTextAction::Move( long nHorzMove, long nVertMove )
    1224                 :            : {
    1225                 :          0 :     maPt.Move( nHorzMove, nVertMove );
    1226                 :          0 : }
    1227                 :            : 
    1228                 :            : // ------------------------------------------------------------------------
    1229                 :            : 
    1230                 :          0 : void MetaTextAction::Scale( double fScaleX, double fScaleY )
    1231                 :            : {
    1232                 :          0 :     ImplScalePoint( maPt, fScaleX, fScaleY );
    1233                 :          0 : }
    1234                 :            : 
    1235                 :            : // ------------------------------------------------------------------------
    1236                 :            : 
    1237                 :          0 : sal_Bool MetaTextAction::Compare( const MetaAction& rMetaAction ) const
    1238                 :            : {
    1239                 :          0 :     return ( maPt == ((MetaTextAction&)rMetaAction).maPt ) &&
    1240                 :          0 :            ( maStr == ((MetaTextAction&)rMetaAction).maStr ) &&
    1241                 :            :            ( mnIndex == ((MetaTextAction&)rMetaAction).mnIndex ) &&
    1242 [ #  # ][ #  # ]:          0 :            ( mnLen == ((MetaTextAction&)rMetaAction).mnLen );
           [ #  #  #  # ]
    1243                 :            : }
    1244                 :            : 
    1245                 :            : // ------------------------------------------------------------------------
    1246                 :            : 
    1247                 :          0 : void MetaTextAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1248                 :            : {
    1249 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
    1250         [ #  # ]:          0 :     rOStm   << maPt;
    1251         [ #  # ]:          0 :     rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
    1252         [ #  # ]:          0 :     rOStm   << mnIndex;
    1253         [ #  # ]:          0 :     rOStm   << mnLen;
    1254                 :            : 
    1255 [ #  # ][ #  # ]:          0 :     write_lenPrefixed_uInt16s_FromOUString<sal_uInt16>(rOStm, maStr); // version 2
    1256                 :          0 : }
    1257                 :            : 
    1258                 :            : // ------------------------------------------------------------------------
    1259                 :            : 
    1260                 :          0 : void MetaTextAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
    1261                 :            : {
    1262         [ #  # ]:          0 :     COMPAT( rIStm );
    1263         [ #  # ]:          0 :     rIStm   >> maPt;
    1264         [ #  # ]:          0 :     maStr = rIStm.ReadUniOrByteString(pData->meActualCharSet);
    1265         [ #  # ]:          0 :     rIStm   >> mnIndex;
    1266         [ #  # ]:          0 :     rIStm   >> mnLen;
    1267                 :            : 
    1268         [ #  # ]:          0 :     if ( aCompat.GetVersion() >= 2 )                            // Version 2
    1269 [ #  # ][ #  # ]:          0 :         maStr = read_lenPrefixed_uInt16s_ToOUString<sal_uInt16>(rIStm);
    1270                 :          0 : }
    1271                 :            : 
    1272                 :            : // ========================================================================
    1273                 :            : 
    1274                 :       3763 : MetaTextArrayAction::MetaTextArrayAction() :
    1275                 :            :     MetaAction  ( META_TEXTARRAY_ACTION ),
    1276                 :            :     mpDXAry     ( NULL ),
    1277                 :            :     mnIndex     ( 0 ),
    1278                 :       3763 :     mnLen       ( 0 )
    1279                 :            : {
    1280                 :       3763 : }
    1281                 :            : 
    1282                 :            : // ------------------------------------------------------------------------
    1283                 :            : 
    1284                 :          0 : MetaTextArrayAction::MetaTextArrayAction( const MetaTextArrayAction& rAction ) :
    1285                 :            :     MetaAction  ( META_TEXTARRAY_ACTION ),
    1286                 :            :     maStartPt   ( rAction.maStartPt ),
    1287                 :            :     maStr       ( rAction.maStr ),
    1288                 :            :     mnIndex     ( rAction.mnIndex ),
    1289                 :          0 :     mnLen       ( rAction.mnLen )
    1290                 :            : {
    1291         [ #  # ]:          0 :     if( rAction.mpDXAry )
    1292                 :            :     {
    1293                 :          0 :         const sal_uLong nAryLen = mnLen;
    1294                 :            : 
    1295         [ #  # ]:          0 :         mpDXAry = new sal_Int32[ nAryLen ];
    1296                 :          0 :         memcpy( mpDXAry, rAction.mpDXAry, nAryLen * sizeof( sal_Int32 ) );
    1297                 :            :     }
    1298                 :            :     else
    1299                 :          0 :         mpDXAry = NULL;
    1300                 :          0 : }
    1301                 :            : 
    1302                 :            : // ------------------------------------------------------------------------
    1303                 :            : 
    1304                 :       4657 : MetaTextArrayAction::MetaTextArrayAction( const Point& rStartPt,
    1305                 :            :                                           const rtl::OUString& rStr,
    1306                 :            :                                           const sal_Int32* pDXAry,
    1307                 :            :                                           sal_uInt16 nIndex,
    1308                 :            :                                           sal_uInt16 nLen ) :
    1309                 :            :     MetaAction  ( META_TEXTARRAY_ACTION ),
    1310                 :            :     maStartPt   ( rStartPt ),
    1311                 :            :     maStr       ( rStr ),
    1312                 :            :     mnIndex     ( nIndex ),
    1313         [ +  + ]:       4657 :     mnLen       ( ( nLen == STRING_LEN ) ? rStr.getLength() : nLen )
    1314                 :            : {
    1315         [ +  - ]:       4657 :     const sal_uLong nAryLen = pDXAry ? mnLen : 0;
    1316                 :            : 
    1317         [ +  - ]:       4657 :     if( nAryLen )
    1318                 :            :     {
    1319         [ +  - ]:       4657 :         mpDXAry = new sal_Int32[ nAryLen ];
    1320                 :       4657 :         memcpy( mpDXAry, pDXAry, nAryLen * sizeof( sal_Int32 ) );
    1321                 :            :     }
    1322                 :            :     else
    1323                 :          0 :         mpDXAry = NULL;
    1324                 :       4657 : }
    1325                 :            : 
    1326                 :            : // ------------------------------------------------------------------------
    1327                 :            : 
    1328                 :       8420 : MetaTextArrayAction::~MetaTextArrayAction()
    1329                 :            : {
    1330         [ +  - ]:       8420 :     delete[] mpDXAry;
    1331         [ -  + ]:      16840 : }
    1332                 :            : 
    1333                 :            : // ------------------------------------------------------------------------
    1334                 :            : 
    1335                 :       1044 : void MetaTextArrayAction::Execute( OutputDevice* pOut )
    1336                 :            : {
    1337         [ +  - ]:       1044 :     pOut->DrawTextArray( maStartPt, maStr, mpDXAry, mnIndex, mnLen );
    1338                 :       1044 : }
    1339                 :            : 
    1340                 :            : // ------------------------------------------------------------------------
    1341                 :            : 
    1342                 :          0 : MetaAction* MetaTextArrayAction::Clone()
    1343                 :            : {
    1344         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextArrayAction( *this );
    1345                 :          0 :     pClone->ResetRefCount();
    1346                 :          0 :     return pClone;
    1347                 :            : }
    1348                 :            : 
    1349                 :            : // ------------------------------------------------------------------------
    1350                 :            : 
    1351                 :          0 : void MetaTextArrayAction::Move( long nHorzMove, long nVertMove )
    1352                 :            : {
    1353                 :          0 :     maStartPt.Move( nHorzMove, nVertMove );
    1354                 :          0 : }
    1355                 :            : 
    1356                 :            : // ------------------------------------------------------------------------
    1357                 :            : 
    1358                 :          0 : void MetaTextArrayAction::Scale( double fScaleX, double fScaleY )
    1359                 :            : {
    1360                 :          0 :     ImplScalePoint( maStartPt, fScaleX, fScaleY );
    1361                 :            : 
    1362 [ #  # ][ #  # ]:          0 :     if ( mpDXAry && mnLen )
    1363                 :            :     {
    1364         [ #  # ]:          0 :         for ( sal_uInt16 i = 0, nCount = mnLen; i < nCount; i++ )
    1365                 :          0 :             mpDXAry[ i ] = FRound( mpDXAry[ i ] * fabs(fScaleX) );
    1366                 :            :     }
    1367                 :          0 : }
    1368                 :            : 
    1369                 :            : // ------------------------------------------------------------------------
    1370                 :            : 
    1371                 :          0 : sal_Bool MetaTextArrayAction::Compare( const MetaAction& rMetaAction ) const
    1372                 :            : {
    1373                 :          0 :     return ( maStartPt == ((MetaTextArrayAction&)rMetaAction).maStartPt ) &&
    1374                 :          0 :            ( maStr == ((MetaTextArrayAction&)rMetaAction).maStr ) &&
    1375                 :            :            ( mnIndex == ((MetaTextArrayAction&)rMetaAction).mnIndex ) &&
    1376                 :            :            ( mnLen == ((MetaTextArrayAction&)rMetaAction).mnLen ) &&
    1377 [ #  # ][ #  # ]:          0 :            ( memcmp( mpDXAry, ((MetaTextArrayAction&)rMetaAction).mpDXAry, mnLen ) == 0 );
                 [ #  # ]
           [ #  #  #  # ]
    1378                 :            : }
    1379                 :            : 
    1380                 :            : // ------------------------------------------------------------------------
    1381                 :            : 
    1382                 :      10211 : void MetaTextArrayAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1383                 :            : {
    1384         [ +  - ]:      10211 :     const sal_uInt32 nAryLen = mpDXAry ? mnLen : 0;
    1385                 :            : 
    1386 [ +  - ][ +  - ]:      10211 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
    1387         [ +  - ]:      10211 :     rOStm   << maStartPt;
    1388         [ +  - ]:      10211 :     rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
    1389         [ +  - ]:      10211 :     rOStm   << mnIndex;
    1390         [ +  - ]:      10211 :     rOStm   << mnLen;
    1391         [ +  - ]:      10211 :     rOStm   << nAryLen;
    1392                 :            : 
    1393         [ +  + ]:      93195 :     for( sal_uLong i = 0UL; i < nAryLen; i++ )
    1394         [ +  - ]:      82984 :         rOStm << mpDXAry[ i ];
    1395                 :            : 
    1396 [ +  - ][ +  - ]:      10211 :     write_lenPrefixed_uInt16s_FromOUString<sal_uInt16>(rOStm, maStr); // version 2
    1397                 :      10211 : }
    1398                 :            : 
    1399                 :            : // ------------------------------------------------------------------------
    1400                 :            : 
    1401                 :       3763 : void MetaTextArrayAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
    1402                 :            : {
    1403                 :            :     sal_uInt32 nAryLen;
    1404                 :            : 
    1405         [ -  + ]:       3763 :     delete[] mpDXAry;
    1406                 :            : 
    1407         [ +  - ]:       3763 :     COMPAT( rIStm );
    1408         [ +  - ]:       3763 :     rIStm   >> maStartPt;
    1409         [ +  - ]:       3763 :     maStr = rIStm.ReadUniOrByteString(pData->meActualCharSet);
    1410         [ +  - ]:       3763 :     rIStm   >> mnIndex;
    1411         [ +  - ]:       3763 :     rIStm   >> mnLen;
    1412         [ +  - ]:       3763 :     rIStm   >> nAryLen;
    1413                 :            : 
    1414         [ -  + ]:       3763 :     if ( mnIndex + mnLen > maStr.getLength() )
    1415                 :            :     {
    1416                 :          0 :         mnIndex = 0;
    1417                 :          0 :         mpDXAry = 0;
    1418                 :            :         return;
    1419                 :            :     }
    1420                 :            : 
    1421         [ +  - ]:       3763 :     if( nAryLen )
    1422                 :            :     {
    1423                 :            :         // #i9762#, #106172# Ensure that DX array is at least mnLen entries long
    1424         [ +  - ]:       3763 :         if ( mnLen >= nAryLen )
    1425                 :            :         {
    1426                 :       3763 :             mpDXAry = new (std::nothrow)sal_Int32[ mnLen ];
    1427         [ +  - ]:       3763 :             if ( mpDXAry )
    1428                 :            :             {
    1429                 :            :                    sal_uLong i;
    1430         [ +  + ]:      34343 :                 for( i = 0UL; i < nAryLen; i++ )
    1431         [ +  - ]:      30580 :                     rIStm >> mpDXAry[ i ];
    1432                 :            : 
    1433                 :            :                 // #106172# setup remainder
    1434         [ -  + ]:       3763 :                 for( ; i < mnLen; i++ )
    1435                 :          0 :                     mpDXAry[ i ] = 0;
    1436                 :            :             }
    1437                 :            :         }
    1438                 :            :         else
    1439                 :            :         {
    1440                 :          0 :             mpDXAry = NULL;
    1441                 :            :             return;
    1442                 :            :         }
    1443                 :            :     }
    1444                 :            :     else
    1445                 :          0 :         mpDXAry = NULL;
    1446                 :            : 
    1447         [ +  - ]:       3763 :     if ( aCompat.GetVersion() >= 2 )                            // Version 2
    1448                 :            :     {
    1449         [ +  - ]:       3763 :         maStr = read_lenPrefixed_uInt16s_ToOUString<sal_uInt16>(rIStm);
    1450                 :            : 
    1451         [ -  + ]:       3763 :         if ( mnIndex + mnLen > maStr.getLength() )
    1452                 :            :         {
    1453                 :          0 :             mnIndex = 0;
    1454         [ #  # ]:       3763 :             delete[] mpDXAry, mpDXAry = NULL;
    1455                 :            :         }
    1456 [ +  - ][ +  - ]:       3763 :     }
    1457                 :            : }
    1458                 :            : 
    1459                 :            : // ========================================================================
    1460                 :            : 
    1461         [ -  + ]:     308574 : IMPL_META_ACTION( StretchText, META_STRETCHTEXT_ACTION )
    1462                 :            : 
    1463                 :            : // ------------------------------------------------------------------------
    1464                 :            : 
    1465                 :      62112 : MetaStretchTextAction::MetaStretchTextAction( const Point& rPt, sal_uInt32 nWidth,
    1466                 :            :                                               const rtl::OUString& rStr,
    1467                 :            :                                               sal_uInt16 nIndex, sal_uInt16 nLen ) :
    1468                 :            :     MetaAction  ( META_STRETCHTEXT_ACTION ),
    1469                 :            :     maPt        ( rPt ),
    1470                 :            :     maStr       ( rStr ),
    1471                 :            :     mnWidth     ( nWidth ),
    1472                 :            :     mnIndex     ( nIndex ),
    1473                 :      62112 :     mnLen       ( nLen )
    1474                 :            : {
    1475                 :      62112 : }
    1476                 :            : 
    1477                 :            : // ------------------------------------------------------------------------
    1478                 :            : 
    1479                 :       2979 : void MetaStretchTextAction::Execute( OutputDevice* pOut )
    1480                 :            : {
    1481         [ +  - ]:       2979 :     pOut->DrawStretchText( maPt, mnWidth, maStr, mnIndex, mnLen );
    1482                 :       2979 : }
    1483                 :            : 
    1484                 :            : // ------------------------------------------------------------------------
    1485                 :            : 
    1486                 :          0 : MetaAction* MetaStretchTextAction::Clone()
    1487                 :            : {
    1488         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaStretchTextAction( *this );
    1489                 :          0 :     pClone->ResetRefCount();
    1490                 :          0 :     return pClone;
    1491                 :            : }
    1492                 :            : 
    1493                 :            : // ------------------------------------------------------------------------
    1494                 :            : 
    1495                 :          0 : void MetaStretchTextAction::Move( long nHorzMove, long nVertMove )
    1496                 :            : {
    1497                 :          0 :     maPt.Move( nHorzMove, nVertMove );
    1498                 :          0 : }
    1499                 :            : 
    1500                 :            : // ------------------------------------------------------------------------
    1501                 :            : 
    1502                 :          0 : void MetaStretchTextAction::Scale( double fScaleX, double fScaleY )
    1503                 :            : {
    1504                 :          0 :     ImplScalePoint( maPt, fScaleX, fScaleY );
    1505                 :          0 :     mnWidth = (sal_uLong)FRound( mnWidth * fabs(fScaleX) );
    1506                 :          0 : }
    1507                 :            : 
    1508                 :            : // ------------------------------------------------------------------------
    1509                 :            : 
    1510                 :          0 : sal_Bool MetaStretchTextAction::Compare( const MetaAction& rMetaAction ) const
    1511                 :            : {
    1512                 :          0 :     return ( maPt == ((MetaStretchTextAction&)rMetaAction).maPt ) &&
    1513                 :          0 :            ( maStr == ((MetaStretchTextAction&)rMetaAction).maStr ) &&
    1514                 :            :            ( mnWidth == ((MetaStretchTextAction&)rMetaAction).mnWidth ) &&
    1515                 :            :            ( mnIndex == ((MetaStretchTextAction&)rMetaAction).mnIndex ) &&
    1516 [ #  # ][ #  # ]:          0 :            ( mnLen == ((MetaStretchTextAction&)rMetaAction).mnLen );
                 [ #  # ]
           [ #  #  #  # ]
    1517                 :            : }
    1518                 :            : 
    1519                 :            : // ------------------------------------------------------------------------
    1520                 :            : 
    1521                 :      65994 : void MetaStretchTextAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1522                 :            : {
    1523 [ +  - ][ +  - ]:      65994 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
    1524         [ +  - ]:      65994 :     rOStm   << maPt;
    1525         [ +  - ]:      65994 :     rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
    1526         [ +  - ]:      65994 :     rOStm   << mnWidth;
    1527         [ +  - ]:      65994 :     rOStm   << mnIndex;
    1528         [ +  - ]:      65994 :     rOStm   << mnLen;
    1529                 :            : 
    1530 [ +  - ][ +  - ]:      65994 :     write_lenPrefixed_uInt16s_FromOUString<sal_uInt16>(rOStm, maStr); // version 2
    1531                 :      65994 : }
    1532                 :            : 
    1533                 :            : // ------------------------------------------------------------------------
    1534                 :            : 
    1535                 :      62112 : void MetaStretchTextAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
    1536                 :            : {
    1537         [ +  - ]:      62112 :     COMPAT( rIStm );
    1538         [ +  - ]:      62112 :     rIStm   >> maPt;
    1539         [ +  - ]:      62112 :     maStr = rIStm.ReadUniOrByteString(pData->meActualCharSet);
    1540         [ +  - ]:      62112 :     rIStm   >> mnWidth;
    1541         [ +  - ]:      62112 :     rIStm   >> mnIndex;
    1542         [ +  - ]:      62112 :     rIStm   >> mnLen;
    1543                 :            : 
    1544         [ +  - ]:      62112 :     if ( aCompat.GetVersion() >= 2 )                            // Version 2
    1545 [ +  - ][ +  - ]:      62112 :         maStr = read_lenPrefixed_uInt16s_ToOUString<sal_uInt16>(rIStm);
    1546                 :      62112 : }
    1547                 :            : 
    1548                 :            : // ========================================================================
    1549                 :            : 
    1550 [ -  + ][ #  # ]:       2842 : IMPL_META_ACTION( TextRect, META_TEXTRECT_ACTION )
    1551                 :            : 
    1552                 :            : // ------------------------------------------------------------------------
    1553                 :            : 
    1554                 :       1421 : MetaTextRectAction::MetaTextRectAction( const Rectangle& rRect,
    1555                 :            :                                         const rtl::OUString& rStr, sal_uInt16 nStyle ) :
    1556                 :            :     MetaAction  ( META_TEXTRECT_ACTION ),
    1557                 :            :     maRect      ( rRect ),
    1558                 :            :     maStr       ( rStr ),
    1559                 :       1421 :     mnStyle     ( nStyle )
    1560                 :            : {
    1561                 :       1421 : }
    1562                 :            : 
    1563                 :            : // ------------------------------------------------------------------------
    1564                 :            : 
    1565                 :       1421 : void MetaTextRectAction::Execute( OutputDevice* pOut )
    1566                 :            : {
    1567         [ +  - ]:       1421 :     pOut->DrawText( maRect, maStr, mnStyle );
    1568                 :       1421 : }
    1569                 :            : 
    1570                 :            : // ------------------------------------------------------------------------
    1571                 :            : 
    1572                 :          0 : MetaAction* MetaTextRectAction::Clone()
    1573                 :            : {
    1574         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextRectAction( *this );
    1575                 :          0 :     pClone->ResetRefCount();
    1576                 :          0 :     return pClone;
    1577                 :            : }
    1578                 :            : 
    1579                 :            : // ------------------------------------------------------------------------
    1580                 :            : 
    1581                 :          0 : void MetaTextRectAction::Move( long nHorzMove, long nVertMove )
    1582                 :            : {
    1583                 :          0 :     maRect.Move( nHorzMove, nVertMove );
    1584                 :          0 : }
    1585                 :            : 
    1586                 :            : // ------------------------------------------------------------------------
    1587                 :            : 
    1588                 :          0 : void MetaTextRectAction::Scale( double fScaleX, double fScaleY )
    1589                 :            : {
    1590                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
    1591                 :          0 : }
    1592                 :            : 
    1593                 :            : // ------------------------------------------------------------------------
    1594                 :            : 
    1595                 :          0 : sal_Bool MetaTextRectAction::Compare( const MetaAction& rMetaAction ) const
    1596                 :            : {
    1597                 :          0 :     return ( maRect == ((MetaTextRectAction&)rMetaAction).maRect ) &&
    1598                 :          0 :            ( maStr == ((MetaTextRectAction&)rMetaAction).maStr ) &&
    1599         [ #  # ]:          0 :            ( mnStyle == ((MetaTextRectAction&)rMetaAction).mnStyle );
           [ #  #  #  # ]
    1600                 :            : }
    1601                 :            : 
    1602                 :            : // ------------------------------------------------------------------------
    1603                 :            : 
    1604                 :          0 : void MetaTextRectAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1605                 :            : {
    1606 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
    1607         [ #  # ]:          0 :     rOStm   << maRect;
    1608         [ #  # ]:          0 :     rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
    1609         [ #  # ]:          0 :     rOStm   << mnStyle;
    1610                 :            : 
    1611 [ #  # ][ #  # ]:          0 :     write_lenPrefixed_uInt16s_FromOUString<sal_uInt16>(rOStm, maStr); // version 2
    1612                 :          0 : }
    1613                 :            : 
    1614                 :            : // ------------------------------------------------------------------------
    1615                 :            : 
    1616                 :          0 : void MetaTextRectAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
    1617                 :            : {
    1618         [ #  # ]:          0 :     COMPAT( rIStm );
    1619         [ #  # ]:          0 :     rIStm   >> maRect;
    1620         [ #  # ]:          0 :     maStr = rIStm.ReadUniOrByteString(pData->meActualCharSet);
    1621         [ #  # ]:          0 :     rIStm   >> mnStyle;
    1622                 :            : 
    1623         [ #  # ]:          0 :     if ( aCompat.GetVersion() >= 2 )                            // Version 2
    1624 [ #  # ][ #  # ]:          0 :         maStr = read_lenPrefixed_uInt16s_ToOUString<sal_uInt16>(rIStm);
    1625                 :          0 : }
    1626                 :            : 
    1627                 :            : // ========================================================================
    1628                 :            : 
    1629         [ #  # ]:          0 : IMPL_META_ACTION( TextLine, META_TEXTLINE_ACTION )
    1630                 :            : 
    1631                 :            : // ------------------------------------------------------------------------
    1632                 :            : 
    1633                 :          0 : MetaTextLineAction::MetaTextLineAction( const Point& rPos, long nWidth,
    1634                 :            :                                         FontStrikeout eStrikeout,
    1635                 :            :                                         FontUnderline eUnderline,
    1636                 :            :                                         FontUnderline eOverline ) :
    1637                 :            :     MetaAction  ( META_TEXTLINE_ACTION ),
    1638                 :            :     maPos       ( rPos ),
    1639                 :            :     mnWidth     ( nWidth ),
    1640                 :            :     meStrikeout ( eStrikeout ),
    1641                 :            :     meUnderline ( eUnderline ),
    1642                 :          0 :     meOverline  ( eOverline )
    1643                 :            : {
    1644                 :          0 : }
    1645                 :            : 
    1646                 :            : // ------------------------------------------------------------------------
    1647                 :            : 
    1648                 :          0 : void MetaTextLineAction::Execute( OutputDevice* pOut )
    1649                 :            : {
    1650                 :          0 :     pOut->DrawTextLine( maPos, mnWidth, meStrikeout, meUnderline, meOverline );
    1651                 :          0 : }
    1652                 :            : 
    1653                 :            : // ------------------------------------------------------------------------
    1654                 :            : 
    1655                 :          0 : MetaAction* MetaTextLineAction::Clone()
    1656                 :            : {
    1657         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*)new MetaTextLineAction( *this );
    1658                 :          0 :     pClone->ResetRefCount();
    1659                 :          0 :     return pClone;
    1660                 :            : }
    1661                 :            : 
    1662                 :            : // ------------------------------------------------------------------------
    1663                 :            : 
    1664                 :          0 : void MetaTextLineAction::Move( long nHorzMove, long nVertMove )
    1665                 :            : {
    1666                 :          0 :     maPos.Move( nHorzMove, nVertMove );
    1667                 :          0 : }
    1668                 :            : 
    1669                 :            : // ------------------------------------------------------------------------
    1670                 :            : 
    1671                 :          0 : void MetaTextLineAction::Scale( double fScaleX, double fScaleY )
    1672                 :            : {
    1673                 :          0 :     ImplScalePoint( maPos, fScaleX, fScaleY );
    1674                 :          0 :     mnWidth = FRound( mnWidth * fabs(fScaleX) );
    1675                 :          0 : }
    1676                 :            : 
    1677                 :            : // ------------------------------------------------------------------------
    1678                 :            : 
    1679                 :          0 : sal_Bool MetaTextLineAction::Compare( const MetaAction& rMetaAction ) const
    1680                 :            : {
    1681                 :          0 :     return ( maPos == ((MetaTextLineAction&)rMetaAction).maPos ) &&
    1682                 :            :            ( mnWidth == ((MetaTextLineAction&)rMetaAction).mnWidth ) &&
    1683                 :            :            ( meStrikeout == ((MetaTextLineAction&)rMetaAction).meStrikeout ) &&
    1684                 :            :            ( meUnderline == ((MetaTextLineAction&)rMetaAction).meUnderline ) &&
    1685 [ #  # ][ #  # ]:          0 :            ( meOverline  == ((MetaTextLineAction&)rMetaAction).meOverline );
         [ #  # ][ #  # ]
                 [ #  # ]
    1686                 :            : }
    1687                 :            : 
    1688                 :            : // ------------------------------------------------------------------------
    1689                 :            : 
    1690                 :          0 : void MetaTextLineAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1691                 :            : {
    1692 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 2, pData );
    1693                 :            : 
    1694                 :            :     //#fdo39428 SvStream no longer supports operator<<(long)
    1695         [ #  # ]:          0 :     rOStm << maPos;
    1696         [ #  # ]:          0 :     rOStm << sal::static_int_cast<sal_Int32>(mnWidth);
    1697         [ #  # ]:          0 :     rOStm << static_cast<sal_uInt32>(meStrikeout);
    1698         [ #  # ]:          0 :     rOStm << static_cast<sal_uInt32>(meUnderline);
    1699                 :            :     // new in version 2
    1700 [ #  # ][ #  # ]:          0 :     rOStm << static_cast<sal_uInt32>(meOverline);
    1701                 :          0 : }
    1702                 :            : 
    1703                 :            : // ------------------------------------------------------------------------
    1704                 :            : 
    1705                 :          0 : void MetaTextLineAction::Read( SvStream& rIStm, ImplMetaReadData* )
    1706                 :            : {
    1707         [ #  # ]:          0 :     COMPAT( rIStm );
    1708                 :            : 
    1709                 :            :     //#fdo39428 SvStream no longer supports operator>>(long&)
    1710                 :            :     sal_uInt32 nTemp;
    1711                 :            :     sal_Int32 nTemp2;
    1712         [ #  # ]:          0 :     rIStm >> maPos;
    1713         [ #  # ]:          0 :     rIStm >> nTemp2;
    1714                 :          0 :     mnWidth = nTemp2;
    1715         [ #  # ]:          0 :     rIStm >> nTemp;
    1716                 :          0 :     meStrikeout = (FontStrikeout)nTemp;
    1717         [ #  # ]:          0 :     rIStm >> nTemp;
    1718                 :          0 :     meUnderline = (FontUnderline)nTemp;
    1719         [ #  # ]:          0 :     if ( aCompat.GetVersion() >= 2 ) {
    1720         [ #  # ]:          0 :         rIStm >> nTemp;
    1721                 :          0 :         meUnderline = (FontUnderline)nTemp;
    1722         [ #  # ]:          0 :     }
    1723                 :          0 : }
    1724                 :            : 
    1725                 :            : // ========================================================================
    1726                 :            : 
    1727 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Bmp, META_BMP_ACTION )
                 [ #  # ]
    1728                 :            : 
    1729                 :            : // ------------------------------------------------------------------------
    1730                 :            : 
    1731                 :          0 : MetaBmpAction::MetaBmpAction( const Point& rPt, const Bitmap& rBmp ) :
    1732                 :            :     MetaAction  ( META_BMP_ACTION ),
    1733                 :            :     maBmp       ( rBmp ),
    1734         [ #  # ]:          0 :     maPt        ( rPt )
    1735                 :            : {
    1736                 :          0 : }
    1737                 :            : 
    1738                 :            : // ------------------------------------------------------------------------
    1739                 :            : 
    1740                 :          0 : void MetaBmpAction::Execute( OutputDevice* pOut )
    1741                 :            : {
    1742                 :          0 :     pOut->DrawBitmap( maPt, maBmp );
    1743                 :          0 : }
    1744                 :            : 
    1745                 :            : // ------------------------------------------------------------------------
    1746                 :            : 
    1747                 :          0 : MetaAction* MetaBmpAction::Clone()
    1748                 :            : {
    1749         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaBmpAction( *this );
    1750                 :          0 :     pClone->ResetRefCount();
    1751                 :          0 :     return pClone;
    1752                 :            : }
    1753                 :            : 
    1754                 :            : // ------------------------------------------------------------------------
    1755                 :            : 
    1756                 :          0 : void MetaBmpAction::Move( long nHorzMove, long nVertMove )
    1757                 :            : {
    1758                 :          0 :     maPt.Move( nHorzMove, nVertMove );
    1759                 :          0 : }
    1760                 :            : 
    1761                 :            : // ------------------------------------------------------------------------
    1762                 :            : 
    1763                 :          0 : void MetaBmpAction::Scale( double fScaleX, double fScaleY )
    1764                 :            : {
    1765                 :          0 :     ImplScalePoint( maPt, fScaleX, fScaleY );
    1766                 :          0 : }
    1767                 :            : 
    1768                 :            : // ------------------------------------------------------------------------
    1769                 :            : 
    1770                 :          0 : sal_Bool MetaBmpAction::Compare( const MetaAction& rMetaAction ) const
    1771                 :            : {
    1772                 :          0 :     return maBmp.IsEqual(((MetaBmpAction&)rMetaAction).maBmp ) &&
    1773 [ #  # ][ #  # ]:          0 :            ( maPt == ((MetaBmpAction&)rMetaAction).maPt );
    1774                 :            : }
    1775                 :            : 
    1776                 :            : // ------------------------------------------------------------------------
    1777                 :            : 
    1778                 :          0 : void MetaBmpAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1779                 :            : {
    1780         [ #  # ]:          0 :     if( !!maBmp )
    1781                 :            :     {
    1782 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    1783 [ #  # ][ #  # ]:          0 :         rOStm << maBmp << maPt;
                 [ #  # ]
    1784                 :            :     }
    1785                 :          0 : }
    1786                 :            : 
    1787                 :            : // ------------------------------------------------------------------------
    1788                 :            : 
    1789                 :          0 : void MetaBmpAction::Read( SvStream& rIStm, ImplMetaReadData* )
    1790                 :            : {
    1791         [ #  # ]:          0 :     COMPAT( rIStm );
    1792 [ #  # ][ #  # ]:          0 :     rIStm >> maBmp >> maPt;
                 [ #  # ]
    1793                 :          0 : }
    1794                 :            : 
    1795                 :            : // ========================================================================
    1796                 :            : 
    1797 [ +  - ][ -  + ]:         30 : IMPL_META_ACTION( BmpScale, META_BMPSCALE_ACTION )
                 [ #  # ]
    1798                 :            : 
    1799                 :            : // ------------------------------------------------------------------------
    1800                 :            : 
    1801                 :         15 : MetaBmpScaleAction::MetaBmpScaleAction( const Point& rPt, const Size& rSz,
    1802                 :            :                                         const Bitmap& rBmp ) :
    1803                 :            :     MetaAction  ( META_BMPSCALE_ACTION ),
    1804                 :            :     maBmp       ( rBmp ),
    1805                 :            :     maPt        ( rPt ),
    1806         [ +  - ]:         15 :     maSz        ( rSz )
    1807                 :            : {
    1808                 :         15 : }
    1809                 :            : 
    1810                 :            : // ------------------------------------------------------------------------
    1811                 :            : 
    1812                 :          0 : void MetaBmpScaleAction::Execute( OutputDevice* pOut )
    1813                 :            : {
    1814                 :          0 :     pOut->DrawBitmap( maPt, maSz, maBmp );
    1815                 :          0 : }
    1816                 :            : 
    1817                 :            : // ------------------------------------------------------------------------
    1818                 :            : 
    1819                 :          0 : MetaAction* MetaBmpScaleAction::Clone()
    1820                 :            : {
    1821         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaBmpScaleAction( *this );
    1822                 :          0 :     pClone->ResetRefCount();
    1823                 :          0 :     return pClone;
    1824                 :            : }
    1825                 :            : 
    1826                 :            : // ------------------------------------------------------------------------
    1827                 :            : 
    1828                 :          0 : void MetaBmpScaleAction::Move( long nHorzMove, long nVertMove )
    1829                 :            : {
    1830                 :          0 :     maPt.Move( nHorzMove, nVertMove );
    1831                 :          0 : }
    1832                 :            : 
    1833                 :            : // ------------------------------------------------------------------------
    1834                 :            : 
    1835                 :          0 : void MetaBmpScaleAction::Scale( double fScaleX, double fScaleY )
    1836                 :            : {
    1837         [ #  # ]:          0 :     Rectangle aRectangle(maPt, maSz);
    1838         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    1839                 :          0 :     maPt = aRectangle.TopLeft();
    1840         [ #  # ]:          0 :     maSz = aRectangle.GetSize();
    1841                 :          0 : }
    1842                 :            : 
    1843                 :            : // ------------------------------------------------------------------------
    1844                 :            : 
    1845                 :          0 : sal_Bool MetaBmpScaleAction::Compare( const MetaAction& rMetaAction ) const
    1846                 :            : {
    1847                 :          0 :     return ( maBmp.IsEqual(((MetaBmpScaleAction&)rMetaAction).maBmp )) &&
    1848                 :          0 :            ( maPt == ((MetaBmpScaleAction&)rMetaAction).maPt ) &&
    1849         [ #  # ]:          0 :            ( maSz == ((MetaBmpScaleAction&)rMetaAction).maSz );
           [ #  #  #  # ]
    1850                 :            : }
    1851                 :            : 
    1852                 :            : // ------------------------------------------------------------------------
    1853                 :            : 
    1854                 :          0 : void MetaBmpScaleAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1855                 :            : {
    1856         [ #  # ]:          0 :     if( !!maBmp )
    1857                 :            :     {
    1858 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    1859 [ #  # ][ #  # ]:          0 :         rOStm << maBmp << maPt << maSz;
         [ #  # ][ #  # ]
    1860                 :            :     }
    1861                 :          0 : }
    1862                 :            : 
    1863                 :            : // ------------------------------------------------------------------------
    1864                 :            : 
    1865                 :          0 : void MetaBmpScaleAction::Read( SvStream& rIStm, ImplMetaReadData* )
    1866                 :            : {
    1867         [ #  # ]:          0 :     COMPAT( rIStm );
    1868 [ #  # ][ #  # ]:          0 :     rIStm >> maBmp >> maPt >> maSz;
         [ #  # ][ #  # ]
    1869                 :          0 : }
    1870                 :            : 
    1871                 :            : // ========================================================================
    1872                 :            : 
    1873 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( BmpScalePart, META_BMPSCALEPART_ACTION )
                 [ #  # ]
    1874                 :            : 
    1875                 :            : // ------------------------------------------------------------------------
    1876                 :            : 
    1877                 :          0 : MetaBmpScalePartAction::MetaBmpScalePartAction( const Point& rDstPt, const Size& rDstSz,
    1878                 :            :                                                 const Point& rSrcPt, const Size& rSrcSz,
    1879                 :            :                                                 const Bitmap& rBmp ) :
    1880                 :            :     MetaAction  ( META_BMPSCALEPART_ACTION ),
    1881                 :            :     maBmp       ( rBmp ),
    1882                 :            :     maDstPt     ( rDstPt ),
    1883                 :            :     maDstSz     ( rDstSz ),
    1884                 :            :     maSrcPt     ( rSrcPt ),
    1885         [ #  # ]:          0 :     maSrcSz     ( rSrcSz )
    1886                 :            : {
    1887                 :          0 : }
    1888                 :            : 
    1889                 :            : // ------------------------------------------------------------------------
    1890                 :            : 
    1891                 :          0 : void MetaBmpScalePartAction::Execute( OutputDevice* pOut )
    1892                 :            : {
    1893                 :          0 :     pOut->DrawBitmap( maDstPt, maDstSz, maSrcPt, maSrcSz, maBmp );
    1894                 :          0 : }
    1895                 :            : 
    1896                 :            : // ------------------------------------------------------------------------
    1897                 :            : 
    1898                 :          0 : MetaAction* MetaBmpScalePartAction::Clone()
    1899                 :            : {
    1900         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaBmpScalePartAction( *this );
    1901                 :          0 :     pClone->ResetRefCount();
    1902                 :          0 :     return pClone;
    1903                 :            : }
    1904                 :            : 
    1905                 :            : // ------------------------------------------------------------------------
    1906                 :            : 
    1907                 :          0 : void MetaBmpScalePartAction::Move( long nHorzMove, long nVertMove )
    1908                 :            : {
    1909                 :          0 :     maDstPt.Move( nHorzMove, nVertMove );
    1910                 :          0 : }
    1911                 :            : 
    1912                 :            : // ------------------------------------------------------------------------
    1913                 :            : 
    1914                 :          0 : void MetaBmpScalePartAction::Scale( double fScaleX, double fScaleY )
    1915                 :            : {
    1916         [ #  # ]:          0 :     Rectangle aRectangle(maDstPt, maDstSz);
    1917         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    1918                 :          0 :     maDstPt = aRectangle.TopLeft();
    1919         [ #  # ]:          0 :     maDstSz = aRectangle.GetSize();
    1920                 :          0 : }
    1921                 :            : 
    1922                 :            : // ------------------------------------------------------------------------
    1923                 :            : 
    1924                 :          0 : sal_Bool MetaBmpScalePartAction::Compare( const MetaAction& rMetaAction ) const
    1925                 :            : {
    1926                 :          0 :     return ( maBmp.IsEqual(((MetaBmpScalePartAction&)rMetaAction).maBmp )) &&
    1927                 :          0 :            ( maDstPt == ((MetaBmpScalePartAction&)rMetaAction).maDstPt ) &&
    1928                 :          0 :            ( maDstSz == ((MetaBmpScalePartAction&)rMetaAction).maDstSz ) &&
    1929                 :          0 :            ( maSrcPt == ((MetaBmpScalePartAction&)rMetaAction).maSrcPt ) &&
    1930 [ #  # ][ #  #  :          0 :            ( maSrcSz == ((MetaBmpScalePartAction&)rMetaAction).maSrcSz );
          #  #  #  #  #  
                      # ]
    1931                 :            : }
    1932                 :            : 
    1933                 :            : // ------------------------------------------------------------------------
    1934                 :            : 
    1935                 :          0 : void MetaBmpScalePartAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    1936                 :            : {
    1937         [ #  # ]:          0 :     if( !!maBmp )
    1938                 :            :     {
    1939 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    1940 [ #  # ][ #  # ]:          0 :         rOStm << maBmp << maDstPt << maDstSz << maSrcPt << maSrcSz;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
    1941                 :            :     }
    1942                 :          0 : }
    1943                 :            : 
    1944                 :            : // ------------------------------------------------------------------------
    1945                 :            : 
    1946                 :          0 : void MetaBmpScalePartAction::Read( SvStream& rIStm, ImplMetaReadData* )
    1947                 :            : {
    1948         [ #  # ]:          0 :     COMPAT( rIStm );
    1949 [ #  # ][ #  # ]:          0 :     rIStm >> maBmp >> maDstPt >> maDstSz >> maSrcPt >> maSrcSz;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
    1950                 :          0 : }
    1951                 :            : 
    1952                 :            : // ========================================================================
    1953                 :            : 
    1954 [ +  - ][ -  + ]:         12 : IMPL_META_ACTION( BmpEx, META_BMPEX_ACTION )
                 [ #  # ]
    1955                 :            : 
    1956                 :            : // ------------------------------------------------------------------------
    1957                 :            : 
    1958                 :          6 : MetaBmpExAction::MetaBmpExAction( const Point& rPt, const BitmapEx& rBmpEx ) :
    1959                 :            :     MetaAction  ( META_BMPEX_ACTION ),
    1960                 :            :     maBmpEx     ( rBmpEx ),
    1961         [ +  - ]:          6 :     maPt        ( rPt )
    1962                 :            : {
    1963                 :          6 : }
    1964                 :            : 
    1965                 :            : // ------------------------------------------------------------------------
    1966                 :            : 
    1967                 :          0 : void MetaBmpExAction::Execute( OutputDevice* pOut )
    1968                 :            : {
    1969                 :          0 :     pOut->DrawBitmapEx( maPt, maBmpEx );
    1970                 :          0 : }
    1971                 :            : 
    1972                 :            : // ------------------------------------------------------------------------
    1973                 :            : 
    1974                 :          0 : MetaAction* MetaBmpExAction::Clone()
    1975                 :            : {
    1976         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaBmpExAction( *this );
    1977                 :          0 :     pClone->ResetRefCount();
    1978                 :          0 :     return pClone;
    1979                 :            : }
    1980                 :            : 
    1981                 :            : // ------------------------------------------------------------------------
    1982                 :            : 
    1983                 :          6 : void MetaBmpExAction::Move( long nHorzMove, long nVertMove )
    1984                 :            : {
    1985                 :          6 :     maPt.Move( nHorzMove, nVertMove );
    1986                 :          6 : }
    1987                 :            : 
    1988                 :            : // ------------------------------------------------------------------------
    1989                 :            : 
    1990                 :          0 : void MetaBmpExAction::Scale( double fScaleX, double fScaleY )
    1991                 :            : {
    1992                 :          0 :     ImplScalePoint( maPt, fScaleX, fScaleY );
    1993                 :          0 : }
    1994                 :            : 
    1995                 :            : // ------------------------------------------------------------------------
    1996                 :            : 
    1997                 :          0 : sal_Bool MetaBmpExAction::Compare( const MetaAction& rMetaAction ) const
    1998                 :            : {
    1999                 :          0 :     return ( maBmpEx.IsEqual(((MetaBmpExAction&)rMetaAction).maBmpEx )) &&
    2000 [ #  # ][ #  # ]:          0 :            ( maPt == ((MetaBmpExAction&)rMetaAction).maPt );
    2001                 :            : }
    2002                 :            : 
    2003                 :            : // ------------------------------------------------------------------------
    2004                 :            : 
    2005                 :          0 : void MetaBmpExAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2006                 :            : {
    2007         [ #  # ]:          0 :     if( !!maBmpEx.GetBitmap() )
    2008                 :            :     {
    2009 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    2010 [ #  # ][ #  # ]:          0 :         rOStm << maBmpEx << maPt;
                 [ #  # ]
    2011                 :            :     }
    2012                 :          0 : }
    2013                 :            : 
    2014                 :            : // ------------------------------------------------------------------------
    2015                 :            : 
    2016                 :          0 : void MetaBmpExAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2017                 :            : {
    2018         [ #  # ]:          0 :     COMPAT( rIStm );
    2019 [ #  # ][ #  # ]:          0 :     rIStm >> maBmpEx >> maPt;
                 [ #  # ]
    2020                 :          0 : }
    2021                 :            : 
    2022                 :            : // ========================================================================
    2023                 :            : 
    2024 [ +  - ][ -  + ]:         83 : IMPL_META_ACTION( BmpExScale, META_BMPEXSCALE_ACTION )
                 [ +  - ]
    2025                 :            : 
    2026                 :            : // ------------------------------------------------------------------------
    2027                 :            : 
    2028                 :         22 : MetaBmpExScaleAction::MetaBmpExScaleAction( const Point& rPt, const Size& rSz,
    2029                 :            :                                             const BitmapEx& rBmpEx ) :
    2030                 :            :     MetaAction  ( META_BMPEXSCALE_ACTION ),
    2031                 :            :     maBmpEx     ( rBmpEx ),
    2032                 :            :     maPt        ( rPt ),
    2033         [ +  - ]:         22 :     maSz        ( rSz )
    2034                 :            : {
    2035                 :         22 : }
    2036                 :            : 
    2037                 :            : // ------------------------------------------------------------------------
    2038                 :            : 
    2039                 :          0 : void MetaBmpExScaleAction::Execute( OutputDevice* pOut )
    2040                 :            : {
    2041                 :          0 :     pOut->DrawBitmapEx( maPt, maSz, maBmpEx );
    2042                 :          0 : }
    2043                 :            : 
    2044                 :            : // ------------------------------------------------------------------------
    2045                 :            : 
    2046                 :          0 : MetaAction* MetaBmpExScaleAction::Clone()
    2047                 :            : {
    2048         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaBmpExScaleAction( *this );
    2049                 :          0 :     pClone->ResetRefCount();
    2050                 :          0 :     return pClone;
    2051                 :            : }
    2052                 :            : 
    2053                 :            : // ------------------------------------------------------------------------
    2054                 :            : 
    2055                 :          0 : void MetaBmpExScaleAction::Move( long nHorzMove, long nVertMove )
    2056                 :            : {
    2057                 :          0 :     maPt.Move( nHorzMove, nVertMove );
    2058                 :          0 : }
    2059                 :            : 
    2060                 :            : // ------------------------------------------------------------------------
    2061                 :            : 
    2062                 :          0 : void MetaBmpExScaleAction::Scale( double fScaleX, double fScaleY )
    2063                 :            : {
    2064         [ #  # ]:          0 :     Rectangle aRectangle(maPt, maSz);
    2065         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    2066                 :          0 :     maPt = aRectangle.TopLeft();
    2067         [ #  # ]:          0 :     maSz = aRectangle.GetSize();
    2068                 :          0 : }
    2069                 :            : 
    2070                 :            : // ------------------------------------------------------------------------
    2071                 :            : 
    2072                 :          0 : sal_Bool MetaBmpExScaleAction::Compare( const MetaAction& rMetaAction ) const
    2073                 :            : {
    2074                 :          0 :     return ( maBmpEx.IsEqual(((MetaBmpExScaleAction&)rMetaAction).maBmpEx )) &&
    2075                 :          0 :            ( maPt == ((MetaBmpExScaleAction&)rMetaAction).maPt ) &&
    2076         [ #  # ]:          0 :            ( maSz == ((MetaBmpExScaleAction&)rMetaAction).maSz );
           [ #  #  #  # ]
    2077                 :            : }
    2078                 :            : 
    2079                 :            : // ------------------------------------------------------------------------
    2080                 :            : 
    2081                 :         13 : void MetaBmpExScaleAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2082                 :            : {
    2083         [ +  - ]:         13 :     if( !!maBmpEx.GetBitmap() )
    2084                 :            :     {
    2085 [ +  - ][ +  - ]:         13 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    2086 [ +  - ][ +  - ]:         13 :         rOStm << maBmpEx << maPt << maSz;
         [ +  - ][ +  - ]
    2087                 :            :     }
    2088                 :         13 : }
    2089                 :            : 
    2090                 :            : // ------------------------------------------------------------------------
    2091                 :            : 
    2092                 :         13 : void MetaBmpExScaleAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2093                 :            : {
    2094         [ +  - ]:         13 :     COMPAT( rIStm );
    2095 [ +  - ][ +  - ]:         13 :     rIStm >> maBmpEx >> maPt >> maSz;
         [ +  - ][ +  - ]
    2096                 :         13 : }
    2097                 :            : 
    2098                 :            : // ========================================================================
    2099                 :            : 
    2100 [ +  - ][ -  + ]:       1122 : IMPL_META_ACTION( BmpExScalePart, META_BMPEXSCALEPART_ACTION )
                 [ #  # ]
    2101                 :            : 
    2102                 :            : // ------------------------------------------------------------------------
    2103                 :            : 
    2104                 :        561 : MetaBmpExScalePartAction::MetaBmpExScalePartAction( const Point& rDstPt, const Size& rDstSz,
    2105                 :            :                                                     const Point& rSrcPt, const Size& rSrcSz,
    2106                 :            :                                                     const BitmapEx& rBmpEx ) :
    2107                 :            :     MetaAction  ( META_BMPEXSCALEPART_ACTION ),
    2108                 :            :     maBmpEx     ( rBmpEx ),
    2109                 :            :     maDstPt     ( rDstPt ),
    2110                 :            :     maDstSz     ( rDstSz ),
    2111                 :            :     maSrcPt     ( rSrcPt ),
    2112         [ +  - ]:        561 :     maSrcSz     ( rSrcSz )
    2113                 :            : {
    2114                 :        561 : }
    2115                 :            : 
    2116                 :            : // ------------------------------------------------------------------------
    2117                 :            : 
    2118                 :        561 : void MetaBmpExScalePartAction::Execute( OutputDevice* pOut )
    2119                 :            : {
    2120                 :        561 :     pOut->DrawBitmapEx( maDstPt, maDstSz, maSrcPt, maSrcSz, maBmpEx );
    2121                 :        561 : }
    2122                 :            : 
    2123                 :            : // ------------------------------------------------------------------------
    2124                 :            : 
    2125                 :          0 : MetaAction* MetaBmpExScalePartAction::Clone()
    2126                 :            : {
    2127         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaBmpExScalePartAction( *this );
    2128                 :          0 :     pClone->ResetRefCount();
    2129                 :          0 :     return pClone;
    2130                 :            : }
    2131                 :            : 
    2132                 :            : // ------------------------------------------------------------------------
    2133                 :            : 
    2134                 :          0 : void MetaBmpExScalePartAction::Move( long nHorzMove, long nVertMove )
    2135                 :            : {
    2136                 :          0 :     maDstPt.Move( nHorzMove, nVertMove );
    2137                 :          0 : }
    2138                 :            : 
    2139                 :            : // ------------------------------------------------------------------------
    2140                 :            : 
    2141                 :          0 : void MetaBmpExScalePartAction::Scale( double fScaleX, double fScaleY )
    2142                 :            : {
    2143         [ #  # ]:          0 :     Rectangle aRectangle(maDstPt, maDstSz);
    2144         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    2145                 :          0 :     maDstPt = aRectangle.TopLeft();
    2146         [ #  # ]:          0 :     maDstSz = aRectangle.GetSize();
    2147                 :          0 : }
    2148                 :            : 
    2149                 :            : // ------------------------------------------------------------------------
    2150                 :            : 
    2151                 :          0 : sal_Bool MetaBmpExScalePartAction::Compare( const MetaAction& rMetaAction ) const
    2152                 :            : {
    2153                 :          0 :     return ( maBmpEx.IsEqual(((MetaBmpExScalePartAction&)rMetaAction).maBmpEx )) &&
    2154                 :          0 :            ( maDstPt == ((MetaBmpExScalePartAction&)rMetaAction).maDstPt ) &&
    2155                 :          0 :            ( maDstSz == ((MetaBmpExScalePartAction&)rMetaAction).maDstSz ) &&
    2156                 :          0 :            ( maSrcPt == ((MetaBmpExScalePartAction&)rMetaAction).maSrcPt ) &&
    2157 [ #  # ][ #  #  :          0 :            ( maSrcSz == ((MetaBmpExScalePartAction&)rMetaAction).maSrcSz );
          #  #  #  #  #  
                      # ]
    2158                 :            : }
    2159                 :            : 
    2160                 :            : // ------------------------------------------------------------------------
    2161                 :            : 
    2162                 :          0 : void MetaBmpExScalePartAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2163                 :            : {
    2164         [ #  # ]:          0 :     if( !!maBmpEx.GetBitmap() )
    2165                 :            :     {
    2166 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    2167 [ #  # ][ #  # ]:          0 :         rOStm << maBmpEx << maDstPt << maDstSz << maSrcPt << maSrcSz;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
    2168                 :            :     }
    2169                 :          0 : }
    2170                 :            : 
    2171                 :            : // ------------------------------------------------------------------------
    2172                 :            : 
    2173                 :          0 : void MetaBmpExScalePartAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2174                 :            : {
    2175         [ #  # ]:          0 :     COMPAT( rIStm );
    2176 [ #  # ][ #  # ]:          0 :     rIStm >> maBmpEx >> maDstPt >> maDstSz >> maSrcPt >> maSrcSz;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
    2177                 :          0 : }
    2178                 :            : 
    2179                 :            : // ========================================================================
    2180                 :            : 
    2181 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Mask, META_MASK_ACTION )
                 [ #  # ]
    2182                 :            : 
    2183                 :            : // ------------------------------------------------------------------------
    2184                 :            : 
    2185                 :          0 : MetaMaskAction::MetaMaskAction( const Point& rPt,
    2186                 :            :                                 const Bitmap& rBmp,
    2187                 :            :                                 const Color& rColor ) :
    2188                 :            :     MetaAction  ( META_MASK_ACTION ),
    2189                 :            :     maBmp       ( rBmp ),
    2190                 :            :     maColor     ( rColor ),
    2191         [ #  # ]:          0 :     maPt        ( rPt )
    2192                 :            : {
    2193                 :          0 : }
    2194                 :            : 
    2195                 :            : // ------------------------------------------------------------------------
    2196                 :            : 
    2197                 :          0 : void MetaMaskAction::Execute( OutputDevice* pOut )
    2198                 :            : {
    2199                 :          0 :     pOut->DrawMask( maPt, maBmp, maColor );
    2200                 :          0 : }
    2201                 :            : 
    2202                 :            : // ------------------------------------------------------------------------
    2203                 :            : 
    2204                 :          0 : MetaAction* MetaMaskAction::Clone()
    2205                 :            : {
    2206         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaMaskAction( *this );
    2207                 :          0 :     pClone->ResetRefCount();
    2208                 :          0 :     return pClone;
    2209                 :            : }
    2210                 :            : 
    2211                 :            : // ------------------------------------------------------------------------
    2212                 :            : 
    2213                 :          0 : void MetaMaskAction::Move( long nHorzMove, long nVertMove )
    2214                 :            : {
    2215                 :          0 :     maPt.Move( nHorzMove, nVertMove );
    2216                 :          0 : }
    2217                 :            : 
    2218                 :            : // ------------------------------------------------------------------------
    2219                 :            : 
    2220                 :          0 : void MetaMaskAction::Scale( double fScaleX, double fScaleY )
    2221                 :            : {
    2222                 :          0 :     ImplScalePoint( maPt, fScaleX, fScaleY );
    2223                 :          0 : }
    2224                 :            : 
    2225                 :            : // ------------------------------------------------------------------------
    2226                 :            : 
    2227                 :          0 : sal_Bool MetaMaskAction::Compare( const MetaAction& rMetaAction ) const
    2228                 :            : {
    2229                 :          0 :     return ( maBmp.IsEqual(((MetaMaskAction&)rMetaAction).maBmp )) &&
    2230                 :          0 :            ( maColor == ((MetaMaskAction&)rMetaAction).maColor ) &&
    2231         [ #  # ]:          0 :            ( maPt == ((MetaMaskAction&)rMetaAction).maPt );
           [ #  #  #  # ]
    2232                 :            : }
    2233                 :            : 
    2234                 :            : // ------------------------------------------------------------------------
    2235                 :            : 
    2236                 :          0 : void MetaMaskAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2237                 :            : {
    2238         [ #  # ]:          0 :     if( !!maBmp )
    2239                 :            :     {
    2240 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    2241 [ #  # ][ #  # ]:          0 :         rOStm << maBmp << maPt;
                 [ #  # ]
    2242                 :            :     }
    2243                 :          0 : }
    2244                 :            : 
    2245                 :            : // ------------------------------------------------------------------------
    2246                 :            : 
    2247                 :          0 : void MetaMaskAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2248                 :            : {
    2249         [ #  # ]:          0 :     COMPAT( rIStm );
    2250 [ #  # ][ #  # ]:          0 :     rIStm >> maBmp >> maPt;
                 [ #  # ]
    2251                 :          0 : }
    2252                 :            : 
    2253                 :            : // ========================================================================
    2254                 :            : 
    2255 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( MaskScale, META_MASKSCALE_ACTION )
                 [ #  # ]
    2256                 :            : 
    2257                 :            : // ------------------------------------------------------------------------
    2258                 :            : 
    2259                 :          0 : MetaMaskScaleAction::MetaMaskScaleAction( const Point& rPt, const Size& rSz,
    2260                 :            :                                           const Bitmap& rBmp,
    2261                 :            :                                           const Color& rColor ) :
    2262                 :            :     MetaAction  ( META_MASKSCALE_ACTION ),
    2263                 :            :     maBmp       ( rBmp ),
    2264                 :            :     maColor     ( rColor ),
    2265                 :            :     maPt        ( rPt ),
    2266         [ #  # ]:          0 :     maSz        ( rSz )
    2267                 :            : {
    2268                 :          0 : }
    2269                 :            : 
    2270                 :            : // ------------------------------------------------------------------------
    2271                 :            : 
    2272                 :          0 : void MetaMaskScaleAction::Execute( OutputDevice* pOut )
    2273                 :            : {
    2274                 :          0 :     pOut->DrawMask( maPt, maSz, maBmp, maColor );
    2275                 :          0 : }
    2276                 :            : 
    2277                 :            : // ------------------------------------------------------------------------
    2278                 :            : 
    2279                 :          0 : MetaAction* MetaMaskScaleAction::Clone()
    2280                 :            : {
    2281         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaMaskScaleAction( *this );
    2282                 :          0 :     pClone->ResetRefCount();
    2283                 :          0 :     return pClone;
    2284                 :            : }
    2285                 :            : 
    2286                 :            : // ------------------------------------------------------------------------
    2287                 :            : 
    2288                 :          0 : void MetaMaskScaleAction::Move( long nHorzMove, long nVertMove )
    2289                 :            : {
    2290                 :          0 :     maPt.Move( nHorzMove, nVertMove );
    2291                 :          0 : }
    2292                 :            : 
    2293                 :            : // ------------------------------------------------------------------------
    2294                 :            : 
    2295                 :          0 : void MetaMaskScaleAction::Scale( double fScaleX, double fScaleY )
    2296                 :            : {
    2297         [ #  # ]:          0 :     Rectangle aRectangle(maPt, maSz);
    2298         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    2299                 :          0 :     maPt = aRectangle.TopLeft();
    2300         [ #  # ]:          0 :     maSz = aRectangle.GetSize();
    2301                 :          0 : }
    2302                 :            : 
    2303                 :            : // ------------------------------------------------------------------------
    2304                 :            : 
    2305                 :          0 : sal_Bool MetaMaskScaleAction::Compare( const MetaAction& rMetaAction ) const
    2306                 :            : {
    2307                 :          0 :     return ( maBmp.IsEqual(((MetaMaskScaleAction&)rMetaAction).maBmp )) &&
    2308                 :          0 :            ( maColor == ((MetaMaskScaleAction&)rMetaAction).maColor ) &&
    2309                 :          0 :            ( maPt == ((MetaMaskScaleAction&)rMetaAction).maPt ) &&
    2310 [ #  # ][ #  #  :          0 :            ( maSz == ((MetaMaskScaleAction&)rMetaAction).maSz );
             #  #  #  # ]
    2311                 :            : }
    2312                 :            : 
    2313                 :            : // ------------------------------------------------------------------------
    2314                 :            : 
    2315                 :          0 : void MetaMaskScaleAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2316                 :            : {
    2317         [ #  # ]:          0 :     if( !!maBmp )
    2318                 :            :     {
    2319 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    2320 [ #  # ][ #  # ]:          0 :         rOStm << maBmp << maPt << maSz;
         [ #  # ][ #  # ]
    2321                 :            :     }
    2322                 :          0 : }
    2323                 :            : 
    2324                 :            : // ------------------------------------------------------------------------
    2325                 :            : 
    2326                 :          0 : void MetaMaskScaleAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2327                 :            : {
    2328         [ #  # ]:          0 :     COMPAT( rIStm );
    2329 [ #  # ][ #  # ]:          0 :     rIStm >> maBmp >> maPt >> maSz;
         [ #  # ][ #  # ]
    2330                 :          0 : }
    2331                 :            : 
    2332                 :            : // ========================================================================
    2333                 :            : 
    2334 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( MaskScalePart, META_MASKSCALEPART_ACTION )
                 [ #  # ]
    2335                 :            : 
    2336                 :            : // ------------------------------------------------------------------------
    2337                 :            : 
    2338                 :          0 : MetaMaskScalePartAction::MetaMaskScalePartAction( const Point& rDstPt, const Size& rDstSz,
    2339                 :            :                                                   const Point& rSrcPt, const Size& rSrcSz,
    2340                 :            :                                                   const Bitmap& rBmp,
    2341                 :            :                                                   const Color& rColor ) :
    2342                 :            :     MetaAction  ( META_MASKSCALEPART_ACTION ),
    2343                 :            :     maBmp       ( rBmp ),
    2344                 :            :     maColor     ( rColor ),
    2345                 :            :     maDstPt     ( rDstPt ),
    2346                 :            :     maDstSz     ( rDstSz ),
    2347                 :            :     maSrcPt     ( rSrcPt ),
    2348         [ #  # ]:          0 :     maSrcSz     ( rSrcSz )
    2349                 :            : {
    2350                 :          0 : }
    2351                 :            : 
    2352                 :            : // ------------------------------------------------------------------------
    2353                 :            : 
    2354                 :          0 : void MetaMaskScalePartAction::Execute( OutputDevice* pOut )
    2355                 :            : {
    2356                 :          0 :     pOut->DrawMask( maDstPt, maDstSz, maSrcPt, maSrcSz, maBmp, maColor );
    2357                 :          0 : }
    2358                 :            : 
    2359                 :            : // ------------------------------------------------------------------------
    2360                 :            : 
    2361                 :          0 : MetaAction* MetaMaskScalePartAction::Clone()
    2362                 :            : {
    2363         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaMaskScalePartAction( *this );
    2364                 :          0 :     pClone->ResetRefCount();
    2365                 :          0 :     return pClone;
    2366                 :            : }
    2367                 :            : 
    2368                 :            : // ------------------------------------------------------------------------
    2369                 :            : 
    2370                 :          0 : void MetaMaskScalePartAction::Move( long nHorzMove, long nVertMove )
    2371                 :            : {
    2372                 :          0 :     maDstPt.Move( nHorzMove, nVertMove );
    2373                 :          0 : }
    2374                 :            : 
    2375                 :            : // ------------------------------------------------------------------------
    2376                 :            : 
    2377                 :          0 : void MetaMaskScalePartAction::Scale( double fScaleX, double fScaleY )
    2378                 :            : {
    2379         [ #  # ]:          0 :     Rectangle aRectangle(maDstPt, maDstSz);
    2380         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    2381                 :          0 :     maDstPt = aRectangle.TopLeft();
    2382         [ #  # ]:          0 :     maDstSz = aRectangle.GetSize();
    2383                 :          0 : }
    2384                 :            : 
    2385                 :            : // ------------------------------------------------------------------------
    2386                 :            : 
    2387                 :          0 : sal_Bool MetaMaskScalePartAction::Compare( const MetaAction& rMetaAction ) const
    2388                 :            : {
    2389                 :          0 :     return ( maBmp.IsEqual(((MetaMaskScalePartAction&)rMetaAction).maBmp )) &&
    2390                 :          0 :            ( maColor == ((MetaMaskScalePartAction&)rMetaAction).maColor ) &&
    2391                 :          0 :            ( maDstPt == ((MetaMaskScalePartAction&)rMetaAction).maDstPt ) &&
    2392                 :          0 :            ( maDstSz == ((MetaMaskScalePartAction&)rMetaAction).maDstSz ) &&
    2393                 :          0 :            ( maSrcPt == ((MetaMaskScalePartAction&)rMetaAction).maSrcPt ) &&
    2394 [ #  # ][ #  #  :          0 :            ( maSrcSz == ((MetaMaskScalePartAction&)rMetaAction).maSrcSz );
          #  #  #  #  #  
                #  #  # ]
    2395                 :            : }
    2396                 :            : 
    2397                 :            : // ------------------------------------------------------------------------
    2398                 :            : 
    2399                 :          0 : void MetaMaskScalePartAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2400                 :            : {
    2401         [ #  # ]:          0 :     if( !!maBmp )
    2402                 :            :     {
    2403 [ #  # ][ #  # ]:          0 :         WRITE_BASE_COMPAT( rOStm, 1, pData );
    2404         [ #  # ]:          0 :         rOStm << maBmp;
    2405         [ #  # ]:          0 :         maColor.Write( rOStm, sal_True );
    2406 [ #  # ][ #  # ]:          0 :         rOStm << maDstPt << maDstSz << maSrcPt << maSrcSz;
         [ #  # ][ #  # ]
                 [ #  # ]
    2407                 :            :     }
    2408                 :          0 : }
    2409                 :            : 
    2410                 :            : // ------------------------------------------------------------------------
    2411                 :            : 
    2412                 :          0 : void MetaMaskScalePartAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2413                 :            : {
    2414         [ #  # ]:          0 :     COMPAT( rIStm );
    2415         [ #  # ]:          0 :     rIStm >> maBmp;
    2416         [ #  # ]:          0 :     maColor.Read( rIStm, sal_True );
    2417 [ #  # ][ #  # ]:          0 :     rIStm >> maDstPt >> maDstSz >> maSrcPt >> maSrcSz;
         [ #  # ][ #  # ]
                 [ #  # ]
    2418                 :          0 : }
    2419                 :            : 
    2420                 :            : // ========================================================================
    2421                 :            : 
    2422 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Gradient, META_GRADIENT_ACTION )
         [ #  # ][ #  # ]
    2423                 :            : 
    2424                 :            : // ------------------------------------------------------------------------
    2425                 :            : 
    2426                 :          0 : MetaGradientAction::MetaGradientAction( const Rectangle& rRect, const Gradient& rGradient ) :
    2427                 :            :     MetaAction  ( META_GRADIENT_ACTION ),
    2428                 :            :     maRect      ( rRect ),
    2429         [ #  # ]:          0 :     maGradient  ( rGradient )
    2430                 :            : {
    2431                 :          0 : }
    2432                 :            : 
    2433                 :            : // ------------------------------------------------------------------------
    2434                 :            : 
    2435                 :          0 : void MetaGradientAction::Execute( OutputDevice* pOut )
    2436                 :            : {
    2437                 :          0 :     pOut->DrawGradient( maRect, maGradient );
    2438                 :          0 : }
    2439                 :            : 
    2440                 :            : // ------------------------------------------------------------------------
    2441                 :            : 
    2442                 :          0 : MetaAction* MetaGradientAction::Clone()
    2443                 :            : {
    2444         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaGradientAction( *this );
    2445                 :          0 :     pClone->ResetRefCount();
    2446                 :          0 :     return pClone;
    2447                 :            : }
    2448                 :            : 
    2449                 :            : // ------------------------------------------------------------------------
    2450                 :            : 
    2451                 :          0 : void MetaGradientAction::Move( long nHorzMove, long nVertMove )
    2452                 :            : {
    2453                 :          0 :     maRect.Move( nHorzMove, nVertMove );
    2454                 :          0 : }
    2455                 :            : 
    2456                 :            : // ------------------------------------------------------------------------
    2457                 :            : 
    2458                 :          0 : void MetaGradientAction::Scale( double fScaleX, double fScaleY )
    2459                 :            : {
    2460                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
    2461                 :          0 : }
    2462                 :            : 
    2463                 :            : // ------------------------------------------------------------------------
    2464                 :            : 
    2465                 :          0 : sal_Bool MetaGradientAction::Compare( const MetaAction& rMetaAction ) const
    2466                 :            : {
    2467                 :          0 :     return ( maRect == ((MetaGradientAction&)rMetaAction).maRect ) &&
    2468 [ #  # ][ #  # ]:          0 :            ( maGradient == ((MetaGradientAction&)rMetaAction).maGradient );
    2469                 :            : }
    2470                 :            : 
    2471                 :            : // ------------------------------------------------------------------------
    2472                 :            : 
    2473                 :          0 : void MetaGradientAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2474                 :            : {
    2475 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2476 [ #  # ][ #  # ]:          0 :     rOStm << maRect << maGradient;
                 [ #  # ]
    2477                 :          0 : }
    2478                 :            : 
    2479                 :            : // ------------------------------------------------------------------------
    2480                 :            : 
    2481                 :          0 : void MetaGradientAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2482                 :            : {
    2483         [ #  # ]:          0 :     COMPAT( rIStm );
    2484 [ #  # ][ #  # ]:          0 :     rIStm >> maRect >> maGradient;
                 [ #  # ]
    2485                 :          0 : }
    2486                 :            : 
    2487                 :            : // ========================================================================
    2488                 :            : 
    2489                 :          0 : MetaGradientExAction::MetaGradientExAction() :
    2490 [ #  # ][ #  # ]:          0 :     MetaAction  ( META_GRADIENTEX_ACTION )
    2491                 :            : {
    2492                 :          0 : }
    2493                 :            : 
    2494                 :            : // ------------------------------------------------------------------------
    2495                 :            : 
    2496                 :          0 : MetaGradientExAction::MetaGradientExAction( const PolyPolygon& rPolyPoly, const Gradient& rGradient ) :
    2497                 :            :     MetaAction  ( META_GRADIENTEX_ACTION ),
    2498                 :            :     maPolyPoly  ( rPolyPoly ),
    2499 [ #  # ][ #  # ]:          0 :     maGradient  ( rGradient )
    2500                 :            : {
    2501                 :          0 : }
    2502                 :            : 
    2503                 :            : // ------------------------------------------------------------------------
    2504                 :            : 
    2505 [ #  # ][ #  # ]:          0 : MetaGradientExAction::~MetaGradientExAction()
    2506                 :            : {
    2507         [ #  # ]:          0 : }
    2508                 :            : 
    2509                 :            : // ------------------------------------------------------------------------
    2510                 :            : 
    2511                 :          0 : void MetaGradientExAction::Execute( OutputDevice* pOut )
    2512                 :            : {
    2513         [ #  # ]:          0 :     if( pOut->GetConnectMetaFile() )
    2514                 :            :     {
    2515                 :          0 :         Duplicate();
    2516                 :          0 :         pOut->GetConnectMetaFile()->AddAction( this );
    2517                 :            :     }
    2518                 :          0 : }
    2519                 :            : 
    2520                 :            : // ------------------------------------------------------------------------
    2521                 :            : 
    2522                 :          0 : MetaAction* MetaGradientExAction::Clone()
    2523                 :            : {
    2524         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaGradientExAction( *this );
    2525                 :          0 :     pClone->ResetRefCount();
    2526                 :          0 :     return pClone;
    2527                 :            : }
    2528                 :            : 
    2529                 :            : // ------------------------------------------------------------------------
    2530                 :            : 
    2531                 :          0 : void MetaGradientExAction::Move( long nHorzMove, long nVertMove )
    2532                 :            : {
    2533                 :          0 :     maPolyPoly.Move( nHorzMove, nVertMove );
    2534                 :          0 : }
    2535                 :            : 
    2536                 :            : // ------------------------------------------------------------------------
    2537                 :            : 
    2538                 :          0 : void MetaGradientExAction::Scale( double fScaleX, double fScaleY )
    2539                 :            : {
    2540         [ #  # ]:          0 :     for( sal_uInt16 i = 0, nCount = maPolyPoly.Count(); i < nCount; i++ )
    2541                 :          0 :         ImplScalePoly( maPolyPoly[ i ], fScaleX, fScaleY );
    2542                 :          0 : }
    2543                 :            : 
    2544                 :            : // ------------------------------------------------------------------------
    2545                 :            : 
    2546                 :          0 : sal_Bool MetaGradientExAction::Compare( const MetaAction& rMetaAction ) const
    2547                 :            : {
    2548                 :          0 :     return ( maPolyPoly == ((MetaGradientExAction&)rMetaAction).maPolyPoly ) &&
    2549 [ #  # ][ #  # ]:          0 :            ( maGradient == ((MetaGradientExAction&)rMetaAction).maGradient );
    2550                 :            : }
    2551                 :            : 
    2552                 :            : // ------------------------------------------------------------------------
    2553                 :            : 
    2554                 :          0 : void MetaGradientExAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2555                 :            : {
    2556 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2557                 :            : 
    2558                 :            :     // #i105373# see comment at MetaTransparentAction::Write
    2559         [ #  # ]:          0 :     PolyPolygon aNoCurvePolyPolygon;
    2560         [ #  # ]:          0 :     maPolyPoly.AdaptiveSubdivide(aNoCurvePolyPolygon);
    2561                 :            : 
    2562         [ #  # ]:          0 :     rOStm << aNoCurvePolyPolygon;
    2563 [ #  # ][ #  # ]:          0 :     rOStm << maGradient;
                 [ #  # ]
    2564                 :          0 : }
    2565                 :            : 
    2566                 :            : // ------------------------------------------------------------------------
    2567                 :            : 
    2568                 :          0 : void MetaGradientExAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2569                 :            : {
    2570         [ #  # ]:          0 :     COMPAT( rIStm );
    2571 [ #  # ][ #  # ]:          0 :     rIStm >> maPolyPoly >> maGradient;
                 [ #  # ]
    2572                 :          0 : }
    2573                 :            : 
    2574                 :            : // ========================================================================
    2575                 :            : 
    2576 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Hatch, META_HATCH_ACTION )
         [ #  # ][ #  # ]
                 [ #  # ]
    2577                 :            : 
    2578                 :            : // ------------------------------------------------------------------------
    2579                 :            : 
    2580                 :          0 : MetaHatchAction::MetaHatchAction( const PolyPolygon& rPolyPoly, const Hatch& rHatch ) :
    2581                 :            :     MetaAction  ( META_HATCH_ACTION ),
    2582                 :            :     maPolyPoly  ( rPolyPoly ),
    2583 [ #  # ][ #  # ]:          0 :     maHatch     ( rHatch )
    2584                 :            : {
    2585                 :          0 : }
    2586                 :            : 
    2587                 :            : // ------------------------------------------------------------------------
    2588                 :            : 
    2589                 :          0 : void MetaHatchAction::Execute( OutputDevice* pOut )
    2590                 :            : {
    2591                 :          0 :     pOut->DrawHatch( maPolyPoly, maHatch );
    2592                 :          0 : }
    2593                 :            : 
    2594                 :            : // ------------------------------------------------------------------------
    2595                 :            : 
    2596                 :          0 : MetaAction* MetaHatchAction::Clone()
    2597                 :            : {
    2598         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaHatchAction( *this );
    2599                 :          0 :     pClone->ResetRefCount();
    2600                 :          0 :     return pClone;
    2601                 :            : }
    2602                 :            : 
    2603                 :            : // ------------------------------------------------------------------------
    2604                 :            : 
    2605                 :          0 : void MetaHatchAction::Move( long nHorzMove, long nVertMove )
    2606                 :            : {
    2607                 :          0 :     maPolyPoly.Move( nHorzMove, nVertMove );
    2608                 :          0 : }
    2609                 :            : 
    2610                 :            : // ------------------------------------------------------------------------
    2611                 :            : 
    2612                 :          0 : void MetaHatchAction::Scale( double fScaleX, double fScaleY )
    2613                 :            : {
    2614         [ #  # ]:          0 :     for( sal_uInt16 i = 0, nCount = maPolyPoly.Count(); i < nCount; i++ )
    2615                 :          0 :         ImplScalePoly( maPolyPoly[ i ], fScaleX, fScaleY );
    2616                 :          0 : }
    2617                 :            : 
    2618                 :            : // ------------------------------------------------------------------------
    2619                 :            : 
    2620                 :          0 : sal_Bool MetaHatchAction::Compare( const MetaAction& rMetaAction ) const
    2621                 :            : {
    2622                 :          0 :     return ( maPolyPoly == ((MetaHatchAction&)rMetaAction).maPolyPoly ) &&
    2623 [ #  # ][ #  # ]:          0 :            ( maHatch == ((MetaHatchAction&)rMetaAction).maHatch );
    2624                 :            : }
    2625                 :            : 
    2626                 :            : // ------------------------------------------------------------------------
    2627                 :            : 
    2628                 :          0 : void MetaHatchAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2629                 :            : {
    2630 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2631                 :            : 
    2632                 :            :     // #i105373# see comment at MetaTransparentAction::Write
    2633         [ #  # ]:          0 :     PolyPolygon aNoCurvePolyPolygon;
    2634         [ #  # ]:          0 :     maPolyPoly.AdaptiveSubdivide(aNoCurvePolyPolygon);
    2635                 :            : 
    2636         [ #  # ]:          0 :     rOStm << aNoCurvePolyPolygon;
    2637 [ #  # ][ #  # ]:          0 :     rOStm << maHatch;
                 [ #  # ]
    2638                 :          0 : }
    2639                 :            : 
    2640                 :            : // ------------------------------------------------------------------------
    2641                 :            : 
    2642                 :          0 : void MetaHatchAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2643                 :            : {
    2644         [ #  # ]:          0 :     COMPAT( rIStm );
    2645 [ #  # ][ #  # ]:          0 :     rIStm >> maPolyPoly >> maHatch;
                 [ #  # ]
    2646                 :          0 : }
    2647                 :            : 
    2648                 :            : // ========================================================================
    2649                 :            : 
    2650 [ +  - ][ -  + ]:       6050 : IMPL_META_ACTION( Wallpaper, META_WALLPAPER_ACTION )
         [ #  # ][ #  # ]
    2651                 :            : 
    2652                 :            : // ------------------------------------------------------------------------
    2653                 :            : 
    2654                 :       3025 : MetaWallpaperAction::MetaWallpaperAction( const Rectangle& rRect,
    2655                 :            :                                           const Wallpaper& rPaper ) :
    2656                 :            :     MetaAction  ( META_WALLPAPER_ACTION ),
    2657                 :            :     maRect      ( rRect ),
    2658         [ +  - ]:       3025 :     maWallpaper ( rPaper )
    2659                 :            : {
    2660                 :       3025 : }
    2661                 :            : 
    2662                 :            : // ------------------------------------------------------------------------
    2663                 :            : 
    2664                 :       3025 : void MetaWallpaperAction::Execute( OutputDevice* pOut )
    2665                 :            : {
    2666                 :       3025 :     pOut->DrawWallpaper( maRect, maWallpaper );
    2667                 :       3025 : }
    2668                 :            : 
    2669                 :            : // ------------------------------------------------------------------------
    2670                 :            : 
    2671                 :          0 : MetaAction* MetaWallpaperAction::Clone()
    2672                 :            : {
    2673         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaWallpaperAction( *this );
    2674                 :          0 :     pClone->ResetRefCount();
    2675                 :          0 :     return pClone;
    2676                 :            : }
    2677                 :            : 
    2678                 :            : // ------------------------------------------------------------------------
    2679                 :            : 
    2680                 :          0 : void MetaWallpaperAction::Move( long nHorzMove, long nVertMove )
    2681                 :            : {
    2682                 :          0 :     maRect.Move( nHorzMove, nVertMove );
    2683                 :          0 : }
    2684                 :            : 
    2685                 :            : // ------------------------------------------------------------------------
    2686                 :            : 
    2687                 :          0 : void MetaWallpaperAction::Scale( double fScaleX, double fScaleY )
    2688                 :            : {
    2689                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
    2690                 :          0 : }
    2691                 :            : 
    2692                 :            : // ------------------------------------------------------------------------
    2693                 :            : 
    2694                 :          0 : sal_Bool MetaWallpaperAction::Compare( const MetaAction& rMetaAction ) const
    2695                 :            : {
    2696                 :          0 :     return ( maRect == ((MetaWallpaperAction&)rMetaAction).maRect ) &&
    2697 [ #  # ][ #  # ]:          0 :            ( maWallpaper == ((MetaWallpaperAction&)rMetaAction).maWallpaper );
    2698                 :            : }
    2699                 :            : 
    2700                 :            : // ------------------------------------------------------------------------
    2701                 :            : 
    2702                 :          0 : void MetaWallpaperAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2703                 :            : {
    2704 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2705 [ #  # ][ #  # ]:          0 :     rOStm << maWallpaper;
    2706                 :          0 : }
    2707                 :            : 
    2708                 :            : // ------------------------------------------------------------------------
    2709                 :            : 
    2710                 :          0 : void MetaWallpaperAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2711                 :            : {
    2712         [ #  # ]:          0 :     COMPAT( rIStm );
    2713 [ #  # ][ #  # ]:          0 :     rIStm >> maWallpaper;
    2714                 :          0 : }
    2715                 :            : 
    2716                 :            : // ========================================================================
    2717                 :            : 
    2718 [ +  - ][ -  + ]:      21782 : IMPL_META_ACTION( ClipRegion, META_CLIPREGION_ACTION )
                 [ #  # ]
    2719                 :            : 
    2720                 :            : // ------------------------------------------------------------------------
    2721                 :            : 
    2722                 :      10891 : MetaClipRegionAction::MetaClipRegionAction( const Region& rRegion, sal_Bool bClip ) :
    2723                 :            :     MetaAction  ( META_CLIPREGION_ACTION ),
    2724                 :            :     maRegion    ( rRegion ),
    2725         [ +  - ]:      10891 :     mbClip      ( bClip )
    2726                 :            : {
    2727                 :      10891 : }
    2728                 :            : 
    2729                 :            : // ------------------------------------------------------------------------
    2730                 :            : 
    2731                 :      10882 : void MetaClipRegionAction::Execute( OutputDevice* pOut )
    2732                 :            : {
    2733         [ +  + ]:      10882 :     if( mbClip )
    2734                 :      10850 :         pOut->SetClipRegion( maRegion );
    2735                 :            :     else
    2736                 :         32 :         pOut->SetClipRegion();
    2737                 :      10882 : }
    2738                 :            : 
    2739                 :            : // ------------------------------------------------------------------------
    2740                 :            : 
    2741                 :          0 : MetaAction* MetaClipRegionAction::Clone()
    2742                 :            : {
    2743         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaClipRegionAction( *this );
    2744                 :          0 :     pClone->ResetRefCount();
    2745                 :          0 :     return pClone;
    2746                 :            : }
    2747                 :            : 
    2748                 :            : // ------------------------------------------------------------------------
    2749                 :            : 
    2750                 :          0 : void MetaClipRegionAction::Move( long nHorzMove, long nVertMove )
    2751                 :            : {
    2752                 :          0 :     maRegion.Move( nHorzMove, nVertMove );
    2753                 :          0 : }
    2754                 :            : 
    2755                 :            : // ------------------------------------------------------------------------
    2756                 :            : 
    2757                 :          0 : void MetaClipRegionAction::Scale( double fScaleX, double fScaleY )
    2758                 :            : {
    2759                 :          0 :     maRegion.Scale( fScaleX, fScaleY );
    2760                 :          0 : }
    2761                 :            : 
    2762                 :            : // ------------------------------------------------------------------------
    2763                 :            : 
    2764                 :          0 : sal_Bool MetaClipRegionAction::Compare( const MetaAction& rMetaAction ) const
    2765                 :            : {
    2766                 :          0 :     return ( maRegion == ((MetaClipRegionAction&)rMetaAction).maRegion ) &&
    2767 [ #  # ][ #  # ]:          0 :            ( mbClip == ((MetaClipRegionAction&)rMetaAction).mbClip );
    2768                 :            : }
    2769                 :            : 
    2770                 :            : // ------------------------------------------------------------------------
    2771                 :            : 
    2772                 :          0 : void MetaClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2773                 :            : {
    2774 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2775 [ #  # ][ #  # ]:          0 :     rOStm << maRegion << mbClip;
                 [ #  # ]
    2776                 :          0 : }
    2777                 :            : 
    2778                 :            : // ------------------------------------------------------------------------
    2779                 :            : 
    2780                 :          0 : void MetaClipRegionAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2781                 :            : {
    2782         [ #  # ]:          0 :     COMPAT( rIStm );
    2783 [ #  # ][ #  # ]:          0 :     rIStm >> maRegion >> mbClip;
                 [ #  # ]
    2784                 :          0 : }
    2785                 :            : 
    2786                 :            : // ========================================================================
    2787                 :            : 
    2788 [ -  + ][ +  - ]:      36487 : IMPL_META_ACTION( ISectRectClipRegion, META_ISECTRECTCLIPREGION_ACTION )
    2789                 :            : 
    2790                 :            : // ------------------------------------------------------------------------
    2791                 :            : 
    2792                 :       7973 : MetaISectRectClipRegionAction::MetaISectRectClipRegionAction( const Rectangle& rRect ) :
    2793                 :            :     MetaAction  ( META_ISECTRECTCLIPREGION_ACTION ),
    2794                 :       7973 :     maRect      ( rRect )
    2795                 :            : {
    2796                 :       7973 : }
    2797                 :            : 
    2798                 :            : // ------------------------------------------------------------------------
    2799                 :            : 
    2800                 :       1435 : void MetaISectRectClipRegionAction::Execute( OutputDevice* pOut )
    2801                 :            : {
    2802                 :       1435 :     pOut->IntersectClipRegion( maRect );
    2803                 :       1435 : }
    2804                 :            : 
    2805                 :            : // ------------------------------------------------------------------------
    2806                 :            : 
    2807                 :          0 : MetaAction* MetaISectRectClipRegionAction::Clone()
    2808                 :            : {
    2809         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaISectRectClipRegionAction( *this );
    2810                 :          0 :     pClone->ResetRefCount();
    2811                 :          0 :     return pClone;
    2812                 :            : }
    2813                 :            : 
    2814                 :            : // ------------------------------------------------------------------------
    2815                 :            : 
    2816                 :          0 : void MetaISectRectClipRegionAction::Move( long nHorzMove, long nVertMove )
    2817                 :            : {
    2818                 :          0 :     maRect.Move( nHorzMove, nVertMove );
    2819                 :          0 : }
    2820                 :            : 
    2821                 :            : // ------------------------------------------------------------------------
    2822                 :            : 
    2823                 :          0 : void MetaISectRectClipRegionAction::Scale( double fScaleX, double fScaleY )
    2824                 :            : {
    2825                 :          0 :     ImplScaleRect( maRect, fScaleX, fScaleY );
    2826                 :          0 : }
    2827                 :            : 
    2828                 :            : // ------------------------------------------------------------------------
    2829                 :            : 
    2830                 :          0 : sal_Bool MetaISectRectClipRegionAction::Compare( const MetaAction& rMetaAction ) const
    2831                 :            : {
    2832                 :          0 :     return maRect == ((MetaISectRectClipRegionAction&)rMetaAction).maRect;
    2833                 :            : }
    2834                 :            : 
    2835                 :            : // ------------------------------------------------------------------------
    2836                 :            : 
    2837                 :       7479 : void MetaISectRectClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2838                 :            : {
    2839 [ +  - ][ +  - ]:       7479 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2840 [ +  - ][ +  - ]:       7479 :     rOStm << maRect;
    2841                 :       7479 : }
    2842                 :            : 
    2843                 :            : // ------------------------------------------------------------------------
    2844                 :            : 
    2845                 :       6905 : void MetaISectRectClipRegionAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2846                 :            : {
    2847         [ +  - ]:       6905 :     COMPAT( rIStm );
    2848 [ +  - ][ +  - ]:       6905 :     rIStm >> maRect;
    2849                 :       6905 : }
    2850                 :            : 
    2851                 :            : // ========================================================================
    2852                 :            : 
    2853 [ +  - ][ -  + ]:       1838 : IMPL_META_ACTION( ISectRegionClipRegion, META_ISECTREGIONCLIPREGION_ACTION )
                 [ +  - ]
    2854                 :            : 
    2855                 :            : // ------------------------------------------------------------------------
    2856                 :            : 
    2857                 :        652 : MetaISectRegionClipRegionAction::MetaISectRegionClipRegionAction( const Region& rRegion ) :
    2858                 :            :     MetaAction  ( META_ISECTREGIONCLIPREGION_ACTION ),
    2859         [ +  - ]:        652 :     maRegion    ( rRegion )
    2860                 :            : {
    2861                 :        652 : }
    2862                 :            : 
    2863                 :            : // ------------------------------------------------------------------------
    2864                 :            : 
    2865                 :        530 : void MetaISectRegionClipRegionAction::Execute( OutputDevice* pOut )
    2866                 :            : {
    2867                 :        530 :     pOut->IntersectClipRegion( maRegion );
    2868                 :        530 : }
    2869                 :            : 
    2870                 :            : // ------------------------------------------------------------------------
    2871                 :            : 
    2872                 :          0 : MetaAction* MetaISectRegionClipRegionAction::Clone()
    2873                 :            : {
    2874         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaISectRegionClipRegionAction( *this );
    2875                 :          0 :     pClone->ResetRefCount();
    2876                 :          0 :     return pClone;
    2877                 :            : }
    2878                 :            : 
    2879                 :            : // ------------------------------------------------------------------------
    2880                 :            : 
    2881                 :          0 : void MetaISectRegionClipRegionAction::Move( long nHorzMove, long nVertMove )
    2882                 :            : {
    2883                 :          0 :     maRegion.Move( nHorzMove, nVertMove );
    2884                 :          0 : }
    2885                 :            : 
    2886                 :            : // ------------------------------------------------------------------------
    2887                 :            : 
    2888                 :          0 : void MetaISectRegionClipRegionAction::Scale( double fScaleX, double fScaleY )
    2889                 :            : {
    2890                 :          0 :     maRegion.Scale( fScaleX, fScaleY );
    2891                 :          0 : }
    2892                 :            : 
    2893                 :            : // ------------------------------------------------------------------------
    2894                 :            : 
    2895                 :          0 : sal_Bool MetaISectRegionClipRegionAction::Compare( const MetaAction& rMetaAction ) const
    2896                 :            : {
    2897                 :          0 :     return maRegion == ((MetaISectRegionClipRegionAction&)rMetaAction).maRegion;
    2898                 :            : }
    2899                 :            : 
    2900                 :            : // ------------------------------------------------------------------------
    2901                 :            : 
    2902                 :        438 : void MetaISectRegionClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2903                 :            : {
    2904 [ +  - ][ +  - ]:        438 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2905 [ +  - ][ +  - ]:        438 :     rOStm << maRegion;
    2906                 :        438 : }
    2907                 :            : 
    2908                 :            : // ------------------------------------------------------------------------
    2909                 :            : 
    2910                 :        178 : void MetaISectRegionClipRegionAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2911                 :            : {
    2912         [ +  - ]:        178 :     COMPAT( rIStm );
    2913 [ +  - ][ +  - ]:        178 :     rIStm >> maRegion;
    2914                 :        178 : }
    2915                 :            : 
    2916                 :            : // ========================================================================
    2917                 :            : 
    2918         [ #  # ]:          0 : IMPL_META_ACTION( MoveClipRegion, META_MOVECLIPREGION_ACTION )
    2919                 :            : 
    2920                 :            : // ------------------------------------------------------------------------
    2921                 :            : 
    2922                 :          0 : MetaMoveClipRegionAction::MetaMoveClipRegionAction( long nHorzMove, long nVertMove ) :
    2923                 :            :     MetaAction  ( META_MOVECLIPREGION_ACTION ),
    2924                 :            :     mnHorzMove  ( nHorzMove ),
    2925                 :          0 :     mnVertMove  ( nVertMove )
    2926                 :            : {
    2927                 :          0 : }
    2928                 :            : 
    2929                 :            : // ------------------------------------------------------------------------
    2930                 :            : 
    2931                 :          0 : void MetaMoveClipRegionAction::Execute( OutputDevice* pOut )
    2932                 :            : {
    2933                 :          0 :     pOut->MoveClipRegion( mnHorzMove, mnVertMove );
    2934                 :          0 : }
    2935                 :            : 
    2936                 :            : // ------------------------------------------------------------------------
    2937                 :            : 
    2938                 :          0 : MetaAction* MetaMoveClipRegionAction::Clone()
    2939                 :            : {
    2940         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaMoveClipRegionAction( *this );
    2941                 :          0 :     pClone->ResetRefCount();
    2942                 :          0 :     return pClone;
    2943                 :            : }
    2944                 :            : 
    2945                 :            : // ------------------------------------------------------------------------
    2946                 :            : 
    2947                 :          0 : void MetaMoveClipRegionAction::Scale( double fScaleX, double fScaleY )
    2948                 :            : {
    2949                 :          0 :     mnHorzMove = FRound( mnHorzMove * fScaleX );
    2950                 :          0 :     mnVertMove = FRound( mnVertMove * fScaleY );
    2951                 :          0 : }
    2952                 :            : 
    2953                 :            : // ------------------------------------------------------------------------
    2954                 :            : 
    2955                 :          0 : sal_Bool MetaMoveClipRegionAction::Compare( const MetaAction& rMetaAction ) const
    2956                 :            : {
    2957                 :            :     return ( mnHorzMove == ((MetaMoveClipRegionAction&)rMetaAction).mnHorzMove ) &&
    2958 [ #  # ][ #  # ]:          0 :            ( mnVertMove == ((MetaMoveClipRegionAction&)rMetaAction).mnVertMove );
    2959                 :            : }
    2960                 :            : 
    2961                 :            : // ------------------------------------------------------------------------
    2962                 :            : 
    2963                 :          0 : void MetaMoveClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    2964                 :            : {
    2965 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    2966                 :            :     //#fdo39428 SvStream no longer supports operator<<(long)
    2967 [ #  # ][ #  # ]:          0 :     rOStm << sal::static_int_cast<sal_Int32>(mnHorzMove) << sal::static_int_cast<sal_Int32>(mnVertMove);
                 [ #  # ]
    2968                 :          0 : }
    2969                 :            : 
    2970                 :            : // ------------------------------------------------------------------------
    2971                 :            : 
    2972                 :          0 : void MetaMoveClipRegionAction::Read( SvStream& rIStm, ImplMetaReadData* )
    2973                 :            : {
    2974         [ #  # ]:          0 :     COMPAT( rIStm );
    2975                 :            :     //#fdo39428 SvStream no longer supports operator>>(long&)
    2976                 :          0 :     sal_Int32 nTmpHM(0), nTmpVM(0);
    2977 [ #  # ][ #  # ]:          0 :     rIStm >> nTmpHM >> nTmpVM;
    2978                 :          0 :     mnHorzMove = nTmpHM;
    2979         [ #  # ]:          0 :     mnVertMove = nTmpVM;
    2980                 :          0 : }
    2981                 :            : 
    2982                 :            : // ========================================================================
    2983                 :            : 
    2984         [ -  + ]:     218903 : IMPL_META_ACTION( LineColor, META_LINECOLOR_ACTION )
    2985                 :            : 
    2986                 :            : // ------------------------------------------------------------------------
    2987                 :            : 
    2988                 :      79777 : MetaLineColorAction::MetaLineColorAction( const Color& rColor, sal_Bool bSet ) :
    2989                 :            :     MetaAction  ( META_LINECOLOR_ACTION ),
    2990                 :            :     maColor     ( rColor ),
    2991                 :      79777 :     mbSet       ( bSet )
    2992                 :            : {
    2993                 :      79777 : }
    2994                 :            : 
    2995                 :            : // ------------------------------------------------------------------------
    2996                 :            : 
    2997                 :      75149 : void MetaLineColorAction::Execute( OutputDevice* pOut )
    2998                 :            : {
    2999         [ +  + ]:      75149 :     if( mbSet )
    3000                 :      58158 :         pOut->SetLineColor( maColor );
    3001                 :            :     else
    3002                 :      16991 :         pOut->SetLineColor();
    3003                 :      75149 : }
    3004                 :            : 
    3005                 :            : // ------------------------------------------------------------------------
    3006                 :            : 
    3007                 :          0 : MetaAction* MetaLineColorAction::Clone()
    3008                 :            : {
    3009         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaLineColorAction( *this );
    3010                 :          0 :     pClone->ResetRefCount();
    3011                 :          0 :     return pClone;
    3012                 :            : }
    3013                 :            : 
    3014                 :            : // ------------------------------------------------------------------------
    3015                 :            : 
    3016                 :          0 : sal_Bool MetaLineColorAction::Compare( const MetaAction& rMetaAction ) const
    3017                 :            : {
    3018                 :          0 :     return ( maColor == ((MetaLineColorAction&)rMetaAction).maColor ) &&
    3019 [ #  # ][ #  # ]:          0 :            ( mbSet == ((MetaLineColorAction&)rMetaAction).mbSet );
    3020                 :            : }
    3021                 :            : 
    3022                 :            : // ------------------------------------------------------------------------
    3023                 :            : 
    3024                 :      45705 : void MetaLineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3025                 :            : {
    3026 [ +  - ][ +  - ]:      45705 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3027         [ +  - ]:      45705 :     maColor.Write( rOStm, sal_True );
    3028 [ +  - ][ +  - ]:      45705 :     rOStm << mbSet;
    3029                 :      45705 : }
    3030                 :            : 
    3031                 :            : // ------------------------------------------------------------------------
    3032                 :            : 
    3033                 :      19821 : void MetaLineColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3034                 :            : {
    3035         [ +  - ]:      19821 :     COMPAT( rIStm );
    3036         [ +  - ]:      19821 :     maColor.Read( rIStm, sal_True );
    3037 [ +  - ][ +  - ]:      19821 :     rIStm >> mbSet;
    3038                 :      19821 : }
    3039                 :            : 
    3040                 :            : // ========================================================================
    3041                 :            : 
    3042         [ -  + ]:     162089 : IMPL_META_ACTION( FillColor, META_FILLCOLOR_ACTION )
    3043                 :            : 
    3044                 :            : // ------------------------------------------------------------------------
    3045                 :            : 
    3046                 :      58369 : MetaFillColorAction::MetaFillColorAction( const Color& rColor, sal_Bool bSet ) :
    3047                 :            :     MetaAction  ( META_FILLCOLOR_ACTION ),
    3048                 :            :     maColor     ( rColor ),
    3049                 :      58369 :     mbSet       ( bSet )
    3050                 :            : {
    3051                 :      58369 : }
    3052                 :            : 
    3053                 :            : // ------------------------------------------------------------------------
    3054                 :            : 
    3055                 :      54079 : void MetaFillColorAction::Execute( OutputDevice* pOut )
    3056                 :            : {
    3057         [ +  + ]:      54079 :     if( mbSet )
    3058                 :      39800 :         pOut->SetFillColor( maColor );
    3059                 :            :     else
    3060                 :      14279 :         pOut->SetFillColor();
    3061                 :      54079 : }
    3062                 :            : 
    3063                 :            : // ------------------------------------------------------------------------
    3064                 :            : 
    3065                 :          0 : MetaAction* MetaFillColorAction::Clone()
    3066                 :            : {
    3067         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaFillColorAction( *this );
    3068                 :          0 :     pClone->ResetRefCount();
    3069                 :          0 :     return pClone;
    3070                 :            : }
    3071                 :            : 
    3072                 :            : // ------------------------------------------------------------------------
    3073                 :            : 
    3074                 :          0 : sal_Bool MetaFillColorAction::Compare( const MetaAction& rMetaAction ) const
    3075                 :            : {
    3076                 :          0 :     return ( maColor == ((MetaFillColorAction&)rMetaAction).maColor ) &&
    3077 [ #  # ][ #  # ]:          0 :            ( mbSet == ((MetaFillColorAction&)rMetaAction).mbSet );
    3078                 :            : }
    3079                 :            : 
    3080                 :            : // ------------------------------------------------------------------------
    3081                 :            : 
    3082                 :      33492 : void MetaFillColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3083                 :            : {
    3084 [ +  - ][ +  - ]:      33492 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3085         [ +  - ]:      33492 :     maColor.Write( rOStm, sal_True );
    3086 [ +  - ][ +  - ]:      33492 :     rOStm << mbSet;
    3087                 :      33492 : }
    3088                 :            : 
    3089                 :            : // ------------------------------------------------------------------------
    3090                 :            : 
    3091                 :      15155 : void MetaFillColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3092                 :            : {
    3093         [ +  - ]:      15155 :     COMPAT( rIStm );
    3094         [ +  - ]:      15155 :     maColor.Read( rIStm, sal_True );
    3095 [ +  - ][ +  - ]:      15155 :     rIStm >> mbSet;
    3096                 :      15155 : }
    3097                 :            : 
    3098                 :            : // ========================================================================
    3099                 :            : 
    3100         [ -  + ]:     378293 : IMPL_META_ACTION( TextColor, META_TEXTCOLOR_ACTION )
    3101                 :            : 
    3102                 :            : // ------------------------------------------------------------------------
    3103                 :            : 
    3104                 :      85057 : MetaTextColorAction::MetaTextColorAction( const Color& rColor ) :
    3105                 :            :     MetaAction  ( META_TEXTCOLOR_ACTION ),
    3106                 :      85057 :     maColor     ( rColor )
    3107                 :            : {
    3108                 :      85057 : }
    3109                 :            : 
    3110                 :            : // ------------------------------------------------------------------------
    3111                 :            : 
    3112                 :      22486 : void MetaTextColorAction::Execute( OutputDevice* pOut )
    3113                 :            : {
    3114                 :      22486 :     pOut->SetTextColor( maColor );
    3115                 :      22486 : }
    3116                 :            : 
    3117                 :            : // ------------------------------------------------------------------------
    3118                 :            : 
    3119                 :          0 : MetaAction* MetaTextColorAction::Clone()
    3120                 :            : {
    3121         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextColorAction( *this );
    3122                 :          0 :     pClone->ResetRefCount();
    3123                 :          0 :     return pClone;
    3124                 :            : }
    3125                 :            : 
    3126                 :            : // ------------------------------------------------------------------------
    3127                 :            : 
    3128                 :          0 : sal_Bool MetaTextColorAction::Compare( const MetaAction& rMetaAction ) const
    3129                 :            : {
    3130                 :          0 :     return maColor == ((MetaTextColorAction&)rMetaAction).maColor;
    3131                 :            : }
    3132                 :            : 
    3133                 :            : // ------------------------------------------------------------------------
    3134                 :            : 
    3135                 :      80387 : void MetaTextColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3136                 :            : {
    3137 [ +  - ][ +  - ]:      80387 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3138 [ +  - ][ +  - ]:      80387 :     maColor.Write( rOStm, sal_True );
    3139                 :      80387 : }
    3140                 :            : 
    3141                 :            : // ------------------------------------------------------------------------
    3142                 :            : 
    3143                 :      70099 : void MetaTextColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3144                 :            : {
    3145         [ +  - ]:      70099 :     COMPAT( rIStm );
    3146 [ +  - ][ +  - ]:      70099 :     maColor.Read( rIStm, sal_True );
    3147                 :      70099 : }
    3148                 :            : 
    3149                 :            : // ========================================================================
    3150                 :            : 
    3151         [ -  + ]:     396581 : IMPL_META_ACTION( TextFillColor, META_TEXTFILLCOLOR_ACTION )
    3152                 :            : 
    3153                 :            : // ------------------------------------------------------------------------
    3154                 :            : 
    3155                 :      95056 : MetaTextFillColorAction::MetaTextFillColorAction( const Color& rColor, sal_Bool bSet ) :
    3156                 :            :     MetaAction  ( META_TEXTFILLCOLOR_ACTION ),
    3157                 :            :     maColor     ( rColor ),
    3158                 :      95056 :     mbSet       ( bSet )
    3159                 :            : {
    3160                 :      95056 : }
    3161                 :            : 
    3162                 :            : // ------------------------------------------------------------------------
    3163                 :            : 
    3164                 :      33002 : void MetaTextFillColorAction::Execute( OutputDevice* pOut )
    3165                 :            : {
    3166         [ +  + ]:      33002 :     if( mbSet )
    3167                 :       2776 :         pOut->SetTextFillColor( maColor );
    3168                 :            :     else
    3169                 :      30226 :         pOut->SetTextFillColor();
    3170                 :      33002 : }
    3171                 :            : 
    3172                 :            : // ------------------------------------------------------------------------
    3173                 :            : 
    3174                 :          0 : MetaAction* MetaTextFillColorAction::Clone()
    3175                 :            : {
    3176         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextFillColorAction( *this );
    3177                 :          0 :     pClone->ResetRefCount();
    3178                 :          0 :     return pClone;
    3179                 :            : }
    3180                 :            : 
    3181                 :            : // ------------------------------------------------------------------------
    3182                 :            : 
    3183                 :          0 : sal_Bool MetaTextFillColorAction::Compare( const MetaAction& rMetaAction ) const
    3184                 :            : {
    3185                 :          0 :     return ( maColor == ((MetaTextFillColorAction&)rMetaAction).maColor ) &&
    3186 [ #  # ][ #  # ]:          0 :            ( mbSet == ((MetaTextFillColorAction&)rMetaAction).mbSet );
    3187                 :            : }
    3188                 :            : 
    3189                 :            : // ------------------------------------------------------------------------
    3190                 :            : 
    3191                 :      79846 : void MetaTextFillColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3192                 :            : {
    3193 [ +  - ][ +  - ]:      79846 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3194         [ +  - ]:      79846 :     maColor.Write( rOStm, sal_True );
    3195 [ +  - ][ +  - ]:      79846 :     rOStm << mbSet;
    3196                 :      79846 : }
    3197                 :            : 
    3198                 :            : // ------------------------------------------------------------------------
    3199                 :            : 
    3200                 :      69523 : void MetaTextFillColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3201                 :            : {
    3202         [ +  - ]:      69523 :     COMPAT( rIStm );
    3203         [ +  - ]:      69523 :     maColor.Read( rIStm, sal_True );
    3204 [ +  - ][ +  - ]:      69523 :     rIStm >> mbSet;
    3205                 :      69523 : }
    3206                 :            : 
    3207                 :            : // ========================================================================
    3208                 :            : 
    3209         [ -  + ]:      21524 : IMPL_META_ACTION( TextLineColor, META_TEXTLINECOLOR_ACTION )
    3210                 :            : 
    3211                 :            : // ------------------------------------------------------------------------
    3212                 :            : 
    3213                 :      10762 : MetaTextLineColorAction::MetaTextLineColorAction( const Color& rColor, sal_Bool bSet ) :
    3214                 :            :     MetaAction  ( META_TEXTLINECOLOR_ACTION ),
    3215                 :            :     maColor     ( rColor ),
    3216                 :      10762 :     mbSet       ( bSet )
    3217                 :            : {
    3218                 :      10762 : }
    3219                 :            : 
    3220                 :            : // ------------------------------------------------------------------------
    3221                 :            : 
    3222                 :      10762 : void MetaTextLineColorAction::Execute( OutputDevice* pOut )
    3223                 :            : {
    3224         [ -  + ]:      10762 :     if( mbSet )
    3225                 :          0 :         pOut->SetTextLineColor( maColor );
    3226                 :            :     else
    3227                 :      10762 :         pOut->SetTextLineColor();
    3228                 :      10762 : }
    3229                 :            : 
    3230                 :            : // ------------------------------------------------------------------------
    3231                 :            : 
    3232                 :          0 : MetaAction* MetaTextLineColorAction::Clone()
    3233                 :            : {
    3234         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextLineColorAction( *this );
    3235                 :          0 :     pClone->ResetRefCount();
    3236                 :          0 :     return pClone;
    3237                 :            : }
    3238                 :            : 
    3239                 :            : // ------------------------------------------------------------------------
    3240                 :            : 
    3241                 :          0 : sal_Bool MetaTextLineColorAction::Compare( const MetaAction& rMetaAction ) const
    3242                 :            : {
    3243                 :          0 :     return ( maColor == ((MetaTextLineColorAction&)rMetaAction).maColor ) &&
    3244 [ #  # ][ #  # ]:          0 :            ( mbSet == ((MetaTextLineColorAction&)rMetaAction).mbSet );
    3245                 :            : }
    3246                 :            : 
    3247                 :            : // ------------------------------------------------------------------------
    3248                 :            : 
    3249                 :          0 : void MetaTextLineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3250                 :            : {
    3251 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3252         [ #  # ]:          0 :     maColor.Write( rOStm, sal_True );
    3253 [ #  # ][ #  # ]:          0 :     rOStm << mbSet;
    3254                 :          0 : }
    3255                 :            : 
    3256                 :            : // ------------------------------------------------------------------------
    3257                 :            : 
    3258                 :          0 : void MetaTextLineColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3259                 :            : {
    3260         [ #  # ]:          0 :     COMPAT( rIStm );
    3261         [ #  # ]:          0 :     maColor.Read( rIStm, sal_True );
    3262 [ #  # ][ #  # ]:          0 :     rIStm >> mbSet;
    3263                 :          0 : }
    3264                 :            : 
    3265                 :            : // ========================================================================
    3266                 :            : 
    3267         [ -  + ]:      21524 : IMPL_META_ACTION( OverlineColor, META_OVERLINECOLOR_ACTION )
    3268                 :            : 
    3269                 :            : // ------------------------------------------------------------------------
    3270                 :            : 
    3271                 :      10762 : MetaOverlineColorAction::MetaOverlineColorAction( const Color& rColor, sal_Bool bSet ) :
    3272                 :            :     MetaAction  ( META_OVERLINECOLOR_ACTION ),
    3273                 :            :     maColor     ( rColor ),
    3274                 :      10762 :     mbSet       ( bSet )
    3275                 :            : {
    3276                 :      10762 : }
    3277                 :            : 
    3278                 :            : // ------------------------------------------------------------------------
    3279                 :            : 
    3280                 :      10762 : void MetaOverlineColorAction::Execute( OutputDevice* pOut )
    3281                 :            : {
    3282         [ -  + ]:      10762 :     if( mbSet )
    3283                 :          0 :         pOut->SetOverlineColor( maColor );
    3284                 :            :     else
    3285                 :      10762 :         pOut->SetOverlineColor();
    3286                 :      10762 : }
    3287                 :            : 
    3288                 :            : // ------------------------------------------------------------------------
    3289                 :            : 
    3290                 :          0 : MetaAction* MetaOverlineColorAction::Clone()
    3291                 :            : {
    3292         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaOverlineColorAction( *this );
    3293                 :          0 :     pClone->ResetRefCount();
    3294                 :          0 :     return pClone;
    3295                 :            : }
    3296                 :            : 
    3297                 :            : // ------------------------------------------------------------------------
    3298                 :            : 
    3299                 :          0 : sal_Bool MetaOverlineColorAction::Compare( const MetaAction& rMetaAction ) const
    3300                 :            : {
    3301                 :          0 :     return ( maColor == ((MetaOverlineColorAction&)rMetaAction).maColor ) &&
    3302 [ #  # ][ #  # ]:          0 :            ( mbSet == ((MetaOverlineColorAction&)rMetaAction).mbSet );
    3303                 :            : }
    3304                 :            : 
    3305                 :            : // ------------------------------------------------------------------------
    3306                 :            : 
    3307                 :          0 : void MetaOverlineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3308                 :            : {
    3309 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3310         [ #  # ]:          0 :     maColor.Write( rOStm, sal_True );
    3311 [ #  # ][ #  # ]:          0 :     rOStm << mbSet;
    3312                 :          0 : }
    3313                 :            : 
    3314                 :            : // ------------------------------------------------------------------------
    3315                 :            : 
    3316                 :          0 : void MetaOverlineColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3317                 :            : {
    3318         [ #  # ]:          0 :     COMPAT( rIStm );
    3319         [ #  # ]:          0 :     maColor.Read( rIStm, sal_True );
    3320 [ #  # ][ #  # ]:          0 :     rIStm >> mbSet;
    3321                 :          0 : }
    3322                 :            : 
    3323                 :            : // ========================================================================
    3324                 :            : 
    3325         [ -  + ]:     390719 : IMPL_META_ACTION( TextAlign, META_TEXTALIGN_ACTION )
    3326                 :            : 
    3327                 :            : // ------------------------------------------------------------------------
    3328                 :            : 
    3329                 :      92125 : MetaTextAlignAction::MetaTextAlignAction( TextAlign aAlign ) :
    3330                 :            :     MetaAction  ( META_TEXTALIGN_ACTION ),
    3331                 :      92125 :     maAlign     ( aAlign )
    3332                 :            : {
    3333                 :      92125 : }
    3334                 :            : 
    3335                 :            : // ------------------------------------------------------------------------
    3336                 :            : 
    3337                 :      30085 : void MetaTextAlignAction::Execute( OutputDevice* pOut )
    3338                 :            : {
    3339                 :      30085 :     pOut->SetTextAlign( maAlign );
    3340                 :      30085 : }
    3341                 :            : 
    3342                 :            : // ------------------------------------------------------------------------
    3343                 :            : 
    3344                 :          0 : MetaAction* MetaTextAlignAction::Clone()
    3345                 :            : {
    3346         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextAlignAction( *this );
    3347                 :          0 :     pClone->ResetRefCount();
    3348                 :          0 :     return pClone;
    3349                 :            : }
    3350                 :            : 
    3351                 :            : // ------------------------------------------------------------------------
    3352                 :            : 
    3353                 :          0 : sal_Bool MetaTextAlignAction::Compare( const MetaAction& rMetaAction ) const
    3354                 :            : {
    3355                 :          0 :     return maAlign == ((MetaTextAlignAction&)rMetaAction).maAlign;
    3356                 :            : }
    3357                 :            : 
    3358                 :            : // ------------------------------------------------------------------------
    3359                 :            : 
    3360                 :      79793 : void MetaTextAlignAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3361                 :            : {
    3362 [ +  - ][ +  - ]:      79793 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3363 [ +  - ][ +  - ]:      79793 :     rOStm << (sal_uInt16) maAlign;
    3364                 :      79793 : }
    3365                 :            : 
    3366                 :            : // ------------------------------------------------------------------------
    3367                 :            : 
    3368                 :      69523 : void MetaTextAlignAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3369                 :            : {
    3370                 :            :     sal_uInt16 nTmp16;
    3371                 :            : 
    3372         [ +  - ]:      69523 :     COMPAT( rIStm );
    3373 [ +  - ][ +  - ]:      69523 :     rIStm >> nTmp16; maAlign = (TextAlign) nTmp16;
    3374                 :      69523 : }
    3375                 :            : 
    3376                 :            : // ========================================================================
    3377                 :            : 
    3378 [ +  - ][ -  + ]:        844 : IMPL_META_ACTION( MapMode, META_MAPMODE_ACTION )
                 [ #  # ]
    3379                 :            : 
    3380                 :            : // ------------------------------------------------------------------------
    3381                 :            : 
    3382                 :        422 : MetaMapModeAction::MetaMapModeAction( const MapMode& rMapMode ) :
    3383                 :            :     MetaAction  ( META_MAPMODE_ACTION ),
    3384         [ +  - ]:        422 :     maMapMode   ( rMapMode )
    3385                 :            : {
    3386                 :        422 : }
    3387                 :            : 
    3388                 :            : // ------------------------------------------------------------------------
    3389                 :            : 
    3390                 :        401 : void MetaMapModeAction::Execute( OutputDevice* pOut )
    3391                 :            : {
    3392                 :        401 :     pOut->SetMapMode( maMapMode );
    3393                 :        401 : }
    3394                 :            : 
    3395                 :            : // ------------------------------------------------------------------------
    3396                 :            : 
    3397                 :          0 : MetaAction* MetaMapModeAction::Clone()
    3398                 :            : {
    3399         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaMapModeAction( *this );
    3400                 :          0 :     pClone->ResetRefCount();
    3401                 :          0 :     return pClone;
    3402                 :            : }
    3403                 :            : 
    3404                 :            : // ------------------------------------------------------------------------
    3405                 :            : 
    3406                 :          0 : void MetaMapModeAction::Scale( double fScaleX, double fScaleY )
    3407                 :            : {
    3408                 :          0 :     Point aPoint( maMapMode.GetOrigin() );
    3409                 :            : 
    3410                 :          0 :     ImplScalePoint( aPoint, fScaleX, fScaleY );
    3411         [ #  # ]:          0 :     maMapMode.SetOrigin( aPoint );
    3412                 :          0 : }
    3413                 :            : 
    3414                 :            : // ------------------------------------------------------------------------
    3415                 :            : 
    3416                 :          0 : sal_Bool MetaMapModeAction::Compare( const MetaAction& rMetaAction ) const
    3417                 :            : {
    3418                 :          0 :     return maMapMode == ((MetaMapModeAction&)rMetaAction).maMapMode;
    3419                 :            : }
    3420                 :            : 
    3421                 :            : // ------------------------------------------------------------------------
    3422                 :            : 
    3423                 :          0 : void MetaMapModeAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3424                 :            : {
    3425 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3426 [ #  # ][ #  # ]:          0 :     rOStm << maMapMode;
    3427                 :          0 : }
    3428                 :            : 
    3429                 :            : // ------------------------------------------------------------------------
    3430                 :            : 
    3431                 :          0 : void MetaMapModeAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3432                 :            : {
    3433         [ #  # ]:          0 :     COMPAT( rIStm );
    3434 [ #  # ][ #  # ]:          0 :     rIStm >> maMapMode;
    3435                 :          0 : }
    3436                 :            : 
    3437                 :            : // ========================================================================
    3438                 :            : 
    3439 [ +  - ][ -  + ]:     369177 : IMPL_META_ACTION( Font, META_FONT_ACTION )
                 [ +  - ]
    3440                 :            : 
    3441                 :            : // ------------------------------------------------------------------------
    3442                 :            : 
    3443                 :      81354 : MetaFontAction::MetaFontAction( const Font& rFont ) :
    3444                 :            :     MetaAction  ( META_FONT_ACTION ),
    3445         [ +  - ]:      81354 :     maFont      ( rFont )
    3446                 :            : {
    3447                 :            :     // #96876: because RTL_TEXTENCODING_SYMBOL is often set at the StarSymbol font,
    3448                 :            :     // we change the textencoding to RTL_TEXTENCODING_UNICODE here, which seems
    3449                 :            :     // to be the right way; changing the textencoding at other sources
    3450                 :            :     // is too dangerous at the moment
    3451 [ +  - ][ +  - ]:     188052 :     if( ( ( maFont.GetName().SearchAscii( "StarSymbol" ) != STRING_NOTFOUND )
         [ +  - ][ +  + ]
         [ -  + ][ -  + ]
    3452 [ +  - ][ +  - ]:      81354 :        || ( maFont.GetName().SearchAscii( "OpenSymbol" ) != STRING_NOTFOUND ) )
    3453         [ +  - ]:      25344 :      && ( maFont.GetCharSet() != RTL_TEXTENCODING_UNICODE ) )
    3454                 :            :     {
    3455         [ #  # ]:          0 :         maFont.SetCharSet( RTL_TEXTENCODING_UNICODE );
    3456                 :            :     }
    3457                 :      81354 : }
    3458                 :            : 
    3459                 :            : // ------------------------------------------------------------------------
    3460                 :            : 
    3461                 :      19323 : void MetaFontAction::Execute( OutputDevice* pOut )
    3462                 :            : {
    3463                 :      19323 :     pOut->SetFont( maFont );
    3464                 :      19323 : }
    3465                 :            : 
    3466                 :            : // ------------------------------------------------------------------------
    3467                 :            : 
    3468                 :          0 : MetaAction* MetaFontAction::Clone()
    3469                 :            : {
    3470         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaFontAction( *this );
    3471                 :          0 :     pClone->ResetRefCount();
    3472                 :          0 :     return pClone;
    3473                 :            : }
    3474                 :            : 
    3475                 :            : // ------------------------------------------------------------------------
    3476                 :            : 
    3477                 :          0 : void MetaFontAction::Scale( double fScaleX, double fScaleY )
    3478                 :            : {
    3479                 :            :     const Size aSize(
    3480         [ #  # ]:          0 :         FRound(maFont.GetSize().Width() * fabs(fScaleX)),
    3481         [ #  # ]:          0 :         FRound(maFont.GetSize().Height() * fabs(fScaleY)));
    3482         [ #  # ]:          0 :     maFont.SetSize( aSize );
    3483                 :          0 : }
    3484                 :            : 
    3485                 :            : // ------------------------------------------------------------------------
    3486                 :            : 
    3487                 :          0 : sal_Bool MetaFontAction::Compare( const MetaAction& rMetaAction ) const
    3488                 :            : {
    3489                 :          0 :     return maFont == ((MetaFontAction&)rMetaAction).maFont;
    3490                 :            : }
    3491                 :            : 
    3492                 :            : // ------------------------------------------------------------------------
    3493                 :            : 
    3494                 :      79775 : void MetaFontAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3495                 :            : {
    3496 [ +  - ][ +  - ]:      79775 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3497         [ +  - ]:      79775 :     rOStm << maFont;
    3498         [ +  - ]:      79775 :     pData->meActualCharSet = maFont.GetCharSet();
    3499         [ +  + ]:      79775 :     if ( pData->meActualCharSet == RTL_TEXTENCODING_DONTKNOW )
    3500 [ +  - ][ +  - ]:      79775 :         pData->meActualCharSet = osl_getThreadTextEncoding();
    3501                 :      79775 : }
    3502                 :            : 
    3503                 :            : // ------------------------------------------------------------------------
    3504                 :            : 
    3505                 :      69523 : void MetaFontAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
    3506                 :            : {
    3507         [ +  - ]:      69523 :     COMPAT( rIStm );
    3508         [ +  - ]:      69523 :     rIStm >> maFont;
    3509         [ +  - ]:      69523 :     pData->meActualCharSet = maFont.GetCharSet();
    3510         [ +  + ]:      69523 :     if ( pData->meActualCharSet == RTL_TEXTENCODING_DONTKNOW )
    3511 [ +  - ][ +  - ]:      69523 :         pData->meActualCharSet = osl_getThreadTextEncoding();
    3512                 :      69523 : }
    3513                 :            : 
    3514                 :            : // ========================================================================
    3515                 :            : 
    3516         [ -  + ]:     387895 : IMPL_META_ACTION( Push, META_PUSH_ACTION )
    3517                 :            : 
    3518                 :            : // ------------------------------------------------------------------------
    3519                 :            : 
    3520                 :      85820 : MetaPushAction::MetaPushAction( sal_uInt16 nFlags ) :
    3521                 :            :     MetaAction  ( META_PUSH_ACTION ),
    3522                 :      85820 :     mnFlags     ( nFlags )
    3523                 :            : {
    3524                 :      85820 : }
    3525                 :            : 
    3526                 :            : // ------------------------------------------------------------------------
    3527                 :            : 
    3528                 :      17680 : void MetaPushAction::Execute( OutputDevice* pOut )
    3529                 :            : {
    3530                 :      17680 :     pOut->Push( mnFlags );
    3531                 :      17680 : }
    3532                 :            : 
    3533                 :            : // ------------------------------------------------------------------------
    3534                 :            : 
    3535                 :          0 : MetaAction* MetaPushAction::Clone()
    3536                 :            : {
    3537         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPushAction( *this );
    3538                 :          0 :     pClone->ResetRefCount();
    3539                 :          0 :     return pClone;
    3540                 :            : }
    3541                 :            : 
    3542                 :            : // ------------------------------------------------------------------------
    3543                 :            : 
    3544                 :          0 : sal_Bool MetaPushAction::Compare( const MetaAction& rMetaAction ) const
    3545                 :            : {
    3546                 :          0 :     return mnFlags == ((MetaPushAction&)rMetaAction).mnFlags;
    3547                 :            : }
    3548                 :            : 
    3549                 :            : // ------------------------------------------------------------------------
    3550                 :            : 
    3551                 :      77941 : void MetaPushAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3552                 :            : {
    3553 [ +  - ][ +  - ]:      77941 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3554 [ +  - ][ +  - ]:      77941 :     rOStm << mnFlags;
    3555                 :      77941 : }
    3556                 :            : 
    3557                 :            : // ------------------------------------------------------------------------
    3558                 :            : 
    3559                 :      72843 : void MetaPushAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3560                 :            : {
    3561         [ +  - ]:      72843 :     COMPAT( rIStm );
    3562 [ +  - ][ +  - ]:      72843 :     rIStm >> mnFlags;
    3563                 :      72843 : }
    3564                 :            : 
    3565                 :            : // ========================================================================
    3566                 :            : 
    3567         [ -  + ]:     473715 : IMPL_META_ACTION( Pop, META_POP_ACTION )
    3568                 :            : 
    3569                 :            : // ------------------------------------------------------------------------
    3570                 :            : 
    3571                 :      17680 : void MetaPopAction::Execute( OutputDevice* pOut )
    3572                 :            : {
    3573                 :      17680 :     pOut->Pop();
    3574                 :      17680 : }
    3575                 :            : 
    3576                 :            : // ------------------------------------------------------------------------
    3577                 :            : 
    3578                 :          0 : MetaAction* MetaPopAction::Clone()
    3579                 :            : {
    3580         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaPopAction( *this );
    3581                 :          0 :     pClone->ResetRefCount();
    3582                 :          0 :     return pClone;
    3583                 :            : }
    3584                 :            : 
    3585                 :            : // ------------------------------------------------------------------------
    3586                 :            : 
    3587                 :      77941 : void MetaPopAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3588                 :            : {
    3589 [ +  - ][ +  - ]:      77941 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
                 [ +  - ]
    3590                 :      77941 : }
    3591                 :            : 
    3592                 :            : // ------------------------------------------------------------------------
    3593                 :            : 
    3594                 :      72843 : void MetaPopAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3595                 :            : {
    3596 [ +  - ][ +  - ]:      72843 :     COMPAT( rIStm );
    3597                 :      72843 : }
    3598                 :            : 
    3599                 :            : // ========================================================================
    3600                 :            : 
    3601         [ -  + ]:      22734 : IMPL_META_ACTION( RasterOp, META_RASTEROP_ACTION )
    3602                 :            : 
    3603                 :            : // ------------------------------------------------------------------------
    3604                 :            : 
    3605                 :      11367 : MetaRasterOpAction::MetaRasterOpAction( RasterOp eRasterOp ) :
    3606                 :            :     MetaAction  ( META_RASTEROP_ACTION ),
    3607                 :      11367 :     meRasterOp  ( eRasterOp )
    3608                 :            : {
    3609                 :      11367 : }
    3610                 :            : 
    3611                 :            : // ------------------------------------------------------------------------
    3612                 :            : 
    3613                 :      10762 : void MetaRasterOpAction::Execute( OutputDevice* pOut )
    3614                 :            : {
    3615                 :      10762 :     pOut->SetRasterOp( meRasterOp );
    3616                 :      10762 : }
    3617                 :            : 
    3618                 :            : // ------------------------------------------------------------------------
    3619                 :            : 
    3620                 :          0 : MetaAction* MetaRasterOpAction::Clone()
    3621                 :            : {
    3622         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaRasterOpAction( *this );
    3623                 :          0 :     pClone->ResetRefCount();
    3624                 :          0 :     return pClone;
    3625                 :            : }
    3626                 :            : 
    3627                 :            : // ------------------------------------------------------------------------
    3628                 :            : 
    3629                 :          0 : sal_Bool MetaRasterOpAction::Compare( const MetaAction& rMetaAction ) const
    3630                 :            : {
    3631                 :          0 :     return meRasterOp == ((MetaRasterOpAction&)rMetaAction).meRasterOp;
    3632                 :            : }
    3633                 :            : 
    3634                 :            : // ------------------------------------------------------------------------
    3635                 :            : 
    3636                 :       1421 : void MetaRasterOpAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3637                 :            : {
    3638 [ +  - ][ +  - ]:       1421 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3639 [ +  - ][ +  - ]:       1421 :     rOStm << (sal_uInt16) meRasterOp;
    3640                 :       1421 : }
    3641                 :            : 
    3642                 :            : // ------------------------------------------------------------------------
    3643                 :            : 
    3644                 :          0 : void MetaRasterOpAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3645                 :            : {
    3646                 :            :     sal_uInt16 nTmp16;
    3647                 :            : 
    3648         [ #  # ]:          0 :     COMPAT( rIStm );
    3649 [ #  # ][ #  # ]:          0 :     rIStm >> nTmp16; meRasterOp = (RasterOp) nTmp16;
    3650                 :          0 : }
    3651                 :            : 
    3652                 :            : // ========================================================================
    3653                 :            : 
    3654 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( Transparent, META_TRANSPARENT_ACTION )
                 [ #  # ]
    3655                 :            : 
    3656                 :            : // ------------------------------------------------------------------------
    3657                 :            : 
    3658                 :          0 : MetaTransparentAction::MetaTransparentAction( const PolyPolygon& rPolyPoly, sal_uInt16 nTransPercent ) :
    3659                 :            :     MetaAction      ( META_TRANSPARENT_ACTION ),
    3660                 :            :     maPolyPoly      ( rPolyPoly ),
    3661         [ #  # ]:          0 :     mnTransPercent  ( nTransPercent )
    3662                 :            : {
    3663                 :          0 : }
    3664                 :            : 
    3665                 :            : // ------------------------------------------------------------------------
    3666                 :            : 
    3667                 :          0 : void MetaTransparentAction::Execute( OutputDevice* pOut )
    3668                 :            : {
    3669                 :          0 :     pOut->DrawTransparent( maPolyPoly, mnTransPercent );
    3670                 :          0 : }
    3671                 :            : 
    3672                 :            : // ------------------------------------------------------------------------
    3673                 :            : 
    3674                 :          0 : MetaAction* MetaTransparentAction::Clone()
    3675                 :            : {
    3676         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTransparentAction( *this );
    3677                 :          0 :     pClone->ResetRefCount();
    3678                 :          0 :     return pClone;
    3679                 :            : }
    3680                 :            : 
    3681                 :            : // ------------------------------------------------------------------------
    3682                 :            : 
    3683                 :          0 : void MetaTransparentAction::Move( long nHorzMove, long nVertMove )
    3684                 :            : {
    3685                 :          0 :     maPolyPoly.Move( nHorzMove, nVertMove );
    3686                 :          0 : }
    3687                 :            : 
    3688                 :            : // ------------------------------------------------------------------------
    3689                 :            : 
    3690                 :          0 : void MetaTransparentAction::Scale( double fScaleX, double fScaleY )
    3691                 :            : {
    3692         [ #  # ]:          0 :     for( sal_uInt16 i = 0, nCount = maPolyPoly.Count(); i < nCount; i++ )
    3693                 :          0 :         ImplScalePoly( maPolyPoly[ i ], fScaleX, fScaleY );
    3694                 :          0 : }
    3695                 :            : 
    3696                 :            : // ------------------------------------------------------------------------
    3697                 :            : 
    3698                 :          0 : sal_Bool MetaTransparentAction::Compare( const MetaAction& rMetaAction ) const
    3699                 :            : {
    3700                 :          0 :     return ( maPolyPoly == ((MetaTransparentAction&)rMetaAction).maPolyPoly ) &&
    3701 [ #  # ][ #  # ]:          0 :            ( mnTransPercent == ((MetaTransparentAction&)rMetaAction).mnTransPercent );
    3702                 :            : }
    3703                 :            : 
    3704                 :            : // ------------------------------------------------------------------------
    3705                 :            : 
    3706                 :          0 : void MetaTransparentAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3707                 :            : {
    3708 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3709                 :            : 
    3710                 :            :     // #i105373# The PolyPolygon in this action may be a curve; this
    3711                 :            :     // was ignored until now what is an error. To make older office
    3712                 :            :     // versions work with MetaFiles, i opt for applying AdaptiveSubdivide
    3713                 :            :     // to the PolyPoylgon.
    3714                 :            :     // The alternative would be to really write the curve information
    3715                 :            :     // like in MetaPolyPolygonAction::Write (where someone extended it
    3716                 :            :     // correctly, but not here :-( ).
    3717                 :            :     // The golden solution would be to combine both, but i think it's
    3718                 :            :     // not necessary; a good subdivision will be sufficient.
    3719         [ #  # ]:          0 :     PolyPolygon aNoCurvePolyPolygon;
    3720         [ #  # ]:          0 :     maPolyPoly.AdaptiveSubdivide(aNoCurvePolyPolygon);
    3721                 :            : 
    3722         [ #  # ]:          0 :     rOStm << aNoCurvePolyPolygon;
    3723 [ #  # ][ #  # ]:          0 :     rOStm << mnTransPercent;
                 [ #  # ]
    3724                 :          0 : }
    3725                 :            : 
    3726                 :            : // ------------------------------------------------------------------------
    3727                 :            : 
    3728                 :          0 : void MetaTransparentAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3729                 :            : {
    3730         [ #  # ]:          0 :     COMPAT( rIStm );
    3731         [ #  # ]:          0 :     rIStm >> maPolyPoly;
    3732 [ #  # ][ #  # ]:          0 :     rIStm >> mnTransPercent;
    3733                 :          0 : }
    3734                 :            : 
    3735                 :            : // ========================================================================
    3736                 :            : 
    3737 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( FloatTransparent, META_FLOATTRANSPARENT_ACTION )
         [ #  # ][ #  # ]
                 [ #  # ]
    3738                 :            : 
    3739                 :            : // ------------------------------------------------------------------------
    3740                 :            : 
    3741                 :          0 : MetaFloatTransparentAction::MetaFloatTransparentAction( const GDIMetaFile& rMtf, const Point& rPos,
    3742                 :            :                                                         const Size& rSize, const Gradient& rGradient ) :
    3743                 :            :     MetaAction      ( META_FLOATTRANSPARENT_ACTION ),
    3744                 :            :     maMtf           ( rMtf ),
    3745                 :            :     maPoint         ( rPos ),
    3746                 :            :     maSize          ( rSize ),
    3747 [ #  # ][ #  # ]:          0 :     maGradient      ( rGradient )
    3748                 :            : {
    3749                 :          0 : }
    3750                 :            : 
    3751                 :            : // ------------------------------------------------------------------------
    3752                 :            : 
    3753                 :          0 : void MetaFloatTransparentAction::Execute( OutputDevice* pOut )
    3754                 :            : {
    3755                 :          0 :     pOut->DrawTransparent( maMtf, maPoint, maSize, maGradient );
    3756                 :          0 : }
    3757                 :            : 
    3758                 :            : // ------------------------------------------------------------------------
    3759                 :            : 
    3760                 :          0 : MetaAction* MetaFloatTransparentAction::Clone()
    3761                 :            : {
    3762         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaFloatTransparentAction( *this );
    3763                 :          0 :     pClone->ResetRefCount();
    3764                 :          0 :     return pClone;
    3765                 :            : }
    3766                 :            : 
    3767                 :            : // ------------------------------------------------------------------------
    3768                 :            : 
    3769                 :          0 : void MetaFloatTransparentAction::Move( long nHorzMove, long nVertMove )
    3770                 :            : {
    3771                 :          0 :     maPoint.Move( nHorzMove, nVertMove );
    3772                 :          0 : }
    3773                 :            : 
    3774                 :            : // ------------------------------------------------------------------------
    3775                 :            : 
    3776                 :          0 : void MetaFloatTransparentAction::Scale( double fScaleX, double fScaleY )
    3777                 :            : {
    3778         [ #  # ]:          0 :     Rectangle aRectangle(maPoint, maSize);
    3779         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    3780                 :          0 :     maPoint = aRectangle.TopLeft();
    3781         [ #  # ]:          0 :     maSize = aRectangle.GetSize();
    3782                 :          0 : }
    3783                 :            : 
    3784                 :            : // ------------------------------------------------------------------------
    3785                 :            : 
    3786                 :          0 : sal_Bool MetaFloatTransparentAction::Compare( const MetaAction& rMetaAction ) const
    3787                 :            : {
    3788                 :          0 :     return ( maMtf == ((MetaFloatTransparentAction&)rMetaAction).maMtf ) &&
    3789                 :          0 :            ( maPoint == ((MetaFloatTransparentAction&)rMetaAction).maPoint ) &&
    3790                 :          0 :            ( maSize == ((MetaFloatTransparentAction&)rMetaAction).maSize ) &&
    3791 [ #  # ][ #  #  :          0 :            ( maGradient == ((MetaFloatTransparentAction&)rMetaAction).maGradient );
             #  #  #  # ]
    3792                 :            : }
    3793                 :            : 
    3794                 :            : // ------------------------------------------------------------------------
    3795                 :            : 
    3796                 :          0 : void MetaFloatTransparentAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3797                 :            : {
    3798 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3799                 :            : 
    3800         [ #  # ]:          0 :     maMtf.Write( rOStm );
    3801 [ #  # ][ #  # ]:          0 :     rOStm << maPoint << maSize << maGradient;
         [ #  # ][ #  # ]
    3802                 :          0 : }
    3803                 :            : 
    3804                 :            : // ------------------------------------------------------------------------
    3805                 :            : 
    3806                 :          0 : void MetaFloatTransparentAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3807                 :            : {
    3808         [ #  # ]:          0 :     COMPAT( rIStm );
    3809 [ #  # ][ #  # ]:          0 :     rIStm >> maMtf >> maPoint >> maSize >> maGradient;
         [ #  # ][ #  # ]
                 [ #  # ]
    3810                 :          0 : }
    3811                 :            : 
    3812                 :            : // ========================================================================
    3813                 :            : 
    3814 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( EPS, META_EPS_ACTION )
         [ #  # ][ #  # ]
                 [ #  # ]
    3815                 :            : 
    3816                 :            : // ------------------------------------------------------------------------
    3817                 :            : 
    3818                 :          0 : MetaEPSAction::MetaEPSAction( const Point& rPoint, const Size& rSize,
    3819                 :            :                               const GfxLink& rGfxLink, const GDIMetaFile& rSubst ) :
    3820                 :            :     MetaAction  ( META_EPS_ACTION ),
    3821                 :            :     maGfxLink   ( rGfxLink ),
    3822                 :            :     maSubst     ( rSubst ),
    3823                 :            :     maPoint     ( rPoint ),
    3824 [ #  # ][ #  # ]:          0 :     maSize      ( rSize )
    3825                 :            : {
    3826                 :          0 : }
    3827                 :            : 
    3828                 :            : // ------------------------------------------------------------------------
    3829                 :            : 
    3830                 :          0 : void MetaEPSAction::Execute( OutputDevice* pOut )
    3831                 :            : {
    3832                 :          0 :     pOut->DrawEPS( maPoint, maSize, maGfxLink, &maSubst );
    3833                 :          0 : }
    3834                 :            : 
    3835                 :            : // ------------------------------------------------------------------------
    3836                 :            : 
    3837                 :          0 : MetaAction* MetaEPSAction::Clone()
    3838                 :            : {
    3839         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaEPSAction( *this );
    3840                 :          0 :     pClone->ResetRefCount();
    3841                 :          0 :     return pClone;
    3842                 :            : }
    3843                 :            : 
    3844                 :            : // ------------------------------------------------------------------------
    3845                 :            : 
    3846                 :          0 : void MetaEPSAction::Move( long nHorzMove, long nVertMove )
    3847                 :            : {
    3848                 :          0 :     maPoint.Move( nHorzMove, nVertMove );
    3849                 :          0 : }
    3850                 :            : 
    3851                 :            : // ------------------------------------------------------------------------
    3852                 :            : 
    3853                 :          0 : void MetaEPSAction::Scale( double fScaleX, double fScaleY )
    3854                 :            : {
    3855         [ #  # ]:          0 :     Rectangle aRectangle(maPoint, maSize);
    3856         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    3857                 :          0 :     maPoint = aRectangle.TopLeft();
    3858         [ #  # ]:          0 :     maSize = aRectangle.GetSize();
    3859                 :          0 : }
    3860                 :            : 
    3861                 :            : // ------------------------------------------------------------------------
    3862                 :            : 
    3863                 :          0 : sal_Bool MetaEPSAction::Compare( const MetaAction& rMetaAction ) const
    3864                 :            : {
    3865                 :          0 :     return ( maGfxLink.IsEqual(((MetaEPSAction&)rMetaAction).maGfxLink )) &&
    3866                 :          0 :            ( maSubst == ((MetaEPSAction&)rMetaAction).maSubst ) &&
    3867                 :          0 :            ( maPoint == ((MetaEPSAction&)rMetaAction).maPoint ) &&
    3868 [ #  # ][ #  #  :          0 :            ( maSize == ((MetaEPSAction&)rMetaAction).maSize );
             #  #  #  # ]
    3869                 :            : }
    3870                 :            : 
    3871                 :            : // ------------------------------------------------------------------------
    3872                 :            : 
    3873                 :          0 : void MetaEPSAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3874                 :            : {
    3875 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3876         [ #  # ]:          0 :     rOStm << maGfxLink;
    3877         [ #  # ]:          0 :     rOStm << maPoint;
    3878         [ #  # ]:          0 :     rOStm << maSize;
    3879 [ #  # ][ #  # ]:          0 :     maSubst.Write( rOStm );
    3880                 :          0 : }
    3881                 :            : 
    3882                 :            : // ------------------------------------------------------------------------
    3883                 :            : 
    3884                 :          0 : void MetaEPSAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3885                 :            : {
    3886         [ #  # ]:          0 :     COMPAT( rIStm );
    3887         [ #  # ]:          0 :     rIStm >> maGfxLink;
    3888         [ #  # ]:          0 :     rIStm >> maPoint;
    3889         [ #  # ]:          0 :     rIStm >> maSize;
    3890 [ #  # ][ #  # ]:          0 :     rIStm >> maSubst;
    3891                 :          0 : }
    3892                 :            : 
    3893                 :            : // ========================================================================
    3894                 :            : 
    3895         [ -  + ]:      21524 : IMPL_META_ACTION( RefPoint, META_REFPOINT_ACTION )
    3896                 :            : 
    3897                 :            : // ------------------------------------------------------------------------
    3898                 :            : 
    3899                 :      10762 : MetaRefPointAction::MetaRefPointAction( const Point& rRefPoint, sal_Bool bSet ) :
    3900                 :            :     MetaAction  ( META_REFPOINT_ACTION ),
    3901                 :            :     maRefPoint  ( rRefPoint ),
    3902                 :      10762 :     mbSet       ( bSet )
    3903                 :            : {
    3904                 :      10762 : }
    3905                 :            : 
    3906                 :            : // ------------------------------------------------------------------------
    3907                 :            : 
    3908                 :      10762 : void MetaRefPointAction::Execute( OutputDevice* pOut )
    3909                 :            : {
    3910         [ -  + ]:      10762 :     if( mbSet )
    3911                 :          0 :         pOut->SetRefPoint( maRefPoint );
    3912                 :            :     else
    3913                 :      10762 :         pOut->SetRefPoint();
    3914                 :      10762 : }
    3915                 :            : 
    3916                 :            : // ------------------------------------------------------------------------
    3917                 :            : 
    3918                 :          0 : MetaAction* MetaRefPointAction::Clone()
    3919                 :            : {
    3920         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaRefPointAction( *this );
    3921                 :          0 :     pClone->ResetRefCount();
    3922                 :          0 :     return pClone;
    3923                 :            : }
    3924                 :            : 
    3925                 :            : // ------------------------------------------------------------------------
    3926                 :            : 
    3927                 :          0 : sal_Bool MetaRefPointAction::Compare( const MetaAction& rMetaAction ) const
    3928                 :            : {
    3929                 :          0 :     return ( maRefPoint == ((MetaRefPointAction&)rMetaAction).maRefPoint ) &&
    3930 [ #  # ][ #  # ]:          0 :            ( mbSet == ((MetaRefPointAction&)rMetaAction).mbSet );
    3931                 :            : }
    3932                 :            : 
    3933                 :            : // ------------------------------------------------------------------------
    3934                 :            : 
    3935                 :          0 : void MetaRefPointAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    3936                 :            : {
    3937 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    3938 [ #  # ][ #  # ]:          0 :     rOStm << maRefPoint << mbSet;
                 [ #  # ]
    3939                 :          0 : }
    3940                 :            : 
    3941                 :            : // ------------------------------------------------------------------------
    3942                 :            : 
    3943                 :          0 : void MetaRefPointAction::Read( SvStream& rIStm, ImplMetaReadData* )
    3944                 :            : {
    3945         [ #  # ]:          0 :     COMPAT( rIStm );
    3946 [ #  # ][ #  # ]:          0 :     rIStm >> maRefPoint >> mbSet;
                 [ #  # ]
    3947                 :          0 : }
    3948                 :            : 
    3949                 :            : // ========================================================================
    3950                 :            : 
    3951                 :      60014 : MetaCommentAction::MetaCommentAction( sal_Int32 nValue ) :
    3952                 :            :     MetaAction  ( META_COMMENT_ACTION ),
    3953                 :      60014 :     mnValue     ( nValue )
    3954                 :            : {
    3955         [ +  - ]:      60014 :     ImplInitDynamicData( NULL, 0UL );
    3956                 :      60014 : }
    3957                 :            : 
    3958                 :            : // ------------------------------------------------------------------------
    3959                 :            : 
    3960                 :          0 : MetaCommentAction::MetaCommentAction( const MetaCommentAction& rAct ) :
    3961                 :            :     MetaAction  ( META_COMMENT_ACTION ),
    3962                 :            :     maComment   ( rAct.maComment ),
    3963                 :          0 :     mnValue     ( rAct.mnValue )
    3964                 :            : {
    3965         [ #  # ]:          0 :     ImplInitDynamicData( rAct.mpData, rAct.mnDataSize );
    3966                 :          0 : }
    3967                 :            : 
    3968                 :            : // ------------------------------------------------------------------------
    3969                 :            : 
    3970                 :      61573 : MetaCommentAction::MetaCommentAction( const rtl::OString& rComment, sal_Int32 nValue, const sal_uInt8* pData, sal_uInt32 nDataSize ) :
    3971                 :            :     MetaAction  ( META_COMMENT_ACTION ),
    3972                 :            :     maComment   ( rComment ),
    3973                 :      61573 :     mnValue     ( nValue )
    3974                 :            : {
    3975         [ +  - ]:      61573 :     ImplInitDynamicData( pData, nDataSize );
    3976                 :      61573 : }
    3977                 :            : 
    3978                 :            : // ------------------------------------------------------------------------
    3979                 :            : 
    3980                 :     121587 : MetaCommentAction::~MetaCommentAction()
    3981                 :            : {
    3982         [ +  + ]:     121587 :     if ( mpData )
    3983         [ +  - ]:      11994 :         delete[] mpData;
    3984         [ -  + ]:     243174 : }
    3985                 :            : 
    3986                 :            : // ------------------------------------------------------------------------
    3987                 :            : 
    3988                 :     121587 : void MetaCommentAction::ImplInitDynamicData( const sal_uInt8* pData, sal_uInt32 nDataSize )
    3989                 :            : {
    3990 [ +  + ][ +  - ]:     121587 :     if ( nDataSize && pData )
    3991                 :            :     {
    3992                 :       6140 :         mnDataSize = nDataSize, mpData = new sal_uInt8[ mnDataSize ];
    3993                 :       6140 :         memcpy( mpData, pData, mnDataSize );
    3994                 :            :     }
    3995                 :            :     else
    3996                 :            :     {
    3997                 :     115447 :         mnDataSize = 0;
    3998                 :     115447 :         mpData = NULL;
    3999                 :            :     }
    4000                 :     121587 : }
    4001                 :            : 
    4002                 :            : // ------------------------------------------------------------------------
    4003                 :            : 
    4004                 :       6540 : void MetaCommentAction::Execute( OutputDevice* pOut )
    4005                 :            : {
    4006         [ -  + ]:       6540 :     if ( pOut->GetConnectMetaFile() )
    4007                 :            :     {
    4008                 :          0 :         Duplicate();
    4009                 :          0 :         pOut->GetConnectMetaFile()->AddAction( this );
    4010                 :            :     }
    4011                 :       6540 : }
    4012                 :            : 
    4013                 :            : // ------------------------------------------------------------------------
    4014                 :            : 
    4015                 :          0 : MetaAction* MetaCommentAction::Clone()
    4016                 :            : {
    4017         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaCommentAction( *this );
    4018                 :          0 :     pClone->ResetRefCount();
    4019                 :          0 :     return pClone;
    4020                 :            : }
    4021                 :            : 
    4022                 :          0 : void MetaCommentAction::Move( long nXMove, long nYMove )
    4023                 :            : {
    4024 [ #  # ][ #  # ]:          0 :     if ( nXMove || nYMove )
    4025                 :            :     {
    4026 [ #  # ][ #  # ]:          0 :         if ( mnDataSize && mpData )
    4027                 :            :         {
    4028                 :          0 :             sal_Bool bPathStroke = maComment.equalsL(RTL_CONSTASCII_STRINGPARAM("XPATHSTROKE_SEQ_BEGIN"));
    4029 [ #  # ][ #  # ]:          0 :             if ( bPathStroke || maComment.equalsL(RTL_CONSTASCII_STRINGPARAM("XPATHFILL_SEQ_BEGIN")) )
                 [ #  # ]
    4030                 :            :             {
    4031         [ #  # ]:          0 :                 SvMemoryStream  aMemStm( (void*)mpData, mnDataSize, STREAM_READ );
    4032         [ #  # ]:          0 :                 SvMemoryStream  aDest;
    4033         [ #  # ]:          0 :                 if ( bPathStroke )
    4034                 :            :                 {
    4035         [ #  # ]:          0 :                     SvtGraphicStroke aStroke;
    4036         [ #  # ]:          0 :                     aMemStm >> aStroke;
    4037         [ #  # ]:          0 :                     Polygon aPath;
    4038         [ #  # ]:          0 :                     aStroke.getPath( aPath );
    4039         [ #  # ]:          0 :                     aPath.Move( nXMove, nYMove );
    4040         [ #  # ]:          0 :                     aStroke.setPath( aPath );
    4041 [ #  # ][ #  # ]:          0 :                     aDest << aStroke;
                 [ #  # ]
    4042                 :            :                 }
    4043                 :            :                 else
    4044                 :            :                 {
    4045         [ #  # ]:          0 :                     SvtGraphicFill aFill;
    4046         [ #  # ]:          0 :                     aMemStm >> aFill;
    4047         [ #  # ]:          0 :                     PolyPolygon aPath;
    4048         [ #  # ]:          0 :                     aFill.getPath( aPath );
    4049         [ #  # ]:          0 :                     aPath.Move( nXMove, nYMove );
    4050         [ #  # ]:          0 :                     aFill.setPath( aPath );
    4051 [ #  # ][ #  # ]:          0 :                     aDest << aFill;
                 [ #  # ]
    4052                 :            :                 }
    4053         [ #  # ]:          0 :                 delete[] mpData;
    4054 [ #  # ][ #  # ]:          0 :                 ImplInitDynamicData( static_cast<const sal_uInt8*>( aDest.GetData() ), aDest.Tell() );
         [ #  # ][ #  # ]
    4055                 :            :             }
    4056                 :            :         }
    4057                 :            :     }
    4058                 :          0 : }
    4059                 :            : 
    4060                 :            : // ------------------------------------------------------------------------
    4061                 :            : // SJ: 25.07.06 #i56656# we are not able to mirrorcertain kind of
    4062                 :            : // comments properly, especially the XPATHSTROKE and XPATHFILL lead to
    4063                 :            : // problems, so it is better to remove these comments when mirroring
    4064                 :            : // FIXME: fake comment to apply the next hunk in the right location
    4065                 :          0 : void MetaCommentAction::Scale( double fXScale, double fYScale )
    4066                 :            : {
    4067 [ #  # ][ #  # ]:          0 :     if ( ( fXScale != 1.0 ) || ( fYScale != 1.0 ) )
    4068                 :            :     {
    4069 [ #  # ][ #  # ]:          0 :         if ( mnDataSize && mpData )
    4070                 :            :         {
    4071                 :          0 :             sal_Bool bPathStroke = maComment.equalsL(RTL_CONSTASCII_STRINGPARAM("XPATHSTROKE_SEQ_BEGIN"));
    4072 [ #  # ][ #  # ]:          0 :             if ( bPathStroke || maComment.equalsL(RTL_CONSTASCII_STRINGPARAM("XPATHFILL_SEQ_BEGIN")) )
                 [ #  # ]
    4073                 :            :             {
    4074         [ #  # ]:          0 :                 SvMemoryStream  aMemStm( (void*)mpData, mnDataSize, STREAM_READ );
    4075         [ #  # ]:          0 :                 SvMemoryStream  aDest;
    4076         [ #  # ]:          0 :                 if ( bPathStroke )
    4077                 :            :                 {
    4078         [ #  # ]:          0 :                     SvtGraphicStroke aStroke;
    4079         [ #  # ]:          0 :                     aMemStm >> aStroke;
    4080         [ #  # ]:          0 :                     Polygon aPath;
    4081         [ #  # ]:          0 :                     aStroke.getPath( aPath );
    4082         [ #  # ]:          0 :                     aPath.Scale( fXScale, fYScale );
    4083         [ #  # ]:          0 :                     aStroke.setPath( aPath );
    4084 [ #  # ][ #  # ]:          0 :                     aDest << aStroke;
                 [ #  # ]
    4085                 :            :                 }
    4086                 :            :                 else
    4087                 :            :                 {
    4088         [ #  # ]:          0 :                     SvtGraphicFill aFill;
    4089         [ #  # ]:          0 :                     aMemStm >> aFill;
    4090         [ #  # ]:          0 :                     PolyPolygon aPath;
    4091         [ #  # ]:          0 :                     aFill.getPath( aPath );
    4092         [ #  # ]:          0 :                     aPath.Scale( fXScale, fYScale );
    4093         [ #  # ]:          0 :                     aFill.setPath( aPath );
    4094 [ #  # ][ #  # ]:          0 :                     aDest << aFill;
                 [ #  # ]
    4095                 :            :                 }
    4096         [ #  # ]:          0 :                 delete[] mpData;
    4097 [ #  # ][ #  # ]:          0 :                 ImplInitDynamicData( static_cast<const sal_uInt8*>( aDest.GetData() ), aDest.Tell() );
         [ #  # ][ #  # ]
    4098         [ #  # ]:          0 :             } else if( maComment.equalsL(RTL_CONSTASCII_STRINGPARAM("EMF_PLUS_HEADER_INFO")) ){
    4099         [ #  # ]:          0 :                 SvMemoryStream  aMemStm( (void*)mpData, mnDataSize, STREAM_READ );
    4100         [ #  # ]:          0 :                 SvMemoryStream  aDest;
    4101                 :            : 
    4102                 :            :                 sal_Int32 nLeft, nRight, nTop, nBottom;
    4103                 :            :                 sal_Int32 nPixX, nPixY, nMillX, nMillY;
    4104                 :            :                 float m11, m12, m21, m22, mdx, mdy;
    4105                 :            : 
    4106                 :            :                 // read data
    4107 [ #  # ][ #  # ]:          0 :                 aMemStm >> nLeft >> nTop >> nRight >> nBottom;
         [ #  # ][ #  # ]
    4108 [ #  # ][ #  # ]:          0 :                 aMemStm >> nPixX >> nPixY >> nMillX >> nMillY;
         [ #  # ][ #  # ]
    4109 [ #  # ][ #  # ]:          0 :                 aMemStm >> m11 >> m12 >> m21 >> m22 >> mdx >> mdy;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
    4110                 :            : 
    4111                 :            :                 // add scale to the transformation
    4112                 :          0 :                 m11 *= fXScale;
    4113                 :          0 :                 m12 *= fXScale;
    4114                 :          0 :                 m22 *= fYScale;
    4115                 :          0 :                 m21 *= fYScale;
    4116                 :            : 
    4117                 :            :                 // prepare new data
    4118 [ #  # ][ #  # ]:          0 :                 aDest << nLeft << nTop << nRight << nBottom;
         [ #  # ][ #  # ]
    4119 [ #  # ][ #  # ]:          0 :                 aDest << nPixX << nPixY << nMillX << nMillY;
         [ #  # ][ #  # ]
    4120 [ #  # ][ #  # ]:          0 :                 aDest << m11 << m12 << m21 << m22 << mdx << mdy;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
    4121                 :            : 
    4122                 :            :                 // save them
    4123 [ #  # ][ #  # ]:          0 :                 ImplInitDynamicData( static_cast<const sal_uInt8*>( aDest.GetData() ), aDest.Tell() );
         [ #  # ][ #  # ]
    4124                 :            :             }
    4125                 :            :         }
    4126                 :            :     }
    4127                 :          0 : }
    4128                 :            : 
    4129                 :            : // ------------------------------------------------------------------------
    4130                 :            : 
    4131                 :          0 : sal_Bool MetaCommentAction::Compare( const MetaAction& rMetaAction ) const
    4132                 :            : {
    4133                 :          0 :     return ( maComment == ((MetaCommentAction&)rMetaAction).maComment ) &&
    4134                 :            :            ( mnValue == ((MetaCommentAction&)rMetaAction).mnValue ) &&
    4135                 :            :            ( mnDataSize == ((MetaCommentAction&)rMetaAction).mnDataSize ) &&
    4136 [ #  # ][ #  # ]:          0 :            ( memcmp( mpData, ((MetaCommentAction&)rMetaAction).mpData, mnDataSize ) == 0 );
         [ #  # ][ #  # ]
    4137                 :            : }
    4138                 :            : 
    4139                 :            : // ------------------------------------------------------------------------
    4140                 :            : 
    4141                 :     157290 : void MetaCommentAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    4142                 :            : {
    4143 [ +  - ][ +  - ]:     157290 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    4144         [ +  - ]:     157290 :     write_lenPrefixed_uInt8s_FromOString<sal_uInt16>(rOStm, maComment);
    4145 [ +  - ][ +  - ]:     157290 :     rOStm << mnValue << mnDataSize;
    4146                 :            : 
    4147         [ +  + ]:     157290 :     if ( mnDataSize )
    4148 [ +  - ][ +  - ]:     157290 :         rOStm.Write( mpData, mnDataSize );
    4149                 :     157290 : }
    4150                 :            : 
    4151                 :            : // ------------------------------------------------------------------------
    4152                 :            : 
    4153                 :      60014 : void MetaCommentAction::Read( SvStream& rIStm, ImplMetaReadData* )
    4154                 :            : {
    4155         [ +  - ]:      60014 :     COMPAT( rIStm );
    4156         [ +  - ]:      60014 :     maComment = read_lenPrefixed_uInt8s_ToOString<sal_uInt16>(rIStm);
    4157 [ +  - ][ +  - ]:      60014 :     rIStm >> mnValue >> mnDataSize;
    4158                 :            : 
    4159         [ -  + ]:      60014 :     delete[] mpData;
    4160                 :            : 
    4161         [ +  + ]:      60014 :     if( mnDataSize )
    4162                 :            :     {
    4163         [ +  - ]:       5854 :         mpData = new sal_uInt8[ mnDataSize ];
    4164         [ +  - ]:       5854 :         rIStm.Read( mpData, mnDataSize );
    4165                 :            :     }
    4166                 :            :     else
    4167         [ +  - ]:      60014 :         mpData = NULL;
    4168                 :      60014 : }
    4169                 :            : 
    4170                 :            : // ========================================================================
    4171                 :            : 
    4172         [ -  + ]:      91205 : IMPL_META_ACTION( LayoutMode, META_LAYOUTMODE_ACTION )
    4173                 :            : 
    4174                 :            : // ------------------------------------------------------------------------
    4175                 :            : 
    4176                 :      25195 : MetaLayoutModeAction::MetaLayoutModeAction( sal_uInt32 nLayoutMode ) :
    4177                 :            :     MetaAction  ( META_LAYOUTMODE_ACTION ),
    4178                 :      25195 :     mnLayoutMode( nLayoutMode )
    4179                 :            : {
    4180                 :      25195 : }
    4181                 :            : 
    4182                 :            : // ------------------------------------------------------------------------
    4183                 :            : 
    4184                 :      12089 : void MetaLayoutModeAction::Execute( OutputDevice* pOut )
    4185                 :            : {
    4186                 :      12089 :     pOut->SetLayoutMode( mnLayoutMode );
    4187                 :      12089 : }
    4188                 :            : 
    4189                 :            : // ------------------------------------------------------------------------
    4190                 :            : 
    4191                 :          0 : MetaAction* MetaLayoutModeAction::Clone()
    4192                 :            : {
    4193         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaLayoutModeAction( *this );
    4194                 :          0 :     pClone->ResetRefCount();
    4195                 :          0 :     return pClone;
    4196                 :            : }
    4197                 :            : 
    4198                 :            : // ------------------------------------------------------------------------
    4199                 :            : 
    4200                 :          0 : sal_Bool MetaLayoutModeAction::Compare( const MetaAction& rMetaAction ) const
    4201                 :            : {
    4202                 :          0 :     return mnLayoutMode == ((MetaLayoutModeAction&)rMetaAction).mnLayoutMode;
    4203                 :            : }
    4204                 :            : 
    4205                 :            : // ------------------------------------------------------------------------
    4206                 :            : 
    4207                 :      14703 : void MetaLayoutModeAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    4208                 :            : {
    4209 [ +  - ][ +  - ]:      14703 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    4210 [ +  - ][ +  - ]:      14703 :     rOStm << mnLayoutMode;
    4211                 :      14703 : }
    4212                 :            : 
    4213                 :            : // ------------------------------------------------------------------------
    4214                 :            : 
    4215                 :      13721 : void MetaLayoutModeAction::Read( SvStream& rIStm, ImplMetaReadData* )
    4216                 :            : {
    4217         [ +  - ]:      13721 :     COMPAT( rIStm );
    4218 [ +  - ][ +  - ]:      13721 :     rIStm >> mnLayoutMode;
    4219                 :      13721 : }
    4220                 :            : 
    4221                 :            : // ========================================================================
    4222                 :            : 
    4223         [ -  + ]:     124841 : IMPL_META_ACTION( TextLanguage, META_TEXTLANGUAGE_ACTION )
    4224                 :            : 
    4225                 :            : // ------------------------------------------------------------------------
    4226                 :            : 
    4227                 :      31876 : MetaTextLanguageAction::MetaTextLanguageAction( LanguageType eTextLanguage ) :
    4228                 :            :     MetaAction  ( META_TEXTLANGUAGE_ACTION ),
    4229                 :      31876 :     meTextLanguage( eTextLanguage )
    4230                 :            : {
    4231                 :      31876 : }
    4232                 :            : 
    4233                 :            : // ------------------------------------------------------------------------
    4234                 :            : 
    4235                 :      12191 : void MetaTextLanguageAction::Execute( OutputDevice* pOut )
    4236                 :            : {
    4237                 :      12191 :     pOut->SetDigitLanguage( meTextLanguage );
    4238                 :      12191 : }
    4239                 :            : 
    4240                 :            : // ------------------------------------------------------------------------
    4241                 :            : 
    4242                 :          0 : MetaAction* MetaTextLanguageAction::Clone()
    4243                 :            : {
    4244         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaTextLanguageAction( *this );
    4245                 :          0 :     pClone->ResetRefCount();
    4246                 :          0 :     return pClone;
    4247                 :            : }
    4248                 :            : 
    4249                 :            : // ------------------------------------------------------------------------
    4250                 :            : 
    4251                 :          0 : sal_Bool MetaTextLanguageAction::Compare( const MetaAction& rMetaAction ) const
    4252                 :            : {
    4253                 :          0 :     return meTextLanguage == ((MetaTextLanguageAction&)rMetaAction).meTextLanguage;
    4254                 :            : }
    4255                 :            : 
    4256                 :            : // ------------------------------------------------------------------------
    4257                 :            : 
    4258                 :      21951 : void MetaTextLanguageAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    4259                 :            : {
    4260 [ +  - ][ +  - ]:      21951 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    4261 [ +  - ][ +  - ]:      21951 :     rOStm << meTextLanguage;
    4262                 :      21951 : }
    4263                 :            : 
    4264                 :            : // ------------------------------------------------------------------------
    4265                 :            : 
    4266                 :      20537 : void MetaTextLanguageAction::Read( SvStream& rIStm, ImplMetaReadData* )
    4267                 :            : {
    4268         [ +  - ]:      20537 :     COMPAT( rIStm );
    4269 [ +  - ][ +  - ]:      20537 :     rIStm >> meTextLanguage;
    4270                 :      20537 : }
    4271                 :            : 
    4272                 :            : // ========================================================================
    4273                 :            : 
    4274 [ #  # ][ #  # ]:          0 : IMPL_META_ACTION( RenderGraphic, META_RENDERGRAPHIC_ACTION )
                 [ #  # ]
    4275                 :            : 
    4276                 :            : // ------------------------------------------------------------------------
    4277                 :            : 
    4278                 :          0 : MetaRenderGraphicAction::MetaRenderGraphicAction( const Point& rPoint, const Size& rSize,
    4279                 :            :                                                   const vcl::RenderGraphic& rRenderGraphic,
    4280                 :            :                                                   double fRotateAngle, double fShearAngleX, double fShearAngleY ) :
    4281                 :            :     MetaAction( META_RENDERGRAPHIC_ACTION ),
    4282                 :            :     maRenderGraphic( rRenderGraphic ),
    4283                 :            :     maPoint( rPoint ),
    4284                 :            :     maSize( rSize ),
    4285                 :            :     mfRotateAngle( fRotateAngle ),
    4286                 :            :     mfShearAngleX( fShearAngleX ),
    4287         [ #  # ]:          0 :     mfShearAngleY( fShearAngleY )
    4288                 :            : {
    4289                 :          0 : }
    4290                 :            : 
    4291                 :            : // ------------------------------------------------------------------------
    4292                 :            : 
    4293                 :          0 : void MetaRenderGraphicAction::Execute( OutputDevice* pOut )
    4294                 :            : {
    4295                 :          0 :     pOut->DrawRenderGraphic( maPoint, maSize, maRenderGraphic );
    4296                 :          0 : }
    4297                 :            : 
    4298                 :            : // ------------------------------------------------------------------------
    4299                 :            : 
    4300                 :          0 : MetaAction* MetaRenderGraphicAction::Clone()
    4301                 :            : {
    4302         [ #  # ]:          0 :     MetaAction* pClone = (MetaAction*) new MetaRenderGraphicAction( *this );
    4303                 :          0 :     pClone->ResetRefCount();
    4304                 :          0 :     return pClone;
    4305                 :            : }
    4306                 :            : 
    4307                 :            : // ------------------------------------------------------------------------
    4308                 :            : 
    4309                 :          0 : void MetaRenderGraphicAction::Move( long nHorzMove, long nVertMove )
    4310                 :            : {
    4311                 :          0 :     maPoint.Move( nHorzMove, nVertMove );
    4312                 :          0 : }
    4313                 :            : 
    4314                 :            : // ------------------------------------------------------------------------
    4315                 :            : 
    4316                 :          0 : void MetaRenderGraphicAction::Scale( double fScaleX, double fScaleY )
    4317                 :            : {
    4318         [ #  # ]:          0 :     Rectangle aRectangle( maPoint, maSize );
    4319         [ #  # ]:          0 :     ImplScaleRect( aRectangle, fScaleX, fScaleY );
    4320                 :          0 :     maPoint = aRectangle.TopLeft();
    4321         [ #  # ]:          0 :     maSize = aRectangle.GetSize();
    4322                 :          0 : }
    4323                 :            : 
    4324                 :            : // ------------------------------------------------------------------------
    4325                 :            : 
    4326                 :          0 : sal_Bool MetaRenderGraphicAction::Compare( const MetaAction& rMetaAction ) const
    4327                 :            : {
    4328                 :          0 :     return ( maRenderGraphic.IsEqual( ( (MetaRenderGraphicAction&) rMetaAction).maRenderGraphic ) &&
    4329                 :          0 :            ( maPoint == ( (MetaRenderGraphicAction&) rMetaAction).maPoint ) &&
    4330                 :          0 :            ( maSize == ( (MetaRenderGraphicAction&) rMetaAction).maSize ) &&
    4331                 :            :            ( mfRotateAngle == ( (MetaRenderGraphicAction&) rMetaAction).mfRotateAngle ) &&
    4332                 :            :            ( mfShearAngleX == ( (MetaRenderGraphicAction&) rMetaAction).mfShearAngleX ) &&
    4333 [ #  # ][ #  # ]:          0 :            ( mfShearAngleY == ( (MetaRenderGraphicAction&) rMetaAction).mfShearAngleY ) );
         [ #  # ][ #  #  
             #  #  #  # ]
    4334                 :            : }
    4335                 :            : 
    4336                 :            : // ------------------------------------------------------------------------
    4337                 :            : 
    4338                 :          0 : void MetaRenderGraphicAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
    4339                 :            : {
    4340 [ #  # ][ #  # ]:          0 :     WRITE_BASE_COMPAT( rOStm, 1, pData );
    4341 [ #  # ][ #  # ]:          0 :     rOStm << maRenderGraphic << maPoint << maSize << mfRotateAngle << mfShearAngleX << mfShearAngleY;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
    4342                 :          0 : }
    4343                 :            : 
    4344                 :            : // ------------------------------------------------------------------------
    4345                 :            : 
    4346                 :          0 : void MetaRenderGraphicAction::Read( SvStream& rIStm, ImplMetaReadData* )
    4347                 :            : {
    4348         [ #  # ]:          0 :     COMPAT( rIStm );
    4349 [ #  # ][ #  # ]:          0 :     rIStm >> maRenderGraphic >> maPoint >> maSize >> mfRotateAngle >> mfShearAngleX >> mfShearAngleY;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
    4350                 :          0 : }
    4351                 :            : 
    4352                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10