X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdropdown.cpp;h=41e42fa72fa4b45b399ede99167d3a45d0bbe869;hb=fdc7fecc65f5f517d66abe3546a949a46836c4a6;hp=47496f4bc385121d7c5c2862cec06947427cb799;hpb=2accd84fb2f8cc96efea8b3f27e381c2d2749160;p=libs%2Fgltk.git diff --git a/source/dropdown.cpp b/source/dropdown.cpp index 47496f4..41e42fa 100644 --- a/source/dropdown.cpp +++ b/source/dropdown.cpp @@ -36,6 +36,8 @@ void Dropdown::autosize() unsigned line_height = static_cast((font.get_ascent()-font.get_descent())*font_size); geom.h = max(geom.h, line_height+margin.top+margin.bottom); } + + rebuild(); } void Dropdown::append(const string &item) @@ -78,15 +80,21 @@ int Dropdown::get_selected_index() const return list.get_selected_index(); } -void Dropdown::render_special(const Part &part) const +void Dropdown::rebuild_special(const Part &part, CachedPart &cache) { if(part.get_name()=="text") { if(list.get_selected_index()>=0) - Text(*style, list.get_selected()).render(part, geom); + Text(*style, list.get_selected()).build(part, geom, cache); + else + cache.texture = 0; } - else if(part.get_name()=="list" && dropped) - list.render(); +} + +void Dropdown::render_special(const Part &part, GL::Renderer &renderer) const +{ + if(part.get_name()=="list" && dropped) + list.render(renderer); } void Dropdown::button_press(int x, int y, unsigned btn)