diff options
author | Owen Taylor <owt1@cornell.edu> | 1998-03-18 21:11:04 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1998-03-18 21:11:04 +0000 |
commit | f9739e834376121d8f766072499126e1cac2f332 (patch) | |
tree | db18acfaf13950986d1f9098980326cfabfb1d5a /gtk/gtkradiobutton.c | |
parent | 85d4cd0f43c29fcca9c38282d7fa169bf775409e (diff) | |
download | gtk+-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.c | 34 |
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); } |