class Graphic; class SwAttrSet; class SfxItemSet; class SwContentNode; class SwDoc; class SwGrfFormatColl; class SwGrfNode; class SwNode; class SwNodeIndex; class SwNodeRange; class SwOLENode; class SwPaM; class SwRootFrame; class SwSectionData; class SwSectionFormat; class SwTOXBase; class SwSectionNode; class SwStartNode; class SwTableBoxFormat; class SwTableFormat; class SwTableLine; class SwTableLineFormat; class SwTableNode; class SwTextFormatColl; class SwTextNode; class SwUndoTableToText; class SwUndoTextToTable; struct SwPosition;
namespace sw { class DocumentContentOperationsManager; } namespace svt { class EmbeddedObjectRef; }
class SwOutlineNodes : public o3tl::sorted_vector<SwNode*, CompareSwOutlineNodes>
{ public: static constexpr auto npos = std::numeric_limits<size_type>::max();
class SwOutlineNodesInline : public o3tl::sorted_vector<SwNode*, CompareSwOutlineNodesInline>
{ public: static constexpr auto npos = std::numeric_limits<size_type>::max();
SwDoc& m_rMyDoc; ///< This Doc contains the nodes-array.
SwNode *m_pEndOfPostIts, *m_pEndOfInserts, ///< These are the fixed ranges.
*m_pEndOfAutotext, *m_pEndOfRedlines;
std::unique_ptr<SwNode> m_pEndOfContent;
mutable SwOutlineNodes m_aOutlineNodes; ///< Array of all outline nodes.
bool m_bInNodesDel : 1; /**< In Case of recursive calling.
Do not update Num/Outline. */ bool m_bInDelUpdOutline : 1; ///< Flag for updating of Outline.
/// A still empty section.
SwNode& GetEndOfPostIts() const { return *m_pEndOfPostIts; } /// Section for all footnotes.
SwNode& GetEndOfInserts() const { return *m_pEndOfInserts; } /// Section for all Flys/Header/Footers.
SwNode& GetEndOfAutotext() const { return *m_pEndOfAutotext; } /// Section for all Redlines.
SwNode& GetEndOfRedlines() const { return *m_pEndOfRedlines; } /** This is the last EndNode of a special section. After it
there is only the regular ContentSection (i.e. the BodyText). */
SwNode& GetEndOfExtras() const { return *m_pEndOfRedlines; } /// Regular ContentSection (i.e. the BodyText).
SwNode& GetEndOfContent() const { return *m_pEndOfContent; }
/** Is the NodesArray the regular one of Doc? (and not the UndoNds, ...)
Implementation in doc.hxx (because one needs to know Doc for it) ! */
SW_DLLPUBLIC bool IsDocNodes() const;
/** Go to next content-node that is not protected or hidden
(Both set FALSE ==> GoNext/GoPrevious!!!). */ static SwContentNode* GoNextSection( SwNodeIndex *, bool bSkipHidden = true, bool bSkipProtect = true ); static SwContentNode* GoNextSection( SwPosition *, bool bSkipHidden = true, bool bSkipProtect = true ); static SwContentNode* GoPrevSection( SwNodeIndex *, bool bSkipHidden = true, bool bSkipProtect = true ); static SwContentNode* GoPrevSection( SwPosition *, bool bSkipHidden = true, bool bSkipProtect = true );
/** Create an empty section of Start- and EndNote. It may be called onlyifanewsectionwithcontentistobecreated,
e.g. at filters/Undo/... */ static SwStartNode* MakeEmptySection( const SwNode& rWhere,
SwStartNodeType = SwNormalStartNode );
/// Implementations of "Make...Node" are in the given .cxx-files.
SW_DLLPUBLIC SwTextNode *MakeTextNode( const SwNode& rWhere,
SwTextFormatColl *pColl, bool bNewFrames = true); ///< in ndtxt.cxx
SW_DLLPUBLIC SwStartNode* MakeTextSection( const SwNode & rWhere,
SwStartNodeType eSttNdTyp,
SwTextFormatColl *pColl );
/// Array of all OutlineNodes. const SwOutlineNodes& GetOutLineNds() const { return m_aOutlineNodes;}
/// Update all Nodes - Rule/Format-Change. void UpdateOutlineNode(SwNode & rNd);
/** Insert nodes for tables. If Lines is given, create the matrix fromlinesandboxes,elseonlythecountofboxes.
NewparameterpAttrSet:IfpAttrSetisnon-nullandcontainsan adjustitemitispropagatedtothetablecells.Ifthereisan adjustinpContentTextCollorpHeadlineTextCollthisadjustitem
overrides the item in pAttrSet. */
/// create a table from a vector of NodeRanges - API support
SwTableNode* TextToTable( const TableRanges_t& rTableNodes,
SwTableFormat* pTableFormat,
SwTableLineFormat* pLineFormat,
SwTableBoxFormat* pBoxFormat );
/// Create regular text from what was table. bool TableToText( const SwNodeRange& rRange, sal_Unicode cCh,
SwUndoTableToText* ); /// Is in untbl.cxx and may called only by Undo-object.
SwTableNode* UndoTableToText( SwNodeOffset nStt, SwNodeOffset nEnd, const SwTableToTextSaves& rSavedData );
/** Insert a new box in the line before InsPos. Its format istakenfromthefollowingone(orfromthepreviousoneifweare
at the end). In the line there must be a box already. */
SW_DLLPUBLIC bool InsBoxen( SwTableNode*, SwTableLine*, SwTableBoxFormat*, /// Formats for TextNode of box.
SwTextFormatColl*, const SfxItemSet* pAutoAttr,
sal_uInt16 nInsPos, sal_uInt16 nCnt = 1 ); /** Splits a table at the base-line which contains the index. Allbaselinesbehinditaremovedtoanewtable/-node. IstheflagbCalcNewSizesettoTRUE,thenewSSizeforboth tablesiscalculatedfromtheMaximumoftheboxes,provided SSizeisset"absolute"(LONG_MAX).
(Momentarily this is needed only for the RTF-parser.) */
SwTableNode* SplitTable( SwNode& rPos, bool bAfter = true, bool bCalcNewSize = false ); /// Two Tables that are following one another are merged. bool MergeTable( SwNode& rPos, bool bWithPrev = true );
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.