xref: /AOO41X/main/chart2/source/controller/dialogs/tp_3D_SceneAppearance.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
29*cdf0e10cSrcweir #include "precompiled_chart2.hxx"
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include "tp_3D_SceneAppearance.hxx"
32*cdf0e10cSrcweir #include "tp_3D_SceneAppearance.hrc"
33*cdf0e10cSrcweir #include "ResId.hxx"
34*cdf0e10cSrcweir #include "Strings.hrc"
35*cdf0e10cSrcweir #include "NoWarningThisInCTOR.hxx"
36*cdf0e10cSrcweir #include "ChartModelHelper.hxx"
37*cdf0e10cSrcweir #include "ThreeDHelper.hxx"
38*cdf0e10cSrcweir #include "macros.hxx"
39*cdf0e10cSrcweir #include <rtl/math.hxx>
40*cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
41*cdf0e10cSrcweir 
42*cdf0e10cSrcweir using namespace ::com::sun::star;
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir namespace
45*cdf0e10cSrcweir {
46*cdf0e10cSrcweir 
47*cdf0e10cSrcweir struct lcl_ModelProperties
48*cdf0e10cSrcweir {
49*cdf0e10cSrcweir     drawing::ShadeMode        m_aShadeMode;
50*cdf0e10cSrcweir     sal_Int32                 m_nRoundedEdges;
51*cdf0e10cSrcweir     sal_Int32                 m_nObjectLines;
52*cdf0e10cSrcweir     ::chart::ThreeDLookScheme m_eScheme;
53*cdf0e10cSrcweir 
54*cdf0e10cSrcweir     lcl_ModelProperties() :
55*cdf0e10cSrcweir             m_nRoundedEdges(-1),
56*cdf0e10cSrcweir             m_nObjectLines(-1),
57*cdf0e10cSrcweir             m_eScheme(::chart::ThreeDLookScheme_Unknown)
58*cdf0e10cSrcweir     {}
59*cdf0e10cSrcweir };
60*cdf0e10cSrcweir 
61*cdf0e10cSrcweir lcl_ModelProperties lcl_getPropertiesFromModel( uno::Reference< frame::XModel > & xModel )
62*cdf0e10cSrcweir {
63*cdf0e10cSrcweir     lcl_ModelProperties aProps;
64*cdf0e10cSrcweir     try
65*cdf0e10cSrcweir     {
66*cdf0e10cSrcweir         uno::Reference< chart2::XDiagram > xDiagram( ::chart::ChartModelHelper::findDiagram( xModel ) );
67*cdf0e10cSrcweir         uno::Reference< beans::XPropertySet > xDiaProp( xDiagram, uno::UNO_QUERY_THROW );
68*cdf0e10cSrcweir         xDiaProp->getPropertyValue( C2U("D3DSceneShadeMode")) >>= aProps.m_aShadeMode;
69*cdf0e10cSrcweir         ::chart::ThreeDHelper::getRoundedEdgesAndObjectLines( xDiagram, aProps.m_nRoundedEdges, aProps.m_nObjectLines );
70*cdf0e10cSrcweir         aProps.m_eScheme = ::chart::ThreeDHelper::detectScheme( xDiagram );
71*cdf0e10cSrcweir     }
72*cdf0e10cSrcweir     catch( const uno::Exception & ex )
73*cdf0e10cSrcweir     {
74*cdf0e10cSrcweir         ASSERT_EXCEPTION( ex );
75*cdf0e10cSrcweir     }
76*cdf0e10cSrcweir     return aProps;
77*cdf0e10cSrcweir }
78*cdf0e10cSrcweir 
79*cdf0e10cSrcweir void lcl_setShadeModeAtModel( uno::Reference< frame::XModel > & xModel, drawing::ShadeMode aShadeMode )
80*cdf0e10cSrcweir {
81*cdf0e10cSrcweir     try
82*cdf0e10cSrcweir     {
83*cdf0e10cSrcweir         uno::Reference< beans::XPropertySet > xDiaProp(
84*cdf0e10cSrcweir             ::chart::ChartModelHelper::findDiagram( xModel ), uno::UNO_QUERY_THROW );
85*cdf0e10cSrcweir         xDiaProp->setPropertyValue( C2U("D3DSceneShadeMode"), uno::makeAny( aShadeMode ));
86*cdf0e10cSrcweir     }
87*cdf0e10cSrcweir     catch( const uno::Exception & ex )
88*cdf0e10cSrcweir     {
89*cdf0e10cSrcweir         ASSERT_EXCEPTION( ex );
90*cdf0e10cSrcweir     }
91*cdf0e10cSrcweir }
92*cdf0e10cSrcweir 
93*cdf0e10cSrcweir } // anonymous namespace
94*cdf0e10cSrcweir 
95*cdf0e10cSrcweir //.............................................................................
96*cdf0e10cSrcweir namespace chart
97*cdf0e10cSrcweir {
98*cdf0e10cSrcweir //.............................................................................
99*cdf0e10cSrcweir 
100*cdf0e10cSrcweir #define POS_3DSCHEME_SIMPLE    0
101*cdf0e10cSrcweir #define POS_3DSCHEME_REALISTIC 1
102*cdf0e10cSrcweir #define POS_3DSCHEME_CUSTOM 2
103*cdf0e10cSrcweir 
104*cdf0e10cSrcweir ThreeD_SceneAppearance_TabPage::ThreeD_SceneAppearance_TabPage(
105*cdf0e10cSrcweir       Window* pWindow
106*cdf0e10cSrcweir     , const uno::Reference< frame::XModel > & xChartModel
107*cdf0e10cSrcweir     , ControllerLockHelper & rControllerLockHelper )
108*cdf0e10cSrcweir                 : TabPage 	        ( pWindow, SchResId( TP_3D_SCENEAPPEARANCE ) )
109*cdf0e10cSrcweir                 , m_xChartModel     ( xChartModel )
110*cdf0e10cSrcweir                 , m_aFT_Scheme      ( this, SchResId( FT_SCHEME ) )
111*cdf0e10cSrcweir                 , m_aLB_Scheme      ( this, SchResId( LB_SCHEME ) )
112*cdf0e10cSrcweir                 , m_aFL_Seperator   ( this, SchResId( FL_SEPERATOR ) )
113*cdf0e10cSrcweir                 , m_aCB_Shading	    ( this, SchResId( CB_SHADING ) )
114*cdf0e10cSrcweir                 , m_aCB_ObjectLines ( this, SchResId( CB_OBJECTLINES ) )
115*cdf0e10cSrcweir                 , m_aCB_RoundedEdge ( this, SchResId( CB_ROUNDEDEDGE ) )
116*cdf0e10cSrcweir                 , m_bUpdateOtherControls( true )
117*cdf0e10cSrcweir                 , m_bCommitToModel( true )
118*cdf0e10cSrcweir                 , m_rControllerLockHelper( rControllerLockHelper )
119*cdf0e10cSrcweir {
120*cdf0e10cSrcweir 	FreeResource();
121*cdf0e10cSrcweir     m_aLB_Scheme.InsertEntry(String(SchResId(STR_3DSCHEME_SIMPLE)),POS_3DSCHEME_SIMPLE);
122*cdf0e10cSrcweir     m_aLB_Scheme.InsertEntry(String(SchResId(STR_3DSCHEME_REALISTIC)),POS_3DSCHEME_REALISTIC);
123*cdf0e10cSrcweir     m_aLB_Scheme.SetDropDownLineCount(2);
124*cdf0e10cSrcweir 
125*cdf0e10cSrcweir     m_aLB_Scheme.SetSelectHdl( LINK( this, ThreeD_SceneAppearance_TabPage, SelectSchemeHdl ) );
126*cdf0e10cSrcweir 
127*cdf0e10cSrcweir     m_aCB_RoundedEdge.SetToggleHdl( LINK( this, ThreeD_SceneAppearance_TabPage, SelectRoundedEdgeOrObjectLines ) );
128*cdf0e10cSrcweir     m_aCB_Shading.SetToggleHdl( LINK( this, ThreeD_SceneAppearance_TabPage, SelectShading ) );
129*cdf0e10cSrcweir     m_aCB_ObjectLines.SetToggleHdl( LINK( this, ThreeD_SceneAppearance_TabPage, SelectRoundedEdgeOrObjectLines ) );
130*cdf0e10cSrcweir 
131*cdf0e10cSrcweir     m_aCB_RoundedEdge.EnableTriState( sal_True );
132*cdf0e10cSrcweir     m_aCB_Shading.EnableTriState( sal_True );
133*cdf0e10cSrcweir     m_aCB_ObjectLines.EnableTriState( sal_True );
134*cdf0e10cSrcweir 
135*cdf0e10cSrcweir     initControlsFromModel();
136*cdf0e10cSrcweir }
137*cdf0e10cSrcweir 
138*cdf0e10cSrcweir ThreeD_SceneAppearance_TabPage::~ThreeD_SceneAppearance_TabPage()
139*cdf0e10cSrcweir {}
140*cdf0e10cSrcweir 
141*cdf0e10cSrcweir void ThreeD_SceneAppearance_TabPage::ActivatePage()
142*cdf0e10cSrcweir {
143*cdf0e10cSrcweir     updateScheme();
144*cdf0e10cSrcweir }
145*cdf0e10cSrcweir 
146*cdf0e10cSrcweir void ThreeD_SceneAppearance_TabPage::commitPendingChanges()
147*cdf0e10cSrcweir {
148*cdf0e10cSrcweir }
149*cdf0e10cSrcweir 
150*cdf0e10cSrcweir void ThreeD_SceneAppearance_TabPage::applyRoundedEdgeAndObjectLinesToModel()
151*cdf0e10cSrcweir {
152*cdf0e10cSrcweir     if(!m_bCommitToModel)
153*cdf0e10cSrcweir         return;
154*cdf0e10cSrcweir 
155*cdf0e10cSrcweir     sal_Int32 nObjectLines = -1;
156*cdf0e10cSrcweir 
157*cdf0e10cSrcweir     switch( m_aCB_ObjectLines.GetState())
158*cdf0e10cSrcweir     {
159*cdf0e10cSrcweir         case STATE_NOCHECK:
160*cdf0e10cSrcweir             nObjectLines = 0;
161*cdf0e10cSrcweir             break;
162*cdf0e10cSrcweir         case STATE_CHECK:
163*cdf0e10cSrcweir             nObjectLines = 1;
164*cdf0e10cSrcweir             break;
165*cdf0e10cSrcweir         case STATE_DONTKNOW:
166*cdf0e10cSrcweir             nObjectLines = -1;
167*cdf0e10cSrcweir             break;
168*cdf0e10cSrcweir     }
169*cdf0e10cSrcweir 
170*cdf0e10cSrcweir     sal_Int32 nCurrentRoundedEdges = -1;
171*cdf0e10cSrcweir     switch( m_aCB_RoundedEdge.GetState() )
172*cdf0e10cSrcweir     {
173*cdf0e10cSrcweir         case STATE_NOCHECK:
174*cdf0e10cSrcweir             nCurrentRoundedEdges = 0;
175*cdf0e10cSrcweir             break;
176*cdf0e10cSrcweir         case STATE_CHECK:
177*cdf0e10cSrcweir             nCurrentRoundedEdges = 5;
178*cdf0e10cSrcweir             break;
179*cdf0e10cSrcweir         case STATE_DONTKNOW:
180*cdf0e10cSrcweir             nCurrentRoundedEdges = -1;
181*cdf0e10cSrcweir             break;
182*cdf0e10cSrcweir     }
183*cdf0e10cSrcweir 
184*cdf0e10cSrcweir     // /-- locked controllers
185*cdf0e10cSrcweir     ControllerLockHelperGuard aGuard( m_rControllerLockHelper );
186*cdf0e10cSrcweir     ThreeDHelper::setRoundedEdgesAndObjectLines(
187*cdf0e10cSrcweir         ::chart::ChartModelHelper::findDiagram( m_xChartModel ), nCurrentRoundedEdges, nObjectLines );
188*cdf0e10cSrcweir     // \-- locked controllers
189*cdf0e10cSrcweir }
190*cdf0e10cSrcweir 
191*cdf0e10cSrcweir void ThreeD_SceneAppearance_TabPage::applyShadeModeToModel()
192*cdf0e10cSrcweir {
193*cdf0e10cSrcweir     if(!m_bCommitToModel)
194*cdf0e10cSrcweir         return;
195*cdf0e10cSrcweir 
196*cdf0e10cSrcweir     drawing::ShadeMode aShadeMode = drawing::ShadeMode_PHONG;
197*cdf0e10cSrcweir 
198*cdf0e10cSrcweir     switch( m_aCB_Shading.GetState())
199*cdf0e10cSrcweir     {
200*cdf0e10cSrcweir         case STATE_NOCHECK:
201*cdf0e10cSrcweir             aShadeMode = drawing::ShadeMode_FLAT;
202*cdf0e10cSrcweir             break;
203*cdf0e10cSrcweir         case STATE_CHECK:
204*cdf0e10cSrcweir             aShadeMode = drawing::ShadeMode_SMOOTH;
205*cdf0e10cSrcweir             break;
206*cdf0e10cSrcweir         case STATE_DONTKNOW:
207*cdf0e10cSrcweir             // nothing
208*cdf0e10cSrcweir             break;
209*cdf0e10cSrcweir     }
210*cdf0e10cSrcweir 
211*cdf0e10cSrcweir     lcl_setShadeModeAtModel( m_xChartModel, aShadeMode );
212*cdf0e10cSrcweir }
213*cdf0e10cSrcweir 
214*cdf0e10cSrcweir void ThreeD_SceneAppearance_TabPage::initControlsFromModel()
215*cdf0e10cSrcweir {
216*cdf0e10cSrcweir     m_bCommitToModel = false;
217*cdf0e10cSrcweir     m_bUpdateOtherControls = false;
218*cdf0e10cSrcweir 
219*cdf0e10cSrcweir     lcl_ModelProperties aProps( lcl_getPropertiesFromModel( m_xChartModel ));
220*cdf0e10cSrcweir 
221*cdf0e10cSrcweir     if(aProps.m_aShadeMode == drawing::ShadeMode_FLAT)
222*cdf0e10cSrcweir     {
223*cdf0e10cSrcweir         m_aCB_Shading.EnableTriState( sal_False );
224*cdf0e10cSrcweir         m_aCB_Shading.Check(sal_False);
225*cdf0e10cSrcweir     }
226*cdf0e10cSrcweir     else if(aProps.m_aShadeMode == drawing::ShadeMode_SMOOTH)
227*cdf0e10cSrcweir     {
228*cdf0e10cSrcweir         m_aCB_Shading.EnableTriState( sal_False );
229*cdf0e10cSrcweir         m_aCB_Shading.Check(sal_True);
230*cdf0e10cSrcweir     }
231*cdf0e10cSrcweir     else
232*cdf0e10cSrcweir     {
233*cdf0e10cSrcweir         m_aCB_Shading.EnableTriState( sal_True );
234*cdf0e10cSrcweir         m_aCB_Shading.SetState( STATE_DONTKNOW );
235*cdf0e10cSrcweir     }
236*cdf0e10cSrcweir 
237*cdf0e10cSrcweir     if(aProps.m_nObjectLines == 0)
238*cdf0e10cSrcweir     {
239*cdf0e10cSrcweir         m_aCB_ObjectLines.EnableTriState( sal_False );
240*cdf0e10cSrcweir         m_aCB_ObjectLines.Check(sal_False);
241*cdf0e10cSrcweir     }
242*cdf0e10cSrcweir     else if(aProps.m_nObjectLines==1)
243*cdf0e10cSrcweir     {
244*cdf0e10cSrcweir         m_aCB_ObjectLines.EnableTriState( sal_False );
245*cdf0e10cSrcweir         m_aCB_ObjectLines.Check(sal_True);
246*cdf0e10cSrcweir     }
247*cdf0e10cSrcweir     else
248*cdf0e10cSrcweir     {
249*cdf0e10cSrcweir         m_aCB_ObjectLines.EnableTriState( sal_True );
250*cdf0e10cSrcweir         m_aCB_ObjectLines.SetState( STATE_DONTKNOW );
251*cdf0e10cSrcweir     }
252*cdf0e10cSrcweir 
253*cdf0e10cSrcweir     if(aProps.m_nRoundedEdges >= 5)
254*cdf0e10cSrcweir     {
255*cdf0e10cSrcweir         m_aCB_RoundedEdge.EnableTriState( sal_False );
256*cdf0e10cSrcweir         m_aCB_RoundedEdge.Check(sal_True);
257*cdf0e10cSrcweir     }
258*cdf0e10cSrcweir     else if(aProps.m_nRoundedEdges<0)
259*cdf0e10cSrcweir     {
260*cdf0e10cSrcweir         m_aCB_RoundedEdge.EnableTriState( sal_False );
261*cdf0e10cSrcweir         m_aCB_RoundedEdge.SetState( STATE_DONTKNOW );
262*cdf0e10cSrcweir     }
263*cdf0e10cSrcweir     else
264*cdf0e10cSrcweir     {
265*cdf0e10cSrcweir         m_aCB_RoundedEdge.EnableTriState( sal_True );
266*cdf0e10cSrcweir         m_aCB_RoundedEdge.Check(sal_False);
267*cdf0e10cSrcweir     }
268*cdf0e10cSrcweir     m_aCB_RoundedEdge.Enable( !m_aCB_ObjectLines.IsChecked() );
269*cdf0e10cSrcweir 
270*cdf0e10cSrcweir     updateScheme();
271*cdf0e10cSrcweir 
272*cdf0e10cSrcweir     m_bCommitToModel = true;
273*cdf0e10cSrcweir     m_bUpdateOtherControls = true;
274*cdf0e10cSrcweir }
275*cdf0e10cSrcweir 
276*cdf0e10cSrcweir void ThreeD_SceneAppearance_TabPage::updateScheme()
277*cdf0e10cSrcweir {
278*cdf0e10cSrcweir     lcl_ModelProperties aProps( lcl_getPropertiesFromModel( m_xChartModel ));
279*cdf0e10cSrcweir 
280*cdf0e10cSrcweir     if( m_aLB_Scheme.GetEntryCount() == (POS_3DSCHEME_CUSTOM+1) )
281*cdf0e10cSrcweir     {
282*cdf0e10cSrcweir         m_aLB_Scheme.RemoveEntry(POS_3DSCHEME_CUSTOM);
283*cdf0e10cSrcweir         m_aLB_Scheme.SetDropDownLineCount(2);
284*cdf0e10cSrcweir     }
285*cdf0e10cSrcweir     switch( aProps.m_eScheme )
286*cdf0e10cSrcweir     {
287*cdf0e10cSrcweir         case ThreeDLookScheme_Simple:
288*cdf0e10cSrcweir             m_aLB_Scheme.SelectEntryPos( POS_3DSCHEME_SIMPLE );
289*cdf0e10cSrcweir             break;
290*cdf0e10cSrcweir         case ThreeDLookScheme_Realistic:
291*cdf0e10cSrcweir             m_aLB_Scheme.SelectEntryPos( POS_3DSCHEME_REALISTIC );
292*cdf0e10cSrcweir             break;
293*cdf0e10cSrcweir         case ThreeDLookScheme_Unknown:
294*cdf0e10cSrcweir             {
295*cdf0e10cSrcweir                 m_aLB_Scheme.InsertEntry(String(SchResId(STR_3DSCHEME_CUSTOM)),POS_3DSCHEME_CUSTOM);
296*cdf0e10cSrcweir                 m_aLB_Scheme.SelectEntryPos( POS_3DSCHEME_CUSTOM );
297*cdf0e10cSrcweir                 m_aLB_Scheme.SetDropDownLineCount(3);
298*cdf0e10cSrcweir             }
299*cdf0e10cSrcweir             break;
300*cdf0e10cSrcweir     }
301*cdf0e10cSrcweir }
302*cdf0e10cSrcweir 
303*cdf0e10cSrcweir IMPL_LINK( ThreeD_SceneAppearance_TabPage, SelectSchemeHdl, void*, EMPTYARG )
304*cdf0e10cSrcweir {
305*cdf0e10cSrcweir     if( !m_bUpdateOtherControls )
306*cdf0e10cSrcweir         return 0;
307*cdf0e10cSrcweir 
308*cdf0e10cSrcweir     {
309*cdf0e10cSrcweir         // /-- locked controllers
310*cdf0e10cSrcweir         ControllerLockHelperGuard aGuard( m_rControllerLockHelper );
311*cdf0e10cSrcweir 
312*cdf0e10cSrcweir         uno::Reference< chart2::XDiagram > xDiagram( ::chart::ChartModelHelper::findDiagram( m_xChartModel ) );
313*cdf0e10cSrcweir 
314*cdf0e10cSrcweir         if( m_aLB_Scheme.GetSelectEntryPos() == POS_3DSCHEME_REALISTIC )
315*cdf0e10cSrcweir             ThreeDHelper::setScheme( xDiagram, ThreeDLookScheme_Realistic );
316*cdf0e10cSrcweir         else if( m_aLB_Scheme.GetSelectEntryPos() == POS_3DSCHEME_SIMPLE )
317*cdf0e10cSrcweir             ThreeDHelper::setScheme( xDiagram, ThreeDLookScheme_Simple );
318*cdf0e10cSrcweir         else
319*cdf0e10cSrcweir         {
320*cdf0e10cSrcweir             OSL_ENSURE( false, "Invalid Entry selected" );
321*cdf0e10cSrcweir         }
322*cdf0e10cSrcweir         // \-- locked controllers
323*cdf0e10cSrcweir     }
324*cdf0e10cSrcweir 
325*cdf0e10cSrcweir     // update other controls
326*cdf0e10cSrcweir     initControlsFromModel();
327*cdf0e10cSrcweir     return 0;
328*cdf0e10cSrcweir }
329*cdf0e10cSrcweir 
330*cdf0e10cSrcweir IMPL_LINK( ThreeD_SceneAppearance_TabPage, SelectShading, void*, EMPTYARG )
331*cdf0e10cSrcweir {
332*cdf0e10cSrcweir     if( !m_bUpdateOtherControls )
333*cdf0e10cSrcweir         return 0;
334*cdf0e10cSrcweir 
335*cdf0e10cSrcweir     m_aCB_Shading.EnableTriState( sal_False );
336*cdf0e10cSrcweir     applyShadeModeToModel();
337*cdf0e10cSrcweir     updateScheme();
338*cdf0e10cSrcweir     return 0;
339*cdf0e10cSrcweir }
340*cdf0e10cSrcweir IMPL_LINK( ThreeD_SceneAppearance_TabPage, SelectRoundedEdgeOrObjectLines, CheckBox*, pCheckBox )
341*cdf0e10cSrcweir {
342*cdf0e10cSrcweir     if( !m_bUpdateOtherControls )
343*cdf0e10cSrcweir         return 0;
344*cdf0e10cSrcweir 
345*cdf0e10cSrcweir     if( pCheckBox == &m_aCB_ObjectLines )
346*cdf0e10cSrcweir     {
347*cdf0e10cSrcweir         m_aCB_ObjectLines.EnableTriState( sal_False );
348*cdf0e10cSrcweir         m_bUpdateOtherControls = false;
349*cdf0e10cSrcweir         m_aCB_RoundedEdge.Enable( !m_aCB_ObjectLines.IsChecked() );
350*cdf0e10cSrcweir         if(!m_aCB_RoundedEdge.IsEnabled())
351*cdf0e10cSrcweir             m_aCB_RoundedEdge.Check(sal_False);
352*cdf0e10cSrcweir         m_bUpdateOtherControls = true;
353*cdf0e10cSrcweir     }
354*cdf0e10cSrcweir     else
355*cdf0e10cSrcweir         m_aCB_RoundedEdge.EnableTriState( sal_False );
356*cdf0e10cSrcweir     applyRoundedEdgeAndObjectLinesToModel();
357*cdf0e10cSrcweir     updateScheme();
358*cdf0e10cSrcweir     return 0;
359*cdf0e10cSrcweir }
360*cdf0e10cSrcweir 
361*cdf0e10cSrcweir //.............................................................................
362*cdf0e10cSrcweir } //namespace chart
363*cdf0e10cSrcweir //.............................................................................
364