need help with passing a GSList of GtkWidget's as a gpointer
- From: Sean Scanlon <scanlons minn teradyne com>
- To: gtk-list gnome org
- Subject: need help with passing a GSList of GtkWidget's as a gpointer
- Date: Wed, 4 Apr 2001 16:28:41 -0500
Hi. I've read through the GTK+ API, FAQ & tutorial, as well as the
gtk-list archives, but to no avail.
I'm trying to pass a callback function a GSList of GtkWidgets, but get
failed type checking assertions:
<runtime error>
Gtk-CRITICAL **: file gtktogglebutton.c: line 284 (gtk_toggle_button_set_active): assertion `GTK_IS_TOGGLE_BUTTON (toggle_button)' failed.
</runtime error>
This is on a Solaris 2.7 (aka SunOS 5.7) Ultra10, using the
Sun WorkShop C++ Compiler 5.0
<code>
void function0(void)
{
GtkWidget* button;
GSList* button_list;
gint i;
/* create & setup window ... */
for (i=0; i<8; i++) { /* populate GSList */
button = gtk_check_button_new();
button_list = g_slist_append( button_list, button );
/* pack check button somewhere ... */
}
button = gtk_button_new_with_label("Set All");
gtk_signal_connect( GTK_OBJECT(button), "clicked",
GTK_SIGNAL_FUNC(set_all_button_clicked_cb),
button_list );
/* pack "set all" button somewhere ... */
g_slist_free(button_list);
}
void set_all_button_clicked_cb( GtkButton* button, gpointer data )
{
GSList* button_list = (GSList*)data;
GtkWidget* widget = (GtkWidget*)NULL;
GtkToggleButton* toggle_button = (GtkToggleButton*)NULL;
while (NULL != button_list)
{
widget = (GtkWidget*)(button_list->data);
toggle_button = (GtkToggleButton*)(widget);
gtk_toggle_button_set_active( toggle_button, TRUE );
button_list = button_list->next;
}
}
</code>
Needless to say, the check buttons do not get set. :)
Any hints would be greatly appreciated.
Thanks,
Sean
--
Sean Scanlon
sean scanlon teradyne com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]