1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_svtools.hxx"
26*b1cdbd2cSJim Jagielski #include <svtools/dialogcontrolling.hxx>
27*b1cdbd2cSJim Jagielski #include <vcl/window.hxx>
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski #include <algorithm>
30*b1cdbd2cSJim Jagielski #include <functional>
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski //........................................................................
33*b1cdbd2cSJim Jagielski namespace svt
34*b1cdbd2cSJim Jagielski {
35*b1cdbd2cSJim Jagielski //........................................................................
36*b1cdbd2cSJim Jagielski 
37*b1cdbd2cSJim Jagielski     //=====================================================================
38*b1cdbd2cSJim Jagielski     //= IWindowOperator
39*b1cdbd2cSJim Jagielski     //=====================================================================
40*b1cdbd2cSJim Jagielski 	//---------------------------------------------------------------------
~IWindowOperator()41*b1cdbd2cSJim Jagielski     IWindowOperator::~IWindowOperator()
42*b1cdbd2cSJim Jagielski     {
43*b1cdbd2cSJim Jagielski     }
44*b1cdbd2cSJim Jagielski 
45*b1cdbd2cSJim Jagielski     //=====================================================================
46*b1cdbd2cSJim Jagielski     //= IWindowEventFilter
47*b1cdbd2cSJim Jagielski     //=====================================================================
48*b1cdbd2cSJim Jagielski 	//---------------------------------------------------------------------
~IWindowEventFilter()49*b1cdbd2cSJim Jagielski     IWindowEventFilter::~IWindowEventFilter()
50*b1cdbd2cSJim Jagielski     {
51*b1cdbd2cSJim Jagielski     }
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski     //=====================================================================
54*b1cdbd2cSJim Jagielski     //= DialogController_Data
55*b1cdbd2cSJim Jagielski     //=====================================================================
56*b1cdbd2cSJim Jagielski     struct DialogController_Data
57*b1cdbd2cSJim Jagielski     {
58*b1cdbd2cSJim Jagielski         Window&                     rInstigator;
59*b1cdbd2cSJim Jagielski         ::std::vector< Window* >    aConcernedWindows;
60*b1cdbd2cSJim Jagielski         PWindowEventFilter          pEventFilter;
61*b1cdbd2cSJim Jagielski         PWindowOperator             pOperator;
62*b1cdbd2cSJim Jagielski 
DialogController_Datasvt::DialogController_Data63*b1cdbd2cSJim Jagielski         DialogController_Data( Window& _rInstigator, const PWindowEventFilter _pEventFilter, const PWindowOperator _pOperator )
64*b1cdbd2cSJim Jagielski             :rInstigator( _rInstigator )
65*b1cdbd2cSJim Jagielski             ,pEventFilter( _pEventFilter )
66*b1cdbd2cSJim Jagielski             ,pOperator( _pOperator )
67*b1cdbd2cSJim Jagielski         {
68*b1cdbd2cSJim Jagielski         }
69*b1cdbd2cSJim Jagielski     };
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski     //=====================================================================
72*b1cdbd2cSJim Jagielski     //= DialogController
73*b1cdbd2cSJim Jagielski     //=====================================================================
74*b1cdbd2cSJim Jagielski 	//---------------------------------------------------------------------
DialogController(Window & _rInstigator,const PWindowEventFilter & _pEventFilter,const PWindowOperator & _pOperator)75*b1cdbd2cSJim Jagielski     DialogController::DialogController( Window& _rInstigator, const PWindowEventFilter& _pEventFilter,
76*b1cdbd2cSJim Jagielski             const PWindowOperator& _pOperator )
77*b1cdbd2cSJim Jagielski         :m_pImpl( new DialogController_Data( _rInstigator, _pEventFilter, _pOperator ) )
78*b1cdbd2cSJim Jagielski     {
79*b1cdbd2cSJim Jagielski         DBG_ASSERT( m_pImpl->pEventFilter.get() && m_pImpl->pOperator.get(),
80*b1cdbd2cSJim Jagielski             "DialogController::DialogController: invalid filter and/or operator!" );
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski         m_pImpl->rInstigator.AddEventListener( LINK( this, DialogController, OnWindowEvent ) );
83*b1cdbd2cSJim Jagielski     }
84*b1cdbd2cSJim Jagielski 
85*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
~DialogController()86*b1cdbd2cSJim Jagielski     DialogController::~DialogController()
87*b1cdbd2cSJim Jagielski     {
88*b1cdbd2cSJim Jagielski         reset();
89*b1cdbd2cSJim Jagielski     }
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
reset()92*b1cdbd2cSJim Jagielski     void DialogController::reset()
93*b1cdbd2cSJim Jagielski     {
94*b1cdbd2cSJim Jagielski         m_pImpl->rInstigator.RemoveEventListener( LINK( this, DialogController, OnWindowEvent ) );
95*b1cdbd2cSJim Jagielski         m_pImpl->aConcernedWindows.clear();
96*b1cdbd2cSJim Jagielski         m_pImpl->pEventFilter.reset();
97*b1cdbd2cSJim Jagielski         m_pImpl->pOperator.reset();
98*b1cdbd2cSJim Jagielski     }
99*b1cdbd2cSJim Jagielski 
100*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
addDependentWindow(Window & _rWindow)101*b1cdbd2cSJim Jagielski     void DialogController::addDependentWindow( Window& _rWindow )
102*b1cdbd2cSJim Jagielski     {
103*b1cdbd2cSJim Jagielski         m_pImpl->aConcernedWindows.push_back( &_rWindow );
104*b1cdbd2cSJim Jagielski 
105*b1cdbd2cSJim Jagielski         VclWindowEvent aEvent( &_rWindow, 0, NULL );
106*b1cdbd2cSJim Jagielski         impl_update( aEvent, _rWindow );
107*b1cdbd2cSJim Jagielski     }
108*b1cdbd2cSJim Jagielski 
109*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
IMPL_LINK(DialogController,OnWindowEvent,const VclWindowEvent *,_pEvent)110*b1cdbd2cSJim Jagielski     IMPL_LINK( DialogController, OnWindowEvent, const VclWindowEvent*, _pEvent )
111*b1cdbd2cSJim Jagielski     {
112*b1cdbd2cSJim Jagielski         if ( m_pImpl->pEventFilter->payAttentionTo( *_pEvent ) )
113*b1cdbd2cSJim Jagielski             impl_updateAll( *_pEvent );
114*b1cdbd2cSJim Jagielski         return 0L;
115*b1cdbd2cSJim Jagielski     }
116*b1cdbd2cSJim Jagielski 
117*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
impl_updateAll(const VclWindowEvent & _rTriggerEvent)118*b1cdbd2cSJim Jagielski     void DialogController::impl_updateAll( const VclWindowEvent& _rTriggerEvent )
119*b1cdbd2cSJim Jagielski     {
120*b1cdbd2cSJim Jagielski         for ( ::std::vector< Window* >::iterator loop = m_pImpl->aConcernedWindows.begin();
121*b1cdbd2cSJim Jagielski                 loop != m_pImpl->aConcernedWindows.end();
122*b1cdbd2cSJim Jagielski                 ++loop
123*b1cdbd2cSJim Jagielski             )
124*b1cdbd2cSJim Jagielski             impl_update( _rTriggerEvent, *(*loop) );
125*b1cdbd2cSJim Jagielski     }
126*b1cdbd2cSJim Jagielski 
127*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
impl_update(const VclWindowEvent & _rTriggerEvent,Window & _rWindow)128*b1cdbd2cSJim Jagielski     void DialogController::impl_update( const VclWindowEvent& _rTriggerEvent, Window& _rWindow )
129*b1cdbd2cSJim Jagielski     {
130*b1cdbd2cSJim Jagielski         m_pImpl->pOperator->operateOn( _rTriggerEvent, _rWindow );
131*b1cdbd2cSJim Jagielski     }
132*b1cdbd2cSJim Jagielski 
133*b1cdbd2cSJim Jagielski     //=====================================================================
134*b1cdbd2cSJim Jagielski     //= ControlDependencyManager_Data
135*b1cdbd2cSJim Jagielski 	//=====================================================================
136*b1cdbd2cSJim Jagielski     struct ControlDependencyManager_Data
137*b1cdbd2cSJim Jagielski     {
138*b1cdbd2cSJim Jagielski         ::std::vector< PDialogController >  aControllers;
139*b1cdbd2cSJim Jagielski     };
140*b1cdbd2cSJim Jagielski 
141*b1cdbd2cSJim Jagielski     //=====================================================================
142*b1cdbd2cSJim Jagielski     //= ControlDependencyManager
143*b1cdbd2cSJim Jagielski 	//=====================================================================
144*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
ControlDependencyManager()145*b1cdbd2cSJim Jagielski     ControlDependencyManager::ControlDependencyManager()
146*b1cdbd2cSJim Jagielski         :m_pImpl( new ControlDependencyManager_Data )
147*b1cdbd2cSJim Jagielski     {
148*b1cdbd2cSJim Jagielski     }
149*b1cdbd2cSJim Jagielski 
150*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
~ControlDependencyManager()151*b1cdbd2cSJim Jagielski     ControlDependencyManager::~ControlDependencyManager()
152*b1cdbd2cSJim Jagielski     {
153*b1cdbd2cSJim Jagielski     }
154*b1cdbd2cSJim Jagielski 
155*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
156*b1cdbd2cSJim Jagielski     namespace
157*b1cdbd2cSJim Jagielski     {
158*b1cdbd2cSJim Jagielski         struct ResetDialogController : public ::std::unary_function< const PDialogController&, void >
159*b1cdbd2cSJim Jagielski         {
operator ()svt::__anon0c93075f0111::ResetDialogController160*b1cdbd2cSJim Jagielski             void operator()( const PDialogController& _pController )
161*b1cdbd2cSJim Jagielski             {
162*b1cdbd2cSJim Jagielski                 _pController->reset();
163*b1cdbd2cSJim Jagielski             }
164*b1cdbd2cSJim Jagielski         };
165*b1cdbd2cSJim Jagielski     }
166*b1cdbd2cSJim Jagielski 
167*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
clear()168*b1cdbd2cSJim Jagielski     void ControlDependencyManager::clear()
169*b1cdbd2cSJim Jagielski     {
170*b1cdbd2cSJim Jagielski         ::std::for_each( m_pImpl->aControllers.begin(), m_pImpl->aControllers.end(), ResetDialogController() );
171*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.clear();
172*b1cdbd2cSJim Jagielski     }
173*b1cdbd2cSJim Jagielski 
174*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
addController(const PDialogController & _pController)175*b1cdbd2cSJim Jagielski     void ControlDependencyManager::addController( const PDialogController& _pController )
176*b1cdbd2cSJim Jagielski     {
177*b1cdbd2cSJim Jagielski         OSL_ENSURE( _pController.get() != NULL, "ControlDependencyManager::addController: invalid controller, this will crash, sooner or later!" );
178*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( _pController );
179*b1cdbd2cSJim Jagielski     }
180*b1cdbd2cSJim Jagielski 
181*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnRadioCheck(RadioButton & _rRadio,Window & _rDependentWindow)182*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow )
183*b1cdbd2cSJim Jagielski     {
184*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rRadio ) );
185*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow );
186*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
187*b1cdbd2cSJim Jagielski     }
188*b1cdbd2cSJim Jagielski 
189*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnRadioCheck(RadioButton & _rRadio,Window & _rDependentWindow1,Window & _rDependentWindow2)190*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2 )
191*b1cdbd2cSJim Jagielski     {
192*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rRadio ) );
193*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
194*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
195*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
196*b1cdbd2cSJim Jagielski     }
197*b1cdbd2cSJim Jagielski 
198*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnRadioCheck(RadioButton & _rRadio,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3)199*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3 )
200*b1cdbd2cSJim Jagielski     {
201*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rRadio ) );
202*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
203*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
204*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
205*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
206*b1cdbd2cSJim Jagielski     }
207*b1cdbd2cSJim Jagielski 
208*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnRadioCheck(RadioButton & _rRadio,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3,Window & _rDependentWindow4)209*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4 )
210*b1cdbd2cSJim Jagielski     {
211*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rRadio ) );
212*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
213*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
214*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
215*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow4 );
216*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
217*b1cdbd2cSJim Jagielski     }
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnRadioCheck(RadioButton & _rRadio,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3,Window & _rDependentWindow4,Window & _rDependentWindow5)220*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5 )
221*b1cdbd2cSJim Jagielski     {
222*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rRadio ) );
223*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
224*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
225*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
226*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow4 );
227*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow5 );
228*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
229*b1cdbd2cSJim Jagielski     }
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnRadioCheck(RadioButton & _rRadio,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3,Window & _rDependentWindow4,Window & _rDependentWindow5,Window & _rDependentWindow6)232*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5, Window& _rDependentWindow6 )
233*b1cdbd2cSJim Jagielski     {
234*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rRadio ) );
235*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
236*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
237*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
238*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow4 );
239*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow5 );
240*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow6 );
241*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
242*b1cdbd2cSJim Jagielski     }
243*b1cdbd2cSJim Jagielski 
244*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnCheckMark(CheckBox & _rBox,Window & _rDependentWindow)245*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow )
246*b1cdbd2cSJim Jagielski     {
247*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rBox ) );
248*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow );
249*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
250*b1cdbd2cSJim Jagielski     }
251*b1cdbd2cSJim Jagielski 
252*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnCheckMark(CheckBox & _rBox,Window & _rDependentWindow1,Window & _rDependentWindow2)253*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2 )
254*b1cdbd2cSJim Jagielski     {
255*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rBox ) );
256*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
257*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
258*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
259*b1cdbd2cSJim Jagielski     }
260*b1cdbd2cSJim Jagielski 
261*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnCheckMark(CheckBox & _rBox,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3)262*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3 )
263*b1cdbd2cSJim Jagielski     {
264*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rBox ) );
265*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
266*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
267*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
268*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
269*b1cdbd2cSJim Jagielski     }
270*b1cdbd2cSJim Jagielski 
271*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnCheckMark(CheckBox & _rBox,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3,Window & _rDependentWindow4)272*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4 )
273*b1cdbd2cSJim Jagielski     {
274*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rBox ) );
275*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
276*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
277*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
278*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow4 );
279*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
280*b1cdbd2cSJim Jagielski     }
281*b1cdbd2cSJim Jagielski 
282*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnCheckMark(CheckBox & _rBox,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3,Window & _rDependentWindow4,Window & _rDependentWindow5)283*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5 )
284*b1cdbd2cSJim Jagielski     {
285*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rBox ) );
286*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
287*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
288*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
289*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow4 );
290*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow5 );
291*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
292*b1cdbd2cSJim Jagielski     }
293*b1cdbd2cSJim Jagielski 
294*b1cdbd2cSJim Jagielski     //---------------------------------------------------------------------
enableOnCheckMark(CheckBox & _rBox,Window & _rDependentWindow1,Window & _rDependentWindow2,Window & _rDependentWindow3,Window & _rDependentWindow4,Window & _rDependentWindow5,Window & _rDependentWindow6)295*b1cdbd2cSJim Jagielski     void ControlDependencyManager::enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5, Window& _rDependentWindow6 )
296*b1cdbd2cSJim Jagielski     {
297*b1cdbd2cSJim Jagielski         PDialogController pController( new RadioDependentEnabler( _rBox ) );
298*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow1 );
299*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow2 );
300*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow3 );
301*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow4 );
302*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow5 );
303*b1cdbd2cSJim Jagielski         pController->addDependentWindow( _rDependentWindow6 );
304*b1cdbd2cSJim Jagielski         m_pImpl->aControllers.push_back( pController );
305*b1cdbd2cSJim Jagielski     }
306*b1cdbd2cSJim Jagielski 
307*b1cdbd2cSJim Jagielski //........................................................................
308*b1cdbd2cSJim Jagielski } // namespace svt
309*b1cdbd2cSJim Jagielski //........................................................................
310*b1cdbd2cSJim Jagielski 
311