]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/widget.cpp
Implement autosize() method for most widgets
[libs/gltk.git] / source / widget.cpp
index 1442151262121406319c9bdf737f5f2f54a34d56..4e0c4890aa55eaeebe78a9fd0cc393acd6c05723 100644 (file)
@@ -47,6 +47,19 @@ void Widget::set_size(unsigned w, unsigned h)
        on_geometry_change();
 }
 
+void Widget::autosize()
+{
+       geom.w = 0;
+       geom.h = 0;
+       const Style::PartSeq &parts = style->get_parts();
+       for(Style::PartSeq::const_iterator i=parts.begin(); i!=parts.end(); ++i)
+               if(i->get_name().empty())
+               {
+                       geom.w = max(geom.w, i->get_geometry().w);
+                       geom.h = max(geom.h, i->get_geometry().h);
+               }
+}
+
 void Widget::set_geometry(const Geometry &g)
 {
        geom = g;