Re: How can I use g_signal_connect() to pass a gponiter parameter



My code does it just by the book:

void setPermission(GtkWidget *window, gpointer p)
{
	g_print("%s\n", (gchar*) p);
}

radio1 = gtk_radio_button_new_with_label (NULL, "First");
radio2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON
(radio1), "Second");
radio3 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON
(radio1), "Third");
g_signal_connect_swapped (G_OBJECT (radio1), "clicked", G_CALLBACK
(setPermission), (gpointer) "Clicked 0");    
g_signal_connect_swapped (G_OBJECT (radio2), "clicked", G_CALLBACK
(setPermission), (gpointer) "Clicked 1");    
g_signal_connect_swapped (G_OBJECT (radio3), "clicked", G_CALLBACK
(setPermission), (gpointer) "Clicked 2");    

Yet, when I select any of these radio buttons, it prints out some garbage
(the same for each button).

Any idea why?


learning_gtk wrote:
> 
> I hope to use  g_signal_connect() to pass a gchar* parameter like this:
> 
> gchar* radio1= "Radio1"; //it is global variable
> gchar* radio2= "Radio2";
> gchar* radio3= "Radio3";
> 
> void item_radio_print1(gpointer* data)
> {
>         g_print("This is the radio %s\n", (gchar *)data);
> }
> 
> g_signal_connect(G_OBJECT(item_radio1), "activate",
>                      GTK_SIGNAL_FUNC(item_radio_print1),
> (gpointer*)radio1);
> g_signal_connect(G_OBJECT(item_radio2), "activate",
>                      GTK_SIGNAL_FUNC(item_radio_print1),
> (gpointer*)radio2);
> g_signal_connect(G_OBJECT(item_radio3), "activate",
>                      GTK_SIGNAL_FUNC(item_radio_print1),
> (gpointer*)radio3);
> 
> But, those strings can not be printed.
> 
> Please help me. Thanks!
> 

-- 
View this message in context: http://www.nabble.com/How-can-I-use-g_signal_connect%28%29-to-pass-a-gponiter-parameter-tp19106328p21778470.html
Sent from the Gtk+ - General mailing list archive at Nabble.com.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]