LibreOffice Module cui (master)  1
hltpbase.cxx
Go to the documentation of this file.
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 <memory>
21 #include <sal/config.h>
22 
23 #include <comphelper/lok.hxx>
24 #include <osl/file.hxx>
25 #include <sfx2/app.hxx>
26 #include <sfx2/event.hxx>
27 #include <sfx2/frame.hxx>
28 #include <sfx2/viewfrm.hxx>
29 #include <sot/formats.hxx>
30 #include <sfx2/sfxsids.hrc>
31 #include <svl/macitem.hxx>
32 #include <ucbhelper/content.hxx>
33 #include <cuihyperdlg.hxx>
34 #include <hltpbase.hxx>
35 #include <macroass.hxx>
36 #include <svx/svxdlg.hxx>
37 #include <strings.hrc>
38 #include <dialmgr.hxx>
39 #include <bitmaps.hlst>
40 
41 using namespace ::ucbhelper;
42 
43 namespace {
44 
45 OUString CreateUiNameFromURL( const OUString& aStrURL )
46 {
47  OUString aStrUiURL;
48  INetURLObject aURLObj( aStrURL );
49 
50  switch(aURLObj.GetProtocol())
51  {
52  case INetProtocol::File:
53  osl::FileBase::getSystemPathFromFileURL(aURLObj.GetMainURL(INetURLObject::DecodeMechanism::NONE), aStrUiURL);
54  break;
55  case INetProtocol::Ftp :
56  {
57  //remove password from name
58  INetURLObject aTmpURL(aURLObj);
59  aTmpURL.SetPass(u"");
60  aStrUiURL = aTmpURL.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous );
61  }
62  break;
63  default :
64  {
65  aStrUiURL = aURLObj.GetMainURL(INetURLObject::DecodeMechanism::Unambiguous);
66  }
67  }
68  if(aStrUiURL.isEmpty())
69  return aStrURL;
70  return aStrUiURL;
71 }
72 
73 }
74 
75 // ComboBox-Control for URL's with History and Autocompletion
76 SvxHyperURLBox::SvxHyperURLBox(std::unique_ptr<weld::ComboBox> xControl)
77  : SvtURLBox(std::move(xControl))
78  , DropTargetHelper(getWidget()->get_drop_target())
79 {
80  SetSmartProtocol(INetProtocol::Http);
81 }
82 
84 {
85  return IsDropFormatSupported( SotClipboardFormatId::STRING ) ? DND_ACTION_COPY : DND_ACTION_NONE;
86 }
87 
89 {
90  TransferableDataHelper aDataHelper( rEvt.maDropEvent.Transferable );
91  OUString aString;
93 
94  if( aDataHelper.GetString( SotClipboardFormatId::STRING, aString ) )
95  {
96  set_entry_text(aString);
97  nRet = DND_ACTION_COPY;
98  }
99 
100  return nRet;
101 }
102 
103 //# Hyperlink-Dialog: Tabpages-Baseclass #
104 
106  SvxHpLinkDlg* pDlg,
107  const OUString& rUIXMLDescription,
108  const OString& rID,
109  const SfxItemSet* pItemSet)
110  : IconChoicePage(pParent, rUIXMLDescription, rID, pItemSet)
111  , mxCbbFrame(xBuilder->weld_combo_box("frame"))
112  , mxLbForm(xBuilder->weld_combo_box("form"))
113  , mxEdIndication(xBuilder->weld_entry("indication"))
114  , mxEdText(xBuilder->weld_entry("name"))
115  , mxBtScript(xBuilder->weld_button("script"))
116  , mxFormLabel(xBuilder->weld_label("form_label"))
117  , mxFrameLabel(xBuilder->weld_label("frame_label"))
118  , mbIsCloseDisabled( false )
119  , mpDialog( pDlg )
120  , mbStdControlsInit( false )
121  , maTimer("cui SvxHyperlinkTabPageBase maTimer")
122 {
123  // create bookmark-window
124 }
125 
127 {
128  maTimer.Stop();
129 
130  HideMarkWnd();
131 }
132 
134 {
135  return !mbIsCloseDisabled;
136 }
137 
139 {
140  if ( !mbStdControlsInit )
141  {
142  SfxDispatcher* pDispatch = GetDispatcher();
143  SfxViewFrame* pViewFrame = pDispatch ? pDispatch->GetFrame() : nullptr;
144  SfxFrame* pFrame = pViewFrame ? &pViewFrame->GetFrame() : nullptr;
145  if ( pFrame )
146  {
147  TargetList aList;
149  if( !aList.empty() )
150  {
151  size_t nCount = aList.size();
152  size_t i;
153  for ( i = 0; i < nCount; i++ )
154  {
155  mxCbbFrame->append_text( aList.at( i ) );
156  }
157  }
158  }
159 
160  mxBtScript->set_from_icon_name(RID_SVXBMP_SCRIPT);
161 
162  mxBtScript->connect_clicked ( LINK ( this, SvxHyperlinkTabPageBase, ClickScriptHdl_Impl ) );
163  }
164 
165  mbStdControlsInit = true;
166 }
167 
168 // Move Extra-Window
170 {
171  mxMarkWnd->MoveTo(aNewPos);
172 }
173 
174 // Show Extra-Window
176 {
177  if (mxMarkWnd)
178  {
179  mxMarkWnd->getDialog()->present();
180  return;
181  }
182 
183  weld::Dialog* pDialog = mpDialog->getDialog();
184 
185  mxMarkWnd = std::make_shared<SvxHlinkDlgMarkWnd>(pDialog, this);
186 
187  // Size of dialog-window in screen pixels
188  Point aDlgPos(pDialog->get_position());
189  Size aDlgSize(pDialog->get_size());
190 
191  // Absolute size of the screen
192  ::tools::Rectangle aScreen(pDialog->get_monitor_workarea());
193 
194  // Size of Extrawindow
195  Size aExtraWndSize(mxMarkWnd->getDialog()->get_preferred_size());
196 
197  // mxMarkWnd is a child of mpDialog, so coordinates for positioning must be relative to mpDialog
198  if( aDlgPos.X()+(1.05*aDlgSize.Width())+aExtraWndSize.Width() > aScreen.Right() )
199  {
200  if( aDlgPos.X() - ( 0.05*aDlgSize.Width() ) - aExtraWndSize.Width() < 0 )
201  {
202  // Pos Extrawindow anywhere
203  MoveToExtraWnd( Point(10,10) ); // very unlikely
204  }
205  else
206  {
207  // Pos Extrawindow on the left side of Dialog
208  MoveToExtraWnd( Point(0,0) - Point( tools::Long(0.05*aDlgSize.Width()), 0 ) - Point( aExtraWndSize.Width(), 0 ) );
209  }
210  }
211  else
212  {
213  // Pos Extrawindow on the right side of Dialog
214  MoveToExtraWnd ( Point( tools::Long(1.05*aDlgSize.getWidth()), 0 ) );
215  }
216 
217  // Set size of Extra-Window
218  mxMarkWnd->getDialog()->set_size_request(aExtraWndSize.Width(), aDlgSize.Height());
219 
220  weld::DialogController::runAsync(mxMarkWnd, [this](sal_Int32 /*nResult*/) { mxMarkWnd.reset(); } );
221 }
222 
224 {
225  if (mxMarkWnd)
226  {
227  mxMarkWnd->response(RET_CANCEL);
228  mxMarkWnd.reset();
229  }
230 }
231 
232 // Fill Dialogfields
234 {
236  {
237  // Frame
238  sal_Int32 nPos = mxCbbFrame->find_text(pHyperlinkItem->GetTargetFrame());
239  if (nPos != -1)
240  mxCbbFrame->set_active(nPos);
241 
242  // Form
243  OUString aStrFormText = CuiResId( RID_SVXSTR_HYPERDLG_FROM_TEXT );
244 
245  OUString aStrFormButton = CuiResId( RID_SVXSTR_HYPERDLG_FORM_BUTTON );
246 
247  if( pHyperlinkItem->GetInsertMode() & HLINK_HTMLMODE )
248  {
249  mxLbForm->clear();
250  mxLbForm->append_text( aStrFormText );
251  mxLbForm->set_active( 0 );
252  }
253  else
254  {
255  mxLbForm->clear();
256  mxLbForm->append_text( aStrFormText );
257  mxLbForm->append_text( aStrFormButton );
258  mxLbForm->set_active( pHyperlinkItem->GetInsertMode() == HLINK_BUTTON ? 1 : 0 );
259  }
260  }
261  else
262  {
263  mxCbbFrame->hide();
264  mxLbForm->hide();
265  mxFormLabel->hide();
266  mxFrameLabel->hide();
267  }
268 
269  // URL
270  mxEdIndication->set_text( pHyperlinkItem->GetName() );
271 
272  // Name
273  mxEdText->set_text( pHyperlinkItem->GetIntName() );
274 
275  // Script-button
277  {
278  if ( pHyperlinkItem->GetMacroEvents() == HyperDialogEvent::NONE )
279  mxBtScript->set_sensitive(false);
280  else
281  mxBtScript->set_sensitive(true);
282  }
283  else
284  {
285  mxBtScript->hide();
286  }
287 }
288 
289 // Any action to do after apply-button is pressed
291 {
292  // default-implementation : do nothing
293 }
294 
295 // Ask page whether an insert is possible
297 {
298  // default-implementation
299  return true;
300 }
301 
302 // This method would be called from bookmark-window to set new mark-string
303 void SvxHyperlinkTabPageBase::SetMarkStr ( const OUString& /*aStrMark*/ )
304 {
305  // default-implementation : do nothing
306 }
307 
308 // Set initial focus
310 {
311  xContainer->grab_focus();
312 }
313 
314 // retrieve dispatcher
316 {
317  return mpDialog->GetDispatcher();
318 }
319 
321 {
322  mbIsCloseDisabled = _bDisable;
323  if (mbIsCloseDisabled)
324  maBusy.incBusy(mpDialog->getDialog());
325  else
326  maBusy.decBusy();
327 }
328 
329 // Click on imagebutton : Script
331 {
332  SvxHyperlinkItem *pHyperlinkItem = const_cast<SvxHyperlinkItem*>(static_cast<const SvxHyperlinkItem *>(
333  GetItemSet().GetItem (SID_HYPERLINK_GETLINK)));
334 
335  if (!pHyperlinkItem || pHyperlinkItem->GetMacroEvents() == HyperDialogEvent::NONE)
336  return;
337 
338  // get macros from itemset
339  const SvxMacroTableDtor* pMacroTbl = pHyperlinkItem->GetMacroTable();
340  SvxMacroItem aItem ( SID_ATTR_MACROITEM );
341  if( pMacroTbl )
342  aItem.SetMacroTable( *pMacroTbl );
343 
344  // create empty itemset for macro-dlg
346  aItemSet.Put ( aItem );
347 
348  DisableClose( true );
349 
350  SfxMacroAssignDlg aDlg(mpDialog->getDialog(), mxDocumentFrame, aItemSet);
351 
352  // add events
353  SfxMacroTabPage *pMacroPage = aDlg.GetTabPage();
354 
355  if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseOverObject )
356  pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT1),
357  SvMacroItemId::OnMouseOver );
358  if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseClickObject )
359  pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT2),
360  SvMacroItemId::OnClick);
361  if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseOutObject )
362  pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT3),
363  SvMacroItemId::OnMouseOut);
364  // execute dlg
365  short nRet = aDlg.run();
366  DisableClose( false );
367  if ( RET_OK == nRet )
368  {
369  const SfxItemSet* pOutSet = aDlg.GetOutputItemSet();
370  const SfxPoolItem* pItem;
371  if( SfxItemState::SET == pOutSet->GetItemState( SID_ATTR_MACROITEM, false, &pItem ))
372  {
373  pHyperlinkItem->SetMacroTable( static_cast<const SvxMacroItem*>(pItem)->GetMacroTable() );
374  }
375  }
376 }
377 
378 // Get Macro-Infos
380 {
381  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
382  GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
383 
384  return pHyperlinkItem ? pHyperlinkItem->GetMacroEvents() : HyperDialogEvent();
385 }
386 
388 {
389  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
390  GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
391 
392  return const_cast<SvxMacroTableDtor*>(pHyperlinkItem->GetMacroTable());
393 }
394 
395 // try to detect the current protocol that is used in rStrURL
396 OUString SvxHyperlinkTabPageBase::GetSchemeFromURL( const OUString& rStrURL )
397 {
398  OUString aStrScheme;
399 
400  INetURLObject aURL( rStrURL );
401  INetProtocol aProtocol = aURL.GetProtocol();
402 
403  // our new INetUrlObject now has the ability
404  // to detect if a Url is valid or not :-(
405  if ( aProtocol == INetProtocol::NotValid )
406  {
407  if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTP_SCHEME ) )
408  {
409  aStrScheme = INET_HTTP_SCHEME;
410  }
411  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTPS_SCHEME ) )
412  {
413  aStrScheme = INET_HTTPS_SCHEME;
414  }
415  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_FTP_SCHEME ) )
416  {
417  aStrScheme = INET_FTP_SCHEME;
418  }
419  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_MAILTO_SCHEME ) )
420  {
421  aStrScheme = INET_MAILTO_SCHEME;
422  }
423  }
424  else
425  aStrScheme = INetURLObject::GetScheme( aProtocol );
426  return aStrScheme;
427 }
428 
430  OUString& aStrIntName, OUString& aStrFrame,
431  SvxLinkInsertMode& eMode )
432 {
433  aStrIntName = mxEdText->get_text();
434  aStrName = mxEdIndication->get_text();
435  aStrFrame = mxCbbFrame->get_active_text();
436 
437  sal_Int32 nPos = mxLbForm->get_active();
438  if (nPos == -1)
439  // This happens when FillStandardDlgFields() hides mpLbForm.
440  nPos = 0;
441  eMode = static_cast<SvxLinkInsertMode>(nPos + 1);
442 
443  // Ask dialog whether the current doc is a HTML-doc
444  if (mpDialog->IsHTMLDoc())
445  eMode = static_cast<SvxLinkInsertMode>( sal_uInt16(eMode) | HLINK_HTMLMODE );
446 }
447 
448 // reset dialog-fields
450 {
451 
452  // Set dialog-fields from create-itemset
453  maStrInitURL.clear();
454 
455  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
456  rItemSet.GetItem (SID_HYPERLINK_GETLINK));
457 
458  if ( pHyperlinkItem )
459  {
460  // set dialog-fields
461  FillStandardDlgFields (pHyperlinkItem);
462 
463  // set all other fields
464  FillDlgFields ( pHyperlinkItem->GetURL() );
465 
466  // Store initial URL
467  maStrInitURL = pHyperlinkItem->GetURL();
468  }
469 }
470 
471 // Fill output-ItemSet
473 {
474  OUString aStrURL, aStrName, aStrIntName, aStrFrame;
476 
477  GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
478  if ( aStrName.isEmpty() ) //automatically create a visible name if the link is created without name
479  aStrName = CreateUiNameFromURL(aStrURL);
480 
481  HyperDialogEvent nEvents = GetMacroEvents();
482  SvxMacroTableDtor* pTable = GetMacroTable();
483 
484  SvxHyperlinkItem aItem( SID_HYPERLINK_SETLINK, aStrName, aStrURL, aStrFrame,
485  aStrIntName, eMode, nEvents, pTable );
486  rOut->Put (aItem);
487 
488  return true;
489 }
490 
491 // Activate / Deactivate Tabpage
493 {
494 
495  // Set dialog-fields from input-itemset
496  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
497  rItemSet.GetItem (SID_HYPERLINK_GETLINK));
498 
499  if ( pHyperlinkItem )
500  {
501  // standard-fields
502  FillStandardDlgFields (pHyperlinkItem);
503  }
504 
505  // show mark-window if it was open before
506  if ( ShouldOpenMarkWnd () )
507  ShowMarkWnd ();
508 }
509 
511 {
512  // hide mark-wnd
514  HideMarkWnd ();
515 
516  // retrieve data of dialog
517  OUString aStrURL, aStrName, aStrIntName, aStrFrame;
519 
520  GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
521 
522  HyperDialogEvent nEvents = GetMacroEvents();
523  SvxMacroTableDtor* pTable = GetMacroTable();
524 
525  if( _pSet )
526  {
527  SvxHyperlinkItem aItem( SID_HYPERLINK_GETLINK, aStrName, aStrURL, aStrFrame,
528  aStrIntName, eMode, nEvents, pTable );
529  _pSet->Put( aItem );
530  }
531 
532  return DeactivateRC::LeavePage;
533 }
534 
536 {
537  return false;
538 }
539 
541 {
542 }
543 
544 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void GetCurentItemData(OUString &rStrURL, OUString &aStrName, OUString &aStrIntName, OUString &aStrFrame, SvxLinkInsertMode &eMode)=0
virtual bool ShouldOpenMarkWnd()
Definition: hltpbase.cxx:535
std::unique_ptr< weld::ComboBox > mxCbbFrame
Definition: hltpbase.hxx:49
URL aURL
const css::datatransfer::dnd::DropTargetDropEvent maDropEvent
HyperDialogEvent
virtual bool QueryClose() override
Definition: hltpbase.cxx:133
#define DND_ACTION_COPY
static void GetDefaultTargetList(TargetList &)
signed char sal_Int8
const OUString & GetTargetFrame() const
virtual bool FillItemSet(SfxItemSet *) override
Definition: hltpbase.cxx:472
long Long
virtual void SetInitFocus()
Definition: hltpbase.cxx:309
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
Definition: hltpbase.cxx:83
#define INET_HTTP_SCHEME
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
Definition: hltpbase.cxx:510
RET_CANCEL
void SetMacroTable(const SvxMacroTableDtor &rTbl)
SfxApplication * SfxGetpApp()
std::unique_ptr< weld::Label > mxFormLabel
Definition: hltpbase.hxx:54
static bool runAsync(const std::shared_ptr< DialogController > &rController, const std::function< void(sal_Int32)> &)
virtual void SetMarkWndShouldOpen(bool bOpen)
Definition: hltpbase.cxx:540
SfxFrame & GetFrame() const
int nCount
#define DND_ACTION_NONE
const SvxMacroTableDtor * GetMacroTable() const
HLINK_HTMLMODE
Mode eMode
void GetDataFromCommonFields(OUString &aStrName, OUString &aStrIntName, OUString &aStrFrame, SvxLinkInsertMode &eMode)
Definition: hltpbase.cxx:429
INetProtocol
std::shared_ptr< SvxHlinkDlgMarkWnd > mxMarkWnd
Definition: hltpbase.hxx:73
std::unique_ptr< weld::Entry > mxEdText
Definition: hltpbase.hxx:52
std::unique_ptr< weld::Entry > mxEdIndication
Definition: hltpbase.hxx:51
void set_entry_text(const OUString &rStr)
std::unique_ptr< weld::Container > xContainer
Definition: iconcdlg.hxx:53
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
Definition: hltpbase.cxx:88
OUString CuiResId(TranslateId aKey)
Definition: cuiresmgr.cxx:23
SvxHyperURLBox(std::unique_ptr< weld::ComboBox > xWidget)
Definition: hltpbase.cxx:76
HyperDialogEvent GetMacroEvents() const
const OUString & GetURL() const
TopLevelWindowLocker maBusy
Definition: hltpbase.hxx:71
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
int i
void DisableClose(bool _bDisable)
Definition: hltpbase.cxx:320
HLINK_BUTTON
SfxDispatcher * GetDispatcher() const
Definition: hltpbase.cxx:315
void MoveToExtraWnd(Point aNewPos)
Definition: hltpbase.cxx:169
SvxHyperlinkTabPageBase(weld::Container *pParent, SvxHpLinkDlg *pDlg, const OUString &rUIXMLDescription, const OString &rID, const SfxItemSet *pItemSet)
Definition: hltpbase.cxx:105
#define INET_FTP_SCHEME
void AddEvent(const OUString &rEventName, SvMacroItemId nEventId)
Definition: macroass.cxx:130
SvxLinkInsertMode
const SfxItemSet * GetItemSet(const SfxPoolItem &rAttr)
IMPL_LINK_NOARG(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, weld::Button &, void)
Definition: hltpbase.cxx:330
SvxHpLinkDlg * mpDialog
Definition: hltpbase.hxx:63
static OUString GetScheme(INetProtocol eTheScheme)
#define INET_MAILTO_SCHEME
void FillStandardDlgFields(const SvxHyperlinkItem *pHyperlinkItem)
Definition: hltpbase.cxx:233
bool GetString(SotClipboardFormatId nFormat, OUString &rStr) const
virtual void SetMarkStr(const OUString &aStrMark)
Definition: hltpbase.cxx:303
#define INET_HTTPS_SCHEME
const SfxItemSet & GetItemSet() const
Definition: iconcdlg.hxx:68
std::unique_ptr< weld::ComboBox > mxLbForm
Definition: hltpbase.hxx:50
SfxDispatcher * GetDispatcher() const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
void Stop()
HyperDialogEvent GetMacroEvents() const
Definition: hltpbase.cxx:379
virtual void ActivatePage(const SfxItemSet &rItemSet) override
Definition: hltpbase.cxx:492
void SetMacroTable(const SvxMacroTableDtor &rTbl)
INetProtocol GetProtocol() const
RET_OK
SfxViewFrame * GetFrame() const
virtual ~SvxHyperlinkTabPageBase() override
Definition: hltpbase.cxx:126
bool IsDropFormatSupported(SotClipboardFormatId nFormat) const
bool IsHTMLDoc() const
DeactivateRC
const OUString & GetName() const
SvxLinkInsertMode GetInsertMode() const
SvxMacroTableDtor * GetMacroTable()
Definition: hltpbase.cxx:387
virtual void Reset(const SfxItemSet &) override
Definition: hltpbase.cxx:449
virtual bool AskApply()
Definition: hltpbase.cxx:296
virtual void DoApply()
Definition: hltpbase.cxx:290
bool IsMarkWndVisible() const
Definition: hltpbase.hxx:117
std::unique_ptr< weld::Button > mxBtScript
Definition: hltpbase.hxx:53
std::unique_ptr< weld::Label > mxFrameLabel
Definition: hltpbase.hxx:55
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
::std::vector< OUString > TargetList
Tabpage : Basisclass.
Definition: hltpbase.hxx:46
static OUString GetSchemeFromURL(const OUString &rStrURL)
Definition: hltpbase.cxx:396
virtual void FillDlgFields(const OUString &rStrURL)=0
sal_uInt16 nPos
void incBusy(const weld::Widget *pIgnore)
void SetSmartProtocol(INetProtocol eProt)
const OUString & GetIntName() const