[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