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 _FMTFSIZE_HXX 24 #define _FMTFSIZE_HXX 25 26 #include <tools/gen.hxx> 27 #include <svl/poolitem.hxx> 28 #include "swdllapi.h" 29 #include <hintids.hxx> 30 #include <swtypes.hxx> 31 #include <format.hxx> 32 33 class IntlWrapper; 34 35 //Die Framesize --------------------------------- 36 37 enum SwFrmSize 38 { 39 ATT_VAR_SIZE, //Frm ist in der Var-Richtung variabel 40 ATT_FIX_SIZE, //Frm ist in der Var-Richtung unbeweglich 41 ATT_MIN_SIZE //Der Wert in der Var-Richtung beschreibt eine 42 //Minimalgroesse, die nicht unter- wohl aber 43 //ueberschritten werden kann. 44 }; 45 46 class SW_DLLPUBLIC SwFmtFrmSize: public SfxPoolItem 47 { 48 Size aSize; 49 SwFrmSize eFrmHeightType; 50 SwFrmSize eFrmWidthType; 51 sal_uInt8 nWidthPercent; //Fuer Tabellen kann die Breite in Prozent 52 sal_uInt8 nHeightPercent; //angegeben sein. 53 //Fuer Rahmen koennen Hoehe und/oder Breite 54 //in Prozent angegeben sein. Wenn nur eine 55 //der Angaben in Prozent angeben ist, kann 56 //durch den ausgezeichneten Wert 0xFF in der 57 //anderen Prozentangabe bestimmt werden, das 58 //sich diese Richtung proportional zur anderen 59 //verhaelt. Basis fuer die Umrechnung sind fuer 60 //diesen Fall die Angaben in der Size. 61 //Die Prozentwerte beziehen sich immer auf die 62 //Umgebung in der das Objekt steht (PrtArea) 63 //Auf die Bildschirmbreite abzueglich Raender 64 //in der BrowseView wenn die Umgebung die Seite 65 //ist. 66 public: 67 SwFmtFrmSize( SwFrmSize eSize = ATT_VAR_SIZE, 68 SwTwips nWidth = 0, SwTwips nHeight = 0 ); 69 SwFmtFrmSize& operator=( const SwFmtFrmSize& rCpy ); 70 71 // "pure virtual Methoden" vom SfxPoolItem 72 virtual int operator==( const SfxPoolItem& ) const; 73 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 74 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 75 SfxMapUnit eCoreMetric, 76 SfxMapUnit ePresMetric, 77 String &rText, 78 const IntlWrapper* pIntl = 0 ) const; 79 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; 80 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); 81 82 SwFrmSize GetHeightSizeType() const { return eFrmHeightType; } 83 void SetHeightSizeType( SwFrmSize eSize ) { eFrmHeightType = eSize; } 84 85 SwFrmSize GetWidthSizeType() const { return eFrmWidthType; } 86 void SetWidthSizeType( SwFrmSize eSize ) { eFrmWidthType = eSize; } 87 88 const Size& GetSize() const { return aSize; } 89 void SetSize( const Size &rNew ) { aSize = rNew; } 90 91 SwTwips GetHeight() const { return aSize.Height(); } 92 SwTwips GetWidth() const { return aSize.Width(); } 93 void SetHeight( const SwTwips nNew ) { aSize.Height() = nNew; } 94 void SetWidth ( const SwTwips nNew ) { aSize.Width() = nNew; } 95 96 sal_uInt8 GetHeightPercent() const{ return nHeightPercent; } 97 sal_uInt8 GetWidthPercent() const { return nWidthPercent; } 98 void SetHeightPercent( sal_uInt8 n ) { nHeightPercent = n; } 99 void SetWidthPercent ( sal_uInt8 n ) { nWidthPercent = n; } 100 }; 101 102 inline const SwFmtFrmSize &SwAttrSet::GetFrmSize(sal_Bool bInP) const 103 { return (const SwFmtFrmSize&)Get( RES_FRM_SIZE,bInP); } 104 105 inline const SwFmtFrmSize &SwFmt::GetFrmSize(sal_Bool bInP) const 106 { return aSet.GetFrmSize(bInP); } 107 108 #endif 109 110