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 .
20 #ifndef INCLUDED_SC_INC_SCABSTDLG_HXX
21 #define INCLUDED_SC_INC_SCABSTDLG_HXX
23 #include <tools/solar.h>
24 #include <sfx2/sfxdlg.hxx>
25 #include <vcl/syswin.hxx>
26 #include <com/sun/star/uno/Sequence.hxx>
27 #include <vcl/field.hxx>
31 #include <i18nlangtag/lang.h>
32 #include "asciiopt.hxx"
34 #include <tabvwsh.hxx>
38 class ScAutoFormatData
;
40 struct ScImportSourceDesc
;
43 class ScImportOptions
;
44 class SfxStyleSheetBase
;
46 struct ScPivotFuncData
;
47 struct ScDPNumGroupInfo
;
48 class ScSortWarningDlg
;
50 class ScConditionalFormat
;
51 class ScConditionalFormatList
;
53 namespace com
{ namespace sun
{ namespace star
{ namespace sheet
{
54 struct DataPilotFieldReference
;
57 class AbstractScImportAsciiDlg
: public VclAbstractDialog
60 virtual void GetOptions( ScAsciiOptions
& rOpt
) = 0;
61 virtual void SaveParameters() = 0;
64 class AbstractScAutoFormatDlg
: public VclAbstractDialog
67 virtual sal_uInt16
GetIndex() const = 0 ;
68 virtual OUString
GetCurrFormatName() = 0;
71 class AbstractScColRowLabelDlg
: public VclAbstractDialog
74 virtual bool IsCol() = 0;
75 virtual bool IsRow() = 0;
78 class AbstractScCondFormatManagerDlg
: public VclAbstractDialog
81 virtual ScConditionalFormatList
* GetConditionalFormatList() = 0;
83 virtual bool CondFormatsChanged() = 0;
85 virtual ScConditionalFormat
* GetCondFormatSelected() = 0;
88 class AbstractScDataPilotDatabaseDlg
:public VclAbstractDialog
91 virtual void GetValues( ScImportSourceDesc
& rDesc
) = 0;
94 class AbstractScDataPilotSourceTypeDlg
: public VclAbstractDialog
97 virtual bool IsDatabase() const = 0;
98 virtual bool IsExternal() const = 0;
99 virtual bool IsNamedRange() const = 0;
100 virtual OUString
GetSelectedNamedRange() const = 0;
101 virtual void AppendNamedRange(const OUString
& rName
) = 0;
104 class AbstractScDataPilotServiceDlg
: public VclAbstractDialog
107 virtual OUString
GetServiceName() const = 0;
108 virtual OUString
GetParSource() const = 0 ;
109 virtual OUString
GetParName() const = 0 ;
110 virtual OUString
GetParUser() const = 0;
111 virtual OUString
GetParPass() const = 0;
114 class AbstractScDeleteCellDlg
: public VclAbstractDialog
117 virtual DelCellCmd
GetDelCellCmd() const = 0;
121 class AbstractScDataFormDlg
: public VclAbstractDialog
126 class AbstractScDeleteContentsDlg
: public VclAbstractDialog
129 virtual void DisableObjects() = 0 ;
130 virtual InsertDeleteFlags
GetDelContentsCmdBits() const = 0;
133 class AbstractScFillSeriesDlg
: public VclAbstractDialog
136 virtual FillDir
GetFillDir() const = 0;
137 virtual FillCmd
GetFillCmd() const = 0;
138 virtual FillDateCmd
GetFillDateCmd() const = 0;
139 virtual double GetStart() const = 0;
140 virtual double GetStep() const = 0;
141 virtual double GetMax() const = 0;
142 virtual OUString
GetStartStr() const = 0;
143 virtual void SetEdStartValEnabled(bool bFlag
=false) = 0;
146 class AbstractScGroupDlg
: public VclAbstractDialog
149 virtual bool GetColsChecked() const = 0;
152 class AbstractScInsertCellDlg
: public VclAbstractDialog
155 virtual InsCellCmd
GetInsCellCmd() const = 0;
158 class AbstractScInsertContentsDlg
: public VclAbstractDialog
161 virtual InsertDeleteFlags
GetInsContentsCmdBits() const = 0;
162 virtual sal_uInt16
GetFormulaCmdBits() const = 0 ;
163 virtual bool IsSkipEmptyCells() const = 0;
164 virtual bool IsLink() const = 0;
165 virtual void SetFillMode( bool bSet
) = 0;
166 virtual void SetOtherDoc( bool bSet
) = 0;
167 virtual bool IsTranspose() const = 0;
168 virtual void SetChangeTrack( bool bSet
) = 0;
169 virtual void SetCellShiftDisabled( int nDisable
) = 0;
170 virtual InsCellCmd
GetMoveMode() = 0;
173 class AbstractScInsertTableDlg
: public VclAbstractDialog
176 virtual bool GetTablesFromFile() = 0;
177 virtual bool GetTablesAsLink() = 0;
178 virtual const OUString
* GetFirstTable( sal_uInt16
* pN
= NULL
) = 0;
179 virtual ScDocShell
* GetDocShellTables() = 0;
180 virtual bool IsTableBefore() = 0;
181 virtual sal_uInt16
GetTableCount() = 0;
182 virtual const OUString
* GetNextTable( sal_uInt16
* pN
= NULL
) = 0;
186 class AbstractScSelEntryDlg
: public VclAbstractDialog
189 virtual OUString
GetSelectEntry() const = 0;
192 class AbstractScLinkedAreaDlg
: public VclAbstractDialog2
195 virtual void InitFromOldLink( const OUString
& rFile
, const OUString
& rFilter
,
196 const OUString
& rOptions
, const OUString
& rSource
,
197 sal_uLong nRefresh
) = 0;
198 virtual OUString
GetURL() = 0;
199 virtual OUString
GetFilter() = 0; // may be empty
200 virtual OUString
GetOptions() = 0; // filter options
201 virtual OUString
GetSource() = 0; // separated by ";"
202 virtual sal_uLong
GetRefresh() = 0; // 0 if disabled
205 class AbstractScMetricInputDlg
: public VclAbstractDialog
208 virtual long GetInputValue( FieldUnit eUnit
= FUNIT_TWIP
) const = 0;
211 class AbstractScMoveTableDlg
: public VclAbstractDialog
214 virtual sal_uInt16
GetSelectedDocument () const = 0;
215 virtual sal_uInt16
GetSelectedTable () const = 0;
216 virtual bool GetCopyTable () const = 0;
217 virtual bool GetRenameTable () const = 0;
218 virtual void GetTabNameString( OUString
& rString
) const = 0;
219 virtual void SetForceCopyTable () = 0;
220 virtual void EnableCopyTable (bool bFlag
=true) = 0;
221 virtual void EnableRenameTable (bool bFlag
=true) = 0;
224 class AbstractScNameCreateDlg
: public VclAbstractDialog
// Manage Name Dialog
227 virtual sal_uInt16
GetFlags() const = 0;
230 class AbstractScNamePasteDlg
: public VclAbstractDialog
233 virtual std::vector
<OUString
> GetSelectedNames() const = 0;
234 virtual bool IsAllSelected() const = 0;
237 class AbstractScPivotFilterDlg
: public VclAbstractDialog
240 virtual const ScQueryItem
& GetOutputItem() = 0;
243 class AbstractScDPFunctionDlg
: public VclAbstractDialog
246 virtual sal_uInt16
GetFuncMask() const = 0;
247 virtual ::com::sun::star::sheet::DataPilotFieldReference
GetFieldRef() const = 0;
250 class AbstractScDPSubtotalDlg
: public VclAbstractDialog
253 virtual sal_uInt16
GetFuncMask() const = 0;
254 virtual void FillLabelData( ScDPLabelData
& rLabelData
) const = 0;
257 class AbstractScDPNumGroupDlg
: public VclAbstractDialog
260 virtual ScDPNumGroupInfo
GetGroupInfo() const = 0;
263 class AbstractScDPDateGroupDlg
: public VclAbstractDialog
266 virtual ScDPNumGroupInfo
GetGroupInfo() const = 0;
267 virtual sal_Int32
GetDatePart() const = 0;
270 class AbstractScDPShowDetailDlg
: public VclAbstractDialog
273 virtual OUString
GetDimensionName() const = 0;
276 class AbstractScNewScenarioDlg
: public VclAbstractDialog
280 virtual void SetScenarioData( const OUString
& rName
, const OUString
& rComment
,
281 const Color
& rColor
, sal_uInt16 nFlags
) = 0;
283 virtual void GetScenarioData( OUString
& rName
, OUString
& rComment
,
284 Color
& rColor
, sal_uInt16
& rFlags
) const = 0;
287 class AbstractScShowTabDlg
: public VclAbstractDialog
290 virtual void Insert( const OUString
& rString
, bool bSelected
) = 0;
291 virtual sal_Int32
GetSelectEntryCount() const = 0;
292 virtual void SetDescription(const OUString
& rTitle
, const OUString
& rFixedText
, const OString
& nDlgHelpId
, const OString
& nLbHelpId
) = 0;
293 virtual OUString
GetSelectEntry(sal_Int32 nPos
) const = 0;
294 virtual sal_Int32
GetSelectEntryPos(sal_Int32 nPos
) const = 0;
297 class AbstractScSortWarningDlg
: public VclAbstractDialog
301 class AbstractScStringInputDlg
: public VclAbstractDialog
304 virtual OUString
GetInputString() const = 0;
307 class AbstractScTabBgColorDlg
: public VclAbstractDialog
310 virtual void GetSelectedColor( Color
& rColor
) const = 0;
313 class AbstractScImportOptionsDlg
: public VclAbstractDialog
316 virtual void GetImportOptions( ScImportOptions
& rOptions
) const = 0;
319 class AbstractScTextImportOptionsDlg
: public VclAbstractDialog
322 virtual LanguageType
GetLanguageType() const = 0;
323 virtual bool IsDateConversionSet() const = 0;
326 class ScAbstractDialogFactory
329 SC_DLLPUBLIC
static ScAbstractDialogFactory
* Create();
331 virtual AbstractScImportAsciiDlg
* CreateScImportAsciiDlg( vcl::Window
* pParent
, const OUString
& aDatName
,
333 ScImportAsciiCall eCall
) = 0;
335 virtual AbstractScTextImportOptionsDlg
* CreateScTextImportOptionsDlg(vcl::Window
* pParent
) = 0;
337 virtual AbstractScAutoFormatDlg
* CreateScAutoFormatDlg(vcl::Window
* pParent
,
338 ScAutoFormat
* pAutoFormat
,
339 const ScAutoFormatData
* pSelFormatData
,
340 ScViewData
*pViewData
) = 0;
341 virtual AbstractScColRowLabelDlg
* CreateScColRowLabelDlg (vcl::Window
* pParent
,
343 bool bRow
= false) = 0;
345 virtual AbstractScSortWarningDlg
* CreateScSortWarningDlg(vcl::Window
* pParent
, const OUString
& rExtendText
, const OUString
& rCurrentText
) = 0;
347 virtual AbstractScCondFormatManagerDlg
* CreateScCondFormatMgrDlg(vcl::Window
* pParent
, ScDocument
* pDoc
, const ScConditionalFormatList
* pFormatList
,
348 const ScAddress
& rPos
, int nId
) = 0;
350 virtual AbstractScDataPilotDatabaseDlg
* CreateScDataPilotDatabaseDlg(vcl::Window
* pParent
) = 0;
352 virtual AbstractScDataPilotSourceTypeDlg
* CreateScDataPilotSourceTypeDlg(vcl::Window
* pParent
,
353 bool bEnableExternal
) = 0;
355 virtual AbstractScDataPilotServiceDlg
* CreateScDataPilotServiceDlg( vcl::Window
* pParent
,
356 const com::sun::star::uno::Sequence
<OUString
>& rServices
,
359 virtual AbstractScDeleteCellDlg
* CreateScDeleteCellDlg(vcl::Window
* pParent
, bool bDisallowCellMove
= false) = 0 ;
362 virtual AbstractScDataFormDlg
* CreateScDataFormDlg(vcl::Window
* pParent
,
363 ScTabViewShell
* pTabViewShell
) = 0;
365 virtual AbstractScDeleteContentsDlg
* CreateScDeleteContentsDlg(vcl::Window
* pParent
,
366 InsertDeleteFlags nCheckDefaults
= IDF_NONE
) = 0;
367 virtual AbstractScFillSeriesDlg
* CreateScFillSeriesDlg( vcl::Window
* pParent
,
368 ScDocument
& rDocument
,
371 FillDateCmd eFillDateCmd
,
372 const OUString
& aStartStr
,
375 sal_uInt16 nPossDir
) = 0;
377 virtual AbstractScGroupDlg
* CreateAbstractScGroupDlg( vcl::Window
* pParent
,
378 bool bUnGroup
= false,
379 bool bRows
= true ) = 0;
381 virtual AbstractScInsertCellDlg
* CreateScInsertCellDlg( vcl::Window
* pParent
,
383 bool bDisallowCellMove
= false ) = 0;
385 virtual AbstractScInsertContentsDlg
* CreateScInsertContentsDlg( vcl::Window
* pParent
,
386 InsertDeleteFlags nCheckDefaults
= IDF_NONE
,
387 const OUString
* pStrTitle
= NULL
) = 0;
389 virtual AbstractScInsertTableDlg
* CreateScInsertTableDlg(vcl::Window
* pParent
, ScViewData
& rViewData
,
390 SCTAB nTabCount
, bool bFromFile
) = 0;
392 virtual AbstractScSelEntryDlg
* CreateScSelEntryDlg ( vcl::Window
* pParent
,
393 const std::vector
<OUString
> &rEntryList
) = 0;
394 virtual AbstractScLinkedAreaDlg
* CreateScLinkedAreaDlg(vcl::Window
* pParent
) = 0;
396 virtual AbstractScMetricInputDlg
* CreateScMetricInputDlg ( vcl::Window
* pParent
,
397 const OString
& sDialogName
,
400 FieldUnit eFUnit
= FUNIT_MM
,
401 sal_uInt16 nDecimals
= 2,
402 long nMaximum
= 1000,
405 long nLast
= 100 ) = 0;
407 virtual AbstractScMoveTableDlg
* CreateScMoveTableDlg(vcl::Window
* pParent
,
408 const OUString
& rDefault
) = 0;
410 virtual AbstractScNameCreateDlg
* CreateScNameCreateDlg(vcl::Window
* pParent
,
411 sal_uInt16 nFlags
) = 0;
413 virtual AbstractScNamePasteDlg
* CreateScNamePasteDlg ( vcl::Window
* pParent
, ScDocShell
* pShell
, bool bInsList
=true ) = 0;
415 virtual AbstractScPivotFilterDlg
* CreateScPivotFilterDlg(vcl::Window
* pParent
,
416 const SfxItemSet
& rArgSet
, sal_uInt16 nSourceTab
) = 0;
418 virtual AbstractScDPFunctionDlg
* CreateScDPFunctionDlg( vcl::Window
* pParent
,
419 const ScDPLabelDataVector
& rLabelVec
,
420 const ScDPLabelData
& rLabelData
,
421 const ScPivotFuncData
& rFuncData
) = 0;
423 virtual AbstractScDPSubtotalDlg
* CreateScDPSubtotalDlg( vcl::Window
* pParent
,
425 const ScDPLabelData
& rLabelData
,
426 const ScPivotFuncData
& rFuncData
,
427 const ScDPNameVec
& rDataFields
,
428 bool bEnableLayout
) = 0;
430 virtual AbstractScDPNumGroupDlg
* CreateScDPNumGroupDlg( vcl::Window
* pParent
,
432 const ScDPNumGroupInfo
& rInfo
) = 0;
434 virtual AbstractScDPDateGroupDlg
* CreateScDPDateGroupDlg( vcl::Window
* pParent
,
436 const ScDPNumGroupInfo
& rInfo
,
438 const Date
& rNullDate
) = 0;
440 virtual AbstractScDPShowDetailDlg
* CreateScDPShowDetailDlg( vcl::Window
* pParent
, int nId
,
442 sal_uInt16 nOrient
) = 0;
444 virtual AbstractScNewScenarioDlg
* CreateScNewScenarioDlg ( vcl::Window
* pParent
, const OUString
& rName
,
445 bool bEdit
= false, bool bSheetProtected
= false ) = 0;
446 virtual AbstractScShowTabDlg
* CreateScShowTabDlg(vcl::Window
* pParent
) = 0;
448 virtual AbstractScStringInputDlg
* CreateScStringInputDlg ( vcl::Window
* pParent
,
449 const OUString
& rTitle
,
450 const OUString
& rEditTitle
,
451 const OUString
& rDefault
,
452 const OString
& sHelpId
, const OString
& sEditHelpId
) = 0;
454 virtual AbstractScTabBgColorDlg
* CreateScTabBgColorDlg ( vcl::Window
* pParent
,
455 const OUString
& rTitle
, //Dialog Title
456 const OUString
& rTabBgColorNoColorText
, //Label for no tab color
457 const Color
& rDefaultColor
, //Currently selected Color
458 const OString
& ) = 0;
460 virtual AbstractScImportOptionsDlg
* CreateScImportOptionsDlg ( vcl::Window
* pParent
,
462 const ScImportOptions
* pOptions
= NULL
,
463 const OUString
* pStrTitle
= NULL
,
464 bool bMultiByte
= false,
465 bool bOnlyDbtoolsEncodings
= false,
466 bool bImport
= true ) = 0;
468 virtual SfxAbstractTabDialog
* CreateScAttrDlg( SfxViewFrame
* pFrame
,
469 vcl::Window
* pParent
,
470 const SfxItemSet
* pCellAttrs
) = 0;
472 virtual SfxAbstractTabDialog
* CreateScHFEditDlg( SfxViewFrame
* pFrame
,
473 vcl::Window
* pParent
,
474 const SfxItemSet
& rCoreSet
,
475 const OUString
& rPageStyle
,
476 sal_uInt16 nResId
= RID_SCDLG_HFEDIT
) = 0;
478 virtual SfxAbstractTabDialog
* CreateScStyleDlg( vcl::Window
* pParent
,
479 SfxStyleSheetBase
& rStyleBase
,
483 virtual SfxAbstractTabDialog
* CreateScSubTotalDlg( vcl::Window
* pParent
,
484 const SfxItemSet
* pArgSet
) = 0;
486 virtual SfxAbstractTabDialog
* CreateScCharDlg(vcl::Window
* pParent
,
487 const SfxItemSet
* pAttr
, const SfxObjectShell
* pDocShell
) = 0;
489 virtual SfxAbstractTabDialog
* CreateScParagraphDlg(vcl::Window
* pParent
,
490 const SfxItemSet
* pAttr
) = 0;
492 virtual SfxAbstractTabDialog
* CreateScValidationDlg(vcl::Window
* pParent
,
493 const SfxItemSet
* pArgSet
, ScTabViewShell
*pTabVwSh
) = 0;
494 virtual SfxAbstractTabDialog
* CreateScSortDlg(vcl::Window
* pParent
, const SfxItemSet
* pArgSet
) = 0;
497 virtual CreateTabPage
GetTabPageCreatorFunc( sal_uInt16 nId
) = 0;
498 virtual GetTabPageRanges
GetTabPageRangesFunc() = 0;
501 ~ScAbstractDialogFactory() {}
505 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */