Here's a more thorough example of the radio buttons included within your code along with a few tweaks. By the way, how come you have create_range_controls rather than putting it in main? It's only called once and doesn't really make the code any neater having it out of main.
Code:
/* compile::
gcc -Wall -Wextra -g xperiment.c -o xC `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
*/
#include <gtk/gtk.h>
void scale_set_default_values (GtkScale *scale)
{
gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_CONTINUOUS);
gtk_scale_set_digits (scale, 0);
gtk_scale_set_value_pos (scale, GTK_POS_TOP);
gtk_scale_set_draw_value (scale, TRUE);
}
void cb_get_value (GtkAdjustment *adj, gpointer data)
{
gdouble value;
gchar *str;
str=g_strdup(gtk_label_get_label(GTK_LABEL(data)));
value = gtk_adjustment_get_value(adj);
g_print("%s %f\n",str,value);
g_free(str);
}
void create_range_controls (void)
{
AtkObject *atk_widget, *atk_label;
GSList *group1=NULL, *group2=NULL;
GtkObject *adj;
GtkWidget *vbox, *hbox, *table;
GtkWidget *hscale, *hscale7, *hscale11, *hscale13;
GtkWidget *button, *label;
GtkWidget *radio1, *radio2, *radio3, *radio4, *radio5;
GtkWidget *window;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size (GTK_WINDOW (window), 350, 450);
gtk_window_set_title (GTK_WINDOW (window), "four horiz bars");
gtk_container_border_width (GTK_CONTAINER (window), 15);
g_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (vbox);
table = gtk_table_new (4, 2, FALSE);
gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
gtk_widget_show (table);
label=gtk_label_new("Pitch:");
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
adj = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
hscale = gtk_hscale_new (GTK_ADJUSTMENT (adj));
gtk_widget_set_usize (GTK_WIDGET (hscale), 200, -1);
scale_set_default_values (GTK_SCALE (hscale));
gtk_table_attach(GTK_TABLE(table), hscale, 1, 2, 0, 1, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
gtk_widget_show (hscale);
atk_widget=gtk_widget_get_accessible(hscale);
atk_label=gtk_widget_get_accessible(GTK_WIDGET(label));
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
g_signal_connect (GTK_OBJECT (adj), "value_changed", GTK_SIGNAL_FUNC (cb_get_value), (gpointer) label);
label=gtk_label_new("Volume:");
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
adj = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
hscale7 = gtk_hscale_new (GTK_ADJUSTMENT (adj));
gtk_widget_set_usize (GTK_WIDGET (hscale7), 200, -1);
scale_set_default_values (GTK_SCALE (hscale7));
gtk_table_attach(GTK_TABLE(table), hscale7, 1, 2, 1, 2, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
gtk_widget_show (hscale7);
atk_widget=gtk_widget_get_accessible(hscale7);
atk_label=gtk_widget_get_accessible(GTK_WIDGET(label));
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
g_signal_connect (GTK_OBJECT (adj), "value_changed", GTK_SIGNAL_FUNC (cb_get_value), (gpointer) label);
label=gtk_label_new("Speed WPM:");
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
adj = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
hscale11 = gtk_hscale_new (GTK_ADJUSTMENT (adj));
gtk_widget_set_usize (GTK_WIDGET (hscale11), 200, -1);
scale_set_default_values (GTK_SCALE (hscale11));
gtk_table_attach(GTK_TABLE(table), hscale11, 1, 2, 2, 3, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
gtk_widget_show (hscale11);
atk_widget=gtk_widget_get_accessible(hscale11);
atk_label=gtk_widget_get_accessible(GTK_WIDGET(label));
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
g_signal_connect (GTK_OBJECT (adj), "value_changed", GTK_SIGNAL_FUNC (cb_get_value), (gpointer) label);
label=gtk_label_new("Delay:");
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
adj = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
hscale13 = gtk_hscale_new (GTK_ADJUSTMENT (adj));
gtk_widget_set_usize (GTK_WIDGET (hscale13), 200, -1);
scale_set_default_values (GTK_SCALE (hscale13));
gtk_table_attach(GTK_TABLE(table), hscale13, 1, 2, 3, 4, GTK_FILL|GTK_SHRINK|GTK_EXPAND, GTK_FILL|GTK_SHRINK|GTK_EXPAND, 2, 2);
gtk_widget_show (hscale13);
atk_widget=gtk_widget_get_accessible(hscale13);
atk_label=gtk_widget_get_accessible(GTK_WIDGET(label));
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
g_signal_connect (GTK_OBJECT (adj), "value_changed", GTK_SIGNAL_FUNC (cb_get_value), (gpointer) label);
label=gtk_label_new("My Gender is:");
gtk_box_pack_start(GTK_BOX (vbox), label, TRUE, TRUE, 2);
gtk_widget_show(label);
atk_label=gtk_widget_get_accessible(GTK_WIDGET(label));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start(GTK_BOX (vbox), hbox, TRUE, TRUE, 2);
gtk_widget_show (hbox);
radio1 = gtk_radio_button_new_with_label (group1,"Male");
group1=gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio1));
gtk_box_pack_start(GTK_BOX (hbox), radio1, TRUE, TRUE, 2);
gtk_widget_show(radio1);
atk_widget=gtk_widget_get_accessible(radio1);
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
radio2 = gtk_radio_button_new_with_label (group1, "Female");
group1=gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio2));
gtk_box_pack_start(GTK_BOX (hbox), radio2, TRUE, TRUE, 2);
gtk_widget_show(radio2);
atk_widget=gtk_widget_get_accessible(radio2);
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
label=gtk_label_new("This Likert scale is useful to me:");
gtk_box_pack_start(GTK_BOX (vbox), label, TRUE, TRUE, 2);
gtk_widget_show(label);
atk_label=gtk_widget_get_accessible(GTK_WIDGET(label));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start(GTK_BOX (vbox), hbox, TRUE, TRUE, 2);
gtk_widget_show (hbox);
radio1 = gtk_radio_button_new_with_label (group2,"Strongly Agree");
group2=gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio1));
gtk_box_pack_start(GTK_BOX (hbox), radio1, TRUE, TRUE, 2);
gtk_widget_show(radio1);
atk_widget=gtk_widget_get_accessible(radio1);
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
radio2 = gtk_radio_button_new_with_label (group2, "Agree");
group2=gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio2));
gtk_box_pack_start(GTK_BOX (hbox), radio2, TRUE, TRUE, 2);
gtk_widget_show(radio2);
atk_widget=gtk_widget_get_accessible(radio2);
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
radio3 = gtk_radio_button_new_with_label (group2,"Neutral");
group2=gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio3));
gtk_box_pack_start(GTK_BOX (hbox), radio3, TRUE, TRUE, 2);
gtk_widget_show(radio3);
atk_widget=gtk_widget_get_accessible(radio3);
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
radio4 = gtk_radio_button_new_with_label (group2, "Disagree");
group2=gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio4));
gtk_box_pack_start(GTK_BOX (hbox), radio4, TRUE, TRUE, 2);
gtk_widget_show(radio4);
atk_widget=gtk_widget_get_accessible(radio4);
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
radio5 = gtk_radio_button_new_with_label (group2,"Strongly Disagree");
group2=gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio5));
gtk_box_pack_start(GTK_BOX (hbox), radio5, TRUE, TRUE, 2);
gtk_widget_show(radio5);
atk_widget=gtk_widget_get_accessible(radio5);
atk_object_add_relationship(atk_label, ATK_RELATION_LABEL_FOR, atk_widget);
atk_object_add_relationship(atk_widget, ATK_RELATION_LABELLED_BY, atk_label);
button = gtk_button_new_with_label ("Quit");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 2);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_widget_grab_default (button);
gtk_widget_show (button);
gtk_widget_show (window);
}
int main (int argc, char *argv[])
{
gtk_init (&argc, &argv);
create_range_controls ();
gtk_main ();
return (0);
}