Les meilleurs sources GTK+
Les meilleurs sources GTK+Consultez toutes les sources
Nombre d'auteurs : 4, nombre de sources : 13, dernière mise à jour : 28 juin 2013
Ce programme permet de bouger le curseur de la souris en appuyant sur les touches fléchées du clavier.
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
gboolean on_key_press (
GtkWidget *
widget, GdkEventKey *
event)
{
gint x =
0
;
gint y =
0
;
gint xadd =
0
;
gint yadd =
0
;
GdkScreen *
screen =
NULL
;
GdkDisplay *
display =
NULL
;
/* Determine la touche pressee */
switch
(
event->
keyval)
{
case
GDK_Left:
xadd -=
5
;
break
;
case
GDK_Right:
xadd +=
5
;
break
;
case
GDK_Up:
yadd -=
5
;
break
;
case
GDK_Down:
yadd +=
5
;
break
;
}
/* Recupere l'ecran par defaut */
display =
gdk_display_get_default (
);
screen =
gdk_display_get_default_screen (
display);
/* Recupere la position du curseur */
gdk_display_get_pointer (
display, NULL
, &
x, &
y, NULL
);
/* Calcul de la nouvelle position du curseur */
x +=
xadd;
y +=
yadd;
gdk_display_warp_pointer (
display, screen, x, y);
/* Propagation de l'evenement */
return
FALSE;
}
int
main (
int
argc, char
**
argv)
{
GtkWidget *
window =
NULL
;
gtk_init (&
argc, &
argv);
window =
gtk_window_new (
GTK_WINDOW_TOPLEVEL);
g_signal_connect (
G_OBJECT (
window), "
destroy
"
, gtk_main_quit, NULL
);
g_signal_connect (
G_OBJECT (
window), "
key_press_event
"
,
G_CALLBACK (
on_key_press), NULL
);
gtk_widget_show_all (
window);
gtk_main (
);
return
0
;
}