X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fwidget.cpp;h=e5c58a25d4e3b2000c29e1a2c92f0b79cc9970b2;hb=707b59d45ae50b69c94918f8f74313283b304597;hp=a9c233b5d8c370a0ece166c00bc81a8fb1b1f0ff;hpb=e6a6b3fbd760e487c5df1a6d70ed0700d151710b;p=libs%2Fgltk.git diff --git a/source/widget.cpp b/source/widget.cpp index a9c233b..e5c58a2 100644 --- a/source/widget.cpp +++ b/source/widget.cpp @@ -39,13 +39,18 @@ void Widget::set_size(unsigned w, unsigned h) } void Widget::autosize() +{ + Geometry ageom; + autosize(ageom); + set_geometry(ageom); +} + +void Widget::autosize(Geometry &ageom) const { if(!style) return; - Geometry ageom; - ageom.x = geom.x; - ageom.y = geom.y; + ageom = Geometry(geom.x, geom.y, 0, 0); const Style::PartSeq &parts = style->get_parts(); for(Style::PartSeq::const_iterator i=parts.begin(); i!=parts.end(); ++i) { @@ -59,8 +64,6 @@ void Widget::autosize() else autosize_special(*i, ageom); } - - set_geometry(ageom); } void Widget::set_geometry(const Geometry &g) @@ -172,6 +175,11 @@ void Widget::set_focus() signal_request_focus.emit(); } +void Widget::set_enabled(bool e) +{ + set_state(DISABLED, (e ? NORMAL : DISABLED)); +} + void Widget::set_state(State mask, State bits) { state = (state&~mask)|bits;