On 02/23/2012 02:49 PM, Gilles DOFFE wrote:
> Hello,
> 
> Below a simple application with a GtkButton and a GtkEntry.
> Two callbacks associated to this widgets following this rules :
> 1) When I click on the GtkButton, it should display the GtkEntry pointer
> value.
> 2) When I focus on the GtkEntry, it should display the GtkButton pointer
> value.
> 
> Case 1) works perfectly but case 2) always give a different value for the
> GtkButton pointer ?!
> 
> Did i miss something ?

That the signature for focus-in-event isn't the same[1], and that second
parameter you use in your printf is a pointer to the GdkEvent, not your
user_data (Also, this callback should return a gboolean value).

-j

[1]
http://developer.gnome.org/gtk/stable/GtkWidget.html#GtkWidget-focus-in-event

> 
> Thanks,
> Gilles
> 
> #include <gtk/gtk.h>
> 
> void
> onEntryFocusIn(GtkWidget *entry, gpointer pData)
> {
>     printf("pData   = %p\n", (GtkWidget *)pData);
> }
> 
> int main(int argc, char **argv)
> {
>     GtkWidget *pWindow = NULL;
>     GtkWidget *pButton = NULL;
>     GtkWidget *pEntry = NULL;
>     GtkWidget *pHbx = NULL;
> 
>     gtk_init(NULL, NULL);
> 
>     pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>     pButton = gtk_button_new();
>     pEntry = gtk_entry_new();
>     pHbx = gtk_hbox_new(FALSE, FALSE);
> 
>     gtk_box_pack_start(GTK_BOX(pHbx), GTK_WIDGET(pButton), FALSE, FALSE, 0);
>     gtk_box_pack_start(GTK_BOX(pHbx), GTK_WIDGET(pEntry), FALSE, FALSE, 0);
> 
>     gtk_container_add(pWindow, pHbx);
> 
>     g_signal_connect(G_OBJECT(pWindow), "destroy", (GCallback)
> gtk_main_quit, NULL);
> 
>     /* THIS WORKS : */
>     g_signal_connect(G_OBJECT(pButton), "clicked", (GCallback)
> onEntryFocusIn, (gpointer)pEntry);
> 
>     /* THIS DOES NOT WORK : */
>     g_signal_connect(G_OBJECT(pEntry), "focus-in-event", (GCallback)
> onEntryFocusIn, (gpointer)pButton);
> 
>     gtk_widget_show_all(pWindow);
> 
>     printf("pEntry  = %p\n", pEntry);
>     printf("pButton = %p\n", pButton);
> 
>     gtk_main();
> }
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to