1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
19 #ifndef INCLUDED_SW_INC_SWABSTDLG_HXX
20 #define INCLUDED_SW_INC_SWABSTDLG_HXX
22 #include <rtl/ustring.hxx>
23 #include <sfx2/sfxdlg.hxx>
24 #include <com/sun/star/uno/Reference.h>
25 #include <com/sun/star/uno/Sequence.h>
29 #include "tblenum.hxx"
34 namespace vcl
{ class Window
; }
35 class SfxStyleSheetBase
;
46 class SwTableAutoFormat
;
48 class SwTOXDescription
;
55 class SwChildWinWrapper
;
56 struct SfxChildWinInfo
;
59 struct SwInsertTableOptions
;
61 enum class SwBorderModes
;
62 enum class SwCharDlgMode
;
63 enum class SfxStyleFamily
;
65 namespace com::sun::star
{
70 class XColumnsSupplier
;
77 namespace container
{ class XNameAccess
; }
78 namespace container
{ class XNamed
; }
82 namespace sw::mark
{ class IFieldmark
; class IDateFieldmark
; }
84 typedef void (*SwLabDlgMethod
) (css::uno::Reference
< css::frame::XModel
> const & xModel
, const SwLabItem
& rItem
);
86 typedef OUString (*GlossaryGetCurrGroup
)();
87 typedef void (*GlossarySetActGroup
)(const OUString
& rNewGroup
);
89 class AbstractGlossaryDlg
: public VclAbstractDialog
92 virtual ~AbstractGlossaryDlg() override
= default;
94 virtual OUString
GetCurrGrpName() const = 0;
95 virtual OUString
GetCurrShortName() const = 0;
98 class AbstractFieldInputDlg
: public VclAbstractTerminatedDialog
101 virtual ~AbstractFieldInputDlg() override
= default;
103 virtual void EndDialog(sal_Int32 nResult
) override
= 0;
104 virtual bool PrevButtonPressed() const = 0;
105 virtual bool NextButtonPressed() const = 0;
108 class AbstractInsFootNoteDlg
: public VclAbstractDialog
111 virtual ~AbstractInsFootNoteDlg() override
= default;
113 virtual OUString
GetFontName() = 0;
114 virtual bool IsEndNote() = 0;
115 virtual OUString
GetStr() = 0;
117 virtual void SetHelpId( const OString
& sHelpId
) = 0;
118 virtual void SetText( const OUString
& rStr
) = 0;
121 class AbstractInsTableDlg
124 virtual ~AbstractInsTableDlg() = default;
126 virtual void GetValues( OUString
& rName
, sal_uInt16
& rRow
, sal_uInt16
& rCol
,
127 SwInsertTableOptions
& rInsTableFlags
, OUString
& rTableAutoFormatName
,
128 std::unique_ptr
<SwTableAutoFormat
>& prTAFormat
) = 0;
129 virtual std::shared_ptr
<weld::DialogController
> getDialogController() = 0;
132 class AbstractJavaEditDialog
: public VclAbstractDialog
135 virtual ~AbstractJavaEditDialog() override
= default;
137 virtual OUString
GetScriptText() const = 0;
138 virtual OUString
GetScriptType() const = 0;
139 virtual bool IsUrl() const = 0;
140 virtual bool IsNew() const = 0;
141 virtual bool IsUpdate() const = 0;
144 class AbstractMailMergeDlg
: public VclAbstractDialog
147 virtual ~AbstractMailMergeDlg() override
= default;
149 virtual DBManagerOptions
GetMergeType() = 0;
150 virtual const OUString
& GetSaveFilter() const = 0;
151 virtual css::uno::Sequence
< css::uno::Any
> GetSelection() const = 0;
152 virtual css::uno::Reference
< css::sdbc::XResultSet
> GetResultSet() const = 0;
153 virtual bool IsSaveSingleDoc() const = 0;
154 virtual bool IsGenerateFromDataBase() const = 0;
155 virtual bool IsFileEncryptedFromDataBase() const = 0;
156 virtual OUString
GetColumnName() const = 0;
157 virtual OUString
GetPasswordColumnName() const = 0;
158 virtual OUString
GetTargetURL() const = 0;
161 class AbstractMailMergeCreateFromDlg
: public VclAbstractDialog
164 virtual ~AbstractMailMergeCreateFromDlg() override
= default;
166 virtual bool IsThisDocument() const = 0;
169 class AbstractMailMergeFieldConnectionsDlg
: public VclAbstractDialog
172 virtual ~AbstractMailMergeFieldConnectionsDlg() override
= default;
174 virtual bool IsUseExistingConnections() const = 0;
177 class AbstractMultiTOXTabDialog
: public VclAbstractDialog
180 virtual ~AbstractMultiTOXTabDialog() override
= default;
182 virtual CurTOXType
GetCurrentTOXType() const = 0;
183 virtual SwTOXDescription
& GetTOXDescription(CurTOXType eTOXTypes
) = 0;
185 virtual const SfxItemSet
* GetOutputItemSet() const = 0;
188 class AbstractEditRegionDlg
: public VclAbstractDialog
191 virtual ~AbstractEditRegionDlg() override
= default;
193 virtual void SelectSection(const OUString
& rSectionName
) = 0;
196 class AbstractInsertSectionTabDialog
: public VclAbstractDialog
199 virtual ~AbstractInsertSectionTabDialog() override
= default;
201 virtual void SetSectionData(SwSectionData
const& rSect
) = 0;
204 class AbstractSwWordCountFloatDlg
: public VclAbstractDialog
207 virtual ~AbstractSwWordCountFloatDlg() override
= default;
209 virtual void UpdateCounts() = 0;
210 virtual void SetCounts(const SwDocStat
&rCurrCnt
, const SwDocStat
&rDocStat
) = 0;
211 virtual std::shared_ptr
<SfxDialogController
> GetController() = 0;
214 class AbstractSwInsertAbstractDlg
: public VclAbstractDialog
217 virtual ~AbstractSwInsertAbstractDlg() override
= default;
219 virtual sal_uInt8
GetLevel() const = 0;
220 virtual sal_uInt8
GetPara() const = 0;
223 class AbstractSwAsciiFilterDlg
: public VclAbstractDialog
226 virtual ~AbstractSwAsciiFilterDlg() override
= default;
228 virtual void FillOptions( SwAsciiOptions
& rOptions
) = 0;
232 class AbstractSwBreakDlg
235 virtual ~AbstractSwBreakDlg() = default;
237 virtual OUString
GetTemplateName() = 0;
238 virtual sal_uInt16
GetKind() = 0;
239 virtual ::std::optional
<sal_uInt16
> GetPageNumber() = 0;
241 virtual std::shared_ptr
<weld::DialogController
> getDialogController() = 0;
244 class AbstractSplitTableDialog
: public VclAbstractDialog
// add for
247 virtual ~AbstractSplitTableDialog() override
= default;
249 virtual SplitTable_HeadlineOption
GetSplitMode() = 0;
252 class AbstractSwConvertTableDlg
: public VclAbstractDialog
255 virtual ~AbstractSwConvertTableDlg() override
= default;
257 virtual void GetValues( sal_Unicode
& rDelim
,
258 SwInsertTableOptions
& rInsTableFlags
,
259 SwTableAutoFormat
const*& prTAFormat
) = 0;
262 class AbstractSwInsertDBColAutoPilot
: public VclAbstractDialog
265 virtual ~AbstractSwInsertDBColAutoPilot() override
= default;
267 virtual void DataToDoc( const css::uno::Sequence
< css::uno::Any
>& rSelection
,
268 css::uno::Reference
< css::sdbc::XDataSource
> rxSource
,
269 css::uno::Reference
< css::sdbc::XConnection
> xConnection
,
270 css::uno::Reference
< css::sdbc::XResultSet
> xResultSet
) = 0;
273 class AbstractDropDownFieldDialog
: public VclAbstractDialog
276 virtual ~AbstractDropDownFieldDialog() override
= default;
278 virtual bool PrevButtonPressed() const = 0;
279 virtual bool NextButtonPressed() const = 0;
282 class AbstractSwLabDlg
: public SfxAbstractTabDialog
285 virtual ~AbstractSwLabDlg() override
= default;
287 virtual const OUString
& GetBusinessCardStr() const = 0;
288 virtual Printer
*GetPrt() =0;
291 class AbstractSwSelGlossaryDlg
: public VclAbstractDialog
294 virtual ~AbstractSwSelGlossaryDlg() override
= default;
296 virtual void InsertGlos(const OUString
&rRegion
, const OUString
&rGlosName
) = 0; // inline
297 virtual sal_Int32
GetSelectedIdx() const = 0; // inline
298 virtual void SelectEntryPos(sal_Int32 nIdx
) = 0; // inline
301 class AbstractSwAutoFormatDlg
: public VclAbstractDialog
304 virtual ~AbstractSwAutoFormatDlg() override
= default;
306 virtual std::unique_ptr
<SwTableAutoFormat
> FillAutoFormatOfIndex() const = 0;
309 class AbstractSwFieldDlg
: public SfxAbstractTabDialog
312 virtual ~AbstractSwFieldDlg() override
= default;
314 virtual void Initialize(SfxChildWinInfo
*pInfo
) = 0;
315 virtual void ReInitDlg() = 0;
316 virtual void ActivateDatabasePage() = 0;
317 virtual void ShowReferencePage() = 0;
318 virtual std::shared_ptr
<SfxDialogController
> GetController() = 0;
321 class AbstractSwRenameXNamedDlg
: public VclAbstractDialog
324 virtual ~AbstractSwRenameXNamedDlg() override
= default;
326 virtual void SetForbiddenChars( const OUString
& rSet
) = 0;
327 virtual void SetAlternativeAccess(
328 css::uno::Reference
< css::container::XNameAccess
> & xSecond
,
329 css::uno::Reference
< css::container::XNameAccess
> & xThird
) = 0;
332 class AbstractSwModalRedlineAcceptDlg
: public VclAbstractDialog
335 virtual ~AbstractSwModalRedlineAcceptDlg() override
= default;
337 virtual void AcceptAll( bool bAccept
) = 0;
340 class AbstractMarkFloatDlg
: public VclAbstractDialog
343 virtual ~AbstractMarkFloatDlg() override
= default;
345 virtual void ReInitDlg(SwWrtShell
& rWrtShell
) = 0;
346 virtual std::shared_ptr
<SfxDialogController
> GetController() = 0;
349 #define RET_LOAD_DOC 100
350 #define RET_TARGET_CREATED 103
351 #define RET_REMOVE_TARGET 104
353 class SwMailMergeConfigItem
;
355 class AbstractMailMergeWizard
: public VclAbstractDialog
358 virtual ~AbstractMailMergeWizard() override
= default;
360 virtual OUString
GetReloadDocument() const = 0;
361 virtual void ShowPage( sal_uInt16 nLevel
) = 0;
362 virtual sal_uInt16
GetRestartPage() const = 0;
365 class SwAbstractDialogFactory
368 static SwAbstractDialogFactory
* Create();
370 virtual VclPtr
<SfxAbstractDialog
> CreateNumFormatDialog(weld::Widget
* pParent
, const SfxItemSet
& rAttr
) = 0;
371 virtual VclPtr
<SfxAbstractDialog
> CreateSwDropCapsDialog(weld::Window
* pParent
, const SfxItemSet
& rSet
) = 0;
372 virtual VclPtr
<SfxAbstractDialog
> CreateSwBackgroundDialog(weld::Window
* pParent
, const SfxItemSet
& rSet
) = 0;
374 virtual VclPtr
<AbstractSwWordCountFloatDlg
> CreateSwWordCountDialog(SfxBindings
* pBindings
,
375 SfxChildWindow
* pChild
, weld::Window
*pParent
, SfxChildWinInfo
* pInfo
) = 0;
377 virtual VclPtr
<AbstractSwInsertAbstractDlg
> CreateSwInsertAbstractDlg(weld::Window
* pParent
) = 0;
378 virtual VclPtr
<SfxAbstractDialog
> CreateSwAddressAbstractDlg(weld::Window
* pParent
, const SfxItemSet
& rSet
) = 0;
379 virtual VclPtr
<AbstractSwAsciiFilterDlg
> CreateSwAsciiFilterDlg(weld::Window
* pParent
, SwDocShell
& rDocSh
,
380 SvStream
* pStream
) = 0;
381 virtual VclPtr
<VclAbstractDialog
> CreateSwInsertBookmarkDlg(weld::Window
*pParent
, SwWrtShell
&rSh
) = 0;
383 virtual std::shared_ptr
<AbstractSwBreakDlg
> CreateSwBreakDlg(weld::Window
*pParent
, SwWrtShell
&rSh
) = 0;
384 virtual VclPtr
<VclAbstractDialog
> CreateSwChangeDBDlg(SwView
& rVw
) = 0;
385 virtual VclPtr
<SfxAbstractTabDialog
> CreateSwCharDlg(weld::Window
* pParent
, SwView
& pVw
, const SfxItemSet
& rCoreSet
,
386 SwCharDlgMode nDialogMode
, const OUString
* pFormatStr
= nullptr) = 0;
387 virtual VclPtr
<AbstractSwConvertTableDlg
> CreateSwConvertTableDlg(SwView
& rView
, bool bToTable
) = 0;
388 virtual VclPtr
<VclAbstractDialog
> CreateSwCaptionDialog(weld::Window
*pParent
, SwView
&rV
) = 0;
390 virtual VclPtr
<AbstractSwInsertDBColAutoPilot
> CreateSwInsertDBColAutoPilot(SwView
& rView
,
391 css::uno::Reference
< css::sdbc::XDataSource
> rxSource
,
392 css::uno::Reference
<css::sdbcx::XColumnsSupplier
> xColSupp
,
393 const SwDBData
& rData
) = 0;
394 virtual VclPtr
<SfxAbstractTabDialog
> CreateSwFootNoteOptionDlg(weld::Window
*pParent
, SwWrtShell
&rSh
) = 0;
396 virtual VclPtr
<AbstractDropDownFieldDialog
> CreateDropDownFieldDialog(weld::Widget
* pParent
, SwWrtShell
&rSh
,
397 SwField
* pField
, bool bPrevButton
, bool bNextButton
) = 0;
398 virtual VclPtr
<VclAbstractDialog
> CreateDropDownFormFieldDialog(weld::Widget
* pParent
, sw::mark::IFieldmark
* pDropDownField
) = 0;
400 virtual VclPtr
<VclAbstractDialog
> CreateDateFormFieldDialog(weld::Widget
* pParent
, sw::mark::IDateFieldmark
* pDateField
, SwDoc
& rDoc
) = 0;
402 virtual VclPtr
<SfxAbstractTabDialog
> CreateSwEnvDlg(weld::Window
* pParent
, const SfxItemSet
& rSet
, SwWrtShell
* pWrtSh
, Printer
* pPrt
, bool bInsert
) = 0;
404 virtual VclPtr
<AbstractSwLabDlg
> CreateSwLabDlg(weld::Window
* pParent
, const SfxItemSet
& rSet
,
405 SwDBManager
* pDBManager
, bool bLabel
) = 0;
407 virtual SwLabDlgMethod
GetSwLabDlgStaticMethod () =0;
409 virtual VclPtr
<SfxAbstractTabDialog
> CreateSwParaDlg(weld::Window
*pParent
,
411 const SfxItemSet
& rCoreSet
,
413 const OString
& sDefPage
= OString() ) = 0;
415 virtual VclPtr
<VclAbstractDialog
> CreateSwAutoMarkDialog(weld::Window
*pParent
, SwWrtShell
&rSh
) = 0;
417 virtual VclPtr
<AbstractSwSelGlossaryDlg
> CreateSwSelGlossaryDlg(weld::Window
*pParent
, const OUString
&rShortName
) = 0;
419 virtual VclPtr
<VclAbstractDialog
> CreateSwSortingDialog(weld::Window
*pParent
, SwWrtShell
&rSh
) = 0;
420 virtual VclPtr
<VclAbstractDialog
> CreateSwTableHeightDialog(weld::Window
*pParent
, SwWrtShell
&rSh
) = 0;
421 virtual VclPtr
<VclAbstractDialog
> CreateSwColumnDialog(weld::Window
*pParent
, SwWrtShell
&rSh
) = 0;
422 virtual VclPtr
<AbstractSplitTableDialog
> CreateSplitTableDialog(weld::Window
* pParent
, SwWrtShell
&rSh
) = 0;
424 virtual VclPtr
<AbstractSwAutoFormatDlg
> CreateSwAutoFormatDlg(weld::Window
* pParent
, SwWrtShell
* pShell
,
425 bool bSetAutoFormat
= true,
426 const SwTableAutoFormat
* pSelFormat
= nullptr ) = 0;
427 virtual VclPtr
<SfxAbstractDialog
> CreateSwBorderDlg(weld::Window
* pParent
, SfxItemSet
& rSet
, SwBorderModes nType
) = 0;
428 virtual VclPtr
<SfxAbstractDialog
> CreateSwWrapDlg(weld::Window
* pParent
, SfxItemSet
& rSet
, SwWrtShell
* pSh
) = 0;
430 virtual VclPtr
<VclAbstractDialog
> CreateSwTableWidthDlg(weld::Window
*pParent
, SwTableFUNC
&rFnc
) = 0;
431 virtual VclPtr
<SfxAbstractTabDialog
> CreateSwTableTabDlg(weld::Window
* pParent
,
432 const SfxItemSet
* pItemSet
, SwWrtShell
* pSh
) = 0;
434 virtual VclPtr
<AbstractSwFieldDlg
> CreateSwFieldDlg(SfxBindings
* pB
, SwChildWinWrapper
* pCW
, weld::Window
*pParent
) = 0;
435 virtual VclPtr
<SfxAbstractDialog
> CreateSwFieldEditDlg ( SwView
& rVw
) = 0;
436 virtual VclPtr
<AbstractSwRenameXNamedDlg
> CreateSwRenameXNamedDlg(weld::Window
* pParent
,
437 css::uno::Reference
< css::container::XNamed
> & xNamed
,
438 css::uno::Reference
< css::container::XNameAccess
> & xNameAccess
) = 0;
439 virtual VclPtr
<AbstractSwModalRedlineAcceptDlg
> CreateSwModalRedlineAcceptDlg(weld::Window
*pParent
) = 0;
441 virtual VclPtr
<VclAbstractDialog
> CreateTableMergeDialog(weld::Window
* pParent
, bool& rWithPrev
) = 0;
442 virtual VclPtr
<SfxAbstractTabDialog
> CreateFrameTabDialog(const OUString
&rDialogType
,
443 SfxViewFrame
*pFrame
, weld::Window
*pParent
,
444 const SfxItemSet
& rCoreSet
,
445 bool bNewFrame
= true,
446 const OString
& sDefPage
= OString()) = 0;
448 /// Identifies optional Slot by which the creation of the Template (Style) dialog is triggered.
449 /// Currently used, if nRegion == SfxStyleFamily::Page in order to activate certain dialog pane
450 virtual VclPtr
<SfxAbstractApplyTabDialog
> CreateTemplateDialog(weld::Window
* pParent
,
451 SfxStyleSheetBase
& rBase
,
452 SfxStyleFamily nRegion
,
453 const OString
& sPage
,
454 SwWrtShell
* pActShell
,
456 virtual VclPtr
<AbstractGlossaryDlg
> CreateGlossaryDlg(SfxViewFrame
* pViewFrame
,
457 SwGlossaryHdl
* pGlosHdl
,
458 SwWrtShell
*pWrtShell
) = 0;
459 virtual VclPtr
<AbstractFieldInputDlg
> CreateFieldInputDlg(weld::Widget
*pParent
,
460 SwWrtShell
&rSh
, SwField
* pField
, bool bPrevButton
, bool bNextButton
) = 0;
461 virtual VclPtr
<AbstractInsFootNoteDlg
> CreateInsFootNoteDlg(weld::Window
* pParent
,
462 SwWrtShell
&rSh
, bool bEd
= false) = 0;
463 virtual VclPtr
<VclAbstractDialog
> CreateTitlePageDlg(weld::Window
* pParent
) = 0;
464 virtual VclPtr
<VclAbstractDialog
> CreateVclSwViewDialog(SwView
& rView
) = 0;
465 virtual std::shared_ptr
<AbstractInsTableDlg
> CreateInsTableDlg(SwView
& rView
) = 0;
466 virtual VclPtr
<AbstractJavaEditDialog
> CreateJavaEditDialog(weld::Window
* pParent
,
467 SwWrtShell
* pWrtSh
) = 0;
468 virtual VclPtr
<AbstractMailMergeDlg
> CreateMailMergeDlg(
469 weld::Window
* pParent
, SwWrtShell
& rSh
,
470 const OUString
& rSourceName
,
471 const OUString
& rTableName
,
472 sal_Int32 nCommandType
,
473 const css::uno::Reference
< css::sdbc::XConnection
>& xConnection
) = 0;
474 virtual VclPtr
<AbstractMailMergeCreateFromDlg
> CreateMailMergeCreateFromDlg(weld::Window
* pParent
) = 0;
475 virtual VclPtr
<AbstractMailMergeFieldConnectionsDlg
> CreateMailMergeFieldConnectionsDlg(weld::Window
* pParent
) = 0;
476 virtual VclPtr
<VclAbstractDialog
> CreateMultiTOXMarkDlg(weld::Window
* pParent
, SwTOXMgr
&rTOXMgr
) = 0;
477 virtual VclPtr
<SfxAbstractTabDialog
> CreateOutlineTabDialog(weld::Window
* pParent
,
478 const SfxItemSet
* pSwItemSet
,
480 virtual VclPtr
<SfxAbstractTabDialog
> CreateSvxNumBulletTabDialog(weld::Window
* pParent
,
481 const SfxItemSet
* pSwItemSet
,
483 virtual VclPtr
<AbstractMultiTOXTabDialog
> CreateMultiTOXTabDialog(
484 weld::Window
* pParent
, const SfxItemSet
& rSet
,
488 virtual VclPtr
<AbstractEditRegionDlg
> CreateEditRegionDlg(weld::Window
* pParent
, SwWrtShell
& rWrtSh
) = 0;
489 virtual VclPtr
<AbstractInsertSectionTabDialog
> CreateInsertSectionTabDialog(weld::Window
* pParent
,
490 const SfxItemSet
& rSet
, SwWrtShell
& rSh
) = 0;
491 virtual VclPtr
<AbstractMarkFloatDlg
> CreateIndexMarkFloatDlg(
492 SfxBindings
* pBindings
,
493 SfxChildWindow
* pChild
,
494 weld::Window
*pParent
,
495 SfxChildWinInfo
* pInfo
) = 0;
496 virtual VclPtr
<AbstractMarkFloatDlg
> CreateAuthMarkFloatDlg(
497 SfxBindings
* pBindings
,
498 SfxChildWindow
* pChild
,
499 weld::Window
*pParent
,
500 SfxChildWinInfo
* pInfo
) = 0;
501 virtual VclPtr
<VclAbstractDialog
> CreateIndexMarkModalDlg(
502 weld::Window
*pParent
, SwWrtShell
& rSh
, SwTOXMark
* pCurTOXMark
) = 0;
504 virtual VclPtr
<AbstractMailMergeWizard
> CreateMailMergeWizard(SwView
& rView
, std::shared_ptr
<SwMailMergeConfigItem
>& rConfigItem
) = 0;
506 virtual GlossaryGetCurrGroup
GetGlossaryCurrGroupFunc() = 0;
507 virtual GlossarySetActGroup
SetGlossaryActGroupFunc() = 0;
510 virtual CreateTabPage
GetTabPageCreatorFunc( sal_uInt16 nId
) = 0;
512 virtual void ExecuteMMResultSaveDialog(weld::Window
* pParent
) = 0;
513 virtual void ExecuteMMResultPrintDialog(weld::Window
* pParent
) = 0;
514 virtual void ExecuteMMResultEmailDialog(weld::Window
* pParent
) = 0;
517 ~SwAbstractDialogFactory() {}
522 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */