38 #include "radio_helper.h"
40 GtkWidget *rh_append_radio_to_vbox(GtkWidget *
radio_button,
const gchar *text,
42 void (*callback)(GtkToggleButton *, gpointer),
45 GtkWidget *new_radio_button =
46 gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radio_button), text);
47 gtk_box_pack_start(GTK_BOX(vbox), new_radio_button, FALSE, FALSE, 0);
51 g_signal_connect(GTK_TOGGLE_BUTTON(new_radio_button),
"toggled", G_CALLBACK(callback),
55 g_object_set_data(G_OBJECT(new_radio_button),
"value", GINT_TO_POINTER(value));
57 return new_radio_button;
60 gint rh_get_active_value(GtkWidget *radio_button)
62 gint active_value = -1;
63 GSList *radio_button_list = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_button));
66 for(i = 0; i < g_slist_length(radio_button_list);i++)
68 GtkRadioButton *current_radio = (GtkRadioButton *) g_slist_nth_data(radio_button_list, i);
69 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(current_radio)))
71 active_value = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(current_radio),
"value"));
79 GtkWidget *rh_get_radio_from_value(GtkWidget *radio_button, gint value)
81 GtkWidget *radio = NULL;
82 GSList *radio_button_list = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_button));
85 for(i = 0; i < g_slist_length(radio_button_list);i++)
87 GtkRadioButton *current_radio = (GtkRadioButton *) g_slist_nth_data(radio_button_list, i);
88 gint current_value = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(current_radio),
"value"));
89 if (current_value == value)
91 radio = GTK_WIDGET(current_radio);