1*1d2dbeb0SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*1d2dbeb0SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*1d2dbeb0SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*1d2dbeb0SAndrew Rist * distributed with this work for additional information 6*1d2dbeb0SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*1d2dbeb0SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*1d2dbeb0SAndrew Rist * "License"); you may not use this file except in compliance 9*1d2dbeb0SAndrew Rist * with the License. You may obtain a copy of the License at 10*1d2dbeb0SAndrew Rist * 11*1d2dbeb0SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*1d2dbeb0SAndrew Rist * 13*1d2dbeb0SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*1d2dbeb0SAndrew Rist * software distributed under the License is distributed on an 15*1d2dbeb0SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*1d2dbeb0SAndrew Rist * KIND, either express or implied. See the License for the 17*1d2dbeb0SAndrew Rist * specific language governing permissions and limitations 18*1d2dbeb0SAndrew Rist * under the License. 19*1d2dbeb0SAndrew Rist * 20*1d2dbeb0SAndrew Rist *************************************************************/ 21*1d2dbeb0SAndrew Rist 22*1d2dbeb0SAndrew Rist 23cdf0e10cSrcweir #ifndef _PRCNTFLD_HXX 24cdf0e10cSrcweir #define _PRCNTFLD_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #ifndef _FIELD_HXX //autogen 27cdf0e10cSrcweir #include <vcl/field.hxx> 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir #include "swdllapi.h" 30cdf0e10cSrcweir 31cdf0e10cSrcweir class SW_DLLPUBLIC PercentField : public MetricField 32cdf0e10cSrcweir { 33cdf0e10cSrcweir sal_Int64 nRefValue; // 100%-Wert fuer Umrechnung (in Twips) 34cdf0e10cSrcweir sal_Int64 nOldMax; 35cdf0e10cSrcweir sal_Int64 nOldMin; 36cdf0e10cSrcweir sal_Int64 nOldSpinSize; 37cdf0e10cSrcweir sal_Int64 nOldBaseValue; 38cdf0e10cSrcweir sal_Int64 nLastPercent; 39cdf0e10cSrcweir sal_Int64 nLastValue; 40cdf0e10cSrcweir sal_uInt16 nOldDigits; 41cdf0e10cSrcweir FieldUnit eOldUnit; 42cdf0e10cSrcweir sal_Bool bLockAutoCalculation; //prevent recalcution of percent values when the 43cdf0e10cSrcweir //reference value is changed 44cdf0e10cSrcweir 45cdf0e10cSrcweir SW_DLLPRIVATE sal_Int64 ImpPower10(sal_uInt16 n); 46cdf0e10cSrcweir 47cdf0e10cSrcweir using MetricField::SetValue; 48cdf0e10cSrcweir using MetricField::GetValue; 49cdf0e10cSrcweir using MetricFormatter::SetUserValue; 50cdf0e10cSrcweir using MetricFormatter::SetBaseValue; 51cdf0e10cSrcweir using MetricFormatter::SetMax; 52cdf0e10cSrcweir using MetricFormatter::SetMin; 53cdf0e10cSrcweir using NumericFormatter::IsValueModified; 54cdf0e10cSrcweir 55cdf0e10cSrcweir public: 56cdf0e10cSrcweir 57cdf0e10cSrcweir virtual void SetValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE); 58cdf0e10cSrcweir 59cdf0e10cSrcweir PercentField( Window* pWin, const ResId& rResId ); 60cdf0e10cSrcweir 61cdf0e10cSrcweir void SetPrcntValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE); 62cdf0e10cSrcweir 63cdf0e10cSrcweir void SetUserValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE); 64cdf0e10cSrcweir 65cdf0e10cSrcweir void SetBaseValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE); 66cdf0e10cSrcweir 67cdf0e10cSrcweir sal_Int64 GetValue(FieldUnit eOutUnit = FUNIT_NONE); 68cdf0e10cSrcweir 69cdf0e10cSrcweir sal_Bool IsValueModified(); 70cdf0e10cSrcweir 71cdf0e10cSrcweir //using NumericFormatter::SetMax; 72cdf0e10cSrcweir void SetMax(sal_Int64 nNewMax, FieldUnit eInUnit = FUNIT_NONE); 73cdf0e10cSrcweir 74cdf0e10cSrcweir //using NumericFormatter::SetMin; 75cdf0e10cSrcweir void SetMin(sal_Int64 nNewMin, FieldUnit eInUnit = FUNIT_NONE); 76cdf0e10cSrcweir 77cdf0e10cSrcweir sal_Int64 NormalizePercent(sal_Int64 nValue); 78cdf0e10cSrcweir sal_Int64 DenormalizePercent(sal_Int64 nValue); 79cdf0e10cSrcweir 80cdf0e10cSrcweir void SetRefValue(sal_Int64 nValue); GetRefValue() const81cdf0e10cSrcweir inline sal_Int64 GetRefValue() const { return nRefValue; } 82cdf0e10cSrcweir sal_Int64 GetRealValue(FieldUnit eOutUnit = FUNIT_NONE); 83cdf0e10cSrcweir 84cdf0e10cSrcweir sal_Int64 Convert(sal_Int64 nValue, FieldUnit eInUnit, FieldUnit eOutUnit); 85cdf0e10cSrcweir 86cdf0e10cSrcweir void ShowPercent(sal_Bool bPercent); 87cdf0e10cSrcweir GetOldDigits() const88cdf0e10cSrcweir sal_uInt16 GetOldDigits() const {return nOldDigits;} 89cdf0e10cSrcweir LockAutoCalculation(sal_Bool bLock)90cdf0e10cSrcweir void LockAutoCalculation(sal_Bool bLock) {bLockAutoCalculation = bLock;} IsAutoCalculationLocked() const91cdf0e10cSrcweir sal_Bool IsAutoCalculationLocked()const {return bLockAutoCalculation;} 92cdf0e10cSrcweir }; 93cdf0e10cSrcweir 94cdf0e10cSrcweir #endif // _PRCNTFLD_HXX 95cdf0e10cSrcweir 96