From: Lindley M French <[email protected]> > I've got a GtkScrolledWindow which contains an hbox that in turn contains a > number of other widgets, and each of those widgets has an ability to become > "active" in some sense. > > What I'd like to do is arrange things so that when a particular widget > becomes active, the ScrolledWindow is adjusted to ensure that the active > widget is entirely visible (assuming it's small enough of course). > > This means that I need to get the position of the widget in > ScrolledWindow->bin_window coordinates, as I understand it. But I can't > figure out which combination of functions I need to do this. > > Any help?
GtkWidgets has already support for center on focused objects (I hope that your "active" means that). The implementation of this feature are related with this functions and signals: http://library.gnome.org/devel/gtk/stable/GtkWidget.html#gtk-widget-child-focus http://library.gnome.org/devel/gtk/stable/GtkContainer.html#gtk-container-get-focus-child http://library.gnome.org/devel/gtk/stable/GtkContainer.html#GtkContainer-set-focus-child Anyway, as you are using a common GtkScrolledWindow, probably you only require to use the function: http://library.gnome.org/devel/gtk/stable/GtkContainer.html#gtk-container-set-focus-vadjustment LibgnomeUI has a example. It has a GtkScrolledWindow, and inside a hbox with several buttons. Each time you click on the button, the scrolled window centers on it. The example is libgnomeui-2.24.1/test-gnome/testgnome.c (I got the code using "apt-get source libgnomeui", so probably you can too) I hope this helps. BR === API ([email protected]) _______________________________________________ gtk-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtk-list
