/* -*- 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 . */ #ifndef INCLUDED_SVX_SVXDLG_HXX #define INCLUDED_SVX_SVXDLG_HXX #include #include #include #include #include #include #include #include namespace sd { class View; } namespace com::sun::star::linguistic2 { class XDictionary; class XSpellChecker1; class XSpellChecker; class XThesaurus; class XHyphenator; } class SdrModel; class SdrView; class SvxSpellWrapper; enum class TransliterationFlags; struct ExchangeData; class INetURLObject; class GalleryTheme; class SvxHyperlinkTabPageBase; class SearchAttrItemList; class FmFormShell; class Graphic; class SdrObject; class SvxSpellWrapper; struct FmSearchContext; typedef WhichRangesContainer (*DialogGetRanges)(); typedef ::std::vector< OUString > TargetList; namespace svx{ class SpellDialogChildWindow;} namespace weld{ class Dialog; class Window; } class AbstractFmShowColsDialog : public VclAbstractDialog { protected: virtual ~AbstractFmShowColsDialog() override = default; public: virtual void SetColumns(const css::uno::Reference< css::container::XIndexContainer>& xCols)= 0; }; class AbstractSvxZoomDialog : public VclAbstractDialog { protected: virtual ~AbstractSvxZoomDialog() override = default; public: virtual void SetLimits( sal_uInt16 nMin, sal_uInt16 nMax ) = 0; virtual void HideButton( ZoomButtonId nBtnId )= 0; virtual const SfxItemSet* GetOutputItemSet() const = 0 ; }; class AbstractSpellDialog : public VclAbstractDialog { protected: virtual ~AbstractSpellDialog() override = default; public: virtual void InvalidateDialog() = 0; virtual std::shared_ptr GetController() = 0; virtual SfxBindings& GetBindings() = 0; }; class AbstractTitleDialog :public VclAbstractDialog { protected: virtual ~AbstractTitleDialog() override = default; public: virtual OUString GetTitle() const =0; }; class AbstractGalleryIdDialog :public VclAbstractDialog { protected: virtual ~AbstractGalleryIdDialog() override = default; public: virtual sal_uInt32 GetId() const =0; }; class AbstractURLDlg :public VclAbstractDialog { protected: virtual ~AbstractURLDlg() override = default; public: virtual OUString GetURL() const = 0; virtual OUString GetAltText() const = 0; virtual OUString GetDesc() const = 0; virtual OUString GetTarget() const = 0; virtual OUString GetName() const = 0; }; class AbstractSvxSearchSimilarityDialog :public VclAbstractDialog { protected: virtual ~AbstractSvxSearchSimilarityDialog() override = default; public: virtual sal_uInt16 GetOther() =0 ; virtual sal_uInt16 GetShorter() =0 ; virtual sal_uInt16 GetLonger() =0 ; virtual bool IsRelaxed() =0 ; }; class AbstractSvxJSearchOptionsDialog :public VclAbstractDialog { protected: virtual ~AbstractSvxJSearchOptionsDialog() override = default; public: virtual TransliterationFlags GetTransliterationFlags() const = 0; }; class AbstractFmInputRecordNoDialog :public VclAbstractDialog { protected: virtual ~AbstractFmInputRecordNoDialog() override = default; public: virtual void SetValue(tools::Long dNew) = 0; virtual tools::Long GetValue() const = 0; }; class AbstractSvxNewDictionaryDialog :public VclAbstractDialog { protected: virtual ~AbstractSvxNewDictionaryDialog() override = default; public: virtual css::uno::Reference< css::linguistic2::XDictionary > GetNewDictionary() = 0; }; class AbstractSvxNameDialog : public VclAbstractDialog { protected: virtual ~AbstractSvxNameDialog() override = default; public: virtual void GetName( OUString& rName ) = 0; virtual void SetCheckNameHdl( const Link& rLink, bool bCheckImmediately = false ) = 0; virtual void SetCheckNameTooltipHdl( const Link& rLink ) = 0; virtual void SetEditHelpId(const OUString&) = 0; virtual void SetHelpId( const OUString& ) = 0; virtual void SetText( const OUString& rStr ) = 0; }; class AbstractSvxObjectNameDialog :public VclAbstractDialog { protected: virtual ~AbstractSvxObjectNameDialog() override = default; public: virtual void GetName(OUString& rName) = 0; virtual void SetCheckNameHdl(const Link& rLink) = 0; }; class AbstractSvxObjectTitleDescDialog :public VclAbstractDialog { protected: virtual ~AbstractSvxObjectTitleDescDialog() override = default; public: virtual void GetTitle(OUString& rTitle) = 0; virtual void GetDescription(OUString& rDescription) = 0; virtual void IsDecorative(bool & rIsDecorative) = 0; }; /// Abstract class provides the get information from the numbering and position dialog. class AbstractSvxBulletAndPositionDlg :public VclAbstractDialog { protected: virtual ~AbstractSvxBulletAndPositionDlg() override = default; public: virtual const SfxItemSet* GetOutputItemSet( SfxItemSet* pSet) const = 0 ; virtual bool IsApplyToMaster() = 0; virtual bool IsSlideScope() = 0; }; class AbstractSvxMultiPathDialog : public VclAbstractDialog { protected: virtual ~AbstractSvxMultiPathDialog() override = default; public: virtual OUString GetPath() const = 0; virtual void SetPath( const OUString& rPath ) = 0; virtual void SetTitle( const OUString& rNewTitle ) = 0; }; class AbstractSvxHpLinkDlg : public VclAbstractDialog { protected: virtual ~AbstractSvxHpLinkDlg() override = default; public: virtual std::shared_ptr GetController() = 0; virtual bool QueryClose() = 0; }; struct FmFoundRecordInformation; class AbstractFmSearchDialog :public VclAbstractDialog { protected: virtual ~AbstractFmSearchDialog() override = default; public: virtual void SetFoundHandler(const Link& lnk) = 0; virtual void SetCanceledNotFoundHdl(const Link& lnk)=0; virtual void SetActiveField(const OUString& strField)=0; }; class AbstractGraphicFilterDialog :public VclAbstractDialog { protected: virtual ~AbstractGraphicFilterDialog() override = default; public: virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) = 0; }; class AbstractSvxAreaTabDialog :public SfxAbstractTabDialog { protected: virtual ~AbstractSvxAreaTabDialog() override = default; }; struct SvxSwFrameValidation; class AbstractSvxTransformTabDialog : public SfxAbstractTabDialog { protected: virtual ~AbstractSvxTransformTabDialog() override = default; public: virtual void SetValidateFramePosLink( const Link& rLink ) = 0; }; class AbstractSvxCaptionDialog : public SfxAbstractTabDialog { protected: virtual ~AbstractSvxCaptionDialog() override = default; public: virtual void SetValidateFramePosLink( const Link& rLink ) = 0; }; class AbstractSvxPostItDialog : public VclAbstractDialog { protected: virtual ~AbstractSvxPostItDialog() override = default; public: virtual void SetText( const OUString& rStr ) = 0; virtual const SfxItemSet* GetOutputItemSet() const = 0; virtual void SetPrevHdl( const Link& rLink ) = 0; virtual void SetNextHdl( const Link& rLink ) = 0; virtual void EnableTravel(bool bNext, bool bPrev) = 0; virtual OUString GetNote() = 0; virtual void SetNote(const OUString& rTxt) = 0; virtual void ShowLastAuthor(const OUString& rAuthor, const OUString& rDate) = 0; virtual void DontChangeAuthor() = 0; virtual void HideAuthor() = 0; virtual std::shared_ptr GetDialog() = 0; }; class SvxAbstractSplitTableDialog : public VclAbstractDialog { protected: virtual ~SvxAbstractSplitTableDialog() override = default; public: virtual bool IsHorizontal() const = 0; virtual bool IsProportional() const = 0; virtual tools::Long GetCount() const = 0; virtual void SetSplitVerticalByDefault() = 0; }; class SvxAbstractNewTableDialog { protected: virtual ~SvxAbstractNewTableDialog() = default; public: virtual sal_Int32 getRows() const = 0; virtual sal_Int32 getColumns() const = 0; virtual std::shared_ptr getDialogController() = 0; }; class SvxAbstractInsRowColDlg : public VclAbstractDialog { protected: virtual ~SvxAbstractInsRowColDlg() override = default; public: virtual bool isInsertBefore() const = 0; virtual sal_uInt16 getInsertCount() const = 0; }; class SVXCORE_DLLPUBLIC SvxAbstractDialogFactory : public SfxAbstractDialogFactory, public EditAbstractDialogFactory { public: static SvxAbstractDialogFactory* Create(); virtual ~SvxAbstractDialogFactory() override; virtual VclPtr CreateTextTabDialog( weld::Window* pParent, const SfxItemSet* pAttrSet, SdrView* pView ) = 0 ; virtual VclPtr CreateCaptionDialog(weld::Window* pParent, const SdrView* pView, SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) = 0; virtual VclPtr CreateFmShowColsDialog(weld::Window* pParent) = 0; virtual VclPtr CreateSvxZoomDialog(weld::Window* pParent, const SfxItemSet& rCoreSet) = 0; virtual VclPtr CreateSvxSpellDialog(weld::Window* pParent, SfxBindings* pBindings, svx::SpellDialogChildWindow* pSpellChildWindow )=0; virtual VclPtr CreateActualizeProgressDialog(weld::Widget* pParent, GalleryTheme* pThm) = 0; virtual VclPtr CreateTitleDialog(weld::Widget* pParent, const OUString& rOldText) = 0; virtual VclPtr CreateGalleryIdDialog(weld::Widget* pParent, GalleryTheme* pThm) = 0; virtual VclPtr CreateGalleryThemePropertiesDialog(weld::Widget* pParent, ExchangeData* pData, SfxItemSet* pItemSet ) = 0; virtual VclPtr CreateURLDialog(weld::Widget* pParent, const OUString& rURL, const OUString& rAltText, const OUString& rDescription, const OUString& rTarget, const OUString& rName, TargetList& rTargetList ) = 0; virtual VclPtr CreateTabItemDialog(weld::Window* pParent, const SfxItemSet& rSet) = 0; virtual VclPtr CreateSvxSearchAttributeDialog(weld::Window* pParent, SearchAttrItemList& rLst, const WhichRangesContainer& pWhRanges)=0; virtual VclPtr CreateSvxSearchSimilarityDialog( weld::Window* pParent, bool bRelax, sal_uInt16 nOther, sal_uInt16 nShorter, sal_uInt16 nLonger ) = 0; // add for SvxBorderBackgroundDlg virtual VclPtr CreateSvxBorderBackgroundDlg( weld::Window* pParent, const SfxItemSet& rCoreSet, bool bEnableDrawingLayerFillStyles) = 0; virtual VclPtr CreateSvxTransformTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrView* pView, SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) = 0; virtual VclPtr CreateSchTransformTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrView* pSdrView, bool bSizeTabPage) = 0; virtual VclPtr CreateSvxJSearchOptionsDialog(weld::Window* pParent, const SfxItemSet& rOptionsSet, TransliterationFlags nInitialFlags) = 0; virtual VclPtr CreateFmInputRecordNoDialog(weld::Window* pParent) = 0; virtual VclPtr CreateSvxNewDictionaryDialog(weld::Window* pParent) = 0; virtual VclPtr CreateSvxEditDictionaryDialog(weld::Window* pParent, const OUString& rName) = 0; virtual VclPtr CreateSvxNameDialog(weld::Window* pParent, const OUString& rName, const OUString& rDesc, const OUString& rTitle = "" ) = 0; // #i68101# virtual VclPtr CreateSvxObjectNameDialog(weld::Window* pParent, const OUString& rName) = 0; virtual VclPtr CreateSvxObjectTitleDescDialog(weld::Window* pParent, const OUString& rTitle, const OUString& rDescription, bool isDecorative) = 0; virtual VclPtr CreateSvxMultiPathDialog(weld::Window* pParent) = 0 ; virtual VclPtr CreateSvxPathSelectDialog(weld::Window* pParent) = 0 ; virtual VclPtr CreateSvxHpLinkDlg(SfxChildWindow* pChild, SfxBindings* pBindings, weld::Window* pParent) = 0; virtual VclPtr CreateFmSearchDialog(weld::Window* pParent, const OUString& strInitialText, const ::std::vector< OUString >& _rContexts, sal_Int16 nInitialContext, const Link& lnkContextSupplier)=0; virtual VclPtr CreateGraphicFilterEmboss(weld::Window* pParent, const Graphic& rGraphic)=0; virtual VclPtr CreateGraphicFilterPoster(weld::Window* pParent, const Graphic& rGraphic)=0; virtual VclPtr CreateGraphicFilterSepia(weld::Window* pParent, const Graphic& rGraphic)=0; virtual VclPtr CreateGraphicFilterSmooth(weld::Window* pParent, const Graphic& rGraphic, double nRadius)=0; virtual VclPtr CreateGraphicFilterSolarize(weld::Window* pParent, const Graphic& rGraphic)=0; virtual VclPtr CreateGraphicFilterMosaic(weld::Window* pParent, const Graphic& rGraphic)=0; virtual VclPtr CreateSvxAreaTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, bool bShadow, bool bSlideBackground) = 0 ; virtual VclPtr CreateSvxLineTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, //add forSvxLineTabDialog SdrModel* pModel, const SdrObject* pObj, bool bHasObj )=0; virtual VclPtr CreateSfxDialog( weld::Window* pParent, const SfxItemSet& rAttr, const SdrView* pView, sal_uInt32 nResId )=0; virtual VclPtr CreateCharMapDialog(weld::Window* pParent, const SfxItemSet& rAttr, const css::uno::Reference& rFrame) = 0; virtual VclPtr CreateEventConfigDialog(weld::Widget* pParent, const SfxItemSet& rAttr, const css::uno::Reference< css::frame::XFrame >& rFrame) = 0; virtual VclPtr CreateSvxPostItDialog(weld::Widget* pParent, const SfxItemSet& rCoreSet, bool bPrevNext = false) = 0; virtual VclPtr CreateSvxScriptOrgDialog(weld::Window* pParent, const OUString& rLanguage) override = 0; virtual DialogGetRanges GetDialogGetRangesFunc() = 0; virtual VclPtr CreateScriptSelectorDialog(weld::Window* pParent, const css::uno::Reference< css::frame::XFrame >& rxFrame) override = 0; virtual void ShowAsyncScriptErrorDialog(weld::Window* pParent, const css::uno::Any& rException) override = 0; virtual VclPtr CreateSvxMacroAssignDlg( weld::Window* _pParent, const css::uno::Reference< css::frame::XFrame >& _rxDocumentFrame, const bool _bUnoDialogMode, const css::uno::Reference< css::container::XNameReplace >& _rxEvents, const sal_uInt16 _nInitiallySelectedEvent ) = 0; virtual VclPtr CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet& rAttr, const SdrModel& rModel, bool bStyle)=0; virtual VclPtr CreateSvxSplitTableDialog(weld::Window* pParent, bool bIsTableVertical, tools::Long nMaxVertical) = 0; virtual std::shared_ptr CreateSvxNewTableDialog(weld::Window* pParent) = 0; virtual VclPtr CreateSvxInsRowColDlg(weld::Window* pParent, bool bCol, const OUString& rHelpId) = 0; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */