xref: /aoo4110/main/sd/source/ui/dlg/present.cxx (revision b1cdbd2c)
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_sd.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #ifdef SD_DLLIMPLEMENTATION
28*b1cdbd2cSJim Jagielski #undef SD_DLLIMPLEMENTATION
29*b1cdbd2cSJim Jagielski #endif
30*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XMultiServiceFactory.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XIndexAccess.hpp>
33*b1cdbd2cSJim Jagielski #include <comphelper/processfactory.hxx>
34*b1cdbd2cSJim Jagielski #include <svl/itemset.hxx>
35*b1cdbd2cSJim Jagielski 
36*b1cdbd2cSJim Jagielski #include "sdattr.hxx"
37*b1cdbd2cSJim Jagielski #include "present.hxx"
38*b1cdbd2cSJim Jagielski #include "present.hrc"
39*b1cdbd2cSJim Jagielski #include "sdresid.hxx"
40*b1cdbd2cSJim Jagielski #include "cusshow.hxx"
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski using ::rtl::OUString;
43*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno;
44*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::lang;
45*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::container;
46*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::beans;
47*b1cdbd2cSJim Jagielski 
48*b1cdbd2cSJim Jagielski /*************************************************************************
49*b1cdbd2cSJim Jagielski |* Ctor
50*b1cdbd2cSJim Jagielski \************************************************************************/
SdStartPresentationDlg(Window * pWindow,const SfxItemSet & rInAttrs,List & rPageNames,List * pCSList)51*b1cdbd2cSJim Jagielski SdStartPresentationDlg::SdStartPresentationDlg( Window* pWindow,
52*b1cdbd2cSJim Jagielski 								  const SfxItemSet& rInAttrs,
53*b1cdbd2cSJim Jagielski 								  List& rPageNames, List* pCSList ) :
54*b1cdbd2cSJim Jagielski 				ModalDialog     ( pWindow, SdResId( DLG_START_PRESENTATION ) ),
55*b1cdbd2cSJim Jagielski 				aGrpRange               ( this, SdResId( GRP_RANGE ) ),
56*b1cdbd2cSJim Jagielski 				aRbtAll                 ( this, SdResId( RBT_ALL ) ),
57*b1cdbd2cSJim Jagielski 				aRbtAtDia               ( this, SdResId( RBT_AT_DIA ) ),
58*b1cdbd2cSJim Jagielski 				aRbtCustomshow          ( this, SdResId( RBT_CUSTOMSHOW ) ),
59*b1cdbd2cSJim Jagielski 				aLbDias                 ( this, SdResId( LB_DIAS ) ),
60*b1cdbd2cSJim Jagielski 				aLbCustomshow           ( this, SdResId( LB_CUSTOMSHOW ) ),
61*b1cdbd2cSJim Jagielski 
62*b1cdbd2cSJim Jagielski 				aGrpKind				( this, SdResId( GRP_KIND ) ),
63*b1cdbd2cSJim Jagielski 				aRbtStandard			( this, SdResId( RBT_STANDARD ) ),
64*b1cdbd2cSJim Jagielski 				aRbtWindow				( this, SdResId( RBT_WINDOW ) ),
65*b1cdbd2cSJim Jagielski 				aRbtAuto				( this, SdResId( RBT_AUTO ) ),
66*b1cdbd2cSJim Jagielski 				aTmfPause				( this, SdResId( TMF_PAUSE ) ),
67*b1cdbd2cSJim Jagielski 				aCbxAutoLogo			( this, SdResId( CBX_AUTOLOGO ) ),
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski 				aGrpOptions             ( this, SdResId( GRP_OPTIONS ) ),
70*b1cdbd2cSJim Jagielski 				aCbxManuel              ( this, SdResId( CBX_MANUEL ) ),
71*b1cdbd2cSJim Jagielski 				aCbxMousepointer        ( this, SdResId( CBX_MOUSEPOINTER ) ),
72*b1cdbd2cSJim Jagielski 				aCbxPen                 ( this, SdResId( CBX_PEN ) ),
73*b1cdbd2cSJim Jagielski 				aCbxNavigator           ( this, SdResId( CBX_NAVIGATOR ) ),
74*b1cdbd2cSJim Jagielski 				aCbxAnimationAllowed    ( this, SdResId( CBX_ANIMATION_ALLOWED ) ),
75*b1cdbd2cSJim Jagielski 				aCbxChangePage          ( this, SdResId( CBX_CHANGE_PAGE ) ),
76*b1cdbd2cSJim Jagielski 				aCbxAlwaysOnTop         ( this, SdResId( CBX_ALWAYS_ON_TOP ) ),
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski 				maGrpMonitor			( this, SdResId( GRP_MONITOR ) ),
79*b1cdbd2cSJim Jagielski 				maFtMonitor				( this, SdResId( FT_MONITOR ) ),
80*b1cdbd2cSJim Jagielski 				maLBMonitor				( this, SdResId( LB_MONITOR ) ),
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski 				aBtnOK                  ( this, SdResId( BTN_OK ) ),
83*b1cdbd2cSJim Jagielski 				aBtnCancel              ( this, SdResId( BTN_CANCEL ) ),
84*b1cdbd2cSJim Jagielski 				aBtnHelp                ( this, SdResId( BTN_HELP ) ),
85*b1cdbd2cSJim Jagielski 
86*b1cdbd2cSJim Jagielski 				pCustomShowList			( pCSList ),
87*b1cdbd2cSJim Jagielski 				rOutAttrs               ( rInAttrs ),
88*b1cdbd2cSJim Jagielski 				mnMonitors				( 0 ),
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski 				msPrimaryMonitor( SdResId(STR_PRIMARY_MONITOR ) ),
91*b1cdbd2cSJim Jagielski 				msMonitor( SdResId( STR_MONITOR ) ),
92*b1cdbd2cSJim Jagielski 				msAllMonitors( SdResId( STR_ALL_MONITORS ) )
93*b1cdbd2cSJim Jagielski {
94*b1cdbd2cSJim Jagielski 	FreeResource();
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski 	Link aLink( LINK( this, SdStartPresentationDlg, ChangeRangeHdl ) );
97*b1cdbd2cSJim Jagielski 
98*b1cdbd2cSJim Jagielski 	aRbtAll.SetClickHdl( aLink );
99*b1cdbd2cSJim Jagielski 	aRbtAtDia.SetClickHdl( aLink );
100*b1cdbd2cSJim Jagielski 	aRbtCustomshow.SetClickHdl( aLink );
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski 	aLink = LINK( this, SdStartPresentationDlg, ClickWindowPresentationHdl );
103*b1cdbd2cSJim Jagielski 	aRbtStandard.SetClickHdl( aLink );
104*b1cdbd2cSJim Jagielski 	aRbtWindow.SetClickHdl( aLink );
105*b1cdbd2cSJim Jagielski 	aRbtAuto.SetClickHdl( aLink );
106*b1cdbd2cSJim Jagielski 
107*b1cdbd2cSJim Jagielski 	aTmfPause.SetModifyHdl( LINK( this, SdStartPresentationDlg, ChangePauseHdl ) );
108*b1cdbd2cSJim Jagielski 	aTmfPause.SetFormat( TIMEF_SEC );
109*b1cdbd2cSJim Jagielski 
110*b1cdbd2cSJim Jagielski 	aLbDias.SetAccessibleRelationLabeledBy( &aRbtAtDia );
111*b1cdbd2cSJim Jagielski 	aLbDias.SetAccessibleName(aRbtAtDia.GetText());
112*b1cdbd2cSJim Jagielski 	aLbCustomshow.SetAccessibleRelationLabeledBy( &aRbtCustomshow );
113*b1cdbd2cSJim Jagielski 	aTmfPause.SetAccessibleRelationLabeledBy( &aRbtAuto );
114*b1cdbd2cSJim Jagielski 	aTmfPause.SetAccessibleName(aRbtAuto.GetText());
115*b1cdbd2cSJim Jagielski 
116*b1cdbd2cSJim Jagielski 	// Listbox mit Seitennamen fuellen
117*b1cdbd2cSJim Jagielski 	rPageNames.First();
118*b1cdbd2cSJim Jagielski 	for( sal_uInt16 i = 0;
119*b1cdbd2cSJim Jagielski 		 i < rPageNames.Count();
120*b1cdbd2cSJim Jagielski 		 i++ )
121*b1cdbd2cSJim Jagielski 	{
122*b1cdbd2cSJim Jagielski 		aLbDias.InsertEntry( *( String* ) rPageNames.GetCurObject() );
123*b1cdbd2cSJim Jagielski 		rPageNames.Next();
124*b1cdbd2cSJim Jagielski 	}
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski 	if( pCustomShowList )
127*b1cdbd2cSJim Jagielski 	{
128*b1cdbd2cSJim Jagielski 		sal_uInt16 nPosToSelect = (sal_uInt16) pCustomShowList->GetCurPos();
129*b1cdbd2cSJim Jagielski 		SdCustomShow* pCustomShow;
130*b1cdbd2cSJim Jagielski 		// Listbox mit CustomShows fuellen
131*b1cdbd2cSJim Jagielski 		for( pCustomShow = (SdCustomShow*) pCustomShowList->First();
132*b1cdbd2cSJim Jagielski 			 pCustomShow != NULL;
133*b1cdbd2cSJim Jagielski 			 pCustomShow = (SdCustomShow*) pCustomShowList->Next() )
134*b1cdbd2cSJim Jagielski 		{
135*b1cdbd2cSJim Jagielski 			aLbCustomshow.InsertEntry( pCustomShow->GetName() );
136*b1cdbd2cSJim Jagielski 		}
137*b1cdbd2cSJim Jagielski 		aLbCustomshow.SelectEntryPos( nPosToSelect );
138*b1cdbd2cSJim Jagielski 		pCustomShowList->Seek( nPosToSelect );
139*b1cdbd2cSJim Jagielski 	}
140*b1cdbd2cSJim Jagielski 	else
141*b1cdbd2cSJim Jagielski 		aRbtCustomshow.Disable();
142*b1cdbd2cSJim Jagielski 
143*b1cdbd2cSJim Jagielski 	if( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_CUSTOMSHOW ) ).GetValue() && pCSList )
144*b1cdbd2cSJim Jagielski 		aRbtCustomshow.Check();
145*b1cdbd2cSJim Jagielski 	else if( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ALL ) ).GetValue() )
146*b1cdbd2cSJim Jagielski 		aRbtAll.Check();
147*b1cdbd2cSJim Jagielski 	else
148*b1cdbd2cSJim Jagielski 		aRbtAtDia.Check();
149*b1cdbd2cSJim Jagielski 
150*b1cdbd2cSJim Jagielski 	aLbDias.SelectEntry( ( ( const SfxStringItem& ) rOutAttrs.Get( ATTR_PRESENT_DIANAME ) ).GetValue() );
151*b1cdbd2cSJim Jagielski 	aCbxManuel.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_MANUEL ) ).GetValue() );
152*b1cdbd2cSJim Jagielski 	aCbxMousepointer.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_MOUSE ) ).GetValue() );
153*b1cdbd2cSJim Jagielski 	aCbxPen.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_PEN ) ).GetValue() );
154*b1cdbd2cSJim Jagielski 	aCbxNavigator.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_NAVIGATOR ) ).GetValue() );
155*b1cdbd2cSJim Jagielski 	aCbxAnimationAllowed.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ANIMATION_ALLOWED ) ).GetValue() );
156*b1cdbd2cSJim Jagielski 	aCbxChangePage.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_CHANGE_PAGE ) ).GetValue() );
157*b1cdbd2cSJim Jagielski 	aCbxAlwaysOnTop.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ALWAYS_ON_TOP ) ).GetValue() );
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 	const sal_Bool	bEndless = ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ENDLESS ) ).GetValue();
160*b1cdbd2cSJim Jagielski 	const sal_Bool	bWindow = !( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_FULLSCREEN ) ).GetValue();
161*b1cdbd2cSJim Jagielski 	const long	nPause = ( ( const SfxUInt32Item& ) rOutAttrs.Get( ATTR_PRESENT_PAUSE_TIMEOUT ) ).GetValue();
162*b1cdbd2cSJim Jagielski 
163*b1cdbd2cSJim Jagielski 	aTmfPause.SetTime( Time( 0, 0, nPause ) );
164*b1cdbd2cSJim Jagielski 	// set cursor in timefield
165*b1cdbd2cSJim Jagielski 	Edit *pEdit = aTmfPause.GetField();
166*b1cdbd2cSJim Jagielski 	Selection aSel( pEdit->GetMaxTextLen(), pEdit->GetMaxTextLen() );
167*b1cdbd2cSJim Jagielski 	pEdit->SetSelection( aSel );
168*b1cdbd2cSJim Jagielski 
169*b1cdbd2cSJim Jagielski 	aCbxAutoLogo.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_SHOW_PAUSELOGO ) ).GetValue() );
170*b1cdbd2cSJim Jagielski 
171*b1cdbd2cSJim Jagielski 	if( bWindow )
172*b1cdbd2cSJim Jagielski 		aRbtWindow.Check( sal_True );
173*b1cdbd2cSJim Jagielski 	else if( bEndless )
174*b1cdbd2cSJim Jagielski 		aRbtAuto.Check( sal_True );
175*b1cdbd2cSJim Jagielski 	else
176*b1cdbd2cSJim Jagielski 		aRbtStandard.Check( sal_True );
177*b1cdbd2cSJim Jagielski 
178*b1cdbd2cSJim Jagielski 	InitMonitorSettings();
179*b1cdbd2cSJim Jagielski 
180*b1cdbd2cSJim Jagielski 	ChangeRangeHdl( this );
181*b1cdbd2cSJim Jagielski 
182*b1cdbd2cSJim Jagielski 	ClickWindowPresentationHdl( NULL );
183*b1cdbd2cSJim Jagielski 	ChangePauseHdl( NULL );
184*b1cdbd2cSJim Jagielski }
185*b1cdbd2cSJim Jagielski 
InitMonitorSettings()186*b1cdbd2cSJim Jagielski void SdStartPresentationDlg::InitMonitorSettings()
187*b1cdbd2cSJim Jagielski {
188*b1cdbd2cSJim Jagielski 	try
189*b1cdbd2cSJim Jagielski 	{
190*b1cdbd2cSJim Jagielski         Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory(), UNO_QUERY_THROW );
191*b1cdbd2cSJim Jagielski 		Reference< XIndexAccess > xMultiMon( xFactory->createInstance(OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.DisplayAccess" ) ) ), UNO_QUERY_THROW );
192*b1cdbd2cSJim Jagielski 		maGrpMonitor.Show( true );
193*b1cdbd2cSJim Jagielski 		maFtMonitor.Show( true );
194*b1cdbd2cSJim Jagielski 		maLBMonitor.Show( true );
195*b1cdbd2cSJim Jagielski 
196*b1cdbd2cSJim Jagielski 		mnMonitors = xMultiMon->getCount();
197*b1cdbd2cSJim Jagielski 
198*b1cdbd2cSJim Jagielski 		if( mnMonitors <= 1 )
199*b1cdbd2cSJim Jagielski 		{
200*b1cdbd2cSJim Jagielski 			maFtMonitor.Enable( false );
201*b1cdbd2cSJim Jagielski 			maLBMonitor.Enable( false );
202*b1cdbd2cSJim Jagielski 		}
203*b1cdbd2cSJim Jagielski 		else
204*b1cdbd2cSJim Jagielski 		{
205*b1cdbd2cSJim Jagielski 			sal_Bool bMultiscreen = false;
206*b1cdbd2cSJim Jagielski 			sal_Int32 nDefaultDisplay (0);
207*b1cdbd2cSJim Jagielski 			Reference< XPropertySet > xMonProps( xMultiMon, UNO_QUERY );
208*b1cdbd2cSJim Jagielski 			if( xMonProps.is() ) try
209*b1cdbd2cSJim Jagielski 			{
210*b1cdbd2cSJim Jagielski 				const OUString sPropName1( RTL_CONSTASCII_USTRINGPARAM( "MultiDisplay" ) );
211*b1cdbd2cSJim Jagielski 				xMonProps->getPropertyValue( sPropName1 ) >>= bMultiscreen;
212*b1cdbd2cSJim Jagielski 				const OUString sPropName2( RTL_CONSTASCII_USTRINGPARAM( "DefaultDisplay" ) );
213*b1cdbd2cSJim Jagielski 				xMonProps->getPropertyValue( sPropName2 ) >>= nDefaultDisplay;
214*b1cdbd2cSJim Jagielski 			}
215*b1cdbd2cSJim Jagielski 			catch( Exception& )
216*b1cdbd2cSJim Jagielski 			{
217*b1cdbd2cSJim Jagielski 			}
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski             sal_Int32 nSelectedIndex (-1);
220*b1cdbd2cSJim Jagielski             sal_Int32 nDefaultDisplayIndex (-1);
221*b1cdbd2cSJim Jagielski 			const sal_Int32 nDefaultSelectedDisplay (
222*b1cdbd2cSJim Jagielski                 ( ( const SfxInt32Item& ) rOutAttrs.Get( ATTR_PRESENT_DISPLAY ) ).GetValue());
223*b1cdbd2cSJim Jagielski 			const String sPlaceHolder( RTL_CONSTASCII_USTRINGPARAM( "%1" ) );
224*b1cdbd2cSJim Jagielski 			for( sal_Int32 nDisplay = 0; nDisplay < mnMonitors; nDisplay++ )
225*b1cdbd2cSJim Jagielski 			{
226*b1cdbd2cSJim Jagielski 				String aName( nDisplay == nDefaultDisplay ? msPrimaryMonitor : msMonitor );
227*b1cdbd2cSJim Jagielski 				const String aNumber( String::CreateFromInt32( nDisplay + 1 ) );
228*b1cdbd2cSJim Jagielski 				aName.SearchAndReplace( sPlaceHolder, aNumber );
229*b1cdbd2cSJim Jagielski 				maLBMonitor.InsertEntry( aName );
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski                 // Store display index together with name.
232*b1cdbd2cSJim Jagielski                 const sal_uInt32 nEntryIndex (maLBMonitor.GetEntryCount()-1);
233*b1cdbd2cSJim Jagielski                 maLBMonitor.SetEntryData(nEntryIndex, (void*)nDisplay);
234*b1cdbd2cSJim Jagielski 
235*b1cdbd2cSJim Jagielski                 // Remember the index of the default selection.
236*b1cdbd2cSJim Jagielski                 if (nDefaultSelectedDisplay == nDisplay)
237*b1cdbd2cSJim Jagielski                     nSelectedIndex = nEntryIndex;
238*b1cdbd2cSJim Jagielski 
239*b1cdbd2cSJim Jagielski                 // Remember index of the default display.
240*b1cdbd2cSJim Jagielski                 if (nDisplay == nDefaultDisplay)
241*b1cdbd2cSJim Jagielski                     nDefaultDisplayIndex = nEntryIndex;
242*b1cdbd2cSJim Jagielski 			}
243*b1cdbd2cSJim Jagielski 
244*b1cdbd2cSJim Jagielski 			if( !bMultiscreen )
245*b1cdbd2cSJim Jagielski             {
246*b1cdbd2cSJim Jagielski 				maLBMonitor.InsertEntry( msAllMonitors );
247*b1cdbd2cSJim Jagielski                 const sal_uInt32 nEntryIndex (maLBMonitor.GetEntryCount()-1);
248*b1cdbd2cSJim Jagielski 				maLBMonitor.SetEntryData(nEntryIndex, (void*)-1);
249*b1cdbd2cSJim Jagielski                 if (nDefaultSelectedDisplay == -1)
250*b1cdbd2cSJim Jagielski                     nSelectedIndex = nEntryIndex;
251*b1cdbd2cSJim Jagielski             }
252*b1cdbd2cSJim Jagielski 
253*b1cdbd2cSJim Jagielski 			if (nSelectedIndex < 0)
254*b1cdbd2cSJim Jagielski             {
255*b1cdbd2cSJim Jagielski                 if (nDefaultSelectedDisplay < 0)
256*b1cdbd2cSJim Jagielski                     nSelectedIndex = 0;
257*b1cdbd2cSJim Jagielski                 else
258*b1cdbd2cSJim Jagielski                     nSelectedIndex = nDefaultDisplayIndex;
259*b1cdbd2cSJim Jagielski             }
260*b1cdbd2cSJim Jagielski 
261*b1cdbd2cSJim Jagielski 			maLBMonitor.SelectEntryPos((sal_uInt16)nSelectedIndex);
262*b1cdbd2cSJim Jagielski 		}
263*b1cdbd2cSJim Jagielski 	}
264*b1cdbd2cSJim Jagielski 	catch( Exception& )
265*b1cdbd2cSJim Jagielski 	{
266*b1cdbd2cSJim Jagielski 	}
267*b1cdbd2cSJim Jagielski }
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski /*************************************************************************
270*b1cdbd2cSJim Jagielski |* Setzt die ausgewaehlten Attribute des Dialogs
271*b1cdbd2cSJim Jagielski \************************************************************************/
GetAttr(SfxItemSet & rAttr)272*b1cdbd2cSJim Jagielski void SdStartPresentationDlg::GetAttr( SfxItemSet& rAttr )
273*b1cdbd2cSJim Jagielski {
274*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_ALL, aRbtAll.IsChecked() ) );
275*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_CUSTOMSHOW, aRbtCustomshow.IsChecked() ) );
276*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxStringItem ( ATTR_PRESENT_DIANAME, aLbDias.GetSelectEntry() ) );
277*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_MANUEL, aCbxManuel.IsChecked() ) );
278*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_MOUSE, aCbxMousepointer.IsChecked() ) );
279*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_PEN, aCbxPen.IsChecked() ) );
280*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_NAVIGATOR, aCbxNavigator.IsChecked() ) );
281*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_ANIMATION_ALLOWED, aCbxAnimationAllowed.IsChecked() ) );
282*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_CHANGE_PAGE, aCbxChangePage.IsChecked() ) );
283*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_ALWAYS_ON_TOP, aCbxAlwaysOnTop.IsChecked() ) );
284*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_FULLSCREEN, !aRbtWindow.IsChecked() ) );
285*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_ENDLESS, aRbtAuto.IsChecked() ) );
286*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxUInt32Item ( ATTR_PRESENT_PAUSE_TIMEOUT, aTmfPause.GetTime().GetMSFromTime() / 1000 ) );
287*b1cdbd2cSJim Jagielski 	rAttr.Put( SfxBoolItem ( ATTR_PRESENT_SHOW_PAUSELOGO, aCbxAutoLogo.IsChecked() ) );
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski 	sal_uInt16 nPos = maLBMonitor.GetSelectEntryPos();
290*b1cdbd2cSJim Jagielski 	if( nPos != LISTBOX_ENTRY_NOTFOUND )
291*b1cdbd2cSJim Jagielski         rAttr.Put( SfxInt32Item ( ATTR_PRESENT_DISPLAY, (sal_Int32)(sal_IntPtr)maLBMonitor.GetEntryData(nPos)) );
292*b1cdbd2cSJim Jagielski 
293*b1cdbd2cSJim Jagielski 	nPos = aLbCustomshow.GetSelectEntryPos();
294*b1cdbd2cSJim Jagielski 	if( nPos != LISTBOX_ENTRY_NOTFOUND )
295*b1cdbd2cSJim Jagielski 		pCustomShowList->Seek( nPos );
296*b1cdbd2cSJim Jagielski }
297*b1cdbd2cSJim Jagielski 
298*b1cdbd2cSJim Jagielski /*************************************************************************
299*b1cdbd2cSJim Jagielski |*      Handler: Enabled/Disabled Listbox "Dias"
300*b1cdbd2cSJim Jagielski \************************************************************************/
IMPL_LINK(SdStartPresentationDlg,ChangeRangeHdl,void *,EMPTYARG)301*b1cdbd2cSJim Jagielski IMPL_LINK( SdStartPresentationDlg, ChangeRangeHdl, void *, EMPTYARG )
302*b1cdbd2cSJim Jagielski {
303*b1cdbd2cSJim Jagielski 	aLbDias.Enable( aRbtAtDia.IsChecked() );
304*b1cdbd2cSJim Jagielski 	aLbCustomshow.Enable( aRbtCustomshow.IsChecked() );
305*b1cdbd2cSJim Jagielski 
306*b1cdbd2cSJim Jagielski 	return( 0L );
307*b1cdbd2cSJim Jagielski }
308*b1cdbd2cSJim Jagielski 
309*b1cdbd2cSJim Jagielski /*************************************************************************
310*b1cdbd2cSJim Jagielski |*      Handler: Enabled/Disabled Checkbox "AlwaysOnTop"
311*b1cdbd2cSJim Jagielski \************************************************************************/
IMPL_LINK(SdStartPresentationDlg,ClickWindowPresentationHdl,void *,EMPTYARG)312*b1cdbd2cSJim Jagielski IMPL_LINK( SdStartPresentationDlg, ClickWindowPresentationHdl, void *, EMPTYARG )
313*b1cdbd2cSJim Jagielski {
314*b1cdbd2cSJim Jagielski 	const bool bAuto = aRbtAuto.IsChecked();
315*b1cdbd2cSJim Jagielski 	const bool bWindow = aRbtWindow.IsChecked();
316*b1cdbd2cSJim Jagielski 
317*b1cdbd2cSJim Jagielski 	// aFtPause.Enable( bAuto );
318*b1cdbd2cSJim Jagielski 	aTmfPause.Enable( bAuto );
319*b1cdbd2cSJim Jagielski 	aCbxAutoLogo.Enable( bAuto && ( aTmfPause.GetTime().GetMSFromTime() > 0 ) );
320*b1cdbd2cSJim Jagielski 
321*b1cdbd2cSJim Jagielski 	const bool bDisplay = !bWindow && ( mnMonitors > 1 );
322*b1cdbd2cSJim Jagielski 	maFtMonitor.Enable( bDisplay );
323*b1cdbd2cSJim Jagielski 	maLBMonitor.Enable( bDisplay );
324*b1cdbd2cSJim Jagielski 
325*b1cdbd2cSJim Jagielski 	if( bWindow )
326*b1cdbd2cSJim Jagielski 	{
327*b1cdbd2cSJim Jagielski 		aCbxAlwaysOnTop.Enable( sal_False );
328*b1cdbd2cSJim Jagielski 		aCbxAlwaysOnTop.Check( sal_False );
329*b1cdbd2cSJim Jagielski 	}
330*b1cdbd2cSJim Jagielski 	else
331*b1cdbd2cSJim Jagielski 		aCbxAlwaysOnTop.Enable();
332*b1cdbd2cSJim Jagielski 
333*b1cdbd2cSJim Jagielski 	return( 0L );
334*b1cdbd2cSJim Jagielski }
335*b1cdbd2cSJim Jagielski 
336*b1cdbd2cSJim Jagielski /*************************************************************************
337*b1cdbd2cSJim Jagielski |*      Handler: Enabled/Disabled Checkbox "AlwaysOnTop"
338*b1cdbd2cSJim Jagielski \************************************************************************/
IMPL_LINK(SdStartPresentationDlg,ChangePauseHdl,void *,EMPTYARG)339*b1cdbd2cSJim Jagielski IMPL_LINK( SdStartPresentationDlg, ChangePauseHdl, void *, EMPTYARG )
340*b1cdbd2cSJim Jagielski {
341*b1cdbd2cSJim Jagielski 	aCbxAutoLogo.Enable( aRbtAuto.IsChecked() && ( aTmfPause.GetTime().GetMSFromTime() > 0 ) );
342*b1cdbd2cSJim Jagielski 	return( 0L );
343*b1cdbd2cSJim Jagielski }
344*b1cdbd2cSJim Jagielski 
345*b1cdbd2cSJim Jagielski 
346