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
| #include <stdlib.h>
#include <gtk/gtk.h>
void position_souris( GtkWidget *widget, GdkEventMotion *event )
{
gint x1, y1;
gint x2, y2;
/* Position dans la fenêtre */
if (event->is_hint)
gdk_window_get_pointer (event->window, &x1, &y1, NULL);
else
{
x1 = event->x;
y1 = event->y;
}
/* Position dans l'écran */
if (event->is_hint)
gdk_window_get_pointer (
gdk_screen_get_root_window(gdk_screen_get_default()),
&x2, &y2, NULL);
else
{
x2 = event->x_root;
y2 = event->y_root;
}
/* Affichage */
g_printf("x:%d y:%d\t\tx:%d y:%d\n", x1, y1, x2, y2);
}
int main(int argc, char **argv)
{
/* Variables */
GtkWidget * MainWindow;
/* Initialisation de GTK+ */
gtk_init(&argc, &argv);
/* Création de la fenêtre */
MainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(MainWindow), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
/* Connexion des signaux */
gtk_signal_connect (GTK_OBJECT (MainWindow), "motion_notify_event",
(GtkSignalFunc) position_souris, NULL);
/* Désigne les évènements à gérer */
gtk_widget_set_events (MainWindow, GDK_POINTER_MOTION_MASK);
/* Affichage et boucle évènementielle */
gtk_widget_show(MainWindow);
gtk_main();
/* Fermeture de GTK+ */
gtk_exit(EXIT_SUCCESS);
return EXIT_SUCCESS;
} |
Partager