+ value(false),
+ exclusive(false)
+{
+ set_text(t);
+}
+
+void Toggle::autosize()
+{
+ 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);
+ }
+
+ rebuild();
+}
+
+void Toggle::set_text(const string &t)
+{
+ text = t;
+ signal_autosize_changed.emit();
+ rebuild();
+}
+
+void Toggle::set_exclusive(bool e)
+{
+ exclusive = e;
+ if(exclusive && value)
+ exclude_siblings();
+}
+
+void Toggle::exclude_siblings()