1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _CHART2_TOOLS_NUMBERFORMATTERWRAPPER_HXX
24 #define _CHART2_TOOLS_NUMBERFORMATTERWRAPPER_HXX
25 
26 #include "charttoolsdllapi.hxx"
27 #include <svl/zforlist.hxx>
28 #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
29 
30 //.............................................................................
31 namespace chart
32 {
33 //.............................................................................
34 
35 //-----------------------------------------------------------------------------
36 /**
37 */
38 class FixedNumberFormatter;
39 
40 class OOO_DLLPUBLIC_CHARTTOOLS NumberFormatterWrapper
41 {
42 public:
43     NumberFormatterWrapper( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xSupplier );
44     virtual ~NumberFormatterWrapper();
45 
46     SvNumberFormatter* getSvNumberFormatter() const;
47     ::com::sun::star::uno::Reference< com::sun::star::util::XNumberFormatsSupplier >
getNumberFormatsSupplier()48                 getNumberFormatsSupplier() { return m_xNumberFormatsSupplier; };
49 
50     rtl::OUString getFormattedString( sal_Int32 nNumberFormatKey, double fValue, sal_Int32& rLabelColor, bool& rbColorChanged ) const;
51     Date    getNullDate() const;
52 
53 private: //private member
54     ::com::sun::star::uno::Reference< com::sun::star::util::XNumberFormatsSupplier >
55                         m_xNumberFormatsSupplier;
56 
57     SvNumberFormatter* m_pNumberFormatter;
58     ::com::sun::star::uno::Any m_aNullDate;
59 };
60 
61 
62 class OOO_DLLPUBLIC_CHARTTOOLS FixedNumberFormatter
63 {
64 public:
65     FixedNumberFormatter( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xSupplier
66         , sal_Int32 nNumberFormatKey );
67     virtual ~FixedNumberFormatter();
68 
69     rtl::OUString getFormattedString( double fValue, sal_Int32& rLabelColor, bool& rbColorChanged ) const;
70 
71 private:
72     NumberFormatterWrapper      m_aNumberFormatterWrapper;
73     sal_uLong                       m_nNumberFormatKey;
74 };
75 
76 //.............................................................................
77 } //namespace chart
78 //.............................................................................
79 #endif
80