xref: /aoo42x/main/svx/inc/svx/charthelper.hxx (revision 6f0b96b4)
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 #ifndef CHARTHELPER_HXX
23 #define CHARTHELPER_HXX
24 
25 #include <com/sun/star/frame/XModel.hpp>
26 #include <com/sun/star/uno/Sequence.hxx>
27 #include <basegfx/range/b2drange.hxx>
28 #include <svx/svxdllapi.h>
29 #include <drawinglayer/primitive2d/baseprimitive2d.hxx>
30 #include <com/sun/star/embed/XEmbeddedObject.hpp>
31 
32 //////////////////////////////////////////////////////////////////////////////
33 // predeclarations
34 
35 namespace svt { class EmbeddedObjectRef; }
36 
37 //////////////////////////////////////////////////////////////////////////////
38 
39 class SVX_DLLPUBLIC ChartHelper
40 {
41 public:
42     // test if given reference is a chart
43     static bool IsChart(const svt::EmbeddedObjectRef& xObjRef);
44 
45     // try to access rXModel in case of a chart to to get the chart content
46     // as sequence of primitives. Return range of primitives (chart size) in rRange;
47     // it will be used to embed the chart to the SdrObject transformation. This
48     // allows to define possible distances between chart and SDrObject bounds here
49     static drawinglayer::primitive2d::Primitive2DSequence tryToGetChartContentAsPrimitive2DSequence(
50         const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rXModel,
51         basegfx::B2DRange& rRange);
52 
53     // #121334# Allow to switch off line and fill style by setting these as attributes
54     // at the OLE chart object. This is needed to allow fill styles of the covering objects
55     // to make their own fill/line settings work. This should not be done by changing
56     // the defaults at the chart (see StaticPageBackgroundDefaults_Initializer::lcl_AddDefaultsToMap)
57     // since this would not be saved/loaded, thus the compatibility will be better when setting it at
58     // newly created charts using this method
59     static void AdaptDefaultsForChart(
60         const com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > & xEmbObj,
61         bool bNoFillStyle = true,
62         bool bNoLineStyle = true);
63 };
64 
65 //////////////////////////////////////////////////////////////////////////////
66 
67 #endif //CHARTHELPER_HXX
68