diff options
Diffstat (limited to 'xmloff/inc/xmloff/txtparae.hxx')
-rw-r--r-- | xmloff/inc/xmloff/txtparae.hxx | 748 |
1 files changed, 748 insertions, 0 deletions
diff --git a/xmloff/inc/xmloff/txtparae.hxx b/xmloff/inc/xmloff/txtparae.hxx new file mode 100644 index 000000000000..5bb042c5c0ce --- /dev/null +++ b/xmloff/inc/xmloff/txtparae.hxx @@ -0,0 +1,748 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: txtparae.hxx,v $ + * $Revision: 1.7 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _XMLOFF_TEXTPARAE_HXX_ +#define _XMLOFF_TEXTPARAE_HXX_ + +#include "sal/config.h" +#include "xmloff/dllapi.h" +#include <rtl/ustring.hxx> +#include <com/sun/star/uno/Reference.h> +#include <com/sun/star/uno/Sequence.h> +#include <com/sun/star/beans/PropertyValue.hpp> +#include <xmloff/uniref.hxx> +#include <xmloff/xmlexppr.hxx> +#include <xmloff/styleexp.hxx> +#include <xmloff/xmltoken.hxx> +#include <xmloff/SinglePropertySetInfoCache.hxx> +#include <xmloff/XMLStringVector.hxx> + +// --> OD 2008-04-25 #refactorlists# +class XMLTextListsHelper; +#include <vector> +// <-- + +class SvXMLExport; +class SvXMLAutoStylePoolP; +class XMLTextFieldExport; +class OUStrings_Impl; +class OUStringsSort_Impl; +class XMLTextNumRuleInfo; +class XMLTextListAutoStylePool; +class SvLongs; +class XMLSectionExport; +class XMLIndexMarkExport; +class XMLRedlineExport; +struct XMLPropertyState; +class MultiPropertySetHelper; + +namespace com { namespace sun { namespace star +{ + namespace beans { class XPropertySet; class XPropertyState; + class XPropertySetInfo; } + namespace container { class XEnumerationAccess; class XEnumeration; class XIndexAccess; } + namespace text { class XTextContent; class XTextRange; class XText; + class XFootnote; class XTextFrame; class XTextSection; + class XTextField; + class XDocumentIndex; class XTextShapesSupplier; } +} } } + +namespace xmloff +{ + class OFormLayerXMLExport; + class BoundFrameSets; +} + +class XMLOFF_DLLPUBLIC XMLTextParagraphExport : public XMLStyleExport +{ + +// SvXMLExport& rExport; + SvXMLAutoStylePoolP& rAutoStylePool; + UniReference < SvXMLExportPropertyMapper > xParaPropMapper; + UniReference < SvXMLExportPropertyMapper > xTextPropMapper; + UniReference < SvXMLExportPropertyMapper > xFramePropMapper; + UniReference < SvXMLExportPropertyMapper > xAutoFramePropMapper; + UniReference < SvXMLExportPropertyMapper > xSectionPropMapper; + UniReference < SvXMLExportPropertyMapper > xRubyPropMapper; + + const ::std::auto_ptr< ::xmloff::BoundFrameSets > pBoundFrameSets; + XMLTextFieldExport *pFieldExport; + OUStrings_Impl *pListElements; + // --> OD 2008-05-07 #refactorlists# - no longer needed +// OUStringsSort_Impl *pExportedLists; + // <-- + XMLTextListAutoStylePool *pListAutoPool; + XMLSectionExport *pSectionExport; + XMLIndexMarkExport *pIndexMarkExport; + + /// may be NULL (if no redlines should be exported; e.g. in block mode) + XMLRedlineExport *pRedlineExport; + XMLStringVector *pHeadingStyles; + + sal_Bool bProgress; + + sal_Bool bBlock; + + // keep track of open rubies + ::rtl::OUString sOpenRubyText; + ::rtl::OUString sOpenRubyCharStyle; + sal_Bool bOpenRuby; + + // --> OD 2008-05-07 #refactorlists# + XMLTextListsHelper* mpTextListsHelper; + ::std::vector< XMLTextListsHelper* > maTextListsHelperStack; + // <-- + + enum FrameType { FT_TEXT, FT_GRAPHIC, FT_EMBEDDED, FT_SHAPE }; + +protected: + + const ::rtl::OUString sActualSize; + // --> OD 2009-07-22 #i73249# +// const ::rtl::OUString sAlternativeText; + const ::rtl::OUString sTitle; + const ::rtl::OUString sDescription; + // <-- + const ::rtl::OUString sAnchorCharStyleName; + const ::rtl::OUString sAnchorPageNo; + const ::rtl::OUString sAnchorType; + const ::rtl::OUString sBeginNotice; + const ::rtl::OUString sBookmark; + const ::rtl::OUString sCategory; + const ::rtl::OUString sChainNextName; + const ::rtl::OUString sCharStyleName; + const ::rtl::OUString sCharStyleNames; + const ::rtl::OUString sContourPolyPolygon; + const ::rtl::OUString sDocumentIndex; + const ::rtl::OUString sDocumentIndexMark; + const ::rtl::OUString sEndNotice; + const ::rtl::OUString sFootnote; + const ::rtl::OUString sFootnoteCounting; + const ::rtl::OUString sFrame; + const ::rtl::OUString sFrameHeightAbsolute; + const ::rtl::OUString sFrameHeightPercent; + const ::rtl::OUString sFrameStyleName; + const ::rtl::OUString sFrameWidthAbsolute; + const ::rtl::OUString sFrameWidthPercent; + const ::rtl::OUString sGraphicFilter; + const ::rtl::OUString sGraphicRotation; + const ::rtl::OUString sGraphicURL; + const ::rtl::OUString sHeight; + const ::rtl::OUString sHoriOrient; + const ::rtl::OUString sHoriOrientPosition; + const ::rtl::OUString sHyperLinkName; + const ::rtl::OUString sHyperLinkTarget; + const ::rtl::OUString sHyperLinkURL; + const ::rtl::OUString sIsAutomaticContour; + const ::rtl::OUString sIsCollapsed; + const ::rtl::OUString sIsPixelContour; + const ::rtl::OUString sIsStart; + const ::rtl::OUString sIsSyncHeightToWidth; + const ::rtl::OUString sIsSyncWidthToHeight; + const ::rtl::OUString sNumberingRules; + const ::rtl::OUString sNumberingType; + const ::rtl::OUString sPageDescName; + const ::rtl::OUString sPageStyleName; + const ::rtl::OUString sParaChapterNumberingLevel; + const ::rtl::OUString sParaConditionalStyleName; + const ::rtl::OUString sParagraphService; + const ::rtl::OUString sParaStyleName; + const ::rtl::OUString sPositionEndOfDoc; + const ::rtl::OUString sPrefix; + const ::rtl::OUString sRedline; + const ::rtl::OUString sReferenceId; + const ::rtl::OUString sReferenceMark; + const ::rtl::OUString sRelativeHeight; + const ::rtl::OUString sRelativeWidth; + const ::rtl::OUString sRuby; + const ::rtl::OUString sRubyAdjust; + const ::rtl::OUString sRubyCharStyleName; + const ::rtl::OUString sRubyText; + const ::rtl::OUString sServerMap; + const ::rtl::OUString sShapeService; + const ::rtl::OUString sSizeType; + const ::rtl::OUString sSoftPageBreak; + const ::rtl::OUString sStartAt; + const ::rtl::OUString sSuffix; + const ::rtl::OUString sTableService; + const ::rtl::OUString sText; + const ::rtl::OUString sTextContentService; + const ::rtl::OUString sTextEmbeddedService; + const ::rtl::OUString sTextEndnoteService; + const ::rtl::OUString sTextField; + const ::rtl::OUString sTextFieldService; + const ::rtl::OUString sTextFrameService; + const ::rtl::OUString sTextGraphicService; + const ::rtl::OUString sTextPortionType; + const ::rtl::OUString sTextSection; + const ::rtl::OUString sUnvisitedCharStyleName; + const ::rtl::OUString sVertOrient; + const ::rtl::OUString sVertOrientPosition; + const ::rtl::OUString sVisitedCharStyleName; + const ::rtl::OUString sWidth; + const ::rtl::OUString sWidthType; + const ::rtl::OUString sTextFieldStart; + const ::rtl::OUString sTextFieldEnd; + const ::rtl::OUString sTextFieldStartEnd; + + SinglePropertySetInfoCache aCharStyleNamesPropInfoCache; + +// SvXMLExport& GetExport() { return rExport; } +// const SvXMLExport& GetExport() const { return rExport; } + + UniReference < SvXMLExportPropertyMapper > GetParaPropMapper() const + { + return xParaPropMapper; + } + + UniReference < SvXMLExportPropertyMapper > GetTextPropMapper() const + { + return xTextPropMapper; + } + + UniReference < SvXMLExportPropertyMapper > GetFramePropMapper() const + { + return xFramePropMapper; + } + UniReference < SvXMLExportPropertyMapper > GetAutoFramePropMapper() const + { + return xAutoFramePropMapper; + } + UniReference < SvXMLExportPropertyMapper > GetSectionPropMapper() const + { + return xSectionPropMapper; + } + UniReference < SvXMLExportPropertyMapper > GetRubyPropMapper() const + { + return xRubyPropMapper; + } + + + SvXMLAutoStylePoolP& GetAutoStylePool() { return rAutoStylePool; } + const SvXMLAutoStylePoolP& GetAutoStylePool() const { return rAutoStylePool; } + +public: + ::rtl::OUString FindTextStyle( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + sal_Bool& rbHasCharStyle ) const; + ::rtl::OUString FindTextStyleAndHyperlink( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + sal_Bool& rbHyperlink, + sal_Bool& rbHasCharStyle, + sal_Bool& rbHasAutoStyle, + const XMLPropertyState** pAddState = NULL) const; + sal_Bool addHyperlinkAttributes( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertyState > & rPropState, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySetInfo > & rPropSetInfo ); + + void exportTextRangeEnumeration( + const ::com::sun::star::uno::Reference < + ::com::sun::star::container::XEnumeration > & rRangeEnum, + sal_Bool bAutoStyles, sal_Bool bProgress, + sal_Bool bPrvChrIsSpc = sal_True ); + +protected: + + sal_Int32 addTextFrameAttributes( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet >& rPropSet, + sal_Bool bShape, + ::rtl::OUString *pMinHeightValue = 0 ); + + virtual void exportStyleAttributes( + const ::com::sun::star::uno::Reference< + ::com::sun::star::style::XStyle > & rStyle ); + + void exportPageFrames( sal_Bool bAutoStyles, sal_Bool bProgress ); + void exportFrameFrames( sal_Bool bAutoStyles, sal_Bool bProgress, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextFrame > *pParentTxtFrame = 0 ); + + void exportNumStyles( sal_Bool bUsed ); + + void exportText( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText, + sal_Bool bAutoStyles, sal_Bool bProgress, sal_Bool bExportParagraph ); + + void exportText( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rBaseSection, + sal_Bool bAutoStyles, sal_Bool bProgress, sal_Bool bExportParagraph ); + + sal_Bool exportTextContentEnumeration( + const ::com::sun::star::uno::Reference < + ::com::sun::star::container::XEnumeration > & rContentEnum, + sal_Bool bAutoStyles, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rBaseSection, + sal_Bool bProgress, + sal_Bool bExportParagraph = sal_True, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet = 0, + sal_Bool bExportLevels = sal_True ); + void exportParagraph( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, sal_Bool bProgress, + sal_Bool bExportParagraph, + MultiPropertySetHelper& rPropSetHelper); + virtual void exportTable( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, sal_Bool bProgress ); + + void exportTextField( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextRange > & rTextRange, + sal_Bool bAutoStyles, sal_Bool bProgress ); + + void exportTextField( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextField> & xTextField, + const sal_Bool bAutoStyles, const sal_Bool bProgress, + const sal_Bool bRecursive ); + + void exportAnyTextFrame( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + FrameType eTxpe, + sal_Bool bAutoStyles, sal_Bool bProgress, sal_Bool bExportContent, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet = 0 ); + void _exportTextFrame( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySetInfo > & rPropSetInfo, + sal_Bool bProgress ); + inline void exportTextFrame( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, sal_Bool bProgress, sal_Bool bExportContent, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet = 0 ); + inline void exportShape( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet = 0 ); + + void exportContour( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySetInfo > & rPropSetInfo ); + void _exportTextGraphic( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySetInfo > & rPropSetInfo ); + inline void exportTextGraphic( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet = 0 ); + + virtual void _collectTextEmbeddedAutoStyles( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet ); + virtual void _exportTextEmbedded( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySetInfo > & rPropSetInfo ); + inline void exportTextEmbedded( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet = 0 ); + virtual void setTextEmbeddedGraphicURL( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet >& rPropSet, + ::rtl::OUString& rStreamName ) const; + + /// export a footnote and styles + void exportTextFootnote( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::rtl::OUString& sString, + sal_Bool bAutoStyles, sal_Bool bProgress ); + + /// helper for exportTextFootnote + void exportTextFootnoteHelper( + const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XFootnote > & rPropSet, + const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XText> & rText, + const ::rtl::OUString& sString, + sal_Bool bAutoStyles, + sal_Bool bIsEndnote, sal_Bool bProgress ); + + /// export footnote and endnote configuration elements + void exportTextFootnoteConfiguration(); + + void exportTextFootnoteConfigurationHelper( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet> & rFootnoteSupplier, + sal_Bool bIsEndnote); + + void exportTextMark( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet> & xPropSet, + const ::rtl::OUString sProperty, + const enum ::xmloff::token::XMLTokenEnum pElements[], + sal_Bool bAutoStyles); + + void exportIndexMark( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet> & rPropSet, + sal_Bool bAutoStyles); + + void exportSoftPageBreak( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet> & rPropSet, + sal_Bool bAutoStyles); + + void exportTextRange( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextRange > & rTextRange, + sal_Bool bAutoStyles, + sal_Bool& rPrevCharWasSpace ); + + void exportListChange( const XMLTextNumRuleInfo& rPrvInfo, + const XMLTextNumRuleInfo& rNextInfo ); + + /// check if current section or current list has changed; + /// calls exortListChange as appropriate + void exportListAndSectionChange( + ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rOldSection, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rNewSection, + const XMLTextNumRuleInfo& rOldList, + const XMLTextNumRuleInfo& rNewList, + sal_Bool bAutoStyles ); + + /// overload for exportListAndSectionChange; + /// takes new content rather than new section. + void exportListAndSectionChange( + ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rOldSection, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rNewContent, + const XMLTextNumRuleInfo& rOldList, + const XMLTextNumRuleInfo& rNewList, + sal_Bool bAutoStyles ); + void exportListAndSectionChange( + ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rOldSection, + MultiPropertySetHelper& rPropSetHelper, + sal_Int16 nTextSectionId, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rNewContent, + const XMLTextNumRuleInfo& rOldList, + const XMLTextNumRuleInfo& rNewList, + sal_Bool bAutoStyles ); + + /// export a redline text portion + void exportChange( + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + sal_Bool bAutoStyle); + + /// export a ruby + void exportRuby( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet> & rPortionPropSet, + sal_Bool bAutoStyles ); + + /// export a text:meta + void exportMeta( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet> & i_xPortion, + sal_Bool i_bAutoStyles, sal_Bool i_isProgress ); + +public: + + XMLTextParagraphExport( + SvXMLExport& rExp, + SvXMLAutoStylePoolP & rASP + ); + virtual ~XMLTextParagraphExport(); + + /// add autostyle for specified family + void Add( + sal_uInt16 nFamily, + MultiPropertySetHelper& rPropSetHelper, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const XMLPropertyState** pAddState = NULL ); + void Add( + sal_uInt16 nFamily, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const XMLPropertyState** pAddState = NULL, bool bDontSeek = false ); + + /// find style name for specified family and parent + ::rtl::OUString Find( + sal_uInt16 nFamily, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::rtl::OUString& rParent, + const XMLPropertyState** pAddState = NULL ) const; + + static SvXMLExportPropertyMapper *CreateShapeExtPropMapper( + SvXMLExport& rExport ); + static SvXMLExportPropertyMapper *CreateCharExtPropMapper( + SvXMLExport& rExport); + static SvXMLExportPropertyMapper *CreateParaExtPropMapper( + SvXMLExport& rExport); + static SvXMLExportPropertyMapper *CreateParaDefaultExtPropMapper( + SvXMLExport& rExport); + + // This methods exports all (or all used) styles + void exportTextStyles( sal_Bool bUsed + , sal_Bool bProg = sal_False + ); + + /// This method exports (text field) declarations etc. + void exportTextDeclarations(); + + /// export the (text field) declarations for a particular XText + void exportTextDeclarations( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText ); + + /// true: export only those declarations that are used; + /// false: export all declarations + void exportUsedDeclarations( sal_Bool bOnlyUsed ); + + /// Export the list of change information (enclosed by <tracked-changes>) + /// (or the necessary automatic styles) + void exportTrackedChanges(sal_Bool bAutoStyle); + + /// Export the list of change information (enclosed by <tracked-changes>) + /// (or the necessary automatic styles) + void exportTrackedChanges(const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText, + sal_Bool bAutoStyle ); + + /// Record tracked changes for this particular XText + /// (empty reference stop recording) + /// This should be used if tracked changes for e.g. footers are to + /// be exported seperately via the exportTrackedChanges(sal_Bool, + /// Reference<XText>) method. + void recordTrackedChangesForXText( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText ); + + + /// Stop recording tracked changes. + /// This is the same as calling recordTrackedChanges(...) with an + /// empty reference. + void recordTrackedChangesNoXText(); + + + // This method exports the given OUString + void exportText( + const ::rtl::OUString& rText, + sal_Bool& rPrevCharWasSpace ); + + // This method collects all automatic styles for the given XText + void collectTextAutoStyles( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText, + sal_Bool bIsProgress = sal_False, + sal_Bool bExportParagraph = sal_True ) + { + exportText( rText, sal_True, bIsProgress, bExportParagraph ); + } + + void collectTextAutoStyles( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rBaseSection, + sal_Bool bIsProgress = sal_False, + sal_Bool bExportParagraph = sal_True ) + { + exportText( rText, rBaseSection, sal_True, bIsProgress, bExportParagraph ); + } + + // It the model implements the xAutoStylesSupplier interface, the automatic + // styles can exported without iterating over the text portions + bool collectTextAutoStylesOptimized( + sal_Bool bIsProgress = sal_False ); + + // This method exports all automatic styles that have been collected. + virtual void exportTextAutoStyles(); + + void exportEvents( const ::com::sun::star::uno::Reference < com::sun::star::beans::XPropertySet > & rPropSet ); + // --> OD 2009-07-22 #i73249# +// void exportAlternativeText( const ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet > & rPropSet, +// const ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo > & rPropSetInfo ); + void exportTitleAndDescription( const ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet > & rPropSet, + const ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo > & rPropSetInfo ); + // <-- + + // This method exports the given XText + void exportText( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText, + sal_Bool bIsProgress = sal_False, + sal_Bool bExportParagraph = sal_True) + { + exportText( rText, sal_False, bIsProgress, bExportParagraph ); + } + + void exportText( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XText > & rText, + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextSection > & rBaseSection, + sal_Bool bIsProgress = sal_False, + sal_Bool bExportParagraph = sal_True) + { + exportText( rText, rBaseSection, sal_False, bIsProgress, bExportParagraph ); + } + + void exportFramesBoundToPage( sal_Bool bIsProgress = sal_False ) + { + exportPageFrames( sal_False, bIsProgress ); + } + void exportFramesBoundToFrame( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextFrame >& rParentTxtFrame, + sal_Bool bIsProgress = sal_False ) + { + exportFrameFrames( sal_False, bIsProgress, &rParentTxtFrame ); + } + inline const XMLTextListAutoStylePool& GetListAutoStylePool() const; + + void SetBlockMode( sal_Bool bSet ) { bBlock = bSet; } + sal_Bool IsBlockMode() const { return bBlock; } + + + UniReference < SvXMLExportPropertyMapper > GetParagraphPropertyMapper() const + { + return xParaPropMapper; + } + + + /** exclude form controls which are in mute sections. + * + * This method is necessary to prevent the form layer export from exporting + * control models whose controls are not represented in the document. To + * achieve this, this method iterates over all shapes, checks to see if + * they are control shapes, and if so, whether they should be exported or + * not. If not, the form layer export will be notified accordingly. + * + * The reason this method is located here is tha it needs to access the + * XMLSectionExport, which is only available here. + */ + void PreventExportOfControlsInMuteSections( + const ::com::sun::star::uno::Reference< + ::com::sun::star::container::XIndexAccess> & rShapes, + UniReference<xmloff::OFormLayerXMLExport> xFormExport ); + + SinglePropertySetInfoCache& GetCharStyleNamesPropInfoCache() { return aCharStyleNamesPropInfoCache; } + + sal_Int32 GetHeadingLevel( const ::rtl::OUString& rStyleName ); + + // --> OD 2008-05-08 #refactorlists# + void PushNewTextListsHelper(); + void PopTextListsHelper(); + // <-- + private: + XMLTextParagraphExport(XMLTextParagraphExport &); // private copy-ctor because of explicit copy-ctor of auto_ptr +}; + +inline const XMLTextListAutoStylePool& + XMLTextParagraphExport::GetListAutoStylePool() const +{ + return *pListAutoPool; +} + +inline void XMLTextParagraphExport::exportTextFrame( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, sal_Bool bIsProgress, sal_Bool bExportContent, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet) +{ + exportAnyTextFrame( rTextContent, FT_TEXT, bAutoStyles, bIsProgress, + bExportContent, pRangePropSet ); +} + +inline void XMLTextParagraphExport::exportTextGraphic( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet ) +{ + exportAnyTextFrame( rTextContent, FT_GRAPHIC, bAutoStyles, sal_False, + sal_True, pRangePropSet ); +} + +inline void XMLTextParagraphExport::exportTextEmbedded( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet ) +{ + exportAnyTextFrame( rTextContent, FT_EMBEDDED, bAutoStyles, sal_False, + sal_True, pRangePropSet ); +} + +inline void XMLTextParagraphExport::exportShape( + const ::com::sun::star::uno::Reference < + ::com::sun::star::text::XTextContent > & rTextContent, + sal_Bool bAutoStyles, + const ::com::sun::star::uno::Reference < + ::com::sun::star::beans::XPropertySet > *pRangePropSet ) +{ + exportAnyTextFrame( rTextContent, FT_SHAPE, bAutoStyles, sal_False, + sal_True, pRangePropSet ); +} + +#endif |