search/mag_sel search/close
Comment.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/string.h>
12 #include <system/date_time.h>
13 #include <cstdint>
14 
15 #include <Aspose.Words.Cpp/Model/Text/INodeWithCommentId.h>
16 #include <Aspose.Words.Cpp/InlineStory.h>
17 #include <Aspose.Words.Cpp/StoryType.h>
18 #include <Aspose.Words.Cpp/Revisions/IMoveTrackableNode.h>
19 #include <Aspose.Words.Cpp/NodeType.h>
20 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
21 
22 namespace Aspose { namespace Words { namespace ApsBuilder { class CommentAnnotationBuilder; } } }
23 namespace Aspose { namespace Words { class CommentCollection; } }
24 namespace Aspose { namespace Words { class EditableRangeEnd; } }
25 namespace Aspose { namespace Words { class EditableRangeStart; } }
26 namespace Aspose { namespace Words { class MoveRangeEnd; } }
27 namespace Aspose { namespace Words { class MoveRangeStart; } }
28 namespace Aspose { namespace Words { namespace Layout { class DocumentSpanConverter; } } }
29 namespace Aspose { namespace Words { class CommentRangeEnd; } }
30 namespace Aspose { namespace Words { class CommentRangeStart; } }
31 namespace Aspose { namespace Words { namespace Validation { class AnnotationValidator; } } }
32 namespace Aspose { namespace Words { namespace Validation { class DocumentValidator; } } }
33 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlCommentWriter; } } } } }
34 namespace Aspose { namespace Words { class NodeImporter; } }
35 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxDocumentReaderBase; } } } } }
36 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtParagraphReader; } } } } }
37 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxCommentsReader; } } } } }
38 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Writer { class DocxCommentsWriter; } } } } }
39 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Comments { class FileComments; } } } } }
40 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { class ModelBuilder; } } } } }
41 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { class Parser; } } } } }
42 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Reader { class HtmlReader; } } } } }
43 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfAnnotationHandler; } } } } }
44 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfWriter; } } } } }
45 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Reader { class WmlAnnotationReader; } } } } }
46 namespace Aspose { namespace Words { namespace Revisions { class MoveRevision; } } }
47 namespace Aspose { namespace Words { class DocumentBase; } }
48 namespace Aspose { namespace Words { class RunPr; } }
49 namespace Aspose { namespace Words { class DocumentVisitor; } }
50 namespace Aspose { namespace Words { enum class VisitorAction; } }
51 
52 namespace Aspose {
53 
54 namespace Words {
55 
121 class ASPOSE_WORDS_SHARED_CLASS Comment final : public Aspose::Words::InlineStory, public Aspose::Words::INodeWithAnnotationId, public Aspose::Words::Revisions::IMoveTrackableNode
122 {
123  typedef Comment ThisType;
125  typedef Aspose::Words::INodeWithAnnotationId BaseType1;
126  typedef Aspose::Words::Revisions::IMoveTrackableNode BaseType2;
127 
128  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2> ThisTypeBaseTypesInfo;
129  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
130 
131  friend class Aspose::Words::ApsBuilder::CommentAnnotationBuilder;
133  friend class Aspose::Words::EditableRangeEnd;
135  friend class Aspose::Words::MoveRangeEnd;
136  friend class Aspose::Words::MoveRangeStart;
137  friend class Aspose::Words::Layout::DocumentSpanConverter;
138  friend class Aspose::Words::CommentRangeEnd;
140  friend class Aspose::Words::Validation::AnnotationValidator;
141  friend class Aspose::Words::Validation::DocumentValidator;
142  friend class Aspose::Words::RW::Html::Writer::HtmlCommentWriter;
143  friend class Aspose::Words::NodeImporter;
144  friend class Aspose::Words::RW::Docx::Reader::DocxDocumentReaderBase;
145  friend class Aspose::Words::RW::Odt::Reader::OdtParagraphReader;
146  friend class Aspose::Words::RW::Docx::Reader::DocxCommentsReader;
147  friend class Aspose::Words::RW::Docx::Writer::DocxCommentsWriter;
148  friend class Aspose::Words::RW::Doc::Comments::FileComments;
149  friend class Aspose::Words::RW::Doc::Reader::ModelBuilder;
150  friend class Aspose::Words::RW::Doc::Reader::Parser;
151  friend class Aspose::Words::RW::Html::Reader::HtmlReader;
152  friend class Aspose::Words::RW::Rtf::Reader::RtfAnnotationHandler;
153  friend class Aspose::Words::RW::Rtf::Writer::RtfWriter;
154  friend class Aspose::Words::RW::Wml::Reader::WmlAnnotationReader;
155 
156 public:
157 
202  ASPOSE_WORDS_SHARED_API Aspose::Words::NodeType get_NodeType() const override;
203 
261  ASPOSE_WORDS_SHARED_API Aspose::Words::StoryType get_StoryType() override;
262 
441  ASPOSE_WORDS_SHARED_API int32_t get_Id() const;
442  ASPOSE_WORDS_SHARED_API int32_t get_IdInternal() override;
443  ASPOSE_WORDS_SHARED_API void set_IdInternal(int32_t value) override;
444  ASPOSE_WORDS_SHARED_API int32_t get_ParentIdInternal() override;
445  ASPOSE_WORDS_SHARED_API void set_ParentIdInternal(int32_t value) override;
446 
619  ASPOSE_WORDS_SHARED_API System::String get_Initial() const;
620 
622  ASPOSE_WORDS_SHARED_API void set_Initial(System::String value);
623 
794  ASPOSE_WORDS_SHARED_API System::DateTime get_DateTime() const;
795 
797  ASPOSE_WORDS_SHARED_API void set_DateTime(System::DateTime value);
798 
832  ASPOSE_WORDS_SHARED_API System::String get_Author() const;
833 
835  ASPOSE_WORDS_SHARED_API void set_Author(System::String value);
836 
867 
898 
1095  ASPOSE_WORDS_SHARED_API bool get_Done() const;
1096 
1098  ASPOSE_WORDS_SHARED_API void set_Done(bool value);
1099  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::MoveRevision> get_MoveFromRevision() override;
1100  ASPOSE_WORDS_SHARED_API void set_MoveFromRevision(System::SharedPtr<Aspose::Words::Revisions::MoveRevision> value) override;
1101  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Revisions::MoveRevision> get_MoveToRevision() override;
1102  ASPOSE_WORDS_SHARED_API void set_MoveToRevision(System::SharedPtr<Aspose::Words::Revisions::MoveRevision> value) override;
1103 
1284 
1311 
1488  ASPOSE_WORDS_SHARED_API bool Accept(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1489 
1529 
1561  ASPOSE_WORDS_SHARED_API void RemoveReply(System::SharedPtr<Aspose::Words::Comment> reply);
1562 
1592  ASPOSE_WORDS_SHARED_API void RemoveAllReplies();
1593 
1633  ASPOSE_WORDS_SHARED_API void SetText(System::String text);
1634  ASPOSE_WORDS_SHARED_API void RemoveMoveRevisions() override;
1635 
1636 protected:
1637 
1638  System::DateTime get_UtcDateTime() const;
1639  void set_UtcDateTime(System::DateTime value);
1640  int32_t get_ParentId() const;
1641  void set_ParentId(int32_t value);
1642  int32_t get_DurableId() const;
1643  void set_DurableId(int32_t value);
1644  bool get_IsIntelligentPlaceholder() const;
1645  void set_IsIntelligentPlaceholder(bool value);
1646 
1647  static const int32_t NoParent;
1648 
1650 
1651  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Comment, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::DocumentBase> doc, System::SharedPtr<Aspose::Words::RunPr> runPr));
1652  ASPOSE_WORDS_SHARED_API Aspose::Words::VisitorAction AcceptStart(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1653  ASPOSE_WORDS_SHARED_API Aspose::Words::VisitorAction AcceptEnd(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor) override;
1654  System::String GetCommentText();
1655 
1656  virtual ASPOSE_WORDS_SHARED_API ~Comment();
1657 
1658 private:
1659 
1660  int32_t pr_DurableId;
1661  bool pr_IsIntelligentPlaceholder;
1662  bool mDone;
1663  int32_t mId;
1664  int32_t mParentId;
1665  System::String mInitial;
1666  System::String mAuthor;
1667  System::DateTime mDateTime;
1668  System::DateTime mUtcDateTime;
1670 
1671  void InsertReplyRangeStartNode(System::SharedPtr<Aspose::Words::CommentRangeStart> parentRangeStart, System::SharedPtr<Aspose::Words::CommentRangeStart> insertingRangeStart);
1672  void InsertReplyRangeEndNode(System::SharedPtr<Aspose::Words::CommentRangeEnd> parentRangeEnd, System::SharedPtr<Aspose::Words::CommentRangeEnd> insertingRangeEnd);
1673  ThisType* CppMemberwiseClone() const override { return new ThisType(*this); }
1674 
1675 };
1676 
1677 }
1678 }