23#include <unordered_set>
57#include <rtl/strbuf.hxx>
58#include <libxml/xmlwriter.h>
61#include <com/sun/star/lang/IllegalArgumentException.hpp>
68: mbObjOrdNumsDirty(false),
70 mbIsNavigationOrderDirty(false)
76 SdrModel* pSdrModelFromRemovedSdrObject(
nullptr);
86 pObj->GetViewContact().flushViewObjectContacts();
90 if(
nullptr == pSdrModelFromRemovedSdrObject)
92 pSdrModelFromRemovedSdrObject = &pObj->getSdrModelFromSdrObject();
98 pObj->getSdrModelFromSdrObject().Broadcast(aHint);
100 pObj->setParentOfSdrObject(
nullptr);
103 if(bBroadcast &&
nullptr != pSdrModelFromRemovedSdrObject)
118 for (
auto& rxObj :
maList)
119 rxObj->setParentOfSdrObject(
nullptr);
144 size_t nCloneErrCnt(0);
150 OSL_ENSURE(
false,
"SdrObjList which is not part of SdrPage or SdrObject (!)");
158 for (
size_t no(0); no <
nCount; ++no)
166 aCloneList.
AddPair(pSO, pDO.get());
179 if (nCloneErrCnt != 0)
181 OStringBuffer
aStr(
"SdrObjList::operator=(): Error when cloning ");
183 if(nCloneErrCnt == 1)
185 aStr.append(
"a drawing object.");
189 aStr.append(OString::number(
static_cast<sal_Int32
>(nCloneErrCnt))
190 +
" drawing objects.");
193 OSL_FAIL(
aStr.getStr());
202 pObj->SetOrdNum(no++);
228 if(
nullptr != pParentSdrObject)
246 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::NbcInsertObject(NULL)");
271 std::unordered_set<rtl::OUString> aNameSet;
287 while (aIter.IsMore())
289 pListObj = aIter.Next();
297 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::InsertObject(NULL)");
306 if(rAnchorPos.
X() || rAnchorPos.
Y())
336 if (nObjNum >=
maList.size())
338 OSL_ASSERT(nObjNum<
maList.size());
346 DBG_ASSERT(pObj!=
nullptr,
"Could not find object to remove.");
350 pObj->GetViewContact().flushViewObjectContacts();
352 DBG_ASSERT(pObj->IsInserted(),
"The object does not have the status Inserted.");
356 pObj->setParentOfSdrObject(
nullptr);
359 pObj->InsertedStateChange();
375 if (nObjNum >=
maList.size())
377 OSL_ASSERT(nObjNum<
maList.size());
385 DBG_ASSERT(pObj!=
nullptr,
"Object to remove not found.");
389 pObj->GetViewContact().flushViewObjectContacts();
390 DBG_ASSERT(pObj->IsInserted(),
"The object does not have the status Inserted.");
393 if (pObj->getSdrPageFromSdrObject()!=
nullptr)
396 pObj->getSdrModelFromSdrObject().Broadcast(aHint);
399 pObj->getSdrModelFromSdrObject().SetChanged();
403 pObj->setParentOfSdrObject(
nullptr);
406 pObj->InsertedStateChange();
431 if (nObjNum >=
maList.size())
433 OSL_ASSERT(nObjNum<
maList.size());
436 if (pNewObj ==
nullptr)
438 OSL_ASSERT(pNewObj!=
nullptr);
443 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::ReplaceObject: Could not find object to remove.");
445 DBG_ASSERT(pObj->IsInserted(),
"SdrObjList::ReplaceObject: the object does not have status Inserted.");
448 if (pObj->getSdrPageFromSdrObject()!=
nullptr)
451 pObj->getSdrModelFromSdrObject().Broadcast(aHint);
455 pObj->setParentOfSdrObject(
nullptr);
462 pObj->InsertedStateChange();
466 pObj->GetViewContact().flushViewObjectContacts();
495 if (nOldObjNum >=
maList.size() || nNewObjNum >=
maList.size())
497 OSL_ASSERT(nOldObjNum<
maList.size());
498 OSL_ASSERT(nNewObjNum<
maList.size());
503 if (nOldObjNum==nNewObjNum)
return pObj.get();
504 DBG_ASSERT(pObj!=
nullptr,
"SdrObjList::SetObjectOrdNum: Object not found.");
506 DBG_ASSERT(pObj->IsInserted(),
"SdrObjList::SetObjectOrdNum: the object does not have status Inserted.");
512 pObj->ActionChanged();
514 pObj->SetOrdNum(nNewObjNum);
518 if (pObj->getSdrPageFromSdrObject()!=
nullptr)
520 pObj->getSdrModelFromSdrObject().SetChanged();
527 assert(std::find(
maList.begin(),
maList.end(), pObj) !=
maList.end() &&
"This method requires that the child object already be inserted");
528 assert(pObj->
IsInserted() &&
"SdrObjList::SetObjectOrdNum: the object does not have status Inserted.");
532 const sal_uInt32 nOldOrdNum = pObj->
m_nOrdNum;
540 auto iObject = ::std::find(
551 if (nOldOrdNum <
maList.size() &&
maList[nOldOrdNum] == pObj)
555 auto it = std::find(
maList.begin(),
maList.end(), pObj);
561 if (nNewObjNum >=
maList.size())
584 auto it = std::find_if( sortOrder.begin(), sortOrder.end(), [
this](
const sal_Int32& rIt)
585 { return ( rIt < 0 || o3tl::make_unsigned(rIt) >= maList.size() ); } );
586 if ( it != sortOrder.end())
587 throw css::lang::IllegalArgumentException(
"negative index of shape",
nullptr, 1);
590 std::vector<bool> aNoDuplicates(sortOrder.size(),
false);
591 for (
size_t i = 0;
i < sortOrder.size(); ++
i )
593 size_t idx =
static_cast<size_t>( sortOrder[
i] );
595 if ( aNoDuplicates[
idx] )
596 throw css::lang::IllegalArgumentException(
"duplicate index of shape",
nullptr, 2);
598 aNoDuplicates[
idx] =
true;
605 std::deque<rtl::Reference<SdrObject>> aNewList(
maList.size());
606 std::set<sal_Int32> aShapesWithTextbox;
607 std::vector<sal_Int32> aIncrements;
608 std::vector<sal_Int32> aDuplicates;
612 for (
size_t i = 1;
i<
maList.size(); ++
i)
618 aShapesWithTextbox.insert(
i - 1 - aShapesWithTextbox.size() );
623 if (aShapesWithTextbox.size() !=
maList.size() - sortOrder.size())
625 throw lang::IllegalArgumentException(
"mismatch of no. of shapes",
nullptr, 0);
628 for (
size_t i = 0;
i< sortOrder.size(); ++
i)
631 if (aShapesWithTextbox.count(sortOrder[
i]) > 0)
632 aDuplicates.push_back(sortOrder[
i]);
634 aDuplicates.push_back(sortOrder[
i]);
638 assert(aDuplicates.size() ==
maList.size());
640 aIncrements.push_back(0);
641 for (
size_t i = 1;
i< sortOrder.size(); ++
i)
643 if (aShapesWithTextbox.count(
i - 1))
644 aIncrements.push_back(aIncrements[
i-1] + 1 );
646 aIncrements.push_back(aIncrements[
i-1]);
650 assert(aIncrements.size() == sortOrder.size());
652 std::vector<sal_Int32> aNewSortOrder(
maList.size());
653 sal_Int32 nPrev = -1;
654 for (
size_t i = 0;
i< aDuplicates.size(); ++
i)
656 if (nPrev != aDuplicates[
i])
657 aNewSortOrder[
i] = aDuplicates[
i] + aIncrements[aDuplicates[
i]];
659 aNewSortOrder[
i] = aNewSortOrder[
i-1] + 1;
661 nPrev = aDuplicates[
i];
665 assert(aNewSortOrder.size() ==
maList.size());
669 std::vector<sal_Int32> tmp(aNewSortOrder);
670 std::sort(tmp.begin(), tmp.end());
671 for (
size_t i = 0;
i < tmp.size(); ++
i)
673 assert(
size_t(tmp[
i]) ==
i);
685 for (
size_t i = 0;
i < aNewSortOrder.size(); ++
i)
687 aNewList[
i] =
maList[ aNewSortOrder[
i] ];
688 aNewList[
i]->SetOrdNum(
i);
691 std::swap(aNewList,
maList);
755 const bool bIsGroup(
nullptr != pChildren);
788 return maList[nNum].get();
810 if(
nullptr != pParentSdrObject)
814 if(
nullptr != pSdrPage)
826 for(
size_t i = nObj;
i>0; )
838 if(
auto pUngroupGroup =
dynamic_cast<SdrObjGroup*
>( pUngroupObj))
846 size_t nInsertPos( pUngroupGroup->GetOrdNum() );
861 OSL_FAIL(
"SdrObjList::UnGroupObj: object index invalid");
869 const sal_uInt32 nNewPosition)
884 auto iObject = ::std::find(
895 const sal_uInt32 nOldPosition = ::std::distance(
mxNavigationOrder->begin(), iObject);
896 if (nOldPosition == nNewPosition)
900 sal_uInt32 nInsertPosition (nNewPosition);
902 if (nNewPosition >= nOldPosition)
903 nInsertPosition -= 1;
924 OSL_ASSERT(nNavigationPosition < mxNavigationOrder->
size());
933 if (nNavigationPosition >=
maList.size())
935 OSL_ASSERT(nNavigationPosition <
maList.size());
938 return maList[nNavigationPosition].get();
962 rpObject.get()->SetNavigationPosition(
nIndex);
976 const sal_Int32
nCount = rxOrder->getCount();
985 uno::Reference<uno::XInterface> xShape (rxOrder->getByIndex(
nIndex), uno::UNO_QUERY);
1003 const sal_uInt32 nInsertPosition)
1005 OSL_ASSERT(nInsertPosition<=
maList.size());
1019 if (nInsertPosition >=
maList.size())
1020 maList.push_back(&rObject);
1022 maList.insert(
maList.begin()+nInsertPosition, &rObject);
1029 const sal_uInt32 nObjectPosition)
1031 if (nObjectPosition >=
maList.size())
1033 OSL_ASSERT(nObjectPosition<
maList.size());
1043 OSL_ASSERT(nObjectPosition <
maList.size());
1045 auto iObject = ::std::find(
1057 maList[nObjectPosition] = &rNewObject;
1063 const sal_uInt32 nObjectPosition)
1065 if (nObjectPosition >=
maList.size())
1067 OSL_ASSERT(nObjectPosition<
maList.size());
1075 auto iObject = ::std::find(
1090 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrObjList"));
1091 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1092 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"symbol"),
"%s", BAD_CAST(
typeid(*this).name()));
1095 for (
size_t i = 0;
i < nObjCount; ++
i)
1101 (void)xmlTextWriterEndElement(pWriter);
1124 const sdr::PageUserVector::iterator aFindResult = ::std::find(
maPageUsers.begin(),
maPageUsers.end(), &rOldUser);
1136 return std::make_unique<sdr::contact::ViewContactOfSdrPage>(*
this);
1186 : mpSdrPage(&rSdrPage)
1187 , mpStyleSheet(nullptr)
1189 mpSdrPage->getSdrModelFromSdrPage().GetItemPool(),
1203 std::shared_ptr<model::ColorSet> pDefaultColorSet(
new model::ColorSet(*pColorSet));
1204 mpTheme->setColorSet(pDefaultColorSet);
1216 switch(rHint.
GetId())
1218 case SfxHintId::DataChanged :
1224 case SfxHintId::Dying :
1286 for (sal_uInt16 nPage = 0; nPage < nPageCount; ++nPage)
1307 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrPageProperties"));
1308 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1315 (void)xmlTextWriterEndElement(pWriter);
1319: mrSdrModelFromSdrPage(rModel),
1328 mbMaster(bMasterPage),
1330 mbObjectsNotPersistent(false),
1331 mbPageBorderOnlyLeftRight(false)
1340 uno::Reference< lang::XComponent > xPageComponent(
mxUnoPage, uno::UNO_QUERY_THROW );
1342 xPageComponent->dispose();
1344 catch(
const uno::Exception& )
1356 DBG_ASSERT(pPageUser,
"SdrPage::~SdrPage: corrupt PageUser list (!)");
1357 pPageUser->PageInDestruction(*
this);
1424 pClonedPage->lateInit(*
this);
1430 bool bChanged(
false);
1465 if ((eOri==Orientation::Portrait) == (aSiz.
Width()>aSiz.
Height())) {
1477 if (aSiz.
Width()>aSiz.
Height()) eRet=Orientation::Landscape;
1488 bool bChanged(
false);
1628 return const_cast< SdrPage*
>(
this);
1678 DBG_ASSERT(
mpMasterPageDescriptor !=
nullptr,
"TRG_GetMasterPageDescriptorViewContact(): No MasterPage available. Use TRG_HasMasterPage() before access (!)");
1696 std::unordered_set<OUString> aNameSet;
1702 if (!pObj->
GetName().isEmpty())
1712 pListObj = aIter.
Next();
1754 if (
auto pOleObj =
dynamic_cast<SdrOle2Obj*
>(pObj) )
1759 pOleObj->Disconnect();
1844 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SdrPage"));
1847 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"width"));
1848 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"value"),
"%s",
1849 BAD_CAST(OString::number(
mnWidth).getStr()));
1850 (void)xmlTextWriterEndElement(pWriter);
1851 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"height"));
1852 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"value"),
"%s",
1853 BAD_CAST(OString::number(
mnHeight).getStr()));
1854 (void)xmlTextWriterEndElement(pWriter);
1861 (void)xmlTextWriterEndElement(pWriter);
void AddPair(const SdrObject *pOriginal, SdrObject *pClone)
void CopyConnections() const
constexpr tools::Long Y() const
constexpr tools::Long X() const
Utility class SdrEdgeObj.
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 * GetObjByName(std::u16string_view sName) const
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
virtual SdrObjList * GetSubList() const
void SetNavigationPosition(const sal_uInt32 nPosition)
virtual const tools::Rectangle & GetCurrentBoundRect() 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
void ImpAddStyleSheet(SfxStyleSheet &rNewStyleSheet)
const SfxItemSet & GetItemSet() const
void SetStyleSheet(SfxStyleSheet *pStyleSheet)
SfxStyleSheet * mpStyleSheet
SdrPageProperties(SdrPage &rSdrPage)
void PutItemSet(const SfxItemSet &rSet)
void dumpAsXml(xmlTextWriterPtr pWriter) const
void PutItem(const SfxPoolItem &rItem)
std::shared_ptr< model::Theme > const & GetTheme() const
virtual ~SdrPageProperties() override
void ImpRemoveStyleSheet()
virtual bool isUsedByModel() const override
SfxStyleSheet * GetStyleSheet() const
void SetTheme(std::shared_ptr< model::Theme > const &pTheme)
std::shared_ptr< model::Theme > mpTheme
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(std::shared_ptr< model::ColorSet > const &pColorSet) 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)