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 #pragma once
20 
21 #include <scabstdlg.hxx>
22 #include <sfx2/sfxdlg.hxx>
23 
24 #include <corodlg.hxx>
25 #include <condformatmgr.hxx>
26 #include <dapitype.hxx>
27 #include <dapidata.hxx>
28 #include <datafdlg.hxx>
29 #include <delcodlg.hxx>
30 #include <delcldlg.hxx>
31 #include <dpgroupdlg.hxx>
32 #include <filldlg.hxx>
33 #include <groupdlg.hxx>
34 #include <linkarea.hxx>
35 #include <lbseldlg.hxx>
36 #include <inscldlg.hxx>
37 #include <instbdlg.hxx>
38 #include <inscodlg.hxx>
39 #include <mtrindlg.hxx>
40 #include <mvtabdlg.hxx>
41 #include <namecrea.hxx>
42 #include <namepast.hxx>
43 #include <pfiltdlg.hxx>
44 #include <pvfundlg.hxx>
45 #include <shtabdlg.hxx>
46 #include <scendlg.hxx>
47 #include <scuiasciiopt.hxx>
48 #include <scuiautofmt.hxx>
49 #include <scuiimoptdlg.hxx>
50 #include <sortdlg.hxx>
51 #include <strindlg.hxx>
52 #include <tabbgcolordlg.hxx>
53 #include <textimportoptions.hxx>
54 
55 #define DECL_ABSTDLG_BASE(Class,DialogClass)        \
56     ScopedVclPtr<DialogClass> pDlg;                 \
57 public:                                             \
58     explicit        Class( DialogClass* p)          \
59                      : pDlg(p)                      \
60                      {}                             \
61     virtual         ~Class() override;                       \
62     virtual short   Execute() override ;            \
63     virtual bool    StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override; \
64     std::vector<OString> getAllPageUIXMLDescriptions() const override; \
65     bool selectPageByUIXMLDescription(const OString& rUIXMLDescription) override; \
66     virtual BitmapEx createScreenshot() const override; \
67     virtual OString GetScreenshotId() const override; \
68 
69 #define IMPL_ABSTDLG_BASE(Class)                    \
70 Class::~Class()                                     \
71 {                                                   \
72 }                                                   \
73 short Class::Execute()                              \
74 {                                                   \
75     return pDlg->Execute();                         \
76 }                                                   \
77 bool Class::StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx)\
78 { \
79     return pDlg->StartExecuteAsync( rCtx ); \
80 } \
81 std::vector<OString> Class::getAllPageUIXMLDescriptions() const \
82 {                                                   \
83     return pDlg->getAllPageUIXMLDescriptions();     \
84 }                                                   \
85 bool Class::selectPageByUIXMLDescription(const OString& rUIXMLDescription) \
86 {                                                   \
87    return pDlg->selectPageByUIXMLDescription(rUIXMLDescription);  \
88 }                                                   \
89 BitmapEx Class::createScreenshot() const            \
90 {                                                   \
91     VclPtr<VirtualDevice> xDialogSurface(VclPtr<VirtualDevice>::Create(DeviceFormat::DEFAULT)); \
92     pDlg->createScreenshot(*xDialogSurface);        \
93     return xDialogSurface->GetBitmapEx(Point(), xDialogSurface->GetOutputSizePixel()); \
94 }                                                   \
95 OString Class::GetScreenshotId() const              \
96 {                                                   \
97     return pDlg->GetScreenshotId();                 \
98 }
99 
100 class AbstractScImportAsciiDlg_Impl : public AbstractScImportAsciiDlg
101 {
102     std::shared_ptr<ScImportAsciiDlg> m_xDlg;
103 public:
AbstractScImportAsciiDlg_Impl(std::shared_ptr<ScImportAsciiDlg> p)104     explicit AbstractScImportAsciiDlg_Impl(std::shared_ptr<ScImportAsciiDlg> p)
105         : m_xDlg(std::move(p))
106     {
107     }
108     virtual short Execute() override;
109     virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
110     virtual void                        GetOptions( ScAsciiOptions& rOpt ) override;
111     virtual void                        SaveParameters() override;
112 
113     // screenshotting
114     virtual BitmapEx createScreenshot() const override;
115     virtual OString GetScreenshotId() const override;
116 };
117 
118 class AbstractScAutoFormatDlg_Impl : public AbstractScAutoFormatDlg
119 {
120     std::unique_ptr<ScAutoFormatDlg> m_xDlg;
121 public:
AbstractScAutoFormatDlg_Impl(std::unique_ptr<ScAutoFormatDlg> p)122     explicit AbstractScAutoFormatDlg_Impl(std::unique_ptr<ScAutoFormatDlg> p)
123         : m_xDlg(std::move(p))
124     {
125     }
126     virtual short Execute() override;
127     virtual sal_uInt16 GetIndex() const override;
128     virtual OUString GetCurrFormatName() override;
129 };
130 
131 class AbstractScColRowLabelDlg_Impl : public AbstractScColRowLabelDlg
132 {
133     std::unique_ptr<ScColRowLabelDlg> m_xDlg;
134 public:
AbstractScColRowLabelDlg_Impl(std::unique_ptr<ScColRowLabelDlg> p)135     explicit AbstractScColRowLabelDlg_Impl(std::unique_ptr<ScColRowLabelDlg> p)
136         : m_xDlg(std::move(p))
137     {
138     }
139     virtual short Execute() override;
140     virtual bool IsCol() override;
141     virtual bool IsRow() override;
142 
143     // screenshotting
144     virtual BitmapEx createScreenshot() const override;
145     virtual OString GetScreenshotId() const override;
146 };
147 
148 class AbstractScCondFormatManagerDlg_Impl : public AbstractScCondFormatManagerDlg
149 {
150     std::shared_ptr<ScCondFormatManagerDlg> m_xDlg;
151 public:
AbstractScCondFormatManagerDlg_Impl(std::shared_ptr<ScCondFormatManagerDlg> p)152     explicit AbstractScCondFormatManagerDlg_Impl(std::shared_ptr<ScCondFormatManagerDlg> p)
153         : m_xDlg(std::move(p))
154     {
155     }
156     virtual short Execute() override;
157     virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
158     virtual std::unique_ptr<ScConditionalFormatList> GetConditionalFormatList() override;
159     virtual bool CondFormatsChanged() const override;
160     virtual void SetModified() override;
161     virtual ScConditionalFormat* GetCondFormatSelected() override;
162 };
163 
164 class AbstractScDataPilotDatabaseDlg_Impl  :public AbstractScDataPilotDatabaseDlg
165 {
166     std::shared_ptr<ScDataPilotDatabaseDlg> m_xDlg;
167 public:
AbstractScDataPilotDatabaseDlg_Impl(std::shared_ptr<ScDataPilotDatabaseDlg> p)168     explicit AbstractScDataPilotDatabaseDlg_Impl(std::shared_ptr<ScDataPilotDatabaseDlg> p)
169         : m_xDlg(std::move(p))
170     {
171     }
172     virtual short Execute() override;
173     virtual bool StartExecuteAsync(AsyncContext &) override;
174     virtual void GetValues( ScImportSourceDesc& rDesc ) override;
175 
176     // screenshotting
177     virtual BitmapEx createScreenshot() const override;
178     virtual OString GetScreenshotId() const override;
179 };
180 
181 class AbstractScDataPilotSourceTypeDlg_Impl  :public AbstractScDataPilotSourceTypeDlg
182 {
183     std::shared_ptr<ScDataPilotSourceTypeDlg> m_xDlg;
184 public:
AbstractScDataPilotSourceTypeDlg_Impl(std::shared_ptr<ScDataPilotSourceTypeDlg> p)185     explicit AbstractScDataPilotSourceTypeDlg_Impl(std::shared_ptr<ScDataPilotSourceTypeDlg> p)
186         : m_xDlg(std::move(p))
187     {
188     }
189     virtual short Execute() override;
190     virtual bool StartExecuteAsync(AsyncContext &) override;
191     virtual bool IsDatabase() const override;
192     virtual bool IsExternal() const override;
193     virtual bool IsNamedRange() const override;
194     virtual OUString GetSelectedNamedRange() const override;
195     virtual void AppendNamedRange(const OUString& rName) override;
196 
197     // screenshotting
198     virtual BitmapEx createScreenshot() const override;
199     virtual OString GetScreenshotId() const override;
200 };
201 
202 class AbstractScDataPilotServiceDlg_Impl : public AbstractScDataPilotServiceDlg
203 {
204     std::shared_ptr<ScDataPilotServiceDlg> m_xDlg;
205 public:
AbstractScDataPilotServiceDlg_Impl(std::shared_ptr<ScDataPilotServiceDlg> p)206     explicit AbstractScDataPilotServiceDlg_Impl(std::shared_ptr<ScDataPilotServiceDlg> p)
207         : m_xDlg(std::move(p))
208     {
209     }
210     virtual short     Execute() override;
211     virtual bool StartExecuteAsync(AsyncContext &) override;
212     virtual OUString  GetServiceName() const override;
213     virtual OUString  GetParSource() const override;
214     virtual OUString  GetParName() const override;
215     virtual OUString  GetParUser() const override;
216     virtual OUString  GetParPass() const override;
217 };
218 
219 class AbstractScDeleteCellDlg_Impl : public AbstractScDeleteCellDlg
220 {
221     std::unique_ptr<ScDeleteCellDlg> m_xDlg;
222 public:
AbstractScDeleteCellDlg_Impl(std::unique_ptr<ScDeleteCellDlg> p)223     explicit AbstractScDeleteCellDlg_Impl(std::unique_ptr<ScDeleteCellDlg> p)
224         : m_xDlg(std::move(p))
225     {
226     }
227     virtual short           Execute() override;
228     virtual DelCellCmd GetDelCellCmd() const override;
229 
230     // screenshotting
231     virtual BitmapEx createScreenshot() const override;
232     virtual OString GetScreenshotId() const override;
233 };
234 
235 //for dataform
236 class AbstractScDataFormDlg_Impl : public AbstractScDataFormDlg
237 {
238     std::unique_ptr<ScDataFormDlg> m_xDlg;
239 public:
AbstractScDataFormDlg_Impl(std::unique_ptr<ScDataFormDlg> p)240     explicit AbstractScDataFormDlg_Impl(std::unique_ptr<ScDataFormDlg> p)
241         : m_xDlg(std::move(p))
242     {
243     }
244     virtual short Execute() override;
245 
246     // screenshotting
247     virtual BitmapEx createScreenshot() const override;
248     virtual OString GetScreenshotId() const override;
249 };
250 
251 class AbstractScDeleteContentsDlg_Impl : public AbstractScDeleteContentsDlg
252 {
253     std::unique_ptr<ScDeleteContentsDlg> m_xDlg;
254 public:
AbstractScDeleteContentsDlg_Impl(std::unique_ptr<ScDeleteContentsDlg> p)255     explicit AbstractScDeleteContentsDlg_Impl(std::unique_ptr<ScDeleteContentsDlg> p)
256         : m_xDlg(std::move(p))
257     {
258     }
259     virtual short   Execute() override;
260     virtual void    DisableObjects() override;
261     virtual InsertDeleteFlags GetDelContentsCmdBits() const override;
262 
263     // screenshotting
264     virtual BitmapEx createScreenshot() const override;
265     virtual OString GetScreenshotId() const override;
266 };
267 
268 class AbstractScFillSeriesDlg_Impl:public AbstractScFillSeriesDlg
269 {
270     std::unique_ptr<ScFillSeriesDlg> m_xDlg;
271 public:
AbstractScFillSeriesDlg_Impl(std::unique_ptr<ScFillSeriesDlg> p)272     explicit AbstractScFillSeriesDlg_Impl(std::unique_ptr<ScFillSeriesDlg> p)
273         : m_xDlg(std::move(p))
274     {
275     }
276     virtual short       Execute() override;
277     virtual FillDir     GetFillDir() const override;
278     virtual FillCmd     GetFillCmd() const override;
279     virtual FillDateCmd GetFillDateCmd() const override;
280     virtual double      GetStart() const override;
281     virtual double      GetStep() const override;
282     virtual double      GetMax() const override;
283     virtual OUString    GetStartStr() const override;
284     virtual void        SetEdStartValEnabled(bool bFlag) override;
285 };
286 
287 class AbstractScGroupDlg_Impl :  public AbstractScGroupDlg
288 {
289     std::shared_ptr<ScGroupDlg> m_xDlg;
290 public:
AbstractScGroupDlg_Impl(std::shared_ptr<ScGroupDlg> p)291     explicit AbstractScGroupDlg_Impl(std::shared_ptr<ScGroupDlg> p)
292         : m_xDlg(std::move(p))
293     {
294     }
295     virtual short Execute() override;
296     virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
297     virtual bool GetColsChecked() const override;
298 };
299 
300 class AbstractScInsertCellDlg_Impl : public AbstractScInsertCellDlg
301 {
302     std::unique_ptr<ScInsertCellDlg> m_xDlg;
303 public:
AbstractScInsertCellDlg_Impl(std::unique_ptr<ScInsertCellDlg> p)304     explicit AbstractScInsertCellDlg_Impl(std::unique_ptr<ScInsertCellDlg> p)
305         : m_xDlg(std::move(p))
306     {
307     }
308     virtual short           Execute() override;
309     virtual InsCellCmd GetInsCellCmd() const override ;
310 };
311 
312 class AbstractScInsertContentsDlg_Impl : public AbstractScInsertContentsDlg
313 {
314     std::unique_ptr<ScInsertContentsDlg> m_xDlg;
315 public:
AbstractScInsertContentsDlg_Impl(std::unique_ptr<ScInsertContentsDlg> p)316     explicit AbstractScInsertContentsDlg_Impl(std::unique_ptr<ScInsertContentsDlg> p)
317         : m_xDlg(std::move(p))
318     {
319     }
320     virtual short           Execute() override;
321     virtual InsertDeleteFlags GetInsContentsCmdBits() const override;
322     virtual ScPasteFunc   GetFormulaCmdBits() const override;
323     virtual bool        IsSkipEmptyCells() const override;
324     virtual bool        IsLink() const override;
325     virtual void        SetFillMode( bool bSet ) override;
326     virtual void        SetOtherDoc( bool bSet ) override;
327     virtual bool        IsTranspose() const override;
328     virtual void        SetChangeTrack( bool bSet ) override;
329     virtual void        SetCellShiftDisabled( CellShiftDisabledFlags nDisable ) override;
330     virtual InsCellCmd  GetMoveMode() override;
331 
332     // screenshotting
333     virtual BitmapEx createScreenshot() const override;
334     virtual OString GetScreenshotId() const override;
335 };
336 
337 class AbstractScInsertTableDlg_Impl : public AbstractScInsertTableDlg
338 {
339     std::unique_ptr<ScInsertTableDlg> m_xDlg;
340 public:
AbstractScInsertTableDlg_Impl(std::unique_ptr<ScInsertTableDlg> p)341     explicit AbstractScInsertTableDlg_Impl(std::unique_ptr<ScInsertTableDlg> p)
342         : m_xDlg(std::move(p))
343     {
344     }
345     virtual short           Execute() override;
346     virtual bool            GetTablesFromFile() override;
347     virtual bool            GetTablesAsLink() override;
348     virtual const OUString* GetFirstTable( sal_uInt16* pN = nullptr ) override;
349     virtual ScDocShell*     GetDocShellTables() override;
350     virtual bool            IsTableBefore() override;
351     virtual sal_uInt16      GetTableCount() override;
352     virtual const OUString* GetNextTable( sal_uInt16* pN ) override;
353 
354     // screenshotting
355     virtual BitmapEx createScreenshot() const override;
356     virtual OString GetScreenshotId() const override;
357 };
358 
359 class AbstractScSelEntryDlg_Impl : public AbstractScSelEntryDlg
360 {
361     std::unique_ptr<ScSelEntryDlg> m_xDlg;
362 public:
AbstractScSelEntryDlg_Impl(std::unique_ptr<ScSelEntryDlg> p)363     explicit AbstractScSelEntryDlg_Impl(std::unique_ptr<ScSelEntryDlg> p)
364         : m_xDlg(std::move(p))
365     {
366     }
367     virtual short    Execute() override;
368     virtual OUString GetSelectedEntry() const override;
369 };
370 
371 class AbstractScLinkedAreaDlg_Impl : public AbstractScLinkedAreaDlg
372 {
373     std::unique_ptr<ScLinkedAreaDlg> m_xDlg;
374 public:
AbstractScLinkedAreaDlg_Impl(std::unique_ptr<ScLinkedAreaDlg> p)375     explicit AbstractScLinkedAreaDlg_Impl(std::unique_ptr<ScLinkedAreaDlg> p)
376         : m_xDlg(std::move(p))
377     {
378     }
379     virtual                 ~AbstractScLinkedAreaDlg_Impl() override;
380     virtual short           Execute() override;
381     virtual void            InitFromOldLink( const OUString& rFile, const OUString& rFilter,
382                                         const OUString& rOptions, const OUString& rSource,
383                                         sal_uLong nRefresh ) override;
384     virtual OUString        GetURL() override;
385     virtual OUString        GetFilter() override;        // may be empty
386     virtual OUString        GetOptions() override;       // filter options
387     virtual OUString        GetSource() override;        // separated by ";"
388     virtual sal_uLong       GetRefresh() override;       // 0 if disabled
389 };
390 
391 class AbstractScMetricInputDlg_Impl : public AbstractScMetricInputDlg
392 {
393     std::unique_ptr<ScMetricInputDlg> m_xDlg;
394 public:
AbstractScMetricInputDlg_Impl(std::unique_ptr<ScMetricInputDlg> p)395     explicit AbstractScMetricInputDlg_Impl(std::unique_ptr<ScMetricInputDlg> p)
396         : m_xDlg(std::move(p))
397     {
398     }
399     virtual short Execute() override;
400     virtual int GetInputValue() const override;
401 };
402 
403 class AbstractScMoveTableDlg_Impl : public AbstractScMoveTableDlg
404 {
405     std::unique_ptr<ScMoveTableDlg> m_xDlg;
406 public:
AbstractScMoveTableDlg_Impl(std::unique_ptr<ScMoveTableDlg> p)407     explicit AbstractScMoveTableDlg_Impl(std::unique_ptr<ScMoveTableDlg> p)
408         : m_xDlg(std::move(p))
409     {
410     }
411     virtual short Execute() override;
412     virtual sal_uInt16  GetSelectedDocument     () const override;
413     virtual sal_uInt16  GetSelectedTable        () const override;
414     virtual bool    GetCopyTable            () const override;
415     virtual bool    GetRenameTable          () const override;
416     virtual void    GetTabNameString( OUString& rString ) const override;
417     virtual void    SetForceCopyTable       () override;
418     virtual void    EnableRenameTable       (bool bFlag) override;
419 
420     // screenshotting
421     virtual BitmapEx createScreenshot() const override;
422     virtual OString GetScreenshotId() const override;
423 };
424 
425 class AbstractScNameCreateDlg_Impl : public AbstractScNameCreateDlg
426 {
427     std::unique_ptr<ScNameCreateDlg> m_xDlg;
428 public:
AbstractScNameCreateDlg_Impl(std::unique_ptr<ScNameCreateDlg> p)429     explicit AbstractScNameCreateDlg_Impl(std::unique_ptr<ScNameCreateDlg> p)
430         : m_xDlg(std::move(p))
431     {
432     }
433     virtual short           Execute() override;
434     virtual CreateNameFlags GetFlags() const override;
435 
436     // screenshotting
437     virtual BitmapEx createScreenshot() const override;
438     virtual OString GetScreenshotId() const override;
439 };
440 
441 class AbstractScNamePasteDlg_Impl : public AbstractScNamePasteDlg
442 {
443     std::unique_ptr<ScNamePasteDlg> m_xDlg;
444 public:
AbstractScNamePasteDlg_Impl(std::unique_ptr<ScNamePasteDlg> p)445     explicit AbstractScNamePasteDlg_Impl(std::unique_ptr<ScNamePasteDlg> p)
446         : m_xDlg(std::move(p))
447     {
448     }
449     virtual short           Execute() override;
450     virtual std::vector<OUString>          GetSelectedNames() const override;
451 };
452 
453 class AbstractScPivotFilterDlg_Impl : public AbstractScPivotFilterDlg
454 {
455     std::unique_ptr<ScPivotFilterDlg> m_xDlg;
456 public:
AbstractScPivotFilterDlg_Impl(std::unique_ptr<ScPivotFilterDlg> p)457     explicit AbstractScPivotFilterDlg_Impl(std::unique_ptr<ScPivotFilterDlg> p)
458         : m_xDlg(std::move(p))
459     {
460     }
461     virtual short Execute() override;
462     virtual const ScQueryItem&  GetOutputItem() override;
463 };
464 
465 class AbstractScDPFunctionDlg_Impl : public AbstractScDPFunctionDlg
466 {
467     std::shared_ptr<ScDPFunctionDlg> m_xDlg;
468 public:
AbstractScDPFunctionDlg_Impl(std::shared_ptr<ScDPFunctionDlg> p)469     explicit AbstractScDPFunctionDlg_Impl(std::shared_ptr<ScDPFunctionDlg> p)
470         : m_xDlg(std::move(p))
471     {
472     }
473     virtual short           Execute() override;
474     virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
475     virtual PivotFunc GetFuncMask() const override;
476     virtual css::sheet::DataPilotFieldReference GetFieldRef() const override;
477     virtual void Response(int nResponse) override;
478 };
479 
480 class AbstractScDPSubtotalDlg_Impl : public AbstractScDPSubtotalDlg
481 {
482     std::shared_ptr<ScDPSubtotalDlg> m_xDlg;
483 public:
AbstractScDPSubtotalDlg_Impl(std::shared_ptr<ScDPSubtotalDlg> p)484     explicit AbstractScDPSubtotalDlg_Impl(std::shared_ptr<ScDPSubtotalDlg> p)
485         : m_xDlg(std::move(p))
486     {
487     }
488     virtual short           Execute() override;
489     virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
490     virtual PivotFunc GetFuncMask() const override;
491     virtual void FillLabelData( ScDPLabelData& rLabelData ) const override;
492     virtual void Response(int nResponse) override;
493 };
494 
495 class AbstractScDPNumGroupDlg_Impl : public AbstractScDPNumGroupDlg
496 {
497     std::unique_ptr<ScDPNumGroupDlg> m_xDlg;
498 public:
AbstractScDPNumGroupDlg_Impl(std::unique_ptr<ScDPNumGroupDlg> p)499     explicit AbstractScDPNumGroupDlg_Impl(std::unique_ptr<ScDPNumGroupDlg> p)
500         : m_xDlg(std::move(p))
501     {
502     }
503     virtual short Execute() override;
504     virtual ScDPNumGroupInfo GetGroupInfo() const override;
505 };
506 
507 class AbstractScDPDateGroupDlg_Impl : public AbstractScDPDateGroupDlg
508 {
509     std::unique_ptr<ScDPDateGroupDlg> m_xDlg;
510 public:
AbstractScDPDateGroupDlg_Impl(std::unique_ptr<ScDPDateGroupDlg> p)511     explicit AbstractScDPDateGroupDlg_Impl(std::unique_ptr<ScDPDateGroupDlg> p)
512         : m_xDlg(std::move(p))
513     {
514     }
515     virtual short Execute() override;
516     virtual ScDPNumGroupInfo GetGroupInfo() const override;
517     virtual sal_Int32 GetDatePart() const override;
518 };
519 
520 class AbstractScDPShowDetailDlg_Impl : public AbstractScDPShowDetailDlg
521 {
522     std::unique_ptr<ScDPShowDetailDlg> m_xDlg;
523 public:
AbstractScDPShowDetailDlg_Impl(std::unique_ptr<ScDPShowDetailDlg> p)524     explicit AbstractScDPShowDetailDlg_Impl(std::unique_ptr<ScDPShowDetailDlg> p)
525         : m_xDlg(std::move(p))
526     {
527     }
528     virtual short Execute() override;
529     virtual OUString GetDimensionName() const override;
530 };
531 
532 class AbstractScNewScenarioDlg_Impl : public AbstractScNewScenarioDlg
533 {
534     std::unique_ptr<ScNewScenarioDlg> m_xDlg;
535 public:
AbstractScNewScenarioDlg_Impl(std::unique_ptr<ScNewScenarioDlg> p)536     explicit AbstractScNewScenarioDlg_Impl(std::unique_ptr<ScNewScenarioDlg> p)
537         : m_xDlg(std::move(p))
538     {
539     }
540     virtual short           Execute() override;
541 
542     virtual void SetScenarioData( const OUString& rName, const OUString& rComment,
543                             const Color& rColor, ScScenarioFlags nFlags ) override;
544 
545     virtual void GetScenarioData( OUString& rName, OUString& rComment,
546                             Color& rColor, ScScenarioFlags& rFlags ) const override;
547 };
548 
549 class AbstractScShowTabDlg_Impl : public AbstractScShowTabDlg
550 {
551     std::shared_ptr<ScShowTabDlg> m_xDlg;
552 public:
AbstractScShowTabDlg_Impl(std::shared_ptr<ScShowTabDlg> p)553     explicit AbstractScShowTabDlg_Impl(std::shared_ptr<ScShowTabDlg> p)
554         : m_xDlg(std::move(p))
555     {
556     }
557     virtual short Execute() override;
558     virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
559     virtual void Insert( const OUString& rString, bool bSelected ) override;
560     virtual void SetDescription(const OUString& rTitle, const OUString& rFixedText, const OString& sDlgHelpId, const OString& sLbHelpId) override;
561     virtual OUString GetEntry(sal_Int32 nPos) const override;
562     virtual std::vector<sal_Int32> GetSelectedRows() const override;
563 };
564 
565 class AbstractScSortWarningDlg_Impl : public AbstractScSortWarningDlg
566 {
567     std::unique_ptr<ScSortWarningDlg> m_xDlg;
568 public:
AbstractScSortWarningDlg_Impl(std::unique_ptr<ScSortWarningDlg> p)569     explicit AbstractScSortWarningDlg_Impl(std::unique_ptr<ScSortWarningDlg> p)
570         : m_xDlg(std::move(p))
571     {
572     }
573     virtual short Execute() override;
574 };
575 
576 class AbstractScStringInputDlg_Impl :  public AbstractScStringInputDlg
577 {
578     std::unique_ptr<ScStringInputDlg> m_xDlg;
579 public:
AbstractScStringInputDlg_Impl(std::unique_ptr<ScStringInputDlg> p)580     explicit AbstractScStringInputDlg_Impl(std::unique_ptr<ScStringInputDlg> p)
581         : m_xDlg(std::move(p))
582     {
583     }
584     virtual short Execute() override;
585     virtual OUString GetInputString() const override;
586 
587     // screenshotting
588     virtual BitmapEx createScreenshot() const override;
589     virtual OString GetScreenshotId() const override;
590 };
591 
592 class AbstractScTabBgColorDlg_Impl :  public AbstractScTabBgColorDlg
593 {
594     std::unique_ptr<ScTabBgColorDlg> m_xDlg;
595 public:
AbstractScTabBgColorDlg_Impl(std::unique_ptr<ScTabBgColorDlg> p)596     explicit AbstractScTabBgColorDlg_Impl(std::unique_ptr<ScTabBgColorDlg> p)
597         : m_xDlg(std::move(p))
598     {
599     }
600     virtual short Execute() override;
601     virtual void GetSelectedColor( Color& rColor ) const override;
602 
603     // screenshotting
604     virtual BitmapEx createScreenshot() const override;
605     virtual OString GetScreenshotId() const override;
606 };
607 
608 class AbstractScImportOptionsDlg_Impl : public AbstractScImportOptionsDlg
609 {
610     std::unique_ptr<ScImportOptionsDlg> m_xDlg;
611 public:
AbstractScImportOptionsDlg_Impl(std::unique_ptr<ScImportOptionsDlg> p)612     explicit AbstractScImportOptionsDlg_Impl(std::unique_ptr<ScImportOptionsDlg> p)
613         : m_xDlg(std::move(p))
614     {
615     }
616     virtual short Execute() override;
617     virtual void GetImportOptions( ScImportOptions& rOptions ) const override;
618     virtual void SaveImportOptions() const override;
619 };
620 
621 class AbstractScTextImportOptionsDlg_Impl : public AbstractScTextImportOptionsDlg
622 {
623     std::unique_ptr<ScTextImportOptionsDlg> m_xDlg;
624 public:
AbstractScTextImportOptionsDlg_Impl(std::unique_ptr<ScTextImportOptionsDlg> p)625     explicit AbstractScTextImportOptionsDlg_Impl(std::unique_ptr<ScTextImportOptionsDlg> p)
626         : m_xDlg(std::move(p))
627     {
628     }
629     virtual short Execute() override;
630     virtual LanguageType GetLanguageType() const override;
631     virtual bool IsDateConversionSet() const override;
632     virtual bool IsKeepAskingSet() const override;
633 
634     // screenshotting
635     virtual BitmapEx createScreenshot() const override;
636     virtual OString GetScreenshotId() const override;
637 };
638 
639 class ScAbstractTabController_Impl : public SfxAbstractTabDialog
640 {
641     std::shared_ptr<SfxTabDialogController> m_xDlg;
642 public:
ScAbstractTabController_Impl(std::shared_ptr<SfxTabDialogController> p)643     explicit ScAbstractTabController_Impl(std::shared_ptr<SfxTabDialogController> p)
644         : m_xDlg(std::move(p))
645     {
646     }
647     virtual short Execute() override;
648     virtual bool  StartExecuteAsync(AsyncContext &rCtx) override;
649     virtual void                SetCurPageId( const OString &rName ) override;
650     virtual const SfxItemSet*   GetOutputItemSet() const override;
651     virtual const sal_uInt16*   GetInputRanges( const SfxItemPool& pItem ) override;
652     virtual void                SetInputSet( const SfxItemSet* pInSet ) override;
653     virtual void        SetText( const OUString& rStr ) override;
654 
655     // screenshotting
656     virtual std::vector<OString> getAllPageUIXMLDescriptions() const override;
657     virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription) override;
658     virtual BitmapEx createScreenshot() const override;
659     virtual OString GetScreenshotId() const override;
660 };
661 
662 class ScAsyncTabController_Impl : public ScAsyncTabController
663 {
664     std::shared_ptr<SfxTabDialogController> m_xDlg;
665 public:
ScAsyncTabController_Impl(std::shared_ptr<SfxTabDialogController> p)666     explicit ScAsyncTabController_Impl(std::shared_ptr<SfxTabDialogController> p)
667         : m_xDlg(std::move(p))
668     {
669     }
670     virtual bool  StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
671     virtual const SfxItemSet*   GetOutputItemSet() const override;
672     virtual void                SetCurPageId( const OString &rName ) override;
673 };
674 
675 //AbstractDialogFactory_Impl implementations
676 class ScAbstractDialogFactory_Impl : public ScAbstractDialogFactory
677 {
678 
679 public:
~ScAbstractDialogFactory_Impl()680     virtual ~ScAbstractDialogFactory_Impl() {}
681 
682     virtual VclPtr<AbstractScImportAsciiDlg> CreateScImportAsciiDlg(weld::Window* pParent,
683                                                                     const OUString& aDatName,
684                                                                     SvStream* pInStream,
685                                                                     ScImportAsciiCall eCall) override;
686 
687     virtual VclPtr<AbstractScTextImportOptionsDlg> CreateScTextImportOptionsDlg(weld::Window* pParent) override;
688 
689     virtual VclPtr<AbstractScAutoFormatDlg> CreateScAutoFormatDlg(weld::Window* pParent,
690                                                                 ScAutoFormat* pAutoFormat,
691                                                                 const ScAutoFormatData* pSelFormatData,
692                                                                 ScViewData& rViewData) override;
693     virtual VclPtr<AbstractScColRowLabelDlg> CreateScColRowLabelDlg (weld::Window* pParent,
694                                                                 bool bCol,
695                                                                 bool bRow) override;
696 
697     virtual VclPtr<AbstractScSortWarningDlg> CreateScSortWarningDlg(weld::Window* pParent, const OUString& rExtendText, const OUString& rCurrentText ) override;
698 
699     virtual VclPtr<AbstractScCondFormatManagerDlg> CreateScCondFormatMgrDlg(weld::Window* pParent, ScDocument& rDoc, const ScConditionalFormatList* pFormatList ) override;
700 
701     virtual VclPtr<AbstractScDataPilotDatabaseDlg> CreateScDataPilotDatabaseDlg(weld::Window* pParent) override;
702 
703     virtual VclPtr<AbstractScDataPilotSourceTypeDlg> CreateScDataPilotSourceTypeDlg(weld::Window* pParent,
704         bool bEnableExternal) override;
705 
706     virtual VclPtr<AbstractScDataPilotServiceDlg> CreateScDataPilotServiceDlg(weld::Window* pParent,
707                                                                               const std::vector<OUString>& rServices) override;
708     virtual VclPtr<AbstractScDeleteCellDlg> CreateScDeleteCellDlg(weld::Window* pParent, bool bDisallowCellMove ) override;
709 
710     //for dataform
711     virtual VclPtr<AbstractScDataFormDlg> CreateScDataFormDlg(weld::Window* pParent, ScTabViewShell* pTabViewShell) override;
712 
713     virtual VclPtr<AbstractScDeleteContentsDlg> CreateScDeleteContentsDlg(weld::Window* pParent) override;
714 
715     virtual VclPtr<AbstractScFillSeriesDlg> CreateScFillSeriesDlg(weld::Window*        pParent,
716                                                             ScDocument&     rDocument,
717                                                             FillDir         eFillDir,
718                                                             FillCmd         eFillCmd,
719                                                             FillDateCmd     eFillDateCmd,
720                                                             const OUString& aStartStr,
721                                                             double          fStep,
722                                                             double          fMax,
723                                                             SCSIZE          nSelectHeight,
724                                                             SCSIZE          nSelectWidth,
725                                                             sal_uInt16       nPossDir) override;
726     virtual VclPtr<AbstractScGroupDlg> CreateAbstractScGroupDlg(weld::Window* pParent, bool bUnGroup = false) override;
727 
728     virtual VclPtr<AbstractScInsertCellDlg> CreateScInsertCellDlg(weld::Window* pParent,
729                                                                   bool bDisallowCellMove) override;
730 
731     virtual VclPtr<AbstractScInsertContentsDlg> CreateScInsertContentsDlg(weld::Window* pParent,
732                                                                           const OUString* pStrTitle = nullptr) override;
733 
734     virtual VclPtr<AbstractScInsertTableDlg> CreateScInsertTableDlg(weld::Window* pParent, ScViewData& rViewData,
735         SCTAB nTabCount, bool bFromFile) override;
736 
737     virtual VclPtr<AbstractScSelEntryDlg> CreateScSelEntryDlg(weld::Window* pParent, const std::vector<OUString> &rEntryList) override;
738 
739     virtual VclPtr<AbstractScLinkedAreaDlg> CreateScLinkedAreaDlg(weld::Widget* pParent) override;
740 
741     virtual VclPtr<AbstractScMetricInputDlg> CreateScMetricInputDlg(weld::Window* pParent,
742                                                                 const OString&  sDialogName,
743                                                                 tools::Long            nCurrent,
744                                                                 tools::Long            nDefault,
745                                                                 FieldUnit       eFUnit,
746                                                                 sal_uInt16      nDecimals,
747                                                                 tools::Long            nMaximum,
748                                                                 tools::Long            nMinimum  = 0 ) override;
749 
750     virtual VclPtr<AbstractScMoveTableDlg> CreateScMoveTableDlg(weld::Window * pParent,
751         const OUString& rDefault) override;
752 
753     virtual VclPtr<AbstractScNameCreateDlg> CreateScNameCreateDlg(weld::Window * pParent,
754         CreateNameFlags nFlags) override;
755 
756     virtual VclPtr<AbstractScNamePasteDlg> CreateScNamePasteDlg(weld::Window * pParent, ScDocShell* pShell) override;
757 
758     virtual VclPtr<AbstractScPivotFilterDlg> CreateScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArgSet,
759                                                                     sal_uInt16 nSourceTab) override;
760 
761     virtual VclPtr<AbstractScDPFunctionDlg> CreateScDPFunctionDlg(weld::Widget* pParent,
762                                                                   const ScDPLabelDataVector& rLabelVec,
763                                                                   const ScDPLabelData& rLabelData,
764                                                                   const ScPivotFuncData& rFuncData ) override;
765 
766     virtual VclPtr<AbstractScDPSubtotalDlg> CreateScDPSubtotalDlg(weld::Widget* pParent,
767                                                                   ScDPObject& rDPObj,
768                                                                   const ScDPLabelData& rLabelData,
769                                                                   const ScPivotFuncData& rFuncData,
770                                                                   const ScDPNameVec& rDataFields ) override;
771 
772     virtual VclPtr<AbstractScDPNumGroupDlg> CreateScDPNumGroupDlg(weld::Window* pParent,
773                                                                   const ScDPNumGroupInfo& rInfo) override;
774 
775     virtual VclPtr<AbstractScDPDateGroupDlg> CreateScDPDateGroupDlg(weld::Window* pParent,
776                                                                     const ScDPNumGroupInfo& rInfo,
777                                                                     sal_Int32 nDatePart,
778                                                                     const Date& rNullDate) override;
779 
780     virtual VclPtr<AbstractScDPShowDetailDlg> CreateScDPShowDetailDlg(weld::Window* pParent,
781                                                                 ScDPObject& rDPObj,
782                                                                 css::sheet::DataPilotFieldOrientation nOrient) override;
783 
784     virtual VclPtr<AbstractScNewScenarioDlg> CreateScNewScenarioDlg(weld::Window* pParent, const OUString& rName,
785                                                                     bool bEdit, bool bSheetProtected) override;
786     virtual VclPtr<AbstractScShowTabDlg> CreateScShowTabDlg(weld::Window* pParent) override;
787 
788     virtual VclPtr<AbstractScStringInputDlg> CreateScStringInputDlg(weld::Window* pParent,
789                                                                     const OUString& rTitle,
790                                                                     const OUString& rEditTitle,
791                                                                     const OUString& rDefault,
792                                                                     const OString& rHelpId,
793                                                                     const OString& rEditHelpId) override;
794 
795     virtual VclPtr<AbstractScTabBgColorDlg> CreateScTabBgColorDlg(weld::Window* pParent,
796                                                                   const OUString& rTitle, //Dialog Title
797                                                                   const OUString& rTabBgColorNoColorText, //Label for no tab color
798                                                                   const Color& rDefaultColor) override; //Currently selected Color
799 
800     virtual VclPtr<AbstractScImportOptionsDlg> CreateScImportOptionsDlg(weld::Window* pParent, bool bAscii,
801                                                                         const ScImportOptions* pOptions,
802                                                                         const OUString* pStrTitle,
803                                                                         bool bOnlyDbtoolsEncodings,
804                                                                         bool bImport = true) override;
805 
806     virtual VclPtr<SfxAbstractTabDialog> CreateScAttrDlg(weld::Window* pParent,
807                                                          const SfxItemSet* pCellAttrs) override;
808 
809     virtual VclPtr<SfxAbstractTabDialog> CreateScHFEditDlg(weld::Window*       pParent,
810                                                     const SfxItemSet&   rCoreSet,
811                                                     const OUString&     rPageStyle,
812                                                     sal_uInt16          nResId ) override;
813 
814     virtual VclPtr<SfxAbstractTabDialog> CreateScStyleDlg(weld::Window* pParent,
815                                                           SfxStyleSheetBase& rStyleBase,
816                                                           bool bPage) override;
817 
818     virtual VclPtr<SfxAbstractTabDialog> CreateScSubTotalDlg(weld::Window* pParent,
819                                                              const SfxItemSet& rArgSet) override;
820     virtual VclPtr<SfxAbstractTabDialog> CreateScCharDlg(weld::Window* pParent,
821         const SfxItemSet* pAttr, const SfxObjectShell* pDocShell, bool bDrawText) override;
822 
823     virtual VclPtr<SfxAbstractTabDialog> CreateScParagraphDlg(weld::Window* pParent,
824         const SfxItemSet* pAttr) override;
825 
826     virtual std::shared_ptr<ScAsyncTabController> CreateScSortDlg(weld::Window* pParent, const SfxItemSet* pArgSet) override;
827 
828     // For TabPage
829     virtual CreateTabPage                GetTabPageCreatorFunc( sal_uInt16 nId ) override;
830 
831 };
832 
833 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
834