On Wed, 2004-03-31 at 22:42, ionut grigorescu wrote:
Hello !!! I don't want to waste anybody's time so here's my question : When a button get's pressed I use g_signal_connect to use a callback function, but I can only submit one parameter to that callback functio.
In the user_data field of the function. As example in a click event to pass the string "Hi" to the callback, you can do: GtkWidget* button; .... g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_widget_clicked), "Hi"); The callback should be something like: void on_widget_clicked (GtkButton* button, gpointer user_data) In the user data field you can get a pointer to the "Hi" string you passed.
How can I send two ore more parameters to that function ?
The same way. typedef struct _params { gint field1; gint field2; } t_params; GtkWidget* button; .... t_params params; params.field1 = 0; params.field2 = 1; g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_widget_clicked), ¶ms); In the callback you can access them this way: void on_widget_clicked (GtkButton* button, gpointer user_data) { t_params* p_params; p_params = (t_params*) user_data; g_print("params are field1=%d field2=%d\n", p_params->field1, p_params->field2 ); } Hope this helps. -- Iago Rubio - Home page * http://www.iagorubio.com - Last project * http://cssed.sourceforge.net - GPG Keyserv * pgp.rediris.es id=0x909BD4DD
Attachment:
signature.asc
Description: This is a digitally signed message part