diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-02-17 15:07:34 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-02-18 09:54:06 +0100 |
commit | 2c484d1f383970672f3062d84201109a064c5a36 (patch) | |
tree | b27cb7370f96072d1dcc80965e4e63d222c625e4 /svtools | |
parent | ada37301a5c133e913cebde3fcddaee947d3dafb (diff) |
move SVTXFormattedField, SVTXCurrencyField, SVTXNumericField to toolkit
Change-Id: If22200a4f342d4d779c612dbace61a4cf99471ab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88866
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/inc/pch/precompiled_svt.hxx | 3 | ||||
-rw-r--r-- | svtools/source/inc/unoiface.hxx | 128 | ||||
-rw-r--r-- | svtools/source/uno/unoiface.cxx | 1003 |
3 files changed, 2 insertions, 1132 deletions
diff --git a/svtools/inc/pch/precompiled_svt.hxx b/svtools/inc/pch/precompiled_svt.hxx index 9c26692d3ba7..c19910941278 100644 --- a/svtools/inc/pch/precompiled_svt.hxx +++ b/svtools/inc/pch/precompiled_svt.hxx @@ -13,7 +13,7 @@ manual changes will be rewritten by the next run of update_pch.sh (which presumably also fixes all possible problems, so it's usually better to use it). - Generated on 2020-02-17 12:25:57 using: + Generated on 2020-02-17 15:12:29 using: ./bin/update_pch svtools svt --cutoff=4 --exclude:system --include:module --exclude:local If after updating build fails, use the following command to locate conflicting headers: @@ -274,6 +274,7 @@ #include <com/sun/star/util/DateTime.hpp> #include <com/sun/star/util/Time.hpp> #include <com/sun/star/util/URLTransformer.hpp> +#include <com/sun/star/util/XNumberFormatsSupplier.hpp> #include <com/sun/star/util/XUpdatable.hpp> #include <com/sun/star/view/PrintableState.hpp> #include <com/sun/star/view/XSelectionChangeListener.hpp> diff --git a/svtools/source/inc/unoiface.hxx b/svtools/source/inc/unoiface.hxx index 7696d32fd5b9..069e62d0ccd8 100644 --- a/svtools/source/inc/unoiface.hxx +++ b/svtools/source/inc/unoiface.hxx @@ -98,134 +98,6 @@ public: virtual void GetPropertyIds( std::vector< sal_uInt16 > &aIds ) override { return ImplGetPropertyIds( aIds ); } }; -class SVTXFormattedField : public VCLXSpinField -{ -protected: - rtl::Reference<SvNumberFormatsSupplierObj> m_xCurrentSupplier; - bool bIsStandardSupplier; - - sal_Int32 nKeyToSetDelayed; - -public: - SVTXFormattedField(); - virtual ~SVTXFormattedField() override; - - // css::awt::XVclWindowPeer - void SAL_CALL setProperty( const OUString& PropertyName, const css::uno::Any& Value ) override; - css::uno::Any SAL_CALL getProperty( const OUString& PropertyName ) override; - -protected: - void setFormatsSupplier(const css::uno::Reference< css::util::XNumberFormatsSupplier > & xSupplier); - sal_Int32 getFormatKey() const; - void setFormatKey(sal_Int32 nKey); - - void SetValue(const css::uno::Any& rValue); - css::uno::Any GetValue() const; - - void SetTreatAsNumber(bool bSet); - bool GetTreatAsNumber() const; - - void SetDefaultValue(const css::uno::Any& rValue); - css::uno::Any GetDefaultValue() const; - - void SetMinValue(const css::uno::Any& rValue); - css::uno::Any GetMinValue() const; - - void SetMaxValue(const css::uno::Any& rValue); - css::uno::Any GetMaxValue() const; - - void NotifyTextListeners(); - css::uno::Any convertEffectiveValue(const css::uno::Any& rValue); - - virtual void SetWindow( const VclPtr< vcl::Window > &_pWindow) override; - - static void ImplGetPropertyIds( std::vector< sal_uInt16 > &aIds ); - virtual void GetPropertyIds( std::vector< sal_uInt16 > &aIds ) override { return ImplGetPropertyIds( aIds ); } -}; - - - -class SVTXNumericField : public css::awt::XNumericField, public SVTXFormattedField -{ -public: - SVTXNumericField(); - virtual ~SVTXNumericField() override; - - // css::uno::XInterface - css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override; - void SAL_CALL acquire() throw() override { SVTXFormattedField::acquire(); } - void SAL_CALL release() throw() override { SVTXFormattedField::release(); } - - // css::lang::XTypeProvider - css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override; - css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; - - // css::awt::XNumericField - void SAL_CALL setValue( double Value ) override; - double SAL_CALL getValue( ) override; - void SAL_CALL setMin( double Value ) override; - double SAL_CALL getMin( ) override; - void SAL_CALL setMax( double Value ) override; - double SAL_CALL getMax( ) override; - void SAL_CALL setFirst( double Value ) override; - double SAL_CALL getFirst( ) override; - void SAL_CALL setLast( double Value ) override; - double SAL_CALL getLast( ) override; - void SAL_CALL setSpinSize( double Value ) override; - double SAL_CALL getSpinSize( ) override; - void SAL_CALL setDecimalDigits( sal_Int16 nDigits ) override; - sal_Int16 SAL_CALL getDecimalDigits( ) override; - void SAL_CALL setStrictFormat( sal_Bool bStrict ) override; - sal_Bool SAL_CALL isStrictFormat( ) override; - - virtual void GetPropertyIds( std::vector< sal_uInt16 > &aIds ) override; -}; - - - -class SVTXCurrencyField : public css::awt::XCurrencyField, public SVTXFormattedField -{ -public: - SVTXCurrencyField(); - virtual ~SVTXCurrencyField() override; - - // css::uno::XInterface - css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override; - void SAL_CALL acquire() throw() override { SVTXFormattedField::acquire(); } - void SAL_CALL release() throw() override { SVTXFormattedField::release(); } - - // css::lang::XTypeProvider - css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override; - css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; - - // css::awt::XVclWindowPeer - void SAL_CALL setProperty( const OUString& PropertyName, const css::uno::Any& Value ) override; - css::uno::Any SAL_CALL getProperty( const OUString& PropertyName ) override; - - // css::awt::XCurrencyField - void SAL_CALL setValue( double Value ) override; - double SAL_CALL getValue( ) override; - void SAL_CALL setMin( double Value ) override; - double SAL_CALL getMin( ) override; - void SAL_CALL setMax( double Value ) override; - double SAL_CALL getMax( ) override; - void SAL_CALL setFirst( double Value ) override; - double SAL_CALL getFirst( ) override; - void SAL_CALL setLast( double Value ) override; - double SAL_CALL getLast( ) override; - void SAL_CALL setSpinSize( double Value ) override; - double SAL_CALL getSpinSize( ) override; - void SAL_CALL setDecimalDigits( sal_Int16 nDigits ) override; - sal_Int16 SAL_CALL getDecimalDigits( ) override; - void SAL_CALL setStrictFormat( sal_Bool bStrict ) override; - sal_Bool SAL_CALL isStrictFormat( ) override; - - static void ImplGetPropertyIds( std::vector< sal_uInt16 > &aIds ); - virtual void GetPropertyIds( std::vector< sal_uInt16 > &aIds ) override { return ImplGetPropertyIds( aIds ); } -}; - - - class SVTXDateField : public VCLXDateField { public: diff --git a/svtools/source/uno/unoiface.cxx b/svtools/source/uno/unoiface.cxx index b7f80ff920f4..8dd0f390144e 100644 --- a/svtools/source/uno/unoiface.cxx +++ b/svtools/source/uno/unoiface.cxx @@ -28,7 +28,6 @@ #include <cppuhelper/typeprovider.hxx> #include <toolkit/helper/convert.hxx> #include <toolkit/helper/property.hxx> -#include <vcl/fmtfield.hxx> #include <svl/numuno.hxx> #include <svtools/calendar.hxx> #include "svtxgridcontrol.hxx" @@ -71,21 +70,6 @@ SAL_DLLPUBLIC_EXPORT vcl::Window* CreateWindow( VCLXWindow** ppNewComp, const cs return nullptr; } } - else if (aServiceName.equalsIgnoreAsciiCase("FormattedField") ) - { - pWindow = VclPtr<FormattedField>::Create( pParent, nWinBits ); - *ppNewComp = new SVTXFormattedField; - } - else if (aServiceName.equalsIgnoreAsciiCase("NumericField") ) - { - pWindow = VclPtr<DoubleNumericField>::Create( pParent, nWinBits ); - *ppNewComp = new SVTXNumericField; - } - else if (aServiceName.equalsIgnoreAsciiCase("LongCurrencyField") ) - { - pWindow = VclPtr<DoubleCurrencyField>::Create( pParent, nWinBits ); - *ppNewComp = new SVTXCurrencyField; - } else if (aServiceName.equalsIgnoreAsciiCase("datefield") ) { pWindow = VclPtr<CalendarField>::Create( pParent, nWinBits); @@ -483,993 +467,6 @@ void VCLXMultiLineEdit::ImplGetPropertyIds( std::vector< sal_uInt16 > &rIds ) VCLXWindow::ImplGetPropertyIds( rIds, true ); } -SVTXFormattedField::SVTXFormattedField() - :bIsStandardSupplier(true) - ,nKeyToSetDelayed(-1) -{ -} - - -SVTXFormattedField::~SVTXFormattedField() -{ -} - - -void SVTXFormattedField::SetWindow( const VclPtr< vcl::Window > &_pWindow ) -{ - VCLXSpinField::SetWindow(_pWindow); - if (GetAs< FormattedField >()) - GetAs< FormattedField >()->SetAutoColor(true); -} - - -void SVTXFormattedField::setProperty( const OUString& PropertyName, const css::uno::Any& Value) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - { - sal_uInt16 nPropType = GetPropertyId( PropertyName ); - switch (nPropType) - { - case BASEPROPERTY_ENFORCE_FORMAT: - { - bool bEnable( true ); - if ( Value >>= bEnable ) - pField->EnableNotANumber( !bEnable ); - } - break; - - case BASEPROPERTY_EFFECTIVE_MIN: - case BASEPROPERTY_VALUEMIN_DOUBLE: - SetMinValue(Value); - break; - - case BASEPROPERTY_EFFECTIVE_MAX: - case BASEPROPERTY_VALUEMAX_DOUBLE: - SetMaxValue(Value); - break; - - case BASEPROPERTY_EFFECTIVE_DEFAULT: - SetDefaultValue(Value); - break; - - case BASEPROPERTY_TREATASNUMBER: - { - bool b; - if ( Value >>= b ) - SetTreatAsNumber(b); - } - break; - - case BASEPROPERTY_FORMATSSUPPLIER: - if (!Value.hasValue()) - setFormatsSupplier(css::uno::Reference< css::util::XNumberFormatsSupplier > (nullptr)); - else - { - css::uno::Reference< css::util::XNumberFormatsSupplier > xNFS; - if ( Value >>= xNFS ) - setFormatsSupplier(xNFS); - } - break; - case BASEPROPERTY_FORMATKEY: - if (!Value.hasValue()) - setFormatKey(0); - else - { - sal_Int32 n = 0; - if ( Value >>= n ) - setFormatKey(n); - } - break; - - case BASEPROPERTY_EFFECTIVE_VALUE: - case BASEPROPERTY_VALUE_DOUBLE: - { - const css::uno::TypeClass rTC = Value.getValueType().getTypeClass(); - if (rTC != css::uno::TypeClass_STRING) - // no string - if (rTC != css::uno::TypeClass_DOUBLE) - // no double - if (Value.hasValue()) - { // but a value - // try if it is something convertible - sal_Int32 nValue = 0; - if (!(Value >>= nValue)) - throw css::lang::IllegalArgumentException(); - SetValue(css::uno::makeAny(static_cast<double>(nValue))); - break; - } - - SetValue(Value); - } - break; - case BASEPROPERTY_VALUESTEP_DOUBLE: - { - double d = 0.0; - if ( Value >>= d ) - pField->SetSpinSize( d ); - else - { - sal_Int32 n = 0; - if ( Value >>= n ) - pField->SetSpinSize( n ); - } - } - break; - case BASEPROPERTY_DECIMALACCURACY: - { - sal_Int32 n = 0; - if ( Value >>= n ) - pField->SetDecimalDigits( static_cast<sal_uInt16>(n) ); - } - break; - case BASEPROPERTY_NUMSHOWTHOUSANDSEP: - { - bool b; - if ( Value >>= b ) - pField->SetThousandsSep( b ); - } - break; - - default: - VCLXSpinField::setProperty( PropertyName, Value ); - } - - if (BASEPROPERTY_TEXTCOLOR == nPropType) - { // after setting a new text color, think again about the AutoColor flag of the control - // 17.05.2001 - 86859 - frank.schoenheit@germany.sun.com - pField->SetAutoColor(!Value.hasValue()); - } - } - else - VCLXSpinField::setProperty( PropertyName, Value ); -} - - -css::uno::Any SVTXFormattedField::getProperty( const OUString& PropertyName ) -{ - SolarMutexGuard aGuard; - - css::uno::Any aReturn; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - { - sal_uInt16 nPropType = GetPropertyId( PropertyName ); - switch (nPropType) - { - case BASEPROPERTY_EFFECTIVE_MIN: - case BASEPROPERTY_VALUEMIN_DOUBLE: - aReturn = GetMinValue(); - break; - - case BASEPROPERTY_EFFECTIVE_MAX: - case BASEPROPERTY_VALUEMAX_DOUBLE: - aReturn = GetMaxValue(); - break; - - case BASEPROPERTY_EFFECTIVE_DEFAULT: - aReturn = GetDefaultValue(); - break; - - case BASEPROPERTY_TREATASNUMBER: - aReturn <<= GetTreatAsNumber(); - break; - - case BASEPROPERTY_EFFECTIVE_VALUE: - case BASEPROPERTY_VALUE_DOUBLE: - aReturn = GetValue(); - break; - - case BASEPROPERTY_VALUESTEP_DOUBLE: - aReturn <<= pField->GetSpinSize(); - break; - - case BASEPROPERTY_DECIMALACCURACY: - aReturn <<= pField->GetDecimalDigits(); - break; - - case BASEPROPERTY_FORMATSSUPPLIER: - { - if (!bIsStandardSupplier) - { // ansonsten void - css::uno::Reference< css::util::XNumberFormatsSupplier > xSupplier = m_xCurrentSupplier.get(); - aReturn <<= xSupplier; - } - } - break; - - case BASEPROPERTY_FORMATKEY: - { - if (!bIsStandardSupplier) - aReturn <<= getFormatKey(); - } - break; - - default: - aReturn = VCLXSpinField::getProperty(PropertyName); - } - } - return aReturn; -} - -css::uno::Any SVTXFormattedField::convertEffectiveValue(const css::uno::Any& rValue) -{ - css::uno::Any aReturn; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField) - return aReturn; - - switch (rValue.getValueType().getTypeClass()) - { - case css::uno::TypeClass_DOUBLE: - if (pField->TreatingAsNumber()) - { - double d = 0.0; - rValue >>= d; - aReturn <<= d; - } - else - { - SvNumberFormatter* pFormatter = pField->GetFormatter(); - if (!pFormatter) - pFormatter = pField->StandardFormatter(); - // should never fail - - Color* pDum; - double d = 0.0; - rValue >>= d; - OUString sConverted; - pFormatter->GetOutputString(d, 0, sConverted, &pDum); - aReturn <<= sConverted; - } - break; - case css::uno::TypeClass_STRING: - { - OUString aStr; - rValue >>= aStr; - if (pField->TreatingAsNumber()) - { - SvNumberFormatter* pFormatter = pField->GetFormatter(); - if (!pFormatter) - pFormatter = pField->StandardFormatter(); - - double dVal; - sal_uInt32 nTestFormat(0); - if (!pFormatter->IsNumberFormat(aStr, nTestFormat, dVal)) - aReturn.clear(); - aReturn <<= dVal; - } - else - aReturn <<= aStr; - } - break; - default: - aReturn.clear(); - break; - } - return aReturn; -} - - -void SVTXFormattedField::SetMinValue(const css::uno::Any& rValue) -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField) - return; - - switch (rValue.getValueType().getTypeClass()) - - { - case css::uno::TypeClass_DOUBLE: - { - double d = 0.0; - rValue >>= d; - pField->SetMinValue(d); - } - break; - default: - DBG_ASSERT(rValue.getValueType().getTypeClass() == css::uno::TypeClass_VOID, "SVTXFormattedField::SetMinValue : invalid argument (an exception will be thrown) !"); - if ( rValue.getValueType().getTypeClass() != css::uno::TypeClass_VOID ) - - { - throw css::lang::IllegalArgumentException(); - } - pField->ClearMinValue(); - break; - } -} - - -css::uno::Any SVTXFormattedField::GetMinValue() const -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField || !pField->HasMinValue()) - return css::uno::Any(); - - css::uno::Any aReturn; - aReturn <<= pField->GetMinValue(); - return aReturn; -} - - -void SVTXFormattedField::SetMaxValue(const css::uno::Any& rValue) -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField) - return; - - switch (rValue.getValueType().getTypeClass()) - - { - case css::uno::TypeClass_DOUBLE: - { - double d = 0.0; - rValue >>= d; - pField->SetMaxValue(d); - } - break; - default: - if (rValue.getValueType().getTypeClass() != css::uno::TypeClass_VOID) - - { - throw css::lang::IllegalArgumentException(); - } - pField->ClearMaxValue(); - break; - } -} - - -css::uno::Any SVTXFormattedField::GetMaxValue() const -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField || !pField->HasMaxValue()) - return css::uno::Any(); - - css::uno::Any aReturn; - aReturn <<= pField->GetMaxValue(); - return aReturn; -} - - -void SVTXFormattedField::SetDefaultValue(const css::uno::Any& rValue) -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField) - return; - - css::uno::Any aConverted = convertEffectiveValue(rValue); - - switch (aConverted.getValueType().getTypeClass()) - - { - case css::uno::TypeClass_DOUBLE: - { - double d = 0.0; - aConverted >>= d; - pField->SetDefaultValue(d); - } - break; - case css::uno::TypeClass_STRING: - { - OUString aStr; - aConverted >>= aStr; - pField->SetDefaultText( aStr ); - } - break; - default: - pField->EnableEmptyField(true); - // only void accepted - break; - } -} - - -css::uno::Any SVTXFormattedField::GetDefaultValue() const -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField || pField->IsEmptyFieldEnabled()) - return css::uno::Any(); - - css::uno::Any aReturn; - if (pField->TreatingAsNumber()) - aReturn <<= pField->GetDefaultValue(); - else - aReturn <<= pField->GetDefaultText(); - return aReturn; -} - - -bool SVTXFormattedField::GetTreatAsNumber() const -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (pField) - return pField->TreatingAsNumber(); - - return true; -} - - -void SVTXFormattedField::SetTreatAsNumber(bool bSet) -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (pField) - pField->TreatAsNumber(bSet); -} - - -css::uno::Any SVTXFormattedField::GetValue() const -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField) - return css::uno::Any(); - - css::uno::Any aReturn; - if (!pField->TreatingAsNumber()) - { - OUString sText = pField->GetTextValue(); - aReturn <<= sText; - } - else - { - if (!pField->GetText().isEmpty()) // empty is returned as void by default - aReturn <<= pField->GetValue(); - } - - return aReturn; -} - - -void SVTXFormattedField::SetValue(const css::uno::Any& rValue) -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField) - return; - - if (!rValue.hasValue()) - { - pField->SetText(""); - } - else - { - if (rValue.getValueType().getTypeClass() == css::uno::TypeClass_DOUBLE ) - { - double d = 0.0; - rValue >>= d; - pField->SetValue(d); - } - else - { - DBG_ASSERT(rValue.getValueType().getTypeClass() == css::uno::TypeClass_STRING, "SVTXFormattedField::SetValue : invalid argument !"); - - OUString sText; - rValue >>= sText; - if (!pField->TreatingAsNumber()) - pField->SetTextFormatted(sText); - else - pField->SetTextValue(sText); - } - } -// NotifyTextListeners(); -} - - -void SVTXFormattedField::setFormatsSupplier(const css::uno::Reference< css::util::XNumberFormatsSupplier > & xSupplier) -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - - SvNumberFormatsSupplierObj* pNew = nullptr; - if (!xSupplier.is()) - { - if (pField) - { - pNew = new SvNumberFormatsSupplierObj(pField->StandardFormatter()); - bIsStandardSupplier = true; - } - } - else - { - pNew = comphelper::getUnoTunnelImplementation<SvNumberFormatsSupplierObj>(xSupplier); - bIsStandardSupplier = false; - } - - if (!pNew) - return; // TODO : how to process ? - - m_xCurrentSupplier = pNew; - if (!pField) - return; - - // save the actual value - css::uno::Any aCurrent = GetValue(); - pField->SetFormatter(m_xCurrentSupplier->GetNumberFormatter(), false); - if (nKeyToSetDelayed != -1) - { - pField->SetFormatKey(nKeyToSetDelayed); - nKeyToSetDelayed = -1; - } - SetValue(aCurrent); - NotifyTextListeners(); -} - - -sal_Int32 SVTXFormattedField::getFormatKey() const -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetFormatKey() : 0; -} - - -void SVTXFormattedField::setFormatKey(sal_Int32 nKey) -{ - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if (!pField) - return; - - if (pField->GetFormatter()) - pField->SetFormatKey(nKey); - else - { - // probably I am in a block, in which first the key and next the formatter will be set, - // initially this happens quite certain, as the properties are set in alphabetic sequence, - // and the FormatsSupplier is processed before the FormatKey - nKeyToSetDelayed = nKey; - } - NotifyTextListeners(); -} - - -void SVTXFormattedField::NotifyTextListeners() -{ - if ( GetTextListeners().getLength() ) - { - css::awt::TextEvent aEvent; - aEvent.Source = static_cast<cppu::OWeakObject*>(this); - GetTextListeners().textChanged( aEvent ); - } -} - -void SVTXFormattedField::ImplGetPropertyIds( std::vector< sal_uInt16 > &rIds ) -{ - PushPropertyIds( rIds, - // FIXME: elide duplication ? - BASEPROPERTY_EFFECTIVE_MIN, - BASEPROPERTY_VALUEMIN_DOUBLE, - BASEPROPERTY_EFFECTIVE_MAX, - BASEPROPERTY_VALUEMAX_DOUBLE, - BASEPROPERTY_EFFECTIVE_DEFAULT, - BASEPROPERTY_TREATASNUMBER, - BASEPROPERTY_EFFECTIVE_VALUE, - BASEPROPERTY_VALUE_DOUBLE, - BASEPROPERTY_VALUESTEP_DOUBLE, - BASEPROPERTY_DECIMALACCURACY, - BASEPROPERTY_FORMATSSUPPLIER, - BASEPROPERTY_NUMSHOWTHOUSANDSEP, - BASEPROPERTY_FORMATKEY, - BASEPROPERTY_TREATASNUMBER, - BASEPROPERTY_ENFORCE_FORMAT, - 0); - VCLXWindow::ImplGetPropertyIds( rIds, true ); - VCLXSpinField::ImplGetPropertyIds( rIds ); -} - - - -SVTXNumericField::SVTXNumericField() -{ -} - -SVTXNumericField::~SVTXNumericField() -{ -} - -css::uno::Any SVTXNumericField::queryInterface( const css::uno::Type & rType ) -{ - css::uno::Any aRet = ::cppu::queryInterface( rType, - static_cast< css::awt::XNumericField* >(this), - static_cast< css::lang::XTypeProvider* >(this) ); - return (aRet.hasValue() ? aRet : SVTXFormattedField::queryInterface( rType )); -} - -IMPL_IMPLEMENTATION_ID( SVTXNumericField ) - -// css::lang::XTypeProvider -css::uno::Sequence< css::uno::Type > SVTXNumericField::getTypes() -{ - static const ::cppu::OTypeCollection aTypeList( - cppu::UnoType<css::lang::XTypeProvider>::get(), - cppu::UnoType<css::awt::XNumericField>::get(), - SVTXFormattedField::getTypes() - ); - return aTypeList.getTypes(); -} - - -void SVTXNumericField::setValue( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetValue( Value ); -} - -double SVTXNumericField::getValue() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetValue() : 0; -} - -void SVTXNumericField::setMin( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetMinValue( Value ); -} - -double SVTXNumericField::getMin() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetMinValue() : 0; -} - -void SVTXNumericField::setMax( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetMaxValue( Value ); -} - -double SVTXNumericField::getMax() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetMaxValue() : 0; -} - -void SVTXNumericField::setFirst( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetSpinFirst( Value ); -} - -double SVTXNumericField::getFirst() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetSpinFirst() : 0; -} - -void SVTXNumericField::setLast( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetSpinLast( Value ); -} - -double SVTXNumericField::getLast() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetSpinLast() : 0; -} - -void SVTXNumericField::setSpinSize( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetSpinSize( Value ); -} - -double SVTXNumericField::getSpinSize() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetSpinSize() : 0; -} - -void SVTXNumericField::setDecimalDigits( sal_Int16 Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetDecimalDigits( Value ); -} - -sal_Int16 SVTXNumericField::getDecimalDigits() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetDecimalDigits() : 0; -} - -void SVTXNumericField::setStrictFormat( sal_Bool bStrict ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetStrictFormat( bStrict ); -} - -sal_Bool SVTXNumericField::isStrictFormat() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField && pField->IsStrictFormat(); -} - -void SVTXNumericField::GetPropertyIds( std::vector< sal_uInt16 > &rIds ) -{ - SVTXFormattedField::ImplGetPropertyIds( rIds ); -} - - - -SVTXCurrencyField::SVTXCurrencyField() -{ -} - -SVTXCurrencyField::~SVTXCurrencyField() -{ -} - -css::uno::Any SVTXCurrencyField::queryInterface( const css::uno::Type & rType ) -{ - css::uno::Any aRet = ::cppu::queryInterface( rType, - static_cast< css::awt::XCurrencyField* >(this), - static_cast< css::lang::XTypeProvider* >(this) ); - return (aRet.hasValue() ? aRet : SVTXFormattedField::queryInterface( rType )); -} - -IMPL_IMPLEMENTATION_ID( SVTXCurrencyField ) - -// css::lang::XTypeProvider -css::uno::Sequence< css::uno::Type > SVTXCurrencyField::getTypes() -{ - static const ::cppu::OTypeCollection aTypeList( - cppu::UnoType<css::lang::XTypeProvider>::get(), - cppu::UnoType<css::awt::XCurrencyField>::get(), - SVTXFormattedField::getTypes() - ); - return aTypeList.getTypes(); -} - -void SVTXCurrencyField::setValue( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetValue( Value ); -} - -double SVTXCurrencyField::getValue() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetValue() : 0; -} - -void SVTXCurrencyField::setMin( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetMinValue( Value ); -} - -double SVTXCurrencyField::getMin() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetMinValue() : 0; -} - -void SVTXCurrencyField::setMax( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetMaxValue( Value ); -} - -double SVTXCurrencyField::getMax() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetMaxValue() : 0; -} - -void SVTXCurrencyField::setFirst( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetSpinFirst( Value ); -} - -double SVTXCurrencyField::getFirst() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetSpinFirst() : 0; -} - -void SVTXCurrencyField::setLast( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetSpinLast( Value ); -} - -double SVTXCurrencyField::getLast() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetSpinLast() : 0; -} - -void SVTXCurrencyField::setSpinSize( double Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetSpinSize( Value ); -} - -double SVTXCurrencyField::getSpinSize() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetSpinSize() : 0; -} - -void SVTXCurrencyField::setDecimalDigits( sal_Int16 Value ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetDecimalDigits( Value ); -} - -sal_Int16 SVTXCurrencyField::getDecimalDigits() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField ? pField->GetDecimalDigits() : 0; -} - -void SVTXCurrencyField::setStrictFormat( sal_Bool bStrict ) -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - if ( pField ) - pField->SetStrictFormat( bStrict ); -} - -sal_Bool SVTXCurrencyField::isStrictFormat() -{ - SolarMutexGuard aGuard; - - VclPtr<FormattedField> pField = GetAs< FormattedField >(); - return pField && pField->IsStrictFormat(); -} - -void SVTXCurrencyField::setProperty( const OUString& PropertyName, const css::uno::Any& Value) -{ - SolarMutexGuard aGuard; - - VclPtr< DoubleCurrencyField > pField = GetAs< DoubleCurrencyField >(); - if ( pField ) - { - sal_uInt16 nPropType = GetPropertyId( PropertyName ); - switch (nPropType) - { - case BASEPROPERTY_CURRENCYSYMBOL: - { - OUString aStr; - Value >>= aStr; - pField->setCurrencySymbol( aStr ); - } - break; - case BASEPROPERTY_CURSYM_POSITION: - { - bool b = false; - Value >>= b; - pField->setPrependCurrSym(b); - } - break; - - default: - SVTXFormattedField::setProperty(PropertyName, Value); - } - } - else - SVTXFormattedField::setProperty(PropertyName, Value); -} - -css::uno::Any SVTXCurrencyField::getProperty( const OUString& PropertyName ) -{ - SolarMutexGuard aGuard; - - css::uno::Any aReturn; - - VclPtr< DoubleCurrencyField > pField = GetAs< DoubleCurrencyField >(); - if ( pField ) - { - sal_uInt16 nPropType = GetPropertyId( PropertyName ); - switch (nPropType) - { - case BASEPROPERTY_CURRENCYSYMBOL: - { - aReturn <<= pField->getCurrencySymbol(); - } - break; - case BASEPROPERTY_CURSYM_POSITION: - { - aReturn <<= pField->getPrependCurrSym(); - } - break; - default: - return SVTXFormattedField::getProperty(PropertyName); - } - } - return SVTXFormattedField::getProperty(PropertyName); -} - -void SVTXCurrencyField::ImplGetPropertyIds( std::vector< sal_uInt16 > &rIds ) -{ - PushPropertyIds( rIds, - BASEPROPERTY_CURRENCYSYMBOL, - BASEPROPERTY_CURSYM_POSITION, - 0); - SVTXFormattedField::ImplGetPropertyIds( rIds ); -} - - - SVTXDateField::SVTXDateField() :VCLXDateField() { |