xref: /trunk/main/sc/source/ui/miscdlgs/linkarea.cxx (revision cf6516809c57e1bb0a940545cca99cdad54d4ce2)
1b3f79822SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3b3f79822SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4b3f79822SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5b3f79822SAndrew Rist  * distributed with this work for additional information
6b3f79822SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7b3f79822SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8b3f79822SAndrew Rist  * "License"); you may not use this file except in compliance
9b3f79822SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11b3f79822SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13b3f79822SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14b3f79822SAndrew Rist  * software distributed under the License is distributed on an
15b3f79822SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16b3f79822SAndrew Rist  * KIND, either express or implied.  See the License for the
17b3f79822SAndrew Rist  * specific language governing permissions and limitations
18b3f79822SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20b3f79822SAndrew Rist  *************************************************************/
21b3f79822SAndrew Rist 
22b3f79822SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25*b77af630Sdamjan #include "precompiled_scui.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir 
28cdf0e10cSrcweir 
29cdf0e10cSrcweir 
30cdf0e10cSrcweir //------------------------------------------------------------------
31cdf0e10cSrcweir 
32cdf0e10cSrcweir #include <sfx2/app.hxx>
33cdf0e10cSrcweir #include <sfx2/docfile.hxx>
34cdf0e10cSrcweir #include <sfx2/docfilt.hxx>
35cdf0e10cSrcweir #include <sfx2/docinsert.hxx>
36cdf0e10cSrcweir #include <sfx2/fcontnr.hxx>
37cdf0e10cSrcweir #include <sfx2/filedlghelper.hxx>
38cdf0e10cSrcweir #include <svtools/ehdl.hxx>
39cdf0e10cSrcweir #include <svtools/sfxecode.hxx>
40cdf0e10cSrcweir #include <vcl/waitobj.hxx>
41cdf0e10cSrcweir 
42cdf0e10cSrcweir #include "linkarea.hxx"
43cdf0e10cSrcweir #include "linkarea.hrc"
44cdf0e10cSrcweir #include "scresid.hxx"
45cdf0e10cSrcweir #include "sc.hrc"
46cdf0e10cSrcweir #include "rangeutl.hxx"
47cdf0e10cSrcweir #include "docsh.hxx"
48cdf0e10cSrcweir #include "tablink.hxx"
49cdf0e10cSrcweir 
50cdf0e10cSrcweir //==================================================================
51cdf0e10cSrcweir 
ScLinkedAreaDlg(Window * pParent)52cdf0e10cSrcweir ScLinkedAreaDlg::ScLinkedAreaDlg( Window* pParent ) :
53cdf0e10cSrcweir     ModalDialog ( pParent, ScResId( RID_SCDLG_LINKAREA ) ),
54cdf0e10cSrcweir     //
55cdf0e10cSrcweir     aFlLocation ( this, ScResId( FL_LOCATION ) ),
56cdf0e10cSrcweir     aCbUrl      ( this, ScResId( CB_URL ) ),
57cdf0e10cSrcweir     aBtnBrowse  ( this, ScResId( BTN_BROWSE ) ),
58cdf0e10cSrcweir     aTxtHint    ( this, ScResId( FT_HINT ) ),
59cdf0e10cSrcweir     aFtRanges   ( this, ScResId( FT_RANGES ) ),
60cdf0e10cSrcweir     aLbRanges   ( this, ScResId( LB_RANGES ) ),
61cdf0e10cSrcweir     aBtnReload  ( this, ScResId( BTN_RELOAD ) ),
62cdf0e10cSrcweir     aNfDelay    ( this, ScResId( NF_DELAY ) ),
63cdf0e10cSrcweir     aFtSeconds  ( this, ScResId( FT_SECONDS ) ),
64cdf0e10cSrcweir     aBtnOk      ( this, ScResId( BTN_OK ) ),
65cdf0e10cSrcweir     aBtnCancel  ( this, ScResId( BTN_CANCEL ) ),
66cdf0e10cSrcweir     aBtnHelp    ( this, ScResId( BTN_HELP ) ),
67cdf0e10cSrcweir     //
68cdf0e10cSrcweir     pSourceShell( NULL ),
69cdf0e10cSrcweir     pDocInserter( NULL )
70cdf0e10cSrcweir 
71cdf0e10cSrcweir {
72cdf0e10cSrcweir     FreeResource();
73cdf0e10cSrcweir 
74cdf0e10cSrcweir     aCbUrl.SetHelpId( HID_SCDLG_LINKAREAURL );  // SvtURLBox ctor always sets SID_OPENURL
75cdf0e10cSrcweir     aCbUrl.SetSelectHdl( LINK( this, ScLinkedAreaDlg, FileHdl ) );
76cdf0e10cSrcweir     aBtnBrowse.SetClickHdl( LINK( this, ScLinkedAreaDlg, BrowseHdl ) );
77cdf0e10cSrcweir     aLbRanges.SetSelectHdl( LINK( this, ScLinkedAreaDlg, RangeHdl ) );
78cdf0e10cSrcweir     aBtnReload.SetClickHdl( LINK( this, ScLinkedAreaDlg, ReloadHdl ) );
79cdf0e10cSrcweir     UpdateEnable();
80cdf0e10cSrcweir 
81cdf0e10cSrcweir     aNfDelay.SetAccessibleName(aBtnReload.GetText());
82cdf0e10cSrcweir     aNfDelay.SetAccessibleRelationLabeledBy(&aBtnReload);
83cdf0e10cSrcweir }
84cdf0e10cSrcweir 
~ScLinkedAreaDlg()85cdf0e10cSrcweir ScLinkedAreaDlg::~ScLinkedAreaDlg()
86cdf0e10cSrcweir {
87cdf0e10cSrcweir     // pSourceShell is deleted by aSourceRef
88cdf0e10cSrcweir }
89cdf0e10cSrcweir 
Execute()90cdf0e10cSrcweir short ScLinkedAreaDlg::Execute()
91cdf0e10cSrcweir {
92cdf0e10cSrcweir     // set parent for file dialog or filter options
93cdf0e10cSrcweir 
94cdf0e10cSrcweir     Window* pOldDefParent = Application::GetDefDialogParent();
95cdf0e10cSrcweir     Application::SetDefDialogParent( this );
96cdf0e10cSrcweir 
97cdf0e10cSrcweir     short nRet = ModalDialog::Execute();
98cdf0e10cSrcweir 
99cdf0e10cSrcweir     Application::SetDefDialogParent( pOldDefParent );
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     return nRet;
102cdf0e10cSrcweir }
103cdf0e10cSrcweir 
104cdf0e10cSrcweir #define FILTERNAME_HTML  "HTML (StarCalc)"
105cdf0e10cSrcweir #define FILTERNAME_QUERY "calc_HTML_WebQuery"
106cdf0e10cSrcweir 
IMPL_LINK(ScLinkedAreaDlg,BrowseHdl,PushButton *,EMPTYARG)107cdf0e10cSrcweir IMPL_LINK( ScLinkedAreaDlg, BrowseHdl, PushButton*, EMPTYARG )
108cdf0e10cSrcweir {
109cdf0e10cSrcweir     if ( !pDocInserter )
110cdf0e10cSrcweir         pDocInserter = new sfx2::DocumentInserter(
111cdf0e10cSrcweir             0, String::CreateFromAscii( ScDocShell::Factory().GetShortName() ) );
112cdf0e10cSrcweir     pDocInserter->StartExecuteModal( LINK( this, ScLinkedAreaDlg, DialogClosedHdl ) );
113cdf0e10cSrcweir     return 0;
114cdf0e10cSrcweir }
115cdf0e10cSrcweir 
IMPL_LINK(ScLinkedAreaDlg,FileHdl,ComboBox *,EMPTYARG)116cdf0e10cSrcweir IMPL_LINK( ScLinkedAreaDlg, FileHdl, ComboBox*, EMPTYARG )
117cdf0e10cSrcweir {
118cdf0e10cSrcweir     String aEntered = aCbUrl.GetURL();
119cdf0e10cSrcweir     if (pSourceShell)
120cdf0e10cSrcweir     {
121cdf0e10cSrcweir         SfxMedium* pMed = pSourceShell->GetMedium();
122cdf0e10cSrcweir         if ( pMed->GetName() == aEntered )
123cdf0e10cSrcweir         {
124cdf0e10cSrcweir             //  already loaded - nothing to do
125cdf0e10cSrcweir             return 0;
126cdf0e10cSrcweir         }
127cdf0e10cSrcweir     }
128cdf0e10cSrcweir 
129cdf0e10cSrcweir     String aFilter;
130cdf0e10cSrcweir     String aOptions;
131cdf0e10cSrcweir     //  get filter name by looking at the file content (bWithContent = sal_True)
13286e1cf34SPedro Giffuni     // Break operation if any error occurred inside.
133cdf0e10cSrcweir     if (!ScDocumentLoader::GetFilterName( aEntered, aFilter, aOptions, sal_True, sal_True ))
134cdf0e10cSrcweir         return 0;
135cdf0e10cSrcweir 
136cdf0e10cSrcweir     // #i53241# replace HTML filter with DataQuery filter
137cdf0e10cSrcweir     if( aFilter.EqualsAscii( FILTERNAME_HTML ) )
138cdf0e10cSrcweir         aFilter.AssignAscii( FILTERNAME_QUERY );
139cdf0e10cSrcweir 
140cdf0e10cSrcweir     LoadDocument( aEntered, aFilter, aOptions );
141cdf0e10cSrcweir 
142cdf0e10cSrcweir     UpdateSourceRanges();
143cdf0e10cSrcweir     UpdateEnable();
144cdf0e10cSrcweir     return 0;
145cdf0e10cSrcweir }
146cdf0e10cSrcweir 
LoadDocument(const String & rFile,const String & rFilter,const String & rOptions)147cdf0e10cSrcweir void ScLinkedAreaDlg::LoadDocument( const String& rFile, const String& rFilter, const String& rOptions )
148cdf0e10cSrcweir {
149cdf0e10cSrcweir     if ( pSourceShell )
150cdf0e10cSrcweir     {
151cdf0e10cSrcweir         //  unload old document
152cdf0e10cSrcweir         pSourceShell->DoClose();
153cdf0e10cSrcweir         pSourceShell = NULL;
154cdf0e10cSrcweir         aSourceRef.Clear();
155cdf0e10cSrcweir     }
156cdf0e10cSrcweir 
157cdf0e10cSrcweir     if ( rFile.Len() )
158cdf0e10cSrcweir     {
159cdf0e10cSrcweir         WaitObject aWait( this );
160cdf0e10cSrcweir 
161cdf0e10cSrcweir         String aNewFilter = rFilter;
162cdf0e10cSrcweir         String aNewOptions = rOptions;
163cdf0e10cSrcweir 
164cdf0e10cSrcweir         SfxErrorContext aEc( ERRCTX_SFX_OPENDOC, rFile );
165cdf0e10cSrcweir 
166cdf0e10cSrcweir         ScDocumentLoader aLoader( rFile, aNewFilter, aNewOptions, 0, sal_True );    // with interaction
167cdf0e10cSrcweir         pSourceShell = aLoader.GetDocShell();
168cdf0e10cSrcweir         if ( pSourceShell )
169cdf0e10cSrcweir         {
170cdf0e10cSrcweir             sal_uLong nErr = pSourceShell->GetErrorCode();
171cdf0e10cSrcweir             if (nErr)
172cdf0e10cSrcweir                 ErrorHandler::HandleError( nErr );      // including warnings
173cdf0e10cSrcweir 
174cdf0e10cSrcweir             aSourceRef = pSourceShell;
175cdf0e10cSrcweir             aLoader.ReleaseDocRef();    // don't call DoClose in DocLoader dtor
176cdf0e10cSrcweir         }
177cdf0e10cSrcweir     }
178cdf0e10cSrcweir }
179cdf0e10cSrcweir 
InitFromOldLink(const String & rFile,const String & rFilter,const String & rOptions,const String & rSource,sal_uLong nRefresh)180cdf0e10cSrcweir void ScLinkedAreaDlg::InitFromOldLink( const String& rFile, const String& rFilter,
181cdf0e10cSrcweir                                         const String& rOptions, const String& rSource,
182cdf0e10cSrcweir                                         sal_uLong nRefresh )
183cdf0e10cSrcweir {
184cdf0e10cSrcweir     LoadDocument( rFile, rFilter, rOptions );
185cdf0e10cSrcweir     if (pSourceShell)
186cdf0e10cSrcweir     {
187cdf0e10cSrcweir         SfxMedium* pMed = pSourceShell->GetMedium();
188cdf0e10cSrcweir         aCbUrl.SetText( pMed->GetName() );
189cdf0e10cSrcweir     }
190cdf0e10cSrcweir     else
191cdf0e10cSrcweir         aCbUrl.SetText( EMPTY_STRING );
192cdf0e10cSrcweir 
193cdf0e10cSrcweir     UpdateSourceRanges();
194cdf0e10cSrcweir 
195cdf0e10cSrcweir     xub_StrLen nRangeCount = rSource.GetTokenCount();
196cdf0e10cSrcweir     for ( xub_StrLen i=0; i<nRangeCount; i++ )
197cdf0e10cSrcweir     {
198cdf0e10cSrcweir         String aRange = rSource.GetToken(i);
199cdf0e10cSrcweir         aLbRanges.SelectEntry( aRange );
200cdf0e10cSrcweir     }
201cdf0e10cSrcweir 
202cdf0e10cSrcweir     sal_Bool bDoRefresh = ( nRefresh != 0 );
203cdf0e10cSrcweir     aBtnReload.Check( bDoRefresh );
204cdf0e10cSrcweir     if (bDoRefresh)
205cdf0e10cSrcweir         aNfDelay.SetValue( nRefresh );
206cdf0e10cSrcweir 
207cdf0e10cSrcweir     UpdateEnable();
208cdf0e10cSrcweir }
209cdf0e10cSrcweir 
IMPL_LINK(ScLinkedAreaDlg,RangeHdl,MultiListBox *,EMPTYARG)210cdf0e10cSrcweir IMPL_LINK( ScLinkedAreaDlg, RangeHdl, MultiListBox*, EMPTYARG )
211cdf0e10cSrcweir {
212cdf0e10cSrcweir     UpdateEnable();
213cdf0e10cSrcweir     return 0;
214cdf0e10cSrcweir }
215cdf0e10cSrcweir 
IMPL_LINK(ScLinkedAreaDlg,ReloadHdl,CheckBox *,EMPTYARG)216cdf0e10cSrcweir IMPL_LINK( ScLinkedAreaDlg, ReloadHdl, CheckBox*, EMPTYARG )
217cdf0e10cSrcweir {
218cdf0e10cSrcweir     UpdateEnable();
219cdf0e10cSrcweir     return 0;
220cdf0e10cSrcweir }
221cdf0e10cSrcweir 
IMPL_LINK(ScLinkedAreaDlg,DialogClosedHdl,sfx2::FileDialogHelper *,_pFileDlg)222cdf0e10cSrcweir IMPL_LINK( ScLinkedAreaDlg, DialogClosedHdl, sfx2::FileDialogHelper*, _pFileDlg )
223cdf0e10cSrcweir {
224cdf0e10cSrcweir     if ( _pFileDlg->GetError() != ERRCODE_NONE )
225cdf0e10cSrcweir         return 0;
226cdf0e10cSrcweir 
227cdf0e10cSrcweir     SfxMedium* pMed = pDocInserter->CreateMedium();
228cdf0e10cSrcweir     if ( pMed )
229cdf0e10cSrcweir     {
230cdf0e10cSrcweir         WaitObject aWait( this );
231cdf0e10cSrcweir 
232cdf0e10cSrcweir         // #92296# replace HTML filter with DataQuery filter
233cdf0e10cSrcweir         const String aHTMLFilterName( RTL_CONSTASCII_USTRINGPARAM( FILTERNAME_HTML ) );
234cdf0e10cSrcweir         const String aWebQFilterName( RTL_CONSTASCII_USTRINGPARAM( FILTERNAME_QUERY ) );
235cdf0e10cSrcweir 
236cdf0e10cSrcweir         const SfxFilter* pFilter = pMed->GetFilter();
237cdf0e10cSrcweir         if( pFilter && (pFilter->GetFilterName() == aHTMLFilterName) )
238cdf0e10cSrcweir         {
239cdf0e10cSrcweir             const SfxFilter* pNewFilter =
240cdf0e10cSrcweir                 ScDocShell::Factory().GetFilterContainer()->GetFilter4FilterName( aWebQFilterName );
241cdf0e10cSrcweir             if( pNewFilter )
242cdf0e10cSrcweir                 pMed->SetFilter( pNewFilter );
243cdf0e10cSrcweir         }
244cdf0e10cSrcweir 
245cdf0e10cSrcweir         //  ERRCTX_SFX_OPENDOC -> "Fehler beim Laden des Dokumentes"
246cdf0e10cSrcweir         SfxErrorContext aEc( ERRCTX_SFX_OPENDOC, pMed->GetName() );
247cdf0e10cSrcweir 
248cdf0e10cSrcweir         if (pSourceShell)
249cdf0e10cSrcweir             pSourceShell->DoClose();        // deleted when assigning aSourceRef
250cdf0e10cSrcweir 
251cdf0e10cSrcweir         pMed->UseInteractionHandler( sal_True );    // to enable the filter options dialog
252cdf0e10cSrcweir 
253cdf0e10cSrcweir         pSourceShell = new ScDocShell;
254cdf0e10cSrcweir         aSourceRef = pSourceShell;
255cdf0e10cSrcweir         pSourceShell->DoLoad( pMed );
256cdf0e10cSrcweir 
257cdf0e10cSrcweir         sal_uLong nErr = pSourceShell->GetErrorCode();
258cdf0e10cSrcweir         if (nErr)
259cdf0e10cSrcweir             ErrorHandler::HandleError( nErr );              // including warnings
260cdf0e10cSrcweir 
261cdf0e10cSrcweir         if ( !pSourceShell->GetError() )                    // only errors
262cdf0e10cSrcweir         {
263cdf0e10cSrcweir             //aCbUrl.SetText( pSourceShell->GetTitle( SFX_TITLE_FULLNAME ) );
264cdf0e10cSrcweir             aCbUrl.SetText( pMed->GetName() );
265cdf0e10cSrcweir         }
266cdf0e10cSrcweir         else
267cdf0e10cSrcweir         {
268cdf0e10cSrcweir             pSourceShell->DoClose();
269cdf0e10cSrcweir             pSourceShell = NULL;
270cdf0e10cSrcweir             aSourceRef.Clear();
271cdf0e10cSrcweir 
272cdf0e10cSrcweir             aCbUrl.SetText( EMPTY_STRING );
273cdf0e10cSrcweir         }
274cdf0e10cSrcweir     }
275cdf0e10cSrcweir 
276cdf0e10cSrcweir     UpdateSourceRanges();
277cdf0e10cSrcweir     UpdateEnable();
278cdf0e10cSrcweir     return 0;
279cdf0e10cSrcweir }
280cdf0e10cSrcweir 
281cdf0e10cSrcweir #undef FILTERNAME_HTML
282cdf0e10cSrcweir #undef FILTERNAME_QUERY
283cdf0e10cSrcweir 
UpdateSourceRanges()284cdf0e10cSrcweir void ScLinkedAreaDlg::UpdateSourceRanges()
285cdf0e10cSrcweir {
286cdf0e10cSrcweir     aLbRanges.SetUpdateMode( sal_False );
287cdf0e10cSrcweir 
288cdf0e10cSrcweir     aLbRanges.Clear();
289cdf0e10cSrcweir     if ( pSourceShell )
290cdf0e10cSrcweir     {
291cdf0e10cSrcweir         ScAreaNameIterator aIter( pSourceShell->GetDocument() );
292cdf0e10cSrcweir         ScRange aDummy;
293cdf0e10cSrcweir         String aName;
294cdf0e10cSrcweir         while ( aIter.Next( aName, aDummy ) )
295cdf0e10cSrcweir             aLbRanges.InsertEntry( aName );
296cdf0e10cSrcweir     }
297cdf0e10cSrcweir 
298cdf0e10cSrcweir     aLbRanges.SetUpdateMode( sal_True );
299cdf0e10cSrcweir 
300cdf0e10cSrcweir     if ( aLbRanges.GetEntryCount() == 1 )
301cdf0e10cSrcweir         aLbRanges.SelectEntryPos(0);
302cdf0e10cSrcweir }
303cdf0e10cSrcweir 
UpdateEnable()304cdf0e10cSrcweir void ScLinkedAreaDlg::UpdateEnable()
305cdf0e10cSrcweir {
306cdf0e10cSrcweir     sal_Bool bEnable = ( pSourceShell && aLbRanges.GetSelectEntryCount() );
307cdf0e10cSrcweir     aBtnOk.Enable( bEnable );
308cdf0e10cSrcweir 
309cdf0e10cSrcweir     sal_Bool bReload = aBtnReload.IsChecked();
310cdf0e10cSrcweir     aNfDelay.Enable( bReload );
311cdf0e10cSrcweir     aFtSeconds.Enable( bReload );
312cdf0e10cSrcweir }
313cdf0e10cSrcweir 
GetURL()314cdf0e10cSrcweir String ScLinkedAreaDlg::GetURL()
315cdf0e10cSrcweir {
316cdf0e10cSrcweir     if (pSourceShell)
317cdf0e10cSrcweir     {
318cdf0e10cSrcweir         SfxMedium* pMed = pSourceShell->GetMedium();
319cdf0e10cSrcweir         return pMed->GetName();
320cdf0e10cSrcweir     }
321cdf0e10cSrcweir     return EMPTY_STRING;
322cdf0e10cSrcweir }
323cdf0e10cSrcweir 
GetFilter()324cdf0e10cSrcweir String ScLinkedAreaDlg::GetFilter()
325cdf0e10cSrcweir {
326cdf0e10cSrcweir     if (pSourceShell)
327cdf0e10cSrcweir     {
328cdf0e10cSrcweir         SfxMedium* pMed = pSourceShell->GetMedium();
329cdf0e10cSrcweir         return pMed->GetFilter()->GetFilterName();
330cdf0e10cSrcweir     }
331cdf0e10cSrcweir     return EMPTY_STRING;
332cdf0e10cSrcweir }
333cdf0e10cSrcweir 
GetOptions()334cdf0e10cSrcweir String ScLinkedAreaDlg::GetOptions()
335cdf0e10cSrcweir {
336cdf0e10cSrcweir     if (pSourceShell)
337cdf0e10cSrcweir     {
338cdf0e10cSrcweir         SfxMedium* pMed = pSourceShell->GetMedium();
339cdf0e10cSrcweir         return ScDocumentLoader::GetOptions( *pMed );
340cdf0e10cSrcweir     }
341cdf0e10cSrcweir     return EMPTY_STRING;
342cdf0e10cSrcweir }
343cdf0e10cSrcweir 
GetSource()344cdf0e10cSrcweir String ScLinkedAreaDlg::GetSource()
345cdf0e10cSrcweir {
346cdf0e10cSrcweir     String aSource;
347cdf0e10cSrcweir     sal_uInt16 nCount = aLbRanges.GetSelectEntryCount();
348cdf0e10cSrcweir     for (sal_uInt16 i=0; i<nCount; i++)
349cdf0e10cSrcweir     {
350cdf0e10cSrcweir         if (i > 0)
351cdf0e10cSrcweir             aSource.Append( (sal_Unicode) ';' );
352cdf0e10cSrcweir         aSource.Append( aLbRanges.GetSelectEntry( i ) );
353cdf0e10cSrcweir     }
354cdf0e10cSrcweir     return aSource;
355cdf0e10cSrcweir }
356cdf0e10cSrcweir 
GetRefresh()357cdf0e10cSrcweir sal_uLong ScLinkedAreaDlg::GetRefresh()
358cdf0e10cSrcweir {
359cdf0e10cSrcweir     if ( aBtnReload.IsChecked() )
360cdf0e10cSrcweir         return sal::static_int_cast<sal_uLong>( aNfDelay.GetValue() );
361cdf0e10cSrcweir     else
362cdf0e10cSrcweir         return 0;   // disabled
363cdf0e10cSrcweir }
364