MainWindow *MainWindow::get_owning(Gtk::Widget & widget) { Gtk::Container *container = widget.get_parent(); if(!container) { return dynamic_cast<MainWindow*>(&widget); } Gtk::Container *cntr = container->get_parent(); while(cntr) { container = cntr; cntr = container->get_parent(); } return dynamic_cast<MainWindow*>(container); }
Gtk::Window * DockItem::getWindow() { g_return_val_if_fail(_gdl_dock_item, 0); Gtk::Container *parent = getWidget().get_parent(); parent = (parent ? parent->get_parent() : 0); return (parent ? dynamic_cast<Gtk::Window *>(parent) : 0); }