summaryrefslogtreecommitdiff
path: root/gtk/gtkradiobutton.c
diff options
context:
space:
mode:
authorOwen Taylor <owt1@cornell.edu>1998-03-18 21:11:04 +0000
committerOwen Taylor <otaylor@src.gnome.org>1998-03-18 21:11:04 +0000
commitf9739e834376121d8f766072499126e1cac2f332 (patch)
treedb18acfaf13950986d1f9098980326cfabfb1d5a /gtk/gtkradiobutton.c
parent85d4cd0f43c29fcca9c38282d7fa169bf775409e (diff)
downloadgtk+-f9739e834376121d8f766072499126e1cac2f332.tar.gz
( From: James Henstridge <james@daa.com.au> )
Wed Mar 18 11:09:10 1998 Owen Taylor <owt1@cornell.edu> ( From: James Henstridge <james@daa.com.au> ) * gtk/gtkclist.c: Don't remove, then destroy labels in gtk_clist_set_column_[*], just remove them. * gtk/gtkmain.c (gtk_invoke_timeout_function): call marshal when appropriate, not function. Tue Mar 17 14:15:07 1998 Owen Taylor <owt1@cornell.edu> * gtk/testgtk.c (create_main_window): Alphabetize tests * gtk/gtk[hv]paned.c: Change division on resize if necessary to keep handle visible. * gtk/gtkgamma.c gtk/gtkcurve.c: Moved initialization into _init() functions. * gtk/gtkscrolledwindow.c: Added missing _construct() functions.
Diffstat (limited to 'gtk/gtkradiobutton.c')
-rw-r--r--gtk/gtkradiobutton.c34
1 files changed, 28 insertions, 6 deletions
diff --git a/gtk/gtkradiobutton.c b/gtk/gtkradiobutton.c
index 17b9800277..774d916d80 100644
--- a/gtk/gtkradiobutton.c
+++ b/gtk/gtkradiobutton.c
@@ -84,17 +84,29 @@ gtk_radio_button_init (GtkRadioButton *radio_button)
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)
{
@@ -111,6 +123,16 @@ gtk_radio_button_new (GSList *group)
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);
}