/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_ #define _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_ #include "commoncontrol.hxx" #define _ZFORLIST_DECLARE_TABLE #include #include #include "standardcontrol.hxx" class SvNumberFormatsSupplierObj; //............................................................................ namespace pcr { //............................................................................ //======================================================================== //= NumberFormatSampleField //======================================================================== class NumberFormatSampleField : public ControlWindow< FormattedField > { private: typedef ControlWindow< FormattedField > BaseClass; public: NumberFormatSampleField( Window* _pParent, WinBits _nStyle ) :BaseClass( _pParent, _nStyle ) { } void SetFormatSupplier( const SvNumberFormatsSupplierObj* pSupplier ); protected: virtual long PreNotify( NotifyEvent& rNEvt ); }; //======================================================================== //= OFormatSampleControl //======================================================================== typedef CommonBehaviourControl< ::com::sun::star::inspection::XPropertyControl, NumberFormatSampleField > OFormatSampleControl_Base; class OFormatSampleControl : public OFormatSampleControl_Base { public: OFormatSampleControl( Window* pParent, WinBits nWinStyle ); // XPropertyControl virtual ::com::sun::star::uno::Any SAL_CALL getValue() throw (::com::sun::star::uno::RuntimeException); virtual void SAL_CALL setValue( const ::com::sun::star::uno::Any& _value ) throw (::com::sun::star::beans::IllegalTypeException, ::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Type SAL_CALL getValueType() throw (::com::sun::star::uno::RuntimeException); inline void SetFormatSupplier( const SvNumberFormatsSupplierObj* _pSupplier ) { getTypedControlWindow()->SetFormatSupplier( _pSupplier ); } /** returns the default preview value for the given format key * * \param _pNF the number formatter * \param _nFormatKey the format key * \return current date or time or the value 1234.56789 */ static double getPreviewValue(SvNumberFormatter* _pNF,sal_Int32 _nFormatKey); private: static double getPreviewValue( const SvNumberformat& i_rEntry ); }; //======================================================================== //= FormatDescription //======================================================================== struct FormatDescription { SvNumberFormatsSupplierObj* pSupplier; sal_Int32 nKey; }; //======================================================================== //= OFormattedNumericControl //======================================================================== typedef CommonBehaviourControl< ::com::sun::star::inspection::XPropertyControl, ControlWindow< FormattedField > > OFormattedNumericControl_Base; class OFormattedNumericControl : public OFormattedNumericControl_Base { private: sal_Int32 m_nLastDecimalDigits; public: OFormattedNumericControl( Window* pParent, WinBits nWinStyle = WB_TABSTOP); // XPropertyControl virtual ::com::sun::star::uno::Any SAL_CALL getValue() throw (::com::sun::star::uno::RuntimeException); virtual void SAL_CALL setValue( const ::com::sun::star::uno::Any& _value ) throw (::com::sun::star::beans::IllegalTypeException, ::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Type SAL_CALL getValueType() throw (::com::sun::star::uno::RuntimeException); void SetFormatDescription( const FormatDescription& rDesc ); // make some FormattedField methods available void SetDecimalDigits(sal_uInt16 nPrecision) { getTypedControlWindow()->SetDecimalDigits(nPrecision); m_nLastDecimalDigits = nPrecision; } void SetDefaultValue(double dDef) { getTypedControlWindow()->SetDefaultValue(dDef); } void EnableEmptyField(sal_Bool bEnable) { getTypedControlWindow()->EnableEmptyField(bEnable); } void SetThousandsSep(sal_Bool bEnable) { getTypedControlWindow()->SetThousandsSep(bEnable); } protected: ~OFormattedNumericControl(); }; //======================================================================== //= OFileUrlControl //======================================================================== typedef CommonBehaviourControl< ::com::sun::star::inspection::XPropertyControl, ControlWindow< ::svt::FileURLBox > > OFileUrlControl_Base; class OFileUrlControl : public OFileUrlControl_Base { public: OFileUrlControl( Window* pParent, WinBits nWinStyle ); // XPropertyControl virtual ::com::sun::star::uno::Any SAL_CALL getValue() throw (::com::sun::star::uno::RuntimeException); virtual void SAL_CALL setValue( const ::com::sun::star::uno::Any& _value ) throw (::com::sun::star::beans::IllegalTypeException, ::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Type SAL_CALL getValueType() throw (::com::sun::star::uno::RuntimeException); protected: ~OFileUrlControl(); }; //======================================================================== //= OTimeDurationControl //======================================================================== class OTimeDurationControl : public ONumericControl { public: OTimeDurationControl( ::Window* pParent, WinBits nWinStyle ); ~OTimeDurationControl(); // XPropertyControl ::sal_Int16 SAL_CALL getControlType() throw (::com::sun::star::uno::RuntimeException); private: DECL_LINK( OnCustomConvert, MetricField* ); }; //............................................................................ } // namespace pcr //............................................................................ #endif // _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_