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("");
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  : URLBox(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 {
122  // create bookmark-window
123 }
124 
126 {
127  maTimer.Stop();
128 
129  HideMarkWnd();
130 }
131 
133 {
134  return !mbIsCloseDisabled;
135 }
136 
138 {
139  if ( !mbStdControlsInit )
140  {
141  SfxDispatcher* pDispatch = GetDispatcher();
142  SfxViewFrame* pViewFrame = pDispatch ? pDispatch->GetFrame() : nullptr;
143  SfxFrame* pFrame = pViewFrame ? &pViewFrame->GetFrame() : nullptr;
144  if ( pFrame )
145  {
146  std::unique_ptr<TargetList> pList(new TargetList);
148  if( !pList->empty() )
149  {
150  size_t nCount = pList->size();
151  size_t i;
152  for ( i = 0; i < nCount; i++ )
153  {
154  mxCbbFrame->append_text( pList->at( i ) );
155  }
156  }
157  }
158 
159  mxBtScript->set_from_icon_name(RID_SVXBMP_SCRIPT);
160 
161  mxBtScript->connect_clicked ( LINK ( this, SvxHyperlinkTabPageBase, ClickScriptHdl_Impl ) );
162  }
163 
164  mbStdControlsInit = true;
165 }
166 
167 // Move Extra-Window
169 {
170  mxMarkWnd->MoveTo(aNewPos);
171 }
172 
173 // Show Extra-Window
175 {
176  if (mxMarkWnd)
177  {
178  mxMarkWnd->getDialog()->present();
179  return;
180  }
181 
182  weld::Dialog* pDialog = mpDialog->getDialog();
183 
184  mxMarkWnd = std::make_unique<SvxHlinkDlgMarkWnd>(pDialog, this);
185 
186  // Size of dialog-window in screen pixels
187  Point aDlgPos(pDialog->get_position());
188  Size aDlgSize(pDialog->get_size());
189 
190  // Absolute size of the screen
191  ::tools::Rectangle aScreen(pDialog->get_monitor_workarea());
192 
193  // Size of Extrawindow
194  Size aExtraWndSize(mxMarkWnd->getDialog()->get_preferred_size());
195 
196  // mxMarkWnd is a child of mpDialog, so coordinates for positioning must be relative to mpDialog
197  if( aDlgPos.X()+(1.05*aDlgSize.Width())+aExtraWndSize.Width() > aScreen.Right() )
198  {
199  if( aDlgPos.X() - ( 0.05*aDlgSize.Width() ) - aExtraWndSize.Width() < 0 )
200  {
201  // Pos Extrawindow anywhere
202  MoveToExtraWnd( Point(10,10) ); // very unlikely
203  }
204  else
205  {
206  // Pos Extrawindow on the left side of Dialog
207  MoveToExtraWnd( Point(0,0) - Point( long(0.05*aDlgSize.Width()), 0 ) - Point( aExtraWndSize.Width(), 0 ) );
208  }
209  }
210  else
211  {
212  // Pos Extrawindow on the right side of Dialog
213  MoveToExtraWnd ( Point( long(1.05*aDlgSize.getWidth()), 0 ) );
214  }
215 
216  // Set size of Extra-Window
217  mxMarkWnd->getDialog()->set_size_request(aExtraWndSize.Width(), aDlgSize.Height());
218 
219  weld::DialogController::runAsync(mxMarkWnd, [this](sal_Int32 /*nResult*/) { mxMarkWnd.reset(); } );
220 }
221 
223 {
224  if (mxMarkWnd)
225  {
226  mxMarkWnd->response(RET_CANCEL);
227  mxMarkWnd.reset();
228  }
229 }
230 
231 // Fill Dialogfields
233 {
235  {
236  // Frame
237  sal_Int32 nPos = mxCbbFrame->find_text(pHyperlinkItem->GetTargetFrame());
238  if (nPos != -1)
239  mxCbbFrame->set_active(nPos);
240 
241  // Form
242  OUString aStrFormText = CuiResId( RID_SVXSTR_HYPERDLG_FROM_TEXT );
243 
244  OUString aStrFormButton = CuiResId( RID_SVXSTR_HYPERDLG_FORM_BUTTON );
245 
246  if( pHyperlinkItem->GetInsertMode() & HLINK_HTMLMODE )
247  {
248  mxLbForm->clear();
249  mxLbForm->append_text( aStrFormText );
250  mxLbForm->set_active( 0 );
251  }
252  else
253  {
254  mxLbForm->clear();
255  mxLbForm->append_text( aStrFormText );
256  mxLbForm->append_text( aStrFormButton );
257  mxLbForm->set_active( pHyperlinkItem->GetInsertMode() == HLINK_BUTTON ? 1 : 0 );
258  }
259  }
260  else
261  {
262  mxCbbFrame->hide();
263  mxLbForm->hide();
264  mxFormLabel->hide();
265  mxFrameLabel->hide();
266  }
267 
268  // URL
269  mxEdIndication->set_text( pHyperlinkItem->GetName() );
270 
271  // Name
272  mxEdText->set_text( pHyperlinkItem->GetIntName() );
273 
274  // Script-button
276  {
277  if ( pHyperlinkItem->GetMacroEvents() == HyperDialogEvent::NONE )
278  mxBtScript->set_sensitive(false);
279  else
280  mxBtScript->set_sensitive(true);
281  }
282  else
283  {
284  mxBtScript->hide();
285  }
286 }
287 
288 // Any action to do after apply-button is pressed
290 {
291  // default-implementation : do nothing
292 }
293 
294 // Ask page whether an insert is possible
296 {
297  // default-implementation
298  return true;
299 }
300 
301 // This method would be called from bookmark-window to set new mark-string
302 void SvxHyperlinkTabPageBase::SetMarkStr ( const OUString& /*aStrMark*/ )
303 {
304  // default-implementation : do nothing
305 }
306 
307 // Set initial focus
309 {
310  xContainer->grab_focus();
311 }
312 
313 // retrieve dispatcher
315 {
316  return mpDialog->GetDispatcher();
317 }
318 
320 {
321  mbIsCloseDisabled = _bDisable;
322  if (mbIsCloseDisabled)
323  maBusy.incBusy(mpDialog->getDialog());
324  else
325  maBusy.decBusy();
326 }
327 
328 // Click on imagebutton : Script
330 {
331  SvxHyperlinkItem *pHyperlinkItem = const_cast<SvxHyperlinkItem*>(static_cast<const SvxHyperlinkItem *>(
332  GetItemSet().GetItem (SID_HYPERLINK_GETLINK)));
333 
334  if ( pHyperlinkItem->GetMacroEvents() != HyperDialogEvent::NONE )
335  {
336  // get macros from itemset
337  const SvxMacroTableDtor* pMacroTbl = pHyperlinkItem->GetMacroTable();
338  SvxMacroItem aItem ( SID_ATTR_MACROITEM );
339  if( pMacroTbl )
340  aItem.SetMacroTable( *pMacroTbl );
341 
342  // create empty itemset for macro-dlg
343  std::unique_ptr<SfxItemSet> pItemSet( new SfxItemSet(SfxGetpApp()->GetPool(),
344  svl::Items<SID_ATTR_MACROITEM,
345  SID_ATTR_MACROITEM>{} ) );
346  pItemSet->Put ( aItem );
347 
348  DisableClose( true );
349 
350  SfxMacroAssignDlg aDlg(mpDialog->getDialog(), mxDocumentFrame, *pItemSet);
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 
379 // Get Macro-Infos
381 {
382  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
383  GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
384 
385  return pHyperlinkItem->GetMacroEvents();
386 }
387 
389 {
390  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
391  GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
392 
393  return const_cast<SvxMacroTableDtor*>(pHyperlinkItem->GetMacroTable());
394 }
395 
396 // try to detect the current protocol that is used in rStrURL
397 OUString SvxHyperlinkTabPageBase::GetSchemeFromURL( const OUString& rStrURL )
398 {
399  OUString aStrScheme;
400 
401  INetURLObject aURL( rStrURL );
402  INetProtocol aProtocol = aURL.GetProtocol();
403 
404  // our new INetUrlObject now has the ability
405  // to detect if a Url is valid or not :-(
406  if ( aProtocol == INetProtocol::NotValid )
407  {
408  if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTP_SCHEME ) )
409  {
410  aStrScheme = INET_HTTP_SCHEME;
411  }
412  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTPS_SCHEME ) )
413  {
414  aStrScheme = INET_HTTPS_SCHEME;
415  }
416  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_FTP_SCHEME ) )
417  {
418  aStrScheme = INET_FTP_SCHEME;
419  }
420  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_MAILTO_SCHEME ) )
421  {
422  aStrScheme = INET_MAILTO_SCHEME;
423  }
424  }
425  else
426  aStrScheme = INetURLObject::GetScheme( aProtocol );
427  return aStrScheme;
428 }
429 
431  OUString& aStrIntName, OUString& aStrFrame,
432  SvxLinkInsertMode& eMode )
433 {
434  aStrIntName = mxEdText->get_text();
435  aStrName = mxEdIndication->get_text();
436  aStrFrame = mxCbbFrame->get_active_text();
437 
438  sal_Int32 nPos = mxLbForm->get_active();
439  if (nPos == -1)
440  // This happens when FillStandardDlgFields() hides mpLbForm.
441  nPos = 0;
442  eMode = static_cast<SvxLinkInsertMode>(nPos + 1);
443 
444  // Ask dialog whether the current doc is a HTML-doc
445  if (mpDialog->IsHTMLDoc())
446  eMode = static_cast<SvxLinkInsertMode>( sal_uInt16(eMode) | HLINK_HTMLMODE );
447 }
448 
449 // reset dialog-fields
451 {
452 
453  // Set dialog-fields from create-itemset
454  maStrInitURL.clear();
455 
456  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
457  rItemSet.GetItem (SID_HYPERLINK_GETLINK));
458 
459  if ( pHyperlinkItem )
460  {
461  // set dialog-fields
462  FillStandardDlgFields (pHyperlinkItem);
463 
464  // set all other fields
465  FillDlgFields ( pHyperlinkItem->GetURL() );
466 
467  // Store initial URL
468  maStrInitURL = pHyperlinkItem->GetURL();
469  }
470 }
471 
472 // Fill output-ItemSet
474 {
475  OUString aStrURL, aStrName, aStrIntName, aStrFrame;
476  SvxLinkInsertMode eMode;
477 
478  GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
479  if ( aStrName.isEmpty() ) //automatically create a visible name if the link is created without name
480  aStrName = CreateUiNameFromURL(aStrURL);
481 
482  HyperDialogEvent nEvents = GetMacroEvents();
483  SvxMacroTableDtor* pTable = GetMacroTable();
484 
485  SvxHyperlinkItem aItem( SID_HYPERLINK_SETLINK, aStrName, aStrURL, aStrFrame,
486  aStrIntName, eMode, nEvents, pTable );
487  rOut->Put (aItem);
488 
489  return true;
490 }
491 
492 // Activate / Deactivate Tabpage
494 {
495 
496  // Set dialog-fields from input-itemset
497  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
498  rItemSet.GetItem (SID_HYPERLINK_GETLINK));
499 
500  if ( pHyperlinkItem )
501  {
502  // standard-fields
503  FillStandardDlgFields (pHyperlinkItem);
504  }
505 
506  // show mark-window if it was open before
507  if ( ShouldOpenMarkWnd () )
508  ShowMarkWnd ();
509 }
510 
512 {
513  // hide mark-wnd
515  HideMarkWnd ();
516 
517  // retrieve data of dialog
518  OUString aStrURL, aStrName, aStrIntName, aStrFrame;
519  SvxLinkInsertMode eMode;
520 
521  GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
522 
523  HyperDialogEvent nEvents = GetMacroEvents();
524  SvxMacroTableDtor* pTable = GetMacroTable();
525 
526  if( _pSet )
527  {
528  SvxHyperlinkItem aItem( SID_HYPERLINK_GETLINK, aStrName, aStrURL, aStrFrame,
529  aStrIntName, eMode, nEvents, pTable );
530  _pSet->Put( aItem );
531  }
532 
533  return DeactivateRC::LeavePage;
534 }
535 
537 {
538  return false;
539 }
540 
542 {
543 }
544 
545 /* 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:536
std::unique_ptr< weld::ComboBox > mxCbbFrame
Definition: hltpbase.hxx:50
const css::datatransfer::dnd::DropTargetDropEvent maDropEvent
HyperDialogEvent
virtual bool QueryClose() override
Definition: hltpbase.cxx:132
#define DND_ACTION_COPY
static void GetDefaultTargetList(TargetList &)
signed char sal_Int8
const OUString & GetTargetFrame() const
virtual bool FillItemSet(SfxItemSet *) override
Definition: hltpbase.cxx:473
virtual void SetInitFocus()
Definition: hltpbase.cxx:308
bool IsDropFormatSupported(SotClipboardFormatId nFormat)
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
Definition: hltpbase.cxx:83
#define INET_HTTP_SCHEME
void SetSmartProtocol(INetProtocol eProt)
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
Definition: hltpbase.cxx:511
RET_CANCEL
void SetMacroTable(const SvxMacroTableDtor &rTbl)
SfxApplication * SfxGetpApp()
std::unique_ptr< weld::Label > mxFormLabel
Definition: hltpbase.hxx:55
static bool runAsync(const std::shared_ptr< DialogController > &rController, const std::function< void(sal_Int32)> &)
virtual void SetMarkWndShouldOpen(bool bOpen)
Definition: hltpbase.cxx:541
SfxFrame & GetFrame() const
#define DND_ACTION_NONE
const SvxMacroTableDtor * GetMacroTable() const
HLINK_HTMLMODE
void GetDataFromCommonFields(OUString &aStrName, OUString &aStrIntName, OUString &aStrFrame, SvxLinkInsertMode &eMode)
Definition: hltpbase.cxx:430
INetProtocol
std::shared_ptr< SvxHlinkDlgMarkWnd > mxMarkWnd
Definition: hltpbase.hxx:74
std::unique_ptr< weld::Entry > mxEdText
Definition: hltpbase.hxx:53
std::unique_ptr< weld::Entry > mxEdIndication
Definition: hltpbase.hxx:52
std::unique_ptr< weld::Container > xContainer
Definition: iconcdlg.hxx:54
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
Definition: hltpbase.cxx:88
SvxHyperURLBox(std::unique_ptr< weld::ComboBox > xWidget)
Definition: hltpbase.cxx:76
HyperDialogEvent GetMacroEvents() const
const OUString & GetURL() const
TopLevelWindowLocker maBusy
Definition: hltpbase.hxx:72
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
void DisableClose(bool _bDisable)
Definition: hltpbase.cxx:319
HLINK_BUTTON
SfxDispatcher * GetDispatcher() const
Definition: hltpbase.cxx:314
bool GetString(SotClipboardFormatId nFormat, OUString &rStr)
void MoveToExtraWnd(Point aNewPos)
Definition: hltpbase.cxx:168
SvxHyperlinkTabPageBase(weld::Container *pParent, SvxHpLinkDlg *pDlg, const OUString &rUIXMLDescription, const OString &rID, const SfxItemSet *pItemSet)
Definition: hltpbase.cxx:105
int i
#define INET_FTP_SCHEME
void AddEvent(const OUString &rEventName, SvMacroItemId nEventId)
Definition: macroass.cxx:131
SvxLinkInsertMode
const SfxItemSet * GetItemSet(const SfxPoolItem &rAttr)
IMPL_LINK_NOARG(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, weld::Button &, void)
Definition: hltpbase.cxx:329
SvxHpLinkDlg * mpDialog
Definition: hltpbase.hxx:64
static OUString GetScheme(INetProtocol eTheScheme)
#define INET_MAILTO_SCHEME
void FillStandardDlgFields(const SvxHyperlinkItem *pHyperlinkItem)
Definition: hltpbase.cxx:232
OUString CuiResId(const char *pKey)
Definition: cuiresmgr.cxx:23
virtual void SetMarkStr(const OUString &aStrMark)
Definition: hltpbase.cxx:302
#define INET_HTTPS_SCHEME
const SfxItemSet & GetItemSet() const
Definition: iconcdlg.hxx:69
std::unique_ptr< weld::ComboBox > mxLbForm
Definition: hltpbase.hxx:51
SfxDispatcher * GetDispatcher() const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
void Stop()
HyperDialogEvent GetMacroEvents() const
Definition: hltpbase.cxx:380
void set_entry_text(const OUString &rStr)
virtual void ActivatePage(const SfxItemSet &rItemSet) override
Definition: hltpbase.cxx:493
void SetMacroTable(const SvxMacroTableDtor &rTbl)
INetProtocol GetProtocol() const
RET_OK
SfxViewFrame * GetFrame() const
virtual ~SvxHyperlinkTabPageBase() override
Definition: hltpbase.cxx:125
bool IsHTMLDoc() const
DeactivateRC
const OUString & GetName() const
SvxLinkInsertMode GetInsertMode() const
SvxMacroTableDtor * GetMacroTable()
Definition: hltpbase.cxx:388
virtual void Reset(const SfxItemSet &) override
Definition: hltpbase.cxx:450
virtual bool AskApply()
Definition: hltpbase.cxx:295
virtual void DoApply()
Definition: hltpbase.cxx:289
bool IsMarkWndVisible() const
Definition: hltpbase.hxx:118
std::unique_ptr< weld::Button > mxBtScript
Definition: hltpbase.hxx:54
std::unique_ptr< weld::Label > mxFrameLabel
Definition: hltpbase.hxx:56
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
sal_Int32 nPos
::std::vector< OUString > TargetList
Tabpage : Basisclass.
Definition: hltpbase.hxx:47
static OUString GetSchemeFromURL(const OUString &rStrURL)
Definition: hltpbase.cxx:397
virtual void FillDlgFields(const OUString &rStrURL)=0
void incBusy(const weld::Widget *pIgnore)
const OUString & GetIntName() const