38 #include "radio_helper.h"
40 GtkWidget *rh_append_radio_to_vbox(GtkWidget *radio_button,
const gchar *text,
41 gint value,
void (*callback)(GtkToggleButton *, gpointer), gpointer callback_data,
44 GtkWidget *new_radio_button =
45 gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radio_button), text);
46 gtk_box_pack_start(GTK_BOX(vbox), new_radio_button, FALSE, FALSE, 0);
50 g_signal_connect(GTK_TOGGLE_BUTTON(new_radio_button),
"toggled", G_CALLBACK(callback),
54 g_object_set_data(G_OBJECT(new_radio_button),
"value", GINT_TO_POINTER(value));
56 return new_radio_button;
59 gint rh_get_active_value(GtkWidget *radio_button)
61 gint active_value = -1;
62 GSList *radio_button_list = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_button));
65 for(i = 0; i < g_slist_length(radio_button_list);i++)
67 GtkRadioButton *current_radio = (GtkRadioButton *) g_slist_nth_data(radio_button_list, i);
68 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(current_radio)))
70 active_value = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(current_radio),
"value"));
78 GtkWidget *rh_get_radio_from_value(GtkWidget *radio_button, gint value)
80 GtkWidget *radio = NULL;
81 GSList *radio_button_list = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_button));
84 for(i = 0; i < g_slist_length(radio_button_list);i++)
86 GtkRadioButton *current_radio = (GtkRadioButton *) g_slist_nth_data(radio_button_list, i);
87 gint current_value = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(current_radio),
"value"));
88 if (current_value == value)
90 radio = GTK_WIDGET(current_radio);