X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbutton.cpp;h=58fc134cde2a9d551c80ad9b303bcd7773423304;hb=a4d18206b6352b3240ad9697aed10e2066d160bd;hp=5582230f95985fc05be05869fa1961c718fc22b2;hpb=319cde3c06181ba1c3619567525002926d8b4889;p=libs%2Fgltk.git diff --git a/source/button.cpp b/source/button.cpp index 5582230..58fc134 100644 --- a/source/button.cpp +++ b/source/button.cpp @@ -16,31 +16,16 @@ Button::Button(const std::string &t): set_text(t); } -void Button::autosize() +void Button::autosize_special(const Part &part, Geometry &ageom) { - if(!style) - return; - - Widget::autosize(); - - if(const Part *text_part = style->get_part("text")) - { - const Sides &margin = text_part->get_margin(); - geom.w = max(geom.w, text.get_width()+margin.left+margin.right); - geom.h = max(geom.h, text.get_height()+margin.top+margin.bottom); - } - - if(icon) + if(part.get_name()=="text") + text.autosize(part, ageom); + else if(part.get_name()=="icon" && icon) { - if(const Part *icon_part = style->get_part("icon")) - { - const Sides &margin = icon_part->get_margin(); - geom.w = max(geom.w, icon->get_width()+margin.left+margin.right); - geom.h = max(geom.h, icon->get_height()+margin.top+margin.bottom); - } + const Sides &margin = part.get_margin(); + ageom.w = max(ageom.w, icon->get_width()+margin.left+margin.right); + ageom.h = max(ageom.h, icon->get_height()+margin.top+margin.bottom); } - - rebuild(); } void Button::set_text(const std::string &t)