search/mag_sel search/close
ListLevelCollection.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/collections/list.h>
13 #include <system/collections/ienumerable.h>
14 #include <cstdint>
15 
16 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
17 
18 namespace System { namespace Collections { namespace Generic { template <typename> class IEnumerator; } } }
19 namespace Aspose { namespace Words { namespace Lists { class ListLevel; } } }
20 namespace Aspose { namespace Words { namespace Layout { class ParagraphPrConverter; } } }
21 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { class ListReader; } } } } }
22 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Writer { class ListWriter; } } } } }
23 namespace Aspose { namespace Words { namespace Validation { class DocumentPostLoader; } } }
24 namespace Aspose { namespace Words { namespace Lists { class List; } } }
25 namespace Aspose { namespace Words { namespace Lists { class ListDef; } } }
26 namespace Aspose { namespace Words { namespace Lists { class ListNumberState; } } }
27 namespace Aspose { namespace Words { namespace Lists { class ListCollection; } } }
28 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtParagraphReader; } } } } }
29 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfListLevelHandler; } } } } }
30 namespace Aspose { namespace Words { class DocumentBase; } }
31 namespace Aspose { namespace Words { namespace Lists { enum class ListType; } } }
32 
33 namespace Aspose {
34 
35 namespace Words {
36 
37 namespace Lists {
38 
150 class ASPOSE_WORDS_SHARED_CLASS ListLevelCollection : public System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Words::Lists::ListLevel>>
151 {
154 
155  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
156  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
157 
158  friend class Aspose::Words::Layout::ParagraphPrConverter;
159  friend class Aspose::Words::RW::Doc::Reader::ListReader;
160  friend class Aspose::Words::RW::Doc::Writer::ListWriter;
161  friend class Aspose::Words::Validation::DocumentPostLoader;
162  friend class Aspose::Words::Lists::List;
163  friend class Aspose::Words::Lists::ListDef;
164  friend class Aspose::Words::Lists::ListNumberState;
166  friend class Aspose::Words::RW::Odt::Reader::OdtParagraphReader;
167  friend class Aspose::Words::RW::Rtf::Reader::RtfListLevelHandler;
168 
169 public:
170 
172 
174 
176 
177 public:
178 
239  ASPOSE_WORDS_SHARED_API int32_t get_Count();
240 
305 
417  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Lists::ListLevel> idx_get(int32_t index);
418 
530  ASPOSE_WORDS_SHARED_API void idx_set(int32_t index, System::SharedPtr<Aspose::Words::Lists::ListLevel> value);
531 
532  ASPOSE_WORDS_SHARED_API iterator begin() noexcept;
533 
534  ASPOSE_WORDS_SHARED_API iterator end() noexcept;
535 
536  ASPOSE_WORDS_SHARED_API const_iterator begin() const noexcept;
537 
538  ASPOSE_WORDS_SHARED_API const_iterator end() const noexcept;
539 
540  ASPOSE_WORDS_SHARED_API const_iterator cbegin() const noexcept;
541 
542  ASPOSE_WORDS_SHARED_API const_iterator cend() const noexcept;
543 
544 protected:
545 
547 
548  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ListLevelCollection, CODEPORTING_ARGS());
549 
550  ListLevelCollection(System::SharedPtr<Aspose::Words::DocumentBase> document, Aspose::Words::Lists::ListType listType);
551 
552  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ListLevelCollection, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::DocumentBase> document, Aspose::Words::Lists::ListType listType));
553  void Add(System::SharedPtr<Aspose::Words::Lists::ListLevel> listLevel);
554  void FixUpLevelCount(Aspose::Words::Lists::ListType listType, System::SharedPtr<Aspose::Words::DocumentBase> doc);
555  System::SharedPtr<Aspose::Words::Lists::ListLevel> FetchListLevel(int32_t level);
556  int32_t CorrectLevel(int32_t level);
557  System::SharedPtr<Aspose::Words::Lists::ListLevelCollection> Clone(System::SharedPtr<Aspose::Words::DocumentBase> dstDocument);
558  void Clear();
559 
560  virtual ASPOSE_WORDS_SHARED_API ~ListLevelCollection();
561 
562 private:
563 
564  System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Aspose::Words::Lists::ListLevel>>> mItems;
565 
566  static int32_t GetExpectedLevelCount(Aspose::Words::Lists::ListType listType);
567 
568 };
569 
570 }
571 }
572 }