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 )
566 if ((RndStdIds::FLY_AT_PAGE != pAnchor->
GetAnchorId()) &&
575 for(
n = 0;
n < rFormats.
size(); ++
n )
580 if( pIdx && pFlyNd == &pIdx->
GetNode() )
582 if( pFormat == pFrameFormat )
589 if ((RndStdIds::FLY_AT_PAGE == pAnchor->
GetAnchorId()) ||
600 if(
n >= rFormats.
size() )
602 OSL_ENSURE(
false,
"FlySection, but no Format found" );
642 int nStt = 0, nLast = 1;
643 if( !( eAskUse & rPgDsc.
ReadUseOn() )) ++nLast;
645 for( ; nStt < nLast; ++nStt, pFormat = &rPgDsc.
GetLeft() )
657 static_cast<SwNode const *
>(pSttNd) )
675 for(
size_t n = 0;
n < rFootnoteArr.
size(); ++
n )
676 if(
nullptr != ( pTextFootnote = rFootnoteArr[
n ])->GetStartNode() &&
677 static_cast<SwNode const *
>(pSttNd) ==
689 "Where is this Node?" );
704 if( pPageDescItem && pPageDescItem->GetDefinedIn() )
706 const sw::BroadcastingModify* pMod = pPageDescItem->
GetDefinedIn();
707 if(
auto pContentNode =
dynamic_cast<const SwContentNode*
>( pMod) )
709 else if(
auto pFormat =
dynamic_cast<const SwFormat*
>( pMod) )
710 pFormat->GetInfo( aInfo );
721 GetFrameFormat()->GetPageDesc().GetPageDesc();
724 GetFormat()->GetPageDesc().GetPageDesc();
800 bool bCheckFirst =
false;
818 pRet = rONds[
nPos]->GetTextNode();
832 std::pair<Point, bool>
const tmp(aPt,
false);
836 if( pPgFrame && pMyFrame &&
901 const char*
pName =
"???";
919 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
pName));
921 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
922 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"type"), BAD_CAST(OString::number(
static_cast<sal_uInt8>(
GetNodeType())).getStr()));
923 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"), BAD_CAST(OString::number(sal_Int32(
GetIndex())).getStr()));
929 auto pNoTextNode =
static_cast<const SwNoTextNode*
>(
this);
933 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"pContour"));
934 for (sal_uInt16
i = 0;
i < pContour->
Count(); ++
i)
936 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"polygon"));
937 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"),
938 BAD_CAST(OString::number(
i).getStr()));
940 for (sal_uInt16 j = 0; j < rPolygon.
GetSize(); ++j)
942 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"point"));
943 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"),
944 BAD_CAST(OString::number(j).getStr()));
946 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"x"),
947 BAD_CAST(OString::number(rPoint.
X()).getStr()));
948 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"y"),
949 BAD_CAST(OString::number(rPoint.
Y()).getStr()));
950 (void)xmlTextWriterEndElement(pWriter);
952 (void)xmlTextWriterEndElement(pWriter);
954 (void)xmlTextWriterEndElement(pWriter);
962 (void)xmlTextWriterEndElement(pWriter);
964 (
void)xmlTextWriterEndElement(pWriter);
969 :
SwNode( rWhere, nNdType ), m_eStartNodeType( eSttNd )
999 while(
nullptr != ( pCNd = rNds.
GoNext( &aIdx )) && pCNd->
GetIndex() < nEndIdx )
1005 const char*
pName =
"???";
1036 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
pName));
1037 (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST(
"ptr"),
"%p",
this);
1038 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"type"), BAD_CAST(OString::number(
static_cast<sal_uInt8>(
GetNodeType())).getStr()));
1039 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"), BAD_CAST(OString::number(sal_Int32(
GetIndex())).getStr()));
1044 (
void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"rowspan"), BAD_CAST(OString::number(pBox->getRowSpan()).getStr()));
1045 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"attrset"));
1047 pBox->GetFrameFormat()->GetAttrSet().dumpAsXml(pWriter);
1048 (void)xmlTextWriterEndElement(pWriter);
1082 , m_aCondCollListener( *this )
1083 , m_pCondColl( nullptr )
1084 , mbSetModifyAtAttr( false )
1089 :
SwNode( rWhere, nNdType )
1090 , m_aCondCollListener( *this )
1091 , m_pCondColl( nullptr )
1092 , mbSetModifyAtAttr( false )
1119 static_cast<SwTextNode*
>(
this)->SetCalcHiddenCharFlags();
1125 if (rHint.
GetId() == SfxHintId::SwLegacyModify)
1128 const sal_uInt16 nWhich = pLegacyHint->
GetWhich();
1131 bool bSetParent =
false;
1132 bool bCalcHidden =
false;
1138 SwFormat* pFormat = pLegacyHint->m_pNew
1142 if(pFormat && GetRegisteredIn() == pFormat)
1156 && pLegacyHint->m_pNew
1167 && pLegacyHint->m_pOld
1179 if(pLegacyHint->m_pNew != pLegacyHint->m_pOld)
1181 auto pBT = sal::backtrace_get(20);
1182 SAL_WARN(
"sw.core",
"UpdateAttr not matching! " << sal::backtrace_to_string(pBT.get()));
1185 assert(pLegacyHint->m_pNew == pLegacyHint->m_pOld);
1186 assert(
dynamic_cast<const SwUpdateAttr*
>(pLegacyHint->m_pNew));
1188 const SwUpdateAttr& rUpdateAttr = pLegacyHint->m_pNew ? *
static_cast<const SwUpdateAttr*
>(pLegacyHint->m_pNew) : aFallbackHint;
1195 static_cast<SwTextNode*
>(
this)->SetCalcHiddenCharFlags();
1196 CallSwClientNotify(rHint);
1215 nullptr != (pRule =
GetDoc().FindNumRulePtr(
1220 return nullptr != pRule;
1225 std::pair<Point, bool>
const*
const pViewPosAndCalcFrame)
const
1228 pPos, pViewPosAndCalcFrame));
1234 std::pair<Point, bool> tmp;
1237 tmp.first = *pPoint;
1241 FRM_CNTNT,
nullptr, pPoint ? &tmp :
nullptr) );
1251 if( pFrame &&
nullptr != ( pFrame = pFrame->
FindPageFrame() ))
1260 OSL_ENSURE( pNewColl,
"Collectionpointer is 0." );
1263 if( pNewColl != pOldColl )
1265 pNewColl->Add(
this );
1273 if( !IsModifyLocked() )
1307 sal_Int32 nDone = 0;
1309 CharacterIteratorMode::SKIPCELL :
1310 CharacterIteratorMode::SKIPCONTROLCHARACTER;
1313 nItrMode, 1, nDone );
1318 sal_Int32 nHiddenStart;
1319 sal_Int32 nHiddenEnd;
1348 sal_Int32 nDone = 0;
1350 CharacterIteratorMode::SKIPCELL :
1351 CharacterIteratorMode::SKIPCONTROLCHARACTER;
1354 nItrMode, 1, nDone );
1359 sal_Int32 nHiddenStart;
1360 sal_Int32 nHiddenEnd;
1363 nPos = nHiddenStart;
1383 OSL_ENSURE( &rNode !=
this,
1384 "No ContentNode or CopyNode and new Node identical." );
1386 if( !HasWriterListeners() || &rNode ==
this )
1396 while(
nullptr != (pUpper = aNode2Layout.
UpperFrame( pFrame, rNode )) )
1404 pNew->
Paste( pUpper, pFrame );
1410#if !ENABLE_WASM_STRIP_ACCESSIBILITY
1414 if ( pViewShell && pViewShell->
GetLayout() &&
1420 pNext ? pNext->DynCastTextFrame() :
nullptr,
1421 pPrev ? pPrev->DynCastTextFrame() :
nullptr );
1434 if( !HasWriterListeners() )
1444 if (pFrame->IsTextFrame())
1447 static_cast<SwTextFrame *
>(pFrame)->GetMergedPara())
1449 if (
this != pMerged->pFirstNode)
1458 if (
this == pMerged->pParaPropsNode)
1461 assert(
this == pMerged->pLastNode);
1462 assert(pMerged->extents.empty());
1466 assert(pMerged->pFirstNode->GetIndex() <=
i);
1474 else if (pMerged->pFirstNode->GetIndex() ==
i)
1477 pMerged->pParaPropsNode = pMerged->pFirstNode;
1481 assert(pMerged->listener.IsListeningTo(pMerged->pParaPropsNode));
1483 assert(
GetIndex() <= pMerged->pLastNode->GetIndex());
1484 if (
this == pMerged->pLastNode)
1489 this == pMerged->pLastNode; --
i)
1498 SwStartNode const*
const pStart(pEnd->StartOfSectionNode());
1502 assert(pMerged->pFirstNode->GetIndex() <= pMerged->pLastNode->GetIndex());
1503 assert(pMerged->listener.IsListeningTo(pMerged->pLastNode));
1506 pMerged->listener.EndListening(
this);
1515#if !ENABLE_WASM_STRIP_ACCESSIBILITY
1516 SwViewShell* pViewShell( pFrame->getRootFrame()->GetCurrShell() );
1517 if ( pViewShell && pViewShell->
GetLayout() &&
1520 auto pNext = pFrame->FindNextCnt(
true );
1521 auto pPrev = pFrame->FindPrevCnt();
1523 pNext ? pNext->DynCastTextFrame() :
nullptr,
1524 pPrev ? pPrev->DynCastTextFrame() :
nullptr );
1529 if( pFrame->IsFollow() )
1532 pMaster->SetFollow( pFrame->GetFollow() );
1534 pFrame->SetFollow(
nullptr );
1542 if( pFrame->GetUpper() && pFrame->IsInFootnote() && !pFrame->GetIndNext() &&
1543 !pFrame->GetIndPrev() )
1546 OSL_ENSURE( pFootnote,
"You promised a FootnoteFrame?" );
1549 nullptr != ( pCFrame = pFootnote->
GetRefFromAttr()) && pCFrame->IsFollow() )
1551 OSL_ENSURE( pCFrame->
IsTextFrame(),
"NoTextFrame has Footnote?" );
1569 switch( rInfo.
Which() )
1582 return sw::BroadcastingModify::GetInfo( rInfo );
1591 OSL_ENSURE(
GetpSwAttrSet(),
"Why did't we create an AttrSet?");
1597 if( IsModifyLocked() ||
1619 OSL_ENSURE(
rSet.
Count() == 1,
"SetAutoStyle mixed with other attributes?!" );
1623 bool bSetParent =
true;
1660 if ( IsModifyLocked() ||
1661 ( !HasWriterListeners() &&
1687 if( IsModifyLocked() )
1689 sal_uInt16 nDel = 0;
1690 if ( !nWhich2 || nWhich2 < nWhich1 )
1703 if( !nWhich2 || nWhich2 < nWhich1 )
1727 sal_uInt16 nDel = 0;
1728 if( IsModifyLocked() )
1737 for (
const auto& rWhich : rWhichArr )
1756 if( IsModifyLocked() )
1774 return aNew.
Count();
1788 sal_uInt16 nRet = 0;
1789 if ( rWhichIds.empty() )
1794 for (
const auto& rWhichId : rWhichIds )
1796 nRet = nRet + aNewAttrSet.
ClearItem( rWhichId );
1805 bool bInParents )
const
1811 nWhich,
false, &pFnd ) && bInParents ))
1813 (void)
static_cast<const SwFormat*
>(GetRegisteredIn())->GetItemState( nWhich, bInParents, &pFnd );
1849 const SwNode* pNd =
this;
1850 while( aIdx < rNds.
Count()-1 &&
1851 (( pNd = &aIdx.
GetNode())->IsSectionNode() ||
1873 const SwNode* pNd =
this;
1874 while( aIdx < rNds.
Count()-1 &&
1875 (( pNd = &aIdx.
GetNode())->IsSectionNode() ||
1896 const SwNode* pNd =
this;
1898 (( pNd = &aIdx.
GetNode())->IsSectionNode() ||
1916 ( pColl && pColl !=
m_pCondColl->GetRegisteredIn() )) )
1927 if(!IsModifyLocked())
1957 if( pTableNd &&
nullptr != ( pBox = pTableNd->
GetTable().
1969 const SwNode* pSrchNd = pSttNd;
1971 for(
size_t n = 0;
n < rFootnoteArr.
size(); ++
n )
1972 if(
nullptr != ( pTextFootnote = rFootnoteArr[
n ])->
GetStartNode() &&
2001 if( !rOutlNds.
empty() )
2024 if(pColl != GetRegisteredIn())
2026 SAL_INFO(
"sw.core",
"Not our cond collection, skipping check of Cond Colls.");
2031 SAL_WARN(
"sw.core",
"Nodes amiss, skipping check of Cond Colls.");
2046 ->HasCondition( aTmp );
2062 static_cast<SwTextNode*
>(
this)->GetActualListLevel() );
2064 HasCondition( aTmp );
2077 const Point* pPt )
const
2086 std::pair<Point, bool>
const tmp(aPt,
false);
2094 nRet = SvxFrameDirection::Vertical_LR_BT;
2096 nRet = SvxFrameDirection::Vertical_LR_TB;
2098 nRet = SvxFrameDirection::Vertical_RL_TB;
2103 nRet = SvxFrameDirection::Horizontal_RL_TB;
2105 nRet = SvxFrameDirection::Horizontal_LR_TB;
2114 std::unique_ptr<SwOLENodes> pNodes;
2123 pNodes->push_back( pONd );
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
constexpr tools::Long Y() const
constexpr tools::Long X() const
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
::sw::DocumentSettingManager & GetDocumentSettingManager()
const sw::FrameFormats< sw::SpzFrameFormat * > * GetSpzFrameFormats() const
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.
SwNodeOffset GetIndex() const
SwNodeIndex & Assign(SwNodes const &rNds, SwNodeOffset nIdx)
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)
struct _xmlTextWriter * xmlTextWriterPtr
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
std::vector< SwOLENode * > SwOLENodes
EmbeddedObjectRef * pObject
Master_CollCondition
Conditional styles.
constexpr TypedWhichId< SfxStringItem > RES_FRMATR_STYLE_NAME(134)
constexpr TypedWhichId< SwFindNearestNode > RES_FINDNEARESTNODE(184)
constexpr TypedWhichId< SwConditionTextFormatColl > RES_CONDTXTFMTCOLL(166)
constexpr TypedWhichId< SwFormatHeader > RES_HEADER(102)
constexpr TypedWhichId< SfxStringItem > RES_FRMATR_CONDITIONAL_STYLE_NAME(135)
constexpr TypedWhichId< SwFormatPageDesc > RES_PAGEDESC(99)
constexpr TypedWhichId< SvxCharHiddenItem > RES_CHRATR_HIDDEN(37)
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(169)
constexpr TypedWhichId< SwFlyFrameFormat > RES_FLYFRMFMT(162)
constexpr TypedWhichId< SwFormatFooter > RES_FOOTER(103)
constexpr TypedWhichId< SwNumRuleItem > RES_PARATR_NUMRULE(72)
constexpr TypedWhichId< SwFormatAutoFormat > RES_AUTO_STYLE(133)
constexpr TypedWhichId< SwUpdateAttr > RES_UPDATE_ATTR(170)
constexpr TypedWhichId< SwAutoFormatGetDocNode > RES_AUTOFMT_DOCNODE(176)
constexpr TypedWhichId< SwPtrMsgPoolItem > RES_OBJECTDYING(RES_FORMAT_MSG_BEGIN)
constexpr TypedWhichId< SwFormatChg > RES_FMT_CHG(168)
#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