20#ifndef INCLUDED_SW_INC_NODE_HXX
21#define INCLUDED_SW_INC_NODE_HXX
79 class SdrAllFillAttributesHelper;
89 std::unique_ptr<sfx::AccessibilityIssueCollection>
pCollection;
113 return m_eMerge == Merge::None || m_eMerge == Merge::First;
144 virtual ~SwNode()
override = 0;
157 inline const SwEndNode* EndOfSectionNode()
const;
177 inline const SwOLENode *GetOLENode()
const;
181 inline const SwGrfNode *GetGrfNode()
const;
203 bool IsInRedlines()
const;
231 inline const SwNodes& GetNodes()
const;
235 return GetNodes().GetDoc();
240 return GetNodes().GetDoc();
294 bool IsInVisibleArea(
SwViewShell const * pSh )
const;
296 bool IsInProtectSect()
const;
299 bool IsProtect()
const;
318 std::vector<SwFrameFormat *>
const &
GetAnchoredFlys()
const {
return m_aAnchoredFlys; }
336 return m_aAccessibilityCheckStatus;
339 void resetAndQueueAccessibilityCheck();
367 void CheckSectionCondColl()
const;
420 sal_uInt16 ClearItemsFromAttrSet(
const std::vector<sal_uInt16>& rWhichIds );
422 virtual void SwClientNotify(
const SwModify&,
const SfxHint& rHint)
override;
433 bool CanJoinNext(
SwNodeIndex* pIdx =
nullptr )
const;
435 bool CanJoinPrev(
SwNodeIndex* pIdx =
nullptr )
const;
444 std::pair<Point, bool>
const* pViewPosAndCalcFrame =
nullptr)
const;
447 SwRect FindLayoutRect(
const bool bPrtArea =
false,
448 const Point* pPoint =
nullptr )
const;
449 SwRect FindPageFrameRect()
const;
462 virtual sal_Int32 Len()
const;
472 const SfxPoolItem& GetAttr( sal_uInt16 nWhich,
bool bInParent=
true )
const;
475 {
return static_cast<const T&
>(GetAttr(sal_uInt16(nWhich), bInParent)); }
480 virtual bool ResetAttr( sal_uInt16 nWhich1, sal_uInt16 nWhich2 = 0 );
481 virtual bool ResetAttr(
const std::vector<sal_uInt16>& rWhichArr );
482 virtual sal_uInt16 ResetAllAttr();
485 const SfxPoolItem* GetNoCondAttr( sal_uInt16 nWhich,
bool bInParents )
const;
488 {
return static_cast<const T*
>(GetNoCondAttr(sal_uInt16(nWhich), bInParents)); }
492 inline const SwAttrSet &GetSwAttrSet()
const;
508 bool InvalidateNumRule();
513 const Point* pPt )
const;
515 void SetModifyAtAttr(
bool bSetModifyAtAttr )
const { mbSetModifyAtAttr = bSetModifyAtAttr; }
518 static std::unique_ptr<SwOLENodes> CreateOLENodesArray(
const SwFormatColl& rColl,
bool bOnlyWithInvalidSize );
548 void MakeOwnFrames(
SwPosition* pIdxBehind =
nullptr);
552 void DelFrames(
SwRootFrame const* pLayout =
nullptr);
556 void MakeFramesForAdjacentContentNode(
const SwNodeIndex & rIdx);
559 void SetNewTable( std::unique_ptr<SwTable> ,
bool bNewFrames=
true );
562 void RemoveRedlines();
603 void DelFrames(
SwRootFrame const* pLayout =
nullptr,
bool bForce =
false);
607 void MakeFramesForAdjacentContentNode(
const SwNodeIndex & rIdx);
616 bool IsContentHidden()
const;
733 bool bInParents )
const
BigPtrEntry * operator[](sal_Int32) const
BigPtrArray & GetArray() 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.
Document links administration interface.
Provides numbered items of a document.
Provides access to the marks of a document.
Provides access to settings of a document.
Access to the style pool.
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
Marks a character position inside a document model content node (SwContentNode)
SwFormatColl * GetFormatColl() const
SwFormatColl * m_pCondColl
bool HasSwAttrSet() const
virtual SwContentFrame * MakeFrame(SwFrame *pSib)=0
MakeFrame will be called for a certain layout pSib is another SwFrame of the same layout (e....
const T * GetNoCondAttr(TypedWhichId< T > nWhich, bool bInParents) 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.
const T & GetAttr(TypedWhichId< T > nWhich, bool bInParent=true) const
bool GetModifyAtAttr() const
void SetModifyAtAttr(bool bSetModifyAtAttr) const
std::shared_ptr< const SfxItemSet > mpAttrSet
Attribute-set for all auto attributes of a ContentNode.
const SwAttrSet * GetpSwAttrSet() const
virtual SwContentNode * MakeCopy(SwDoc &, SwNode &rWhere, bool bNewFrames) const =0
SwContentNode(const SwContentNode &rNode)=delete
sw::WriterMultiListener m_aCondCollListener
SwFormatColl * GetCondFormatColl() const
SwFormatColl & GetAnyFormatColl() const
virtual void NewAttrSet(SwAttrPool &)=0
Make respective nodes create the specific AttrSets.
Ends a section of nodes in the document model.
SwEndNode(const SwEndNode &rNode)=delete
SwEndNode(SwNodes &rNodes, SwNodeOffset nPos, SwStartNode &rSttNd)
for the initial StartNode
SwEndNode & operator=(const SwEndNode &rNode)=delete
Base class of the Writer layout elements.
Layout frame for SwNoTextNode, i.e. graphics and OLE nodes (including charts).
Marks a node in the document model.
Base class of the Writer document model elements.
SwStartNode * GetStartNode()
bool IsIgnoreDontExpand() const
SwNode(const SwNode &rNodes)=delete
const SwDoc & GetDoc() const
sal_uInt8 GetAutoFormatLvl() const
SwSectionNode * GetSectionNode()
void SetIgnoreDontExpand(bool bNew)
SwNodeOffset GetIndex() const
const SwStartNode * FindTableBoxStartNode() const
bool operator!=(const SwNode &rOther) const
const SwStartNode * FindFooterStartNode() const
SwStartNode * m_pStartOfSection
bool IsNoTextNode() const
SwNodes & GetNodes()
Node is in which nodes-array/doc?
std::vector< SwFrameFormat * > m_aAnchoredFlys
all SwFrameFormat that are anchored at the node invariant: SwFrameFormat is in the list iff SwFrameFo...
bool IsContentNode() const
const SwStartNode * FindHeaderStartNode() const
Merge
sw_redlinehide: redline node merge state
bool operator<(const SwNode &rOther) const
bool operator==(const SwNode &rOther) const
SwNodeOffset StartOfSectionIndex() const
const SwStartNode * FindFlyStartNode() const
void SetRedlineMergeFlag(Merge const eMerge)
bool IsSectionNode() const
const SwStartNode * FindFootnoteStartNode() const
SwTableNode * FindTableNode()
Search table node, in which it is.
SwStartNode * FindSttNodeByType(SwStartNodeType eTyp)
bool operator>=(const SwNode &rOther) const
SwSectionNode * FindSectionNode()
Search section node, in which it is.
const SwStartNode * StartOfSectionNode() const
SwNode & operator=(const SwNode &rNodes)=delete
SwStartNode * StartOfSectionNode()
Merge GetRedlineMergeFlag() const
SwNodeOffset EndOfSectionIndex() const
sw::AccessibilityCheckStatus m_aAccessibilityCheckStatus
sw::AccessibilityCheckStatus & getAccessibilityCheckStatus()
bool IsCreateFrameWhenHidingRedlines() const
SwContentNode * GetContentNode()
tools::Long GetSerial() const
bool operator<=(const SwNode &rOther) const
SwTableNode * GetTableNode()
static tools::Long s_nSerial
void SetAutoFormatLvl(sal_uInt8 nVal)
SwNodeType GetNodeType() const
bool m_bIgnoreDontExpand
for Text Attributes - ignore the flag
std::vector< SwFrameFormat * > const & GetAnchoredFlys() const
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const
Dumps the node structure to the given destination (file nodes.xml in the current directory by default...
bool operator>(const SwNode &rOther) const
const SwEndNode * EndOfSectionNode() const
sal_uInt8 m_nAFormatNumLvl
For text nodes: level of auto format. Was put here because we had still free bits.
static sal_uInt16 GetSectionLevel(const SwNode &rIndex)
get section level at the given position
SwNode * operator[](SwNodeOffset n) const
void dumpAsXml(xmlTextWriterPtr pWriter) const
Dumps the entire nodes structure to the given destination (file nodes.xml in the current directory by...
This class is internal, used only during DocumentContentOperationsManager::CopyWithFlyInFly(),...
SwPlaceholderNode(const SwNode &rWhere)
Of course Writer needs its own rectangles.
The root element of a Writer document layout.
A section node represents the start of a section on the UI, i.e.
std::unique_ptr< SwSection > const m_pSection
SwSectionNode(const SwSectionNode &)=delete
const SwSection & GetSection() const
SwSectionNode & operator=(const SwSectionNode &)=delete
Starts a section of nodes in the document model.
SwEndNode * m_pEndOfSection
SwStartNodeType m_eStartNodeType
SwStartNode(const SwStartNode &rNode)=delete
SwStartNodeType GetStartNodeType() const
SwTabFrame is one table in the document layout, containing rows (which contain cells).
SwTableBox is one table cell in the document model.
const SwTable & GetTable() const
std::unique_ptr< SwTable > m_pTable
SwTableNode(const SwTableNode &rNode)=delete
SwTable is one table in the document model, containing rows (which contain cells).
Represents the style of a paragraph.
SwTextNode is a paragraph in the document model.
Bookkeeping helper for SwCache caching writer borders.
BorderCacheOwner & operator=(const BorderCacheOwner &)
struct _xmlTextWriter * xmlTextWriterPtr
static SwNode * GetStartNode(SwOutlineNodes const *pOutlNds, int nOutlineLevel, SwOutlineNodes::size_type *nOutl)
static SwNode * GetEndNode(SwOutlineNodes const *pOutlNds, int nOutlineLevel, SwOutlineNodes::size_type *nOutl)
static SwContentNode * GetContentNode(SwDoc &rDoc, SwPosition &rPos, bool bNext)
static SwPageDesc * FindPageDesc(SwDoc *pDoc, sal_uInt16 nPoolId)
std::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr
Dialog to specify the properties of date form field.
@ Table
SwTableNode is derived from SwStartNode.
@ Section
SwSectionNode is derived from SwStartNode.
std::vector< SwOLENode * > SwOLENodes
o3tl::strong_int< sal_Int32, struct Tag_SwNodeOffset > SwNodeOffset
bool GoNext(SwNode *pNd, SwContentIndex *pIdx, SwCursorSkipMode nMode)
bool GoPrevious(SwNode *pNd, SwContentIndex *pIdx, SwCursorSkipMode nMode)
Marks a position in the document model.
std::unique_ptr< sfx::AccessibilityIssueCollection > pCollection