class SwContentFrame; class SwContentNode; class SwDoc; class SwEndNode; class SwFrame; class SwFrameFormat; class SwGrfNode; class SwNoTextNode; class SwNodeIndex; class SwOLENode; class SwRect; class SwSection; class SwSectionFormat; class SwTOXBase; class SwSectionNode; class SwStartNode; class SwTabFrame; class SwRootFrame; class SwTable; class SwTableNode; class SwTableBox; class SwTextNode; class SwPageDesc; class SwViewShell; struct SwPosition; class IStyleAccess; class IDocumentSettingAccess; class IDocumentDeviceAccess; class IDocumentMarkAccess; class IDocumentRedlineAccess; class IDocumentStylePoolAccess; class IDocumentLinksAdministration; class IDocumentFieldsAccess; class IDocumentContentOperations; class IDocumentListItems; class Point; enumclass SvxFrameDirection; typedef std::vector<SwOLENode*> SwOLENodes; // docary.hxx enumclass SwCursorSkipMode;
/// Base class of the Writer document model elements. class SW_DLLPUBLIC SwNode
: public sw::BorderCacheOwner, private BigPtrEntry
{ friendclass SwNodes; friendclass SwNodeIndex;
SwNodeType m_nNodeType;
/// For text nodes: level of auto format. Was put here because we had still free bits.
sal_uInt8 m_nAFormatNumLvl : 3; bool m_bIgnoreDontExpand : 1; ///< for Text Attributes - ignore the flag
mutable sw::AccessibilityCheckStatus m_aAccessibilityCheckStatus;
SwNodeIndex* m_vIndices { nullptr }; ///< ring of indices pointing to this node.
/// all SwFrameFormat that are anchored at the node /// invariant: SwFrameFormat is in the list iff /// SwFrameFormat::GetAnchor().GetContentAnchor() points to this node
std::vector<SwFrameFormat*> m_aAnchoredFlys;
protected:
SwStartNode* m_pStartOfSection;
/// only used by SwContentNodeTmp in SwTextNode::Update
SwNode();
/** Search table node, in which it is. If it is in no table
@return 0. */
SwTableNode *FindTableNode(); inlineconst SwTableNode *FindTableNode() const;
/** Search section node, in which it is. If it is in no section
@return 0. */
SwSectionNode *FindSectionNode(); inlineconst SwSectionNode *FindSectionNode() const;
/** Provides access to the document setting interface
*/ const IDocumentSettingAccess* getIDocumentSettingAccess() const;
/** Provides access to the document device interface
*/ const IDocumentDeviceAccess& getIDocumentDeviceAccess() const;
/** Provides access to the document bookmark interface
*/ const IDocumentMarkAccess* getIDocumentMarkAccess() const;
/** Provides access to the document redline interface
*/ const IDocumentRedlineAccess& getIDocumentRedlineAccess() const;
/** Provides access to the document style pool interface
*/ const IDocumentStylePoolAccess& getIDocumentStylePoolAccess() const;
/** Provides access to the document draw model interface
*/ const IDocumentDrawModelAccess& getIDocumentDrawModelAccess() const;
/** Provides access to the document layout interface
*/ const IDocumentLayoutAccess& getIDocumentLayoutAccess() const;
IDocumentLayoutAccess& getIDocumentLayoutAccess();
/** Provides access to the document links administration interface
*/ const IDocumentLinksAdministration& getIDocumentLinksAdministration() const;
IDocumentLinksAdministration& getIDocumentLinksAdministration();
/** Provides access to the document fields administration interface
*/ const IDocumentFieldsAccess& getIDocumentFieldsAccess() const;
IDocumentFieldsAccess& getIDocumentFieldsAccess();
/** Provides access to the document content operations interface
*/
IDocumentContentOperations& getIDocumentContentOperations();
/** Provides access to the document automatic styles interface
*/
IStyleAccess& getIDocumentStyleAccess();
/** Provides access to the document's numbered items interface */
IDocumentListItems& getIDocumentListItems();
/// Is node in the visible area of the Shell? bool IsInVisibleArea( SwViewShell const * pSh ) const; /// Is node in a protected area? bool IsInProtectSect() const; /** Is node in something that is protected (range, frame,
table cells ... including anchor in case of frames or footnotes)? */ bool IsProtect() const;
/** Search PageDesc with which this node is formatted. If layout is existent searchoverlayout,elseonlythehardwayisleft:searchoverthenodes
to the front!! */ const SwPageDesc* FindPageDesc( SwNodeOffset* pPgDescNdIdx = nullptr ) const;
/// If node is in a fly return the respective format.
SwFrameFormat* GetFlyFormat() const;
/// If node is in a table return the respective table box.
SAL_RET_MAYBENULL SwTableBox* GetTableBox() const;
/// Starts a section of nodes in the document model. class SAL_DLLPUBLIC_RTTI SwStartNode: public SwNode
{ friendclass SwNode; friendclass SwNodes; friendclass SwEndNode; ///< to set the theEndOfSection !!
/// Ends a section of nodes in the document model. class SwEndNode final : public SwNode
{ friendclass SwNodes; friendclass SwTableNode; ///< To enable creation of its EndNote. friendclass SwSectionNode; ///< To enable creation of its EndNote.
/// for the initial StartNode
SwEndNode( SwNodes& rNodes, SwNodeOffset nPos, SwStartNode& rSttNd );
protected: /// only used by SwContentNodeTmp in SwTextNode::Update
SwContentNode();
SwContentNode( const SwNode& rWhere, const SwNodeType nNodeType,
SwFormatColl *pFormatColl ); /** the = 0 forces the class to be an abstract base class, but the dtor can be still called
from subclasses */ virtual ~SwContentNode() override = 0;
/** Attribute-set for all auto attributes of a ContentNode.
(e.g. TextNode or NoTextNode). */
std::shared_ptr<const SwAttrSet> mpAttrSet;
/// Make respective nodes create the specific AttrSets. virtualvoid NewAttrSet( SwAttrPool& ) = 0;
/** There some functions that like to remove items from the internal
SwAttrSet (handle): */
sal_uInt16 ClearItemsFromAttrSet( const std::vector<sal_uInt16>& rWhichIds );
/** MakeFrame will be called for a certain layout
pSib is another SwFrame of the same layout (e.g. the SwRootFrame itself, a sibling, the parent) */ virtual SwContentFrame *MakeFrame( SwFrame* pSib ) = 0;
virtual SwContentNode *JoinNext(); /** Is it possible to join two nodes?
In pIdx the second position can be returned. */
SW_DLLPUBLIC bool CanJoinNext( SwNodeIndex* pIdx = nullptr ) const; bool CanJoinNext( SwPosition* pIdx ) const;
SW_DLLPUBLIC bool CanJoinPrev( SwNodeIndex* pIdx =nullptr ) const;
/// @see GetFrameOfModify
SW_DLLPUBLIC SwContentFrame *getLayoutFrame( const SwRootFrame*, const SwPosition *pPos = nullptr,
std::pair<Point, bool> const* pViewPosAndCalcFrame = nullptr) const; /** @return the real size of the frame or an empty rectangle if
no layout exists. Needed for export filters. */
SW_DLLPUBLIC SwRect FindLayoutRect( const Point* pPoint = nullptr ) const;
SW_DLLPUBLIC SwRect FindPageFrameRect() const;
/** Method creates all views of document for given node. The content
frames that are created are put in the respective layout. */ void MakeFramesForAdjacentContentNode(SwContentNode& rNode);
/** Method deletes all views of document for the node. The content- framesareremovedfromtherespectivelayout.
*/ void DelFrames(SwRootFrame const* pLayout);
/** @return count of elements of node content. Default is 1.
There are differences between text node and formula node. */ virtual sal_Int32 Len() const;
/** Invalidates NumRule at the node. NumRule is updated
on EndAction of a Shell at the latest. */ bool InvalidateNumRule();
/** determines the text direction for a certain
position. @return -1, if text direction could *not* be determined. */
SvxFrameDirection GetTextDirection( const SwPosition& rPos, const Point* pPt ) const;
// Access to DrawingLayer FillAttributes in a preprocessed form for primitive usage virtual drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const;
/// Creates the frms for the table node (i.e. the TabFrames). /// pIdxBehind is optional parameter. void MakeOwnFrames(SwPosition* pIdxBehind = nullptr);
/** Method deletes all views of document for the node.
The content frames are removed from the respective layout. */ void DelFrames(SwRootFrame const* pLayout = nullptr);
/** Method creates all views of the document for the previous node.
The content frames that are created are put into the respective layout. */ void MakeFramesForAdjacentContentNode(const SwNodeIndex & rIdx);
/// A section node represents the start of a section on the UI, i.e. the container created using /// Insert -> Section menu item. class SAL_DLLPUBLIC_RTTI SwSectionNode final
: public SwStartNode
{ friendclass SwNodes;
/** Creates the frms for the SectionNode (i.e. the SectionFrames). Ondefaulttheframesarecreateduntiltheendoftherange. WhenanotherNodeIndexpEndispassedaMakeFramesiscalleduptoit.
Used by TableToText. */ void MakeOwnFrames(SwNodeIndex* pIdxBehind, const SwNodeIndex* pEnd = nullptr);
/** Method deletes all views of document for the node. The
content frames are removed from the respective layout. */ void DelFrames(SwRootFrame const* pLayout = nullptr, bool bForce = false);
/** Method creates all views of document for the previous node.
The content frames created are put into the respective layout. */ void MakeFramesForAdjacentContentNode(const SwNodeIndex & rIdx);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.