23#include <unordered_set>
55#include <rtl/strbuf.hxx>
56#include <libxml/xmlwriter.h>
58#include <com/sun/star/lang/IllegalArgumentException.hpp>
65: mbObjOrdNumsDirty(false),
67 mbIsNavigationOrderDirty(false)
73 SdrModel* pSdrModelFromRemovedSdrObject(
nullptr);
83 pObj->GetViewContact().flushViewObjectContacts();
87 if(
nullptr == pSdrModelFromRemovedSdrObject)
89 pSdrModelFromRemovedSdrObject = &pObj->getSdrModelFromSdrObject();
95 pObj->getSdrModelFromSdrObject().Broadcast(aHint);
97 pObj->setParentOfSdrObject(
nullptr);
100 if(bBroadcast &&
nullptr != pSdrModelFromRemovedSdrObject)
143 size_t nCloneErrCnt(0);
148 OSL_ENSURE(
false,
"SdrObjList which is not part of SdrPage or SdrObject (!)");
156 for (
size_t no(0); no <
nCount; ++no)
179 if (nCloneErrCnt==0) {
180 for (
size_t no=0; no<
nCount; ++no) {
183 if (pSrcEdge!=
nullptr) {
188 if (pSrcNode1!=
nullptr || pSrcNode2!=
nullptr) {
191 if (pDstEdge!=
nullptr) {
192 if (pSrcNode1!=
nullptr) {
193 sal_uInt32 nDstNode1=pSrcNode1->
GetOrdNum();
195 if (pDstNode1!=
nullptr) {
198 OSL_FAIL(
"SdrObjList::operator=(): pDstNode1==NULL!");
201 if (pSrcNode2!=
nullptr) {
202 sal_uInt32 nDstNode2=pSrcNode2->
GetOrdNum();
204 if (pDstNode2!=
nullptr) {
207 OSL_FAIL(
"SdrObjList::operator=(): pDstNode2==NULL!");
211 OSL_FAIL(
"SdrObjList::operator=(): pDstEdge==NULL!");
218 OStringBuffer
aStr(
"SdrObjList::operator=(): Error when cloning ");
220 if(nCloneErrCnt == 1)
222 aStr.append(
"a drawing object.");
226 aStr.append(OString::number(
static_cast<sal_Int32
>(nCloneErrCnt))
227 +
" drawing objects.");
230 aStr.append(
" Not copying connectors.");
232 OSL_FAIL(
aStr.getStr());
241 pObj->SetOrdNum(no++);
267 if(
nullptr != pParentSdrObject)
285 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::NbcInsertObject(NULL)");
310 std::unordered_set<rtl::OUString> aNameSet;
326 while (aIter.IsMore())
328 pListObj = aIter.Next();
336 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::InsertObject(NULL)");
345 if(rAnchorPos.X() || rAnchorPos.Y())
375 if (nObjNum >=
maList.size())
377 OSL_ASSERT(nObjNum<
maList.size());
385 DBG_ASSERT(pObj!=
nullptr,
"Could not find object to remove.");
389 pObj->GetViewContact().flushViewObjectContacts();
391 DBG_ASSERT(pObj->IsInserted(),
"The object does not have the status Inserted.");
395 pObj->setParentOfSdrObject(
nullptr);
398 pObj->InsertedStateChange();
414 if (nObjNum >=
maList.size())
416 OSL_ASSERT(nObjNum<
maList.size());
424 DBG_ASSERT(pObj!=
nullptr,
"Object to remove not found.");
428 pObj->GetViewContact().flushViewObjectContacts();
429 DBG_ASSERT(pObj->IsInserted(),
"The object does not have the status Inserted.");
432 if (pObj->getSdrPageFromSdrObject()!=
nullptr)
435 pObj->getSdrModelFromSdrObject().Broadcast(aHint);
438 pObj->getSdrModelFromSdrObject().SetChanged();
442 pObj->setParentOfSdrObject(
nullptr);
445 pObj->InsertedStateChange();
470 if (nObjNum >=
maList.size())
472 OSL_ASSERT(nObjNum<
maList.size());
475 if (pNewObj ==
nullptr)
477 OSL_ASSERT(pNewObj!=
nullptr);
482 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::ReplaceObject: Could not find object to remove.");
484 DBG_ASSERT(pObj->IsInserted(),
"SdrObjList::ReplaceObject: the object does not have status Inserted.");
487 if (pObj->getSdrPageFromSdrObject()!=
nullptr)
490 pObj->getSdrModelFromSdrObject().Broadcast(aHint);
494 pObj->setParentOfSdrObject(
nullptr);
501 pObj->InsertedStateChange();
505 pObj->GetViewContact().flushViewObjectContacts();
534 if (nOldObjNum >=
maList.size() || nNewObjNum >=
maList.size())
536 OSL_ASSERT(nOldObjNum<
maList.size());
537 OSL_ASSERT(nNewObjNum<
maList.size());
542 if (nOldObjNum==nNewObjNum)
return pObj.get();
543 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::SetObjectOrdNum: Object not found.");
545 DBG_ASSERT(pObj->IsInserted(),
"SdrObjList::SetObjectOrdNum: the object does not have status Inserted.");
551 pObj->ActionChanged();
553 pObj->SetOrdNum(nNewObjNum);
557 if (pObj->getSdrPageFromSdrObject()!=
nullptr)
559 pObj->getSdrModelFromSdrObject().SetChanged();
566 assert(std::find(
maList.begin(),
maList.end(), pObj) !=
maList.end() &&
"This method requires that the child object already be inserted");
567 assert(pObj->
IsInserted() &&
"SdrObjList::SetObjectOrdNum: the object does not have status Inserted.");
571 const sal_uInt32 nOldOrdNum = pObj->
m_nOrdNum;
579 auto iObject = ::std::find(
590 if (nOldOrdNum <
maList.size() &&
maList[nOldOrdNum] == pObj)
594 auto it = std::find(
maList.begin(),
maList.end(), pObj);
600 if (nNewObjNum >=
maList.size())
623 auto it = std::find_if( sortOrder.begin(), sortOrder.end(), [
this](
const sal_Int32& rIt)
624 { return ( rIt < 0 || o3tl::make_unsigned(rIt) >= maList.size() ); } );
625 if ( it != sortOrder.end())
626 throw css::lang::IllegalArgumentException(
"negative index of shape",
nullptr, 1);
629 std::vector<bool> aNoDuplicates(sortOrder.size(),
false);
630 for (
size_t i = 0;
i < sortOrder.size(); ++
i )
632 size_t idx =
static_cast<size_t>( sortOrder[
i] );
634 if ( aNoDuplicates[
idx] )
635 throw css::lang::IllegalArgumentException(
"duplicate index of shape",
nullptr, 2);
637 aNoDuplicates[
idx] =
true;
644 std::deque<rtl::Reference<SdrObject>> aNewList(
maList.size());
645 std::set<sal_Int32> aShapesWithTextbox;
646 std::vector<sal_Int32> aIncrements;
647 std::vector<sal_Int32> aDuplicates;
651 for (
size_t i = 1;
i<
maList.size(); ++
i)
657 aShapesWithTextbox.insert(
i - 1 - aShapesWithTextbox.size() );
662 if (aShapesWithTextbox.size() !=
maList.size() - sortOrder.size())
664 throw lang::IllegalArgumentException(
"mismatch of no. of shapes",
nullptr, 0);
667 for (
size_t i = 0;
i< sortOrder.size(); ++
i)
670 if (aShapesWithTextbox.count(sortOrder[
i]) > 0)
671 aDuplicates.push_back(sortOrder[
i]);
673 aDuplicates.push_back(sortOrder[
i]);
677 assert(aDuplicates.size() ==
maList.size());
679 aIncrements.push_back(0);
680 for (
size_t i = 1;
i< sortOrder.size(); ++
i)
682 if (aShapesWithTextbox.count(
i - 1))
683 aIncrements.push_back(aIncrements[
i-1] + 1 );
685 aIncrements.push_back(aIncrements[
i-1]);
689 assert(aIncrements.size() == sortOrder.size());
691 std::vector<sal_Int32> aNewSortOrder(
maList.size());
692 sal_Int32 nPrev = -1;
693 for (
size_t i = 0;
i< aDuplicates.size(); ++
i)
695 if (nPrev != aDuplicates[
i])
696 aNewSortOrder[
i] = aDuplicates[
i] + aIncrements[aDuplicates[
i]];
698 aNewSortOrder[
i] = aNewSortOrder[
i-1] + 1;
700 nPrev = aDuplicates[
i];
704 assert(aNewSortOrder.size() ==
maList.size());
708 std::vector<sal_Int32> tmp(aNewSortOrder);
709 std::sort(tmp.begin(), tmp.end());
710 for (
size_t i = 0;
i < tmp.size(); ++
i)
712 assert(
size_t(tmp[
i]) ==
i);
724 for (
size_t i = 0;
i < aNewSortOrder.size(); ++
i)
726 aNewList[
i] =
maList[ aNewSortOrder[
i] ];
727 aNewList[
i]->SetOrdNum(
i);
730 std::swap(aNewList,
maList);
794 const bool bIsGroup(
nullptr != pChildren);
827 return maList[nNum].get();
838 if(
nullptr != pParentSdrObject)
842 if(
nullptr != pSdrPage)
854 for(
size_t i = nObj;
i>0; )
866 if(
auto pUngroupGroup =
dynamic_cast<SdrObjGroup*
>( pUngroupObj))
874 size_t nInsertPos( pUngroupGroup->GetOrdNum() );
889 OSL_FAIL(
"SdrObjList::UnGroupObj: object index invalid");
897 const sal_uInt32 nNewPosition)
912 auto iObject = ::std::find(
923 const sal_uInt32 nOldPosition = ::std::distance(
mxNavigationOrder->begin(), iObject);
924 if (nOldPosition == nNewPosition)
928 sal_uInt32 nInsertPosition (nNewPosition);
930 if (nNewPosition >= nOldPosition)
931 nInsertPosition -= 1;
952 OSL_ASSERT(nNavigationPosition < mxNavigationOrder->
size());
961 if (nNavigationPosition >=
maList.size())
963 OSL_ASSERT(nNavigationPosition <
maList.size());
966 return maList[nNavigationPosition].get();
990 rpObject.get()->SetNavigationPosition(
nIndex);
1004 const sal_Int32
nCount = rxOrder->getCount();
1013 uno::Reference<uno::XInterface> xShape (rxOrder->getByIndex(
nIndex), uno::UNO_QUERY);
1031 const sal_uInt32 nInsertPosition)
1033 OSL_ASSERT(nInsertPosition<=
maList.size());
1047 if (nInsertPosition >=
maList.size())
1048 maList.push_back(&rObject);
1050 maList.insert(
maList.begin()+nInsertPosition, &rObject);
1057 const sal_uInt32 nObjectPosition)
1059 if (nObjectPosition >=
maList.size())
1061 OSL_ASSERT(nObjectPosition<
maList.size());
1071 OSL_ASSERT(nObjectPosition <
maList.size());
1073 auto iObject = ::std::find(
1085 maList[nObjectPosition] = &rNewObject;
1091 const sal_uInt32 nObjectPosition)
1093 if (nObjectPosition >=
maList.size())
1095 OSL_ASSERT(nObjectPosition<
maList.size());
1103 auto iObject = ::std::find(
1118 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrObjList"));
1119 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1120 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"symbol"),
"%s", BAD_CAST(
typeid(*this).name()));
1123 for (
size_t i = 0;
i < nObjCount; ++
i)
1129 (void)xmlTextWriterEndElement(pWriter);
1152 const sdr::PageUserVector::iterator aFindResult = ::std::find(
maPageUsers.begin(),
maPageUsers.end(), &rOldUser);
1164 return std::make_unique<sdr::contact::ViewContactOfSdrPage>(*
this);
1214 : mpSdrPage(&rSdrPage)
1215 , mpStyleSheet(nullptr)
1217 mpSdrPage->getSdrModelFromSdrPage().GetItemPool(),
1231 std::unique_ptr<model::ColorSet> pDefaultColorSet(
new model::ColorSet(*pColorSet));
1232 mpTheme->SetColorSet(std::move(pDefaultColorSet));
1244 switch(rHint.
GetId())
1246 case SfxHintId::DataChanged :
1252 case SfxHintId::Dying :
1311 for (sal_uInt16 nPage = 0; nPage < nPageCount; ++nPage)
1332 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrPageProperties"));
1333 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1340 (void)xmlTextWriterEndElement(pWriter);
1344: mrSdrModelFromSdrPage(rModel),
1353 mbMaster(bMasterPage),
1355 mbObjectsNotPersistent(false),
1356 mbPageBorderOnlyLeftRight(false)
1365 uno::Reference< lang::XComponent > xPageComponent(
mxUnoPage, uno::UNO_QUERY_THROW );
1367 xPageComponent->dispose();
1369 catch(
const uno::Exception& )
1381 DBG_ASSERT(pPageUser,
"SdrPage::~SdrPage: corrupt PageUser list (!)");
1382 pPageUser->PageInDestruction(*
this);
1449 pClonedPage->lateInit(*
this);
1455 bool bChanged(
false);
1490 if ((eOri==Orientation::Portrait) == (aSiz.
Width()>aSiz.
Height())) {
1502 if (aSiz.
Width()>aSiz.
Height()) eRet=Orientation::Landscape;
1513 bool bChanged(
false);
1653 return const_cast< SdrPage*
>(
this);
1703 DBG_ASSERT(
mpMasterPageDescriptor !=
nullptr,
"TRG_GetMasterPageDescriptorViewContact(): No MasterPage available. Use TRG_HasMasterPage() before access (!)");
1721 std::unordered_set<OUString> aNameSet;
1727 if (!pObj->
GetName().isEmpty())
1737 pListObj = aIter.
Next();
1779 if (
auto pOleObj =
dynamic_cast<SdrOle2Obj*
>(pObj) )
1784 pOleObj->Disconnect();
1807 css::uno::Reference< css::uno::XInterface > xInt =
1871 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrPage"));
1874 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"width"));
1875 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"value"),
"%s",
1876 BAD_CAST(OString::number(
mnWidth).getStr()));
1877 (void)xmlTextWriterEndElement(pWriter);
1878 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"height"));
1879 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"value"),
"%s",
1880 BAD_CAST(OString::number(
mnHeight).getStr()));
1881 (void)xmlTextWriterEndElement(pWriter);
1888 (void)xmlTextWriterEndElement(pWriter);
Utility class SdrEdgeObj.
void ConnectToNode(bool bTail1, SdrObject *pObj) override
SdrObject * GetConnectedNode(bool bTail1) const override
void Reformat()
updates edges that are connected to the edges of this object as if the connected objects send a repai...
virtual void SetChanged(bool bFlg=true)
void AddUndo(std::unique_ptr< SdrUndoAction > pUndo)
void RecalcPageNums(bool bMaster)
bool IsUndoEnabled() const
returns true if undo is currently enabled This returns false if undo was disabled using EnableUndo( f...
const SdrPage * GetPage(sal_uInt16 nPgNum) const
sal_uInt16 GetPageCount() const
const tools::Rectangle & GetAllObjBoundRect() const
void ReformatAllTextObjects()
void InsertObjectThenMakeNameUnique(SdrObject *pObj)
virtual rtl::Reference< SdrObject > ReplaceObject(SdrObject *pNewObj, size_t nObjNum)
Replace existing object by different one.
virtual SdrPage * getSdrPageFromSdrObjList() const
virtual SdrObject * SetObjectOrdNum(size_t nOldObjNum, size_t nNewObjNum)
Modify ZOrder of an SdrObject.
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const
void ImplReformatAllEdgeObjects(const SdrObjList &)
virtual void InsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
void SetObjectNavigationPosition(SdrObject &rObject, const sal_uInt32 nNewNavigationPosition)
Set the navigation position of the given object to the specified value.
tools::Rectangle maSdrObjListOutRect
SdrObject * GetObj(size_t nNum) const
size_t GetObjCount() const
void BurnInStyleSheetAttributes()
convert attributes of the style to hard formatting
virtual bool IsReadOnly() const
linked page or linked group object
std::deque< rtl::Reference< SdrObject > > maList
void SetSdrObjListRectsDirty()
void CopyObjects(const SdrObjList &rSrcList)
void ReplaceObjectInContainer(SdrObject &rObject, const sal_uInt32 nObjectPosition)
Replace an object in the object list.
std::optional< std::vector< unotools::WeakReference< SdrObject > > > mxNavigationOrder
This list, if it exists, defines the navigation order.
void SetExistingObjectOrdNum(SdrObject *pExistingObj, size_t nNewObjNum)
Modify ZOrder of an SdrObject, object must already be in the list.
void RecalcObjOrdNums()
recalculate order numbers / ZIndex
virtual void NbcInsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
const tools::Rectangle & GetAllObjSnapRect() const
bool HasObjectNavigationOrder() const
Return whether there is an explicit, user defined, object navigation order.
void FlattenGroups()
Makes the object list flat, i.e.
virtual rtl::Reference< SdrObject > NbcRemoveObject(size_t nObjNum)
remove from list without delete
void impClearSdrObjList(bool bBroadcast)
void RemoveObjectFromContainer(const sal_uInt32 nObjectPosition)
Remove an object from the object list.
void NbcReformatAllTextObjects()
reformat all text objects, e.g. when changing printer
SdrObject * GetObjectForNavigationPosition(const sal_uInt32 nNavigationPosition) const
Return the object for the given navigation position.
void UnGroupObj(size_t nObjNum)
Ungroup the object at the given index.
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.
void ReformatAllEdgeObjects()
#103122# reformats all edge objects that are connected to other objects
void sort(std::vector< sal_Int32 > &sortOrder)
tools::Rectangle maSdrObjListSnapRect
bool RecalcNavigationPositions()
Set the navigation position of all SdrObjects to their position in the mxNavigationOrder list.
virtual rtl::Reference< SdrObject > RemoveObject(size_t nObjNum)
bool mbIsNavigationOrderDirty
This flag is <TRUE> when the mpNavigation list has been changed but the indices of the referenced Sdr...
virtual SdrObject * getSdrObjectFromSdrObjList() const
static void impChildInserted(SdrObject const &rChild)
simple ActionChildInserted forwarder to have it on a central place
void InsertObjectIntoContainer(SdrObject &rObject, const sal_uInt32 nInsertPosition)
Insert an SdrObject into maList.
void ClearObjectNavigationOrder()
Restore the navigation order to that defined by the z-order.
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
virtual void NbcSetAnchorPos(const Point &rPnt)
void InsertedStateChange()
SVX_DLLPRIVATE void setParentOfSdrObject(SdrObjList *pNew)
const Point & GetAnchorPos() const
void ActionChanged() const
sal_uInt32 GetOrdNum() const
The order number (aka ZOrder, aka z-index) determines whether a SdrObject is located above or below a...
virtual SdrObjList * GetSubList() const
void SetNavigationPosition(const sal_uInt32 nPosition)
virtual const tools::Rectangle & GetCurrentBoundRect() const
SdrObjList * getParentSdrObjListFromSdrObject() const
SdrModel & getSdrModelFromSdrObject() const
virtual const tools::Rectangle & GetSnapRect() const
SfxStyleSheet * GetStyleSheet() const
virtual const OUString & GetName() const
virtual SdrObjList * getChildrenOfSdrObject() const
sdr::contact::ViewContact & GetViewContact() const
void SetOrdNum(sal_uInt32 nNum)
void BurnInStyleSheetAttributes()
virtual SdrObjKind GetObjIdentifier() const
virtual rtl::Reference< SdrObject > CloneSdrObject(SdrModel &rTargetModel) const =0
SdrPage * getSdrPageFromSdrObject() const
virtual void NbcReformatText()
virtual void SetBoundAndSnapRectsDirty(bool bNotMyself=false, bool bRecursive=true)
SdrPageGridFrame * GetObject(sal_uInt16 i) const
sal_uInt16 GetCount() const
std::vector< SdrPageGridFrame * > aList
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
std::unique_ptr< model::Theme > mpTheme
void ImpAddStyleSheet(SfxStyleSheet &rNewStyleSheet)
const SfxItemSet & GetItemSet() const
void SetStyleSheet(SfxStyleSheet *pStyleSheet)
SfxStyleSheet * mpStyleSheet
SdrPageProperties(SdrPage &rSdrPage)
void PutItemSet(const SfxItemSet &rSet)
void SetTheme(std::unique_ptr< model::Theme > pTheme)
void dumpAsXml(xmlTextWriterPtr pWriter) const
std::unique_ptr< model::Theme > const & GetTheme() const
void PutItem(const SfxPoolItem &rItem)
virtual ~SdrPageProperties() override
void ImpRemoveStyleSheet()
virtual bool isUsedByModel() const override
SfxStyleSheet * GetStyleSheet() const
void ClearItem(const sal_uInt16 nWhich=0)
const Color & GetApplicationDocumentColor() const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
virtual SdrPage * getSdrPageFromSdrObjList() const override
std::unique_ptr< SdrLayerAdmin > mpLayerAdmin
virtual void SetLeftBorder(sal_Int32 nBorder)
virtual rtl::Reference< SdrPage > CloneSdrPage(SdrModel &rTargetModel) const
void TRG_SetMasterPage(SdrPage &rNew)
void TRG_ClearMasterPage()
void MakePageObjectsNamesUnique()
const sdr::contact::ViewContact & GetViewContact() const
css::uno::Reference< css::uno::XInterface > const & getUnoPage()
virtual ~SdrPage() override
SdrPage & TRG_GetMasterPage() const
void TRG_ImpMasterPageRemoved(const SdrPage &rRemovedPage)
sal_uInt16 GetPageNum() const
sdr::PageUserVector maPageUsers
virtual void SetBorder(sal_Int32 nLft, sal_Int32 nUpp, sal_Int32 nRgt, sal_Int32 Lwr)
virtual void SetLowerBorder(sal_Int32 nBorder)
bool mbPageBorderOnlyLeftRight
std::unique_ptr< sdr::contact::ViewContact > CreateObjectSpecificViewContact()
void SetUnoPage(css::uno::Reference< css::drawing::XDrawPage > const &)
css::uno::Reference< css::uno::XInterface > mxUnoPage
const SdrLayerAdmin & GetLayerAdmin() const
changing the layers does not set the modified-flag!
virtual OUString GetLayoutName() const
void RemovePageUser(sdr::PageUser &rOldUser)
std::unique_ptr< SdrPageProperties > mpSdrPageProperties
void dumpAsXml(xmlTextWriterPtr pWriter) const override
bool IsMasterPage() const
void SetBackgroundFullSize(bool bIn)
void lateInit(const SdrPage &rSrcPage)
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 !...
sal_Int32 GetUpperBorder() const
virtual void SetRightBorder(sal_Int32 nBorder)
virtual void SetUpperBorder(sal_Int32 nBorder)
virtual Orientation GetOrientation() const
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...
sal_Int32 GetRightBorder() const
std::unique_ptr< sdr::MasterPageDescriptor > mpMasterPageDescriptor
void AddPageUser(sdr::PageUser &rNewUser)
virtual css::uno::Reference< css::uno::XInterface > createUnoPage()
bool mbBackgroundFullSize
Background object to represent the whole page.
void TRG_SetMasterPageVisibleLayers(const SdrLayerIDSet &rNew)
sal_Int32 GetLeftBorder() const
virtual void SetOrientation(Orientation eOri)
std::unique_ptr< sdr::contact::ViewContact > mpViewContact
void SetInserted(bool bNew=true)
bool mbObjectsNotPersistent
sdr::contact::ViewContact & TRG_GetMasterPageDescriptorViewContact() const
bool TRG_HasMasterPage() const
SdrPageProperties & getSdrPageProperties()
Color GetPageBackgroundColor() const
deprecated returns an averaged background color of this page
void SetPageNum(sal_uInt16 nNew)
const SdrLayerIDSet & TRG_GetMasterPageVisibleLayers() const
bool IsBackgroundFullSize() const
const SdrPageProperties * getCorrectSdrPageProperties() const
SdrModel & getSdrModelFromSdrPage() const
sal_Int32 GetLowerBorder() const
tools::Long GetHeight() const
virtual void SetSize(const Size &aSiz)
virtual SfxStyleSheet * GetTextStyleSheetForObject(SdrObject *pObj) const
tools::Long GetWidth() const
SdrPage(const SdrPage &)=delete
static std::unique_ptr< SdrUndoAction > CreateUndoSort(SdrPage &rPage, ::std::vector< sal_Int32 > const &rSortOrder)
void Broadcast(const SfxHint &rHint)
void SetParent(const SfxItemSet *pNew)
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
virtual SfxItemSet & GetItemSet()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
const model::ColorSet & getColorSet(sal_uInt32 nIndex) const
void apply(model::ColorSet const &rColorSet) override
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define DBG_ASSERT(sCon, aError)
#define DBG_UNHANDLED_EXCEPTION(...)
EmbeddedObjectRef * pObject
struct _xmlTextWriter * xmlTextWriterPtr
SvGenericNameContainerMapImpl maProperties
tools::Long const nBorder
::std::vector< PageUser * > PageUserVector
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
bool GetDraftFillColor(const SfxItemSet &rSet, Color &rCol)
Returns a replacement for an XFillStyle.
static void ImpPageChange(SdrPage &rSdrPage)
constexpr sal_uInt16 XATTR_FILL_FIRST(XATTRSET_LINE+1)
constexpr sal_uInt16 XATTR_FILL_LAST(XATTR_FILLUSESLIDEBACKGROUND)
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)