+ set_text(t);
+}
+
+void Label::autosize()
+{
+ const list<Part> &parts=style->get_parts();
+ const Part *text_part=0;
+ for(list<Part>::const_iterator i=parts.begin(); (!text_part && i!=parts.end()); ++i)
+ if(i->get_name()=="text")
+ text_part=&*i;
+
+ geom.h=text.get_height();
+ geom.w=text.get_width();
+ if(text_part)
+ {
+ const Sides &margin=text_part->get_margin();
+ geom.w+=margin.left+margin.right;
+ geom.h+=margin.top+margin.bottom;
+ }