13 TextIterator::TextIterator() :
22 mText(
_text.asUTF32()),
23 mCurrent(mText.begin()),
44 for (UString::utf32string::iterator
iter = mCurrent;
iter != mEnd; ++
iter)
108 if (mCurrent == mEnd)
111 UString::utf32string::iterator
iter = mCurrent;
125 if (mCurrent == mEnd)
128 if (mCurrent == mEnd)
131 const size_t SIZE = 16;
151 insert(mCurrent,
tmpStr.asUTF32());
158 if (mCurrent == mEnd)
161 if (mCurrent == mEnd)
185 for (UString::utf32string::const_iterator
iter = mCurrent;
iter != mEnd; ++
iter)
223 ret.reserve(text.size());
225 UString::utf32string::const_iterator end = text.end();
226 for (UString::utf32string::const_iterator
iter = text.begin();
iter != end; ++
iter)
271 wchar_t buff[16] = L
"#FFFFFF\0";
303 if (mCurrent == mEnd)
313 size_t start = mSave - mText.begin();
314 return UString(mText.substr(start, mCurrent - mText.begin() - start));
321 mCurrent = erase(mSave, mCurrent);
322 mSave = mEnd = mText.end();
330 normaliseNewLine(text);
335 insert(mCurrent, text.
asUTF32());
347 normaliseNewLine(text);
352 insert(mCurrent, text.
asUTF32());
359 wchar_t buff[16] = L
"_\0";
366 const size_t SIZE = 16;
419 UString::utf32string::iterator TextIterator::erase(
420 UString::utf32string::iterator _start,
421 UString::utf32string::iterator _end)
426 size_t start = _start - mText.begin();
431 return mText.erase(_start, _end);
434 void TextIterator::clear()
445 mCurrent = mText.begin();
446 mEnd = mSave = mText.end();
454 if (mPosition >
_max)
457 mSize = mPosition = 0;
458 mCurrent = mText.begin();
459 mEnd = mSave = mText.end();
464 for (UString::utf32string::iterator
iter = mCurrent;
iter != mEnd; ++
iter)
494 mCurrent = erase(
iter, mEnd);
495 mSave = mEnd = mText.end();
519 UString::utf32string::iterator
iter = mText.begin();
524 UString::utf32string::iterator save =
iter;
562 mCurrent = erase(mText.begin(),
iter);
574 if (mCurrent == mEnd)
577 UString::utf32string::iterator
iter = mCurrent;
583 iter = mCurrent = erase(mCurrent,
iter);
610 for (
size_t index = 0; index <
_text.size(); ++index)
616 _text.erase(index, 1);
static UString getOnlyText(const UString &_text)
void clearNewLine(UString &_text)
static UString getTextNewLine()
static UString getTextCharInfo(Char _char)
void cutMaxLength(size_t _max)
bool setTagColour(const Colour &_colour)
UString getFromStart() const
static UString convertTagColour(const Colour &_colour)
static UString toTagsString(const UString &_text)
void cutMaxLengthFromBeginning(size_t _max)
void setText(const UString &_text, bool _multiLine)
size_t getPosition() const
void insertText(const UString &_insert, bool _multiLine)
bool getTagColour(UString &_colour) const
forward iterator for UString
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
iterator insert(iterator i, const code_point &ch)
inserts ch before the code point denoted by i
const utf32string & asUTF32() const
returns the current string in UTF-32 form within a utf32string
std::basic_string< unicode_char > utf32string
string type used for returning UTF-32 formatted data
iterator end()
returns an iterator just past the end of the string
static const size_type npos
the usual constant representing: not found, no limit, etc
iterator begin()
returns an iterator to the first element of the string
std::vector< TextCommandInfo > VectorChangeInfo
constexpr size_t ITEM_NONE