search/mag_sel search/close
List.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 #include <system/icomparable.h>
13 #include <cstdint>
14 
15 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
16 
17 namespace Aspose { namespace Words { namespace Lists { class ListNumberOverridesState; } } }
18 namespace Aspose { namespace Words { namespace Comparing { class ListComparer; } } }
19 namespace Aspose { namespace Words { namespace Comparing { class StylesheetComparer; } } }
20 namespace Aspose { namespace Words { namespace RW { namespace Markdown { namespace Writer { class MarkdownParagraphWriter; } } } } }
21 namespace Aspose { namespace Words { namespace Fields { class FieldNumListFactory; } } }
22 namespace Aspose { namespace Words { namespace Validation { class DocumentCleaner; } } }
23 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { namespace Word60 { class Word60ListHelper; } } } } } }
24 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { class ListReader; } } } } }
25 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Writer { class ListWriter; } } } } }
26 namespace Aspose { namespace Words { namespace Lists { class ListNumberGenerator; } } }
27 namespace Aspose { namespace Words { namespace Validation { class ListValidator; } } }
28 namespace Aspose { namespace Words { class Style; } }
29 namespace Aspose { namespace Words { namespace Validation { class RunPrCollectorBase; } } }
30 namespace Aspose { namespace Words { namespace Fields { class FieldNumListLabelUpdater; } } }
31 namespace Aspose { namespace Words { class NodeImporter; } }
32 namespace Aspose { namespace Words { namespace Lists { class ListDef; } } }
33 namespace Aspose { namespace Words { namespace Lists { class ListNumberState; } } }
34 namespace Aspose { namespace Words { namespace Lists { class ListCollection; } } }
35 namespace Aspose { namespace Words { class StyleCollection; } }
36 namespace Aspose { namespace Words { namespace Lists { class ListFormat; } } }
37 namespace Aspose { namespace Words { class Paragraph; } }
38 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxDocumentReaderBase; } } } } }
39 namespace Aspose { namespace Words { namespace RW { namespace Nrx { namespace Reader { class NrxDocumentReaderBase; } } } } }
40 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtOfficeStylesReader; } } } } }
41 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtListStyleReader; } } } } }
42 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtParagraphReader; } } } } }
43 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxNumberingReader; } } } } }
44 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Writer { class DocxNumberingWriter; } } } } }
45 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtAutoStylesWriter; } } } } }
46 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtStylesWriter; } } } } }
47 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfLegacyListHandler; } } } } }
48 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfListOverrideLevelHandler; } } } } }
49 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfListOverrideTableHandler; } } } } }
50 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfListTableWriter; } } } } }
51 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Reader { class WmlListsReader; } } } } }
52 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Writer { class WmlWriter; } } } } }
53 namespace Aspose { namespace Words { namespace Lists { class ListLevelOverrideCollection; } } }
54 namespace Aspose { namespace Words { class DocumentBase; } }
55 namespace Aspose { namespace Words { namespace Lists { class ListLevelCollection; } } }
56 namespace System { class Object; }
57 namespace Aspose { namespace Collections { namespace Generic { template <typename> class HashSetGeneric; } } }
58 namespace Aspose { class Pair; }
59 namespace Aspose { namespace Words { namespace Lists { class ListLevelOverride; } } }
60 namespace Aspose { namespace Words { namespace Lists { class ListLevel; } } }
61 
62 namespace Aspose {
63 
64 namespace Words {
65 
66 namespace Lists {
67 
226 class ASPOSE_WORDS_SHARED_CLASS List : public System::IComparable<System::SharedPtr<Aspose::Words::Lists::List>>
227 {
228  typedef List ThisType;
230 
231  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
232  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
233 
234  friend class Aspose::Words::Lists::ListNumberOverridesState;
235  friend class Aspose::Words::Comparing::ListComparer;
236  friend class Aspose::Words::Comparing::StylesheetComparer;
237  friend class Aspose::Words::RW::Markdown::Writer::MarkdownParagraphWriter;
238  friend class Aspose::Words::Fields::FieldNumListFactory;
239  friend class Aspose::Words::Validation::DocumentCleaner;
240  friend class Aspose::Words::RW::Doc::Reader::Word60::Word60ListHelper;
241  friend class Aspose::Words::RW::Doc::Reader::ListReader;
242  friend class Aspose::Words::RW::Doc::Writer::ListWriter;
243  friend class Aspose::Words::Lists::ListNumberGenerator;
244  friend class Aspose::Words::Validation::ListValidator;
245  friend class Aspose::Words::Style;
246  friend class Aspose::Words::Validation::RunPrCollectorBase;
247  friend class Aspose::Words::Fields::FieldNumListLabelUpdater;
248  friend class Aspose::Words::NodeImporter;
249  friend class Aspose::Words::Lists::ListDef;
250  friend class Aspose::Words::Lists::ListNumberState;
252  friend class Aspose::Words::StyleCollection;
254  friend class Aspose::Words::Paragraph;
255  friend class Aspose::Words::RW::Docx::Reader::DocxDocumentReaderBase;
256  friend class Aspose::Words::RW::Nrx::Reader::NrxDocumentReaderBase;
257  friend class Aspose::Words::RW::Odt::Reader::OdtOfficeStylesReader;
258  friend class Aspose::Words::RW::Odt::Reader::OdtListStyleReader;
259  friend class Aspose::Words::RW::Odt::Reader::OdtParagraphReader;
260  friend class Aspose::Words::RW::Docx::Reader::DocxNumberingReader;
261  friend class Aspose::Words::RW::Docx::Writer::DocxNumberingWriter;
262  friend class Aspose::Words::RW::Odt::Writer::OdtAutoStylesWriter;
263  friend class Aspose::Words::RW::Odt::Writer::OdtStylesWriter;
264  friend class Aspose::Words::RW::Rtf::Reader::RtfLegacyListHandler;
265  friend class Aspose::Words::RW::Rtf::Reader::RtfListOverrideLevelHandler;
266  friend class Aspose::Words::RW::Rtf::Reader::RtfListOverrideTableHandler;
267  friend class Aspose::Words::RW::Rtf::Writer::RtfListTableWriter;
268  friend class Aspose::Words::RW::Wml::Reader::WmlListsReader;
269  friend class Aspose::Words::RW::Wml::Writer::WmlWriter;
270 
271 public:
272 
327  ASPOSE_WORDS_SHARED_API int32_t get_ListId() const;
328 
353 
418  ASPOSE_WORDS_SHARED_API bool get_IsMultiLevel();
419 
479 
518  ASPOSE_WORDS_SHARED_API bool get_IsRestartAtEachSection();
519 
521  ASPOSE_WORDS_SHARED_API void set_IsRestartAtEachSection(bool value);
522 
593  ASPOSE_WORDS_SHARED_API bool get_IsListStyleDefinition();
594 
659  ASPOSE_WORDS_SHARED_API bool get_IsListStyleReference();
660 
728 
730  ASPOSE_WORDS_SHARED_API bool Equals(System::SharedPtr<Aspose::Words::Lists::List> list);
731  ASPOSE_WORDS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
732 
734  ASPOSE_WORDS_SHARED_API int32_t GetHashCode() const override;
735 
737  ASPOSE_WORDS_SHARED_API int32_t CompareTo(System::SharedPtr<Aspose::Words::Lists::List> other) override;
738 
739 protected:
740 
743  int32_t get_ListDefId() const;
744  void set_ListDefId(int32_t value);
745 
746  List(System::SharedPtr<Aspose::Words::DocumentBase> document, int32_t listId);
747 
748  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(List, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::DocumentBase> document, int32_t listId));
749 
751 
752  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(List, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::Lists::ListDef> listDef, int32_t listId));
754  bool EqualsCore(System::SharedPtr<Aspose::Words::Lists::List> list, System::SharedPtr<Aspose::Collections::Generic::HashSetGeneric<System::SharedPtr<Aspose::Pair>>> alreadyComparedLinkedStyles);
755  void SetListId(int32_t listId);
756  System::SharedPtr<Aspose::Words::Lists::ListLevelOverride> GetFormattingOverride(int32_t level);
757  bool IsStartAtOverridden(int32_t level);
758  int32_t GetStartAtOverrideAware(int32_t level);
759  System::SharedPtr<Aspose::Words::Lists::ListLevel> GetListLevelOverrideAware(int32_t level);
761 
762  virtual ASPOSE_WORDS_SHARED_API ~List();
763 
764 private:
765 
767  int32_t mListId;
768  int32_t mListDefId;
771 
772  System::SharedPtr<Aspose::Words::Lists::ListLevelOverride> GetStartAtOverride(int32_t level);
773 
774 };
775 
776 }
777 }
778 }