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 _SVX_FWDTITEM_HXX 24 #define _SVX_FWDTITEM_HXX 25 26 // include --------------------------------------------------------------- 27 28 29 #include <svl/poolitem.hxx> 30 31 32 // class SvxFontWidthItem ----------------------------------------------- 33 34 35 /* [Beschreibung] 36 37 Dieses Item beschreibt die Font-Breite. 38 */ 39 40 class SvxFontWidthItem : public SfxPoolItem 41 { 42 sal_uInt16 nWidth; // 0 = default 43 sal_uInt16 nProp; // default 100% 44 public: 45 TYPEINFO(); 46 47 SvxFontWidthItem( const sal_uInt16 nSz /*= 0*/, 48 const sal_uInt16 nPropWidth /*= 100*/, 49 const sal_uInt16 nId ); 50 51 // "pure virtual Methoden" vom SfxPoolItem 52 virtual int operator==( const SfxPoolItem& ) const; 53 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; 54 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); 55 56 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 57 SfxMapUnit eCoreMetric, 58 SfxMapUnit ePresMetric, 59 String &rText, const IntlWrapper * = 0 ) const; 60 61 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 62 virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const; 63 virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const; 64 virtual int ScaleMetrics( long nMult, long nDiv ); 65 virtual int HasMetrics() const; 66 operator =(const SvxFontWidthItem & rItem)67 inline SvxFontWidthItem& operator=(const SvxFontWidthItem& rItem ) 68 { 69 SetWidthValue( rItem.GetWidth() ); 70 SetProp( rItem.GetProp() ); 71 return *this; 72 } 73 SetWidth(sal_uInt16 nNewWidth,const sal_uInt16 nNewProp=100)74 void SetWidth( sal_uInt16 nNewWidth, const sal_uInt16 nNewProp = 100 ) 75 { 76 DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" ); 77 nWidth = sal_uInt16(( (sal_uInt32)nNewWidth * nNewProp ) / 100 ); 78 nProp = nNewProp; 79 } 80 GetWidth() const81 sal_uInt16 GetWidth() const { return nWidth; } 82 SetWidthValue(sal_uInt16 nNewWidth)83 void SetWidthValue( sal_uInt16 nNewWidth ) 84 { 85 DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" ); 86 nWidth = nNewWidth; 87 } 88 SetProp(const sal_uInt16 nNewProp)89 void SetProp( const sal_uInt16 nNewProp ) 90 { 91 DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" ); 92 nProp = nNewProp; 93 } 94 GetProp() const95 sal_uInt16 GetProp() const { return nProp; } 96 }; 97 98 99 100 101 102 #endif 103 104 105