1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef _GRFATR_HXX 24 #define _GRFATR_HXX 25 26 #include <hintids.hxx> // fuer die WhichIds @@@ must be included first @@@ 27 #include <tools/gen.hxx> 28 #include <svl/eitem.hxx> 29 #include <svl/intitem.hxx> 30 #include <svx/grfcrop.hxx> 31 #include "swdllapi.h" 32 #include <swatrset.hxx> // fuer inlines 33 #include <format.hxx> // fuer inlines 34 35 /****************************************************************************** 36 * class SwMirrorGrf 37 ******************************************************************************/ 38 39 enum MirrorGraph 40 { 41 RES_MIRROR_GRAPH_BEGIN, 42 RES_MIRROR_GRAPH_DONT = RES_MIRROR_GRAPH_BEGIN, 43 RES_MIRROR_GRAPH_VERT, 44 RES_MIRROR_GRAPH_HOR, 45 RES_MIRROR_GRAPH_BOTH, 46 RES_MIRROR_GRAPH_END 47 }; 48 49 class SW_DLLPUBLIC SwMirrorGrf : public SfxEnumItem 50 { 51 sal_Bool bGrfToggle; // auf geraden Seiten Grafiken spiegeln 52 53 public: 54 SwMirrorGrf( MirrorGraph eMiro = RES_MIRROR_GRAPH_DONT ) 55 : SfxEnumItem( RES_GRFATR_MIRRORGRF, static_cast< sal_uInt16 >(eMiro) ), bGrfToggle( sal_False ) 56 {} 57 SwMirrorGrf( const SwMirrorGrf &rMirrorGrf ) 58 : SfxEnumItem( RES_GRFATR_MIRRORGRF, rMirrorGrf.GetValue()), 59 bGrfToggle( rMirrorGrf.IsGrfToggle() ) 60 {} 61 62 // pure virtual-Methoden von SfxPoolItem 63 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 64 65 // pure virtual-Methiden von SfxEnumItem 66 virtual sal_uInt16 GetValueCount() const; 67 virtual int operator==( const SfxPoolItem& ) const; 68 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 69 SfxMapUnit eCoreMetric, 70 SfxMapUnit ePresMetric, 71 String &rText, 72 const IntlWrapper* pIntl = 0 ) const; 73 74 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, 75 sal_uInt8 nMemberId = 0 ) const; 76 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, 77 sal_uInt8 nMemberId = 0 ); 78 79 inline SwMirrorGrf& operator=( const SwMirrorGrf& rMirrorGrf ) 80 { 81 SfxEnumItem::SetValue( rMirrorGrf.GetValue() ); 82 bGrfToggle = rMirrorGrf.IsGrfToggle(); 83 return *this; 84 } 85 86 inline sal_Bool IsGrfToggle() const { return bGrfToggle; } 87 inline void SetGrfToggle( sal_Bool bNew ) { bGrfToggle = bNew; } 88 }; 89 90 91 /****************************************************************************** 92 * class SwAttrCropGrf 93 ******************************************************************************/ 94 95 class SW_DLLPUBLIC SwCropGrf : public SvxGrfCrop 96 { 97 public: 98 TYPEINFO(); 99 SwCropGrf(); 100 SwCropGrf( sal_Int32 nLeft, sal_Int32 nRight, 101 sal_Int32 nTop, sal_Int32 nBottom ); 102 103 // "pure virtual Methoden" vom SfxPoolItem 104 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 105 }; 106 107 class SwRotationGrf : public SfxUInt16Item 108 { 109 Size aUnrotatedSize; 110 public: 111 SwRotationGrf( sal_Int16 nVal = 0 ) 112 : SfxUInt16Item( RES_GRFATR_ROTATION, nVal ) 113 {} 114 SwRotationGrf( sal_Int16 nVal, const Size& rSz ) 115 : SfxUInt16Item( RES_GRFATR_ROTATION, nVal ), aUnrotatedSize( rSz ) 116 {} 117 118 // pure virtual-Methiden from SfxInt16Item 119 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 120 virtual int operator==( const SfxPoolItem& ) const; 121 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 122 SfxMapUnit eCoreMetric, 123 SfxMapUnit ePresMetric, 124 String &rText, 125 const IntlWrapper* pIntl = 0 ) const; 126 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, 127 sal_uInt8 nMemberId = 0 ) const; 128 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, 129 sal_uInt8 nMemberId = 0 ); 130 131 void SetUnrotatedSize( const Size& rSz ) { aUnrotatedSize = rSz; } 132 const Size& GetUnrotatedSize() const { return aUnrotatedSize; } 133 }; 134 135 class SW_DLLPUBLIC SwLuminanceGrf : public SfxInt16Item 136 { 137 public: 138 SwLuminanceGrf( sal_Int16 nVal = 0 ) 139 : SfxInt16Item( RES_GRFATR_LUMINANCE, nVal ) 140 {} 141 142 // pure virtual-Methiden from SfxInt16Item 143 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 144 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 145 SfxMapUnit eCoreMetric, 146 SfxMapUnit ePresMetric, 147 String &rText, 148 const IntlWrapper* pIntl = 0 ) const; 149 }; 150 151 class SW_DLLPUBLIC SwContrastGrf : public SfxInt16Item 152 { 153 public: 154 SwContrastGrf( sal_Int16 nVal = 0 ) 155 : SfxInt16Item( RES_GRFATR_CONTRAST, nVal ) 156 {} 157 158 // pure virtual-Methiden from SfxInt16Item 159 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 160 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 161 SfxMapUnit eCoreMetric, 162 SfxMapUnit ePresMetric, 163 String &rText, 164 const IntlWrapper* pIntl = 0 ) const; 165 }; 166 167 class SwChannelGrf : public SfxInt16Item 168 { 169 protected: 170 SwChannelGrf( sal_Int16 nVal, sal_uInt16 nWhichL ) 171 : SfxInt16Item( nWhichL, nVal ) 172 {} 173 174 public: 175 // pure virtual-Methiden from SfxInt16Item 176 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 177 SfxMapUnit eCoreMetric, 178 SfxMapUnit ePresMetric, 179 String &rText, 180 const IntlWrapper* pIntl = 0 ) const; 181 }; 182 183 class SwChannelRGrf : public SwChannelGrf 184 { 185 public: 186 SwChannelRGrf( sal_Int16 nVal = 0 ) 187 : SwChannelGrf( nVal, RES_GRFATR_CHANNELR ) 188 {} 189 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 190 }; 191 class SwChannelGGrf : public SwChannelGrf 192 { 193 public: 194 SwChannelGGrf( sal_Int16 nVal = 0 ) 195 : SwChannelGrf( nVal, RES_GRFATR_CHANNELG ) 196 {} 197 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 198 }; 199 class SwChannelBGrf : public SwChannelGrf 200 { 201 public: 202 SwChannelBGrf( sal_Int16 nVal = 0 ) 203 : SwChannelGrf( nVal, RES_GRFATR_CHANNELB ) 204 {} 205 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 206 }; 207 208 class SW_DLLPUBLIC SwGammaGrf : public SfxPoolItem 209 { 210 double nValue; 211 public: 212 TYPEINFO(); 213 SwGammaGrf() : SfxPoolItem( RES_GRFATR_GAMMA ), nValue( 1.0 ) 214 {} 215 216 SwGammaGrf( const double& rVal ) 217 : SfxPoolItem( RES_GRFATR_GAMMA ), nValue( rVal ) 218 {} 219 220 inline SwGammaGrf& operator=( const SwGammaGrf& rCopy ) 221 { 222 SetValue( rCopy.GetValue() ); 223 return *this; 224 } 225 226 // pure virtual-Methiden von SfxEnumItem 227 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 228 virtual int operator==( const SfxPoolItem& ) const; 229 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 230 SfxMapUnit eCoreMetric, 231 SfxMapUnit ePresMetric, 232 String &rText, 233 const IntlWrapper* pIntl = 0 ) const; 234 235 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, 236 sal_uInt8 nMemberId = 0 ) const; 237 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, 238 sal_uInt8 nMemberId = 0 ); 239 240 241 const double& GetValue() const { return nValue; } 242 void SetValue( const double& rVal ) { nValue = rVal; } 243 }; 244 245 class SwInvertGrf: public SfxBoolItem 246 { 247 public: 248 SwInvertGrf( sal_Bool bVal = sal_False ) 249 : SfxBoolItem( RES_GRFATR_INVERT, bVal ) 250 {} 251 252 // pure virtual-Methiden from SfxInt16Item 253 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 254 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 255 SfxMapUnit eCoreMetric, 256 SfxMapUnit ePresMetric, 257 String &rText, 258 const IntlWrapper* pIntl = 0 ) const; 259 }; 260 261 class SwTransparencyGrf : public SfxByteItem 262 { 263 public: 264 SwTransparencyGrf( sal_Int8 nVal = 0 ) 265 : SfxByteItem( RES_GRFATR_TRANSPARENCY, nVal ) 266 {} 267 268 // pure virtual-Methiden from SfxInt16Item 269 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 270 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 271 SfxMapUnit eCoreMetric, 272 SfxMapUnit ePresMetric, 273 String &rText, 274 const IntlWrapper* pIntl = 0 ) const; 275 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, 276 sal_uInt8 nMemberId = 0 ) const; 277 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, 278 sal_uInt8 nMemberId = 0 ); 279 }; 280 281 class SW_DLLPUBLIC SwDrawModeGrf : public SfxEnumItem 282 { 283 public: 284 SwDrawModeGrf( sal_uInt16 nMode = 0 ) 285 : SfxEnumItem( RES_GRFATR_DRAWMODE, nMode ) 286 {} 287 288 // pure virtual-Methoden von SfxPoolItem 289 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 290 291 // pure virtual-Methiden von SfxEnumItem 292 virtual sal_uInt16 GetValueCount() const; 293 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 294 SfxMapUnit eCoreMetric, 295 SfxMapUnit ePresMetric, 296 String &rText, 297 const IntlWrapper* pIntl = 0 ) const; 298 299 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, 300 sal_uInt8 nMemberId = 0 ) const; 301 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, 302 sal_uInt8 nMemberId = 0 ); 303 }; 304 305 306 307 /****************************************************************************** 308 * Implementierung der GrafikAttribut Methoden vom SwAttrSet 309 ******************************************************************************/ 310 311 inline const SwMirrorGrf &SwAttrSet::GetMirrorGrf(sal_Bool bInP) const 312 { return (const SwMirrorGrf&)Get( RES_GRFATR_MIRRORGRF,bInP); } 313 inline const SwCropGrf &SwAttrSet::GetCropGrf(sal_Bool bInP) const 314 { return (const SwCropGrf&)Get( RES_GRFATR_CROPGRF,bInP); } 315 inline const SwRotationGrf &SwAttrSet::GetRotationGrf(sal_Bool bInP) const 316 { return (const SwRotationGrf&)Get( RES_GRFATR_ROTATION,bInP); } 317 inline const SwLuminanceGrf &SwAttrSet::GetLuminanceGrf(sal_Bool bInP) const 318 { return (const SwLuminanceGrf&)Get( RES_GRFATR_LUMINANCE,bInP); } 319 inline const SwContrastGrf &SwAttrSet::GetContrastGrf(sal_Bool bInP) const 320 { return (const SwContrastGrf&)Get( RES_GRFATR_CONTRAST,bInP); } 321 inline const SwChannelRGrf &SwAttrSet::GetChannelRGrf(sal_Bool bInP) const 322 { return (const SwChannelRGrf&)Get( RES_GRFATR_CHANNELR,bInP); } 323 inline const SwChannelGGrf &SwAttrSet::GetChannelGGrf(sal_Bool bInP) const 324 { return (const SwChannelGGrf&)Get( RES_GRFATR_CHANNELG,bInP); } 325 inline const SwChannelBGrf &SwAttrSet::GetChannelBGrf(sal_Bool bInP) const 326 { return (const SwChannelBGrf&)Get( RES_GRFATR_CHANNELB,bInP); } 327 inline const SwGammaGrf &SwAttrSet::GetGammaGrf(sal_Bool bInP) const 328 { return (const SwGammaGrf&)Get( RES_GRFATR_GAMMA,bInP); } 329 inline const SwInvertGrf &SwAttrSet::GetInvertGrf(sal_Bool bInP) const 330 { return (const SwInvertGrf&)Get( RES_GRFATR_INVERT,bInP); } 331 inline const SwTransparencyGrf &SwAttrSet::GetTransparencyGrf(sal_Bool bInP) const 332 { return (const SwTransparencyGrf&)Get( RES_GRFATR_TRANSPARENCY,bInP); } 333 inline const SwDrawModeGrf &SwAttrSet::GetDrawModeGrf(sal_Bool bInP) const 334 { return (const SwDrawModeGrf&)Get( RES_GRFATR_DRAWMODE,bInP); } 335 336 /****************************************************************************** 337 * Implementierung der GrafikAttribut Methoden vom SwFmt 338 ******************************************************************************/ 339 340 inline const SwMirrorGrf &SwFmt::GetMirrorGrf(sal_Bool bInP) const 341 { return aSet.GetMirrorGrf(bInP); } 342 inline const SwCropGrf &SwFmt::GetCropGrf(sal_Bool bInP) const 343 { return aSet.GetCropGrf(bInP); } 344 inline const SwRotationGrf &SwFmt::GetRotationGrf(sal_Bool bInP) const 345 { return aSet.GetRotationGrf(bInP); } 346 inline const SwLuminanceGrf &SwFmt::GetLuminanceGrf(sal_Bool bInP) const 347 { return aSet.GetLuminanceGrf( bInP); } 348 inline const SwContrastGrf &SwFmt::GetContrastGrf(sal_Bool bInP) const 349 { return aSet.GetContrastGrf( bInP); } 350 inline const SwChannelRGrf &SwFmt::GetChannelRGrf(sal_Bool bInP) const 351 { return aSet.GetChannelRGrf( bInP); } 352 inline const SwChannelGGrf &SwFmt::GetChannelGGrf(sal_Bool bInP) const 353 { return aSet.GetChannelGGrf( bInP); } 354 inline const SwChannelBGrf &SwFmt::GetChannelBGrf(sal_Bool bInP) const 355 { return aSet.GetChannelBGrf( bInP); } 356 inline const SwGammaGrf &SwFmt::GetGammaGrf(sal_Bool bInP) const 357 { return aSet.GetGammaGrf( bInP); } 358 inline const SwInvertGrf &SwFmt::GetInvertGrf(sal_Bool bInP) const 359 { return aSet.GetInvertGrf( bInP); } 360 inline const SwTransparencyGrf &SwFmt::GetTransparencyGrf(sal_Bool bInP) const 361 { return aSet.GetTransparencyGrf( bInP); } 362 inline const SwDrawModeGrf &SwFmt::GetDrawModeGrf(sal_Bool bInP) const 363 { return aSet.GetDrawModeGrf(bInP); } 364 365 366 #endif // _GRFATR_HXX 367