/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #pragma once #include #include #include #include #include "global.hxx" #include "pivot.hxx" #include #include class ScAutoFormat; class ScAutoFormatData; class ScDocument; struct ScImportSourceDesc; class ScViewData; class ScQueryItem; class ScImportOptions; class SfxStyleSheetBase; class SfxAbstractTabDialog; class ScDPObject; struct ScDPNumGroupInfo; class ScTabViewShell; class ScConditionalFormat; class ScConditionalFormatList; class Date; class SdrView; enum class CreateNameFlags; enum class CellShiftDisabledFlags; namespace com::sun::star::sheet { struct DataPilotFieldReference; } class ScAsyncTabController { public: virtual ~ScAsyncTabController() = default; virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) = 0; virtual const SfxItemSet* GetOutputItemSet() const = 0; virtual void SetCurPageId( const OUString &rName ) = 0; }; class AbstractScImportAsciiDlg : public VclAbstractDialog { protected: virtual ~AbstractScImportAsciiDlg() override = default; public: virtual void GetOptions( ScAsciiOptions& rOpt ) = 0; virtual void SaveParameters() = 0; }; class AbstractScAutoFormatDlg : public VclAbstractDialog { protected: virtual ~AbstractScAutoFormatDlg() override = default; public: virtual sal_uInt16 GetIndex() const = 0 ; virtual OUString GetCurrFormatName() = 0; }; class AbstractScColRowLabelDlg : public VclAbstractDialog { protected: virtual ~AbstractScColRowLabelDlg() override = default; public: virtual bool IsCol() = 0; virtual bool IsRow() = 0; }; class AbstractScCondFormatManagerDlg : public VclAbstractDialog { protected: virtual ~AbstractScCondFormatManagerDlg() override = default; public: virtual std::unique_ptr GetConditionalFormatList() = 0; virtual bool CondFormatsChanged() const = 0; virtual void SetModified() = 0; virtual ScConditionalFormat* GetCondFormatSelected() = 0; }; class AbstractScDataPilotDatabaseDlg :public VclAbstractDialog { protected: virtual ~AbstractScDataPilotDatabaseDlg() override = default; public: virtual void GetValues( ScImportSourceDesc& rDesc ) = 0; }; class AbstractScDataPilotSourceTypeDlg : public VclAbstractDialog { protected: virtual ~AbstractScDataPilotSourceTypeDlg() override = default; public: virtual bool IsDatabase() const = 0; virtual bool IsExternal() const = 0; virtual bool IsNamedRange() const = 0; virtual OUString GetSelectedNamedRange() const = 0; virtual void AppendNamedRange(const OUString& rName) = 0; }; class AbstractScDataPilotServiceDlg : public VclAbstractDialog { protected: virtual ~AbstractScDataPilotServiceDlg() override = default; public: virtual OUString GetServiceName() const = 0; virtual OUString GetParSource() const = 0 ; virtual OUString GetParName() const = 0 ; virtual OUString GetParUser() const = 0; virtual OUString GetParPass() const = 0; }; class AbstractScDeleteCellDlg : public VclAbstractDialog { protected: virtual ~AbstractScDeleteCellDlg() override = default; public: virtual DelCellCmd GetDelCellCmd() const = 0; }; //for dataform class AbstractScDataFormDlg : public VclAbstractDialog { protected: virtual ~AbstractScDataFormDlg() override = default; }; class AbstractScDeleteContentsDlg: public VclAbstractDialog { protected: virtual ~AbstractScDeleteContentsDlg() override = default; public: virtual void DisableObjects() = 0 ; virtual InsertDeleteFlags GetDelContentsCmdBits() const = 0; }; class AbstractScFillSeriesDlg: public VclAbstractDialog { protected: virtual ~AbstractScFillSeriesDlg() override = default; public: virtual FillDir GetFillDir() const = 0; virtual FillCmd GetFillCmd() const = 0; virtual FillDateCmd GetFillDateCmd() const = 0; virtual double GetStart() const = 0; virtual double GetStep() const = 0; virtual double GetMax() const = 0; virtual OUString GetStartStr() const = 0; virtual void SetEdStartValEnabled(bool bFlag) = 0; }; class AbstractScGroupDlg : public VclAbstractDialog { protected: virtual ~AbstractScGroupDlg() override = default; public: virtual bool GetColsChecked() const = 0; }; class AbstractScInsertCellDlg : public VclAbstractDialog { protected: virtual ~AbstractScInsertCellDlg() override = default; public: virtual InsCellCmd GetInsCellCmd() const = 0; }; class AbstractScInsertContentsDlg : public VclAbstractDialog { protected: virtual ~AbstractScInsertContentsDlg() override = default; public: virtual InsertDeleteFlags GetInsContentsCmdBits() const = 0; virtual ScPasteFunc GetFormulaCmdBits() const = 0 ; virtual bool IsSkipEmptyCells() const = 0; virtual bool IsLink() const = 0; virtual void SetFillMode( bool bSet ) = 0; virtual void SetOtherDoc( bool bSet ) = 0; virtual bool IsTranspose() const = 0; virtual void SetChangeTrack( bool bSet ) = 0; virtual void SetCellShiftDisabled( CellShiftDisabledFlags nDisable ) = 0; virtual InsCellCmd GetMoveMode() = 0; }; class AbstractScInsertTableDlg : public VclAbstractDialog { protected: virtual ~AbstractScInsertTableDlg() override = default; public: virtual bool GetTablesFromFile() = 0; virtual bool GetTablesAsLink() = 0; virtual const OUString* GetFirstTable( sal_uInt16* pN = nullptr ) = 0; virtual ScDocShell* GetDocShellTables() = 0; virtual bool IsTableBefore() = 0; virtual sal_uInt16 GetTableCount() = 0; virtual const OUString* GetNextTable( sal_uInt16* pN ) = 0; }; class AbstractScSelEntryDlg : public VclAbstractDialog { protected: virtual ~AbstractScSelEntryDlg() override = default; public: virtual OUString GetSelectedEntry() const = 0; }; class AbstractScLinkedAreaDlg : public VclAbstractDialog { protected: virtual ~AbstractScLinkedAreaDlg() override = default; public: virtual void InitFromOldLink( const OUString& rFile, const OUString& rFilter, const OUString& rOptions, const OUString& rSource, sal_Int32 nRefreshDelaySeconds ) = 0; virtual OUString GetURL() = 0; virtual OUString GetFilter() = 0; // may be empty virtual OUString GetOptions() = 0; // filter options virtual OUString GetSource() = 0; // separated by ";" virtual sal_Int32 GetRefreshDelaySeconds() = 0; // 0 if disabled }; class AbstractScMetricInputDlg : public VclAbstractDialog { protected: virtual ~AbstractScMetricInputDlg() override = default; public: virtual int GetInputValue() const = 0; }; class AbstractScMoveTableDlg : public VclAbstractDialog { protected: virtual ~AbstractScMoveTableDlg() override = default; public: virtual sal_uInt16 GetSelectedDocument () const = 0; virtual sal_uInt16 GetSelectedTable () const = 0; virtual bool GetCopyTable () const = 0; virtual bool GetRenameTable () const = 0; virtual void GetTabNameString( OUString& rString ) const = 0; virtual void SetForceCopyTable () = 0; virtual void EnableRenameTable (bool bFlag) = 0; }; class AbstractScNameCreateDlg : public VclAbstractDialog // Manage Name Dialog { protected: virtual ~AbstractScNameCreateDlg() override = default; public: virtual CreateNameFlags GetFlags() const = 0; }; class AbstractScNamePasteDlg : public VclAbstractDialog { protected: virtual ~AbstractScNamePasteDlg() override = default; public: virtual std::vector GetSelectedNames() const = 0; }; class AbstractScPivotFilterDlg : public VclAbstractDialog { protected: virtual ~AbstractScPivotFilterDlg() override = default; public: virtual const ScQueryItem& GetOutputItem() = 0; }; class AbstractScDPFunctionDlg : public VclAbstractDialog { protected: virtual ~AbstractScDPFunctionDlg() override = default; public: virtual PivotFunc GetFuncMask() const = 0; virtual css::sheet::DataPilotFieldReference GetFieldRef() const = 0; virtual void Response(int nResponse) = 0; }; class AbstractScDPSubtotalDlg : public VclAbstractDialog { protected: virtual ~AbstractScDPSubtotalDlg() override = default; public: virtual PivotFunc GetFuncMask() const = 0; virtual void FillLabelData( ScDPLabelData& rLabelData ) const = 0; virtual void Response(int nResponse) = 0; }; class AbstractScDPNumGroupDlg : public VclAbstractDialog { protected: virtual ~AbstractScDPNumGroupDlg() override = default; public: virtual ScDPNumGroupInfo GetGroupInfo() const = 0; }; class AbstractScDPDateGroupDlg : public VclAbstractDialog { protected: virtual ~AbstractScDPDateGroupDlg() override = default; public: virtual ScDPNumGroupInfo GetGroupInfo() const = 0; virtual sal_Int32 GetDatePart() const = 0; }; class AbstractScDPShowDetailDlg : public VclAbstractDialog { protected: virtual ~AbstractScDPShowDetailDlg() override = default; public: virtual OUString GetDimensionName() const = 0; }; class AbstractScNewScenarioDlg : public VclAbstractDialog { protected: virtual ~AbstractScNewScenarioDlg() override = default; public: virtual void SetScenarioData( const OUString& rName, const OUString& rComment, const Color& rColor, ScScenarioFlags nFlags ) = 0; virtual void GetScenarioData( OUString& rName, OUString& rComment, Color& rColor, ScScenarioFlags& rFlags ) const = 0; }; class AbstractScShowTabDlg : public VclAbstractDialog { protected: virtual ~AbstractScShowTabDlg() override = default; public: virtual void Insert( const OUString& rString, bool bSelected ) = 0; virtual void SetDescription(const OUString& rTitle, const OUString& rFixedText, const OUString& nDlgHelpId, const OUString& nLbHelpId ) = 0; virtual std::vector GetSelectedRows() const = 0; virtual OUString GetEntry(sal_Int32 nPos) const = 0; }; class AbstractScSortWarningDlg : public VclAbstractDialog { protected: virtual ~AbstractScSortWarningDlg() override = default; }; class AbstractScStringInputDlg : public VclAbstractDialog { protected: virtual ~AbstractScStringInputDlg() override = default; public: virtual OUString GetInputString() const = 0; }; class AbstractScTabBgColorDlg : public VclAbstractDialog { protected: virtual ~AbstractScTabBgColorDlg() override = default; public: virtual void GetSelectedColor( Color& rColor ) const = 0; }; class AbstractScImportOptionsDlg : public VclAbstractDialog { protected: virtual ~AbstractScImportOptionsDlg() override = default; public: virtual void GetImportOptions( ScImportOptions& rOptions ) const = 0; virtual void SaveImportOptions() const = 0; }; class AbstractScTextImportOptionsDlg : public VclAbstractDialog { protected: virtual ~AbstractScTextImportOptionsDlg() override = default; public: virtual LanguageType GetLanguageType() const = 0; virtual bool IsDateConversionSet() const = 0; virtual bool IsScientificConversionSet() const = 0; virtual bool IsKeepAskingSet() const = 0; }; class AbstractScGoToTabDlg : public VclAbstractDialog { protected: virtual ~AbstractScGoToTabDlg() override = default; public: virtual void Insert( const OUString& rString, bool bSelected ) = 0; virtual void SetDescription(const OUString& rTitle, const OUString& rEntryLabel, const OUString& rListLabel, const OUString& rDlgHelpId, const OUString& rEnHelpId, const OUString& rLbHelpId) = 0; virtual OUString GetSelectedEntry() const = 0; }; class ScAbstractDialogFactory { public: SC_DLLPUBLIC static ScAbstractDialogFactory* Create(); virtual VclPtr CreateScImportAsciiDlg(weld::Window* pParent, const OUString& aDatName, SvStream* pInStream, ScImportAsciiCall eCall) = 0; virtual VclPtr CreateScTextImportOptionsDlg(weld::Window* pParent) = 0; virtual VclPtr CreateScAutoFormatDlg(weld::Window* pParent, ScAutoFormat* pAutoFormat, const ScAutoFormatData* pSelFormatData, ScViewData& rViewData) = 0; virtual VclPtr CreateScColRowLabelDlg (weld::Window* pParent, bool bCol, bool bRow) = 0; virtual VclPtr CreateScSortWarningDlg(weld::Window* pParent, const OUString& rExtendText, const OUString& rCurrentText ) = 0; virtual VclPtr CreateScCondFormatMgrDlg(weld::Window* pParent, ScDocument& rDoc, const ScConditionalFormatList* pFormatList ) = 0; virtual VclPtr CreateScDataPilotDatabaseDlg(weld::Window* pParent) = 0; virtual VclPtr CreateScDataPilotSourceTypeDlg(weld::Window* pParent, bool bEnableExternal) = 0; virtual VclPtr CreateScDataPilotServiceDlg(weld::Window* pParent, const std::vector& rServices) = 0; virtual VclPtr CreateScDeleteCellDlg(weld::Window* pParent, bool bDisallowCellMove) = 0 ; //for dataform virtual VclPtr CreateScDataFormDlg(weld::Window* pParent, ScTabViewShell* pTabViewShell) = 0; virtual VclPtr CreateScDeleteContentsDlg(weld::Window* pParent) = 0; virtual VclPtr CreateScFillSeriesDlg(weld::Window* pParent, ScDocument& rDocument, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, const OUString& aStartStr, double fStep, double fMax, SCSIZE nSelectHeight, SCSIZE nSelectWidth, sal_uInt16 nPossDir) = 0; virtual VclPtr CreateAbstractScGroupDlg(weld::Window* pParent, bool bUnGroup = false) = 0; virtual VclPtr CreateScInsertCellDlg(weld::Window* pParent, bool bDisallowCellMove) = 0; virtual VclPtr CreateScInsertContentsDlg(weld::Window* pParent, const OUString* pStrTitle = nullptr) = 0; virtual VclPtr CreateScInsertTableDlg(weld::Window* pParent, ScViewData& rViewData, SCTAB nTabCount, bool bFromFile) = 0; virtual VclPtr CreateScSelEntryDlg(weld::Window* pParent, const std::vector &rEntryList) = 0; virtual VclPtr CreateScLinkedAreaDlg(weld::Widget* pParent) = 0; virtual VclPtr CreateScMetricInputDlg(weld::Window* pParent, const OUString& sDialogName, tools::Long nCurrent, tools::Long nDefault, FieldUnit eFUnit, sal_uInt16 nDecimals, tools::Long nMaximum, tools::Long nMinimum = 0 ) = 0; virtual VclPtr CreateScMoveTableDlg(weld::Window * pParent, const OUString& rDefault) = 0; virtual VclPtr CreateScNameCreateDlg(weld::Window * pParent, CreateNameFlags nFlags) = 0; virtual VclPtr CreateScNamePasteDlg(weld::Window * pParent, ScDocShell* pShell) = 0; virtual VclPtr CreateScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArgSet, sal_uInt16 nSourceTab) = 0; virtual VclPtr CreateScDPFunctionDlg(weld::Widget* pParent, const ScDPLabelDataVector& rLabelVec, const ScDPLabelData& rLabelData, const ScPivotFuncData& rFuncData ) = 0; virtual VclPtr CreateScDPSubtotalDlg(weld::Widget* pParent, ScDPObject& rDPObj, const ScDPLabelData& rLabelData, const ScPivotFuncData& rFuncData, const ScDPNameVec& rDataFields) = 0; virtual VclPtr CreateScDPNumGroupDlg(weld::Window* pParent, const ScDPNumGroupInfo& rInfo) = 0; virtual VclPtr CreateScDPDateGroupDlg(weld::Window* pParent, const ScDPNumGroupInfo& rInfo, sal_Int32 nDatePart, const Date& rNullDate ) = 0; virtual VclPtr CreateScDPShowDetailDlg(weld::Window* pParent, ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient ) = 0; virtual VclPtr CreateScNewScenarioDlg(weld::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected) = 0; virtual VclPtr CreateScShowTabDlg(weld::Window* pParent) = 0; virtual VclPtr CreateScStringInputDlg(weld::Window* pParent, const OUString& rTitle, const OUString& rEditTitle, const OUString& rDefault, const OUString& rHelpId, const OUString& rEditHelpId) = 0; virtual VclPtr CreateScTabBgColorDlg(weld::Window* pParent, const OUString& rTitle, //Dialog Title const OUString& rTabBgColorNoColorText, //Label for no tab color const Color& rDefaultColor) = 0; //Currently selected Color virtual VclPtr CreateScImportOptionsDlg(weld::Window* pParent, bool bAscii, const ScImportOptions* pOptions, const OUString* pStrTitle, bool bOnlyDbtoolsEncodings, bool bImport = true ) = 0; virtual VclPtr CreateScGoToTabDlg(weld::Window* pParent) = 0; virtual VclPtr CreateScAttrDlg(weld::Window* pParent, const SfxItemSet* pCellAttrs) = 0; virtual VclPtr CreateScHFEditDlg(weld::Window* pParent, const SfxItemSet& rCoreSet, const OUString& rPageStyle, sal_uInt16 nResId ) = 0; virtual VclPtr CreateScStyleDlg(weld::Window* pParent, SfxStyleSheetBase& rStyleBase, bool bPage /*true : page, false: para*/) = 0; virtual VclPtr CreateScDrawStyleDlg(weld::Window* pParent, SfxStyleSheetBase& rStyleBase, SdrView* pView) = 0; virtual VclPtr CreateScSubTotalDlg(weld::Window* pParent, const SfxItemSet& rArgSet) = 0; virtual VclPtr CreateScCharDlg(weld::Window* pParent, const SfxItemSet* pAttr, const SfxObjectShell* pDocShell, bool bDrawText) = 0; virtual VclPtr CreateScParagraphDlg(weld::Window* pParent, const SfxItemSet* pAttr) = 0; virtual std::shared_ptr CreateScSortDlg(weld::Window* pParent, const SfxItemSet* pArgSet) = 0; // for tabpage virtual CreateTabPage GetTabPageCreatorFunc( sal_uInt16 nId ) = 0; protected: ~ScAbstractDialogFactory() {} }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */