1*cde9e8dcSAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*cde9e8dcSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*cde9e8dcSAndrew Rist * or more contributor license agreements. See the NOTICE file
5*cde9e8dcSAndrew Rist * distributed with this work for additional information
6*cde9e8dcSAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*cde9e8dcSAndrew Rist * to you under the Apache License, Version 2.0 (the
8*cde9e8dcSAndrew Rist * "License"); you may not use this file except in compliance
9*cde9e8dcSAndrew Rist * with the License. You may obtain a copy of the License at
10cdf0e10cSrcweir *
11*cde9e8dcSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir *
13*cde9e8dcSAndrew Rist * Unless required by applicable law or agreed to in writing,
14*cde9e8dcSAndrew Rist * software distributed under the License is distributed on an
15*cde9e8dcSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*cde9e8dcSAndrew Rist * KIND, either express or implied. See the License for the
17*cde9e8dcSAndrew Rist * specific language governing permissions and limitations
18*cde9e8dcSAndrew Rist * under the License.
19cdf0e10cSrcweir *
20*cde9e8dcSAndrew Rist *************************************************************/
21*cde9e8dcSAndrew Rist
22*cde9e8dcSAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_chart2.hxx"
26cdf0e10cSrcweir
27cdf0e10cSrcweir #include "ReferenceSizeProvider.hxx"
28cdf0e10cSrcweir #include "RelativeSizeHelper.hxx"
29cdf0e10cSrcweir #include "ChartModelHelper.hxx"
30cdf0e10cSrcweir #include "DiagramHelper.hxx"
31cdf0e10cSrcweir #include "macros.hxx"
32cdf0e10cSrcweir #include "AxisHelper.hxx"
33cdf0e10cSrcweir #include "DataSeriesHelper.hxx"
34cdf0e10cSrcweir
35cdf0e10cSrcweir #include <com/sun/star/chart2/XTitled.hpp>
36cdf0e10cSrcweir #include <com/sun/star/chart2/XTitle.hpp>
37cdf0e10cSrcweir #include <com/sun/star/chart2/XDataSeries.hpp>
38cdf0e10cSrcweir
39cdf0e10cSrcweir #include <vector>
40cdf0e10cSrcweir
41cdf0e10cSrcweir using namespace ::com::sun::star;
42cdf0e10cSrcweir using namespace ::com::sun::star::chart2;
43cdf0e10cSrcweir
44cdf0e10cSrcweir using ::com::sun::star::uno::Reference;
45cdf0e10cSrcweir using ::com::sun::star::uno::Sequence;
46cdf0e10cSrcweir using ::rtl::OUString;
47cdf0e10cSrcweir
48cdf0e10cSrcweir // ================================================================================
49cdf0e10cSrcweir
50cdf0e10cSrcweir namespace chart
51cdf0e10cSrcweir {
52cdf0e10cSrcweir
ReferenceSizeProvider(awt::Size aPageSize,const Reference<XChartDocument> & xChartDoc)53cdf0e10cSrcweir ReferenceSizeProvider::ReferenceSizeProvider(
54cdf0e10cSrcweir awt::Size aPageSize,
55cdf0e10cSrcweir const Reference< XChartDocument > & xChartDoc ) :
56cdf0e10cSrcweir m_aPageSize( aPageSize ),
57cdf0e10cSrcweir m_xChartDoc( xChartDoc ),
58cdf0e10cSrcweir m_bUseAutoScale( getAutoResizeState( xChartDoc ) == AUTO_RESIZE_YES )
59cdf0e10cSrcweir {}
60cdf0e10cSrcweir
getPageSize() const61cdf0e10cSrcweir awt::Size ReferenceSizeProvider::getPageSize() const
62cdf0e10cSrcweir {
63cdf0e10cSrcweir return m_aPageSize;
64cdf0e10cSrcweir }
65cdf0e10cSrcweir
useAutoScale() const66cdf0e10cSrcweir bool ReferenceSizeProvider::useAutoScale() const
67cdf0e10cSrcweir {
68cdf0e10cSrcweir return m_bUseAutoScale;
69cdf0e10cSrcweir }
70cdf0e10cSrcweir
impl_setValuesAtTitled(const Reference<XTitled> & xTitled)71cdf0e10cSrcweir void ReferenceSizeProvider::impl_setValuesAtTitled(
72cdf0e10cSrcweir const Reference< XTitled > & xTitled )
73cdf0e10cSrcweir {
74cdf0e10cSrcweir if( xTitled.is())
75cdf0e10cSrcweir {
76cdf0e10cSrcweir Reference< XTitle > xTitle( xTitled->getTitleObject());
77cdf0e10cSrcweir if( xTitle.is())
78cdf0e10cSrcweir setValuesAtTitle( xTitle );
79cdf0e10cSrcweir }
80cdf0e10cSrcweir }
81cdf0e10cSrcweir
setValuesAtTitle(const Reference<XTitle> & xTitle)82cdf0e10cSrcweir void ReferenceSizeProvider::setValuesAtTitle(
83cdf0e10cSrcweir const Reference< XTitle > & xTitle )
84cdf0e10cSrcweir {
85cdf0e10cSrcweir try
86cdf0e10cSrcweir {
87cdf0e10cSrcweir Reference< beans::XPropertySet > xTitleProp( xTitle, uno::UNO_QUERY_THROW );
88cdf0e10cSrcweir awt::Size aOldRefSize;
89cdf0e10cSrcweir bool bHasOldRefSize(
90cdf0e10cSrcweir xTitleProp->getPropertyValue( C2U("ReferencePageSize")) >>= aOldRefSize );
91cdf0e10cSrcweir
92cdf0e10cSrcweir // set from auto-resize on to off -> adapt font sizes at XFormattedStrings
93cdf0e10cSrcweir if( bHasOldRefSize && ! useAutoScale())
94cdf0e10cSrcweir {
95cdf0e10cSrcweir uno::Sequence< uno::Reference< XFormattedString > > aStrSeq(
96cdf0e10cSrcweir xTitle->getText());
97cdf0e10cSrcweir for( sal_Int32 i=0; i<aStrSeq.getLength(); ++i )
98cdf0e10cSrcweir {
99cdf0e10cSrcweir RelativeSizeHelper::adaptFontSizes(
100cdf0e10cSrcweir Reference< beans::XPropertySet >( aStrSeq[i], uno::UNO_QUERY ),
101cdf0e10cSrcweir aOldRefSize, getPageSize());
102cdf0e10cSrcweir }
103cdf0e10cSrcweir }
104cdf0e10cSrcweir
105cdf0e10cSrcweir setValuesAtPropertySet( xTitleProp, /* bAdaptFontSizes = */ false );
106cdf0e10cSrcweir }
107cdf0e10cSrcweir catch( const uno::Exception & ex )
108cdf0e10cSrcweir {
109cdf0e10cSrcweir ASSERT_EXCEPTION( ex );
110cdf0e10cSrcweir }
111cdf0e10cSrcweir }
112cdf0e10cSrcweir
setValuesAtAllDataSeries()113cdf0e10cSrcweir void ReferenceSizeProvider::setValuesAtAllDataSeries()
114cdf0e10cSrcweir {
115cdf0e10cSrcweir Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( m_xChartDoc ));
116cdf0e10cSrcweir
117cdf0e10cSrcweir // DataSeries/Points
118cdf0e10cSrcweir ::std::vector< Reference< XDataSeries > > aSeries(
119cdf0e10cSrcweir DiagramHelper::getDataSeriesFromDiagram( xDiagram ));
120cdf0e10cSrcweir
121cdf0e10cSrcweir for( ::std::vector< Reference< XDataSeries > >::const_iterator aIt( aSeries.begin());
122cdf0e10cSrcweir aIt != aSeries.end(); ++aIt )
123cdf0e10cSrcweir {
124cdf0e10cSrcweir Reference< beans::XPropertySet > xSeriesProp( *aIt, uno::UNO_QUERY );
125cdf0e10cSrcweir if( xSeriesProp.is())
126cdf0e10cSrcweir {
127cdf0e10cSrcweir // data points
128cdf0e10cSrcweir Sequence< sal_Int32 > aPointIndexes;
129cdf0e10cSrcweir try
130cdf0e10cSrcweir {
131cdf0e10cSrcweir if( xSeriesProp->getPropertyValue( C2U("AttributedDataPoints")) >>= aPointIndexes )
132cdf0e10cSrcweir {
133cdf0e10cSrcweir for( sal_Int32 i=0; i< aPointIndexes.getLength(); ++i )
134cdf0e10cSrcweir setValuesAtPropertySet(
135cdf0e10cSrcweir (*aIt)->getDataPointByIndex( aPointIndexes[i] ) );
136cdf0e10cSrcweir }
137cdf0e10cSrcweir }
138cdf0e10cSrcweir catch( const uno::Exception & ex )
139cdf0e10cSrcweir {
140cdf0e10cSrcweir ASSERT_EXCEPTION( ex );
141cdf0e10cSrcweir }
142cdf0e10cSrcweir
143cdf0e10cSrcweir //it is important to correct the datapoint properties first as they do reference the series properties
144cdf0e10cSrcweir setValuesAtPropertySet( xSeriesProp );
145cdf0e10cSrcweir }
146cdf0e10cSrcweir }
147cdf0e10cSrcweir }
148cdf0e10cSrcweir
setValuesAtPropertySet(const Reference<beans::XPropertySet> & xProp,bool bAdaptFontSizes)149cdf0e10cSrcweir void ReferenceSizeProvider::setValuesAtPropertySet(
150cdf0e10cSrcweir const Reference< beans::XPropertySet > & xProp,
151cdf0e10cSrcweir bool bAdaptFontSizes /* = true */ )
152cdf0e10cSrcweir {
153cdf0e10cSrcweir if( ! xProp.is())
154cdf0e10cSrcweir return;
155cdf0e10cSrcweir
156cdf0e10cSrcweir static const OUString aRefSizeName( RTL_CONSTASCII_USTRINGPARAM("ReferencePageSize"));
157cdf0e10cSrcweir
158cdf0e10cSrcweir try
159cdf0e10cSrcweir {
160cdf0e10cSrcweir awt::Size aRefSize( getPageSize() );
161cdf0e10cSrcweir awt::Size aOldRefSize;
162cdf0e10cSrcweir bool bHasOldRefSize( xProp->getPropertyValue( aRefSizeName ) >>= aOldRefSize );
163cdf0e10cSrcweir
164cdf0e10cSrcweir if( useAutoScale())
165cdf0e10cSrcweir {
166cdf0e10cSrcweir if( ! bHasOldRefSize )
167cdf0e10cSrcweir xProp->setPropertyValue( aRefSizeName, uno::makeAny( aRefSize ));
168cdf0e10cSrcweir }
169cdf0e10cSrcweir else
170cdf0e10cSrcweir {
171cdf0e10cSrcweir if( bHasOldRefSize )
172cdf0e10cSrcweir {
173cdf0e10cSrcweir xProp->setPropertyValue( aRefSizeName, uno::Any());
174cdf0e10cSrcweir
175cdf0e10cSrcweir // adapt font sizes
176cdf0e10cSrcweir if( bAdaptFontSizes )
177cdf0e10cSrcweir RelativeSizeHelper::adaptFontSizes( xProp, aOldRefSize, aRefSize );
178cdf0e10cSrcweir }
179cdf0e10cSrcweir }
180cdf0e10cSrcweir }
181cdf0e10cSrcweir catch( const uno::Exception & ex )
182cdf0e10cSrcweir {
183cdf0e10cSrcweir ASSERT_EXCEPTION( ex );
184cdf0e10cSrcweir }
185cdf0e10cSrcweir }
186cdf0e10cSrcweir
getAutoResizeFromPropSet(const Reference<beans::XPropertySet> & xProp,ReferenceSizeProvider::AutoResizeState & rInOutState)187cdf0e10cSrcweir void ReferenceSizeProvider::getAutoResizeFromPropSet(
188cdf0e10cSrcweir const Reference< beans::XPropertySet > & xProp,
189cdf0e10cSrcweir ReferenceSizeProvider::AutoResizeState & rInOutState )
190cdf0e10cSrcweir {
191cdf0e10cSrcweir static const OUString aRefSizeName( RTL_CONSTASCII_USTRINGPARAM("ReferencePageSize"));
192cdf0e10cSrcweir AutoResizeState eSingleState = AUTO_RESIZE_UNKNOWN;
193cdf0e10cSrcweir
194cdf0e10cSrcweir if( xProp.is())
195cdf0e10cSrcweir {
196cdf0e10cSrcweir try
197cdf0e10cSrcweir {
198cdf0e10cSrcweir if( xProp->getPropertyValue( aRefSizeName ).hasValue())
199cdf0e10cSrcweir eSingleState = AUTO_RESIZE_YES;
200cdf0e10cSrcweir else
201cdf0e10cSrcweir eSingleState = AUTO_RESIZE_NO;
202cdf0e10cSrcweir }
203cdf0e10cSrcweir catch( uno::Exception )
204cdf0e10cSrcweir {
205cdf0e10cSrcweir // unknown property -> state stays unknown
206cdf0e10cSrcweir }
207cdf0e10cSrcweir }
208cdf0e10cSrcweir
209cdf0e10cSrcweir // curent state unknown => nothing changes. Otherwise if current state
210cdf0e10cSrcweir // differs from state so far, we have an ambiguity
211cdf0e10cSrcweir if( rInOutState == AUTO_RESIZE_UNKNOWN )
212cdf0e10cSrcweir {
213cdf0e10cSrcweir rInOutState = eSingleState;
214cdf0e10cSrcweir }
215cdf0e10cSrcweir else if( eSingleState != AUTO_RESIZE_UNKNOWN &&
216cdf0e10cSrcweir eSingleState != rInOutState )
217cdf0e10cSrcweir {
218cdf0e10cSrcweir rInOutState = AUTO_RESIZE_AMBIGUOUS;
219cdf0e10cSrcweir }
220cdf0e10cSrcweir }
221cdf0e10cSrcweir
impl_getAutoResizeFromTitled(const Reference<XTitled> & xTitled,ReferenceSizeProvider::AutoResizeState & rInOutState)222cdf0e10cSrcweir void ReferenceSizeProvider::impl_getAutoResizeFromTitled(
223cdf0e10cSrcweir const Reference< XTitled > & xTitled,
224cdf0e10cSrcweir ReferenceSizeProvider::AutoResizeState & rInOutState )
225cdf0e10cSrcweir {
226cdf0e10cSrcweir if( xTitled.is())
227cdf0e10cSrcweir {
228cdf0e10cSrcweir Reference< beans::XPropertySet > xProp( xTitled->getTitleObject(), uno::UNO_QUERY );
229cdf0e10cSrcweir if( xProp.is())
230cdf0e10cSrcweir getAutoResizeFromPropSet( xProp, rInOutState );
231cdf0e10cSrcweir }
232cdf0e10cSrcweir }
233cdf0e10cSrcweir
234cdf0e10cSrcweir /** Retrieves the state auto-resize from all objects that support this
235cdf0e10cSrcweir feature. If all objects return the same state, AUTO_RESIZE_YES or
236cdf0e10cSrcweir AUTO_RESIZE_NO is returned.
237cdf0e10cSrcweir
238cdf0e10cSrcweir If no object supporting the feature is found, AUTO_RESIZE_UNKNOWN is
239cdf0e10cSrcweir returned. If there are multiple objects, some with state YES and some
240cdf0e10cSrcweir with state NO, AUTO_RESIZE_AMBIGUOUS is returned.
241cdf0e10cSrcweir */
getAutoResizeState(const Reference<XChartDocument> & xChartDoc)242cdf0e10cSrcweir ReferenceSizeProvider::AutoResizeState ReferenceSizeProvider::getAutoResizeState(
243cdf0e10cSrcweir const Reference< XChartDocument > & xChartDoc )
244cdf0e10cSrcweir {
245cdf0e10cSrcweir AutoResizeState eResult = AUTO_RESIZE_UNKNOWN;
246cdf0e10cSrcweir
247cdf0e10cSrcweir // Main Title
248cdf0e10cSrcweir Reference< XTitled > xDocTitled( xChartDoc, uno::UNO_QUERY );
249cdf0e10cSrcweir if( xDocTitled.is())
250cdf0e10cSrcweir impl_getAutoResizeFromTitled( xDocTitled, eResult );
251cdf0e10cSrcweir if( eResult == AUTO_RESIZE_AMBIGUOUS )
252cdf0e10cSrcweir return eResult;
253cdf0e10cSrcweir
254cdf0e10cSrcweir // diagram is needed by the rest of the objects
255cdf0e10cSrcweir Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( xChartDoc ), uno::UNO_QUERY );
256cdf0e10cSrcweir if( ! xDiagram.is())
257cdf0e10cSrcweir return eResult;
258cdf0e10cSrcweir
259cdf0e10cSrcweir // Sub Title
260cdf0e10cSrcweir Reference< XTitled > xDiaTitled( xDiagram, uno::UNO_QUERY );
261cdf0e10cSrcweir if( xDiaTitled.is())
262cdf0e10cSrcweir impl_getAutoResizeFromTitled( xDiaTitled, eResult );
263cdf0e10cSrcweir if( eResult == AUTO_RESIZE_AMBIGUOUS )
264cdf0e10cSrcweir return eResult;
265cdf0e10cSrcweir
266cdf0e10cSrcweir // Legend
267cdf0e10cSrcweir Reference< beans::XPropertySet > xLegendProp( xDiagram->getLegend(), uno::UNO_QUERY );
268cdf0e10cSrcweir if( xLegendProp.is())
269cdf0e10cSrcweir getAutoResizeFromPropSet( xLegendProp, eResult );
270cdf0e10cSrcweir if( eResult == AUTO_RESIZE_AMBIGUOUS )
271cdf0e10cSrcweir return eResult;
272cdf0e10cSrcweir
273cdf0e10cSrcweir // Axes (incl. Axis Titles)
274cdf0e10cSrcweir Sequence< Reference< XAxis > > aAxes( AxisHelper::getAllAxesOfDiagram( xDiagram ) );
275cdf0e10cSrcweir for( sal_Int32 i=0; i<aAxes.getLength(); ++i )
276cdf0e10cSrcweir {
277cdf0e10cSrcweir Reference< beans::XPropertySet > xProp( aAxes[i], uno::UNO_QUERY );
278cdf0e10cSrcweir if( xProp.is())
279cdf0e10cSrcweir getAutoResizeFromPropSet( xProp, eResult );
280cdf0e10cSrcweir Reference< XTitled > xTitled( aAxes[i], uno::UNO_QUERY );
281cdf0e10cSrcweir if( xTitled.is())
282cdf0e10cSrcweir {
283cdf0e10cSrcweir impl_getAutoResizeFromTitled( xTitled, eResult );
284cdf0e10cSrcweir if( eResult == AUTO_RESIZE_AMBIGUOUS )
285cdf0e10cSrcweir return eResult;
286cdf0e10cSrcweir }
287cdf0e10cSrcweir }
288cdf0e10cSrcweir
289cdf0e10cSrcweir // DataSeries/Points
290cdf0e10cSrcweir ::std::vector< Reference< XDataSeries > > aSeries(
291cdf0e10cSrcweir DiagramHelper::getDataSeriesFromDiagram( xDiagram ));
292cdf0e10cSrcweir
293cdf0e10cSrcweir for( ::std::vector< Reference< XDataSeries > >::const_iterator aIt( aSeries.begin());
294cdf0e10cSrcweir aIt != aSeries.end(); ++aIt )
295cdf0e10cSrcweir {
296cdf0e10cSrcweir Reference< beans::XPropertySet > xSeriesProp( *aIt, uno::UNO_QUERY );
297cdf0e10cSrcweir if( xSeriesProp.is())
298cdf0e10cSrcweir {
299cdf0e10cSrcweir getAutoResizeFromPropSet( xSeriesProp, eResult );
300cdf0e10cSrcweir if( eResult == AUTO_RESIZE_AMBIGUOUS )
301cdf0e10cSrcweir return eResult;
302cdf0e10cSrcweir
303cdf0e10cSrcweir // data points
304cdf0e10cSrcweir Sequence< sal_Int32 > aPointIndexes;
305cdf0e10cSrcweir try
306cdf0e10cSrcweir {
307cdf0e10cSrcweir if( xSeriesProp->getPropertyValue( C2U("AttributedDataPoints")) >>= aPointIndexes )
308cdf0e10cSrcweir {
309cdf0e10cSrcweir for( sal_Int32 i=0; i< aPointIndexes.getLength(); ++i )
310cdf0e10cSrcweir {
311cdf0e10cSrcweir getAutoResizeFromPropSet(
312cdf0e10cSrcweir (*aIt)->getDataPointByIndex( aPointIndexes[i] ), eResult );
313cdf0e10cSrcweir if( eResult == AUTO_RESIZE_AMBIGUOUS )
314cdf0e10cSrcweir return eResult;
315cdf0e10cSrcweir }
316cdf0e10cSrcweir }
317cdf0e10cSrcweir }
318cdf0e10cSrcweir catch( const uno::Exception & ex )
319cdf0e10cSrcweir {
320cdf0e10cSrcweir ASSERT_EXCEPTION( ex );
321cdf0e10cSrcweir }
322cdf0e10cSrcweir }
323cdf0e10cSrcweir }
324cdf0e10cSrcweir
325cdf0e10cSrcweir return eResult;
326cdf0e10cSrcweir }
327cdf0e10cSrcweir
toggleAutoResizeState()328cdf0e10cSrcweir void ReferenceSizeProvider::toggleAutoResizeState()
329cdf0e10cSrcweir {
330cdf0e10cSrcweir setAutoResizeState( m_bUseAutoScale ? AUTO_RESIZE_NO : AUTO_RESIZE_YES );
331cdf0e10cSrcweir }
332cdf0e10cSrcweir
333cdf0e10cSrcweir
334cdf0e10cSrcweir /** sets the auto-resize at all objects that support this feature for text.
335cdf0e10cSrcweir eNewState must be either AUTO_RESIZE_YES or AUTO_RESIZE_NO
336cdf0e10cSrcweir */
setAutoResizeState(ReferenceSizeProvider::AutoResizeState eNewState)337cdf0e10cSrcweir void ReferenceSizeProvider::setAutoResizeState( ReferenceSizeProvider::AutoResizeState eNewState )
338cdf0e10cSrcweir {
339cdf0e10cSrcweir m_bUseAutoScale = (eNewState == AUTO_RESIZE_YES);
340cdf0e10cSrcweir
341cdf0e10cSrcweir // Main Title
342cdf0e10cSrcweir impl_setValuesAtTitled( Reference< XTitled >( m_xChartDoc, uno::UNO_QUERY ));
343cdf0e10cSrcweir
344cdf0e10cSrcweir // diagram is needed by the rest of the objects
345cdf0e10cSrcweir Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( m_xChartDoc ), uno::UNO_QUERY );
346cdf0e10cSrcweir if( ! xDiagram.is())
347cdf0e10cSrcweir return;
348cdf0e10cSrcweir
349cdf0e10cSrcweir // Sub Title
350cdf0e10cSrcweir impl_setValuesAtTitled( Reference< XTitled >( xDiagram, uno::UNO_QUERY ));
351cdf0e10cSrcweir
352cdf0e10cSrcweir // Legend
353cdf0e10cSrcweir Reference< beans::XPropertySet > xLegendProp( xDiagram->getLegend(), uno::UNO_QUERY );
354cdf0e10cSrcweir if( xLegendProp.is())
355cdf0e10cSrcweir setValuesAtPropertySet( xLegendProp );
356cdf0e10cSrcweir
357cdf0e10cSrcweir // Axes (incl. Axis Titles)
358cdf0e10cSrcweir Sequence< Reference< XAxis > > aAxes( AxisHelper::getAllAxesOfDiagram( xDiagram ) );
359cdf0e10cSrcweir for( sal_Int32 i=0; i<aAxes.getLength(); ++i )
360cdf0e10cSrcweir {
361cdf0e10cSrcweir Reference< beans::XPropertySet > xProp( aAxes[i], uno::UNO_QUERY );
362cdf0e10cSrcweir if( xProp.is())
363cdf0e10cSrcweir setValuesAtPropertySet( xProp );
364cdf0e10cSrcweir impl_setValuesAtTitled( Reference< XTitled >( aAxes[i], uno::UNO_QUERY ));
365cdf0e10cSrcweir }
366cdf0e10cSrcweir
367cdf0e10cSrcweir // DataSeries/Points
368cdf0e10cSrcweir setValuesAtAllDataSeries();
369cdf0e10cSrcweir
370cdf0e10cSrcweir // recalculate new state (in case it stays unknown or is ambiguous
371cdf0e10cSrcweir m_bUseAutoScale = (getAutoResizeState( m_xChartDoc ) == AUTO_RESIZE_YES);
372cdf0e10cSrcweir }
373cdf0e10cSrcweir
374cdf0e10cSrcweir } // namespace chart
375