X-Git-Url: http://git.tdb.fi/?p=libs%2Fgltk.git;a=blobdiff_plain;f=source%2Fwidget.cpp;h=7d608f2ce8d32980505f3fde37e8df91a3bb35de;hp=2eade3913f4d9c9e4530675657873ee080a2d265;hb=c435423919a20a87d100e1ee4cd1fc6ce223040c;hpb=8f6f543758fb1b2b17ae2db519198d420eb9982d diff --git a/source/widget.cpp b/source/widget.cpp index 2eade39..7d608f2 100644 --- a/source/widget.cpp +++ b/source/widget.cpp @@ -34,17 +34,20 @@ void Widget::set_position(int x, int y) { geom.x=x; geom.y=y; + on_geometry_change(); } void Widget::set_size(unsigned w, unsigned h) { geom.w=w; geom.h=h; + on_geometry_change(); } void Widget::set_geometry(const Geometry &g) { geom=g; + on_geometry_change(); } void Widget::set_style(const string &s) @@ -96,10 +99,11 @@ void Widget::render_text(const Part &part, const string &text) const Geometry rgeom; rgeom.w=static_cast(font->get_string_width(text)*font_size); rgeom.h=static_cast((font->get_ascent()-font->get_descent())*font_size); + rgeom.y=static_cast(-font->get_descent()*font_size); part.get_alignment().apply(rgeom, geom, part.get_margin()); GL::push_matrix(); - GL::translate(rgeom.x, rgeom.y-font->get_descent()*font_size, 0); + GL::translate(rgeom.x, rgeom.y, 0); GL::scale_uniform(font_size); const GL::Color &color=style->get_font_color(); @@ -119,6 +123,7 @@ void Widget::update_style() sname+=style_name; } style=res.get