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 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#include <stdlib.h>
#include <gtk/gtk.h>
gboolean fonctionTest(GtkWidget *widget,GdkEvent * unionCompliquee, gpointer data){
/* Variables */
GtkWidget * txt ;
txt=(GtkWidget *) data;
gtk_label_set_label( GTK_LABEL(txt) ,"Quoi ? Ca n'est ni le clic droit ni le clic gauche..");
unionCompliquee = gtk_get_current_event();
guint typeClic=(*unionCompliquee).button.button ;
if(typeClic==3){ /* Cas du clic droit */
gtk_label_set_label(GTK_LABEL(txt), "Clic droit");
}
if( typeClic ==1){ /* Cas du clic gauche */
gtk_label_set_label(GTK_LABEL(txt), "Clic gauche");
}
gtk_widget_show(txt);
return TRUE;
}
int main(int argc, char **argv)
{
/* Variables */
GtkWidget * pMainWindow = NULL;
GtkWidget * pbtn = NULL;
GtkWidget *pVBox;
/* Initialisation de GTK+ */
gtk_init(&argc, &argv);
/* Création de la fenêtre */
pMainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
char *titre="Une fenetre tres simpliste";
gtk_window_set_title(GTK_WINDOW(pMainWindow), titre);
gtk_window_set_position(GTK_WINDOW(pMainWindow), GTK_WIN_POS_CENTER);
/* Creation de la GtkBox verticale */
pVBox = gtk_vbox_new(TRUE, 0);
/* Ajout de la GtkVBox dans la fenetre */
gtk_container_add(GTK_CONTAINER(pMainWindow), pVBox);
/*Creation d'un bouton */
pbtn = gtk_button_new_with_label("Quel est le clic ?");
gtk_box_pack_start(GTK_BOX(pVBox), pbtn, TRUE, FALSE, 0);
/*Initialisation du label*/
GtkWidget *texte = NULL;
texte = gtk_label_new("initial");
gtk_box_pack_start(GTK_BOX(pVBox), texte, TRUE, TRUE, 0);
gtk_widget_show_all(pMainWindow);
/*Mise en place des callbacks*/
gtk_widget_set_events(pbtn, GDK_BUTTON_PRESS_MASK);
g_signal_connect(G_OBJECT(pbtn), "button-press-event", G_CALLBACK(fonctionTest),(gpointer) texte);
g_signal_connect(G_OBJECT(pMainWindow), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
/* Affichage */
gtk_main();
/* On quitte.. */
return EXIT_SUCCESS;
} |