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
| #include <gtk/gtk.h>
gboolean callback_label(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
{
printf("Le lien à été cliqué\n");
/* Si vous désirez connaître quel type de clic à recu le label, regardez
event->type. Vous y trouverez sûrement votre bonheur.*/
return TRUE;
}
int main(int argc, char **argv)
{
GtkWidget *pWindow;
GtkWidget *event_box;
GtkWidget *label;
// Initialisation des librairies GTK+
gtk_init(&argc, &argv);
// Création d'une fenêtre principale.
pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
// Signaux associées à la fenêtre principale pour quitter.
g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(pWindow), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
// Création d'un GtkEventBox et insertion de celui-ci dans la fenêtre principale.
event_box=gtk_event_box_new();
gtk_container_add(GTK_CONTAINER(pWindow), event_box);
// Création d'un label et insertion de celui_ci dans le GtkEventBox.
label=gtk_label_new("essai");
gtk_container_add(GTK_CONTAINER(event_box), label);
// On ajoute le signal "button_press_event" au GtkEventBox.
gtk_widget_add_events(event_box,GDK_BUTTON_PRESS_MASK);
// On attache un CALLBACK au widget event_box.
g_signal_connect(G_OBJECT(event_box), "button_press_event", G_CALLBACK(callback_label), NULL);
// Affichage de la fenêtre.
gtk_widget_show_all(pWindow);
gtk_main();
return 0;
} |
Partager