[ubuntu-in] GTK+ RadioButton Signal Handler issue

Anil Vishnoi vishnoianil at gmail.com
Sun Mar 21 12:07:57 GMT 2010


Folks,
    Ignore this mail.I got the bug.My bad!!

Anil

Anil Vishnoi wrote:
> Hello People,
>    I wrote a small C program with GTK+ interfaces. This program is 
> related to GtkRadioButton.Following is the whole program:
>
> #include <stdlib.h>
> #include <gtk/gtk.h>
> #include <gtk/gtkdialog.h>
> #include <string.h>
>
> void radio1signalhandler(GtkWidget *widget,gpointer data)
> {
>    if(GTK_TOGGLE_BUTTON(widget)->active)
>            g_print("Radio 1 pressed\n");
>    else
>            g_print("Radio 1 released\n");
> }
>
> void radio2signalhandler(GtkWidget *widget,gpointer data)
> {
>    if(GTK_TOGGLE_BUTTON(widget)->active)
>            g_print("Radio 2 pressed\n");
>    else
>            g_print("Radio 2 released\n");
> }
> int main(int argc,char *argv[])
> {
>    GtkWidget * button;
>    GtkWidget *button2;
>    GSList *group;
>
>    gtk_init(&argc,&argv);
>
>
>    GtkWidget * userinputwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>    
> g_signal_connect(G_OBJECT(userinputwindow),"delete_event",G_CALLBACK(exit),NULL); 
>
>    gtk_window_set_title(GTK_WINDOW(userinputwindow),"Radio Button Demo");
>    gtk_widget_show(userinputwindow);
>
>    GtkWidget *hbox = gtk_hbox_new(TRUE,0);
>
>    button = gtk_radio_button_new_with_label(NULL,"Radio1");
>    gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
>    
> g_signal_connect(G_OBJECT(button),"toggled",G_CALLBACK(radio1signalhandler),NULL); 
>
>    gtk_widget_show(button);
>
>    group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button));
>    button2 = gtk_radio_button_new_with_label(group,"Radio2");
>    gtk_box_pack_start(GTK_BOX(hbox),button2,FALSE,FALSE,0);
>    
> g_signal_connect(G_OBJECT(button),"toggled",G_CALLBACK(radio2signalhandler),NULL); 
>
>    gtk_widget_show(button2);
>    gtk_widget_show(hbox);
>
>    gtk_container_add(GTK_CONTAINER(userinputwindow),hbox);
>
>    gtk_widget_show(hbox);
>
>    gtk_main();
>
>    return 0;
> }
>
>
> So from this program as per GtkRadioButton interface API 
> documentation,i should get following output from this code if i select 
> the radio button 2:
>
> Radio 1 released
> Radio 2 pressed
>
> but i am getting the following output
>
> Radio 1 released
> Radio 2 released
>
> So folks can anyone tell me if is there anything wrong in my logic,or 
> i didnt handled the signal handler part properly ? or is this bug 
> within GTK+ only?
>
> You can compile the program using the following command line
>
> gcc -o RadioButton RadioButton.c `pkg-config --cflags --libs gtk+-2.0`
>
> Thanks
> Anil
>
>
>
>




More information about the ubuntu-in mailing list