diff options
-rw-r--r-- | svtools/inc/svtools/ctrlbox.hxx | 1 | ||||
-rw-r--r-- | svtools/source/control/ctrlbox.cxx | 21 |
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 ) |