示例#1
0
    void TextIterator::clearTagColour()
    {
        if (mCurrent == mEnd) return;

        UString::iterator iter = mCurrent;
        UString colour;
        // нам нужен последний цвет
        while (getTagColour(colour, iter))
        {
            // обязательно обновляем итераторы
            iter = mCurrent = erase(mCurrent, iter);
            mEnd = mText.end();
        }
    }
示例#2
0
    // возвращает цвет
    bool TextIterator::getTagColour(UString& _colour) const
    {
        if (mCurrent == mEnd) return false;

        UString::iterator iter = mCurrent;

        // нам нужен последний цвет
        bool ret = false;
        while (getTagColour(_colour, iter))
        {
            ret = true;
        }

        return ret;
    }
	// возвращает цвет
	bool TextIterator::getTagColour(Ogre::UTFString & _colour)
	{
		if (mCurrent == mEnd) return false;

		Ogre::UTFString::iterator iter = mCurrent;

		// нам нужен последний цвет
		bool ret = false;
		while (true) {
			if (!getTagColour(_colour, iter)) break;
			ret = true;
		};

		return ret;
	}
	// возвращает цвет
	Ogre::UTFString TextIterator::getTagColour(bool _clear)
	{
		if (mCurrent == mEnd) return L"";

		Ogre::UTFString::iterator iter = mCurrent;
		Ogre::UTFString colour;
		// нам нужен последний цвет
		while (getTagColour(colour, iter)) {
			if (_clear) {
				// обязательно обновляем итераторы
				iter = mCurrent = erase(mCurrent, iter);
				mEnd = mText.end();
			}
		};
		return colour;
	}