20#include <config_wasm_strip.h>
23#include <osl/diagnose.h>
25#include <com/sun/star/i18n/CharacterIteratorMode.hpp>
26#include <com/sun/star/i18n/XBreakIterator.hpp>
114static void SetParent( std::shared_ptr<const SfxItemSet>& rpAttrSet,
117 const SwFormat* pConditionalFormat )
120 OSL_ENSURE( pAttrSet,
"no SwAttrSet" );
121 OSL_ENSURE( pParentFormat || !pConditionalFormat,
"ConditionalFormat without ParentFormat?" );
125 if ( pParentSet == pAttrSet->
GetParent() )
138 aNewSet.
Put( aAnyFormatColl );
140 if ( pConditionalFormat != pParentFormat )
144 aNewSet.
Put( aFormatColl );
167 std::optional<SfxItemSetFixed<RES_FRMATR_STYLE_NAME, RES_FRMATR_CONDITIONAL_STYLE_NAME>> pStyleNames;
170 pStyleNames.emplace( *aNewSet.
GetPool() );
171 pStyleNames->Put( aNewSet );
174 const bool bRet = aNewSet.
Put(
rSet );
179 aNewSet.
Put( *pStyleNames );
188static bool Put_BC( std::shared_ptr<const SfxItemSet>& rpAttrSet,
199 const bool bRet = aNewSet.
Put_BC( rAttr, pOld, pNew );
207static bool Put_BC( std::shared_ptr<const SfxItemSet>& rpAttrSet,
214 std::optional<SfxItemSetFixed<RES_FRMATR_STYLE_NAME, RES_FRMATR_CONDITIONAL_STYLE_NAME>> pStyleNames;
217 pStyleNames.emplace( *aNewSet.
GetPool() );
218 pStyleNames->Put( aNewSet );
226 const bool bRet = aNewSet.
Put_BC(
rSet, pOld, pNew );
231 aNewSet.
Put( *pStyleNames );
240static sal_uInt16
ClearItem_BC( std::shared_ptr<const SfxItemSet>& rpAttrSet,
247 const sal_uInt16 nRet = aNewSet.
ClearItem_BC( nWhich, pOld, pNew );
253static sal_uInt16
ClearItem_BC( std::shared_ptr<const SfxItemSet>& rpAttrSet,
255 sal_uInt16 nWhich1, sal_uInt16 nWhich2,
261 const sal_uInt16 nRet = aNewSet.
ClearItem_BC( nWhich1, nWhich2, pOld, pNew );
300 , m_nAFormatNumLvl( 0 )
301 , m_bIgnoreDontExpand( false)
304 , m_nSerial( s_nSerial++)
306 , m_pStartOfSection( nullptr )
310 : m_nNodeType( nNdType )
311 , m_nAFormatNumLvl( 0 )
312 , m_bIgnoreDontExpand( false)
315 , m_nSerial( s_nSerial++)
317 , m_pStartOfSection( nullptr )
324 SwNode* pNd = rNodes[ nWhereOffset -1 ];
345 : m_nNodeType( nNdType )
346 , m_nAFormatNumLvl( 0 )
347 , m_bIgnoreDontExpand( false)
350 , m_nSerial( s_nSerial++)
352 , m_pStartOfSection( nullptr )
453 if( pSttNd &&
static_cast<const SwSectionNode*
>(pSttNd)->GetSection().IsProtectFlag() )
457 if(
nullptr != pSttNd )
479 return pAnchorNode !=
this && pAnchorNode->
IsProtect();
483 if(
nullptr != pSttNd )
552 for(
size_t n = 0;
n < rFormats.
size(); ++
n )
559 pFormat = pFrameFormat;
567 if ((RndStdIds::FLY_AT_PAGE != pAnchor->
GetAnchorId()) &&
576 for(
n = 0;
n < rFormats.
size(); ++
n )
581 if( pIdx && pFlyNd == &pIdx->
GetNode() )
583 if( pFormat == pFrameFormat )
590 if ((RndStdIds::FLY_AT_PAGE == pAnchor->
GetAnchorId()) ||
601 if(
n >= rFormats.
size() )
603 OSL_ENSURE(
false,
"FlySection, but no Format found" );
643 int nStt = 0, nLast = 1;
644 if( !( eAskUse & rPgDsc.
ReadUseOn() )) ++nLast;
646 for( ; nStt < nLast; ++nStt, pFormat = &rPgDsc.
GetLeft() )
658 static_cast<SwNode const *
>(pSttNd) )
676 for(
size_t n = 0;
n < rFootnoteArr.
size(); ++
n )
677 if(
nullptr != ( pTextFootnote = rFootnoteArr[
n ])->GetStartNode() &&
678 static_cast<SwNode const *
>(pSttNd) ==
690 "Where is this Node?" );
705 if( pPageDescItem && pPageDescItem->GetDefinedIn() )
707 const sw::BroadcastingModify* pMod = pPageDescItem->
GetDefinedIn();
708 if(
auto pContentNode =
dynamic_cast<const SwContentNode*
>( pMod) )
710 else if(
auto pFormat =
dynamic_cast<const SwFormat*
>( pMod) )
711 pFormat->GetInfo( aInfo );
722 GetFrameFormat()->GetPageDesc().GetPageDesc();
725 GetFormat()->GetPageDesc().GetPageDesc();
755 for(
size_t n = 0;
n < rFrameFormatTable.
size(); ++
n )
802 bool bCheckFirst =
false;
820 pRet = rONds[
nPos]->GetTextNode();
834 std::pair<Point, bool>
const tmp(aPt,
false);
838 if( pPgFrame && pMyFrame &&
903 const char*
pName =
"???";
921 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
pName));
923 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
924 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"type"), BAD_CAST(OString::number(
static_cast<sal_uInt8>(
GetNodeType())).getStr()));
925 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"), BAD_CAST(OString::number(sal_Int32(
GetIndex())).getStr()));
931 auto pNoTextNode =
static_cast<const SwNoTextNode*
>(
this);
935 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"pContour"));
936 for (sal_uInt16
i = 0;
i < pContour->
Count(); ++
i)
938 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"polygon"));
939 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"),
940 BAD_CAST(OString::number(
i).getStr()));
942 for (sal_uInt16 j = 0; j < rPolygon.
GetSize(); ++j)
944 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"point"));
945 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"),
946 BAD_CAST(OString::number(j).getStr()));
948 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"x"),
949 BAD_CAST(OString::number(rPoint.X()).getStr()));
950 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"y"),
951 BAD_CAST(OString::number(rPoint.Y()).getStr()));
952 (void)xmlTextWriterEndElement(pWriter);
954 (void)xmlTextWriterEndElement(pWriter);
956 (void)xmlTextWriterEndElement(pWriter);
964 (void)xmlTextWriterEndElement(pWriter);
966 (
void)xmlTextWriterEndElement(pWriter);
971 :
SwNode( rWhere, nNdType ), m_eStartNodeType( eSttNd )
1001 while(
nullptr != ( pCNd = rNds.
GoNext( &aIdx )) && pCNd->
GetIndex() < nEndIdx )
1007 const char*
pName =
"???";
1038 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
pName));
1039 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1040 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"type"), BAD_CAST(OString::number(
static_cast<sal_uInt8>(
GetNodeType())).getStr()));
1041 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"), BAD_CAST(OString::number(sal_Int32(
GetIndex())).getStr()));
1046 (
void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"rowspan"), BAD_CAST(OString::number(pBox->getRowSpan()).getStr()));
1047 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"attrset"));
1049 pBox->GetFrameFormat()->GetAttrSet().dumpAsXml(pWriter);
1050 (void)xmlTextWriterEndElement(pWriter);
1084 , m_aCondCollListener( *this )
1085 , m_pCondColl( nullptr )
1086 , mbSetModifyAtAttr( false )
1091 :
SwNode( rWhere, nNdType )
1092 , m_aCondCollListener( *this )
1093 , m_pCondColl( nullptr )
1094 , mbSetModifyAtAttr( false )
1121 static_cast<SwTextNode*
>(
this)->SetCalcHiddenCharFlags();
1127 if (rHint.
GetId() == SfxHintId::SwLegacyModify)
1130 const sal_uInt16 nWhich = pLegacyHint->
GetWhich();
1133 bool bSetParent =
false;
1134 bool bCalcHidden =
false;
1140 SwFormat* pFormat = pLegacyHint->m_pNew
1144 if(pFormat && GetRegisteredIn() == pFormat)
1146 if(pFormat->GetRegisteredIn())
1149 pFormat->GetRegisteredIn()->Add(
this);
1163 && pLegacyHint->m_pNew
1174 && pLegacyHint->m_pOld
1186 if(pLegacyHint->m_pNew != pLegacyHint->m_pOld)
1188 auto pBT = sal::backtrace_get(20);
1189 SAL_WARN(
"sw.core",
"UpdateAttr not matching! " << sal::backtrace_to_string(pBT.get()));
1192 assert(pLegacyHint->m_pNew == pLegacyHint->m_pOld);
1193 assert(
dynamic_cast<const SwUpdateAttr*
>(pLegacyHint->m_pNew));
1195 const SwUpdateAttr& rUpdateAttr = pLegacyHint->m_pNew ? *
static_cast<const SwUpdateAttr*
>(pLegacyHint->m_pNew) : aFallbackHint;
1202 static_cast<SwTextNode*
>(
this)->SetCalcHiddenCharFlags();
1203 CallSwClientNotify(rHint);
1222 nullptr != (pRule =
GetDoc().FindNumRulePtr(
1227 return nullptr != pRule;
1232 std::pair<Point, bool>
const*
const pViewPosAndCalcFrame)
const
1235 pPos, pViewPosAndCalcFrame));
1241 std::pair<Point, bool> tmp;
1244 tmp.first = *pPoint;
1248 FRM_CNTNT,
nullptr, pPoint ? &tmp :
nullptr) );
1258 if( pFrame &&
nullptr != ( pFrame = pFrame->
FindPageFrame() ))
1267 OSL_ENSURE( pNewColl,
"Collectionpointer is 0." );
1270 if( pNewColl != pOldColl )
1272 pNewColl->Add(
this );
1280 if( !IsModifyLocked() )
1314 sal_Int32 nDone = 0;
1316 CharacterIteratorMode::SKIPCELL :
1317 CharacterIteratorMode::SKIPCONTROLCHARACTER;
1320 nItrMode, 1, nDone );
1325 sal_Int32 nHiddenStart;
1326 sal_Int32 nHiddenEnd;
1355 sal_Int32 nDone = 0;
1357 CharacterIteratorMode::SKIPCELL :
1358 CharacterIteratorMode::SKIPCONTROLCHARACTER;
1361 nItrMode, 1, nDone );
1366 sal_Int32 nHiddenStart;
1367 sal_Int32 nHiddenEnd;
1370 nPos = nHiddenStart;
1390 OSL_ENSURE( &rNode !=
this,
1391 "No ContentNode or CopyNode and new Node identical." );
1393 if( !HasWriterListeners() || &rNode ==
this )
1403 while(
nullptr != (pUpper = aNode2Layout.
UpperFrame( pFrame, rNode )) )
1411 pNew->
Paste( pUpper, pFrame );
1417#if !ENABLE_WASM_STRIP_ACCESSIBILITY
1421 if ( pViewShell && pViewShell->
GetLayout() &&
1427 pNext ? pNext->DynCastTextFrame() :
nullptr,
1428 pPrev ? pPrev->DynCastTextFrame() :
nullptr );
1441 if( !HasWriterListeners() )
1451 if (pFrame->IsTextFrame())
1454 static_cast<SwTextFrame *
>(pFrame)->GetMergedPara())
1456 if (
this != pMerged->pFirstNode)
1465 if (
this == pMerged->pParaPropsNode)
1468 assert(
this == pMerged->pLastNode);
1469 assert(pMerged->extents.empty());
1473 assert(pMerged->pFirstNode->GetIndex() <=
i);
1481 else if (pMerged->pFirstNode->GetIndex() ==
i)
1484 pMerged->pParaPropsNode = pMerged->pFirstNode;
1488 assert(pMerged->listener.IsListeningTo(pMerged->pParaPropsNode));
1490 assert(
GetIndex() <= pMerged->pLastNode->GetIndex());
1491 if (
this == pMerged->pLastNode)
1496 this == pMerged->pLastNode; --
i)
1505 SwStartNode const*
const pStart(pEnd->StartOfSectionNode());
1509 assert(pMerged->pFirstNode->GetIndex() <= pMerged->pLastNode->GetIndex());
1510 assert(pMerged->listener.IsListeningTo(pMerged->pLastNode));
1513 pMerged->listener.EndListening(
this);
1522#if !ENABLE_WASM_STRIP_ACCESSIBILITY
1523 SwViewShell* pViewShell( pFrame->getRootFrame()->GetCurrShell() );
1524 if ( pViewShell && pViewShell->
GetLayout() &&
1527 auto pNext = pFrame->FindNextCnt(
true );
1528 auto pPrev = pFrame->FindPrevCnt();
1530 pNext ? pNext->DynCastTextFrame() :
nullptr,
1531 pPrev ? pPrev->DynCastTextFrame() :
nullptr );
1536 if( pFrame->IsFollow() )
1539 pMaster->SetFollow( pFrame->GetFollow() );
1541 pFrame->SetFollow(
nullptr );
1549 if( pFrame->GetUpper() && pFrame->IsInFootnote() && !pFrame->GetIndNext() &&
1550 !pFrame->GetIndPrev() )
1553 OSL_ENSURE( pFootnote,
"You promised a FootnoteFrame?" );
1556 nullptr != ( pCFrame = pFootnote->
GetRefFromAttr()) && pCFrame->IsFollow() )
1558 OSL_ENSURE( pCFrame->
IsTextFrame(),
"NoTextFrame has Footnote?" );
1575 switch( rInfo.
Which() )
1597 return sw::BroadcastingModify::GetInfo( rInfo );
1606 OSL_ENSURE(
GetpSwAttrSet(),
"Why did't we create an AttrSet?");
1612 if( IsModifyLocked() ||
1634 OSL_ENSURE(
rSet.
Count() == 1,
"SetAutoStyle mixed with other attributes?!" );
1638 bool bSetParent =
true;
1675 if ( IsModifyLocked() ||
1676 ( !HasWriterListeners() &&
1702 if( IsModifyLocked() )
1704 sal_uInt16 nDel = 0;
1705 if ( !nWhich2 || nWhich2 < nWhich1 )
1718 if( !nWhich2 || nWhich2 < nWhich1 )
1742 sal_uInt16 nDel = 0;
1743 if( IsModifyLocked() )
1752 for (
const auto& rWhich : rWhichArr )
1771 if( IsModifyLocked() )
1789 return aNew.
Count();
1803 sal_uInt16 nRet = 0;
1804 if ( rWhichIds.empty() )
1809 for (
const auto& rWhichId : rWhichIds )
1811 nRet = nRet + aNewAttrSet.
ClearItem( rWhichId );
1820 bool bInParents )
const
1826 nWhich,
false, &pFnd ) && bInParents ))
1828 (void)
static_cast<const SwFormat*
>(GetRegisteredIn())->GetItemState( nWhich, bInParents, &pFnd );
1864 const SwNode* pNd =
this;
1865 while( aIdx < rNds.
Count()-1 &&
1866 (( pNd = &aIdx.
GetNode())->IsSectionNode() ||
1888 const SwNode* pNd =
this;
1889 while( aIdx < rNds.
Count()-1 &&
1890 (( pNd = &aIdx.
GetNode())->IsSectionNode() ||
1911 const SwNode* pNd =
this;
1913 (( pNd = &aIdx.
GetNode())->IsSectionNode() ||
1931 ( pColl && pColl !=
m_pCondColl->GetRegisteredIn() )) )
1942 if(!IsModifyLocked())
1972 if( pTableNd &&
nullptr != ( pBox = pTableNd->
GetTable().
1984 const SwNode* pSrchNd = pSttNd;
1986 for(
size_t n = 0;
n < rFootnoteArr.
size(); ++
n )
1987 if(
nullptr != ( pTextFootnote = rFootnoteArr[
n ])->
GetStartNode() &&
2016 if( !rOutlNds.
empty() )
2039 if(pColl != GetRegisteredIn())
2041 SAL_INFO(
"sw.core",
"Not our cond collection, skipping check of Cond Colls.");
2046 SAL_WARN(
"sw.core",
"Nodes amiss, skipping check of Cond Colls.");
2061 ->HasCondition( aTmp );
2077 static_cast<SwTextNode*
>(
this)->GetActualListLevel() );
2079 HasCondition( aTmp );
2092 const Point* pPt )
const
2101 std::pair<Point, bool>
const tmp(aPt,
false);
2109 nRet = SvxFrameDirection::Vertical_LR_BT;
2111 nRet = SvxFrameDirection::Vertical_LR_TB;
2113 nRet = SvxFrameDirection::Vertical_RL_TB;
2118 nRet = SvxFrameDirection::Horizontal_RL_TB;
2120 nRet = SvxFrameDirection::Horizontal_LR_TB;
2129 std::unique_ptr<SwOLENodes> pNodes;
2138 pNodes->push_back( pONd );
struct _xmlTextWriter * xmlTextWriterPtr
const OUString & GetValue() const
Text operation/manipulation interface.
Provides access to the formatting devices of a document.
Document fields related interfaces.
Provides access to the layout of a document.
virtual const SwRootFrame * GetCurrentLayout() const =0
virtual const SwViewShell * GetCurrentViewShell() const =0
Returns the layout set at the document.
Document links administration interface.
Provides numbered items of a document.
Provides access to the marks of a document.
virtual bool IsInRedlines(const SwNode &rNode) const =0
Provides access to settings of a document.
Access to the style pool.
virtual std::shared_ptr< SfxItemSet > getAutomaticStyle(const SfxItemSet &rSet, SwAutoStyleFamily eFamily, const OUString *pParentName=nullptr)=0
Item2Range GetItemSurrogates(sal_uInt16 nWhich) const
void SetParent(const SfxItemSet *pNew)
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
const SfxItemSet * GetParent() const
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
bool Set(const SfxItemSet &, bool bDeep=true)
bool IsContentProtected() const
SwAttrPool * GetPool() const
sal_uInt16 ClearItem_BC(sal_uInt16 nWhich, SwAttrSet *pOld, SwAttrSet *pNew)
bool Put_BC(const SfxPoolItem &rAttr, SwAttrSet *pOld, SwAttrSet *pNew)
bool SetModifyAtAttr(const sw::BroadcastingModify *pModify)
special treatment for some attributes
css::uno::Reference< css::i18n::XBreakIterator > const & GetBreakIter() const
const css::lang::Locale & GetLocale(const LanguageType aLang)
void SetCondition(Master_CollCondition nCond, sal_uInt32 nSubCond)
SwTextFormatColl * GetTextFormatColl() const
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
SwTextFrame * FindMaster() const
Marks a character position inside a document model content node (SwContentNode)
sal_Int32 GetIndex() const
const SwContentNode * GetContentNode() const
void MakeFramesForAdjacentContentNode(SwContentNode &rNode)
Method creates all views of document for given node.
SwFormatColl * GetFormatColl() const
virtual void SwClientNotify(const SwModify &, const SfxHint &rHint) override
static std::unique_ptr< SwOLENodes > CreateOLENodesArray(const SwFormatColl &rColl, bool bOnlyWithInvalidSize)
SwFormatColl * m_pCondColl
bool InvalidateNumRule()
Invalidates NumRule at the node.
virtual drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const
virtual bool GetInfo(SfxPoolItem &) const override
Get information from Client.
virtual SwContentFrame * MakeFrame(SwFrame *pSib)=0
MakeFrame will be called for a certain layout pSib is another SwFrame of the same layout (e....
bool IsAnyCondition(SwCollCondition &rTmp) const
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
const SfxPoolItem & GetAttr(sal_uInt16 nWhich, bool bInParent=true) const
SS for PoolItems: hard attributation.
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
bool CanJoinNext(SwNodeIndex *pIdx=nullptr) const
Is it possible to join two nodes? In pIdx the second position can be returned.
bool GetModifyAtAttr() const
void DelFrames(SwRootFrame const *pLayout)
Method deletes all views of document for the node.
SwRect FindPageFrameRect() const
sal_uInt16 ClearItemsFromAttrSet(const std::vector< sal_uInt16 > &rWhichIds)
There some functions that like to remove items from the internal SwAttrSet (handle):
virtual SwContentNode * JoinNext()
void SetModifyAtAttr(bool bSetModifyAtAttr) const
virtual ~SwContentNode() override=0
the = 0 forces the class to be an abstract base class, but the dtor can be still called from subclass...
std::shared_ptr< const SfxItemSet > mpAttrSet
Attribute-set for all auto attributes of a ContentNode.
virtual bool SetAttr(const SfxPoolItem &)
made virtual
SvxFrameDirection GetTextDirection(const SwPosition &rPos, const Point *pPt) const
determines the text direction for a certain position.
void ChkCondColl(const SwTextFormatColl *pColl=nullptr)
bool CanJoinPrev(SwNodeIndex *pIdx=nullptr) const
Can we join two Nodes? We can return the 2nd position in pIdx.
virtual sal_Int32 Len() const
bool GoPrevious(SwContentIndex *, SwCursorSkipMode nMode) const
const SwAttrSet * GetpSwAttrSet() const
void SetCondFormatColl(SwFormatColl *)
bool GoNext(SwContentIndex *, SwCursorSkipMode nMode) const
virtual SwFormatColl * ChgFormatColl(SwFormatColl *)
sw::WriterMultiListener m_aCondCollListener
SwFormatColl * GetCondFormatColl() const
virtual bool ResetAttr(sal_uInt16 nWhich1, sal_uInt16 nWhich2=0)
SwRect FindLayoutRect(const bool bPrtArea=false, const Point *pPoint=nullptr) const
const SfxPoolItem * GetNoCondAttr(sal_uInt16 nWhich, bool bInParents) const
Obtains attribute that is not delivered via conditional style!
void UpdateAttr(const SwUpdateAttr &)
virtual sal_uInt16 ResetAllAttr()
SwFormatColl & GetAnyFormatColl() const
virtual void NewAttrSet(SwAttrPool &)=0
Make respective nodes create the specific AttrSets.
SwContentNode()
only used by SwContentNodeTmp in SwTextNode::Update
std::unique_ptr< sw::OnlineAccessibilityCheck > const & getOnlineAccessibilityCheck() const
IDocumentDeviceAccess const & getIDocumentDeviceAccess() const
size_t GetPageDescCnt() const
IDocumentLinksAdministration const & getIDocumentLinksAdministration() const
IDocumentListItems const & getIDocumentListItems() const
IDocumentContentOperations const & getIDocumentContentOperations() const
IStyleAccess & GetIStyleAccess()
IDocumentFieldsAccess const & getIDocumentFieldsAccess() const
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
IDocumentLayoutAccess const & getIDocumentLayoutAccess() const
SwFootnoteIdxs & GetFootnoteIdxs()
IDocumentMarkAccess * getIDocumentMarkAccess()
IDocumentStylePoolAccess const & getIDocumentStylePoolAccess() const
const SwAttrPool & GetAttrPool() const
IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const
const SwFrameFormats * GetSpzFrameFormats() const
::sw::DocumentSettingManager & GetDocumentSettingManager()
const SwPageDesc & GetPageDesc(const size_t i) const
Ends a section of nodes in the document model.
SwEndNode(SwNodes &rNodes, SwNodeOffset nPos, SwStartNode &rSttNd)
for the initial StartNode
void CheckNode(const SwNode &rNd)
const SwNode * GetFoundNode() const
virtual const SwFlyFrameFormat * GetFormat() const override
Content, content of frame (header, footer, fly).
const SwNodeIndex * GetContentIdx() const
Pagedescriptor Client of SwPageDesc that is "described" by the attribute.
const sw::BroadcastingModify * GetDefinedIn() const
Query / set where attribute is anchored.
const SwRect & getFrameArea() const
bool isFrameAreaDefinitionValid() const
const SwRect & getFramePrintArea() const
Base class of the Writer layout elements.
SwFlyFrame * FindFlyFrame()
SwContentFrame * FindPrevCnt()
SwTabFrame * FindTabFrame()
bool IsProtected() const
Is the Frame or rather the Section in which it lies protected?
bool IsRightToLeft() const
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr)=0
SwRootFrame * getRootFrame()
SwContentFrame * FindNextCnt(const bool _bInSameFootnote=false)
SwPageFrame * FindPageFrame()
SwFootnoteFrame * FindFootnoteFrame()
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame.
Layout frame for SwNoTextNode, i.e. graphics and OLE nodes (including charts).
SwLayoutFrame * UpperFrame(SwFrame *&rpFrame, const SwNode &rNode)
Marks a node in the document model.
SwNodeIndex & Assign(SwNodes const &rNds, SwNodeOffset)
SwNodeOffset GetIndex() const
Base class of the Writer document model elements.
const IDocumentRedlineAccess & getIDocumentRedlineAccess() const
Provides access to the document redline interface.
SwFrameFormat * GetFlyFormat() const
If node is in a fly return the respective format.
const IDocumentDrawModelAccess & getIDocumentDrawModelAccess() const
Provides access to the document draw model interface.
SwStartNode * GetStartNode()
const IDocumentDeviceAccess & getIDocumentDeviceAccess() const
Provides access to the document device interface.
IDocumentContentOperations & getIDocumentContentOperations()
Provides access to the document content operations interface.
sal_uInt16 GetSectionLevel() const
Returns the section level at the position given by aIndex.
void AddAnchoredFly(SwFrameFormat *)
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
SwSectionNode * GetSectionNode()
SwNodeOffset GetIndex() const
const SwStartNode * FindTableBoxStartNode() const
void resetAndQueueAccessibilityCheck()
const SwStartNode * FindFooterStartNode() const
bool IsProtect() const
Is node in something that is protected (range, frame, table cells ... including anchor in case of fra...
SwStartNode * m_pStartOfSection
SwNodes & GetNodes()
Node is in which nodes-array/doc?
bool IsInProtectSect() const
Is node in a protected area?
std::vector< SwFrameFormat * > m_aAnchoredFlys
all SwFrameFormat that are anchored at the node invariant: SwFrameFormat is in the list iff SwFrameFo...
SwTableBox * GetTableBox() const
If node is in a table return the respective table box.
bool IsContentNode() const
const IDocumentStylePoolAccess & getIDocumentStylePoolAccess() const
Provides access to the document style pool interface.
void RemoveAnchoredFly(SwFrameFormat *)
const SwStartNode * FindHeaderStartNode() const
const SwTextNode * FindOutlineNodeOfLevel(sal_uInt8 nLvl, SwRootFrame const *pLayout=nullptr) const
Merge
sw_redlinehide: redline node merge state
bool IsInRedlines() const
Checks if this node is in redlines.
SwNodeOffset StartOfSectionIndex() const
const SwStartNode * FindFlyStartNode() const
const SwPageDesc * FindPageDesc(SwNodeOffset *pPgDescNdIdx=nullptr) const
Search PageDesc with which this node is formatted.
bool IsSectionNode() const
const SwStartNode * FindFootnoteStartNode() const
SwTableNode * FindTableNode()
Search table node, in which it is.
SwStartNode * FindSttNodeByType(SwStartNodeType eTyp)
SwSectionNode * FindSectionNode()
Search section node, in which it is.
const SwStartNode * StartOfSectionNode() const
const IDocumentMarkAccess * getIDocumentMarkAccess() const
Provides access to the document bookmark interface.
sal_uInt8 HasPrevNextLayNode() const
Merge GetRedlineMergeFlag() const
SwOLENode * GetOLENode()
Inline methods from Node.hxx.
SwNodeOffset EndOfSectionIndex() const
IStyleAccess & getIDocumentStyleAccess()
Provides access to the document automatic styles interface.
bool IsCreateFrameWhenHidingRedlines() const
const IDocumentLinksAdministration & getIDocumentLinksAdministration() const
Provides access to the document links administration interface.
SwContentNode * GetContentNode()
SwNode()
only used by SwContentNodeTmp in SwTextNode::Update
SwTableNode * GetTableNode()
static tools::Long s_nSerial
const IDocumentLayoutAccess & getIDocumentLayoutAccess() const
Provides access to the document layout interface.
SwNodeType GetNodeType() const
virtual ~SwNode() override=0
the = 0 forces the class to be an abstract base class, but the dtor can be still called from subclass...
const IDocumentSettingAccess * getIDocumentSettingAccess() const
Provides access to the document setting interface.
const IDocumentFieldsAccess & getIDocumentFieldsAccess() const
Provides access to the document fields administration interface.
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const
Dumps the node structure to the given destination (file nodes.xml in the current directory by default...
bool IsInVisibleArea(SwViewShell const *pSh) const
Is node in the visible area of the Shell?
IDocumentListItems & getIDocumentListItems()
Provides access to the document's numbered items interface.
const SwEndNode * EndOfSectionNode() const
const SwOutlineNodes & GetOutLineNds() const
Array of all OutlineNodes.
static SwContentNode * GoPrevious(SwNodeIndex *)
SwContentNode * GoNext(SwNodeIndex *) const
void InsertNode(SwNode *pNode, const SwNodeIndex &rPos)
SwDoc & GetDoc()
Which Doc contains the nodes-array?
SwNodeOffset Count() const
void SetInvalidRule(bool bFlag)
bool IsOLESizeInvalid() const
bool Seek_Entry(SwNode *rP, size_type *pnPos) const
SwFrameFormat & GetMaster()
SwFrameFormat & GetLeft()
UseOnPage ReadUseOn() const
A page of the document layout.
SwPageDesc * GetPageDesc()
Of course Writer needs its own rectangles.
void Top(const tools::Long nTop)
bool Overlaps(const SwRect &rRect) const
The root element of a Writer document layout.
SwViewShell * GetCurrShell() const
bool HasMergedParas() const
bool IsAnyShellAccessible() const
static bool GetBoundsOfHiddenRange(const SwTextNode &rNode, sal_Int32 nPos, sal_Int32 &rnStartPos, sal_Int32 &rnEndPos, std::vector< sal_Int32 > *pList=nullptr)
Hidden text range information - static and non-version.
A section node represents the start of a section on the UI, i.e.
const SwSection & GetSection() const
bool IsProtectFlag() const
Starts a section of nodes in the document model.
SwEndNode * m_pEndOfSection
void CheckSectionCondColl() const
Call ChkCondcoll to all ContentNodes of section.
SwStartNode(SwNodes &rNodes, SwNodeOffset nPos)
for the initial StartNode
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const override
Dumps the node structure to the given destination (file nodes.xml in the current directory by default...
SwStartNodeType GetStartNodeType() const
static void FillProgName(const OUString &rName, OUString &rFillName, SwGetPoolIdFromName)
SwTableBox is one table cell in the document model.
SwFrameFormat * GetFrameFormat()
bool IsInHeadline(const SwTable *pTable) const
const SwTable & GetTable() const
const SwTableBox * GetTableBox(const OUString &rName, const bool bPerformValidCheck=false) const
const SwFormatFootnote & GetFootnote() const
Represents the style of a paragraph.
Represents the visualization of a paragraph.
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true) override
SwContentFrame: the shortcut for the Frames If the void* casts wrongly, it's its own fault!...
SwTextNode is a paragraph in the document model.
virtual sal_Int32 Len() const override
sal_Int32 GetSpaceLeft() const
bool IsOutline() const
Returns if this text node is an outline.
int GetAttrOutlineLevel() const
Returns outline level of this text node.
const OUString & GetText() const
LanguageType GetLang(const sal_Int32 nBegin, const sal_Int32 nLen=0, sal_uInt16 nScript=0) const
sal_uInt16 getWhichAttr() const
SwRootFrame * GetLayout() const
void InvalidateAccessibleParaFlowRelation(const SwTextFrame *_pFromTextFrame, const SwTextFrame *_pToTextFrame)
invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
const SwRect & VisArea() const
std::vector< Value >::size_type size_type
void InvalidateInSwCache(const sal_uInt16)
void StartListening(SwModify *pDepend)
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
std::vector< SwOLENode * > SwOLENodes
EmbeddedObjectRef * pObject
Master_CollCondition
Conditional styles.
constexpr TypedWhichId< SwFormatHeader > RES_HEADER(96)
constexpr TypedWhichId< SwFlyFrameFormat > RES_FLYFRMFMT(156)
constexpr TypedWhichId< SwFindNearestNode > RES_FINDNEARESTNODE(184)
constexpr TypedWhichId< SfxStringItem > RES_FRMATR_CONDITIONAL_STYLE_NAME(129)
constexpr TypedWhichId< SwFormatPageDesc > RES_PAGEDESC(93)
constexpr TypedWhichId< SfxStringItem > RES_FRMATR_STYLE_NAME(128)
constexpr TypedWhichId< SvxCharHiddenItem > RES_CHRATR_HIDDEN(37)
constexpr TypedWhichId< SwFormatFooter > RES_FOOTER(97)
constexpr TypedWhichId< SwPtrMsgPoolItem > RES_OBJECTDYING(RES_MSG_BEGIN)
constexpr TypedWhichId< SwFormatChg > RES_FMT_CHG(162)
constexpr TypedWhichId< SwNumRuleItem > RES_PARATR_NUMRULE(72)
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(163)
constexpr TypedWhichId< SwAutoFormatGetDocNode > RES_AUTOFMT_DOCNODE(173)
constexpr TypedWhichId< SwUpdateAttr > RES_UPDATE_ATTR(167)
constexpr TypedWhichId< SwFormatAutoFormat > RES_AUTO_STYLE(127)
constexpr TypedWhichId< SwPtrMsgPoolItem > RES_CONTENT_VISIBLE(185)
constexpr TypedWhichId< SwConditionTextFormatColl > RES_CONDTXTFMTCOLL(160)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
static bool Put_BC(std::shared_ptr< const SfxItemSet > &rpAttrSet, const SwContentNode &rNode, const SfxPoolItem &rAttr, SwAttrSet *pOld, SwAttrSet *pNew)
static void SetParent(std::shared_ptr< const SfxItemSet > &rpAttrSet, const SwContentNode &rNode, const SwFormat *pParentFormat, const SwFormat *pConditionalFormat)
static const SfxPoolItem * Put(std::shared_ptr< const SfxItemSet > &rpAttrSet, const SwContentNode &rNode, const SfxPoolItem &rAttr)
static sal_uInt16 ClearItem_BC(std::shared_ptr< const SfxItemSet > &rpAttrSet, const SwContentNode &rNode, sal_uInt16 nWhich, SwAttrSet *pOld, SwAttrSet *pNew)
static void GetNewAutoStyle(std::shared_ptr< const SfxItemSet > &rpAttrSet, const SwContentNode &rNode, SwAttrSet const &rNewAttrSet)
SwNumRule * GetNumRule(SwTextFormatColl &rTextFormatColl)
determines the list style, which directly set at the given paragraph style
std::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr
Dialog to specify the properties of date form field.
TextFrameIndex UpdateMergedParaForDelete(MergedPara &rMerged, bool isRealDelete, SwTextNode const &rNode, sal_Int32 nIndex, sal_Int32 nLen)
bool IsParaPropsNode(SwRootFrame const &rLayout, SwTextNode const &rNode)
bool GetRanges(std::vector< std::shared_ptr< SwUnoCursor > > &rRanges, SwDoc &rDoc, SwPaM const &rDelPam)
void ClientNotifyAttrChg(SwModify &rModify, const SwAttrSet &aSet, SwAttrSet &aOld, SwAttrSet &aNew)
const sal_uInt8 ND_HAS_NEXT_LAYNODE
@ Table
SwTableNode is derived from SwStartNode.
@ Section
SwSectionNode is derived from SwStartNode.
const sal_uInt8 ND_HAS_PREV_LAYNODE
static bool IsValidNextPrevNd(const SwNode &rNd)
static bool lcl_CheckMaxLength(SwNode const &rPrev, SwNode const &rNext)
o3tl::strong_int< sal_Int32, struct Tag_SwNodeOffset > SwNodeOffset
Marks a position in the document model.
void Assign(const SwNode &rNd, SwNodeOffset nDelta, sal_Int32 nContentOffset=0)
These all set both nNode and nContent.
std::unique_ptr< sfx::AccessibilityIssueCollection > pCollection
sal_uInt16 GetWhich() const
Describes parts of multiple text nodes, which will form a text frame, even when redlines are hidden a...
constexpr sal_Int32 COMPLETE_STRING
@ FootnoteInvalidationGone
constexpr sal_uInt8 MAXLEVEL