search/mag_sel search/close
FieldCollection.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/ienumerator.h>
13 #include <system/collections/ienumerable.h>
14 #include <cstdint>
15 
16 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
17 
18 namespace Aspose { namespace Words { namespace Fields { class Field; } } }
19 namespace Aspose { namespace Words { namespace RW { namespace Chm { namespace Reader { class ChmReader; } } } } }
20 namespace Aspose { namespace Words { class Range; } }
21 namespace Aspose { namespace Words { class NodeCollection; } }
22 namespace Aspose { namespace Words { class Node; } }
23 namespace Aspose { namespace Words { namespace Fields { class FieldStart; } } }
24 
25 namespace Aspose {
26 
27 namespace Words {
28 
29 namespace Fields {
30 
180 class ASPOSE_WORDS_SHARED_CLASS FieldCollection : public System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Words::Fields::Field>>
181 {
182  typedef FieldCollection ThisType;
184 
185  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
186  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
187 
188  friend class Aspose::Words::RW::Chm::Reader::ChmReader;
189  friend class Aspose::Words::Range;
190 
191 private:
192 
193  class FieldEnumerator final : public System::Collections::Generic::IEnumerator<System::SharedPtr<Aspose::Words::Fields::Field>>
194  {
195  typedef FieldEnumerator ThisType;
197 
198  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
199  RTTI_INFO_DECL();
200 
201  public:
202 
203  System::SharedPtr<Aspose::Words::Fields::Field> get_Current() const override;
204 
205  FieldEnumerator(System::SharedPtr<Aspose::Words::NodeCollection> fieldStarts);
206 
207  void Dispose() override;
208  bool MoveNext() override;
209  void Reset() override;
210 
211  private:
212 
214 
215  };
216 
217 public:
218 
360  ASPOSE_WORDS_SHARED_API int32_t get_Count();
361 
412  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Fields::Field> idx_get(int32_t index);
413 
455  ASPOSE_WORDS_SHARED_API void Remove(System::SharedPtr<Aspose::Words::Fields::Field> field);
456 
498  ASPOSE_WORDS_SHARED_API void RemoveAt(int32_t index);
499 
539  ASPOSE_WORDS_SHARED_API void Clear();
540 
647 
648 protected:
649 
651 
652  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(FieldCollection, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::Node> parent));
653 
654  virtual ASPOSE_WORDS_SHARED_API ~FieldCollection();
655 
656 private:
657 
659 
660  static void Remove(System::SharedPtr<Aspose::Words::Fields::FieldStart> fieldStart);
661 
662 };
663 
664 }
665 }
666 }