search/mag_sel search/close
Row.h
1 // Copyright 2001-2021 Aspose Pty Ltd. All Rights Reserved.
3 //
4 // This file is part of Aspose.Words. The source code in this file
5 // is only intended as a supplement to the documentation, and is provided
6 // "as is", without warranty of any kind, either expressed or implied.
9 #pragma once
10 
11 #include <system/shared_ptr.h>
12 
13 #include <Aspose.Words.Cpp/Revisions/ITrackableNode.h>
14 #include <Aspose.Words.Cpp/NodeType.h>
15 #include <Aspose.Words.Cpp/CompositeNode.h>
16 #include <Aspose.Words.Cpp/IRowAttrSource.h>
17 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
18 
19 namespace Aspose { namespace Words { namespace Themes { class ThemeColorRemover; } } }
20 namespace Aspose { namespace Words { namespace Layout { class ParagraphPrConverter; } } }
21 namespace Aspose { namespace Words { namespace Comparing { class ComparerNodeUtil; } } }
22 namespace Aspose { namespace Words { namespace Comparing { class FormattingComparer; } } }
23 namespace Aspose { namespace Words { namespace Comparing { class TableComparer; } } }
24 namespace Aspose { namespace Words { namespace Themes { class ThemeColorUpdater; } } }
25 namespace Aspose { namespace Words { namespace Validation { class IstdVisitor; } } }
26 namespace Aspose { namespace Words { namespace Formatting { namespace Intern { class InternManager; } } } }
27 namespace Aspose { namespace Words { namespace Tables { class DocRtfGridHandler; } } }
28 namespace Aspose { namespace Words { namespace Tables { class TableMerger; } } }
29 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Css { namespace New { class DocumentFormatter; } } } } } }
30 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlBlockWriter; } } } } }
31 namespace Aspose { namespace Words { class RevisionGroupCollection; } }
32 namespace Aspose { namespace Words { namespace Revisions { class RevisionUtil; } } }
33 namespace Aspose { namespace Words { namespace Tables { class FixedGridConstructor; } } }
34 namespace Aspose { namespace Words { namespace Tables { class RowSpan; } } }
35 namespace Aspose { namespace Words { namespace Tables { class FixedGridCalculator; } } }
36 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Writer { class TablePrWriter; } } } } }
37 namespace Aspose { namespace Words { namespace Layout { class AttributeConverter; } } }
38 namespace Aspose { namespace Words { namespace Layout { class DocumentSpanConverter; } } }
39 namespace Aspose { namespace Words { namespace Layout { namespace Core { class SpanGenerator; } } } }
40 namespace Aspose { namespace Words { class Bookmark; } }
41 namespace Aspose { namespace Words { namespace Fields { class NewResultEnumerator; } } }
42 namespace Aspose { namespace Words { class TableStyle; } }
43 namespace Aspose { namespace Words { namespace TableLayout { class Extensions; } } }
44 namespace Aspose { namespace Words { namespace Tables { class TableFormattingExpander; } } }
45 namespace Aspose { namespace Words { class DocumentBuilder; } }
46 namespace Aspose { namespace Words { namespace Validation { class DocumentPostLoader; } } }
47 namespace Aspose { namespace Words { namespace Validation { class DocumentValidator; } } }
48 namespace Aspose { namespace Words { class TableBuilder; } }
49 namespace Aspose { namespace Words { namespace Validation { class TableValidator; } } }
50 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Tables { class DocTableContext; } } } } }
51 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Css { namespace New { class CssWidthStyleConverter; } } } } } }
52 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Css { namespace New { class CssBackgroundColorPropertyDef; } } } } } }
53 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlI18nWriter; } } } } }
54 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlTableWriter; } } } } }
55 namespace Aspose { namespace Words { class NodeImporter; } }
56 namespace Aspose { namespace Words { class StyleCollection; } }
57 namespace Aspose { namespace Words { namespace Tables { class Cell; } } }
58 namespace Aspose { namespace Words { namespace Tables { class Table; } } }
59 namespace Aspose { namespace Words { namespace RW { namespace Nrx { namespace Reader { class NrxDocumentReaderBase; } } } } }
60 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Writer { class DocxDocumentWriterBase; } } } } }
61 namespace Aspose { namespace Words { namespace RW { namespace Nrx { class NrxTableGrid; } } } }
62 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtTableReader; } } } } }
63 namespace Aspose { namespace Words { namespace RW { namespace Celler { class CellerTable; } } } }
64 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxRowReader; } } } } }
65 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { class ModelBuilder; } } } } }
66 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Writer { class DocWriter; } } } } }
67 namespace Aspose { namespace Words { namespace RW { namespace Html { class CssTable; } } } }
68 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Reader { class HtmlTableReader; } } } } }
69 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtCellPropertiesWriter; } } } } }
70 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtTableWriter; } } } } }
71 namespace Aspose { namespace Words { namespace Tables { class TableGridFromCellWidth; } } }
72 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfModelBuilder; } } } } }
73 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfReader; } } } } }
74 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfTableDefWriter; } } } } }
75 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfWriter; } } } } }
76 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Reader { class WmlRowReader; } } } } }
77 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Writer { class WmlWriter; } } } } }
78 namespace Aspose { namespace Words { namespace Tables { class CellCollection; } } }
79 namespace Aspose { namespace Words { namespace Tables { class RowFormat; } } }
80 namespace Aspose { namespace Words { namespace Tables { class TablePr; } } }
81 namespace Aspose { namespace Words { namespace Revisions { class EditRevision; } } }
82 namespace Aspose { namespace Words { namespace Revisions { class MoveRevision; } } }
83 namespace Aspose { namespace Words { class DocumentBase; } }
84 namespace Aspose { namespace Words { class Node; } }
85 namespace Aspose { namespace Words { class INodeCloningListener; } }
86 namespace Aspose { namespace Words { class DocumentVisitor; } }
87 namespace Aspose { namespace Words { enum class VisitorAction; } }
88 namespace System { class String; }
89 namespace System { class Object; }
90 
91 namespace Aspose {
92 
93 namespace Words {
94 
95 namespace Tables {
96 
222 class ASPOSE_WORDS_SHARED_CLASS Row : public Aspose::Words::CompositeNode, public Aspose::Words::IRowAttrSource, public Aspose::Words::Revisions::ITrackableNode
223 {
224  typedef Row ThisType;
226  typedef Aspose::Words::IRowAttrSource BaseType1;
227  typedef Aspose::Words::Revisions::ITrackableNode BaseType2;
228 
229  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2> ThisTypeBaseTypesInfo;
230  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
231 
232  friend class Aspose::Words::Themes::ThemeColorRemover;
233  friend class Aspose::Words::Layout::ParagraphPrConverter;
234  friend class Aspose::Words::Comparing::ComparerNodeUtil;
235  friend class Aspose::Words::Comparing::FormattingComparer;
236  friend class Aspose::Words::Comparing::TableComparer;
237  friend class Aspose::Words::Themes::ThemeColorUpdater;
238  friend class Aspose::Words::Validation::IstdVisitor;
239  friend class Aspose::Words::Formatting::Intern::InternManager;
240  friend class Aspose::Words::Tables::DocRtfGridHandler;
241  friend class Aspose::Words::Tables::TableMerger;
242  friend class Aspose::Words::RW::Html::Css::New::DocumentFormatter;
243  friend class Aspose::Words::RW::Html::Writer::HtmlBlockWriter;
245  friend class Aspose::Words::Revisions::RevisionUtil;
246  friend class Aspose::Words::Tables::FixedGridConstructor;
247  friend class Aspose::Words::Tables::RowSpan;
248  friend class Aspose::Words::Tables::FixedGridCalculator;
249  friend class Aspose::Words::RW::Doc::Writer::TablePrWriter;
250  friend class Aspose::Words::Layout::AttributeConverter;
251  friend class Aspose::Words::Layout::DocumentSpanConverter;
252  friend class Aspose::Words::Layout::Core::SpanGenerator;
253  friend class Aspose::Words::Bookmark;
254  friend class Aspose::Words::Fields::NewResultEnumerator;
255  friend class Aspose::Words::TableStyle;
256  friend class Aspose::Words::TableLayout::Extensions;
257  friend class Aspose::Words::Tables::TableFormattingExpander;
258  friend class Aspose::Words::DocumentBuilder;
259  friend class Aspose::Words::Validation::DocumentPostLoader;
260  friend class Aspose::Words::Validation::DocumentValidator;
261  friend class Aspose::Words::TableBuilder;
262  friend class Aspose::Words::Validation::TableValidator;
263  friend class Aspose::Words::RW::Doc::Tables::DocTableContext;
264  friend class Aspose::Words::RW::Html::Css::New::CssWidthStyleConverter;
265  friend class Aspose::Words::RW::Html::Css::New::CssBackgroundColorPropertyDef;
266  friend class Aspose::Words::RW::Html::Writer::HtmlI18nWriter;
267  friend class Aspose::Words::RW::Html::Writer::HtmlTableWriter;
268  friend class Aspose::Words::NodeImporter;
269  friend class Aspose::Words::StyleCollection;
270  friend class Aspose::Words::Tables::Cell;
271  friend class Aspose::Words::Tables::Table;
272  friend class Aspose::Words::RW::Nrx::Reader::NrxDocumentReaderBase;
273  friend class Aspose::Words::RW::Docx::Writer::DocxDocumentWriterBase;
274  friend class Aspose::Words::RW::Nrx::NrxTableGrid;
275  friend class Aspose::Words::RW::Odt::Reader::OdtTableReader;
276  friend class Aspose::Words::RW::Celler::CellerTable;
277  friend class Aspose::Words::RW::Docx::Reader::DocxRowReader;
278  friend class Aspose::Words::RW::Doc::Reader::ModelBuilder;
279  friend class Aspose::Words::RW::Doc::Writer::DocWriter;
280  friend class Aspose::Words::RW::Html::CssTable;
281  friend class Aspose::Words::RW::Html::Reader::HtmlTableReader;
282  friend class Aspose::Words::RW::Odt::Writer::OdtCellPropertiesWriter;
283  friend class Aspose::Words::RW::Odt::Writer::OdtTableWriter;
284  friend class Aspose::Words::Tables::TableGridFromCellWidth;
285  friend class Aspose::Words::RW::Rtf::Reader::RtfModelBuilder;
286  friend class Aspose::Words::RW::Rtf::Reader::RtfReader;
287  friend class Aspose::Words::RW::Rtf::Writer::RtfTableDefWriter;
288  friend class Aspose::Words::RW::Rtf::Writer::RtfWriter;
289  friend class Aspose::Words::RW::Wml::Reader::WmlRowReader;
290  friend class Aspose::Words::RW::Wml::Writer::WmlWriter;
291 
292 public:
293  using Aspose::Words::CompositeNode::Clone;
294 
295 public:
296 
341  ASPOSE_WORDS_SHARED_API Aspose::Words::NodeType get_NodeType() const override;
342 
515 
687  ASPOSE_WORDS_SHARED_API bool get_IsFirstRow();
688 
715  ASPOSE_WORDS_SHARED_API bool get_IsLastRow();
716 
889 
1062 
1107 
1157  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::EditRevision> get_InsertRevision() override;
1158  ASPOSE_WORDS_SHARED_API void set_InsertRevision(System::SharedPtr<Aspose::Words::Revisions::EditRevision> value) override;
1159  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::EditRevision> get_DeleteRevision() override;
1160  ASPOSE_WORDS_SHARED_API void set_DeleteRevision(System::SharedPtr<Aspose::Words::Revisions::EditRevision> value) override;
1161  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::MoveRevision> get_MoveFromRevision() override;
1162  ASPOSE_WORDS_SHARED_API void set_MoveFromRevision(System::SharedPtr<Aspose::Words::Revisions::MoveRevision> value) override;
1163  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::MoveRevision> get_MoveToRevision() override;
1164  ASPOSE_WORDS_SHARED_API void set_MoveToRevision(System::SharedPtr<Aspose::Words::Revisions::MoveRevision> value) override;
1165 
1228 
1408  ASPOSE_WORDS_SHARED_API bool Accept(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1409 
1586  ASPOSE_WORDS_SHARED_API System::String GetText() override;
1587 
1609  ASPOSE_WORDS_SHARED_API void EnsureMinimum();
1610  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> GetDirectRowAttr(int32_t key) override;
1611  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> FetchRowAttr(int32_t key) override;
1612  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> FetchInheritedRowAttr(int32_t key) override;
1613  ASPOSE_WORDS_SHARED_API void SetRowAttr(int32_t key, System::SharedPtr<System::Object> value) override;
1614  ASPOSE_WORDS_SHARED_API void ClearRowAttrs() override;
1615  ASPOSE_WORDS_SHARED_API void ResetToDefaultAttrs() override;
1616  ASPOSE_WORDS_SHARED_API void RemoveMoveRevisions() override;
1617 
1618 protected:
1619 
1620  bool get_IsHeadingRow();
1623  int32_t get_RowIndex();
1625  void set_TablePr(System::SharedPtr<Aspose::Words::Tables::TablePr> value);
1626  int32_t get_ParaId() const;
1627  void set_ParaId(int32_t value);
1628  int32_t get_TextId() const;
1629  void set_TextId(int32_t value);
1630 
1632 
1633  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Row, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::DocumentBase> doc, System::SharedPtr<Aspose::Words::Tables::TablePr> rowPr));
1634  void EnsureTableStyleIsValid();
1635  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Node> Clone(bool isCloneChildren, System::SharedPtr<Aspose::Words::INodeCloningListener> cloningListener) override;
1636  bool IsSameRowFloatingPositioning(System::SharedPtr<Aspose::Words::Tables::Row> rhs);
1637  void BreakTableBefore();
1638  ASPOSE_WORDS_SHARED_API Aspose::Words::VisitorAction AcceptStart(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1639  ASPOSE_WORDS_SHARED_API Aspose::Words::VisitorAction AcceptEnd(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1640  ASPOSE_WORDS_SHARED_API System::String GetEndText() override;
1641  ASPOSE_WORDS_SHARED_API bool CanInsert(System::SharedPtr<Aspose::Words::Node> newChild) override;
1643  void RemoveParagraphFloatingAttributes();
1644  bool HasAttribute(int32_t key);
1645 
1646  virtual ASPOSE_WORDS_SHARED_API ~Row();
1647 
1648 private:
1649 
1650  int32_t mParaId;
1651  int32_t mTextId;
1655 
1656  ThisType* CppMemberwiseClone() const override { return new ThisType(*this); }
1657 
1658 };
1659 
1660 }
1661 }
1662 }