21#include <rtl/ustring.hxx>
23#include <com/sun/star/uno/Sequence.hxx>
24#include <com/sun/star/beans/PropertyValue.hpp>
25#include <com/sun/star/beans/XPropertySet.hpp>
26#include <com/sun/star/table/BorderLine2.hpp>
27#include <com/sun/star/text/WrapTextMode.hpp>
28#include <com/sun/star/uno/Any.h>
29#include <com/sun/star/drawing/XShape.hpp>
47 class XMultiServiceFactory;
62class DomainMapper_Impl;
63struct AnchoredObjectInfo;
143 std::map< PropertyIds, PropValue >
m_vMap;
147 typedef std::pair< PropertyIds, css::uno::Any >
Property;
153 css::uno::Sequence< css::beans::PropertyValue > GetPropertyValues(
bool bCharGrabBag =
true );
155 std::vector< PropertyIds > GetPropertyIds();
164 void InsertProps(
const PropertyMapPtr& rMap,
const bool bOverwrite =
true );
173 const css::uno::Reference< css::text::XFootnote >&
GetFootnote()
const {
return m_xFootnote; }
176 void SetFootnote(
const css::uno::Reference< css::text::XFootnote >& xFootnote,
const OUString& sStyleName)
178 m_xFootnote = xFootnote;
179 m_sFootnoteCharStyleName = sStyleName;
182 virtual void insertTableProperties(
const PropertyMap*,
const bool bOverwrite =
true );
184 const std::vector< RedlineParamsPtr >&
Redlines()
const {
return m_aRedlines; }
186 std::vector< RedlineParamsPtr >&
Redlines() {
return m_aRedlines; }
188 void printProperties();
191 void dumpXml()
const;
194 static css::table::ShadowFormat getShadowFromBorder(
const css::table::BorderLine2& rBorder );
210 ToFirstPageInSection = 1,
211 ToAllButFirstInSection = 2
288 void ApplyProperties_(
const css::uno::Reference< css::beans::XPropertySet >& xStyle );
298 css::uno::Reference< css::text::XTextColumns >
ApplyColumnProperties(
const css::uno::Reference< css::beans::XPropertySet >& xFollowPageStyle,
304 const css::uno::Reference< css::beans::XPropertySet >& xPrevStyle,
305 const css::uno::Reference< css::beans::XPropertySet >& xStyle,
306 bool bOmitRightHeader =
false,
bool bOmitLeftHeader =
false,
307 bool bOmitRightFooter =
false,
bool bOmitLeftFooter =
false );
310 const css::uno::Reference< css::beans::XPropertySet >& xStyle,
318 static void SetBorderDistance(
const css::uno::Reference< css::beans::XPropertySet >& xStyle,
359 void SetBorder(
BorderPosition ePos, sal_Int32 nLineDistance,
const css::table::BorderLine2& rBorderLine,
bool bShadow );
412void BeforeConvertToTextFrame(std::deque<css::uno::Any>& rFramedRedlines, std::vector<sal_Int32>& redPos, std::vector<sal_Int32>& redLen, std::vector<OUString>& redCell, std::vector<OUString>& redTable);
414void AfterConvertToTextFrame(DomainMapper_Impl& rDM_Impl, std::deque<css::uno::Any>& aFramedRedlines, std::vector<sal_Int32>& redPos, std::vector<sal_Int32>& redLen, std::vector<OUString>& redCell, std::vector<OUString>& redTable);
536#define WW_OUTLINE_MAX sal_Int16( 9 )
537#define WW_OUTLINE_MIN sal_Int16( 0 )
std::vector< beans::PropertyValue > m_aValues
css::uno::Any getProperty(sal_Int32 nPropId)
ParagraphProperties m_props
ParagraphProperties const & props() const
ParagraphProperties & props()
const OUString & GetParaStyleName() const
void Seth(sal_Int32 nSet)
css::uno::Reference< css::text::XTextRange > m_xEndingRange
sal_Int32 GetListId() const
sal_Int32 GethSpace() const
void SetParaId(const OUString &rSet)
sal_Int32 GetvAnchor() const
void SetDropCap(sal_Int32 nSet)
void ResetFrameProperties()
void SetyAlign(sal_Int32 nSet)
void SetListId(sal_Int32 nId)
void SethSpace(sal_Int32 nSet)
ParagraphProperties(ParagraphProperties const &)=default
sal_Int32 GethRule() const
sal_Int8 m_nDropCapLength
void SetvSpace(sal_Int32 nSet)
css::uno::Reference< css::text::XTextRange > m_xStartingRange
sal_Int32 GethAnchor() const
const OUString & GetParaId() const
const css::uno::Reference< css::text::XTextRange > & GetEndingRange() const
void Setw(sal_Int32 nSet)
void SetvAnchor(sal_Int32 nSet)
sal_Int32 GetxAlign() const
OUString m_sParaStyleName
void SethAnchor(sal_Int32 nSet)
void SetWrap(css::text::WrapTextMode nSet)
sal_Int32 GetLines() const
void SetDropCapLength(sal_Int8 nSet)
sal_Int8 GetDropCapLength() const
const css::uno::Reference< css::text::XTextRange > & GetStartingRange() const
void SetFrameMode(bool set=true)
sal_Int32 GetyAlign() const
ParagraphProperties & operator=(ParagraphProperties const &)=default
void SetParaStyleName(const OUString &rSet)
void Sety(sal_Int32 nSet)
void SethRule(sal_Int32 nSet)
css::text::WrapTextMode m_nWrap
void SetEndingRange(const css::uno::Reference< css::text::XTextRange > &xSet)
void SetLines(sal_Int32 nSet)
css::text::WrapTextMode GetWrap() const
void Setx(sal_Int32 nSet)
void SetxAlign(sal_Int32 nSet)
ParagraphProperties(ParagraphProperties &&)=default
void SetStartingRange(const css::uno::Reference< css::text::XTextRange > &xSet)
sal_Int32 GetvSpace() const
sal_Int32 GetDropCap() const
PropValue(css::uno::Any aValue, GrabBagType i_GrabBagType, bool bDocDefault)
PropValue(css::uno::Any aValue, GrabBagType i_GrabBagType)
GrabBagType getGrabBagType() const
GrabBagType m_GrabBagType
bool getIsDocDefault() const
const css::uno::Any & getValue() const
void SetFootnote(const css::uno::Reference< css::text::XFootnote > &xFootnote, const OUString &sStyleName)
std::pair< PropertyIds, css::uno::Any > Property
const OUString & GetFootnoteStyle() const
const css::uno::Reference< css::text::XFootnote > & GetFootnote() const
css::uno::Reference< css::text::XFootnote > m_xFootnote
std::map< PropertyIds, PropValue > m_vMap
std::vector< RedlineParamsPtr > m_aRedlines
std::vector< RedlineParamsPtr > & Redlines()
const std::vector< RedlineParamsPtr > & Redlines() const
std::vector< css::beans::PropertyValue > m_aValues
OUString m_sFootnoteCharStyleName
css::uno::Reference< css::text::XTextRange > m_xStartingRange
OUString m_sFirstPageStyleName
bool m_bEvenPageHeaderLinkToPrevious
std::vector< sal_Int32 > m_aColWidth
static void CopyHeaderFooterTextProperty(const css::uno::Reference< css::beans::XPropertySet > &xPrevStyle, const css::uno::Reference< css::beans::XPropertySet > &xStyle, PropertyIds ePropId)
void SetColumnCount(sal_Int16 nCount)
sal_Int32 GetBreakType() const
css::uno::Reference< css::text::XTextColumns > ApplyColumnProperties(const css::uno::Reference< css::beans::XPropertySet > &xFollowPageStyle, DomainMapper_Impl &rDM_Impl)
sal_Int32 m_nBorderDistances[4]
const css::uno::Reference< css::text::XTextRange > & GetStartingRange() const
void AppendColumnWidth(sal_Int32 nWidth)
void PrepareHeaderFooterProperties(bool bFirstPage)
css::uno::Reference< css::beans::XPropertySet > m_aFollowPageStyle
void ApplyBorderToPageStyles(DomainMapper_Impl &rDM_Impl, BorderApply eBorderApply, BorderOffsetFrom eOffsetFrom)
void SetBreakType(sal_Int32 nSet)
OUString m_sFollowPageStyleName
void ApplyProtectionProperties(css::uno::Reference< css::beans::XPropertySet > &xSection, DomainMapper_Impl &rDM_Impl)
Check if document is protected. If so, ensure a section exists, and apply its protected value.
bool IsFirstSection() const
bool m_bDefaultFooterLinkToPrevious
void SetBottomMargin(sal_Int32 nSet)
void SetLnnMin(sal_Int32 nValue)
void SetLeftMargin(sal_Int32 nSet)
void SetGridType(sal_Int32 nSet)
sal_Int32 m_nBottomMargin
std::vector< sal_Int32 > m_aColDistance
void SetHeaderTop(sal_Int32 nSet)
void SetDxtCharSpace(sal_Int32 nSet)
static void CopyHeaderFooter(const DomainMapper_Impl &rDM_Impl, const css::uno::Reference< css::beans::XPropertySet > &xPrevStyle, const css::uno::Reference< css::beans::XPropertySet > &xStyle, bool bOmitRightHeader=false, bool bOmitLeftHeader=false, bool bOmitRightFooter=false, bool bOmitLeftFooter=false)
BorderOffsetFrom m_eBorderOffsetFrom
static void SetBorderDistance(const css::uno::Reference< css::beans::XPropertySet > &xStyle, PropertyIds eMarginId, PropertyIds eDistId, sal_Int32 nDistance, BorderOffsetFrom eOffsetFrom, sal_uInt32 nLineWidth, DomainMapper_Impl &rDM_Impl)
void SetPageNumberType(sal_Int32 nSet)
void SetSeparatorLine(bool bSet)
void SetTitlePage(bool bSet)
sal_Int32 m_nColumnDistance
void SetBorder(BorderPosition ePos, sal_Int32 nLineDistance, const css::table::BorderLine2 &rBorderLine, bool bShadow)
bool m_bFirstPageHeaderLinkToPrevious
void SetPageNumber(sal_Int32 nSet)
void ClearHeaderFooterLinkToPrevious(bool bHeader, PageType eType)
sal_Int32 m_nGridLinePitch
sal_Int32 GetPageWidth() const
sal_Int32 m_nGutterMargin
void CopyLastHeaderFooter(bool bFirstPage, DomainMapper_Impl &rDM_Impl)
void ApplySectionProperties(const css::uno::Reference< css::beans::XPropertySet > &xSection, DomainMapper_Impl &rDM_Impl)
Apply section-specific properties: only valid to use after PageStyle has been determined by InheritOr...
bool m_bEvenPageFooterLinkToPrevious
void ApplyProperties_(const css::uno::Reference< css::beans::XPropertySet > &xStyle)
void HandleIncreasedAnchoredObjectSpacing(DomainMapper_Impl &rDM_Impl)
Increases paragraph spacing according to Word 2013+ needs if necessary.
void SetColumnDistance(sal_Int32 nDist)
void SetRightMargin(sal_Int32 nSet)
sal_Int16 ColumnCount() const
void SetGridLinePitch(sal_Int32 nSet)
void DontBalanceTextColumns()
css::uno::Reference< css::beans::XPropertySet > m_aFirstPageStyle
void SetEvenlySpaced(bool bSet)
void CloseSectionGroup(DomainMapper_Impl &rDM_Impl)
void SetGutterMargin(sal_Int32 nGutterMargin)
void InheritOrFinalizePageStyles(DomainMapper_Impl &rDM_Impl)
void SetBorderApply(BorderApply nSet)
sal_Int32 GetRightMargin() const
bool m_bSeparatorLineIsOn
void AppendColumnSpacing(sal_Int32 nDist)
void addRelativeWidthShape(css::uno::Reference< css::drawing::XShape > xShape)
void HandleMarginsHeaderFooter(bool bFirstPage, DomainMapper_Impl &rDM_Impl)
const OUString & GetPageStyleName(bool bFirstPage=false)
void SetLnnMod(sal_Int32 nValue)
css::uno::Reference< css::beans::XPropertySet > GetPageStyle(DomainMapper_Impl &rDM_Impl, bool bFirst)
void SetStart(const css::uno::Reference< css::text::XTextRange > &xRange)
sal_Int16 m_nPageNumberType
sal_Int32 m_nDxtCharSpace
void SetHeaderBottom(sal_Int32 nSet)
void SetGridSnapToChars(bool bSet)
void SetdxaLnn(sal_Int32 nValue)
SectionPropertyMap(bool bIsFirstSection)
sal_Int32 m_nDebugSectionNumber
bool HasHeader(bool bFirstPage) const
void SetBorderOffsetFrom(BorderOffsetFrom nSet)
sal_Int32 GetLeftMargin() const
std::vector< css::uno::Reference< css::drawing::XShape > > m_xRelativeWidthShapes
bool m_bFirstPageFooterLinkToPrevious
void SetLnc(sal_Int32 nValue)
bool m_bDefaultHeaderLinkToPrevious
BorderApply m_eBorderApply
bool m_bDynamicHeightBottom
sal_Int32 m_nHeaderBottom
void SetTopMargin(sal_Int32 nSet)
css::uno::Reference< css::beans::XPropertySet > m_xColumnContainer
std::optional< css::table::BorderLine2 > m_oBorderLines[4]
bool HasFooter(bool bFirstPage) const
void SetOutlineLevel(sal_Int16 nLevel)
void SetListLevel(sal_Int16 nLevel)
sal_Int16 GetOutlineLevel() const
sal_Int16 GetListLevel() const
@ TablePropertyMapTarget_MAX
@ TablePropertyMapTarget_START
virtual void insertTableProperties(const PropertyMap *, const bool bOverwrite=true) override
bool getValue(TablePropertyMapTarget eWhich, sal_Int32 &nFill)
void setValue(TablePropertyMapTarget eWhich, sal_Int32 nSet)
ValidValue m_aValidValues[TablePropertyMapTarget_MAX]
void set(css::uno::UnoInterfaceReference const &value)
std::map< sal_Int32, STLPropertyMapEntry > PropertyMap
std::shared_ptr< std::vector< TableParagraph > > TableParagraphVectorPtr
tools::SvRef< RedlineParams > RedlineParamsPtr
tools::SvRef< ParagraphProperties > ParagraphPropertiesPtr
void BeforeConvertToTextFrame(std::deque< css::uno::Any > &rFramedRedlines, std::vector< sal_Int32 > &redPos, std::vector< sal_Int32 > &redLen, std::vector< OUString > &redCell, std::vector< OUString > &redTable)
tools::SvRef< PropertyMap > PropertyMapPtr
void AfterConvertToTextFrame(DomainMapper_Impl &rDM_Impl, std::deque< css::uno::Any > &aFramedRedlines, std::vector< sal_Int32 > &redPos, std::vector< sal_Int32 > &redLen, std::vector< OUString > &redCell, std::vector< OUString > &redTable)
tools::SvRef< TablePropertyMap > TablePropertyMapPtr
css::uno::Sequence< css::beans::PropertyValue > m_aRevertProperties
Information about a paragraph to be finished after a table end.
PropertyMapPtr m_pPropertyMap
css::uno::Reference< css::text::XTextRange > m_rEndParagraph
css::uno::Reference< css::text::XTextRange > m_rStartParagraph
css::uno::Reference< css::beans::XPropertySet > m_rPropertySet