Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <sfx2/frame.hxx>
21 : #include <sfx2/viewfrm.hxx>
22 : #include <sot/formats.hxx>
23 : #include <sfx2/sfxsids.hrc>
24 : #include <svl/macitem.hxx>
25 : #include <ucbhelper/content.hxx>
26 : #include <unotools/localfilehelper.hxx>
27 : #include "cuihyperdlg.hxx"
28 : #include "hltpbase.hxx"
29 : #include "macroass.hxx"
30 : #include <svx/svxdlg.hxx>
31 : #include <cuires.hrc>
32 : #include <boost/scoped_ptr.hpp>
33 :
34 : using namespace ::ucbhelper;
35 :
36 : //# ComboBox-Control for URL's with History and Autocompletion #
37 :
38 0 : SvxHyperURLBox::SvxHyperURLBox( vcl::Window* pParent, INetProtocol eSmart )
39 : : SvtURLBox ( pParent, eSmart ),
40 0 : DropTargetHelper ( this )
41 : {
42 0 : }
43 :
44 0 : extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeSvxHyperURLBox(vcl::Window *pParent, VclBuilder::stringmap &)
45 : {
46 0 : return new SvxHyperURLBox(pParent, INET_PROT_HTTP);
47 : }
48 :
49 0 : sal_Int8 SvxHyperURLBox::AcceptDrop( const AcceptDropEvent& /* rEvt */ )
50 : {
51 0 : return( IsDropFormatSupported( FORMAT_STRING ) ? DND_ACTION_COPY : DND_ACTION_NONE );
52 : }
53 :
54 0 : sal_Int8 SvxHyperURLBox::ExecuteDrop( const ExecuteDropEvent& rEvt )
55 : {
56 0 : TransferableDataHelper aDataHelper( rEvt.maDropEvent.Transferable );
57 0 : OUString aString;
58 0 : sal_Int8 nRet = DND_ACTION_NONE;
59 :
60 0 : if( aDataHelper.GetString( FORMAT_STRING, aString ) )
61 : {
62 0 : SetText( aString );
63 0 : nRet = DND_ACTION_COPY;
64 : }
65 :
66 0 : return nRet;
67 : }
68 :
69 0 : void SvxHyperURLBox::Select()
70 : {
71 0 : SvtURLBox::Select();
72 0 : }
73 0 : void SvxHyperURLBox::Modify()
74 : {
75 0 : SvtURLBox::Modify();
76 0 : }
77 0 : bool SvxHyperURLBox::Notify( NotifyEvent& rNEvt )
78 : {
79 0 : return SvtURLBox::Notify( rNEvt );
80 : }
81 0 : bool SvxHyperURLBox::PreNotify( NotifyEvent& rNEvt )
82 : {
83 0 : return SvtURLBox::PreNotify( rNEvt );
84 : }
85 :
86 : //# Hyperlink-Dialog: Tabpages-Baseclass #
87 :
88 0 : SvxHyperlinkTabPageBase::SvxHyperlinkTabPageBase ( vcl::Window *pParent,
89 : IconChoiceDialog* pDlg,
90 : const OString& rID,
91 : const OUString& rUIXMLDescription,
92 : const SfxItemSet& rItemSet )
93 : : IconChoicePage ( pParent, rID, rUIXMLDescription, rItemSet ),
94 : mpCbbFrame ( NULL ),
95 : mpLbForm ( NULL ),
96 : mpEdIndication ( NULL ),
97 : mpEdText ( NULL ),
98 : mpBtScript ( NULL ),
99 : mbIsCloseDisabled ( false ),
100 : mpDialog ( pDlg ),
101 : mbStdControlsInit ( false ),
102 0 : aEmptyStr()
103 : {
104 : // create bookmark-window
105 0 : mpMarkWnd = new SvxHlinkDlgMarkWnd ( this );
106 0 : }
107 :
108 0 : SvxHyperlinkTabPageBase::~SvxHyperlinkTabPageBase ()
109 : {
110 0 : maTimer.Stop();
111 :
112 0 : delete mpMarkWnd;
113 0 : }
114 :
115 0 : void SvxHyperlinkTabPageBase::ActivatePage()
116 : {
117 0 : TabPage::ActivatePage();
118 0 : }
119 :
120 0 : void SvxHyperlinkTabPageBase::DeactivatePage()
121 : {
122 0 : TabPage::DeactivatePage();
123 0 : }
124 :
125 0 : bool SvxHyperlinkTabPageBase::QueryClose()
126 : {
127 0 : return !mbIsCloseDisabled;
128 : }
129 :
130 0 : void SvxHyperlinkTabPageBase::InitStdControls ()
131 : {
132 0 : if ( !mbStdControlsInit )
133 : {
134 0 : get(mpCbbFrame, "frame");
135 :
136 0 : SfxDispatcher* pDispatch = GetDispatcher();
137 0 : SfxViewFrame* pViewFrame = pDispatch ? pDispatch->GetFrame() : 0;
138 0 : SfxFrame* pFrame = pViewFrame ? &pViewFrame->GetTopFrame() : 0;
139 0 : if ( pFrame )
140 : {
141 0 : boost::scoped_ptr<TargetList> pList(new TargetList);
142 0 : pFrame->GetTargetList(*pList);
143 0 : if( !pList->empty() )
144 : {
145 0 : size_t nCount = pList->size();
146 : size_t i;
147 0 : for ( i = 0; i < nCount; i++ )
148 : {
149 0 : mpCbbFrame->InsertEntry( pList->at( i ) );
150 : }
151 0 : }
152 : }
153 :
154 0 : get(mpLbForm, "form");
155 0 : get(mpEdIndication, "indication");
156 0 : get(mpEdText, "name");
157 0 : get(mpBtScript, "script");
158 0 : mpBtScript->SetModeImage(Image(CUI_RES (RID_SVXBMP_SCRIPT)));
159 :
160 0 : mpBtScript->SetClickHdl ( LINK ( this, SvxHyperlinkTabPageBase, ClickScriptHdl_Impl ) );
161 0 : mpBtScript->EnableTextDisplay (false);
162 : }
163 :
164 0 : mbStdControlsInit = true;
165 0 : }
166 :
167 : // Move Extra-Window
168 0 : bool SvxHyperlinkTabPageBase::MoveToExtraWnd( Point aNewPos, bool bDisConnectDlg )
169 : {
170 0 : bool bReturn = mpMarkWnd->MoveTo ( aNewPos );
171 :
172 0 : if( bDisConnectDlg )
173 0 : mpMarkWnd->ConnectToDialog( false );
174 :
175 0 : return ( !bReturn && IsMarkWndVisible() );
176 : }
177 :
178 : // Show Extra-Window
179 0 : void SvxHyperlinkTabPageBase::ShowMarkWnd ()
180 : {
181 0 : ( ( vcl::Window* ) mpMarkWnd )->Show();
182 :
183 : // Size of dialog-window in screen pixels
184 0 : Rectangle aDlgRect( mpDialog->GetWindowExtentsRelative( NULL ) );
185 0 : Point aDlgPos ( aDlgRect.TopLeft() );
186 0 : Size aDlgSize ( mpDialog->GetSizePixel () );
187 :
188 : // Absolute size of the screen
189 0 : Rectangle aScreen( mpDialog->GetDesktopRectPixel() );
190 :
191 : // Size of Extrawindow
192 0 : Size aExtraWndSize( mpMarkWnd->GetSizePixel () );
193 :
194 : // mpMarkWnd is a child of mpDialog, so coordinates for positioning must be relative to mpDialog
195 0 : if( aDlgPos.X()+(1.05*aDlgSize.Width())+aExtraWndSize.Width() > aScreen.Right() )
196 : {
197 0 : if( aDlgPos.X() - ( 0.05*aDlgSize.Width() ) - aExtraWndSize.Width() < 0 )
198 : {
199 : // Pos Extrawindow anywhere
200 0 : MoveToExtraWnd( Point(10,10) ); // very unlikely
201 0 : mpMarkWnd->ConnectToDialog( false );
202 : }
203 : else
204 : {
205 : // Pos Extrawindow on the left side of Dialog
206 0 : MoveToExtraWnd( Point(0,0) - Point( long(0.05*aDlgSize.Width()), 0 ) - Point( aExtraWndSize.Width(), 0 ) );
207 : }
208 : }
209 : else
210 : {
211 : // Pos Extrawindow on the right side of Dialog
212 0 : MoveToExtraWnd ( Point( long(1.05*aDlgSize.getWidth()), 0 ) );
213 : }
214 :
215 : // Set size of Extra-Window
216 0 : mpMarkWnd->SetSizePixel( Size( aExtraWndSize.Width(), aDlgSize.Height() ) );
217 0 : }
218 :
219 : // Fill Dialogfields
220 0 : void SvxHyperlinkTabPageBase::FillStandardDlgFields ( const SvxHyperlinkItem* pHyperlinkItem )
221 : {
222 : // Frame
223 0 : sal_Int32 nPos = mpCbbFrame->GetEntryPos ( pHyperlinkItem->GetTargetFrame() );
224 0 : if ( nPos != COMBOBOX_ENTRY_NOTFOUND)
225 0 : mpCbbFrame->SetText ( pHyperlinkItem->GetTargetFrame() );
226 :
227 : // Form
228 0 : OUString aStrFormText = CUI_RESSTR( RID_SVXSTR_HYPERDLG_FROM_TEXT );
229 0 : OUString aStrFormButton = CUI_RESSTR( RID_SVXSTR_HYPERDLG_FORM_BUTTON );
230 :
231 0 : if( pHyperlinkItem->GetInsertMode() & HLINK_HTMLMODE )
232 : {
233 0 : mpLbForm->Clear();
234 0 : mpLbForm->InsertEntry( aStrFormText );
235 0 : mpLbForm->SelectEntryPos ( 0 );
236 : }
237 : else
238 : {
239 0 : mpLbForm->Clear();
240 0 : mpLbForm->InsertEntry( aStrFormText );
241 0 : mpLbForm->InsertEntry( aStrFormButton );
242 0 : mpLbForm->SelectEntryPos ( pHyperlinkItem->GetInsertMode() == HLINK_BUTTON ? 1 : 0 );
243 : }
244 :
245 : // URL
246 0 : mpEdIndication->SetText ( pHyperlinkItem->GetName() );
247 :
248 : // Name
249 0 : mpEdText->SetText ( pHyperlinkItem->GetIntName() );
250 :
251 : // Script-button
252 0 : if ( !pHyperlinkItem->GetMacroEvents() )
253 0 : mpBtScript->Disable();
254 : else
255 0 : mpBtScript->Enable();
256 0 : }
257 :
258 : // Any action to do after apply-button is pressed
259 0 : void SvxHyperlinkTabPageBase::DoApply ()
260 : {
261 : // default-implemtation : do nothing
262 0 : }
263 :
264 : // Ask page whether an insert is possible
265 0 : bool SvxHyperlinkTabPageBase::AskApply ()
266 : {
267 : // default-implementation
268 0 : return true;
269 : }
270 :
271 : // This method would be called from bookmark-window to set new mark-string
272 0 : void SvxHyperlinkTabPageBase::SetMarkStr ( const OUString& /*aStrMark*/ )
273 : {
274 : // default-implemtation : do nothing
275 0 : }
276 :
277 : // Set initial focus
278 0 : void SvxHyperlinkTabPageBase::SetInitFocus()
279 : {
280 0 : GrabFocus();
281 0 : }
282 :
283 : // Ask dialog whether the curretn doc is a HTML-doc
284 0 : bool SvxHyperlinkTabPageBase::IsHTMLDoc() const
285 : {
286 0 : return static_cast<SvxHpLinkDlg*>(mpDialog)->IsHTMLDoc();
287 : }
288 :
289 : // retrieve dispatcher
290 0 : SfxDispatcher* SvxHyperlinkTabPageBase::GetDispatcher() const
291 : {
292 0 : return static_cast<SvxHpLinkDlg*>(mpDialog)->GetDispatcher();
293 : }
294 :
295 : // Click on imagebutton : Script
296 0 : IMPL_LINK_NOARG(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl)
297 : {
298 : SvxHyperlinkItem *pHyperlinkItem = const_cast<SvxHyperlinkItem*>(static_cast<const SvxHyperlinkItem *>(
299 0 : GetItemSet().GetItem (SID_HYPERLINK_GETLINK)));
300 :
301 0 : if ( pHyperlinkItem->GetMacroEvents() )
302 : {
303 : // get macros from itemset
304 0 : const SvxMacroTableDtor* pMacroTbl = pHyperlinkItem->GetMacroTbl();
305 0 : SvxMacroItem aItem ( GetWhich(SID_ATTR_MACROITEM) );
306 0 : if( pMacroTbl )
307 0 : aItem.SetMacroTable( *pMacroTbl );
308 :
309 : // create empty itemset for macro-dlg
310 0 : SfxItemSet* pItemSet = new SfxItemSet(SfxGetpApp()->GetPool(),
311 : SID_ATTR_MACROITEM,
312 0 : SID_ATTR_MACROITEM );
313 0 : pItemSet->Put ( aItem, SID_ATTR_MACROITEM );
314 :
315 : /* disable HyperLinkDlg for input while the MacroAssignDlg is working
316 : because if no JAVA is installed an error box occurs and then it is possible
317 : to close the HyperLinkDlg before its child (MacroAssignDlg) -> GPF
318 : */
319 0 : bool bIsInputEnabled = GetParent()->IsInputEnabled();
320 0 : if ( bIsInputEnabled )
321 0 : GetParent()->EnableInput( false );
322 0 : SfxMacroAssignDlg aDlg( this, mxDocumentFrame, *pItemSet );
323 :
324 : // add events
325 0 : SfxMacroTabPage *pMacroPage = static_cast<SfxMacroTabPage*>( aDlg.GetTabPage() );
326 :
327 0 : if ( pHyperlinkItem->GetMacroEvents() & HYPERDLG_EVENT_MOUSEOVER_OBJECT )
328 0 : pMacroPage->AddEvent( OUString( CUI_RESSTR(RID_SVXSTR_HYPDLG_MACROACT1) ),
329 0 : SFX_EVENT_MOUSEOVER_OBJECT );
330 0 : if ( pHyperlinkItem->GetMacroEvents() & HYPERDLG_EVENT_MOUSECLICK_OBJECT )
331 0 : pMacroPage->AddEvent( OUString( CUI_RESSTR(RID_SVXSTR_HYPDLG_MACROACT2) ),
332 0 : SFX_EVENT_MOUSECLICK_OBJECT);
333 0 : if ( pHyperlinkItem->GetMacroEvents() & HYPERDLG_EVENT_MOUSEOUT_OBJECT )
334 0 : pMacroPage->AddEvent( OUString( CUI_RESSTR(RID_SVXSTR_HYPDLG_MACROACT3) ),
335 0 : SFX_EVENT_MOUSEOUT_OBJECT);
336 :
337 0 : if ( bIsInputEnabled )
338 0 : GetParent()->EnableInput( true );
339 : // execute dlg
340 0 : DisableClose( true );
341 0 : short nRet = aDlg.Execute();
342 0 : DisableClose( false );
343 0 : if ( RET_OK == nRet )
344 : {
345 0 : const SfxItemSet* pOutSet = aDlg.GetOutputItemSet();
346 : const SfxPoolItem* pItem;
347 0 : if( SfxItemState::SET == pOutSet->GetItemState( SID_ATTR_MACROITEM, false, &pItem ))
348 : {
349 0 : pHyperlinkItem->SetMacroTable( static_cast<const SvxMacroItem*>(pItem)->GetMacroTable() );
350 : }
351 : }
352 0 : delete pItemSet;
353 : }
354 :
355 0 : return( 0L );
356 : }
357 :
358 : // Get Macro-Infos
359 0 : sal_uInt16 SvxHyperlinkTabPageBase::GetMacroEvents()
360 : {
361 : const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
362 0 : GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
363 :
364 0 : return pHyperlinkItem->GetMacroEvents();
365 : }
366 :
367 0 : SvxMacroTableDtor* SvxHyperlinkTabPageBase::GetMacroTable()
368 : {
369 : const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
370 0 : GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
371 :
372 0 : return ( (SvxMacroTableDtor*)pHyperlinkItem->GetMacroTbl() );
373 : }
374 :
375 : // try to detect the current protocol that is used in rStrURL
376 0 : OUString SvxHyperlinkTabPageBase::GetSchemeFromURL( const OUString& rStrURL )
377 : {
378 0 : OUString aStrScheme;
379 :
380 0 : INetURLObject aURL( rStrURL );
381 0 : INetProtocol aProtocol = aURL.GetProtocol();
382 :
383 : // #77696#
384 : // our new INetUrlObject now has the ability
385 : // to detect if an Url is valid or not :-(
386 0 : if ( aProtocol == INET_PROT_NOT_VALID )
387 : {
388 0 : if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTP_SCHEME ) )
389 : {
390 0 : aStrScheme = OUString( INET_HTTP_SCHEME );
391 : }
392 0 : else if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTPS_SCHEME ) )
393 : {
394 0 : aStrScheme = OUString( INET_HTTPS_SCHEME );
395 : }
396 0 : else if ( rStrURL.startsWithIgnoreAsciiCase( INET_FTP_SCHEME ) )
397 : {
398 0 : aStrScheme = OUString( INET_FTP_SCHEME );
399 : }
400 0 : else if ( rStrURL.startsWithIgnoreAsciiCase( INET_MAILTO_SCHEME ) )
401 : {
402 0 : aStrScheme = OUString( INET_MAILTO_SCHEME );
403 : }
404 0 : else if ( rStrURL.startsWithIgnoreAsciiCase( INET_NEWS_SCHEME ) )
405 : {
406 0 : aStrScheme = OUString( INET_NEWS_SCHEME );
407 : }
408 : }
409 : else
410 0 : aStrScheme = INetURLObject::GetScheme( aProtocol );
411 0 : return aStrScheme;
412 : }
413 :
414 :
415 0 : void SvxHyperlinkTabPageBase::GetDataFromCommonFields( OUString& aStrName,
416 : OUString& aStrIntName, OUString& aStrFrame,
417 : SvxLinkInsertMode& eMode )
418 : {
419 0 : aStrIntName = mpEdText->GetText();
420 0 : aStrName = mpEdIndication->GetText();
421 0 : aStrFrame = mpCbbFrame->GetText();
422 0 : eMode = (SvxLinkInsertMode) (mpLbForm->GetSelectEntryPos()+1);
423 0 : if( IsHTMLDoc() )
424 0 : eMode = (SvxLinkInsertMode) ( sal_uInt16(eMode) | HLINK_HTMLMODE );
425 0 : }
426 :
427 : // reset dialog-fields
428 0 : void SvxHyperlinkTabPageBase::Reset( const SfxItemSet& rItemSet)
429 : {
430 :
431 : // Set dialog-fields from create-itemset
432 0 : maStrInitURL = aEmptyStr;
433 :
434 : const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
435 0 : rItemSet.GetItem (SID_HYPERLINK_GETLINK));
436 :
437 0 : if ( pHyperlinkItem )
438 : {
439 : // set dialog-fields
440 0 : FillStandardDlgFields (pHyperlinkItem);
441 :
442 : // set all other fields
443 0 : FillDlgFields ( (OUString&)pHyperlinkItem->GetURL() );
444 :
445 : // Store initial URL
446 0 : maStrInitURL = pHyperlinkItem->GetURL();
447 : }
448 0 : }
449 :
450 : // Fill output-ItemSet
451 0 : bool SvxHyperlinkTabPageBase::FillItemSet( SfxItemSet* rOut)
452 : {
453 0 : OUString aStrURL, aStrName, aStrIntName, aStrFrame;
454 : SvxLinkInsertMode eMode;
455 :
456 0 : GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
457 0 : if ( aStrName.isEmpty() ) //automatically create a visible name if the link is created without name
458 0 : aStrName = CreateUiNameFromURL(aStrURL);
459 :
460 0 : sal_uInt16 nEvents = GetMacroEvents();
461 0 : SvxMacroTableDtor* pTable = GetMacroTable();
462 :
463 : SvxHyperlinkItem aItem( SID_HYPERLINK_SETLINK, aStrName, aStrURL, aStrFrame,
464 0 : aStrIntName, eMode, nEvents, pTable );
465 0 : rOut->Put (aItem);
466 :
467 0 : return true;
468 : }
469 :
470 0 : OUString SvxHyperlinkTabPageBase::CreateUiNameFromURL( const OUString& aStrURL )
471 : {
472 0 : OUString aStrUiURL;
473 0 : INetURLObject aURLObj( aStrURL );
474 :
475 0 : switch(aURLObj.GetProtocol())
476 : {
477 : case INET_PROT_FILE:
478 0 : utl::LocalFileHelper::ConvertURLToSystemPath( aURLObj.GetMainURL(INetURLObject::NO_DECODE), aStrUiURL );
479 0 : break;
480 : case INET_PROT_FTP :
481 : {
482 : //remove password from name
483 0 : INetURLObject aTmpURL(aURLObj);
484 0 : aTmpURL.SetPass(aEmptyStr);
485 0 : aStrUiURL = aTmpURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS );
486 : }
487 0 : break;
488 : default :
489 : {
490 0 : aStrUiURL = aURLObj.GetMainURL(INetURLObject::DECODE_UNAMBIGUOUS);
491 : }
492 : }
493 0 : if(aStrUiURL.isEmpty())
494 0 : return aStrURL;
495 0 : return aStrUiURL;
496 : }
497 :
498 : // Activate / Deactivate Tabpage
499 0 : void SvxHyperlinkTabPageBase::ActivatePage( const SfxItemSet& rItemSet )
500 : {
501 :
502 : // Set dialog-fields from input-itemset
503 : const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
504 0 : rItemSet.GetItem (SID_HYPERLINK_GETLINK));
505 :
506 0 : if ( pHyperlinkItem )
507 : {
508 : // standard-fields
509 0 : FillStandardDlgFields (pHyperlinkItem);
510 : }
511 :
512 : // show mark-window if it was open before
513 0 : if ( ShouldOpenMarkWnd () )
514 0 : ShowMarkWnd ();
515 0 : }
516 :
517 0 : int SvxHyperlinkTabPageBase::DeactivatePage( SfxItemSet* _pSet)
518 : {
519 : // hide mark-wnd
520 0 : SetMarkWndShouldOpen( IsMarkWndVisible () );
521 0 : HideMarkWnd ();
522 :
523 : // retrieve data of dialog
524 0 : OUString aStrURL, aStrName, aStrIntName, aStrFrame;
525 : SvxLinkInsertMode eMode;
526 :
527 0 : GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
528 :
529 0 : sal_uInt16 nEvents = GetMacroEvents();
530 0 : SvxMacroTableDtor* pTable = GetMacroTable();
531 :
532 0 : if( _pSet )
533 : {
534 : SvxHyperlinkItem aItem( SID_HYPERLINK_GETLINK, aStrName, aStrURL, aStrFrame,
535 0 : aStrIntName, eMode, nEvents, pTable );
536 0 : _pSet->Put( aItem );
537 : }
538 :
539 0 : return( LEAVE_PAGE );
540 : }
541 :
542 0 : bool SvxHyperlinkTabPageBase::ShouldOpenMarkWnd()
543 : {
544 0 : return false;
545 : }
546 :
547 0 : void SvxHyperlinkTabPageBase::SetMarkWndShouldOpen(bool)
548 : {
549 0 : }
550 :
551 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|