23 #include <unordered_set>
52 #include <rtl/strbuf.hxx>
53 #include <libxml/xmlwriter.h>
55 #include <com/sun/star/lang/IllegalArgumentException.hpp>
62 : mbObjOrdNumsDirty(
false),
64 mbIsNavigationOrderDirty(
false)
70 SdrModel* pSdrModelFromRemovedSdrObject(
nullptr);
80 pObj->GetViewContact().flushViewObjectContacts();
84 if(
nullptr == pSdrModelFromRemovedSdrObject)
86 pSdrModelFromRemovedSdrObject = &pObj->getSdrModelFromSdrObject();
92 pObj->getSdrModelFromSdrObject().Broadcast(aHint);
99 if(bBroadcast &&
nullptr != pSdrModelFromRemovedSdrObject)
136 size_t nCloneErrCnt(0);
141 OSL_ENSURE(
false,
"SdrObjList which is not part of SdrPage or SdrObject (!)");
149 for (
size_t no(0); no <
nCount; ++no)
152 SdrObject* pDO(pSO->CloneSdrObject(rTargetSdrModel));
172 if (nCloneErrCnt==0) {
173 for (
size_t no=0; no<nCount; ++no) {
176 if (pSrcEdge!=
nullptr) {
181 if (pSrcNode1!=
nullptr || pSrcNode2!=
nullptr) {
184 if (pDstEdge!=
nullptr) {
185 if (pSrcNode1!=
nullptr) {
186 sal_uInt32 nDstNode1=pSrcNode1->
GetOrdNum();
188 if (pDstNode1!=
nullptr) {
191 OSL_FAIL(
"SdrObjList::operator=(): pDstNode1==NULL!");
194 if (pSrcNode2!=
nullptr) {
195 sal_uInt32 nDstNode2=pSrcNode2->
GetOrdNum();
197 if (pDstNode2!=
nullptr) {
200 OSL_FAIL(
"SdrObjList::operator=(): pDstNode2==NULL!");
204 OSL_FAIL(
"SdrObjList::operator=(): pDstEdge==NULL!");
211 OStringBuffer
aStr(
"SdrObjList::operator=(): Error when cloning ");
213 if(nCloneErrCnt == 1)
215 aStr.append(
"a drawing object.");
219 aStr.append(static_cast<sal_Int32>(nCloneErrCnt));
220 aStr.append(
" drawing objects.");
223 aStr.append(
" Not copying connectors.");
225 OSL_FAIL(aStr.getStr());
233 for (
size_t no=0; no<nCount; ++no) {
245 for (
size_t i=0;
i<nCount; ++
i) {
262 if(
nullptr != pParentSdrObject)
280 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::NbcInsertObject(NULL)");
286 if (nPos>nCount) nPos=nCount;
305 std::unordered_set<rtl::OUString> aNameSet;
321 while (aIter.IsMore())
323 pListObj = aIter.Next();
331 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::InsertObject(NULL)");
340 if(rAnchorPos.X() || rAnchorPos.Y())
370 if (nObjNum >=
maList.size())
372 OSL_ASSERT(nObjNum<
maList.size());
380 DBG_ASSERT(pObj!=
nullptr,
"Could not find object to remove.");
398 if (nObjNum+1!=nCount) {
409 if (nObjNum >=
maList.size())
411 OSL_ASSERT(nObjNum<
maList.size());
419 DBG_ASSERT(pObj!=
nullptr,
"Object to remove not found.");
445 if (nObjNum+1!=nCount) {
465 if (nObjNum >=
maList.size())
467 OSL_ASSERT(nObjNum<
maList.size());
470 if (pNewObj ==
nullptr)
472 OSL_ASSERT(pNewObj!=
nullptr);
477 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::ReplaceObject: Could not find object to remove.");
479 DBG_ASSERT(pObj->
IsInserted(),
"SdrObjList::ReplaceObject: the object does not have status Inserted.");
529 if (nOldObjNum >=
maList.size() || nNewObjNum >=
maList.size())
531 OSL_ASSERT(nOldObjNum<
maList.size());
532 OSL_ASSERT(nNewObjNum<
maList.size());
537 if (nOldObjNum==nNewObjNum)
return pObj;
538 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::SetObjectOrdNum: Object not found.");
540 DBG_ASSERT(pObj->
IsInserted(),
"SdrObjList::SetObjectOrdNum: the object does not have status Inserted.");
561 assert(std::find(
maList.begin(),
maList.end(), pObj) !=
maList.end() &&
"This method requires that the child object already be inserted");
562 assert(pObj->
IsInserted() &&
"SdrObjList::SetObjectOrdNum: the object does not have status Inserted.");
566 const sal_uInt32 nOldOrdNum = pObj->
m_nOrdNum;
574 auto iObject = ::std::find(
585 if (nOldOrdNum <
maList.size() &&
maList[nOldOrdNum] == pObj)
589 auto it = std::find(
maList.begin(),
maList.end(), pObj);
595 if (nNewObjNum >=
maList.size())
618 auto it = std::find_if( sortOrder.begin(), sortOrder.end(), [
this](
const sal_Int32& rIt)
620 if ( it != sortOrder.end())
621 throw css::lang::IllegalArgumentException(
"negative index of shape",
nullptr, 1);
624 std::vector<bool> aNoDuplicates(sortOrder.size(),
false);
625 for (
size_t i = 0;
i < sortOrder.size(); ++
i )
627 size_t idx =
static_cast<size_t>( sortOrder[
i] );
629 if ( aNoDuplicates[idx] )
630 throw css::lang::IllegalArgumentException(
"duplicate index of shape",
nullptr, 2);
632 aNoDuplicates[idx] =
true;
639 std::deque<SdrObject*> aNewList(
maList.size());
640 std::set<sal_Int32> aShapesWithTextbox;
641 std::vector<sal_Int32> aIncrements;
642 std::vector<sal_Int32> aDuplicates;
646 for (
size_t i = 1;
i<
maList.size(); ++
i)
652 aShapesWithTextbox.insert(
i - 1 - aShapesWithTextbox.size() );
657 if (aShapesWithTextbox.size() !=
maList.size() - sortOrder.size())
659 throw lang::IllegalArgumentException(
"mismatch of no. of shapes",
nullptr, 0);
662 for (
size_t i = 0;
i< sortOrder.size(); ++
i)
665 if (aShapesWithTextbox.count(sortOrder[
i]) > 0)
666 aDuplicates.push_back(sortOrder[i]);
668 aDuplicates.push_back(sortOrder[i]);
672 assert(aDuplicates.size() ==
maList.size());
674 aIncrements.push_back(0);
675 for (
size_t i = 1;
i< sortOrder.size(); ++
i)
677 if (aShapesWithTextbox.count(
i - 1))
678 aIncrements.push_back(aIncrements[
i-1] + 1 );
680 aIncrements.push_back(aIncrements[
i-1]);
684 assert(aIncrements.size() == sortOrder.size());
686 std::vector<sal_Int32> aNewSortOrder(
maList.size());
687 sal_Int32 nPrev = -1;
688 for (
size_t i = 0;
i< aDuplicates.size(); ++
i)
690 if (nPrev != aDuplicates[
i])
691 aNewSortOrder[i] = aDuplicates[i] + aIncrements[aDuplicates[i]];
693 aNewSortOrder[i] = aNewSortOrder[i-1] + 1;
695 nPrev = aDuplicates[i];
699 assert(aNewSortOrder.size() ==
maList.size());
703 std::vector<sal_Int32> tmp(aNewSortOrder);
704 std::sort(tmp.begin(), tmp.end());
705 for (
size_t i = 0;
i < tmp.size(); ++
i)
707 assert(
size_t(tmp[
i]) == i);
719 for (
size_t i = 0;
i < aNewSortOrder.size(); ++
i)
721 aNewList[
i] =
maList[ aNewSortOrder[
i] ];
722 aNewList[
i]->SetOrdNum(
i);
725 std::swap(aNewList,
maList);
821 if(
nullptr != pParentSdrObject)
825 if(
nullptr != pSdrPage)
837 for(
size_t i = nObj;
i>0; )
849 if(
auto pUngroupGroup = dynamic_cast<SdrObjGroup*>( pUngroupObj))
857 size_t nInsertPos( pUngroupGroup->GetOrdNum() );
860 for(
size_t i=0;
i<nCount; ++
i )
872 OSL_FAIL(
"SdrObjList::UnGroupObj: object index invalid");
880 const sal_uInt32 nNewPosition)
895 auto iObject = ::std::find(
906 const sal_uInt32 nOldPosition = ::std::distance(
mxNavigationOrder->begin(), iObject);
907 if (nOldPosition == nNewPosition)
911 sal_uInt32 nInsertPosition (nNewPosition);
913 if (nNewPosition >= nOldPosition)
914 nInsertPosition -= 1;
935 OSL_ASSERT(nNavigationPosition < mxNavigationOrder->
size());
944 if (nNavigationPosition >=
maList.size())
946 OSL_ASSERT(nNavigationPosition <
maList.size());
949 return maList[nNavigationPosition];
973 rpObject->SetNavigationPosition(nIndex);
987 const sal_Int32
nCount = rxOrder->getCount();
988 if (static_cast<sal_uInt32>(nCount) !=
maList.size())
996 uno::Reference<uno::XInterface> xShape (rxOrder->getByIndex(
nIndex), uno::UNO_QUERY);
998 if (pObject ==
nullptr)
1000 (*mxNavigationOrder)[
nIndex] = pObject;
1014 const sal_uInt32 nInsertPosition)
1016 OSL_ASSERT(nInsertPosition<=
maList.size());
1030 if (nInsertPosition >=
maList.size())
1031 maList.push_back(&rObject);
1033 maList.insert(
maList.begin()+nInsertPosition, &rObject);
1040 const sal_uInt32 nObjectPosition)
1042 if (nObjectPosition >=
maList.size())
1044 OSL_ASSERT(nObjectPosition<
maList.size());
1054 OSL_ASSERT(nObjectPosition <
maList.size());
1056 auto iObject = ::std::find(
1068 maList[nObjectPosition] = &rNewObject;
1074 const sal_uInt32 nObjectPosition)
1076 if (nObjectPosition >=
maList.size())
1078 OSL_ASSERT(nObjectPosition<
maList.size());
1086 auto iObject = ::std::find(
1101 (
void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrObjList"));
1102 (
void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1103 (
void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"symbol"),
"%s", BAD_CAST(
typeid(*this).name()));
1106 for (
size_t i = 0;
i < nObjCount; ++
i)
1112 (
void)xmlTextWriterEndElement(pWriter);
1119 for (sal_uInt16
i=0;
i<nCount;
i++) {
1135 const sdr::PageUserVector::iterator aFindResult = ::std::find(
maPageUsers.begin(),
maPageUsers.end(), &rOldUser);
1147 return std::make_unique<sdr::contact::ViewContactOfSdrPage>(*this);
1154 const_cast<SdrPage*>(
this)->CreateObjectSpecificViewContact();
1197 : mpSdrPage(&rSdrPage),
1198 mpStyleSheet(nullptr),
1200 mpSdrPage->getSdrModelFromSdrPage().GetItemPool(),
1216 switch(rHint.
GetId())
1218 case SfxHintId::DataChanged :
1224 case SfxHintId::Dying :
1283 for (sal_uInt16 nPage = 0; nPage < nPageCount; ++nPage)
1291 mpTheme->UpdateSdrPage(pPage);
1300 (
void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrPageProperties"));
1301 (
void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1308 (
void)xmlTextWriterEndElement(pWriter);
1312 : mrSdrModelFromSdrPage(rModel),
1321 mbMaster(bMasterPage),
1323 mbObjectsNotPersistent(
false),
1324 mbPageBorderOnlyLeftRight(
false)
1333 uno::Reference< lang::XComponent > xPageComponent(
mxUnoPage, uno::UNO_QUERY_THROW );
1335 xPageComponent->dispose();
1337 catch(
const uno::Exception& )
1349 DBG_ASSERT(pPageUser,
"SdrPage::~SdrPage: corrupt PageUser list (!)");
1350 pPageUser->PageInDestruction(*
this);
1417 pClonedPage->lateInit(*
this);
1423 bool bChanged(
false);
1458 if ((eOri==Orientation::Portrait) == (aSiz.
Width()>aSiz.
Height())) {
1470 if (aSiz.
Width()>aSiz.
Height()) eRet=Orientation::Landscape;
1481 bool bChanged(
false);
1621 return const_cast< SdrPage*
>(
this);
1671 DBG_ASSERT(
mpMasterPageDescriptor !=
nullptr,
"TRG_GetMasterPageDescriptorViewContact(): No MasterPage available. Use TRG_HasMasterPage() before access (!)");
1689 std::unordered_set<OUString> aNameSet;
1695 if (!pObj->
GetName().isEmpty())
1705 pListObj = aIter.
Next();
1747 if (
auto pOleObj = dynamic_cast<SdrOle2Obj* >(pObj) )
1752 pOleObj->Disconnect();
1775 css::uno::Reference< css::uno::XInterface > xInt =
1839 (
void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrPage"));
1842 (
void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"width"));
1843 (
void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"value"),
"%s",
1844 BAD_CAST(OString::number(
mnWidth).getStr()));
1845 (
void)xmlTextWriterEndElement(pWriter);
1846 (
void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"height"));
1847 (
void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"value"),
"%s",
1848 BAD_CAST(OString::number(
mnHeight).getStr()));
1849 (
void)xmlTextWriterEndElement(pWriter);
1856 (
void)xmlTextWriterEndElement(pWriter);
void SetUnoPage(css::uno::Reference< css::drawing::XDrawPage > const &)
SdrPage & TRG_GetMasterPage() const
void AddPageUser(sdr::PageUser &rNewUser)
std::unique_ptr< sdr::MasterPageDescriptor > mpMasterPageDescriptor
void SetNavigationPosition(const sal_uInt32 nPosition)
::std::vector< PageUser * > PageUserVector
std::unique_ptr< svx::Theme > mpTheme
tools::Rectangle maSdrObjListOutRect
void UnGroupObj(size_t nObjNum)
Ungroup the object at the given index.
virtual void SetSize(const Size &aSiz)
SdrPageProperties(SdrPage &rSdrPage)
void NbcReformatAllTextObjects()
reformat all text objects, e.g. when changing printer
virtual const tools::Rectangle & GetCurrentBoundRect() const
Color GetPageBackgroundColor() const
deprecated returns an averaged background color of this page
sdr::PageUserVector maPageUsers
struct _xmlTextWriter * xmlTextWriterPtr
tools::Long GetWidth() const
void ClearItem(const sal_uInt16 nWhich=0)
void impClearSdrObjList(bool bBroadcast)
virtual void SetOrientation(Orientation eOri)
void ReplaceObjectInContainer(SdrObject &rObject, const sal_uInt32 nObjectPosition)
Replace an object in the object list.
const tools::Rectangle & GetAllObjBoundRect() const
virtual Orientation GetOrientation() const
SdrPage(const SdrPage &)=delete
void PutItem(const SfxPoolItem &rItem)
void SetNavigationOrder(const css::uno::Reference< css::container::XIndexAccess > &rxOrder)
Set the navigation order to the one defined by the given list of XShape objects.
virtual void SetLeftBorder(sal_Int32 nBorder)
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
virtual void NbcInsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual rtl::Reference< SdrPage > CloneSdrPage(SdrModel &rTargetModel) const
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)
constexpr::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
SdrObject * GetObj(size_t nNum) const
sal_Int32 GetRightBorder() const
void RecalcObjOrdNums()
recalculate order numbers / ZIndex
void RecalcPageNums(bool bMaster)
size_t GetObjCount() const
void MakePageObjectsNamesUnique()
SdrObject * GetObjectForNavigationPosition(const sal_uInt32 nNavigationPosition) const
Return the object for the given navigation position.
void CopyObjects(const SdrObjList &rSrcList)
virtual bool isUsedByModel() const override
void TRG_ClearMasterPage()
std::optional< std::vector< tools::WeakReference< SdrObject > > > mxNavigationOrder
This list, if it exists, defines the navigation order.
virtual SfxItemSet & GetItemSet()
static void Free(SdrObject *&_rpObject)
virtual SdrObjKind GetObjIdentifier() const
sal_Int32 GetLowerBorder() const
virtual void InsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
virtual css::uno::Reference< css::uno::XInterface > createUnoPage()
EmbeddedObjectRef * pObject
SVX_DLLPRIVATE void setParentOfSdrObject(SdrObjList *pNew)
virtual bool checkVisibility(const sdr::contact::ViewObjectContact &rOriginal, const sdr::contact::DisplayInfo &rDisplayInfo, bool bEdit)
this method returns true if the object from the ViewObjectContact should be visible on this page whil...
void ImpAddStyleSheet(SfxStyleSheet &rNewStyleSheet)
virtual SdrObjList * GetSubList() const
sal_Int32 GetLeftBorder() const
SfxStyleSheet * mpStyleSheet
sdr::contact::ViewContact & GetViewContact() const
void ConnectToNode(bool bTail1, SdrObject *pObj) override
virtual ~SdrPage() override
virtual const tools::Rectangle & GetSnapRect() const
constexpr tools::Long Width() const
void SetExistingObjectOrdNum(SdrObject *pExistingObj, size_t nNewObjNum)
Modify ZOrder of an SdrObject, object must already be in the list.
void SetTheme(std::unique_ptr< svx::Theme > pTheme)
virtual bool IsReadOnly() const
linked page or linked group object
void RemoveObjectFromContainer(const sal_uInt32 nObjectPosition)
Remove an object from the object list.
std::deque< SdrObject * > maList
SdrPage * getSdrPageFromSdrObject() const
void AddUndo(std::unique_ptr< SdrUndoAction > pUndo)
css::uno::Reference< css::uno::XInterface > mxUnoPage
SfxStyleSheet * GetStyleSheet() const
virtual SdrPage * getSdrPageFromSdrObjList() const override
std::unique_ptr< sdr::contact::ViewContact > CreateObjectSpecificViewContact()
void BurnInStyleSheetAttributes()
static std::unique_ptr< SdrUndoAction > CreateUndoSort(SdrPage &rPage,::std::vector< sal_Int32 > const &rSortOrder)
SvGenericNameContainerMapImpl maProperties
void ReformatAllTextObjects()
void TRG_SetMasterPage(SdrPage &rNew)
virtual void SetChanged(bool bFlg=true)
void RemovePageUser(sdr::PageUser &rOldUser)
const Color & GetApplicationDocumentColor() const
virtual void SetBoundAndSnapRectsDirty(bool bNotMyself=false, bool bRecursive=true)
SdrObject * GetConnectedNode(bool bTail1) const override
void SetStyleSheet(SfxStyleSheet *pStyleSheet)
void ReformatAllEdgeObjects()
#103122# reformats all edge objects that are connected to other objects
void SetPageNum(sal_uInt16 nNew)
#define DBG_UNHANDLED_EXCEPTION(...)
std::vector< SdrPageGridFrame * > aList
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
virtual const SdrPageGridFrameList * GetGridFrameList(const SdrPageView *pPV, const tools::Rectangle *pRect) const
for snap-to-grid in Writer, also for AlignObjects if 1 object is marked if pRect != null...
std::unique_ptr< SdrLayerAdmin > mpLayerAdmin
#define DBG_ASSERT(sCon, aError)
bool IsUndoEnabled() const
returns true if undo is currently enabled This returns false if undo was disabled using EnableUndo( f...
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const
tools::Long GetHeight() const
virtual SfxStyleSheet * GetTextStyleSheetForObject(SdrObject *pObj) const
const SdrLayerIDSet & TRG_GetMasterPageVisibleLayers() const
sal_Int32 GetUpperBorder() const
void SetBackgroundFullSize(bool bIn)
void dumpAsXml(xmlTextWriterPtr pWriter) const
const SdrPage * GetPage(sal_uInt16 nPgNum) const
void ActionChanged() const
constexpr sal_uInt16 XATTR_FILL_FIRST(XATTRSET_LINE+1)
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
virtual void SetUpperBorder(sal_Int32 nBorder)
static void ImpPageChange(SdrPage &rSdrPage)
SdrModel & getSdrModelFromSdrObject() const
sal_uInt32 GetOrdNum() const
The order number (aka ZOrder, aka z-index) determines whether a SdrObject is located above or below a...
const SdrLayerAdmin & GetLayerAdmin() const
changing the layers does not set the modified-flag!
bool HasObjectNavigationOrder() const
Return whether there is an explicit, user defined, object navigation order.
bool IsMasterPage() const
const SfxItemSet & GetItemSet() const
void Reformat()
updates edges that are connected to the edges of this object as if the connected objects send a repai...
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
virtual OUString GetLayoutName() const
SdrPageProperties & getSdrPageProperties()
void InsertObjectThenMakeNameUnique(SdrObject *pObj)
bool TRG_HasMasterPage() const
virtual SdrObject * NbcRemoveObject(size_t nObjNum)
remove from list without delete
virtual ~SdrPageProperties() override
virtual SdrObject * RemoveObject(size_t nObjNum)
sal_uInt16 GetCount() const
void SetObjectNavigationPosition(SdrObject &rObject, const sal_uInt32 nNewNavigationPosition)
Set the navigation position of the given object to the specified value.
void SetParent(const SfxItemSet *pNew)
virtual void SetRightBorder(sal_Int32 nBorder)
void lateInit(const SdrPage &rSrcPage)
SdrPageGridFrame * GetObject(sal_uInt16 i) const
SdrModel & getSdrModelFromSdrPage() const
virtual void NbcReformatText()
virtual void SetLowerBorder(sal_Int32 nBorder)
void InsertedStateChange()
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
void Broadcast(const SfxHint &rHint)
void SetInserted(bool bNew=true)
void sort(std::vector< sal_Int32 > &sortOrder)
A named theme has a named color set.
sdr::contact::ViewContact & TRG_GetMasterPageDescriptorViewContact() const
void BurnInStyleSheetAttributes()
convert attributes of the style to hard formatting
virtual SdrObject * ReplaceObject(SdrObject *pNewObj, size_t nObjNum)
Replace existing object by different one.
void TRG_ImpMasterPageRemoved(const SdrPage &rRemovedPage)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
const sdr::contact::ViewContact & GetViewContact() const
constexpr tools::Long Height() const
bool RecalcNavigationPositions()
Set the navigation position of all SdrObjects to their position in the mxNavigationOrder list...
void SetOrdNum(sal_uInt32 nNum)
SfxStyleSheet * GetStyleSheet() const
css::uno::Reference< css::uno::XInterface > const & getUnoPage()
std::unique_ptr< sdr::contact::ViewContact > mpViewContact
void ClearObjectNavigationOrder()
Restore the navigation order to that defined by the z-order.
const SdrPageProperties * getCorrectSdrPageProperties() const
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
virtual SdrPage * getSdrPageFromSdrObjList() const
static void impChildInserted(SdrObject const &rChild)
simple ActionChildInserted forwarder to have it on a central place
void SetSdrObjListRectsDirty()
void TRG_SetMasterPageVisibleLayers(const SdrLayerIDSet &rNew)
const Point & GetAnchorPos() const
void InsertObjectIntoContainer(SdrObject &rObject, const sal_uInt32 nInsertPosition)
Insert an SdrObject into maList.
virtual void SetBorder(sal_Int32 nLft, sal_Int32 nUpp, sal_Int32 nRgt, sal_Int32 Lwr)
bool mbIsNavigationOrderDirty
This flag is when the mpNavigation list has been changed but the indices of the referenced Sdr...
bool mbObjectsNotPersistent
virtual void NbcSetAnchorPos(const Point &rPnt)
void ImpRemoveStyleSheet()
bool mbPageBorderOnlyLeftRight
virtual SdrObject * SetObjectOrdNum(size_t nOldObjNum, size_t nNewObjNum)
Modify ZOrder of an SdrObject.
constexpr sal_uInt16 XATTR_FILL_LAST(XATTR_FILLBACKGROUND)
bool IsBackgroundFullSize() const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
SdrObjList * getParentSdrObjListFromSdrObject() const
std::unique_ptr< SdrPageProperties > mpSdrPageProperties
tools::Rectangle maSdrObjListSnapRect
bool GetDraftFillColor(const SfxItemSet &rSet, Color &rCol)
Returns a replacement for an XFillStyle.
sal_uInt16 GetPageNum() const
bool mbBackgroundFullSize
Background object to represent the whole page.
const tools::Rectangle & GetAllObjSnapRect() const
virtual SdrObject * getSdrObjectFromSdrObjList() const
const OUString & GetName() const
void dumpAsXml(xmlTextWriterPtr pWriter) const override
sal_uInt16 GetPageCount() const
void PutItemSet(const SfxItemSet &rSet)
void FlattenGroups()
Makes the object list flat, i.e.
Utility class SdrEdgeObj.
bool m_bDetectedRangeSegmentation false