X-Git-Url: http://git.tdb.fi/?p=libs%2Fgltk.git;a=blobdiff_plain;f=source%2Fwidget.cpp;h=a9c233b5d8c370a0ece166c00bc81a8fb1b1f0ff;hp=13c5174df43e33cc6db256bbbe47ec45d3de7c4a;hb=e6a6b3fbd760e487c5df1a6d70ed0700d151710b;hpb=ec879cd7dba36a3f40a9faed27782de1495a00ed diff --git a/source/widget.cpp b/source/widget.cpp index 13c5174..a9c233b 100644 --- a/source/widget.cpp +++ b/source/widget.cpp @@ -75,6 +75,21 @@ void Widget::set_geometry(const Geometry &g) } } +void Widget::map_coords_to_ancestor(int &x, int &y, const Widget &ancestor) const +{ + for(const Widget *w=this; w; w=w->get_parent()) + { + if(w==&ancestor) + return; + + const Geometry &wgeom = w->get_geometry(); + x += wgeom.x; + y += wgeom.y; + } + + throw hierarchy_error("not an ancestor"); +} + void Widget::set_parent(Container *p) { if(parent && p)