search/mag_sel search/close
ListLabel.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/enum_helpers.h>
12 #include <system/array.h>
13 #include <cstdint>
14 
15 #include <Aspose.Words.Cpp/IRunAttrSource.h>
16 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
17 
18 namespace Aspose { namespace Words { class PageExtractor; } }
19 namespace Aspose { namespace Words { namespace Layout { namespace Core { class SpanListRevisionsHelper; } } } }
20 namespace Aspose { namespace Words { namespace Fonts { class EmbeddedFontCollector; } } }
21 namespace Aspose { namespace Words { namespace Fields { class ChapterTitleParagraphFinder; } } }
22 namespace Aspose { namespace Words { namespace RW { namespace Html { class HtmlListWrapper; } } } }
23 namespace Aspose { namespace Words { namespace Fields { class FieldRef; } } }
24 namespace Aspose { namespace Words { namespace Fields { class ParagraphTocEntry; } } }
25 namespace Aspose { namespace Words { namespace Layout { namespace Core { class SpanList; } } } }
26 namespace Aspose { namespace Words { namespace Layout { class AttributeConverter; } } }
27 namespace Aspose { namespace Words { namespace Fields { class FieldFormat; } } }
28 namespace Aspose { namespace Words { namespace Validation { class LegacyListFormattingConverter; } } }
29 namespace Aspose { namespace Words { class WordCounter; } }
30 namespace Aspose { namespace Words { namespace Lists { class ListLabelUtil; } } }
31 namespace Aspose { namespace Words { class Paragraph; } }
32 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlFontResourcesCollector; } } } } }
33 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlListWriter; } } } } }
34 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfWriter; } } } } }
35 namespace Aspose { namespace Words { namespace RW { namespace Txt { namespace Writer { class TxtWriter; } } } } }
36 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Writer { class WmlWriter; } } } } }
37 namespace Aspose { namespace Words { namespace RW { namespace Xaml { namespace Writer { class XamlListWriter; } } } } }
38 namespace Aspose { namespace Words { namespace Lists { class ListNumberState; } } }
39 namespace Aspose { namespace Words { class Font; } }
40 namespace Aspose { namespace Words { namespace Lists { enum class ListTrailingCharacter; } } }
41 namespace Aspose { namespace Words { namespace Lists { class ListLevel; } } }
42 namespace Aspose { namespace Words { namespace Lists { class ListFormat; } } }
43 namespace Aspose { namespace Words { enum class RevisionsView; } }
44 namespace Aspose { namespace Words { class RunPr; } }
45 namespace Aspose { namespace Words { enum class RunPrExpandFlags; } }
46 
47 namespace Aspose {
48 
49 namespace Words {
50 
51 namespace Lists {
52 
86 class ASPOSE_WORDS_SHARED_CLASS ListLabel : public Aspose::Words::IRunAttrSource
87 {
88  typedef ListLabel ThisType;
89  typedef Aspose::Words::IRunAttrSource BaseType;
90 
91  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
92  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
93 
94  friend class Aspose::Words::PageExtractor;
95  friend class Aspose::Words::Layout::Core::SpanListRevisionsHelper;
96  friend class Aspose::Words::Layout::Core::SpanListRevisionsHelper;
97  friend class Aspose::Words::Fonts::EmbeddedFontCollector;
98  friend class Aspose::Words::Fields::ChapterTitleParagraphFinder;
99  friend class Aspose::Words::RW::Html::HtmlListWrapper;
100  friend class Aspose::Words::Fields::FieldRef;
101  friend class Aspose::Words::Fields::ParagraphTocEntry;
102  friend class Aspose::Words::Layout::Core::SpanList;
103  friend class Aspose::Words::Layout::AttributeConverter;
105  friend class Aspose::Words::Validation::LegacyListFormattingConverter;
106  friend class Aspose::Words::WordCounter;
107  friend class Aspose::Words::Lists::ListLabelUtil;
108  friend class Aspose::Words::Paragraph;
109  friend class Aspose::Words::RW::Html::Writer::HtmlFontResourcesCollector;
110  friend class Aspose::Words::RW::Html::Writer::HtmlListWriter;
111  friend class Aspose::Words::RW::Rtf::Writer::RtfWriter;
112  friend class Aspose::Words::RW::Txt::Writer::TxtWriter;
113  friend class Aspose::Words::RW::Wml::Writer::WmlWriter;
114  friend class Aspose::Words::RW::Xaml::Writer::XamlListWriter;
115 
116 public:
117 
120 
154  ASPOSE_WORDS_SHARED_API System::String get_LabelString();
155 
189  ASPOSE_WORDS_SHARED_API int32_t get_LabelValue();
190 
191  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> GetDirectRunAttr(int32_t key) override;
192  ASPOSE_WORDS_SHARED_API System::SharedPtr<System::Object> FetchInheritedRunAttr(int32_t key) override;
193  ASPOSE_WORDS_SHARED_API void SetRunAttr(int32_t key, System::SharedPtr<System::Object> value) override;
194  ASPOSE_WORDS_SHARED_API void RemoveRunAttr(int32_t key) override;
195  ASPOSE_WORDS_SHARED_API void ClearRunAttrs() override;
196 
197 protected:
198 
201  bool get_HasChars();
202  bool get_HasCharsFinal();
203  System::ArrayPtr<System::String> get_LabelFragments() const;
204  System::ArrayPtr<System::String> get_LabelFragmentsOriginal() const;
205  System::ArrayPtr<System::String> get_LabelFragmentsFinal() const;
206  System::ArrayPtr<System::String> get_LabelArabicNumbers() const;
207  System::ArrayPtr<System::String> get_LabelArabicNumbersOriginal() const;
208  System::ArrayPtr<System::String> get_LabelArabicNumbersFinal() const;
209  int32_t get_LabelValueFinal();
210  System::String get_LabelStringOriginal();
211  System::String get_LabelStringFinal();
212  Aspose::Words::Lists::ListTrailingCharacter get_TrailingCharacter();
213  Aspose::Words::Lists::ListTrailingCharacter get_TrailingCharacterFinal();
215 
217 
218  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ListLabel, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::Paragraph> para));
220  System::SharedPtr<Aspose::Words::RunPr> GetExpandedRunPr(bool expandListLevelFormatting, Aspose::Words::RunPrExpandFlags flags);
221 
222  virtual ASPOSE_WORDS_SHARED_API ~ListLabel();
223 
224 private:
225 
229  System::ArrayPtr<System::String> mLabelFragmentsOriginal;
230  System::ArrayPtr<System::String> mLabelFragmentsFinal;
231  System::ArrayPtr<System::String> mLabelArabicNumbersOriginal;
232  System::ArrayPtr<System::String> mLabelArabicNumbersFinal;
235 
236  static void ThrowCannotChangeException();
237  System::SharedPtr<System::Object> ProcessListLabelAttributeBoolExAware(System::SharedPtr<System::Object> value, int32_t key);
238 
239 };
240 
241 }
242 }
243 }