MyGUI: MyGUI_TextIterator.h Source File

MyGUI 3.2.2

MyGUI_TextIterator.h
Go to the documentation of this file.
1 /*
2 * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3 * Distributed under the MIT License
4 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5 */
6
7 #ifndef MYGUI_TEXT_ITERATOR_H_
8 #define MYGUI_TEXT_ITERATOR_H_
9
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_Colour.h"
12 #include "MyGUI_TextChangeHistory.h"
13 #include "MyGUI_IFont.h"
14
15 namespace MyGUI
16 {
17
18 class MYGUI_EXPORT TextIterator
19 {
20 private:
21 TextIterator();
22
23 public:
24 TextIterator(const UString& _text, VectorChangeInfo* _history = nullptr);
25
26 bool moveNext();
27
28 // возвращает цвет
29 bool getTagColour(UString& _colour) const;
30
31 // удаляет цвет
32 void clearTagColour();
33
34 bool setTagColour(const Colour& _colour);
35
36 bool setTagColour(UString _colour);
37
38 // сохраняет текущий итератор
39 bool saveStartPoint();
40
41 // возвращает строку от сохраненного итератора до текущего
42 UString getFromStart();
43
44 // удаляет от запомненной точки до текущей
45 bool eraseFromStart();
46
47 // возвращает текущую псевдо позицию
48 size_t getPosition() const;
49
50 const UString& getText() const;
51
52 void insertText(const UString& _insert, bool _multiLine);
53
54 void clearNewLine(UString& _text);
55
56 //очищает весь текст
57 void clearText();
58
59 // возвращает размер строки
60 size_t getSize() const;
61
62 void setText(const UString& _text, bool _multiLine);
63
64 void cutMaxLength(size_t _max);
65
66 void cutMaxLengthFromBeginning(size_t _max);
67
68 // возвращает текст без тегов
69 static UString getOnlyText(const UString& _text);
70
71 static UString getTextNewLine();
72
73 static UString getTextCharInfo(Char _char);
74
75 // просто конвертируем цвет в строку
76 static UString convertTagColour(const Colour& _colour);
77
78 static UString toTagsString(const UString& _text);
79
80 private:
81 // возвращает цвет
82 bool getTagColour(UString& _colour, UString::iterator& _iter) const;
83
84 void insert(UString::iterator& _start, UString& _insert);
85
86 UString::iterator erase(UString::iterator _start, UString::iterator _end);
87
88 void clear();
89
90 void normaliseNewLine(UString& _colour);
91
92 private:
93 UString mText;
94 UString::iterator mCurrent, mEnd, mSave;
95
96 // позиция и размер
97 size_t mPosition;
98 mutable size_t mSize;
99 bool mFirst;
100
101 VectorChangeInfo* mHistory;
102 };
103
104 } // namespace MyGUI
105
106 #endif // MYGUI_TEXT_ITERATOR_H_
MyGUI::VectorChangeInfo
std::vector< TextCommandInfo > VectorChangeInfo
Definition: MyGUI_TextChangeHistory.h:60
MyGUI_IFont.h
MyGUI::UString
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
Definition: MyGUI_UString.h:168
MyGUI::UString::_fwd_iterator
forward iterator for UString
Definition: MyGUI_UString.h:243
MyGUI_Prerequest.h
MyGUI_TextChangeHistory.h
MyGUI::Colour
Definition: MyGUI_Colour.h:16
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition: MyGUI_Platform.h:103
MyGUI::Char
unsigned int Char
Definition: MyGUI_Types.h:51
MyGUI::TextIterator
Definition: MyGUI_TextIterator.h:18
MyGUI_Colour.h
MyGUI
Definition: MyGUI_ActionController.h:14