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 #ifndef INCLUDED_SW_SOURCE_UI_DIALOG_SWDLGFACT_HXX
20 #define INCLUDED_SW_SOURCE_UI_DIALOG_SWDLGFACT_HXX
21 
22 #include <swabstdlg.hxx>
23 
24 #include <abstract.hxx>
25 #include <ascfldlg.hxx>
26 #include <cnttab.hxx>
27 #include <colwd.hxx>
28 #include <convert.hxx>
29 #include <DateFormFieldDialog.hxx>
30 #include <dbinsdlg.hxx>
31 #include <DropDownFieldDialog.hxx>
32 #include <DropDownFormFieldDialog.hxx>
33 #include <fldtdlg.hxx>
34 #include <glossary.hxx>
35 #include <inpdlg.hxx>
36 #include <insfnote.hxx>
37 #include <javaedit.hxx>
38 #include <label.hxx>
39 #include <mailmergewizard.hxx>
40 #include <mailmrge.hxx>
41 #include <mergetbl.hxx>
42 #include <multmrk.hxx>
43 #include <regionsw.hxx>
44 #include <rowht.hxx>
45 #include <selglos.hxx>
46 #include <splittbl.hxx>
47 #include <srtdlg.hxx>
48 #include <swmodalredlineacceptdlg.hxx>
49 #include <swrenamexnameddlg.hxx>
50 #include <swuicnttab.hxx>
51 #include <swuiidxmrk.hxx>
52 #include <tautofmt.hxx>
53 #include <wordcountdialog.hxx>
54 
55 class SwInsertAbstractDlg;
56 class SwAsciiFilterDlg;
57 class SwBreakDlg;
58 class SwMultiTOXMarkDlg;
59 class SwSortDlg;
60 class SwTableHeightDlg;
61 class SwTableWidthDlg;
62 class SwMergeTableDlg;
63 class SfxTabDialog;
64 class SwConvertTableDlg;
65 class SwInsertDBColAutoPilot;
66 class SwLabDlg;
67 class SwSelGlossaryDlg;
68 class SwAutoFormatDlg;
69 class SwFieldDlg;
70 class SwRenameXNamedDlg;
71 class SwModalRedlineAcceptDlg;
72 class SwTOXMark;
73 class SwSplitTableDlg;
74 
75 #include <itabenum.hxx>
76 #include <optional>
77 #include <o3tl/deleter.hxx>
78 
79 namespace sw
80 {
81 class DropDownFieldDialog;
82 class DropDownFormFieldDialog;
83 class DateFormFieldDialog;
84 }
85 
86 class SwWordCountFloatDlg;
87 class AbstractSwWordCountFloatDlg_Impl : public AbstractSwWordCountFloatDlg
88 {
89     std::shared_ptr<SwWordCountFloatDlg> m_xDlg;
90 public:
AbstractSwWordCountFloatDlg_Impl(std::shared_ptr<SwWordCountFloatDlg> p)91     explicit AbstractSwWordCountFloatDlg_Impl(std::shared_ptr<SwWordCountFloatDlg> p)
92         : m_xDlg(std::move(p))
93     {
94     }
95     virtual short Execute() override;
96     virtual void  UpdateCounts() override;
97     virtual void  SetCounts(const SwDocStat &rCurrCnt, const SwDocStat &rDocStat) override;
98     virtual std::shared_ptr<SfxDialogController> GetController() override;
99 };
100 
101 class AbstractSwInsertAbstractDlg_Impl : public AbstractSwInsertAbstractDlg
102 {
103     std::unique_ptr<SwInsertAbstractDlg> m_xDlg;
104 public:
AbstractSwInsertAbstractDlg_Impl(std::unique_ptr<SwInsertAbstractDlg> p)105     explicit AbstractSwInsertAbstractDlg_Impl(std::unique_ptr<SwInsertAbstractDlg> p)
106         : m_xDlg(std::move(p))
107     {
108     }
109     virtual short Execute() override;
110     virtual sal_uInt8   GetLevel() const override ;
111     virtual sal_uInt8   GetPara() const override ;
112 };
113 
114 class SwAbstractSfxController_Impl : public SfxAbstractDialog
115 {
116     std::unique_ptr<SfxSingleTabDialogController> m_xDlg;
117 public:
SwAbstractSfxController_Impl(std::unique_ptr<SfxSingleTabDialogController> p)118     explicit SwAbstractSfxController_Impl(std::unique_ptr<SfxSingleTabDialogController> p)
119         : m_xDlg(std::move(p))
120     {
121     }
122     virtual short Execute() override;
123     virtual const SfxItemSet* GetOutputItemSet() const override;
124     virtual void SetText(const OUString& rStr) override;
125 };
126 
127 class AbstractSwAsciiFilterDlg_Impl : public AbstractSwAsciiFilterDlg
128 {
129     std::unique_ptr<SwAsciiFilterDlg> m_xDlg;
130 public:
AbstractSwAsciiFilterDlg_Impl(std::unique_ptr<SwAsciiFilterDlg> p)131     explicit AbstractSwAsciiFilterDlg_Impl(std::unique_ptr<SwAsciiFilterDlg> p)
132         : m_xDlg(std::move(p))
133     {
134     }
135     virtual short Execute() override;
136     virtual void FillOptions( SwAsciiOptions& rOptions ) override;
137 };
138 
139 class AbstractGenericDialog_Impl : public VclAbstractDialog
140 {
141     std::shared_ptr<weld::GenericDialogController> m_xDlg;
142 public:
AbstractGenericDialog_Impl(std::shared_ptr<weld::GenericDialogController> p)143     explicit AbstractGenericDialog_Impl(std::shared_ptr<weld::GenericDialogController> p)
144         : m_xDlg(std::move(p))
145     {
146     }
147     virtual short Execute() override;
148     virtual bool StartExecuteAsync(AsyncContext &rCtx) override;
149 };
150 
151 class AbstractSwSortDlg_Impl : public VclAbstractDialog
152 {
153     std::unique_ptr<SwSortDlg> m_xDlg;
154 public:
AbstractSwSortDlg_Impl(std::unique_ptr<SwSortDlg> p)155     explicit AbstractSwSortDlg_Impl(std::unique_ptr<SwSortDlg> p)
156         : m_xDlg(std::move(p))
157     {
158     }
159     virtual short Execute() override;
160 };
161 
162 class AbstractMultiTOXMarkDlg_Impl : public VclAbstractDialog
163 {
164     std::unique_ptr<SwMultiTOXMarkDlg> m_xDlg;
165 public:
AbstractMultiTOXMarkDlg_Impl(std::unique_ptr<SwMultiTOXMarkDlg> p)166     explicit AbstractMultiTOXMarkDlg_Impl(std::unique_ptr<SwMultiTOXMarkDlg> p)
167         : m_xDlg(std::move(p))
168     {
169     }
170     virtual short Execute() override;
171 };
172 
173 class AbstractSwBreakDlg_Impl : public AbstractSwBreakDlg
174 {
175     std::shared_ptr<weld::DialogController> m_xDlg;
176 public:
AbstractSwBreakDlg_Impl(std::shared_ptr<weld::DialogController> p)177     explicit AbstractSwBreakDlg_Impl(std::shared_ptr<weld::DialogController> p)
178         : m_xDlg(std::move(p))
179     {
180     }
181     virtual OUString                        GetTemplateName() override;
182     virtual sal_uInt16                      GetKind() override;
183     virtual ::std::optional<sal_uInt16>   GetPageNumber() override;
184 
getDialogController()185     virtual std::shared_ptr<weld::DialogController> getDialogController() override { return m_xDlg; }
186 };
187 
188 class AbstractSwTableWidthDlg_Impl : public VclAbstractDialog
189 {
190     std::unique_ptr<SwTableWidthDlg> m_xDlg;
191 public:
AbstractSwTableWidthDlg_Impl(std::unique_ptr<SwTableWidthDlg> p)192     explicit AbstractSwTableWidthDlg_Impl(std::unique_ptr<SwTableWidthDlg> p)
193         : m_xDlg(std::move(p))
194     {
195     }
196     virtual short Execute() override;
197 };
198 
199 class AbstractSwTableHeightDlg_Impl : public VclAbstractDialog
200 {
201     std::unique_ptr<SwTableHeightDlg> m_xDlg;
202 public:
AbstractSwTableHeightDlg_Impl(std::unique_ptr<SwTableHeightDlg> p)203     explicit AbstractSwTableHeightDlg_Impl(std::unique_ptr<SwTableHeightDlg> p)
204         : m_xDlg(std::move(p))
205     {
206     }
207     virtual short Execute() override;
208 };
209 
210 class AbstractSwMergeTableDlg_Impl : public VclAbstractDialog
211 {
212     std::unique_ptr<SwMergeTableDlg> m_xDlg;
213 public:
AbstractSwMergeTableDlg_Impl(std::unique_ptr<SwMergeTableDlg> p)214     explicit AbstractSwMergeTableDlg_Impl(std::unique_ptr<SwMergeTableDlg> p)
215         : m_xDlg(std::move(p))
216     {
217     }
218     virtual short Execute() override;
219 };
220 
221 class AbstractSplitTableDialog_Impl : public AbstractSplitTableDialog // add for
222 {
223     std::unique_ptr<SwSplitTableDlg> m_xDlg;
224 public:
AbstractSplitTableDialog_Impl(std::unique_ptr<SwSplitTableDlg> p)225     explicit AbstractSplitTableDialog_Impl(std::unique_ptr<SwSplitTableDlg> p)
226         : m_xDlg(std::move(p))
227     {
228     }
229     virtual short Execute() override;
230     virtual SplitTable_HeadlineOption GetSplitMode() override;
231 };
232 
233 class AbstractTabController_Impl : virtual public SfxAbstractTabDialog
234 {
235 protected:
236     std::shared_ptr<SfxTabDialogController> m_xDlg;
237 public:
AbstractTabController_Impl(std::shared_ptr<SfxTabDialogController> p)238     explicit AbstractTabController_Impl(std::shared_ptr<SfxTabDialogController> p)
239         : m_xDlg(std::move(p))
240     {
241     }
242     virtual short Execute() override;
243     virtual bool  StartExecuteAsync(AsyncContext &rCtx) override;
244     virtual void                SetCurPageId( const OString &rName ) override;
245     virtual const SfxItemSet*   GetOutputItemSet() const override;
246     virtual const sal_uInt16*   GetInputRanges( const SfxItemPool& pItem ) override;
247     virtual void                SetInputSet( const SfxItemSet* pInSet ) override;
248         //From class Window.
249     virtual void        SetText( const OUString& rStr ) override;
250 };
251 
252 class AbstractApplyTabController_Impl : public AbstractTabController_Impl, virtual public SfxAbstractApplyTabDialog
253 {
254 public:
AbstractApplyTabController_Impl(std::shared_ptr<SfxTabDialogController> p)255     explicit AbstractApplyTabController_Impl(std::shared_ptr<SfxTabDialogController> p)
256         : AbstractTabController_Impl(std::move(p))
257     {
258     }
259     DECL_LINK(ApplyHdl, weld::Button&, void);
260 private:
261     Link<LinkParamNone*,void> m_aHandler;
262     virtual void                SetApplyHdl( const Link<LinkParamNone*,void>& rLink ) override;
263 };
264 
265 class AbstractSwConvertTableDlg_Impl :  public AbstractSwConvertTableDlg
266 {
267     std::unique_ptr<SwConvertTableDlg> m_xDlg;
268 public:
AbstractSwConvertTableDlg_Impl(std::unique_ptr<SwConvertTableDlg> p)269     explicit AbstractSwConvertTableDlg_Impl(std::unique_ptr<SwConvertTableDlg> p)
270         : m_xDlg(std::move(p))
271     {
272     }
273     virtual short Execute() override;
274     virtual void GetValues( sal_Unicode& rDelim,SwInsertTableOptions& rInsTableFlags,
275                     SwTableAutoFormat const*& prTAFormat) override;
276 };
277 
278 class AbstractSwInsertDBColAutoPilot_Impl :  public AbstractSwInsertDBColAutoPilot
279 {
280     std::unique_ptr<SwInsertDBColAutoPilot> m_xDlg;
281 public:
AbstractSwInsertDBColAutoPilot_Impl(std::unique_ptr<SwInsertDBColAutoPilot> p)282     explicit AbstractSwInsertDBColAutoPilot_Impl(std::unique_ptr<SwInsertDBColAutoPilot> p)
283         : m_xDlg(std::move(p))
284     {
285     }
286     virtual short Execute() override;
287     virtual void DataToDoc( const css::uno::Sequence< css::uno::Any >& rSelection,
288         css::uno::Reference< css::sdbc::XDataSource> rxSource,
289         css::uno::Reference< css::sdbc::XConnection> xConnection,
290         css::uno::Reference< css::sdbc::XResultSet > xResultSet) override;
291 };
292 
293 class AbstractDropDownFieldDialog_Impl : public AbstractDropDownFieldDialog
294 {
295     std::unique_ptr<sw::DropDownFieldDialog> m_xDlg;
296 public:
AbstractDropDownFieldDialog_Impl(std::unique_ptr<sw::DropDownFieldDialog> p)297     explicit AbstractDropDownFieldDialog_Impl(std::unique_ptr<sw::DropDownFieldDialog> p)
298         : m_xDlg(std::move(p))
299     {
300     }
301     virtual short Execute() override;
302     virtual bool          PrevButtonPressed() const override;
303     virtual bool          NextButtonPressed() const override;
304 };
305 
306 class AbstractDropDownFormFieldDialog_Impl : public VclAbstractDialog
307 {
308     std::unique_ptr<sw::DropDownFormFieldDialog> m_xDlg;
309 public:
AbstractDropDownFormFieldDialog_Impl(std::unique_ptr<sw::DropDownFormFieldDialog> p)310     explicit AbstractDropDownFormFieldDialog_Impl(std::unique_ptr<sw::DropDownFormFieldDialog> p)
311         : m_xDlg(std::move(p))
312     {
313     }
314     virtual short Execute() override;
315 };
316 
317 class AbstractDateFormFieldDialog_Impl : public VclAbstractDialog
318 {
319     std::unique_ptr<sw::DateFormFieldDialog> m_xDlg;
320 public:
AbstractDateFormFieldDialog_Impl(std::unique_ptr<sw::DateFormFieldDialog> p)321     explicit AbstractDateFormFieldDialog_Impl(std::unique_ptr<sw::DateFormFieldDialog> p)
322         : m_xDlg(std::move(p))
323     {
324     }
325     virtual short Execute() override;
326 };
327 
328 class AbstractSwLabDlg_Impl  : public AbstractSwLabDlg
329 {
330     std::unique_ptr<SwLabDlg> m_xDlg;
331 public:
AbstractSwLabDlg_Impl(std::unique_ptr<SwLabDlg> p)332     explicit AbstractSwLabDlg_Impl(std::unique_ptr<SwLabDlg> p)
333         : m_xDlg(std::move(p))
334     {
335     }
336     virtual short Execute() override;
337     virtual void                SetCurPageId( const OString &rName ) override;
338     virtual const SfxItemSet*   GetOutputItemSet() const override;
339     virtual const sal_uInt16*       GetInputRanges( const SfxItemPool& pItem ) override;
340     virtual void                SetInputSet( const SfxItemSet* pInSet ) override;
341         //From class Window.
342     virtual void        SetText( const OUString& rStr ) override;
343     virtual const OUString& GetBusinessCardStr() const override;
344     virtual Printer *GetPrt() override;
345 };
346 
347 class AbstractSwSelGlossaryDlg_Impl : public AbstractSwSelGlossaryDlg
348 {
349     std::unique_ptr<SwSelGlossaryDlg> m_xDlg;
350 public:
AbstractSwSelGlossaryDlg_Impl(std::unique_ptr<SwSelGlossaryDlg> p)351     explicit AbstractSwSelGlossaryDlg_Impl(std::unique_ptr<SwSelGlossaryDlg> p)
352         : m_xDlg(std::move(p))
353     {
354     }
355     virtual short Execute() override;
356     virtual void InsertGlos(const OUString &rRegion, const OUString &rGlosName) override;    // inline
357     virtual sal_Int32 GetSelectedIdx() const override;  // inline
358     virtual void SelectEntryPos(sal_Int32 nIdx) override;   // inline
359 };
360 
361 class AbstractSwAutoFormatDlg_Impl : public AbstractSwAutoFormatDlg
362 {
363     std::unique_ptr<SwAutoFormatDlg, o3tl::default_delete<SwAutoFormatDlg>> m_xDlg;
364 public:
AbstractSwAutoFormatDlg_Impl(std::unique_ptr<SwAutoFormatDlg,o3tl::default_delete<SwAutoFormatDlg>> p)365     explicit AbstractSwAutoFormatDlg_Impl(std::unique_ptr<SwAutoFormatDlg, o3tl::default_delete<SwAutoFormatDlg>> p)
366         : m_xDlg(std::move(p))
367     {
368     }
369     virtual short Execute() override;
370     virtual std::unique_ptr<SwTableAutoFormat> FillAutoFormatOfIndex() const override;
371 };
372 
373 class AbstractSwFieldDlg_Impl : public AbstractSwFieldDlg
374 {
375     std::shared_ptr<SwFieldDlg> m_xDlg;
376 public:
AbstractSwFieldDlg_Impl(std::shared_ptr<SwFieldDlg> p)377     explicit AbstractSwFieldDlg_Impl(std::shared_ptr<SwFieldDlg> p)
378         : m_xDlg(std::move(p))
379     {
380     }
381     virtual short Execute() override;
382     virtual bool StartExecuteAsync(AsyncContext &rCtx) override;
383     virtual void                SetCurPageId( const OString &rName ) override;
384     virtual const SfxItemSet*   GetOutputItemSet() const override;
385     virtual const sal_uInt16*   GetInputRanges( const SfxItemPool& pItem ) override;
386     virtual void                SetInputSet( const SfxItemSet* pInSet ) override;
387         //From class Window.
388     virtual void                SetText( const OUString& rStr ) override;
389     virtual void                ShowReferencePage() override;
390     virtual void                Initialize(SfxChildWinInfo *pInfo) override;
391     virtual void                ReInitDlg() override;
392     virtual void                ActivateDatabasePage() override;
393     virtual std::shared_ptr<SfxDialogController> GetController() override;
394 };
395 
396 class AbstractSwRenameXNamedDlg_Impl : public AbstractSwRenameXNamedDlg
397 {
398     std::unique_ptr<SwRenameXNamedDlg> m_xDlg;
399 public:
AbstractSwRenameXNamedDlg_Impl(std::unique_ptr<SwRenameXNamedDlg> p)400     explicit AbstractSwRenameXNamedDlg_Impl(std::unique_ptr<SwRenameXNamedDlg> p)
401         : m_xDlg(std::move(p))
402     {
403     }
404     virtual short Execute() override;
405     virtual void SetForbiddenChars( const OUString& rSet ) override;
406     virtual void SetAlternativeAccess(
407              css::uno::Reference< css::container::XNameAccess > & xSecond,
408              css::uno::Reference< css::container::XNameAccess > & xThird ) override;
409 };
410 
411 class AbstractSwModalRedlineAcceptDlg_Impl : public AbstractSwModalRedlineAcceptDlg
412 {
413     std::unique_ptr<SwModalRedlineAcceptDlg> m_xDlg;
414 public:
AbstractSwModalRedlineAcceptDlg_Impl(std::unique_ptr<SwModalRedlineAcceptDlg> p)415     explicit AbstractSwModalRedlineAcceptDlg_Impl(std::unique_ptr<SwModalRedlineAcceptDlg> p)
416         : m_xDlg(std::move(p))
417     {
418     }
419     virtual short Execute() override;
420     virtual void AcceptAll(bool bAccept) override;
421 };
422 
423 class SwGlossaryDlg;
424 class AbstractGlossaryDlg_Impl : public AbstractGlossaryDlg
425 {
426     std::unique_ptr<SwGlossaryDlg> m_xDlg;
427 public:
AbstractGlossaryDlg_Impl(std::unique_ptr<SwGlossaryDlg> p)428     explicit AbstractGlossaryDlg_Impl(std::unique_ptr<SwGlossaryDlg> p)
429         : m_xDlg(std::move(p))
430     {
431     }
432     virtual short Execute() override;
433     virtual OUString        GetCurrGrpName() const override;
434     virtual OUString        GetCurrShortName() const override;
435 };
436 
437 class SwFieldInputDlg;
438 class AbstractFieldInputDlg_Impl : public AbstractFieldInputDlg
439 {
440     std::unique_ptr<SwFieldInputDlg> m_xDlg;
441 public:
AbstractFieldInputDlg_Impl(std::unique_ptr<SwFieldInputDlg> p)442     explicit AbstractFieldInputDlg_Impl(std::unique_ptr<SwFieldInputDlg> p)
443         : m_xDlg(std::move(p))
444     {
445     }
446     virtual short Execute() override;
447     virtual void          EndDialog(sal_Int32) override;
448     virtual bool          PrevButtonPressed() const override;
449     virtual bool          NextButtonPressed() const override;
450 };
451 
452 class SwInsFootNoteDlg;
453 class AbstractInsFootNoteDlg_Impl : public AbstractInsFootNoteDlg
454 {
455     std::unique_ptr<SwInsFootNoteDlg> m_xDlg;
456 public:
AbstractInsFootNoteDlg_Impl(std::unique_ptr<SwInsFootNoteDlg> p)457     explicit AbstractInsFootNoteDlg_Impl(std::unique_ptr<SwInsFootNoteDlg> p)
458         : m_xDlg(std::move(p))
459     {
460     }
461     virtual short Execute() override;
462     virtual OUString        GetFontName() override;
463     virtual bool            IsEndNote() override;
464     virtual OUString        GetStr() override;
465     //from class Window
466     virtual void    SetHelpId( const OString& sHelpId ) override;
467     virtual void    SetText( const OUString& rStr ) override;
468 };
469 
470 class SwInsTableDlg;
471 class AbstractInsTableDlg_Impl : public AbstractInsTableDlg
472 {
473 protected:
474     std::shared_ptr<weld::DialogController> m_xDlg;
475 public:
AbstractInsTableDlg_Impl(std::shared_ptr<weld::DialogController> p)476     explicit AbstractInsTableDlg_Impl(std::shared_ptr<weld::DialogController> p)
477         : m_xDlg(p)
478     {
479     }
480     virtual void  GetValues( OUString& rName, sal_uInt16& rRow, sal_uInt16& rCol,
481                              SwInsertTableOptions& rInsTableFlags, OUString& rTableAutoFormatName,
482                              std::unique_ptr<SwTableAutoFormat>& prTAFormat ) override;
getDialogController()483     virtual std::shared_ptr<weld::DialogController> getDialogController() override { return m_xDlg; }
484 };
485 
486 class SwJavaEditDialog;
487 class AbstractJavaEditDialog_Impl : public AbstractJavaEditDialog
488 {
489     std::unique_ptr<SwJavaEditDialog> m_xDlg;
490 public:
AbstractJavaEditDialog_Impl(std::unique_ptr<SwJavaEditDialog> p)491     explicit AbstractJavaEditDialog_Impl(std::unique_ptr<SwJavaEditDialog> p)
492         : m_xDlg(std::move(p))
493     {
494     }
495     virtual short Execute() override;
496     virtual OUString            GetScriptText() const override;
497     virtual OUString            GetScriptType() const override;
498     virtual bool                IsUrl() const override;
499     virtual bool                IsNew() const override;
500     virtual bool                IsUpdate() const override;
501 };
502 
503 class SwMailMergeDlg;
504 class AbstractMailMergeDlg_Impl : public AbstractMailMergeDlg
505 {
506     std::unique_ptr<SwMailMergeDlg> m_xDlg;
507 public:
AbstractMailMergeDlg_Impl(std::unique_ptr<SwMailMergeDlg> p)508     explicit AbstractMailMergeDlg_Impl(std::unique_ptr<SwMailMergeDlg> p)
509         : m_xDlg(std::move(p))
510     {
511     }
512     virtual short Execute() override;
513     virtual DBManagerOptions GetMergeType() override ;
514     virtual const OUString& GetSaveFilter() const override;
515     virtual css::uno::Sequence< css::uno::Any > GetSelection() const override ;
516     virtual css::uno::Reference< css::sdbc::XResultSet> GetResultSet() const override;
517     virtual bool IsSaveSingleDoc() const override;
518     virtual bool IsGenerateFromDataBase() const override;
519     virtual bool IsFileEncryptedFromDataBase() const override;
520     virtual OUString GetColumnName() const override;
521     virtual OUString GetPasswordColumnName() const override;
522     virtual OUString GetTargetURL() const override;
523 };
524 
525 class SwMailMergeCreateFromDlg;
526 class AbstractMailMergeCreateFromDlg_Impl : public AbstractMailMergeCreateFromDlg
527 {
528     std::unique_ptr<SwMailMergeCreateFromDlg> m_xDlg;
529 public:
AbstractMailMergeCreateFromDlg_Impl(std::unique_ptr<SwMailMergeCreateFromDlg> p)530     explicit AbstractMailMergeCreateFromDlg_Impl(std::unique_ptr<SwMailMergeCreateFromDlg> p)
531         : m_xDlg(std::move(p))
532     {
533     }
534     virtual short Execute() override;
535     virtual bool    IsThisDocument() const override ;
536 };
537 
538 class SwMailMergeFieldConnectionsDlg;
539 class AbstractMailMergeFieldConnectionsDlg_Impl : public AbstractMailMergeFieldConnectionsDlg
540 {
541     std::unique_ptr<SwMailMergeFieldConnectionsDlg> m_xDlg;
542 public:
AbstractMailMergeFieldConnectionsDlg_Impl(std::unique_ptr<SwMailMergeFieldConnectionsDlg> p)543     explicit AbstractMailMergeFieldConnectionsDlg_Impl(std::unique_ptr<SwMailMergeFieldConnectionsDlg> p)
544         : m_xDlg(std::move(p))
545     {
546     }
547     virtual short Execute() override;
548     virtual bool IsUseExistingConnections() const override ;
549 };
550 
551 class SwMultiTOXTabDialog;
552 class AbstractMultiTOXTabDialog_Impl : public AbstractMultiTOXTabDialog
553 {
554 protected:
555     std::shared_ptr<SwMultiTOXTabDialog> m_xDlg;
556 public:
AbstractMultiTOXTabDialog_Impl(std::shared_ptr<SwMultiTOXTabDialog> p)557     explicit AbstractMultiTOXTabDialog_Impl(std::shared_ptr<SwMultiTOXTabDialog> p)
558         : m_xDlg(std::move(p))
559     {
560     }
561     virtual short Execute() override;
562     virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
563     virtual CurTOXType          GetCurrentTOXType() const override ;
564     virtual SwTOXDescription&   GetTOXDescription(CurTOXType eTOXTypes) override;
565     //from SfxTabDialog
566     virtual const SfxItemSet*   GetOutputItemSet() const override;
567 };
568 
569 class SwEditRegionDlg;
570 class AbstractEditRegionDlg_Impl : public AbstractEditRegionDlg
571 {
572     std::shared_ptr<SwEditRegionDlg> m_xDlg;
573 public:
AbstractEditRegionDlg_Impl(std::shared_ptr<SwEditRegionDlg> p)574     explicit AbstractEditRegionDlg_Impl(std::shared_ptr<SwEditRegionDlg> p)
575         : m_xDlg(std::move(p))
576     {
577     }
578     virtual short Execute() override;
579     virtual void    SelectSection(const OUString& rSectionName) override;
580 };
581 
582 class SwInsertSectionTabDialog;
583 class AbstractInsertSectionTabDialog_Impl : public AbstractInsertSectionTabDialog
584 {
585     std::shared_ptr<SwInsertSectionTabDialog> m_xDlg;
586 public:
AbstractInsertSectionTabDialog_Impl(std::shared_ptr<SwInsertSectionTabDialog> p)587     explicit AbstractInsertSectionTabDialog_Impl(std::shared_ptr<SwInsertSectionTabDialog> p)
588         : m_xDlg(std::move(p))
589     {
590     }
591     virtual short Execute() override;
592     virtual bool StartExecuteAsync(AsyncContext &rCtx) override;
593     virtual void SetSectionData(SwSectionData const& rSect) override;
594 };
595 
596 class SwIndexMarkFloatDlg;
597 class AbstractIndexMarkFloatDlg_Impl : public AbstractMarkFloatDlg
598 {
599     std::shared_ptr<SwIndexMarkFloatDlg> m_xDlg;
600 public:
AbstractIndexMarkFloatDlg_Impl(std::shared_ptr<SwIndexMarkFloatDlg> p)601     explicit AbstractIndexMarkFloatDlg_Impl(std::shared_ptr<SwIndexMarkFloatDlg> p)
602         : m_xDlg(std::move(p))
603     {
604     }
605     virtual short Execute() override;
606     virtual void ReInitDlg(SwWrtShell& rWrtShell) override;
607     virtual std::shared_ptr<SfxDialogController> GetController() override;
608 };
609 
610 class SwAuthMarkFloatDlg;
611 class AbstractAuthMarkFloatDlg_Impl : public AbstractMarkFloatDlg
612 {
613     std::shared_ptr<SwAuthMarkFloatDlg> m_xDlg;
614 public:
AbstractAuthMarkFloatDlg_Impl(std::shared_ptr<SwAuthMarkFloatDlg> p)615     explicit AbstractAuthMarkFloatDlg_Impl(std::shared_ptr<SwAuthMarkFloatDlg> p)
616         : m_xDlg(std::move(p))
617     {
618     }
619     virtual short Execute() override;
620     virtual void ReInitDlg(SwWrtShell& rWrtShell) override;
621     virtual std::shared_ptr<SfxDialogController> GetController() override;
622 };
623 
624 class SwMailMergeWizard;
625 class AbstractMailMergeWizard_Impl : public AbstractMailMergeWizard
626 {
627     std::shared_ptr<SwMailMergeWizard> m_xDlg;
628 
629 public:
AbstractMailMergeWizard_Impl(std::shared_ptr<SwMailMergeWizard> p)630     explicit AbstractMailMergeWizard_Impl(std::shared_ptr<SwMailMergeWizard> p)
631         : m_xDlg(std::move(p))
632     {
633     }
634     virtual         ~AbstractMailMergeWizard_Impl() override;
635     virtual bool    StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
636     virtual short   Execute() override;
637 
638     virtual OUString            GetReloadDocument() const override;
639     virtual void                ShowPage( sal_uInt16 nLevel ) override;
640     virtual sal_uInt16          GetRestartPage() const override;
641 };
642 
643 //AbstractDialogFactory_Impl implementations
644 class SwAbstractDialogFactory_Impl : public SwAbstractDialogFactory
645 {
646 
647 public:
~SwAbstractDialogFactory_Impl()648     virtual ~SwAbstractDialogFactory_Impl() {}
649 
650     virtual VclPtr<SfxAbstractDialog> CreateNumFormatDialog(weld::Widget* pParent, const SfxItemSet& rAttr) override;
651     virtual VclPtr<SfxAbstractDialog> CreateSwDropCapsDialog(weld::Window* pParent, const SfxItemSet& rSet) override;
652     virtual VclPtr<SfxAbstractDialog> CreateSwBackgroundDialog(weld::Window* pParent, const SfxItemSet& rSet) override;
653     virtual VclPtr<AbstractSwWordCountFloatDlg> CreateSwWordCountDialog(SfxBindings* pBindings,
654         SfxChildWindow* pChild, weld::Window *pParent, SfxChildWinInfo* pInfo) override;
655     virtual VclPtr<AbstractSwInsertAbstractDlg> CreateSwInsertAbstractDlg(weld::Window* pParent) override;
656     virtual VclPtr<SfxAbstractDialog> CreateSwAddressAbstractDlg(weld::Window* pParent, const SfxItemSet& rSet) override;
657     virtual VclPtr<AbstractSwAsciiFilterDlg>  CreateSwAsciiFilterDlg(weld::Window* pParent, SwDocShell& rDocSh,
658                                                                 SvStream* pStream) override;
659     virtual VclPtr<VclAbstractDialog> CreateSwInsertBookmarkDlg(weld::Window *pParent, SwWrtShell &rSh) override;
660     virtual std::shared_ptr<AbstractSwBreakDlg> CreateSwBreakDlg(weld::Window *pParent, SwWrtShell &rSh) override;
661     virtual VclPtr<VclAbstractDialog> CreateSwChangeDBDlg(SwView& rVw) override;
662     virtual VclPtr<SfxAbstractTabDialog>  CreateSwCharDlg(weld::Window* pParent, SwView& pVw, const SfxItemSet& rCoreSet,
663         SwCharDlgMode nDialogMode, const OUString* pFormatStr = nullptr) override;
664     virtual VclPtr<AbstractSwConvertTableDlg> CreateSwConvertTableDlg(SwView& rView, bool bToTable) override;
665     virtual VclPtr<VclAbstractDialog> CreateSwCaptionDialog(weld::Window *pParent, SwView &rV) override;
666     virtual VclPtr<AbstractSwInsertDBColAutoPilot> CreateSwInsertDBColAutoPilot(SwView& rView,
667         css::uno::Reference< css::sdbc::XDataSource> rxSource,
668         css::uno::Reference<css::sdbcx::XColumnsSupplier> xColSupp,
669         const SwDBData& rData) override;
670     virtual VclPtr<SfxAbstractTabDialog> CreateSwFootNoteOptionDlg(weld::Window *pParent, SwWrtShell &rSh) override;
671 
672     virtual VclPtr<AbstractDropDownFieldDialog> CreateDropDownFieldDialog(weld::Widget* pParent, SwWrtShell &rSh,
673         SwField* pField, bool bPrevButton, bool bNextButton) override;
674     virtual VclPtr<VclAbstractDialog> CreateDropDownFormFieldDialog(weld::Widget* pParent, sw::mark::IFieldmark* pDropDownField) override;
675     virtual VclPtr<VclAbstractDialog> CreateDateFormFieldDialog(weld::Widget* pParent, sw::mark::IDateFieldmark* pDateField, SwDoc& rDoc) override;
676 
677     virtual VclPtr<SfxAbstractTabDialog> CreateSwEnvDlg(weld::Window* pParent, const SfxItemSet& rSet, SwWrtShell* pWrtSh, Printer* pPrt, bool bInsert) override;
678     virtual VclPtr<AbstractSwLabDlg> CreateSwLabDlg(weld::Window* pParent, const SfxItemSet& rSet,
679                                                      SwDBManager* pDBManager, bool bLabel) override;
680 
681     virtual SwLabDlgMethod GetSwLabDlgStaticMethod () override;
682     virtual VclPtr<SfxAbstractTabDialog> CreateSwParaDlg(weld::Window *pParent,
683                                                     SwView& rVw,
684                                                     const SfxItemSet& rCoreSet,
685                                                     bool bDraw,
686                                                     const OString& sDefPage = OString()) override;
687 
688     virtual VclPtr<VclAbstractDialog> CreateSwAutoMarkDialog(weld::Window *pParent, SwWrtShell &rSh) override;
689     virtual VclPtr<AbstractSwSelGlossaryDlg> CreateSwSelGlossaryDlg(weld::Window *pParent, const OUString &rShortName) override;
690     virtual VclPtr<VclAbstractDialog> CreateSwSortingDialog(weld::Window *pParent, SwWrtShell &rSh) override;
691     virtual VclPtr<VclAbstractDialog> CreateSwTableHeightDialog(weld::Window *pParent, SwWrtShell &rSh) override;
692     virtual VclPtr<VclAbstractDialog> CreateSwColumnDialog(weld::Window *pParent, SwWrtShell &rSh) override;
693     virtual VclPtr<AbstractSplitTableDialog> CreateSplitTableDialog(weld::Window* pParent, SwWrtShell &rSh) override;
694 
695     virtual VclPtr<AbstractSwAutoFormatDlg> CreateSwAutoFormatDlg(weld::Window* pParent, SwWrtShell* pShell,
696                                                                   bool bSetAutoFormat = true,
697                                                                   const SwTableAutoFormat* pSelFormat = nullptr) override;
698     virtual VclPtr<SfxAbstractDialog> CreateSwBorderDlg(weld::Window* pParent, SfxItemSet& rSet, SwBorderModes nType) override;
699 
700     virtual VclPtr<SfxAbstractDialog> CreateSwWrapDlg(weld::Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh) override;
701     virtual VclPtr<VclAbstractDialog> CreateSwTableWidthDlg(weld::Window *pParent, SwTableFUNC &rFnc) override;
702     virtual VclPtr<SfxAbstractTabDialog> CreateSwTableTabDlg(weld::Window* pParent,
703         const SfxItemSet* pItemSet, SwWrtShell* pSh) override;
704     virtual VclPtr<AbstractSwFieldDlg> CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, weld::Window *pParent) override;
705     virtual VclPtr<SfxAbstractDialog>   CreateSwFieldEditDlg ( SwView& rVw ) override;
706     virtual VclPtr<AbstractSwRenameXNamedDlg> CreateSwRenameXNamedDlg(weld::Widget* pParent,
707         css::uno::Reference< css::container::XNamed > & xNamed,
708         css::uno::Reference< css::container::XNameAccess > & xNameAccess) override;
709     virtual VclPtr<AbstractSwModalRedlineAcceptDlg> CreateSwModalRedlineAcceptDlg(weld::Window *pParent) override;
710 
711     virtual VclPtr<VclAbstractDialog>          CreateTableMergeDialog(weld::Window* pParent, bool& rWithPrev) override;
712     virtual VclPtr<SfxAbstractTabDialog>       CreateFrameTabDialog( const OUString &rDialogType,
713                                                 SfxViewFrame *pFrame, weld::Window *pParent,
714                                                 const SfxItemSet& rCoreSet,
715                                                 bool bNewFrame  = true,
716                                                 const OString& sDefPage = OString()) override;
717     virtual VclPtr<SfxAbstractApplyTabDialog>  CreateTemplateDialog(
718                                                 weld::Window *pParent,
719                                                 SfxStyleSheetBase&  rBase,
720                                                 SfxStyleFamily      nRegion,
721                                                 const OString&      sPage,
722                                                 SwWrtShell*         pActShell,
723                                                 bool                bNew) override;
724     virtual VclPtr<AbstractGlossaryDlg>        CreateGlossaryDlg(SfxViewFrame* pViewFrame,
725                                                 SwGlossaryHdl* pGlosHdl,
726                                                 SwWrtShell *pWrtShell) override;
727     virtual VclPtr<AbstractFieldInputDlg>        CreateFieldInputDlg(weld::Widget *pParent,
728         SwWrtShell &rSh, SwField* pField, bool bPrevButton, bool bNextButton) override;
729     virtual VclPtr<AbstractInsFootNoteDlg>     CreateInsFootNoteDlg(
730         weld::Window * pParent, SwWrtShell &rSh, bool bEd = false) override;
731     virtual VclPtr<VclAbstractDialog>         CreateTitlePageDlg(weld::Window* pParent) override;
732     virtual VclPtr<VclAbstractDialog>         CreateVclSwViewDialog(SwView& rView) override;
733     virtual std::shared_ptr<AbstractInsTableDlg> CreateInsTableDlg(SwView& rView) override;
734     virtual VclPtr<AbstractJavaEditDialog>     CreateJavaEditDialog(weld::Window* pParent,
735         SwWrtShell* pWrtSh) override;
736     virtual VclPtr<AbstractMailMergeDlg>       CreateMailMergeDlg(
737                                                 weld::Window* pParent, SwWrtShell& rSh,
738                                                 const OUString& rSourceName,
739                                                 const OUString& rTableName,
740                                                 sal_Int32 nCommandType,
741                                                 const css::uno::Reference< css::sdbc::XConnection>& xConnection ) override;
742     virtual VclPtr<AbstractMailMergeCreateFromDlg>     CreateMailMergeCreateFromDlg(weld::Window* pParent) override;
743     virtual VclPtr<AbstractMailMergeFieldConnectionsDlg> CreateMailMergeFieldConnectionsDlg(weld::Window* pParent) override;
744     virtual VclPtr<VclAbstractDialog>          CreateMultiTOXMarkDlg(weld::Window* pParent, SwTOXMgr &rTOXMgr) override;
745     virtual VclPtr<SfxAbstractTabDialog>       CreateOutlineTabDialog(weld::Window* pParent, const SfxItemSet* pSwItemSet,
746                                                 SwWrtShell &) override;
747     virtual VclPtr<SfxAbstractTabDialog>       CreateSvxNumBulletTabDialog(weld::Window* pParent,
748                                                 const SfxItemSet* pSwItemSet,
749                                                 SwWrtShell &) override;
750     virtual VclPtr<AbstractMultiTOXTabDialog>  CreateMultiTOXTabDialog(
751                                                 weld::Widget* pParent, const SfxItemSet& rSet,
752                                                 SwWrtShell &rShell,
753                                                 SwTOXBase* pCurTOX,
754                                                 bool bGlobal) override;
755     virtual VclPtr<AbstractEditRegionDlg>      CreateEditRegionDlg(weld::Window* pParent, SwWrtShell& rWrtSh) override;
756     virtual VclPtr<AbstractInsertSectionTabDialog>     CreateInsertSectionTabDialog(
757         weld::Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh) override;
758     virtual VclPtr<AbstractMarkFloatDlg>       CreateIndexMarkFloatDlg(
759                                                        SfxBindings* pBindings,
760                                                        SfxChildWindow* pChild,
761                                                        weld::Window *pParent,
762                                                        SfxChildWinInfo* pInfo) override;
763     virtual VclPtr<AbstractMarkFloatDlg>       CreateAuthMarkFloatDlg(
764                                                        SfxBindings* pBindings,
765                                                        SfxChildWindow* pChild,
766                                                        weld::Window *pParent,
767                                                        SfxChildWinInfo* pInfo) override;
768     virtual VclPtr<VclAbstractDialog>         CreateIndexMarkModalDlg(
769                                                 weld::Window *pParent, SwWrtShell& rSh, SwTOXMark* pCurTOXMark ) override;
770 
771     virtual VclPtr<AbstractMailMergeWizard>    CreateMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeConfigItem>& rConfigItem) override;
772 
773     virtual GlossaryGetCurrGroup        GetGlossaryCurrGroupFunc() override;
774     virtual GlossarySetActGroup         SetGlossaryActGroupFunc() override;
775 
776     // For TabPage
777     virtual CreateTabPage               GetTabPageCreatorFunc( sal_uInt16 nId ) override;
778 
779     virtual void ExecuteMMResultSaveDialog(weld::Window* pParent) override;
780     virtual void ExecuteMMResultPrintDialog(weld::Window* pParent) override;
781     virtual void ExecuteMMResultEmailDialog(weld::Window* pParent) override;
782 };
783 
784 #endif
785 
786 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
787