X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftext.cpp;h=31db228071943fc55f0f3942b16a32a50dcb3c90;hb=6081ed9020ad22214a8e5b3829092f97b12d7c71;hp=d48c33f0a3ba1f7ca8350ff2a908c3d76204082c;hpb=a87d05583cb7dffaf0e0f5eb9f9b2fc0bcf656e1;p=libs%2Fgltk.git diff --git a/source/text.cpp b/source/text.cpp index d48c33f..31db228 100644 --- a/source/text.cpp +++ b/source/text.cpp @@ -8,16 +8,25 @@ using namespace std; namespace Msp { namespace GLtk { -Text::Text(const Style *const &s): - style(s) +Text::Text(): + style(0) { } -Text::Text(const Style *const &s, const string &t): - style(s) +Text::Text(const Style &s, const string &t): + style(&s) { set(t); } +void Text::set_style(const Style *s) +{ + style = s; + + float font_size=style->get_font()->get_default_size(); + for(vector::iterator i=lines.begin(); i!=lines.end(); ++i) + i->width=static_cast(style->get_font()->get_string_width(text.substr(i->start, i->length))*font_size); +} + unsigned Text::get_width() const { unsigned width=0; @@ -77,13 +86,6 @@ void Text::insert(unsigned pos, const string &s) } } -void Text::update_style() -{ - float font_size=style->get_font()->get_default_size(); - for(vector::iterator i=lines.begin(); i!=lines.end(); ++i) - i->width=static_cast(style->get_font()->get_string_width(text.substr(i->start, i->length))*font_size); -} - void Text::render(const Part &part, const Geometry &geom) const { if(lines.empty())