search/mag_sel search/close
Cell.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/ICellAttrSource.h>
17 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
18 
19 namespace Aspose { namespace Words { class PageExtractor; } }
20 namespace Aspose { namespace Words { namespace Themes { class ThemeColorRemover; } } }
21 namespace Aspose { namespace Words { namespace Comparing { class FormattingComparer; } } }
22 namespace Aspose { namespace Words { namespace Comparing { class RowComparer; } } }
23 namespace Aspose { namespace Words { namespace Comparing { class TableComparer; } } }
24 namespace Aspose { namespace Words { namespace Themes { class ThemeColorUpdater; } } }
25 namespace Aspose { namespace Words { class DocumentInserter; } }
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 Markdown { namespace Writer { class MarkdownTableWriter; } } } } }
30 namespace Aspose { namespace Words { namespace RW { namespace Nrx { namespace Reader { class NrxCellReaderBase; } } } } }
31 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Css { namespace New { class DocumentFormatter; } } } } } }
32 namespace Aspose { namespace Words { class RevisionGroupCollection; } }
33 namespace Aspose { namespace Words { namespace Drawing { class ShapeSizeValidationHelper; } } }
34 namespace Aspose { namespace Words { namespace Fields { namespace Expressions { class FieldContext; } } } }
35 namespace Aspose { namespace Words { namespace Revisions { class RevisionUtil; } } }
36 namespace Aspose { namespace Words { namespace Tables { class CellSpan; } } }
37 namespace Aspose { namespace Words { namespace Tables { class RowSpan; } } }
38 namespace Aspose { namespace Words { namespace Tables { class FixedGridCalculator; } } }
39 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Writer { class TablePrWriter; } } } } }
40 namespace Aspose { namespace Words { namespace Fields { namespace Expressions { class OneDimensionCellRangeEnumerator; } } } }
41 namespace Aspose { namespace Words { namespace Fields { namespace Expressions { class UpDownCellRangeEnumerator; } } } }
42 namespace Aspose { namespace Words { namespace Markup { class StructuredDocumentTag; } } }
43 namespace Aspose { namespace Words { class NodeUtil; } }
44 namespace Aspose { namespace Words { namespace Layout { class AttributeConverter; } } }
45 namespace Aspose { namespace Words { namespace Layout { namespace Core { class SpanGenerator; } } } }
46 namespace Aspose { namespace Words { namespace Fields { namespace Expressions { class CellPosition; } } } }
47 namespace Aspose { namespace Words { namespace Fields { class NewResultEnumerator; } } }
48 namespace Aspose { namespace Words { class TableStyle; } }
49 namespace Aspose { namespace Words { namespace TableLayout { class Extensions; } } }
50 namespace Aspose { namespace Words { namespace Tables { class TableFormattingExpander; } } }
51 namespace Aspose { namespace Words { class DocumentBuilder; } }
52 namespace Aspose { namespace Words { namespace Validation { class DocumentPostLoader; } } }
53 namespace Aspose { namespace Words { namespace Validation { class DocumentValidator; } } }
54 namespace Aspose { namespace Words { class TableBuilder; } }
55 namespace Aspose { namespace Words { namespace Validation { class TableValidator; } } }
56 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Css { namespace New { class CssBackgroundColorPropertyDef; } } } } } }
57 namespace Aspose { namespace Words { namespace RW { namespace MarkupLanguage { namespace Writer { class MarkupLanguageTableWriterBase; } } } } }
58 namespace Aspose { namespace Words { namespace RW { namespace MarkupLanguage { namespace Writer { class MarkupLanguageDocumentTreeWriter; } } } } }
59 namespace Aspose { namespace Words { namespace RW { class MarkupResolver; } } }
60 namespace Aspose { namespace Words { namespace Lists { class ListLabelUtil; } } }
61 namespace Aspose { namespace Words { namespace TableLayout { class TableLayouter; } } }
62 namespace Aspose { namespace Words { namespace Tables { class CellCollection; } } }
63 namespace Aspose { namespace Words { namespace Tables { class Row; } } }
64 namespace Aspose { namespace Words { namespace Tables { class Table; } } }
65 namespace Aspose { namespace Words { class InlineHelper; } }
66 namespace Aspose { namespace Words { class Paragraph; } }
67 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Writer { class DocxDocumentWriterBase; } } } } }
68 namespace Aspose { namespace Words { namespace RW { namespace Nrx { class NrxTableGrid; } } } }
69 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtTableCellReader; } } } } }
70 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtTableReader; } } } } }
71 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtParagraphReader; } } } } }
72 namespace Aspose { namespace Words { namespace RW { namespace Celler { class CellerTable; } } } }
73 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { class ModelBuilder; } } } } }
74 namespace Aspose { namespace Words { namespace RW { namespace Html { class CssTable; } } } }
75 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Reader { class HtmlReader; } } } } }
76 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Reader { class HtmlTableReader; } } } } }
77 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtTextPropertiesWriter; } } } } }
78 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtCellPropertiesWriter; } } } } }
79 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtTableWriter; } } } } }
80 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtParagraphPropertiesWriter; } } } } }
81 namespace Aspose { namespace Words { namespace RW { namespace Txt { namespace Writer { class TxtTableBuilder; } } } } }
82 namespace Aspose { namespace Words { namespace Tables { class TableGridFromCellWidth; } } }
83 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfModelBuilder; } } } } }
84 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfTableDefWriter; } } } } }
85 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfWriter; } } } } }
86 namespace Aspose { namespace Words { namespace RW { namespace Txt { namespace Writer { class TxtWriter; } } } } }
87 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Reader { class WmlRunPrReader; } } } } }
88 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Writer { class WmlWriter; } } } } }
89 namespace Aspose { namespace Words { namespace Tables { class CellFormat; } } }
90 namespace Aspose { namespace Words { class ParagraphCollection; } }
91 namespace Aspose { namespace Words { namespace Tables { class TableCollection; } } }
92 namespace Aspose { namespace Words { namespace Tables { class CellPr; } } }
93 namespace Aspose { namespace Words { namespace Revisions { class EditRevision; } } }
94 namespace Aspose { namespace Words { namespace Revisions { class MoveRevision; } } }
95 namespace Aspose { namespace Words { class DocumentBase; } }
96 namespace Aspose { namespace Words { class Node; } }
97 namespace Aspose { namespace Words { class INodeCloningListener; } }
98 namespace Aspose { namespace Words { class DocumentVisitor; } }
99 namespace Aspose { namespace Words { enum class VisitorAction; } }
100 namespace System { class Object; }
101 
102 namespace Aspose {
103 
104 namespace Words {
105 
106 namespace Tables {
107 
233 class ASPOSE_WORDS_SHARED_CLASS Cell : public Aspose::Words::CompositeNode, public Aspose::Words::ICellAttrSource, public Aspose::Words::Revisions::ITrackableNode
234 {
235  typedef Cell ThisType;
237  typedef Aspose::Words::ICellAttrSource BaseType1;
238  typedef Aspose::Words::Revisions::ITrackableNode BaseType2;
239 
240  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2> ThisTypeBaseTypesInfo;
241  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
242 
243  friend class Aspose::Words::PageExtractor;
244  friend class Aspose::Words::Themes::ThemeColorRemover;
245  friend class Aspose::Words::Comparing::FormattingComparer;
246  friend class Aspose::Words::Comparing::RowComparer;
247  friend class Aspose::Words::Comparing::TableComparer;
248  friend class Aspose::Words::Themes::ThemeColorUpdater;
249  friend class Aspose::Words::DocumentInserter;
250  friend class Aspose::Words::Formatting::Intern::InternManager;
251  friend class Aspose::Words::Tables::DocRtfGridHandler;
252  friend class Aspose::Words::Tables::TableMerger;
253  friend class Aspose::Words::RW::Markdown::Writer::MarkdownTableWriter;
254  friend class Aspose::Words::RW::Nrx::Reader::NrxCellReaderBase;
255  friend class Aspose::Words::RW::Html::Css::New::DocumentFormatter;
257  friend class Aspose::Words::Drawing::ShapeSizeValidationHelper;
258  friend class Aspose::Words::Fields::Expressions::FieldContext;
259  friend class Aspose::Words::Revisions::RevisionUtil;
260  friend class Aspose::Words::Tables::CellSpan;
261  friend class Aspose::Words::Tables::RowSpan;
262  friend class Aspose::Words::Tables::FixedGridCalculator;
263  friend class Aspose::Words::RW::Doc::Writer::TablePrWriter;
264  friend class Aspose::Words::Fields::Expressions::OneDimensionCellRangeEnumerator;
265  friend class Aspose::Words::Fields::Expressions::UpDownCellRangeEnumerator;
267  friend class Aspose::Words::NodeUtil;
268  friend class Aspose::Words::Layout::AttributeConverter;
269  friend class Aspose::Words::Layout::Core::SpanGenerator;
270  friend class Aspose::Words::Fields::Expressions::CellPosition;
271  friend class Aspose::Words::Fields::NewResultEnumerator;
272  friend class Aspose::Words::TableStyle;
273  friend class Aspose::Words::TableLayout::Extensions;
274  friend class Aspose::Words::Tables::TableFormattingExpander;
275  friend class Aspose::Words::DocumentBuilder;
276  friend class Aspose::Words::Validation::DocumentPostLoader;
277  friend class Aspose::Words::Validation::DocumentValidator;
278  friend class Aspose::Words::TableBuilder;
279  friend class Aspose::Words::Validation::TableValidator;
280  friend class Aspose::Words::RW::Html::Css::New::CssBackgroundColorPropertyDef;
281  friend class Aspose::Words::RW::MarkupLanguage::Writer::MarkupLanguageTableWriterBase;
282  friend class Aspose::Words::RW::MarkupLanguage::Writer::MarkupLanguageDocumentTreeWriter;
283  friend class Aspose::Words::RW::MarkupResolver;
284  friend class Aspose::Words::Lists::ListLabelUtil;
285  friend class Aspose::Words::TableLayout::TableLayouter;
287  friend class Aspose::Words::Tables::Row;
288  friend class Aspose::Words::Tables::Table;
289  friend class Aspose::Words::InlineHelper;
290  friend class Aspose::Words::Paragraph;
291  friend class Aspose::Words::RW::Docx::Writer::DocxDocumentWriterBase;
292  friend class Aspose::Words::RW::Nrx::NrxTableGrid;
293  friend class Aspose::Words::RW::Odt::Reader::OdtTableCellReader;
294  friend class Aspose::Words::RW::Odt::Reader::OdtTableReader;
295  friend class Aspose::Words::RW::Odt::Reader::OdtParagraphReader;
296  friend class Aspose::Words::RW::Celler::CellerTable;
297  friend class Aspose::Words::RW::Doc::Reader::ModelBuilder;
298  friend class Aspose::Words::RW::Html::CssTable;
299  friend class Aspose::Words::RW::Html::Reader::HtmlReader;
300  friend class Aspose::Words::RW::Html::Reader::HtmlTableReader;
301  friend class Aspose::Words::RW::Odt::Writer::OdtTextPropertiesWriter;
302  friend class Aspose::Words::RW::Odt::Writer::OdtCellPropertiesWriter;
303  friend class Aspose::Words::RW::Odt::Writer::OdtTableWriter;
304  friend class Aspose::Words::RW::Odt::Writer::OdtParagraphPropertiesWriter;
305  friend class Aspose::Words::RW::Txt::Writer::TxtTableBuilder;
306  friend class Aspose::Words::Tables::TableGridFromCellWidth;
307  friend class Aspose::Words::RW::Rtf::Reader::RtfModelBuilder;
308  friend class Aspose::Words::RW::Rtf::Writer::RtfTableDefWriter;
309  friend class Aspose::Words::RW::Rtf::Writer::RtfWriter;
310  friend class Aspose::Words::RW::Txt::Writer::TxtWriter;
311  friend class Aspose::Words::RW::Wml::Reader::WmlRunPrReader;
312  friend class Aspose::Words::RW::Wml::Writer::WmlWriter;
313 
314 public:
315  using Aspose::Words::CompositeNode::Clone;
316 
317 public:
318 
363  ASPOSE_WORDS_SHARED_API Aspose::Words::NodeType get_NodeType() const override;
364 
392 
470 
514 
686  ASPOSE_WORDS_SHARED_API bool get_IsFirstCell();
687 
859  ASPOSE_WORDS_SHARED_API bool get_IsLastCell();
860 
933 
961 
1044  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::EditRevision> get_InsertRevision() override;
1045  ASPOSE_WORDS_SHARED_API void set_InsertRevision(System::SharedPtr<Aspose::Words::Revisions::EditRevision> value) override;
1046  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::EditRevision> get_DeleteRevision() override;
1047  ASPOSE_WORDS_SHARED_API void set_DeleteRevision(System::SharedPtr<Aspose::Words::Revisions::EditRevision> value) override;
1048  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::MoveRevision> get_MoveFromRevision() override;
1049  ASPOSE_WORDS_SHARED_API void set_MoveFromRevision(System::SharedPtr<Aspose::Words::Revisions::MoveRevision> value) override;
1050  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::MoveRevision> get_MoveToRevision() override;
1051  ASPOSE_WORDS_SHARED_API void set_MoveToRevision(System::SharedPtr<Aspose::Words::Revisions::MoveRevision> value) override;
1052 
1115 
1295  ASPOSE_WORDS_SHARED_API bool Accept(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1296 
1320  ASPOSE_WORDS_SHARED_API void EnsureMinimum();
1321  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> GetDirectCellAttr(int32_t key) override;
1322  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> FetchCellAttr(int32_t key) override;
1323  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> FetchInheritedCellAttr(int32_t key) override;
1324  ASPOSE_WORDS_SHARED_API void SetCellAttr(int32_t key, System::SharedPtr<System::Object> value) override;
1325  ASPOSE_WORDS_SHARED_API void ClearCellAttrs() override;
1326  ASPOSE_WORDS_SHARED_API void RemoveMoveRevisions() override;
1327 
1328 protected:
1329 
1333  int32_t get_ColumnIndex();
1334  int32_t get_RowIndex();
1336  void set_CellPr(System::SharedPtr<Aspose::Words::Tables::CellPr> value);
1337 
1339 
1340  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Cell, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::DocumentBase> doc, System::SharedPtr<Aspose::Words::Tables::CellPr> cellPr));
1341  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Node> Clone(bool isCloneChildren, System::SharedPtr<Aspose::Words::INodeCloningListener> cloningListener) override;
1342  ASPOSE_WORDS_SHARED_API Aspose::Words::VisitorAction AcceptStart(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1343  ASPOSE_WORDS_SHARED_API Aspose::Words::VisitorAction AcceptEnd(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1344  ASPOSE_WORDS_SHARED_API bool CanInsert(System::SharedPtr<Aspose::Words::Node> newChild) override;
1345  int32_t GetMergedColumnIndex();
1346  System::SharedPtr<System::Object> GetInheritedCellAttr(int32_t key);
1347  System::SharedPtr<Aspose::Words::Tables::CellPr> GetExpandedCellPr(bool expandTableStyle);
1348 
1349  virtual ASPOSE_WORDS_SHARED_API ~Cell();
1350 
1351 private:
1352 
1357 
1358  void ExpandAttr(int32_t key, System::SharedPtr<Aspose::Words::Tables::CellPr> dstCellPr);
1359  ThisType* CppMemberwiseClone() const override { return new ThisType(*this); }
1360 
1361 };
1362 
1363 }
1364 }
1365 }