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
10*cde9e8dcSAndrew Rist *
11*cde9e8dcSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*cde9e8dcSAndrew Rist *
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.
19*cde9e8dcSAndrew Rist *
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 #include "tp_SeriesToAxis.hxx"
27cdf0e10cSrcweir #include "tp_SeriesToAxis.hrc"
28cdf0e10cSrcweir
29cdf0e10cSrcweir #include "ResId.hxx"
30cdf0e10cSrcweir #include "chartview/ChartSfxItemIds.hxx"
31cdf0e10cSrcweir #include "NoWarningThisInCTOR.hxx"
32cdf0e10cSrcweir
33cdf0e10cSrcweir // header for class SfxBoolItem
34cdf0e10cSrcweir #include <svl/eitem.hxx>
35cdf0e10cSrcweir // header for SfxInt32Item
36cdf0e10cSrcweir #include <svl/intitem.hxx>
37cdf0e10cSrcweir //SfxIntegerListItem
38cdf0e10cSrcweir #include <svl/ilstitem.hxx>
39cdf0e10cSrcweir #include <svtools/controldims.hrc>
40cdf0e10cSrcweir
41cdf0e10cSrcweir #include <com/sun/star/chart/MissingValueTreatment.hpp>
42cdf0e10cSrcweir
43cdf0e10cSrcweir //.............................................................................
44cdf0e10cSrcweir namespace chart
45cdf0e10cSrcweir {
46cdf0e10cSrcweir //.............................................................................
47cdf0e10cSrcweir
SchOptionTabPage(Window * pWindow,const SfxItemSet & rInAttrs)48cdf0e10cSrcweir SchOptionTabPage::SchOptionTabPage(Window* pWindow,const SfxItemSet& rInAttrs) :
49cdf0e10cSrcweir SfxTabPage(pWindow, SchResId(TP_OPTIONS), rInAttrs),
50cdf0e10cSrcweir aGrpAxis(this, SchResId(GRP_OPT_AXIS)),
51cdf0e10cSrcweir aRbtAxis1(this,SchResId(RBT_OPT_AXIS_1)),
52cdf0e10cSrcweir aRbtAxis2(this,SchResId(RBT_OPT_AXIS_2)),
53cdf0e10cSrcweir
54cdf0e10cSrcweir aGrpBar(this, SchResId(GB_BAR)),
55cdf0e10cSrcweir aFTGap(this,SchResId(FT_GAP)),
56cdf0e10cSrcweir aMTGap(this,SchResId(MT_GAP)),
57cdf0e10cSrcweir aFTOverlap(this,SchResId(FT_OVERLAP)),
58cdf0e10cSrcweir aMTOverlap(this,SchResId(MT_OVERLAP)),
59cdf0e10cSrcweir aCBConnect(this,SchResId(CB_CONNECTOR)),
60cdf0e10cSrcweir aCBAxisSideBySide(this,SchResId(CB_BARS_SIDE_BY_SIDE)),
61cdf0e10cSrcweir m_aFL_PlotOptions(this,SchResId(FL_PLOT_OPTIONS)),
62cdf0e10cSrcweir m_aFT_MissingValues(this,SchResId(FT_MISSING_VALUES)),
63cdf0e10cSrcweir m_aRB_DontPaint(this,SchResId(RB_DONT_PAINT)),
64cdf0e10cSrcweir m_aRB_AssumeZero(this,SchResId(RB_ASSUME_ZERO)),
65cdf0e10cSrcweir m_aRB_ContinueLine(this,SchResId(RB_CONTINUE_LINE)),
66cdf0e10cSrcweir m_aCBIncludeHiddenCells(this,SchResId(CB_INCLUDE_HIDDEN_CELLS)),
67cdf0e10cSrcweir m_bProvidesSecondaryYAxis(true),
68cdf0e10cSrcweir m_bProvidesOverlapAndGapWidth(false)
69cdf0e10cSrcweir {
70cdf0e10cSrcweir FreeResource();
71cdf0e10cSrcweir
72cdf0e10cSrcweir aRbtAxis1.SetClickHdl( LINK( this, SchOptionTabPage, EnableHdl ));
73cdf0e10cSrcweir aRbtAxis2.SetClickHdl( LINK( this, SchOptionTabPage, EnableHdl ));
74cdf0e10cSrcweir }
75cdf0e10cSrcweir
~SchOptionTabPage()76cdf0e10cSrcweir SchOptionTabPage::~SchOptionTabPage()
77cdf0e10cSrcweir {
78cdf0e10cSrcweir }
79cdf0e10cSrcweir
IMPL_LINK(SchOptionTabPage,EnableHdl,RadioButton *,EMPTYARG)80cdf0e10cSrcweir IMPL_LINK( SchOptionTabPage, EnableHdl, RadioButton *, EMPTYARG )
81cdf0e10cSrcweir {
82cdf0e10cSrcweir if( m_nAllSeriesAxisIndex == 0 )
83cdf0e10cSrcweir aCBAxisSideBySide.Enable( aRbtAxis2.IsChecked());
84cdf0e10cSrcweir else if( m_nAllSeriesAxisIndex == 1 )
85cdf0e10cSrcweir aCBAxisSideBySide.Enable( aRbtAxis1.IsChecked());
86cdf0e10cSrcweir
87cdf0e10cSrcweir return 0;
88cdf0e10cSrcweir }
89cdf0e10cSrcweir
Create(Window * pWindow,const SfxItemSet & rOutAttrs)90cdf0e10cSrcweir SfxTabPage* SchOptionTabPage::Create(Window* pWindow,const SfxItemSet& rOutAttrs)
91cdf0e10cSrcweir {
92cdf0e10cSrcweir return new SchOptionTabPage(pWindow, rOutAttrs);
93cdf0e10cSrcweir }
94cdf0e10cSrcweir
FillItemSet(SfxItemSet & rOutAttrs)95cdf0e10cSrcweir sal_Bool SchOptionTabPage::FillItemSet(SfxItemSet& rOutAttrs)
96cdf0e10cSrcweir {
97cdf0e10cSrcweir if(aRbtAxis2.IsChecked())
98cdf0e10cSrcweir rOutAttrs.Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_SECONDARY_Y));
99cdf0e10cSrcweir else
100cdf0e10cSrcweir rOutAttrs.Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_PRIMARY_Y));
101cdf0e10cSrcweir
102cdf0e10cSrcweir if(aMTGap.IsVisible())
103cdf0e10cSrcweir rOutAttrs.Put(SfxInt32Item(SCHATTR_BAR_GAPWIDTH,static_cast< sal_Int32 >( aMTGap.GetValue())));
104cdf0e10cSrcweir
105cdf0e10cSrcweir if(aMTOverlap.IsVisible())
106cdf0e10cSrcweir rOutAttrs.Put(SfxInt32Item(SCHATTR_BAR_OVERLAP,static_cast< sal_Int32 >( aMTOverlap.GetValue())));
107cdf0e10cSrcweir
108cdf0e10cSrcweir if(aCBConnect.IsVisible())
109cdf0e10cSrcweir rOutAttrs.Put(SfxBoolItem(SCHATTR_BAR_CONNECT,aCBConnect.IsChecked()));
110cdf0e10cSrcweir
111cdf0e10cSrcweir // model property is "group bars per axis", UI feature is the other way
112cdf0e10cSrcweir // round: "show bars side by side"
113cdf0e10cSrcweir if(aCBAxisSideBySide.IsVisible())
114cdf0e10cSrcweir rOutAttrs.Put(SfxBoolItem(SCHATTR_GROUP_BARS_PER_AXIS, ! aCBAxisSideBySide.IsChecked()));
115cdf0e10cSrcweir
116cdf0e10cSrcweir if(m_aRB_DontPaint.IsChecked())
117cdf0e10cSrcweir rOutAttrs.Put(SfxInt32Item(SCHATTR_MISSING_VALUE_TREATMENT,::com::sun::star::chart::MissingValueTreatment::LEAVE_GAP));
118cdf0e10cSrcweir else if(m_aRB_AssumeZero.IsChecked())
119cdf0e10cSrcweir rOutAttrs.Put(SfxInt32Item(SCHATTR_MISSING_VALUE_TREATMENT,::com::sun::star::chart::MissingValueTreatment::USE_ZERO));
120cdf0e10cSrcweir else if(m_aRB_ContinueLine.IsChecked())
121cdf0e10cSrcweir rOutAttrs.Put(SfxInt32Item(SCHATTR_MISSING_VALUE_TREATMENT,::com::sun::star::chart::MissingValueTreatment::CONTINUE));
122cdf0e10cSrcweir
123cdf0e10cSrcweir if (m_aCBIncludeHiddenCells.IsVisible())
124cdf0e10cSrcweir rOutAttrs.Put(SfxBoolItem(SCHATTR_INCLUDE_HIDDEN_CELLS, m_aCBIncludeHiddenCells.IsChecked()));
125cdf0e10cSrcweir
126cdf0e10cSrcweir return sal_True;
127cdf0e10cSrcweir }
128cdf0e10cSrcweir
Reset(const SfxItemSet & rInAttrs)129cdf0e10cSrcweir void SchOptionTabPage::Reset(const SfxItemSet& rInAttrs)
130cdf0e10cSrcweir {
131cdf0e10cSrcweir const SfxPoolItem *pPoolItem = NULL;
132cdf0e10cSrcweir
133cdf0e10cSrcweir aRbtAxis1.Check(sal_True);
134cdf0e10cSrcweir aRbtAxis2.Check(sal_False);
135cdf0e10cSrcweir if (rInAttrs.GetItemState(SCHATTR_AXIS,sal_True, &pPoolItem) == SFX_ITEM_SET)
136cdf0e10cSrcweir {
137cdf0e10cSrcweir long nVal=((const SfxInt32Item*)pPoolItem)->GetValue();
138cdf0e10cSrcweir if(nVal==CHART_AXIS_SECONDARY_Y)
139cdf0e10cSrcweir {
140cdf0e10cSrcweir aRbtAxis2.Check(sal_True);
141cdf0e10cSrcweir aRbtAxis1.Check(sal_False);
142cdf0e10cSrcweir }
143cdf0e10cSrcweir }
144cdf0e10cSrcweir
145cdf0e10cSrcweir long nTmp;
146cdf0e10cSrcweir if (rInAttrs.GetItemState(SCHATTR_BAR_GAPWIDTH, sal_True, &pPoolItem) == SFX_ITEM_SET)
147cdf0e10cSrcweir {
148cdf0e10cSrcweir nTmp = (long)((const SfxInt32Item*)pPoolItem)->GetValue();
149cdf0e10cSrcweir aMTGap.SetValue(nTmp);
150cdf0e10cSrcweir }
151cdf0e10cSrcweir
152cdf0e10cSrcweir if (rInAttrs.GetItemState(SCHATTR_BAR_OVERLAP, sal_True, &pPoolItem) == SFX_ITEM_SET)
153cdf0e10cSrcweir {
154cdf0e10cSrcweir nTmp = (long)((const SfxInt32Item*)pPoolItem)->GetValue();
155cdf0e10cSrcweir aMTOverlap.SetValue(nTmp);
156cdf0e10cSrcweir }
157cdf0e10cSrcweir
158cdf0e10cSrcweir if (rInAttrs.GetItemState(SCHATTR_BAR_CONNECT, sal_True, &pPoolItem) == SFX_ITEM_SET)
159cdf0e10cSrcweir {
160cdf0e10cSrcweir sal_Bool bCheck = static_cast< const SfxBoolItem * >( pPoolItem )->GetValue();
161cdf0e10cSrcweir aCBConnect.Check(bCheck);
162cdf0e10cSrcweir }
163cdf0e10cSrcweir
164cdf0e10cSrcweir if (rInAttrs.GetItemState(SCHATTR_AXIS_FOR_ALL_SERIES, sal_True, &pPoolItem) == SFX_ITEM_SET)
165cdf0e10cSrcweir {
166cdf0e10cSrcweir m_nAllSeriesAxisIndex = static_cast< const SfxInt32Item * >( pPoolItem )->GetValue();
167cdf0e10cSrcweir aCBAxisSideBySide.Disable();
168cdf0e10cSrcweir }
169cdf0e10cSrcweir if (rInAttrs.GetItemState(SCHATTR_GROUP_BARS_PER_AXIS, sal_True, &pPoolItem) == SFX_ITEM_SET)
170cdf0e10cSrcweir {
171cdf0e10cSrcweir // model property is "group bars per axis", UI feature is the other way
172cdf0e10cSrcweir // round: "show bars side by side"
173cdf0e10cSrcweir sal_Bool bCheck = ! static_cast< const SfxBoolItem * >( pPoolItem )->GetValue();
174cdf0e10cSrcweir aCBAxisSideBySide.Check( bCheck );
175cdf0e10cSrcweir }
176cdf0e10cSrcweir else
177cdf0e10cSrcweir {
178cdf0e10cSrcweir aCBAxisSideBySide.Show(sal_False);
179cdf0e10cSrcweir }
180cdf0e10cSrcweir
181cdf0e10cSrcweir
182cdf0e10cSrcweir //missing value treatment
183cdf0e10cSrcweir {
184cdf0e10cSrcweir ::com::sun::star::uno::Sequence < sal_Int32 > aMissingValueTreatments;
185cdf0e10cSrcweir if( rInAttrs.GetItemState(SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS, sal_True, &pPoolItem) == SFX_ITEM_SET )
186cdf0e10cSrcweir aMissingValueTreatments =((const SfxIntegerListItem*)pPoolItem)->GetConstSequence();
187cdf0e10cSrcweir
188cdf0e10cSrcweir if ( aMissingValueTreatments.getLength()>1 && rInAttrs.GetItemState(SCHATTR_MISSING_VALUE_TREATMENT,sal_True, &pPoolItem) == SFX_ITEM_SET)
189cdf0e10cSrcweir {
190cdf0e10cSrcweir m_aRB_DontPaint.Enable(sal_False);
191cdf0e10cSrcweir m_aRB_AssumeZero.Enable(sal_False);
192cdf0e10cSrcweir m_aRB_ContinueLine.Enable(sal_False);
193cdf0e10cSrcweir
194cdf0e10cSrcweir for( sal_Int32 nN =0; nN<aMissingValueTreatments.getLength(); nN++ )
195cdf0e10cSrcweir {
196cdf0e10cSrcweir sal_Int32 nVal = aMissingValueTreatments[nN];
197cdf0e10cSrcweir if(nVal==::com::sun::star::chart::MissingValueTreatment::LEAVE_GAP)
198cdf0e10cSrcweir m_aRB_DontPaint.Enable(sal_True);
199cdf0e10cSrcweir else if(nVal==::com::sun::star::chart::MissingValueTreatment::USE_ZERO)
200cdf0e10cSrcweir m_aRB_AssumeZero.Enable(sal_True);
201cdf0e10cSrcweir else if(nVal==::com::sun::star::chart::MissingValueTreatment::CONTINUE)
202cdf0e10cSrcweir m_aRB_ContinueLine.Enable(sal_True);
203cdf0e10cSrcweir }
204cdf0e10cSrcweir
205cdf0e10cSrcweir long nVal=((const SfxInt32Item*)pPoolItem)->GetValue();
206cdf0e10cSrcweir if(nVal==::com::sun::star::chart::MissingValueTreatment::LEAVE_GAP)
207cdf0e10cSrcweir m_aRB_DontPaint.Check(sal_True);
208cdf0e10cSrcweir else if(nVal==::com::sun::star::chart::MissingValueTreatment::USE_ZERO)
209cdf0e10cSrcweir m_aRB_AssumeZero.Check(sal_True);
210cdf0e10cSrcweir else if(nVal==::com::sun::star::chart::MissingValueTreatment::CONTINUE)
211cdf0e10cSrcweir m_aRB_ContinueLine.Check(sal_True);
212cdf0e10cSrcweir }
213cdf0e10cSrcweir else
214cdf0e10cSrcweir {
215cdf0e10cSrcweir m_aFT_MissingValues.Show(sal_False);
216cdf0e10cSrcweir m_aRB_DontPaint.Show(sal_False);
217cdf0e10cSrcweir m_aRB_AssumeZero.Show(sal_False);
218cdf0e10cSrcweir m_aRB_ContinueLine.Show(sal_False);
219cdf0e10cSrcweir }
220cdf0e10cSrcweir }
221cdf0e10cSrcweir
222cdf0e10cSrcweir // Include hidden cells
223cdf0e10cSrcweir if (rInAttrs.GetItemState(SCHATTR_INCLUDE_HIDDEN_CELLS, sal_True, &pPoolItem) == SFX_ITEM_SET)
224cdf0e10cSrcweir {
225cdf0e10cSrcweir bool bVal = static_cast<const SfxBoolItem*>(pPoolItem)->GetValue();
226cdf0e10cSrcweir m_aCBIncludeHiddenCells.Check(bVal);
227cdf0e10cSrcweir }
228cdf0e10cSrcweir else
229cdf0e10cSrcweir {
230cdf0e10cSrcweir m_aCBIncludeHiddenCells.Show(sal_False);
231cdf0e10cSrcweir if(!m_aFT_MissingValues.IsVisible())
232cdf0e10cSrcweir m_aFL_PlotOptions.Show(sal_False);
233cdf0e10cSrcweir }
234cdf0e10cSrcweir
235cdf0e10cSrcweir AdaptControlPositionsAndVisibility();
236cdf0e10cSrcweir }
237cdf0e10cSrcweir
Init(bool bProvidesSecondaryYAxis,bool bProvidesOverlapAndGapWidth,bool bProvidesBarConnectors)238cdf0e10cSrcweir void SchOptionTabPage::Init( bool bProvidesSecondaryYAxis, bool bProvidesOverlapAndGapWidth, bool bProvidesBarConnectors )
239cdf0e10cSrcweir {
240cdf0e10cSrcweir m_bProvidesSecondaryYAxis = bProvidesSecondaryYAxis;
241cdf0e10cSrcweir m_bProvidesOverlapAndGapWidth = bProvidesOverlapAndGapWidth;
242cdf0e10cSrcweir m_bProvidesBarConnectors = bProvidesBarConnectors;
243cdf0e10cSrcweir
244cdf0e10cSrcweir AdaptControlPositionsAndVisibility();
245cdf0e10cSrcweir }
246cdf0e10cSrcweir
lcl_offsetControl(Control & rCtrl,long nXOffset,long nYOffset)247cdf0e10cSrcweir void lcl_offsetControl(Control& rCtrl, long nXOffset, long nYOffset )
248cdf0e10cSrcweir {
249cdf0e10cSrcweir Point aPos = rCtrl.GetPosPixel();
250cdf0e10cSrcweir rCtrl.SetPosPixel( Point(aPos.getX() + nXOffset, aPos.getY() + nYOffset) );
251cdf0e10cSrcweir }
252cdf0e10cSrcweir
lcl_optimzeRadioButtonSize(RadioButton & rCtrl)253cdf0e10cSrcweir void lcl_optimzeRadioButtonSize( RadioButton& rCtrl )
254cdf0e10cSrcweir {
255cdf0e10cSrcweir rCtrl.SetSizePixel( rCtrl.CalcMinimumSize() );
256cdf0e10cSrcweir }
257cdf0e10cSrcweir
AdaptControlPositionsAndVisibility()258cdf0e10cSrcweir void SchOptionTabPage::AdaptControlPositionsAndVisibility()
259cdf0e10cSrcweir {
260cdf0e10cSrcweir aRbtAxis1.Show(m_bProvidesSecondaryYAxis);
261cdf0e10cSrcweir aRbtAxis2.Show(m_bProvidesSecondaryYAxis);
262cdf0e10cSrcweir aGrpAxis.Show(m_bProvidesSecondaryYAxis);
263cdf0e10cSrcweir
264cdf0e10cSrcweir aMTGap.Show(m_bProvidesOverlapAndGapWidth);
265cdf0e10cSrcweir aFTGap.Show(m_bProvidesOverlapAndGapWidth);
266cdf0e10cSrcweir
267cdf0e10cSrcweir aMTOverlap.Show(m_bProvidesOverlapAndGapWidth);
268cdf0e10cSrcweir aFTOverlap.Show(m_bProvidesOverlapAndGapWidth);
269cdf0e10cSrcweir
270cdf0e10cSrcweir aCBConnect.Show(m_bProvidesBarConnectors);
271cdf0e10cSrcweir
272cdf0e10cSrcweir if( !aMTGap.IsVisible() && !aMTOverlap.IsVisible() )
273cdf0e10cSrcweir {
274cdf0e10cSrcweir aGrpBar.Show(sal_False);
275cdf0e10cSrcweir Point aPos;
276cdf0e10cSrcweir if( !aRbtAxis1.IsVisible() && !aRbtAxis2.IsVisible() )
277cdf0e10cSrcweir aPos = aGrpAxis.GetPosPixel();
278cdf0e10cSrcweir else
279cdf0e10cSrcweir aPos = aGrpBar.GetPosPixel();
280cdf0e10cSrcweir
281cdf0e10cSrcweir long nYOffset = aPos.getY() - m_aFL_PlotOptions.GetPosPixel().getY();
282cdf0e10cSrcweir lcl_offsetControl(m_aFL_PlotOptions, 0, nYOffset);
283cdf0e10cSrcweir lcl_offsetControl(m_aFT_MissingValues, 0, nYOffset);
284cdf0e10cSrcweir lcl_offsetControl(m_aRB_DontPaint, 0, nYOffset);
285cdf0e10cSrcweir lcl_offsetControl(m_aRB_AssumeZero, 0, nYOffset);
286cdf0e10cSrcweir lcl_offsetControl(m_aRB_ContinueLine, 0, nYOffset);
287cdf0e10cSrcweir lcl_offsetControl(m_aCBIncludeHiddenCells, 0, nYOffset);
288cdf0e10cSrcweir }
289cdf0e10cSrcweir
290cdf0e10cSrcweir m_aFT_MissingValues.SetSizePixel( m_aFT_MissingValues.CalcMinimumSize() );
291cdf0e10cSrcweir lcl_optimzeRadioButtonSize( m_aRB_DontPaint );
292cdf0e10cSrcweir lcl_optimzeRadioButtonSize( m_aRB_AssumeZero );
293cdf0e10cSrcweir lcl_optimzeRadioButtonSize( m_aRB_ContinueLine );
294cdf0e10cSrcweir
295cdf0e10cSrcweir Size aControlDistance( m_aFT_MissingValues.LogicToPixel( Size(RSC_SP_CTRL_DESC_X,RSC_SP_CTRL_GROUP_Y), MapMode(MAP_APPFONT) ) );
296cdf0e10cSrcweir long nXOffset = m_aFT_MissingValues.GetPosPixel().getX() + m_aFT_MissingValues.GetSizePixel().getWidth() + aControlDistance.getWidth() - m_aRB_DontPaint.GetPosPixel().getX();
297cdf0e10cSrcweir lcl_offsetControl(m_aRB_DontPaint, nXOffset, 0);
298cdf0e10cSrcweir lcl_offsetControl(m_aRB_AssumeZero, nXOffset, 0);
299cdf0e10cSrcweir lcl_offsetControl(m_aRB_ContinueLine, nXOffset, 0);
300cdf0e10cSrcweir
301cdf0e10cSrcweir if( !m_aFT_MissingValues.IsVisible() )
302cdf0e10cSrcweir {
303cdf0e10cSrcweir //for example for stock charts
304cdf0e10cSrcweir m_aCBIncludeHiddenCells.SetPosPixel( m_aFT_MissingValues.GetPosPixel() );
305cdf0e10cSrcweir }
306cdf0e10cSrcweir }
307cdf0e10cSrcweir //.............................................................................
308cdf0e10cSrcweir } //namespace chart
309cdf0e10cSrcweir //.............................................................................
310