From 940b4d1848e8c70ab7642901a68594e8016caffc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 18:51:28 +0200 Subject: Adding upstream version 1:7.0.4. Signed-off-by: Daniel Baumann --- sw/source/uibase/inc/regionsw.hxx | 257 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 sw/source/uibase/inc/regionsw.hxx (limited to 'sw/source/uibase/inc/regionsw.hxx') diff --git a/sw/source/uibase/inc/regionsw.hxx b/sw/source/uibase/inc/regionsw.hxx new file mode 100644 index 000000000..adb2681ef --- /dev/null +++ b/sw/source/uibase/inc/regionsw.hxx @@ -0,0 +1,257 @@ +/* -*- 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_SW_SOURCE_UIBASE_INC_REGIONSW_HXX +#define INCLUDED_SW_SOURCE_UIBASE_INC_REGIONSW_HXX + +#include +#include + +#include "condedit.hxx" +#include +#include +#include "numberingtypelistbox.hxx" +#include + +#include +#include + +class SwWrtShell; + +namespace sfx2 +{ + class DocumentInserter; + class FileDialogHelper; +} + +// dialog "edit regions" +class SectRepr; +typedef std::map> SectReprs_t; + +class SwEditRegionDlg : public SfxDialogController +{ + bool m_bSubRegionsFilled; + + SwWrtShell& rSh; + SectReprs_t m_SectReprs; + const SwSection* pCurrSect; + std::unique_ptr m_pDocInserter; + + bool bDontCheckPasswd :1; + + std::unique_ptr m_xCurName; + std::unique_ptr m_xTree; + std::unique_ptr m_xFileCB; + std::unique_ptr m_xDDECB; + std::unique_ptr m_xDDEFrame; + std::unique_ptr m_xFileNameFT; + std::unique_ptr m_xDDECommandFT; + std::unique_ptr m_xFileNameED; + std::unique_ptr m_xFilePB; + std::unique_ptr m_xSubRegionFT; + std::unique_ptr m_xSubRegionED; + std::unique_ptr m_xProtectCB; + std::unique_ptr m_xPasswdCB; + std::unique_ptr m_xPasswdPB; + std::unique_ptr m_xHideCB; + std::unique_ptr m_xConditionFT; + std::unique_ptr m_xConditionED; + // #114856# edit in readonly sections + std::unique_ptr m_xEditInReadonlyCB; + std::unique_ptr m_xOK; + std::unique_ptr m_xOptionsPB; + std::unique_ptr m_xDismiss; + std::unique_ptr m_xHideFrame; + + void RecurseList(const SwSectionFormat* pFormat, const weld::TreeIter* pIter); + size_t FindArrPos(const SwSectionFormat* pFormat); + + DECL_LINK( GetFirstEntryHdl, weld::TreeView&, void ); + + DECL_LINK( OkHdl, weld::Button&, void ); + DECL_LINK( NameEditHdl, weld::Entry&, void ); + DECL_LINK( ConditionEditHdl, weld::Entry&, void ); + + void ChangePasswd(bool bChange); + DECL_LINK( TogglePasswdHdl, weld::ToggleButton&, void ); + DECL_LINK( ChangePasswdHdl, weld::Button&, void ); + DECL_LINK( ChangeProtectHdl, weld::ToggleButton&, void ); + DECL_LINK( ChangeHideHdl, weld::ToggleButton&, void ); + // #114856# edit in readonly sections + DECL_LINK( ChangeEditInReadonlyHdl, weld::ToggleButton&, void ); + DECL_LINK( ChangeDismissHdl, weld::Button&, void); + DECL_LINK( UseFileHdl, weld::ToggleButton&, void ); + DECL_LINK( FileSearchHdl, weld::Button&, void ); + DECL_LINK( OptionsHdl, weld::Button&, void ); + DECL_LINK( FileNameComboBoxHdl, weld::ComboBox&, void ); + DECL_LINK( FileNameEntryHdl, weld::Entry&, void ); + DECL_LINK( DDEHdl, weld::ToggleButton&, void ); + DECL_LINK( DlgClosedHdl, sfx2::FileDialogHelper*, void ); + DECL_LINK( SubRegionEventHdl, weld::ComboBox&, void ); + + bool CheckPasswd(weld::ToggleButton* pBox = nullptr); + +public: + SwEditRegionDlg(weld::Window* pParent, SwWrtShell& rWrtSh); + virtual ~SwEditRegionDlg() override; + + void SelectSection(const OUString& rSectionName); + +}; + +// dialog "insert region" +class SwInsertSectionTabPage : public SfxTabPage +{ + OUString m_sFileName; + OUString m_sFilterName; + OUString m_sFilePasswd; + + css::uno::Sequence m_aNewPasswd; + SwWrtShell* m_pWrtSh; + std::unique_ptr m_pDocInserter; + + std::unique_ptr m_xCurName; + std::unique_ptr m_xFileCB; + std::unique_ptr m_xDDECB; + std::unique_ptr m_xDDECommandFT; + std::unique_ptr m_xFileNameFT; + std::unique_ptr m_xFileNameED; + std::unique_ptr m_xFilePB; + std::unique_ptr m_xSubRegionFT; + std::unique_ptr m_xSubRegionED; + std::unique_ptr m_xProtectCB; + std::unique_ptr m_xPasswdCB; + std::unique_ptr m_xPasswdPB; + std::unique_ptr m_xHideCB; + std::unique_ptr m_xConditionFT; + std::unique_ptr m_xConditionED; + // #114856# edit in readonly sections + std::unique_ptr m_xEditInReadonlyCB; + + void ChangePasswd(bool bChange); + + DECL_LINK( ChangeHideHdl, weld::ToggleButton&, void ); + DECL_LINK( ChangeProtectHdl, weld::ToggleButton&, void ); + DECL_LINK( ChangePasswdHdl, weld::Button&, void ); + DECL_LINK( TogglePasswdHdl, weld::ToggleButton&, void ); + DECL_LINK( NameEditHdl, weld::ComboBox&, void ); + DECL_LINK( UseFileHdl, weld::ToggleButton&, void ); + DECL_LINK( FileSearchHdl, weld::Button&, void ); + DECL_LINK( DDEHdl, weld::ToggleButton&, void ); + DECL_LINK( DlgClosedHdl, sfx2::FileDialogHelper*, void ); + +public: + SwInsertSectionTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rAttrSet); + virtual ~SwInsertSectionTabPage() override; + + void SetWrtShell(SwWrtShell& rSh); + + virtual bool FillItemSet( SfxItemSet* ) override; + virtual void Reset( const SfxItemSet* ) override; + + static std::unique_ptr Create( weld::Container* pPage, weld::DialogController* pController, + const SfxItemSet* rAttrSet); +}; + +class SwSectionFootnoteEndTabPage : public SfxTabPage +{ + std::unique_ptr m_xFootnoteNtAtTextEndCB; + std::unique_ptr m_xFootnoteNtNumCB; + std::unique_ptr m_xFootnoteOffsetLbl; + std::unique_ptr m_xFootnoteOffsetField; + std::unique_ptr m_xFootnoteNtNumFormatCB; + std::unique_ptr m_xFootnotePrefixFT; + std::unique_ptr m_xFootnotePrefixED; + std::unique_ptr m_xFootnoteNumViewBox; + std::unique_ptr m_xFootnoteSuffixFT; + std::unique_ptr m_xFootnoteSuffixED; + std::unique_ptr m_xEndNtAtTextEndCB; + std::unique_ptr m_xEndNtNumCB; + std::unique_ptr m_xEndOffsetLbl; + std::unique_ptr m_xEndOffsetField; + std::unique_ptr m_xEndNtNumFormatCB; + std::unique_ptr m_xEndPrefixFT; + std::unique_ptr m_xEndPrefixED; + std::unique_ptr m_xEndNumViewBox; + std::unique_ptr m_xEndSuffixFT; + std::unique_ptr m_xEndSuffixED; + + DECL_LINK(FootEndHdl, weld::ToggleButton&, void); + void ResetState( bool bFootnote, const SwFormatFootnoteEndAtTextEnd& ); + +public: + SwSectionFootnoteEndTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rAttrSet); + virtual ~SwSectionFootnoteEndTabPage() override; + + virtual bool FillItemSet( SfxItemSet* ) override; + virtual void Reset( const SfxItemSet* ) override; + + static std::unique_ptr Create( weld::Container* pPage, weld::DialogController* pController, + const SfxItemSet* rAttrSet); +}; + +class SwSectionIndentTabPage : public SfxTabPage +{ + SvxParaPrevWindow m_aPreviewWin; + std::unique_ptr m_xBeforeMF; + std::unique_ptr m_xAfterMF; + std::unique_ptr m_xPreviewWin; + + DECL_LINK(IndentModifyHdl, weld::MetricSpinButton&, void); +public: + SwSectionIndentTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rAttrSet); + virtual ~SwSectionIndentTabPage() override; + + virtual bool FillItemSet( SfxItemSet* ) override; + virtual void Reset( const SfxItemSet* ) override; + + static std::unique_ptr Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet); + + void SetWrtShell(SwWrtShell const & rSh); +}; + +class SwInsertSectionTabDialog : public SfxTabDialogController +{ + SwWrtShell& rWrtSh; + std::unique_ptr m_pSectionData; + +protected: + virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual short Ok() override; +public: + SwInsertSectionTabDialog(weld::Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh); + virtual ~SwInsertSectionTabDialog() override; + + void SetSectionData(SwSectionData const& rSect); + SwSectionData * GetSectionData() { return m_pSectionData.get(); } +}; + +class SwSectionPropertyTabDialog : public SfxTabDialogController +{ + SwWrtShell& rWrtSh; + +protected: + virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; +public: + SwSectionPropertyTabDialog(weld::Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh); + virtual ~SwSectionPropertyTabDialog() override; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3