Related: tdf#124600 sw anchored object allow overlap: add doc model
This is initial code to support DOCX's <wp:anchor ... allowOverlap="0"> markup as a full feature in core. Currently anchored objects can unconditionally overlap, the new bool allows opting in to prevent that. Layout is not yet using the new SwFormatWrapInfluenceOnObjPos::GetAllowOverlap(), to be done in a follow-up commit. Change-Id: I2f299571223c039741c81860ea17d42cd63140b3 Reviewed-on: https://gerrit.libreoffice.org/79105 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
This commit is contained in:
@@ -28,6 +28,8 @@ class SW_DLLPUBLIC SwFormatWrapInfluenceOnObjPos: public SfxPoolItem
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
sal_Int16 mnWrapInfluenceOnPosition;
|
sal_Int16 mnWrapInfluenceOnPosition;
|
||||||
|
/// Allow objects to overlap, permitted by default.
|
||||||
|
bool mbAllowOverlap = true;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -55,6 +57,9 @@ public:
|
|||||||
sal_Int16 GetWrapInfluenceOnObjPos(
|
sal_Int16 GetWrapInfluenceOnObjPos(
|
||||||
const bool _bIterativeAsOnceConcurrent = false ) const;
|
const bool _bIterativeAsOnceConcurrent = false ) const;
|
||||||
|
|
||||||
|
void SetAllowOverlap(bool bAllowOverlap);
|
||||||
|
bool GetAllowOverlap() const;
|
||||||
|
|
||||||
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
|
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -125,11 +125,22 @@ sal_Int16 SwFormatWrapInfluenceOnObjPos::GetWrapInfluenceOnObjPos(
|
|||||||
return nWrapInfluenceOnPosition;
|
return nWrapInfluenceOnPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SwFormatWrapInfluenceOnObjPos::SetAllowOverlap(bool bAllowOverlap)
|
||||||
|
{
|
||||||
|
mbAllowOverlap = bAllowOverlap;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SwFormatWrapInfluenceOnObjPos::GetAllowOverlap() const
|
||||||
|
{
|
||||||
|
return mbAllowOverlap;
|
||||||
|
}
|
||||||
|
|
||||||
void SwFormatWrapInfluenceOnObjPos::dumpAsXml(xmlTextWriterPtr pWriter) const
|
void SwFormatWrapInfluenceOnObjPos::dumpAsXml(xmlTextWriterPtr pWriter) const
|
||||||
{
|
{
|
||||||
xmlTextWriterStartElement(pWriter, BAD_CAST("SwFormatWrapInfluenceOnObjPos"));
|
xmlTextWriterStartElement(pWriter, BAD_CAST("SwFormatWrapInfluenceOnObjPos"));
|
||||||
xmlTextWriterWriteAttribute(pWriter, BAD_CAST("whichId"), BAD_CAST(OString::number(Which()).getStr()));
|
xmlTextWriterWriteAttribute(pWriter, BAD_CAST("whichId"), BAD_CAST(OString::number(Which()).getStr()));
|
||||||
xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nWrapInfluenceOnPosition"), BAD_CAST(OString::number(mnWrapInfluenceOnPosition).getStr()));
|
xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nWrapInfluenceOnPosition"), BAD_CAST(OString::number(mnWrapInfluenceOnPosition).getStr()));
|
||||||
|
xmlTextWriterWriteAttribute(pWriter, BAD_CAST("mbAllowOverlap"), BAD_CAST(OString::boolean(mbAllowOverlap).getStr()));
|
||||||
xmlTextWriterEndElement(pWriter);
|
xmlTextWriterEndElement(pWriter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user