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 <osl/file.hxx>
24 #include <sfx2/app.hxx>
25 #include <sfx2/event.hxx>
26 #include <sfx2/frame.hxx>
27 #include <sfx2/viewfrm.hxx>
28 #include <sot/formats.hxx>
29 #include <sfx2/sfxsids.hrc>
30 #include <svl/macitem.hxx>
31 #include <ucbhelper/content.hxx>
32 #include <cuihyperdlg.hxx>
33 #include <hltpbase.hxx>
34 #include <macroass.hxx>
35 #include <svx/svxdlg.hxx>
36 #include <strings.hrc>
37 #include <dialmgr.hxx>
38 #include <bitmaps.hlst>
39 #include <comphelper/lok.hxx>
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
275  if ( pHyperlinkItem->GetMacroEvents() == HyperDialogEvent::NONE )
276  mxBtScript->set_sensitive(false);
277  else
278  mxBtScript->set_sensitive(true);
279 }
280 
281 // Any action to do after apply-button is pressed
283 {
284  // default-implementation : do nothing
285 }
286 
287 // Ask page whether an insert is possible
289 {
290  // default-implementation
291  return true;
292 }
293 
294 // This method would be called from bookmark-window to set new mark-string
295 void SvxHyperlinkTabPageBase::SetMarkStr ( const OUString& /*aStrMark*/ )
296 {
297  // default-implementation : do nothing
298 }
299 
300 // Set initial focus
302 {
303  xContainer->grab_focus();
304 }
305 
306 // retrieve dispatcher
308 {
309  return mpDialog->GetDispatcher();
310 }
311 
313 {
314  mbIsCloseDisabled = _bDisable;
315  if (mbIsCloseDisabled)
316  maBusy.incBusy(mpDialog->getDialog());
317  else
318  maBusy.decBusy();
319 }
320 
321 // Click on imagebutton : Script
323 {
324  SvxHyperlinkItem *pHyperlinkItem = const_cast<SvxHyperlinkItem*>(static_cast<const SvxHyperlinkItem *>(
325  GetItemSet().GetItem (SID_HYPERLINK_GETLINK)));
326 
327  if ( pHyperlinkItem->GetMacroEvents() != HyperDialogEvent::NONE )
328  {
329  // get macros from itemset
330  const SvxMacroTableDtor* pMacroTbl = pHyperlinkItem->GetMacroTable();
331  SvxMacroItem aItem ( SID_ATTR_MACROITEM );
332  if( pMacroTbl )
333  aItem.SetMacroTable( *pMacroTbl );
334 
335  // create empty itemset for macro-dlg
336  std::unique_ptr<SfxItemSet> pItemSet( new SfxItemSet(SfxGetpApp()->GetPool(),
337  svl::Items<SID_ATTR_MACROITEM,
338  SID_ATTR_MACROITEM>{} ) );
339  pItemSet->Put ( aItem );
340 
341  DisableClose( true );
342 
343  SfxMacroAssignDlg aDlg(mpDialog->getDialog(), mxDocumentFrame, *pItemSet);
344 
345  // add events
346  SfxMacroTabPage *pMacroPage = aDlg.GetTabPage();
347 
348  if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseOverObject )
349  pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT1),
350  SvMacroItemId::OnMouseOver );
351  if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseClickObject )
352  pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT2),
353  SvMacroItemId::OnClick);
354  if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseOutObject )
355  pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT3),
356  SvMacroItemId::OnMouseOut);
357  // execute dlg
358  short nRet = aDlg.run();
359  DisableClose( false );
360  if ( RET_OK == nRet )
361  {
362  const SfxItemSet* pOutSet = aDlg.GetOutputItemSet();
363  const SfxPoolItem* pItem;
364  if( SfxItemState::SET == pOutSet->GetItemState( SID_ATTR_MACROITEM, false, &pItem ))
365  {
366  pHyperlinkItem->SetMacroTable( static_cast<const SvxMacroItem*>(pItem)->GetMacroTable() );
367  }
368  }
369  }
370 }
371 
372 // Get Macro-Infos
374 {
375  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
376  GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
377 
378  return pHyperlinkItem->GetMacroEvents();
379 }
380 
382 {
383  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
384  GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
385 
386  return const_cast<SvxMacroTableDtor*>(pHyperlinkItem->GetMacroTable());
387 }
388 
389 // try to detect the current protocol that is used in rStrURL
390 OUString SvxHyperlinkTabPageBase::GetSchemeFromURL( const OUString& rStrURL )
391 {
392  OUString aStrScheme;
393 
394  INetURLObject aURL( rStrURL );
395  INetProtocol aProtocol = aURL.GetProtocol();
396 
397  // our new INetUrlObject now has the ability
398  // to detect if a Url is valid or not :-(
399  if ( aProtocol == INetProtocol::NotValid )
400  {
401  if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTP_SCHEME ) )
402  {
403  aStrScheme = INET_HTTP_SCHEME;
404  }
405  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_HTTPS_SCHEME ) )
406  {
407  aStrScheme = INET_HTTPS_SCHEME;
408  }
409  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_FTP_SCHEME ) )
410  {
411  aStrScheme = INET_FTP_SCHEME;
412  }
413  else if ( rStrURL.startsWithIgnoreAsciiCase( INET_MAILTO_SCHEME ) )
414  {
415  aStrScheme = INET_MAILTO_SCHEME;
416  }
417  }
418  else
419  aStrScheme = INetURLObject::GetScheme( aProtocol );
420  return aStrScheme;
421 }
422 
424  OUString& aStrIntName, OUString& aStrFrame,
425  SvxLinkInsertMode& eMode )
426 {
427  aStrIntName = mxEdText->get_text();
428  aStrName = mxEdIndication->get_text();
429  aStrFrame = mxCbbFrame->get_active_text();
430 
431  sal_Int32 nPos = mxLbForm->get_active();
432  if (nPos == -1)
433  // This happens when FillStandardDlgFields() hides mpLbForm.
434  nPos = 0;
435  eMode = static_cast<SvxLinkInsertMode>(nPos + 1);
436 
437  // Ask dialog whether the current doc is a HTML-doc
438  if (mpDialog->IsHTMLDoc())
439  eMode = static_cast<SvxLinkInsertMode>( sal_uInt16(eMode) | HLINK_HTMLMODE );
440 }
441 
442 // reset dialog-fields
444 {
445 
446  // Set dialog-fields from create-itemset
447  maStrInitURL.clear();
448 
449  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
450  rItemSet.GetItem (SID_HYPERLINK_GETLINK));
451 
452  if ( pHyperlinkItem )
453  {
454  // set dialog-fields
455  FillStandardDlgFields (pHyperlinkItem);
456 
457  // set all other fields
458  FillDlgFields ( pHyperlinkItem->GetURL() );
459 
460  // Store initial URL
461  maStrInitURL = pHyperlinkItem->GetURL();
462  }
463 }
464 
465 // Fill output-ItemSet
467 {
468  OUString aStrURL, aStrName, aStrIntName, aStrFrame;
469  SvxLinkInsertMode eMode;
470 
471  GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
472  if ( aStrName.isEmpty() ) //automatically create a visible name if the link is created without name
473  aStrName = CreateUiNameFromURL(aStrURL);
474 
475  HyperDialogEvent nEvents = GetMacroEvents();
476  SvxMacroTableDtor* pTable = GetMacroTable();
477 
478  SvxHyperlinkItem aItem( SID_HYPERLINK_SETLINK, aStrName, aStrURL, aStrFrame,
479  aStrIntName, eMode, nEvents, pTable );
480  rOut->Put (aItem);
481 
482  return true;
483 }
484 
485 // Activate / Deactivate Tabpage
487 {
488 
489  // Set dialog-fields from input-itemset
490  const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
491  rItemSet.GetItem (SID_HYPERLINK_GETLINK));
492 
493  if ( pHyperlinkItem )
494  {
495  // standard-fields
496  FillStandardDlgFields (pHyperlinkItem);
497  }
498 
499  // show mark-window if it was open before
500  if ( ShouldOpenMarkWnd () )
501  ShowMarkWnd ();
502 }
503 
505 {
506  // hide mark-wnd
508  HideMarkWnd ();
509 
510  // retrieve data of dialog
511  OUString aStrURL, aStrName, aStrIntName, aStrFrame;
512  SvxLinkInsertMode eMode;
513 
514  GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
515 
516  HyperDialogEvent nEvents = GetMacroEvents();
517  SvxMacroTableDtor* pTable = GetMacroTable();
518 
519  if( _pSet )
520  {
521  SvxHyperlinkItem aItem( SID_HYPERLINK_GETLINK, aStrName, aStrURL, aStrFrame,
522  aStrIntName, eMode, nEvents, pTable );
523  _pSet->Put( aItem );
524  }
525 
526  return DeactivateRC::LeavePage;
527 }
528 
530 {
531  return false;
532 }
533 
535 {
536 }
537 
538 /* 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:529
std::unique_ptr< weld::ComboBox > mxCbbFrame
Definition: hltpbase.hxx:50
const css::datatransfer::dnd::DropTargetDropEvent maDropEvent
HyperDialogEvent
HyperDialogEvent GetMacroEvents()
Definition: hltpbase.cxx:373
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:466
virtual void SetInitFocus()
Definition: hltpbase.cxx:301
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:504
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:534
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:423
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:312
HLINK_BUTTON
SfxDispatcher * GetDispatcher() const
Definition: hltpbase.cxx:307
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:141
SvxLinkInsertMode
const SfxItemSet * GetItemSet(const SfxPoolItem &rAttr)
IMPL_LINK_NOARG(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, weld::Button &, void)
Definition: hltpbase.cxx:322
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:295
#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()
void set_entry_text(const OUString &rStr)
virtual void ActivatePage(const SfxItemSet &rItemSet) override
Definition: hltpbase.cxx:486
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:381
virtual void Reset(const SfxItemSet &) override
Definition: hltpbase.cxx:443
virtual bool AskApply()
Definition: hltpbase.cxx:288
virtual void DoApply()
Definition: hltpbase.cxx:282
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:390
virtual void FillDlgFields(const OUString &rStrURL)=0
void incBusy(const weld::Widget *pIgnore)
const OUString & GetIntName() const