summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svtools/inc/svtools/ctrlbox.hxx1
-rw-r--r--svtools/source/control/ctrlbox.cxx21
2 files changed, 22 insertions, 0 deletions
diff --git a/svtools/inc/svtools/ctrlbox.hxx b/svtools/inc/svtools/ctrlbox.hxx
index 0a8e566413f2..39e5bb02bcc0 100644
--- a/svtools/inc/svtools/ctrlbox.hxx
+++ b/svtools/inc/svtools/ctrlbox.hxx
@@ -539,6 +539,7 @@ public:
virtual void SetValue( sal_Int64 nNewValue );
virtual sal_Int64 GetValue( FieldUnit eOutUnit ) const;
virtual sal_Int64 GetValue() const;
+ sal_Int64 GetValue( sal_uInt16 nPos, FieldUnit eOutUnit ) const;
private:
// declared as private because some compilers would generate the default functions
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
index 684a10d6722d..663d24735e89 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -1992,6 +1992,27 @@ void FontSizeBox::SetValue( sal_Int64 nNewValue )
SetValue( nNewValue, FUNIT_NONE );
}
+// -----------------------------------------------------------------------
+
+sal_Int64 FontSizeBox::GetValue( sal_uInt16 nPos, FieldUnit eOutUnit ) const
+{
+ if ( !bRelative )
+ {
+ sal_Int64 nComboVal = static_cast<sal_Int64>(reinterpret_cast<long>(ComboBox::GetEntryData( nPos )));
+ if ( nComboVal < 0 ) // marked as special?
+ {
+ return MetricField::ConvertValue( -nComboVal, mnBaseValue, GetDecimalDigits(),
+ meUnit, eOutUnit );
+ }
+ }
+
+ // do normal font size processing
+ sal_Int64 nRetValue = MetricBox::GetValue( nPos, eOutUnit );
+ return nRetValue;
+}
+
+// -----------------------------------------------------------------------
+
sal_Int64 FontSizeBox::GetValue( FieldUnit eOutUnit ) const
{
if ( !bRelative )