[138] in The GTK GIMP ToolKit mailing list archive

home help back first fref pref prev next nref lref last post

[gtk-list] gtk_adjustment_set_value()

daemon@ATHENA.MIT.EDU (Tim Janik)
Wed May 14 05:15:54 1997

Date: Wed, 14 May 1997 11:14:13 +0200 (CEST)
From: Tim Janik <Tim.Janik@Hamburg.Netsurf.DE>
To: |gtk mailing list <gtk-list@redhat.com>
Resent-From: gtk-list@redhat.com
Reply-To: gtk-list@redhat.com



hi there,

i have a GtkList in a scrolled window and would like to adjust the offset
of the vscrollbar of the GtkScrolledWindow, so that the selected item is
not outside of the visible part.

the position (between 0 and 1) of the offset is quite easy:

>  gfloat	pos, range;
>
>  if (GTK_LIST(List)->selection)
>	pos = gtk_list_child_position (GTK_LIST(List),
>				     GTK_LIST(List)->selection->data) /
>		( g_list_length(GTK_LIST(List)->children) - 1.0 );
>  else
>	pos = 0;
>

then i change the Adjustment to reflect the required position:

>  Adjustment=gtk_scrolled_window_get_vadjustment(SWindow);
>  
>  range = Adjustment->upper - Adjustment->lower;
>  
>  Adjustment->value = Adjustment->lower - Adjustment->page_size/2;
>  Adjustment->value += range * pos;
>  Adjustment->value = CLAMP( Adjustment->value,
>                             Adjustment->lower,
>  			      Adjustment->upper - Adjustment->page_size);

if i want the GtkScrolledWindow to reflect my changes i have to emit

> gtk_signal_emit_by_name(GTK_OBJECT(Adjustment), "value_changed");

by hand.
is the signal emission outside gtk correct?
couldn't there just be a function like:

> void
> gtk_adjustment_set_value (GtkAdjustment *widget,
>                           gfloat        value)
> {
>   GtkAdjustment *adjustment;
>   
>   g_return_if_fail ( widget != NULL );
> 
>   adjustment = GTK_ADJUSTMENT( widget );
>  
>   adjustment->value = value;
>
>   gtk_signal_emit_by_name(GTK_OBJECT(adjustment), "value_changed");
> }

maybe including some checks and stuff?


---
ciaoTJ

Tim.Janik@Hamburg.Netsurf.DE	[signature: <CENS||ED>]

--
To unsubscribe: mail -s unsubscribe gtk-list-request@redhat.com < /dev/null


home help back first fref pref prev next nref lref last post