sync master with lastest vba changes
[ooovba.git] / goodies / source / graphic / grfattr.cxx
bloba75fffb23ca7ce3cce3f3a75a4b43443f95e38ce
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: grfattr.cxx,v $
10 * $Revision: 1.5 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_goodies.hxx"
34 #include <tools/vcompat.hxx>
35 #include "grfmgr.hxx"
37 // ---------------
38 // - GraphicAttr -
39 // ---------------
41 GraphicAttr::GraphicAttr() :
42 mfGamma ( 1.0 ),
43 mnMirrFlags ( 0 ),
44 mnLeftCrop ( 0 ),
45 mnTopCrop ( 0 ),
46 mnRightCrop ( 0 ),
47 mnBottomCrop ( 0 ),
48 mnRotate10 ( 0 ),
49 mnContPercent ( 0 ),
50 mnLumPercent ( 0 ),
51 mnRPercent ( 0 ),
52 mnGPercent ( 0 ),
53 mnBPercent ( 0 ),
54 mbInvert ( FALSE ),
55 mcTransparency ( 0 ),
56 meDrawMode ( GRAPHICDRAWMODE_STANDARD )
60 // ------------------------------------------------------------------------
62 GraphicAttr::~GraphicAttr()
66 // ------------------------------------------------------------------------
68 BOOL GraphicAttr::operator==( const GraphicAttr& rAttr ) const
70 return( ( mfGamma == rAttr.mfGamma ) &&
71 ( mnMirrFlags == rAttr.mnMirrFlags ) &&
72 ( mnLeftCrop == rAttr.mnLeftCrop ) &&
73 ( mnTopCrop == rAttr.mnTopCrop ) &&
74 ( mnRightCrop == rAttr.mnRightCrop ) &&
75 ( mnBottomCrop == rAttr.mnBottomCrop ) &&
76 ( mnRotate10 == rAttr.mnRotate10 ) &&
77 ( mnContPercent == rAttr.mnContPercent ) &&
78 ( mnLumPercent == rAttr.mnLumPercent ) &&
79 ( mnRPercent == rAttr.mnRPercent ) &&
80 ( mnGPercent == rAttr.mnGPercent ) &&
81 ( mnBPercent == rAttr.mnBPercent ) &&
82 ( mbInvert == rAttr.mbInvert ) &&
83 ( mcTransparency == rAttr.mcTransparency ) &&
84 ( meDrawMode == rAttr.meDrawMode ) );
87 // ------------------------------------------------------------------------
89 SvStream& operator>>( SvStream& rIStm, GraphicAttr& rAttr )
91 VersionCompat aCompat( rIStm, STREAM_READ );
92 sal_uInt32 nTmp32;
93 UINT16 nTmp16;
95 rIStm >> nTmp32 >> nTmp32 >> rAttr.mfGamma >> rAttr.mnMirrFlags >> rAttr.mnRotate10;
96 rIStm >> rAttr.mnContPercent >> rAttr.mnLumPercent >> rAttr.mnRPercent >> rAttr.mnGPercent >> rAttr.mnBPercent;
97 rIStm >> rAttr.mbInvert >> rAttr.mcTransparency >> nTmp16;
98 rAttr.meDrawMode = (GraphicDrawMode) nTmp16;
100 if( aCompat.GetVersion() >= 2 )
102 rIStm >> rAttr.mnLeftCrop >> rAttr.mnTopCrop >> rAttr.mnRightCrop >> rAttr.mnBottomCrop;
105 return rIStm;
108 // ------------------------------------------------------------------------
110 SvStream& operator<<( SvStream& rOStm, const GraphicAttr& rAttr )
112 VersionCompat aCompat( rOStm, STREAM_WRITE, 2 );
113 const sal_uInt32 nTmp32 = 0;
115 rOStm << nTmp32 << nTmp32 << rAttr.mfGamma << rAttr.mnMirrFlags << rAttr.mnRotate10;
116 rOStm << rAttr.mnContPercent << rAttr.mnLumPercent << rAttr.mnRPercent << rAttr.mnGPercent << rAttr.mnBPercent;
117 rOStm << rAttr.mbInvert << rAttr.mcTransparency << (UINT16) rAttr.meDrawMode;
118 rOStm << rAttr.mnLeftCrop << rAttr.mnTopCrop << rAttr.mnRightCrop << rAttr.mnBottomCrop;
120 return rOStm;