Tout d'abord bonsoir.

Je post ce topic suite à de nombreuses difficultées que je rencontre lors de mon apprentissage de Gtk. (dans le cadre de mes études)

J'essaye désespérément de récupérer la position du click de la souris sur une image mais mon g_signal_connect n'a pas l'aire de faire grand chose (je n'ai aucun message qui s'affiche dans ma console lors de mes frénétiques click sur mon image).
Je sais qu'un topic a déjà été créer pour la récupération de la position de la souris mais si vous pouviez quand même me dire ce qui ne va pas ...

Je vous remercie par avance pour le coup de main

Mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdlib.h>
#include <goocanvas.h>
 
gboolean on_button_press_event(GtkWidget *widget,GdkEventButton *event,gpointer user_data);
 
int main(int argc, char **argv)
{
    GtkWidget *pWindow;
    GtkWidget *pVBox;
    GtkWidget *pImage;
 
    gtk_init(&argc, &argv);
 
    pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
    gtk_window_set_title(GTK_WINDOW(pWindow), "GtkImage");
    g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
 
    pVBox = gtk_vbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
 
    /* Chargement d'une image a partir d'un fichier */
    pImage = gtk_image_new_from_file("/home/berenger/Bureau/carte_europe.jpg");
    gtk_box_pack_start(GTK_BOX(pVBox), pImage, FALSE, FALSE, 5);
 
    gtk_widget_show_all(pWindow);
 
    g_signal_connect(G_OBJECT(pImage),"button_press_event",G_CALLBACK(on_button_press_event),NULL);
 
    gtk_main();
 
    return EXIT_SUCCESS;
}
 
 
gboolean on_button_press_event(GtkWidget *widget,GdkEventButton *event,gpointer user_data)
{
	if(event->type == GDK_BUTTON_PRESS)
	{
		g_print("x:%d y:%d\n",(int)event->x,(int)event->y);
		return TRUE;
	}
	else
	{
		g_print("what else ?");
		return FALSE;
	}
}
 
 
//gcc -o toto toto.c `pkg-config --libs --cflags goocanvas`