summaryrefslogtreecommitdiff
path: root/sw/source/ui/inc/prcntfld.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/inc/prcntfld.hxx')
-rw-r--r--sw/source/ui/inc/prcntfld.hxx99
1 files changed, 99 insertions, 0 deletions
diff --git a/sw/source/ui/inc/prcntfld.hxx b/sw/source/ui/inc/prcntfld.hxx
new file mode 100644
index 000000000000..e506f31de708
--- /dev/null
+++ b/sw/source/ui/inc/prcntfld.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _PRCNTFLD_HXX
+#define _PRCNTFLD_HXX
+
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#include "swdllapi.h"
+
+class SW_DLLPUBLIC PercentField : public MetricField
+{
+ sal_Int64 nRefValue; // 100%-Wert fuer Umrechnung (in Twips)
+ sal_Int64 nOldMax;
+ sal_Int64 nOldMin;
+ sal_Int64 nOldSpinSize;
+ sal_Int64 nOldBaseValue;
+ sal_Int64 nLastPercent;
+ sal_Int64 nLastValue;
+ USHORT nOldDigits;
+ FieldUnit eOldUnit;
+ sal_Bool bLockAutoCalculation; //prevent recalcution of percent values when the
+ //reference value is changed
+
+ SW_DLLPRIVATE sal_Int64 ImpPower10(USHORT n);
+
+ using MetricField::SetValue;
+ using MetricField::GetValue;
+ using MetricFormatter::SetUserValue;
+ using MetricFormatter::SetBaseValue;
+ using MetricFormatter::SetMax;
+ using MetricFormatter::SetMin;
+ using NumericFormatter::IsValueModified;
+
+public:
+
+ virtual void SetValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE);
+
+ PercentField( Window* pWin, const ResId& rResId );
+
+ void SetPrcntValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE);
+
+ void SetUserValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE);
+
+ void SetBaseValue(sal_Int64 nNewValue, FieldUnit eInUnit = FUNIT_NONE);
+
+ sal_Int64 GetValue(FieldUnit eOutUnit = FUNIT_NONE);
+
+ BOOL IsValueModified();
+
+ //using NumericFormatter::SetMax;
+ void SetMax(sal_Int64 nNewMax, FieldUnit eInUnit = FUNIT_NONE);
+
+ //using NumericFormatter::SetMin;
+ void SetMin(sal_Int64 nNewMin, FieldUnit eInUnit = FUNIT_NONE);
+
+ sal_Int64 NormalizePercent(sal_Int64 nValue);
+ sal_Int64 DenormalizePercent(sal_Int64 nValue);
+
+ void SetRefValue(sal_Int64 nValue);
+ inline sal_Int64 GetRefValue() const { return nRefValue; }
+ sal_Int64 GetRealValue(FieldUnit eOutUnit = FUNIT_NONE);
+
+ sal_Int64 Convert(sal_Int64 nValue, FieldUnit eInUnit, FieldUnit eOutUnit);
+
+ void ShowPercent(BOOL bPercent);
+
+ USHORT GetOldDigits() const {return nOldDigits;}
+
+ void LockAutoCalculation(sal_Bool bLock) {bLockAutoCalculation = bLock;}
+ sal_Bool IsAutoCalculationLocked()const {return bLockAutoCalculation;}
+};
+
+#endif // _PRCNTFLD_HXX
+