LibreOffice Module sw (master) 1
node.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_SW_INC_NODE_HXX
21#define INCLUDED_SW_INC_NODE_HXX
22
23#include <sal/types.h>
24
25#include "swdllapi.h"
26#include "BorderCacheOwner.hxx"
27#include "ndarr.hxx"
28#include "ndtyp.hxx"
29#include "contentindex.hxx"
30#include "fmtcol.hxx"
31#include "nodeoffset.hxx"
32
34
35#include <memory>
36#include <vector>
37
38class SwContentFrame;
39class SwContentNode;
40class SwDoc;
41class SwEndNode;
42class SwFrame;
43class SwFrameFormat;
44class SwGrfNode;
45class SwNoTextNode;
46class SwNodeIndex;
47class SwOLENode;
48class SwRect;
49class SwSection;
50class SwSectionFormat;
51class SwTOXBase;
52class SwSectionNode;
53class SwStartNode;
54class SwTabFrame;
55class SwRootFrame;
56class SwTable;
57class SwTableNode;
58class SwTableBox;
59class SwTextNode;
60class SwPageDesc;
61class SwViewShell;
62struct SwPosition;
63class IStyleAccess;
73class Point;
74enum class SvxFrameDirection;
75typedef std::vector<SwOLENode*> SwOLENodes; // docary.hxx
76enum class SwCursorSkipMode;
77
79 class SdrAllFillAttributesHelper;
80 typedef std::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr;
81}
82
83// Accessibility check
84
85namespace sw
86{
88{
89 std::unique_ptr<sfx::AccessibilityIssueCollection> pCollection;
90 void reset();
91};
92
93}
94
97 : public sw::BorderCacheOwner, private BigPtrEntry
98{
99 friend class SwNodes;
100
102
106
108
109public:
111 enum class Merge { None, First, NonFirst, Hidden };
113 return m_eMerge == Merge::None || m_eMerge == Merge::First;
114 }
115 void SetRedlineMergeFlag(Merge const eMerge) { m_eMerge = eMerge; }
116 Merge GetRedlineMergeFlag() const { return m_eMerge; }
117private:
119
120#ifdef DBG_UTIL
123#endif
124
128 std::vector<SwFrameFormat*> m_aAnchoredFlys;
129
130protected:
132
134 SwNode();
135
136 SwNode( const SwNode& rWhere, const SwNodeType nNodeId );
137
139 SwNode( SwNodes& rNodes, SwNodeOffset nPos, const SwNodeType nNodeId );
140
141public:
144 virtual ~SwNode() override = 0;
145
146#ifdef DBG_UTIL
147 tools::Long GetSerial() const { return m_nSerial; }
148#endif
149
150 sal_uInt16 GetSectionLevel() const;
151
152 inline SwNodeOffset StartOfSectionIndex() const;
153 const SwStartNode* StartOfSectionNode() const { return m_pStartOfSection; }
154 SwStartNode* StartOfSectionNode() { return m_pStartOfSection; }
155
156 inline SwNodeOffset EndOfSectionIndex() const;
157 inline const SwEndNode* EndOfSectionNode() const;
158 inline SwEndNode* EndOfSectionNode();
159
160 sal_uInt8 GetAutoFormatLvl() const { return m_nAFormatNumLvl; }
161 void SetAutoFormatLvl( sal_uInt8 nVal ) { m_nAFormatNumLvl = nVal; }
162
163 bool IsIgnoreDontExpand() const { return m_bIgnoreDontExpand; }
164 void SetIgnoreDontExpand( bool bNew ) { m_bIgnoreDontExpand = bNew; }
165
166 SwNodeType GetNodeType() const { return m_nNodeType; }
167
168 inline SwStartNode *GetStartNode();
169 inline const SwStartNode *GetStartNode() const;
171 inline const SwContentNode *GetContentNode() const;
172 inline SwEndNode *GetEndNode();
173 inline const SwEndNode *GetEndNode() const;
174 inline SwTextNode *GetTextNode();
175 inline const SwTextNode *GetTextNode() const;
176 inline SwOLENode *GetOLENode();
177 inline const SwOLENode *GetOLENode() const;
178 inline SwNoTextNode *GetNoTextNode();
179 inline const SwNoTextNode *GetNoTextNode() const;
180 inline SwGrfNode *GetGrfNode();
181 inline const SwGrfNode *GetGrfNode() const;
182 inline SwTableNode *GetTableNode();
183 inline const SwTableNode *GetTableNode() const;
184 inline SwSectionNode *GetSectionNode();
185 inline const SwSectionNode *GetSectionNode() const;
186
187 inline bool IsStartNode() const;
188 inline bool IsContentNode() const;
189 inline bool IsEndNode() const;
190 inline bool IsTextNode() const;
191 inline bool IsTableNode() const;
192 inline bool IsSectionNode() const;
193 inline bool IsOLENode() const;
194 inline bool IsNoTextNode() const;
195 inline bool IsGrfNode() const;
196
203 bool IsInRedlines() const;
204
207 SwTableNode *FindTableNode();
208 inline const SwTableNode *FindTableNode() const;
209
212 SwSectionNode *FindSectionNode();
213 inline const SwSectionNode *FindSectionNode() const;
214
215 SwStartNode* FindSttNodeByType( SwStartNodeType eTyp );
216 inline const SwStartNode* FindSttNodeByType( SwStartNodeType eTyp ) const;
217
219 { return FindSttNodeByType( SwTableBoxStartNode ); }
221 { return FindSttNodeByType( SwFlyStartNode ); }
223 { return FindSttNodeByType( SwFootnoteStartNode ); }
225 { return FindSttNodeByType( SwHeaderStartNode ); }
227 { return FindSttNodeByType( SwFooterStartNode ); }
228
230 inline SwNodes& GetNodes();
231 inline const SwNodes& GetNodes() const;
232
234 {
235 return GetNodes().GetDoc();
236 }
237
238 const SwDoc& GetDoc() const
239 {
240 return GetNodes().GetDoc();
241 }
242
245 const IDocumentSettingAccess* getIDocumentSettingAccess() const;
246
249 const IDocumentDeviceAccess& getIDocumentDeviceAccess() const;
250
253 const IDocumentMarkAccess* getIDocumentMarkAccess() const;
254
257 const IDocumentRedlineAccess& getIDocumentRedlineAccess() const;
258
261 const IDocumentStylePoolAccess& getIDocumentStylePoolAccess() const;
262
265 const IDocumentDrawModelAccess& getIDocumentDrawModelAccess() const;
266
269 const IDocumentLayoutAccess& getIDocumentLayoutAccess() const;
270 IDocumentLayoutAccess& getIDocumentLayoutAccess();
271
274 const IDocumentLinksAdministration& getIDocumentLinksAdministration() const;
275 IDocumentLinksAdministration& getIDocumentLinksAdministration();
276
279 const IDocumentFieldsAccess& getIDocumentFieldsAccess() const;
280 IDocumentFieldsAccess& getIDocumentFieldsAccess();
281
284 IDocumentContentOperations& getIDocumentContentOperations();
285
288 IStyleAccess& getIDocumentStyleAccess();
289
291 IDocumentListItems& getIDocumentListItems();
292
294 bool IsInVisibleArea( SwViewShell const * pSh ) const;
296 bool IsInProtectSect() const;
299 bool IsProtect() const;
300
304 const SwPageDesc* FindPageDesc( SwNodeOffset* pPgDescNdIdx = nullptr ) const;
305
307 SwFrameFormat* GetFlyFormat() const;
308
310 SwTableBox* GetTableBox() const;
311
313
314 const SwTextNode* FindOutlineNodeOfLevel(sal_uInt8 nLvl, SwRootFrame const* pLayout = nullptr) const;
315
316 sal_uInt8 HasPrevNextLayNode() const;
317
318 std::vector<SwFrameFormat *> const & GetAnchoredFlys() const { return m_aAnchoredFlys; }
319 void AddAnchoredFly(SwFrameFormat *);
320 void RemoveAnchoredFly(SwFrameFormat *);
321
325 virtual void dumpAsXml(xmlTextWriterPtr pWriter) const;
326
327 bool operator==(const SwNode& rOther) const { return this == &rOther; }
328 bool operator!=(const SwNode& rOther) const { return this != &rOther; }
329 bool operator<(const SwNode& rOther) const { assert(&GetNodes() == &rOther.GetNodes()); return GetIndex() < rOther.GetIndex(); }
330 bool operator<=(const SwNode& rOther) const { assert(&GetNodes() == &rOther.GetNodes()); return GetIndex() <= rOther.GetIndex(); }
331 bool operator>(const SwNode& rOther) const { assert(&GetNodes() == &rOther.GetNodes()); return GetIndex() > rOther.GetIndex(); }
332 bool operator>=(const SwNode& rOther) const { assert(&GetNodes() == &rOther.GetNodes()); return GetIndex() >= rOther.GetIndex(); }
333
335 {
336 return m_aAccessibilityCheckStatus;
337 }
338
339 void resetAndQueueAccessibilityCheck();
340
341private:
342 SwNode( const SwNode & rNodes ) = delete;
343 SwNode & operator= ( const SwNode & rNodes ) = delete;
344};
345
347class SAL_DLLPUBLIC_RTTI SwStartNode: public SwNode
348{
349 friend class SwNode;
350 friend class SwNodes;
351 friend class SwEndNode;
352
355
357 SwStartNode( SwNodes& rNodes, SwNodeOffset nPos );
358
359protected:
360 SwStartNode( const SwNode& rWhere,
361 const SwNodeType nNodeType = SwNodeType::Start,
363public:
364 SwStartNodeType GetStartNodeType() const { return m_eStartNodeType; }
365
367 void CheckSectionCondColl() const;
368
369 virtual void dumpAsXml(xmlTextWriterPtr pWriter) const override;
370
371private:
372 SwStartNode( const SwStartNode & rNode ) = delete;
373 SwStartNode & operator= ( const SwStartNode & rNode ) = delete;
374};
375
377class SwEndNode final : public SwNode
378{
379 friend class SwNodes;
380 friend class SwTableNode;
381 friend class SwSectionNode;
382
384 SwEndNode( SwNodes& rNodes, SwNodeOffset nPos, SwStartNode& rSttNd );
385
386 SwEndNode( const SwNode& rWhere, SwStartNode& rSttNd );
387
388 SwEndNode( const SwEndNode & rNode ) = delete;
389 SwEndNode & operator= ( const SwEndNode & rNode ) = delete;
390};
391
392// SwContentNode
393
394class SW_DLLPUBLIC SwContentNode: public sw::BroadcastingModify, public SwNode, public SwContentIndexReg
395{
396
399 mutable bool mbSetModifyAtAttr;
400
401protected:
404
405 SwContentNode( const SwNode& rWhere, const SwNodeType nNodeType,
406 SwFormatColl *pFormatColl );
409 virtual ~SwContentNode() override = 0;
410
413 std::shared_ptr<const SfxItemSet> mpAttrSet;
414
416 virtual void NewAttrSet( SwAttrPool& ) = 0;
417
420 sal_uInt16 ClearItemsFromAttrSet( const std::vector<sal_uInt16>& rWhichIds );
421
422 virtual void SwClientNotify( const SwModify&, const SfxHint& rHint) override;
423
424public:
425
428 virtual SwContentFrame *MakeFrame( SwFrame* pSib ) = 0;
429
430 virtual SwContentNode *JoinNext();
433 bool CanJoinNext( SwNodeIndex* pIdx = nullptr ) const;
434 bool CanJoinNext( SwPosition* pIdx ) const;
435 bool CanJoinPrev( SwNodeIndex* pIdx =nullptr ) const;
436
437 bool GoNext(SwContentIndex *, SwCursorSkipMode nMode ) const;
438 bool GoNext(SwPosition*, SwCursorSkipMode nMode ) const;
439 bool GoPrevious(SwContentIndex *, SwCursorSkipMode nMode ) const;
440
442 SwContentFrame *getLayoutFrame( const SwRootFrame*,
443 const SwPosition *pPos = nullptr,
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;
450
453 void MakeFramesForAdjacentContentNode(SwContentNode& rNode);
454
458 void DelFrames(SwRootFrame const* pLayout);
459
462 virtual sal_Int32 Len() const;
463
464 virtual SwContentNode* MakeCopy(SwDoc&, SwNode& rWhere, bool bNewFrames) const = 0;
465
467 virtual bool GetInfo( SfxPoolItem& ) const override;
468
470
472 const SfxPoolItem& GetAttr( sal_uInt16 nWhich, bool bInParent=true ) const;
473 template<class T>
474 const T& GetAttr( TypedWhichId<T> nWhich, bool bInParent=true ) const
475 { return static_cast<const T&>(GetAttr(sal_uInt16(nWhich), bInParent)); }
476 bool GetAttr( SfxItemSet& rSet ) const;
478 virtual bool SetAttr( const SfxPoolItem& );
479 virtual bool SetAttr( const SfxItemSet& rSet );
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();
483
485 const SfxPoolItem* GetNoCondAttr( sal_uInt16 nWhich, bool bInParents ) const;
486 template<class T>
487 const T* GetNoCondAttr( TypedWhichId<T> nWhich, bool bInParents ) const
488 { return static_cast<const T*>(GetNoCondAttr(sal_uInt16(nWhich), bInParents)); }
489
492 inline const SwAttrSet &GetSwAttrSet() const;
493 const SwAttrSet *GetpSwAttrSet() const { return static_cast<const SwAttrSet*>(mpAttrSet.get()); }
494 bool HasSwAttrSet() const { return mpAttrSet != nullptr; }
495
496 virtual SwFormatColl* ChgFormatColl( SwFormatColl* );
497 SwFormatColl* GetFormatColl() const { return const_cast<SwFormatColl*>(static_cast<const SwFormatColl*>(GetRegisteredIn())); }
498
499 inline SwFormatColl& GetAnyFormatColl() const;
500 void SetCondFormatColl( SwFormatColl* );
501 inline SwFormatColl* GetCondFormatColl() const;
502
503 bool IsAnyCondition( SwCollCondition& rTmp ) const;
504 void ChkCondColl(const SwTextFormatColl* pColl = nullptr);
505
508 bool InvalidateNumRule();
509
512 SvxFrameDirection GetTextDirection( const SwPosition& rPos,
513 const Point* pPt ) const;
514
515 void SetModifyAtAttr( bool bSetModifyAtAttr ) const { mbSetModifyAtAttr = bSetModifyAtAttr; }
516 bool GetModifyAtAttr() const { return mbSetModifyAtAttr; }
517
518 static std::unique_ptr<SwOLENodes> CreateOLENodesArray( const SwFormatColl& rColl, bool bOnlyWithInvalidSize );
519
520 // Access to DrawingLayer FillAttributes in a preprocessed form for primitive usage
521 virtual drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const;
522
523 void UpdateAttr(const SwUpdateAttr&);
524
525private:
526 SwContentNode( const SwContentNode & rNode ) = delete;
527 SwContentNode & operator= ( const SwContentNode & rNode ) = delete;
528};
529
530// SwTableNode
531
532class SW_DLLPUBLIC SwTableNode final : public SwStartNode, public sw::BroadcastingModify
533{
534 friend class SwNodes;
535 std::unique_ptr<SwTable> m_pTable;
536
537 virtual ~SwTableNode() override;
538
539public:
540 SwTableNode( const SwNode& );
541
542 const SwTable& GetTable() const { return *m_pTable; }
543 SwTable& GetTable() { return *m_pTable; }
544 SwTabFrame *MakeFrame( SwFrame* );
545
548 void MakeOwnFrames(SwPosition* pIdxBehind = nullptr);
549
552 void DelFrames(SwRootFrame const* pLayout = nullptr);
553
556 void MakeFramesForAdjacentContentNode(const SwNodeIndex & rIdx);
557
558 SwTableNode* MakeCopy( SwDoc&, const SwNodeIndex& ) const;
559 void SetNewTable( std::unique_ptr<SwTable> , bool bNewFrames=true );
560
561 // Removes redline objects that relate to this table from the 'Extra Redlines' table
562 void RemoveRedlines();
563
564 void dumpAsXml(xmlTextWriterPtr pWriter) const override;
565
566private:
567 SwTableNode( const SwTableNode & rNode ) = delete;
568 SwTableNode & operator= ( const SwTableNode & rNode ) = delete;
569};
570
573class SAL_DLLPUBLIC_RTTI SwSectionNode final
574 : public SwStartNode
575{
576 friend class SwNodes;
577
578private:
579 SwSectionNode(const SwSectionNode&) = delete;
581
582 std::unique_ptr<SwSection> const m_pSection;
583
584 virtual ~SwSectionNode() override;
585
586public:
587 SwSectionNode(const SwNode& rWhere,
588 SwSectionFormat & rFormat, SwTOXBase const*const pTOXBase);
589
590 const SwSection& GetSection() const { return *m_pSection; }
591 SwSection& GetSection() { return *m_pSection; }
592
593 SwFrame *MakeFrame( SwFrame* );
594
599 void MakeOwnFrames(SwNodeIndex* pIdxBehind, SwNodeIndex* pEnd = nullptr);
600
603 void DelFrames(SwRootFrame const* pLayout = nullptr, bool bForce = false);
604
607 void MakeFramesForAdjacentContentNode(const SwNodeIndex & rIdx);
608
609 SwSectionNode* MakeCopy( SwDoc&, const SwNodeIndex& ) const;
610
612 void NodesArrChgd();
613
616 bool IsContentHidden() const;
617
618 void dumpAsXml(xmlTextWriterPtr pWriter) const override;
619
620};
621
627class SwPlaceholderNode final : private SwNode
628{
629private:
630 friend class SwNodes;
631 SwPlaceholderNode(const SwNode& rWhere);
632};
633
635{
636 return SwNodeType::End == m_nNodeType ? static_cast<SwEndNode*>(this) : nullptr;
637}
638inline const SwEndNode *SwNode::GetEndNode() const
639{
640 return SwNodeType::End == m_nNodeType ? static_cast<const SwEndNode*>(this) : nullptr;
641}
643{
644 return SwNodeType::Start & m_nNodeType ? static_cast<SwStartNode*>(this) : nullptr;
645}
647{
648 return SwNodeType::Start & m_nNodeType ? static_cast<const SwStartNode*>(this) : nullptr;
649}
651{
652 return SwNodeType::Table == m_nNodeType ? static_cast<SwTableNode*>(this) : nullptr;
653}
655{
656 return SwNodeType::Table == m_nNodeType ? static_cast<const SwTableNode*>(this) : nullptr;
657}
659{
660 return SwNodeType::Section == m_nNodeType ? static_cast<SwSectionNode*>(this) : nullptr;
661}
663{
664 return SwNodeType::Section == m_nNodeType ? static_cast<const SwSectionNode*>(this) : nullptr;
665}
667{
668 return SwNodeType::ContentMask & m_nNodeType ? static_cast<SwContentNode*>(this) : nullptr;
669}
671{
672 return SwNodeType::ContentMask & m_nNodeType ? static_cast<const SwContentNode*>(this) : nullptr;
673}
674
675inline bool SwNode::IsStartNode() const
676{
677 return bool(SwNodeType::Start & m_nNodeType);
678}
679inline bool SwNode::IsContentNode() const
680{
682}
683inline bool SwNode::IsEndNode() const
684{
686}
687inline bool SwNode::IsTextNode() const
688{
690}
691inline bool SwNode::IsTableNode() const
692{
694}
695inline bool SwNode::IsSectionNode() const
696{
698}
699inline bool SwNode::IsNoTextNode() const
700{
701 return bool(SwNodeType::NoTextMask & m_nNodeType);
702}
703inline bool SwNode::IsOLENode() const
704{
706}
707inline bool SwNode::IsGrfNode() const
708{
710}
711
713{
714 return const_cast<SwNode*>(this)->FindSttNodeByType( eTyp );
715}
717{
718 return const_cast<SwNode*>(this)->FindTableNode();
719}
721{
722 return const_cast<SwNode*>(this)->FindSectionNode();
723}
725{
726 return m_pStartOfSection->GetIndex();
727}
729{
730 const SwStartNode* pStNd = IsStartNode() ? static_cast<const SwStartNode*>(this) : m_pStartOfSection;
731 return pStNd->m_pEndOfSection->GetIndex();
732}
734{
735 const SwStartNode* pStNd = IsStartNode() ? static_cast<const SwStartNode*>(this) : m_pStartOfSection;
736 return pStNd->m_pEndOfSection;
737}
739{
740 const SwStartNode* pStNd = IsStartNode() ? static_cast<const SwStartNode*>(this) : m_pStartOfSection;
741 return pStNd->m_pEndOfSection;
742}
743
745{
746 return static_cast<SwNodes&>(GetArray());
747}
748inline const SwNodes& SwNode::GetNodes() const
749{
750 return static_cast<SwNodes&>(GetArray());
751}
752
754{
755 return m_pCondColl;
756}
757
759{
760 return m_pCondColl
761 ? *m_pCondColl
762 : *const_cast<SwFormatColl*>(static_cast<const SwFormatColl*>(GetRegisteredIn()));
763}
764
766{
768}
769
770inline const SfxPoolItem& SwContentNode::GetAttr( sal_uInt16 nWhich,
771 bool bInParents ) const
772{
773 return GetSwAttrSet().Get( nWhich, bInParents );
774}
775
777 : SwNode(rWhere, SwNodeType::PlaceHolder)
778{
779}
780
782{
783 return static_cast<SwNode*>(BigPtrArray::operator[] ( sal_Int32(n) ));
784}
785
786#endif
787
788/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
BigPtrEntry * operator[](sal_Int32) const
Definition: bparr.cxx:82
sal_Int32 GetPos() const
Definition: bparr.hxx:97
BigPtrArray & GetArray() const
Definition: bparr.hxx:103
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...
Definition: cntfrm.hxx:59
Marks a character position inside a document model content node (SwContentNode)
SwFormatColl * GetFormatColl() const
Definition: node.hxx:497
SwFormatColl * m_pCondColl
Definition: node.hxx:398
bool HasSwAttrSet() const
Definition: node.hxx:494
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
Definition: node.hxx:487
const SfxPoolItem & GetAttr(sal_uInt16 nWhich, bool bInParent=true) const
SS for PoolItems: hard attributation.
Definition: node.hxx:770
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
Definition: node.hxx:765
bool mbSetModifyAtAttr
Definition: node.hxx:399
const T & GetAttr(TypedWhichId< T > nWhich, bool bInParent=true) const
Definition: node.hxx:474
bool GetModifyAtAttr() const
Definition: node.hxx:516
void SetModifyAtAttr(bool bSetModifyAtAttr) const
Definition: node.hxx:515
std::shared_ptr< const SfxItemSet > mpAttrSet
Attribute-set for all auto attributes of a ContentNode.
Definition: node.hxx:413
const SwAttrSet * GetpSwAttrSet() const
Definition: node.hxx:493
virtual SwContentNode * MakeCopy(SwDoc &, SwNode &rWhere, bool bNewFrames) const =0
SwContentNode(const SwContentNode &rNode)=delete
sw::WriterMultiListener m_aCondCollListener
Definition: node.hxx:397
SwFormatColl * GetCondFormatColl() const
Definition: node.hxx:753
SwFormatColl & GetAnyFormatColl() const
Definition: node.hxx:758
virtual void NewAttrSet(SwAttrPool &)=0
Make respective nodes create the specific AttrSets.
Definition: doc.hxx:197
Ends a section of nodes in the document model.
Definition: node.hxx:378
SwEndNode(const SwEndNode &rNode)=delete
SwEndNode(SwNodes &rNodes, SwNodeOffset nPos, SwStartNode &rSttNd)
for the initial StartNode
Definition: node.cxx:1072
SwEndNode & operator=(const SwEndNode &rNode)=delete
SwFormatColl is just an SwFormat subclass that defaults to m_bAutoFormat=false, expressing that this ...
Definition: fmtcol.hxx:38
const SwAttrSet & GetAttrSet() const
For querying the attribute array.
Definition: format.hxx:136
Style of a layout element.
Definition: frmfmt.hxx:72
Base class of the Writer layout elements.
Definition: frame.hxx:315
Layout frame for SwNoTextNode, i.e. graphics and OLE nodes (including charts).
Definition: ndnotxt.hxx:30
Marks a node in the document model.
Definition: ndindex.hxx:31
Base class of the Writer document model elements.
Definition: node.hxx:98
bool IsGrfNode() const
Definition: node.hxx:707
SwStartNode * GetStartNode()
Definition: node.hxx:642
bool IsIgnoreDontExpand() const
Definition: node.hxx:163
SwNode(const SwNode &rNodes)=delete
const SwDoc & GetDoc() const
Definition: node.hxx:238
sal_uInt8 GetAutoFormatLvl() const
Definition: node.hxx:160
SwSectionNode * GetSectionNode()
Definition: node.hxx:658
void SetIgnoreDontExpand(bool bNew)
Definition: node.hxx:164
SwNodeOffset GetIndex() const
Definition: node.hxx:312
const SwStartNode * FindTableBoxStartNode() const
Definition: node.hxx:218
bool operator!=(const SwNode &rOther) const
Definition: node.hxx:328
const SwStartNode * FindFooterStartNode() const
Definition: node.hxx:226
tools::Long m_nSerial
Definition: node.hxx:122
SwStartNode * m_pStartOfSection
Definition: node.hxx:131
bool IsNoTextNode() const
Definition: node.hxx:699
SwNodes & GetNodes()
Node is in which nodes-array/doc?
Definition: node.hxx:744
std::vector< SwFrameFormat * > m_aAnchoredFlys
all SwFrameFormat that are anchored at the node invariant: SwFrameFormat is in the list iff SwFrameFo...
Definition: node.hxx:128
bool IsContentNode() const
Definition: node.hxx:679
const SwStartNode * FindHeaderStartNode() const
Definition: node.hxx:224
SwDoc & GetDoc()
Definition: node.hxx:233
Merge
sw_redlinehide: redline node merge state
Definition: node.hxx:111
bool operator<(const SwNode &rOther) const
Definition: node.hxx:329
bool operator==(const SwNode &rOther) const
Definition: node.hxx:327
bool IsEndNode() const
Definition: node.hxx:683
bool IsStartNode() const
Definition: node.hxx:675
SwNodeOffset StartOfSectionIndex() const
Definition: node.hxx:724
const SwStartNode * FindFlyStartNode() const
Definition: node.hxx:220
void SetRedlineMergeFlag(Merge const eMerge)
Definition: node.hxx:115
bool IsSectionNode() const
Definition: node.hxx:695
bool IsTableNode() const
Definition: node.hxx:691
bool IsTextNode() const
Definition: node.hxx:687
const SwStartNode * FindFootnoteStartNode() const
Definition: node.hxx:222
SwTableNode * FindTableNode()
Search table node, in which it is.
Definition: node.cxx:380
SwStartNode * FindSttNodeByType(SwStartNodeType eTyp)
Definition: node.cxx:782
bool operator>=(const SwNode &rOther) const
Definition: node.hxx:332
SwSectionNode * FindSectionNode()
Search section node, in which it is.
Definition: ndsect.cxx:968
const SwStartNode * StartOfSectionNode() const
Definition: node.hxx:153
SwNode & operator=(const SwNode &rNodes)=delete
SwStartNode * StartOfSectionNode()
Definition: node.hxx:154
Merge GetRedlineMergeFlag() const
Definition: node.hxx:116
SwNodeOffset EndOfSectionIndex() const
Definition: node.hxx:728
SwNodeType m_nNodeType
Definition: node.hxx:101
Merge m_eMerge
Definition: node.hxx:118
sw::AccessibilityCheckStatus m_aAccessibilityCheckStatus
Definition: node.hxx:107
sw::AccessibilityCheckStatus & getAccessibilityCheckStatus()
Definition: node.hxx:334
bool IsCreateFrameWhenHidingRedlines() const
Definition: node.hxx:112
SwContentNode * GetContentNode()
Definition: node.hxx:666
tools::Long GetSerial() const
Definition: node.hxx:147
bool operator<=(const SwNode &rOther) const
Definition: node.hxx:330
SwTableNode * GetTableNode()
Definition: node.hxx:650
static tools::Long s_nSerial
Definition: node.hxx:121
void SetAutoFormatLvl(sal_uInt8 nVal)
Definition: node.hxx:161
SwNodeType GetNodeType() const
Definition: node.hxx:166
bool m_bIgnoreDontExpand
for Text Attributes - ignore the flag
Definition: node.hxx:105
std::vector< SwFrameFormat * > const & GetAnchoredFlys() const
Definition: node.hxx:318
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const
Dumps the node structure to the given destination (file nodes.xml in the current directory by default...
Definition: node.cxx:899
bool operator>(const SwNode &rOther) const
Definition: node.hxx:331
SwEndNode * GetEndNode()
Definition: node.hxx:634
bool IsOLENode() const
Definition: node.hxx:703
const SwEndNode * EndOfSectionNode() const
Definition: node.hxx:733
sal_uInt8 m_nAFormatNumLvl
For text nodes: level of auto format. Was put here because we had still free bits.
Definition: node.hxx:104
static sal_uInt16 GetSectionLevel(const SwNode &rIndex)
get section level at the given position
Definition: nodes.cxx:1267
SwNode * operator[](SwNodeOffset n) const
Definition: node.hxx:781
void dumpAsXml(xmlTextWriterPtr pWriter) const
Dumps the entire nodes structure to the given destination (file nodes.xml in the current directory by...
Definition: nodes.cxx:2543
friend class SwNode
Definition: ndarr.hxx:93
This class is internal, used only during DocumentContentOperationsManager::CopyWithFlyInFly(),...
Definition: node.hxx:628
SwPlaceholderNode(const SwNode &rWhere)
Definition: node.hxx:776
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
The root element of a Writer document layout.
Definition: rootfrm.hxx:85
A section node represents the start of a section on the UI, i.e.
Definition: node.hxx:575
std::unique_ptr< SwSection > const m_pSection
Definition: node.hxx:582
SwSectionNode(const SwSectionNode &)=delete
const SwSection & GetSection() const
Definition: node.hxx:590
SwSectionNode & operator=(const SwSectionNode &)=delete
SwSection & GetSection()
Definition: node.hxx:591
Starts a section of nodes in the document model.
Definition: node.hxx:348
SwEndNode * m_pEndOfSection
Definition: node.hxx:353
SwStartNodeType m_eStartNodeType
Definition: node.hxx:354
SwStartNode(const SwStartNode &rNode)=delete
SwStartNodeType GetStartNodeType() const
Definition: node.hxx:364
SwTabFrame is one table in the document layout, containing rows (which contain cells).
Definition: tabfrm.hxx:49
SwTableBox is one table cell in the document model.
Definition: swtable.hxx:443
const SwTable & GetTable() const
Definition: node.hxx:542
SwTable & GetTable()
Definition: node.hxx:543
std::unique_ptr< SwTable > m_pTable
Definition: node.hxx:535
SwTableNode(const SwTableNode &rNode)=delete
SwTable is one table in the document model, containing rows (which contain cells).
Definition: swtable.hxx:113
Represents the style of a paragraph.
Definition: fmtcol.hxx:61
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:112
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)
Definition: docglbl.cxx:89
static SwNode * GetEndNode(SwOutlineNodes const *pOutlNds, int nOutlineLevel, SwOutlineNodes::size_type *nOutl)
Definition: docglbl.cxx:103
static SwContentNode * GetContentNode(SwDoc &rDoc, SwPosition &rPos, bool bNext)
Definition: fltshell.cxx:54
SvxFrameDirection
static SwPageDesc * FindPageDesc(SwDoc *pDoc, sal_uInt16 nPoolId)
Definition: htmlcss1.cxx:1319
sal_Int64 n
std::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr
Definition: format.hxx:41
None
Dialog to specify the properties of date form field.
long Long
SwStartNodeType
Definition: ndtyp.hxx:51
@ SwNormalStartNode
Definition: ndtyp.hxx:52
@ SwHeaderStartNode
Definition: ndtyp.hxx:56
@ SwFooterStartNode
Definition: ndtyp.hxx:57
@ SwFlyStartNode
Definition: ndtyp.hxx:54
@ SwTableBoxStartNode
Definition: ndtyp.hxx:53
@ SwFootnoteStartNode
Definition: ndtyp.hxx:55
SwNodeType
Definition: ndtyp.hxx:28
@ Table
SwTableNode is derived from SwStartNode.
@ Section
SwSectionNode is derived from SwStartNode.
std::vector< SwOLENode * > SwOLENodes
Definition: node.hxx:74
o3tl::strong_int< sal_Int32, struct Tag_SwNodeOffset > SwNodeOffset
Definition: nodeoffset.hxx:16
bool GoNext(SwNode *pNd, SwContentIndex *pIdx, SwCursorSkipMode nMode)
Definition: pam.cxx:381
bool GoPrevious(SwNode *pNd, SwContentIndex *pIdx, SwCursorSkipMode nMode)
Definition: pam.cxx:388
Marks a position in the document model.
Definition: pam.hxx:38
std::unique_ptr< sfx::AccessibilityIssueCollection > pCollection
Definition: node.hxx:89
SwCursorSkipMode
Definition: swcrsr.hxx:65
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
unsigned char sal_uInt8