1*de7b3f82SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*de7b3f82SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*de7b3f82SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*de7b3f82SAndrew Rist  * distributed with this work for additional information
6*de7b3f82SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*de7b3f82SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*de7b3f82SAndrew Rist  * "License"); you may not use this file except in compliance
9*de7b3f82SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*de7b3f82SAndrew Rist  *
11*de7b3f82SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*de7b3f82SAndrew Rist  *
13*de7b3f82SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*de7b3f82SAndrew Rist  * software distributed under the License is distributed on an
15*de7b3f82SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*de7b3f82SAndrew Rist  * KIND, either express or implied.  See the License for the
17*de7b3f82SAndrew Rist  * specific language governing permissions and limitations
18*de7b3f82SAndrew Rist  * under the License.
19*de7b3f82SAndrew Rist  *
20*de7b3f82SAndrew Rist  *************************************************************/
21*de7b3f82SAndrew Rist 
22*de7b3f82SAndrew Rist 
23cdf0e10cSrcweir #ifndef _CHART2_EXPLICITVALUEPROVIDER_HXX
24cdf0e10cSrcweir #define _CHART2_EXPLICITVALUEPROVIDER_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include "ExplicitScaleValues.hxx"
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include <boost/shared_ptr.hpp>
29cdf0e10cSrcweir #include <com/sun/star/chart2/XAxis.hpp>
30cdf0e10cSrcweir #include <com/sun/star/chart2/XCoordinateSystem.hpp>
31cdf0e10cSrcweir #include <com/sun/star/chart2/XDataSeries.hpp>
32cdf0e10cSrcweir #include <com/sun/star/chart2/XDiagram.hpp>
33cdf0e10cSrcweir #include <com/sun/star/awt/Rectangle.hpp>
34cdf0e10cSrcweir #include <com/sun/star/frame/XModel.hpp>
35cdf0e10cSrcweir #include <com/sun/star/drawing/XShape.hpp>
36cdf0e10cSrcweir #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
37cdf0e10cSrcweir #include "chartviewdllapi.hxx"
38cdf0e10cSrcweir 
39cdf0e10cSrcweir //.............................................................................
40cdf0e10cSrcweir namespace chart
41cdf0e10cSrcweir {
42cdf0e10cSrcweir //.............................................................................
43cdf0e10cSrcweir 
44cdf0e10cSrcweir //-----------------------------------------------------------------------------
45cdf0e10cSrcweir /**
46cdf0e10cSrcweir */
47cdf0e10cSrcweir 
48cdf0e10cSrcweir class DrawModelWrapper;
49cdf0e10cSrcweir class OOO_DLLPUBLIC_CHARTVIEW ExplicitValueProvider
50cdf0e10cSrcweir {
51cdf0e10cSrcweir public:
52cdf0e10cSrcweir     /** Gives calculated scale and increment values for a given xAxis in the current view.
53cdf0e10cSrcweir         In contrast to the model data these explicit values are always complete as misssing auto properties are calculated.
54cdf0e10cSrcweir         If the given Axis could not be found or for another reason no correct output can be given false is returned.
55cdf0e10cSrcweir      */
56cdf0e10cSrcweir     virtual sal_Bool getExplicitValuesForAxis(
57cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XAxis > xAxis
58cdf0e10cSrcweir         , ExplicitScaleData&  rExplicitScale
59cdf0e10cSrcweir         , ExplicitIncrementData& rExplicitIncrement )=0;
60cdf0e10cSrcweir 
61cdf0e10cSrcweir     /** for rotated objects the shape size and position differs from the visible rectangle
62cdf0e10cSrcweir         if bSnapRect is set to true you get the resulting visible position (left-top) and size
63cdf0e10cSrcweir     */
64cdf0e10cSrcweir     virtual ::com::sun::star::awt::Rectangle
65cdf0e10cSrcweir         getRectangleOfObject( const rtl::OUString& rObjectCID, bool bSnapRect=false )=0;
66cdf0e10cSrcweir 
67cdf0e10cSrcweir     virtual ::com::sun::star::awt::Rectangle getDiagramRectangleExcludingAxes()=0;
68cdf0e10cSrcweir 
69cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
70cdf0e10cSrcweir         getShapeForCID( const rtl::OUString& rObjectCID )=0;
71cdf0e10cSrcweir 
72cdf0e10cSrcweir     virtual ::boost::shared_ptr< DrawModelWrapper > getDrawModelWrapper() = 0;
73cdf0e10cSrcweir 
74cdf0e10cSrcweir     static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
75cdf0e10cSrcweir     static ExplicitValueProvider* getExplicitValueProvider( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xChartView );
76cdf0e10cSrcweir 
77cdf0e10cSrcweir     static ::com::sun::star::awt::Rectangle
78cdf0e10cSrcweir         addAxisTitleSizes(
79cdf0e10cSrcweir             const ::com::sun::star::uno::Reference<
80cdf0e10cSrcweir                 ::com::sun::star::frame::XModel >& xChartModel
81cdf0e10cSrcweir             , const ::com::sun::star::uno::Reference<
82cdf0e10cSrcweir                 ::com::sun::star::uno::XInterface >& xChartView
83cdf0e10cSrcweir             , const ::com::sun::star::awt::Rectangle& rExcludingPositionAndSize );
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     static ::com::sun::star::awt::Rectangle
86cdf0e10cSrcweir         substractAxisTitleSizes(
87cdf0e10cSrcweir             const ::com::sun::star::uno::Reference<
88cdf0e10cSrcweir                 ::com::sun::star::frame::XModel >& xChartModel
89cdf0e10cSrcweir             , const ::com::sun::star::uno::Reference<
90cdf0e10cSrcweir                 ::com::sun::star::uno::XInterface >& xChartView
91cdf0e10cSrcweir             , const ::com::sun::star::awt::Rectangle& rPositionAndSizeIncludingTitles );
92cdf0e10cSrcweir 
93cdf0e10cSrcweir     static sal_Int32 getExplicitNumberFormatKeyForAxis(
94cdf0e10cSrcweir               const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XAxis >& xAxis
95cdf0e10cSrcweir             , const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XCoordinateSystem > & xCorrespondingCoordinateSystem
96cdf0e10cSrcweir             , const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xNumberFormatsSupplier );
97cdf0e10cSrcweir 
98cdf0e10cSrcweir     static sal_Int32 getExplicitNumberFormatKeyForDataLabel(
99cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xSeriesOrPointProp
100cdf0e10cSrcweir             , const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries >& xSeries
101cdf0e10cSrcweir             , sal_Int32 nPointIndex /*-1 for whole series*/
102cdf0e10cSrcweir             , const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDiagram >& xDiagram );
103cdf0e10cSrcweir 
104cdf0e10cSrcweir     static sal_Int32 getExplicitPercentageNumberFormatKeyForDataLabel(
105cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xSeriesOrPointProp
106cdf0e10cSrcweir             , const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xNumberFormatsSupplier );
107cdf0e10cSrcweir };
108cdf0e10cSrcweir 
109cdf0e10cSrcweir //.............................................................................
110cdf0e10cSrcweir } //namespace chart
111cdf0e10cSrcweir //.............................................................................
112cdf0e10cSrcweir #endif
113