The simplest answer is just to declare your widgets globally so you can refer to them anywhere. Otherwise, the only two widgets you can return with g_signal_connect are the connected object (button2) and the one pointer you're allowed, in this case label1.
BUT that pointer can actually be a pointer of any kind, so you could also declare your widgets (locally) in a struct that you can pass as a reference:
g_signal_connect (GTK_OBJECT(button2), "clicked",
In your callback function the syntax is:
Then you can return all instead of a few widgets.
I just learned this a few days ago myself at www.gtkforums.com
, which is also a great place and there are glade users there.
I imagine (altho I haven't tried) that if you don't want to put everything in a struct, you could have a smaller struct of pointers (to pointers, since a GtkWidget is such):
Presuming the three buttons already exist. You might need to experiment with the syntax but it should