Re: automatic scrolling window (scrolledwindow)
- From: John Cupitt <john cupitt ng-london org uk>
- To: David Kinyanjui <david i2software com>
- Cc: gtk-list gnome org
- Subject: Re: automatic scrolling window (scrolledwindow)
- Date: Mon, 17 Nov 2003 12:00:24 +0000
Hi David,
David Kinyanjui wrote:
Anyhow, I'm still trying to find help on how to automatically
make the scrollbars in a scrolledwindow (especially
the vertical scrollbar), position itself such that the current
focused widget (grabbing focus) is always visible at the bottom of the
scrolled window.
I think this does what you want. Click on a button to warp the focus to another random button. The window will scroll to show the focussed button. Use cursor up and down to navigate, and the window will auto-scroll.
John
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#define NUM_BUTTONS (100)
void
button_click( GtkWidget *button, GtkWidget *all_buttons[] )
{
int n = rand() % NUM_BUTTONS;
gtk_widget_grab_focus( all_buttons[n] );
}
int
main( int argc, char **argv )
{
GtkWidget *window;
GtkWidget *swin;
GtkWidget *vbox;
GtkAdjustment *adj;
int i;
GtkWidget *all_buttons[NUM_BUTTONS];
gtk_set_locale();
gtk_init( &argc, &argv );
window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
swin = gtk_scrolled_window_new( NULL, NULL );
gtk_container_add( GTK_CONTAINER( window ), swin );
vbox = gtk_vbox_new( FALSE, 2 );
gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW( swin ),
vbox );
for( i = 0; i < NUM_BUTTONS; i++ ) {
char text[256];
snprintf( text, 256, "button %d", i );
all_buttons[i] = gtk_button_new_with_label( text );
gtk_box_pack_end( GTK_BOX( vbox ), all_buttons[i],
FALSE, FALSE, 0 );
gtk_signal_connect( GTK_OBJECT( all_buttons[i] ), "clicked",
GTK_SIGNAL_FUNC( button_click ), all_buttons );
}
adj = gtk_scrolled_window_get_vadjustment(
GTK_SCROLLED_WINDOW( swin ) );
gtk_container_set_focus_vadjustment( GTK_CONTAINER( vbox ), adj );
gtk_widget_show_all( window );
gtk_main();
return( 0 );
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]