Quelle unocoll.hxx
Sprache: 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 .
*/
#ifndef INCLUDED_SW_INC_UNOCOLL_HXX
#define INCLUDED_SW_INC_UNOCOLL_HXX
#include <limits.h>
#include "flyenum.hxx"
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/container/XEnumerationAccess.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
#include <cppuhelper/implbase.hxx>
#include "swdllapi.h"
class SwDoc;
class SwFrameFormat;
namespace com::sun::star::text
{
class XTextTable;
class XTextSection;
class XFootnote;
}
class SwFormatFootnote;
class SwSectionFormat;
struct SvEventDescription;
class SwXFootnote;
class SwXTextSection;
class SwXTextTable;
const SvEventDescription* sw_GetSupportedMacroItems();
class SwUnoCollection
{
SwDoc* m_pDoc;
public :
SwUnoCollection(SwDoc* p) :
m_pDoc(p){}
virtual ~SwUnoCollection() {}
virtual void Invalidate();
protected :
bool IsValid() const { return m_pDoc; }
SwDoc& GetDoc() const ;
};
/** entries in this enum are mapped in an array in unocoll.cxx */
enum class SwServiceType {
TypeTextTable = 0 ,
TypeTextFrame = 1 ,
TypeGraphic = 2 ,
TypeOLE = 3 ,
TypeBookmark = 4 ,
TypeFootnote = 5 ,
TypeEndnote = 6 ,
TypeIndexMark = 7 ,
TypeIndex = 8 ,
ReferenceMark = 9 ,
StyleCharacter = 10 ,
StyleParagraph = 11 ,
StyleFrame = 12 ,
StylePage = 13 ,
StyleNumbering = 14 ,
ContentIndexMark = 15 ,
ContentIndex = 16 ,
UserIndexMark = 17 ,
UserIndex = 18 ,
TextSection = 19 ,
FieldTypeDateTime = 20 ,
FieldTypeUser = 21 ,
FieldTypeSetExp = 22 ,
FieldTypeGetExp = 23 ,
FieldTypeFileName = 24 ,
FieldTypePageNum = 25 ,
FieldTypeAuthor = 26 ,
FieldTypeChapter = 27 ,
FieldTypeDummy0 = 28 ,
FieldTypeGetReference = 29 ,
FieldTypeConditionedText = 30 ,
FieldTypeAnnotation = 31 ,
FieldTypeInput = 32 ,
FieldTypeMacro = 33 ,
FieldTypeDDE = 34 ,
FieldTypeHiddenPara = 35 ,
FieldTypeDocInfo = 36 ,
FieldTypeTemplateName = 37 ,
FieldTypeUserExt = 38 ,
FieldTypeRefPageSet = 39 ,
FieldTypeRefPageGet = 40 ,
FieldTypeJumpEdit = 41 ,
FieldTypeScript = 42 ,
FieldTypeDatabaseNextSet = 43 ,
FieldTypeDatabaseNumSet = 44 ,
FieldTypeDatabaseSetNum = 45 ,
FieldTypeDatabase = 46 ,
FieldTypeDatabaseName = 47 ,
FieldTypeTableFormula = 48 ,
FieldTypePageCount = 49 ,
FieldTypeParagraphCount = 50 ,
FieldTypeWordCount = 51 ,
FieldTypeCharacterCount = 52 ,
FieldTypeTableCount = 53 ,
FieldTypeGraphicObjectCount = 54 ,
FieldTypeEmbeddedObjectCount = 55 ,
FieldTypeDocInfoChangeAuthor = 56 ,
FieldTypeDocInfoChangeDateTime = 57 ,
FieldTypeDocInfoEditTime = 58 ,
FieldTypeDocInfoDescription = 59 ,
FieldTypeDocInfoCreateAuthor = 60 ,
FieldTypeDocInfoCreateDateTime = 61 ,
FieldTypePageCountRange = 62 ,
FieldTypeDummy1 = 63 ,
FieldTypeDummy2 = 64 ,
FieldTypeDummy3 = 65 ,
FieldTypeDocInfoCustom = 66 ,
FieldTypeDocInfoPrintAuthor = 67 ,
FieldTypeDocInfoPrintDateTime = 68 ,
FieldTypeDocInfoKeywords = 69 ,
FieldTypeDocInfoSubject = 70 ,
FieldTypeDocInfoTitle = 71 ,
FieldTypeDocInfoRevision = 72 ,
FieldTypeBibliography = 73 ,
FieldTypeCombinedCharacters = 74 ,
FieldTypeDropdown = 75 ,
FieldTypeMetafield = 76 ,
FieldTypeDummy4 = 77 ,
FieldTypeDummy5 = 78 ,
FieldTypeDummy6 = 79 ,
FieldTypeDummy7 = 80 ,
FieldMasterUser = 81 ,
FieldMasterDDE = 82 ,
FieldMasterSetExp = 83 ,
FieldMasterDatabase = 84 ,
FieldMasterBibliography = 85 ,
FieldMasterDummy2 = 86 ,
FieldMasterDummy3 = 87 ,
FieldMasterDummy4 = 88 ,
FieldMasterDummy5 = 89 ,
IndexIllustrations = 90 ,
IndexObjects = 91 ,
IndexTables = 92 ,
IndexBibliography = 93 ,
Paragraph = 94 ,
FieldTypeInputUser = 95 ,
FieldTypeHiddenText = 96 ,
StyleConditionalParagraph = 97 ,
NumberingRules = 98 ,
TextColumns = 99 ,
IndexHeaderSection = 100 ,
Defaults = 101 ,
IMapRectangle = 102 ,
IMapCircle = 103 ,
IMapPolygon = 104 ,
TypeTextGraphic = 105 ,
Chart2DataProvider = 106 ,
TypeFieldMark = 107 ,
TypeFormFieldMark = 108 ,
TypeMeta = 109 ,
VbaObjectProvider = 110 ,
VbaCodeNameProvider = 111 ,
VbaProjectNameProvider = 112 ,
VbaGlobals = 113 ,
StyleTable = 114 ,
StyleCell = 115 ,
LineBreak = 116 ,
ContentControl = 117 ,
Invalid = USHRT_MAX
};
// case-corrected versions of service-names (see #i67811)
#define CSS_TEXT_TEXTFIELD_DATE_TIME "com.sun.star.text.textfield.DateTime"
#define CSS_TEXT_TEXTFIELD_USER "com.sun.star.text.textfield.User"
#define CSS_TEXT_TEXTFIELD_SET_EXPRESSION "com.sun.star.text.textfield.SetExpression"
#define CSS_TEXT_TEXTFIELD_GET_EXPRESSION "com.sun.star.text.textfield.GetExpression"
#define CSS_TEXT_TEXTFIELD_FILE_NAME "com.sun.star.text.textfield.FileName"
#define CSS_TEXT_TEXTFIELD_PAGE_NUMBER "com.sun.star.text.textfield.PageNumber"
#define CSS_TEXT_TEXTFIELD_AUTHOR "com.sun.star.text.textfield.Author"
#define CSS_TEXT_TEXTFIELD_CHAPTER "com.sun.star.text.textfield.Chapter"
#define CSS_TEXT_TEXTFIELD_GET_REFERENCE "com.sun.star.text.textfield.GetReference"
#define CSS_TEXT_TEXTFIELD_CONDITIONAL_TEXT "com.sun.star.text.textfield.ConditionalText"
#define CSS_TEXT_TEXTFIELD_ANNOTATION "com.sun.star.text.textfield.Annotation"
#define CSS_TEXT_TEXTFIELD_INPUT "com.sun.star.text.textfield.Input"
#define CSS_TEXT_TEXTFIELD_MACRO "com.sun.star.text.textfield.Macro"
#define CSS_TEXT_TEXTFIELD_DDE "com.sun.star.text.textfield.DDE"
#define CSS_TEXT_TEXTFIELD_HIDDEN_PARAGRAPH "com.sun.star.text.textfield.HiddenParagraph"
#define CSS_TEXT_TEXTFIELD_TEMPLATE_NAME "com.sun.star.text.textfield.TemplateName"
#define CSS_TEXT_TEXTFIELD_EXTENDED_USER "com.sun.star.text.textfield.ExtendedUser"
#define CSS_TEXT_TEXTFIELD_REFERENCE_PAGE_SET "com.sun.star.text.textfield.ReferencePageSet"
#define CSS_TEXT_TEXTFIELD_REFERENCE_PAGE_GET "com.sun.star.text.textfield.ReferencePageGet"
#define CSS_TEXT_TEXTFIELD_JUMP_EDIT "com.sun.star.text.textfield.JumpEdit"
#define CSS_TEXT_TEXTFIELD_SCRIPT "com.sun.star.text.textfield.Script"
#define CSS_TEXT_TEXTFIELD_DATABASE_NEXT_SET "com.sun.star.text.textfield.DatabaseNextSet"
#define CSS_TEXT_TEXTFIELD_DATABASE_NUMBER_OF_SET "com.sun.star.text.textfield.DatabaseNumberOfSet"
#define CSS_TEXT_TEXTFIELD_DATABASE_SET_NUMBER "com.sun.star.text.textfield.DatabaseSetNumber"
#define CSS_TEXT_TEXTFIELD_DATABASE "com.sun.star.text.textfield.Database"
#define CSS_TEXT_TEXTFIELD_DATABASE_NAME "com.sun.star.text.textfield.DatabaseName"
#define CSS_TEXT_TEXTFIELD_TABLE_FORMULA "com.sun.star.text.textfield.TableFormula"
#define CSS_TEXT_TEXTFIELD_PAGE_COUNT "com.sun.star.text.textfield.PageCount"
#define CSS_TEXT_TEXTFIELD_PAGE_COUNT_RANGE "com.sun.star.text.textfield.PageCountRange"
#define CSS_TEXT_TEXTFIELD_PARAGRAPH_COUNT "com.sun.star.text.textfield.ParagraphCount"
#define CSS_TEXT_TEXTFIELD_WORD_COUNT "com.sun.star.text.textfield.WordCount"
#define CSS_TEXT_TEXTFIELD_CHARACTER_COUNT "com.sun.star.text.textfield.CharacterCount"
#define CSS_TEXT_TEXTFIELD_TABLE_COUNT "com.sun.star.text.textfield.TableCount"
#define CSS_TEXT_TEXTFIELD_GRAPHIC_OBJECT_COUNT "com.sun.star.text.textfield.GraphicObjectCount"
#define CSS_TEXT_TEXTFIELD_EMBEDDED_OBJECT_COUNT "com.sun.star.text.textfield.EmbeddedObjectCount"
#define CSS_TEXT_TEXTFIELD_DOCINFO_CHANGE_AUTHOR "com.sun.star.text.textfield.docinfo.ChangeAuthor"
#define CSS_TEXT_TEXTFIELD_DOCINFO_CHANGE_DATE_TIME "com.sun.star.text.textfield.docinfo.ChangeDateTime"
#define CSS_TEXT_TEXTFIELD_DOCINFO_EDIT_TIME "com.sun.star.text.textfield.docinfo.EditTime"
#define CSS_TEXT_TEXTFIELD_DOCINFO_DESCRIPTION "com.sun.star.text.textfield.docinfo.Description"
#define CSS_TEXT_TEXTFIELD_DOCINFO_CREATE_AUTHOR "com.sun.star.text.textfield.docinfo.CreateAuthor"
#define CSS_TEXT_TEXTFIELD_DOCINFO_CREATE_DATE_TIME "com.sun.star.text.textfield.docinfo.CreateDateTime"
#define CSS_TEXT_TEXTFIELD_DOCINFO_PRINT_AUTHOR "com.sun.star.text.textfield.docinfo.PrintAuthor"
#define CSS_TEXT_TEXTFIELD_DOCINFO_PRINT_DATE_TIME "com.sun.star.text.textfield.docinfo.PrintDateTime"
#define CSS_TEXT_TEXTFIELD_DOCINFO_KEY_WORDS "com.sun.star.text.textfield.docinfo.KeyWords"
#define CSS_TEXT_TEXTFIELD_DOCINFO_SUBJECT "com.sun.star.text.textfield.docinfo.Subject"
#define CSS_TEXT_TEXTFIELD_DOCINFO_TITLE "com.sun.star.text.textfield.docinfo.Title"
#define CSS_TEXT_TEXTFIELD_DOCINFO_REVISION "com.sun.star.text.textfield.docinfo.Revision"
#define CSS_TEXT_TEXTFIELD_DOCINFO_CUSTOM "com.sun.star.text.textfield.docinfo.Custom"
#define CSS_TEXT_TEXTFIELD_BIBLIOGRAPHY "com.sun.star.text.textfield.Bibliography"
#define CSS_TEXT_TEXTFIELD_COMBINED_CHARACTERS "com.sun.star.text.textfield.CombinedCharacters"
#define CSS_TEXT_TEXTFIELD_DROP_DOWN "com.sun.star.text.textfield.DropDown"
#define CSS_TEXT_TEXTFIELD_INPUT_USER "com.sun.star.text.textfield.InputUser"
#define CSS_TEXT_TEXTFIELD_HIDDEN_TEXT "com.sun.star.text.textfield.HiddenText"
#define CSS_TEXT_FIELDMASTER_USER "com.sun.star.text.fieldmaster.User"
#define CSS_TEXT_FIELDMASTER_DDE "com.sun.star.text.fieldmaster.DDE"
#define CSS_TEXT_FIELDMASTER_SET_EXPRESSION "com.sun.star.text.fieldmaster.SetExpression"
#define CSS_TEXT_FIELDMASTER_DATABASE "com.sun.star.text.fieldmaster.Database"
#define CSS_TEXT_FIELDMASTER_BIBLIOGRAPHY "com.sun.star.text.fieldmaster.Bibliography"
class SwXServiceProvider
{
public :
static OUString GetProviderName(SwServiceType nObjectType);
static SwServiceType GetProviderType(std::u16string_view rServiceName);
static css::uno::Reference< css::uno::XInterface > MakeInstance(SwServiceType nObjectType, SwDoc & rDoc);
static css::uno::Sequence<OUString> GetAllServiceNames();
};
typedef
cppu::WeakImplHelper
<
css::container::XNameAccess,
css::container::XIndexAccess,
css::lang::XServiceInfo
>
SwCollectionBaseClass;
class SW_DLLPUBLIC SwXTextTables final : public SwCollectionBaseClass,
public SwUnoCollection
{
virtual ~SwXTextTables() override;
public :
SwXTextTables(SwDoc* pDoc);
//XIndexAccess
virtual sal_Int32 SAL_CALL getCount( ) override;
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
//XNameAccess
virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
//XElementAccess
virtual css::uno::Type SAL_CALL getElementType( ) override;
virtual sal_Bool SAL_CALL hasElements( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
rtl::Reference<SwXTextTable> getTextTableByName(std::u16string_view Name);
rtl::Reference<SwXTextTable> getTextTableByIndex(sal_Int32 nIndex);
static rtl::Reference<SwXTextTable> GetObject(SwFrameFormat& rFormat);
};
typedef
cppu::WeakImplHelper
<
css::container::XEnumerationAccess,
css::container::XNameAccess,
css::container::XIndexAccess,
css::lang::XServiceInfo
> SwXFramesBaseClass;
class SwXFrames : public SwXFramesBaseClass,
public SwUnoCollection
{
const FlyCntType m_eType;
protected :
virtual ~SwXFrames() override;
public :
SwXFrames(SwDoc* pDoc, FlyCntType eSet);
//XEnumerationAccess
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override;
//XIndexAccess
virtual sal_Int32 SAL_CALL getCount() override;
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
//XNameAccess
virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
//XElementAccess
virtual css::uno::Type SAL_CALL getElementType( ) override;
virtual sal_Bool SAL_CALL hasElements( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
};
class SwXTextFrames final : public SwXFrames
{
virtual ~SwXTextFrames() override;
public :
SwXTextFrames(SwDoc* pDoc);
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
};
class SwXTextGraphicObjects final : public SwXFrames
{
virtual ~SwXTextGraphicObjects() override;
public :
SwXTextGraphicObjects(SwDoc* pDoc);
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
};
class SwXTextEmbeddedObjects final : public SwXFrames
{
virtual ~SwXTextEmbeddedObjects() override;
public :
SwXTextEmbeddedObjects(SwDoc* pDoc);
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
};
class SwXTextSections final : public SwCollectionBaseClass,
public SwUnoCollection
{
virtual ~SwXTextSections() override;
public :
SwXTextSections(SwDoc* pDoc);
//XIndexAccess
virtual sal_Int32 SAL_CALL getCount() override;
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
//XNameAccess
virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
//XElementAccess
virtual css::uno::Type SAL_CALL getElementType( ) override;
virtual sal_Bool SAL_CALL hasElements( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
static rtl::Reference<SwXTextSection> GetObject( SwSectionFormat& rFormat );
};
class SwXBookmarks final : public SwCollectionBaseClass,
public SwUnoCollection
{
virtual ~SwXBookmarks() override;
public :
SwXBookmarks(SwDoc* pDoc);
//XIndexAccess
virtual sal_Int32 SAL_CALL getCount() override;
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
//XNameAccess
virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
//XElementAccess
virtual css::uno::Type SAL_CALL getElementType( ) override;
virtual sal_Bool SAL_CALL hasElements( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
};
class SwXNumberingRulesCollection final : public cppu::WeakImplHelper
<
css::container::XIndexAccess
>,
public SwUnoCollection
{
virtual ~SwXNumberingRulesCollection() override;
public :
SwXNumberingRulesCollection( SwDoc* pDoc );
//XIndexAccess
virtual sal_Int32 SAL_CALL getCount() override;
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
//XElementAccess
virtual css::uno::Type SAL_CALL getElementType( ) override;
virtual sal_Bool SAL_CALL hasElements( ) override;
};
typedef
cppu::WeakImplHelper
<
css::container::XIndexAccess,
css::lang::XServiceInfo
>
SwSimpleIndexAccessBaseClass;
class SW_DLLPUBLIC SwXFootnotes final : public SwSimpleIndexAccessBaseClass,
public SwUnoCollection
{
const bool m_bEndnote;
virtual ~SwXFootnotes() override;
public :
SwXFootnotes(bool bEnd, SwDoc* pDoc);
//XIndexAccess
virtual sal_Int32 SAL_CALL getCount() override;
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
//XElementAccess
virtual css::uno::Type SAL_CALL getElementType( ) override;
virtual sal_Bool SAL_CALL hasElements( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
rtl::Reference<SwXFootnote> getFootnoteByIndex(sal_Int32 nIndex) ;
static rtl::Reference<SwXFootnote> GetObject( SwDoc& rDoc, const SwFormatFootnote& rFormat );
};
class SwXReferenceMarks final : public SwCollectionBaseClass,
public SwUnoCollection
{
virtual ~SwXReferenceMarks() override;
public :
SwXReferenceMarks(SwDoc* pDoc);
//XIndexAccess
virtual sal_Int32 SAL_CALL getCount() override;
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
//XNameAccess
virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
//XElementAccess
virtual css::uno::Type SAL_CALL getElementType( ) override;
virtual sal_Bool SAL_CALL hasElements( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 in Prozent C=94 H=100 G=96
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland
2026-10-10
Neuigkeiten
Aktuelles
Motto des Tages
letze Version des Elbe Quellennavigators
Jenseits des Üblichen ....
Besucher
Statistik
#Sources=1126438
#Domains=1897691