X-Git-Url: http://git.tdb.fi/?p=libs%2Fgltk.git;a=blobdiff_plain;f=source%2Ftext.cpp;fp=source%2Ftext.cpp;h=bffb6e6a86cc0b33f6b35285d6a22338cfb7c8ae;hp=bd358032c65ff22d6f1cee3d83af64f5570e6909;hb=b4a3d651f57c46507aaa99a71a14fea15f0e430d;hpb=70e7a223a069874cda84673a4ca541aa44b12bf2 diff --git a/source/text.cpp b/source/text.cpp index bd35803..bffb6e6 100644 --- a/source/text.cpp +++ b/source/text.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -48,16 +49,16 @@ void Text::set_style(const Style *s) { const GL::Font &font = style->get_font(); float font_size = style->get_font_size(); - for(vector::iterator i=lines.begin(); i!=lines.end(); ++i) - i->width = static_cast(font.get_string_width(text.substr(i->start, i->bytes))*font_size); + for(Line &l: lines) + l.width = static_cast(font.get_string_width(text.substr(l.start, l.bytes))*font_size); } } unsigned Text::get_width() const { unsigned width = 0; - for(vector::const_iterator i=lines.begin(); i!=lines.end(); ++i) - width = max(width, i->width); + for(const Line &l: lines) + width = max(width, l.width); return width; } @@ -92,8 +93,7 @@ void Text::erase(unsigned pos, unsigned len) check_alignment(pos+len); text.erase(pos, len); - vector::iterator i; - for(i=lines.begin(); (i!=lines.end() && i->start+i->bytes=pos; }); if(pos+len>i->start+i->bytes) find_lines(); @@ -116,8 +116,7 @@ void Text::insert(unsigned pos, const string &s) find_lines(); else { - vector::iterator i; - for(i=lines.begin(); (i!=lines.end() && i->start+i->bytes=pos; }); i->bytes += s.size(); i->length = count_characters(i->start, i->bytes); @@ -158,7 +157,7 @@ unsigned Text::move_offset(unsigned offs, int change) const return offs; StringCodec::Utf8::Decoder dec(StringCodec::IGNORE_ERRORS); - string::const_iterator i = text.begin()+offs; + auto i = text.begin()+offs; if(change>0) { for(; change>0; --change) @@ -169,7 +168,7 @@ unsigned Text::move_offset(unsigned offs, int change) const while(change<0 && i!=text.begin()) { --i; - string::const_iterator j = i; + auto j = i; if(dec.decode_char(text, j)!=-1) ++change; } @@ -211,7 +210,7 @@ unsigned Text::coords_to_offset(unsigned row, unsigned col) const else { StringCodec::Utf8::Decoder dec; - string::const_iterator i = text.begin()+line.start; + auto i = text.begin()+line.start; for(col=min(col, line.length); col; --col) dec.decode_char(text, i); return i-text.begin(); @@ -291,8 +290,8 @@ void Text::find_lines() unsigned Text::count_characters(unsigned start, unsigned bytes) const { StringCodec::Utf8::Decoder dec; - string::const_iterator i = text.begin()+start; - string::const_iterator end = i+bytes; + auto i = text.begin()+start; + auto end = i+bytes; unsigned count = 0; for(; i