radio_button->group = NULL;
}
-GtkWidget*
-gtk_radio_button_new (GSList *group)
+void
+gtk_radio_button_set_group (GtkRadioButton *radio_button,
+ GSList *group)
{
- GtkRadioButton *radio_button;
- GtkRadioButton *tmp_button;
GSList *tmp_list;
+ GtkRadioButton *tmp_button;
- radio_button = gtk_type_new (gtk_radio_button_get_type ());
+ if (radio_button->group)
+ {
+ radio_button->group = g_slist_remove (radio_button->group, radio_button);
+
+ tmp_list = radio_button->group;
+ while (tmp_list)
+ {
+ tmp_button = tmp_list->data;
+ tmp_list = tmp_list->next;
+
+ tmp_button->group = radio_button->group;
+ }
+ }
- tmp_list = group;
radio_button->group = g_slist_prepend (group, radio_button);
+ tmp_list = group;
if (tmp_list)
{
GTK_TOGGLE_BUTTON (radio_button)->active = TRUE;
gtk_widget_set_state (GTK_WIDGET (radio_button), GTK_STATE_ACTIVE);
}
+}
+
+GtkWidget*
+gtk_radio_button_new (GSList *group)
+{
+ GtkRadioButton *radio_button;
+
+ radio_button = gtk_type_new (gtk_radio_button_get_type ());
+
+ gtk_radio_button_set_group (radio_button, group);
return GTK_WIDGET (radio_button);
}