office-gobmx/sd/inc/sdabstdlg.hxx
Caolán McNamara 372060b8a3 pAttr is always dereferenced, use a reference here
Change-Id: I183a522704d0fbe2ba2907e75e8794621e94c178
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172022
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-08-19 15:14:50 +02:00

201 lines
8.5 KiB
C++

/* -*- 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 <vector>
#include <rtl/string.hxx>
#include <sfx2/tabdlg.hxx>
#include <svl/itemset.hxx>
#include <tools/solar.h>
#include <vcl/abstdlg.hxx>
#include <svx/svxdlg.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
#include "prlayout.hxx"
#include "pres.hxx"
#include "sddllapi.h"
namespace sd {
class View;
class ViewShell;
class DrawDocShell;
class DrawView;
}
class SfxObjectShell;
class SvxFieldData;
class GDIMetaFile;
class SdDrawDocument;
class SfxMedium;
class SdrObject;
class SfxStyleSheetBasePool;
class SfxStyleSheetBase;
class SdrModel;
class SdrView;
class Bitmap;
class SdPage;
class SdCustomShowList;
class SfxAbstractDialog;
class SfxAbstractTabDialog;
class AbstractCopyDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractCopyDlg() override = default;
public:
virtual void GetAttr( SfxItemSet& rOutAttrs ) = 0;
};
class AbstractSdCustomShowDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdCustomShowDlg() override = default;
public:
virtual bool IsCustomShow() const = 0;
};
class AbstractSdModifyFieldDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdModifyFieldDlg() override = default;
public:
virtual SvxFieldData* GetField() = 0;
virtual SfxItemSet GetItemSet() = 0;
};
class AbstractSdSnapLineDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdSnapLineDlg() override = default;
public:
virtual void GetAttr(SfxItemSet& rOutAttrs) = 0;
virtual void HideRadioGroup() = 0;
virtual void HideDeleteBtn() = 0;
virtual void SetInputFields(bool bEnableX, bool bEnableY) = 0;
virtual void SetText( const OUString& rStr ) = 0;
};
class AbstractSdInsertLayerDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdInsertLayerDlg() override = default;
public:
virtual void GetAttr( SfxItemSet& rOutAttrs ) = 0;
virtual void SetHelpId( const OUString& rHelpId ) = 0;
};
class AbstractSdInsertPagesObjsDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdInsertPagesObjsDlg() override = default;
public:
virtual std::vector<OUString> GetList ( const sal_uInt16 nType ) = 0;
virtual bool IsLink() = 0;
virtual bool IsRemoveUnnecessaryMasterPages() const = 0;
};
class AbstractMorphDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractMorphDlg() override = default;
public:
virtual void SaveSettings() const = 0;
virtual sal_uInt16 GetFadeSteps() const = 0;
virtual bool IsAttributeFade() const = 0;
virtual bool IsOrientationFade() const = 0;
};
class AbstractSdStartPresDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdStartPresDlg() override = default;
public:
virtual void GetAttr( SfxItemSet& rOutAttrs ) = 0;
};
class AbstractSdPresLayoutDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdPresLayoutDlg() override = default;
public:
virtual void GetAttr(SfxItemSet& rOutAttrs) = 0;
};
class AbstractSdVectorizeDlg : public VclAbstractDialog
{
protected:
virtual ~AbstractSdVectorizeDlg() override = default;
public:
virtual const GDIMetaFile& GetGDIMetaFile() const = 0;
};
class AbstractHeaderFooterDialog : public VclAbstractDialog
{
protected:
virtual ~AbstractHeaderFooterDialog() override = default;
};
class SdAbstractDialogFactory
{
public:
SD_DLLPUBLIC static SdAbstractDialogFactory* Create();
virtual VclPtr<AbstractSvxBulletAndPositionDlg> CreateSvxBulletAndPositionDlg(weld::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0;
virtual VclPtr<VclAbstractDialog> CreateBreakDlg(weld::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount ) = 0;
virtual VclPtr<AbstractCopyDlg> CreateCopyDlg(weld::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pView ) = 0;
virtual VclPtr<AbstractSdCustomShowDlg> CreateSdCustomShowDlg(weld::Window* pWindow, SdDrawDocument& rDrawDoc) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabCharDialog(weld::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabPageDialog(weld::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage, bool bIsImpressDoc) = 0;
virtual VclPtr<AbstractSdModifyFieldDlg> CreateSdModifyFieldDlg(weld::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet) = 0;
virtual VclPtr<AbstractSdSnapLineDlg> CreateSdSnapLineDlg(weld::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) = 0;
virtual VclPtr<AbstractSdInsertLayerDlg> CreateSdInsertLayerDlg(weld::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& rStr) = 0;
virtual VclPtr<AbstractSdInsertPagesObjsDlg> CreateSdInsertPagesObjsDlg(weld::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName) = 0;
virtual VclPtr<AbstractMorphDlg> CreateMorphDlg(weld::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdOutlineBulletTabDlg(weld::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdParagraphTabDlg(weld::Window* pWindow, const SfxItemSet* pAttr) = 0;
virtual VclPtr<AbstractSdStartPresDlg> CreateSdStartPresentationDlg(weld::Window* pWindow, const SfxItemSet& rInAttrs,
const std::vector<OUString> &rPageNames, SdCustomShowList* pCSList ) = 0;
virtual VclPtr<VclAbstractDialog> CreateRemoteDialog(weld::Window* pWindow) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdPresLayoutTemplateDlg(SfxObjectShell* pDocSh, weld::Window* pParent, bool bBackgroundDlg, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool) = 0;
virtual VclPtr<AbstractSdPresLayoutDlg> CreateSdPresLayoutDlg(weld::Window* pParent, ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabTemplateDlg(weld::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView) = 0;
virtual VclPtr<SfxAbstractDialog> CreatSdActionDialog(weld::Window* pParent, const SfxItemSet& rAttr, ::sd::View* pView) = 0;
virtual VclPtr<AbstractSdVectorizeDlg> CreateSdVectorizeDlg(weld::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) = 0;
virtual VclPtr<VclAbstractDialog> CreateMasterLayoutDialog(weld::Window* pParent, SdDrawDocument* pDoc, SdPage*) = 0;
virtual VclPtr<AbstractHeaderFooterDialog> CreateHeaderFooterDialog(sd::ViewShell* pViewShell,
weld::Window* pParent,
SdDrawDocument* pDoc,
SdPage* pCurrentPage) = 0;
virtual CreateTabPage GetSdOptionsContentsTabPageCreatorFunc() = 0;
virtual CreateTabPage GetSdPrintOptionsTabPageCreatorFunc() = 0;
virtual CreateTabPage GetSdOptionsMiscTabPageCreatorFunc() = 0;
virtual CreateTabPage GetSdOptionsSnapTabPageCreatorFunc() = 0;
virtual VclPtr<VclAbstractDialog> CreateSdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pDoc) = 0;
protected:
~SdAbstractDialogFactory() {}
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */