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