« Programmation GTK/Ajouter le support XInput » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
 
Tavernierbot (discussion | contributions)
m Bot: Retouches cosmétiques
Ligne 22 :
type sera initialisé avec le type de l'événement, ici GDK_MOTION_NOTIFY, window est la fenêtre dans laquelle l'événement est survenu. x et y donnent les coordonnées de l'événement et state spécifie l'état du modificateur lorsque l'événement s'est produit (c'est-à-dire quelles sont les touches de modification et les boutons souris qui ont été pressés). Il s'agit d'un OU bit à bit de l'une des valeurs suivantes&nbsp:
 
GDK_SHIFT_MASK
GDK_LOCK_MASK
GDK_CONTROL_MASK
GDK_MOD1_MASK
GDK_MOD2_MASK
GDK_MOD3_MASK
GDK_MOD4_MASK
GDK_MOD5_MASK
GDK_BUTTON1_MASK
GDK_BUTTON2_MASK
Ligne 38 :
Comme pour les autres signaux, on appelle gtk_signal_connect() pour déterminer ce qui se passe lorsqu'un événement survient. Mais nous devons aussi faire en sorte que GTK sache de quels événements nous voulons être avertis. Pour ce faire, on appelle la fonction&nbsp:
 
void gtk_widget_set_events (GtkWidget *widget,
gint events);
 
Ligne 46 :
GDK_POINTER_MOTION_MASK
GDK_POINTER_MOTION_HINT_MASK
GDK_BUTTON_MOTION_MASK
GDK_BUTTON1_MOTION_MASK
GDK_BUTTON2_MOTION_MASK
GDK_BUTTON3_MOTION_MASK
GDK_BUTTON_PRESS_MASK
GDK_BUTTON_RELEASE_MASK
GDK_KEY_PRESS_MASK
GDK_KEY_RELEASE_MASK
GDK_ENTER_NOTIFY_MASK
GDK_LEAVE_NOTIFY_MASK
GDK_FOCUS_CHANGE_MASK
GDK_STRUCTURE_MASK
GDK_PROPERTY_CHANGE_MASK
GDK_PROXIMITY_IN_MASK
GDK_PROXIMITY_OUT_MASK
 
Il y a quelques points subtils qui doivent être observés lorsqu'on appelle gtk_widget_set_events(). D'abord, elle doit être appelée avant que la fenêtre X d'un widget GTK soit créée. En pratique, cela signifie que l'on doit l'appeler immédiatement après avoir créé le widget. Ensuite, le widget doit avoir une fenêtre X associée. Pour des raisons d'efficacité, de nombreux types de widgets n'ont pas de fenêtre propre, mais se dessinent dans la fenêtre de leur parent. Ces widgets sont&nbsp:
Ligne 94 :
Avec GDK_POINTER_MOTION_HINT_MASK, le serveur nous envoit un événement de déplacement la première fois que la pointeur se déplace après être entré dans la fenêtre, ou après un événement d'appui ou de relâchement d'un bouton. Les événements de déplacement suivants seront supprimés jusqu'à ce que l'on demande explicitement la position du pointeur en utilisant la fonction&nbsp:
 
GdkWindow* gdk_window_get_pointer (GdkWindow *window,
gint *x,
gint *y,
Ligne 156 :
Une zone de dessin est créée avec l'appel&nbsp:
 
GtkWidget* gtk_drawing_area_new (void);
 
Une taille par défaut peut être donnée au widget par l'appel&nbsp:
 
void gtk_drawing_area_size (GtkDrawingArea *darea,
gint width,
gint height);
Ligne 172 :
Pour créer un pixmap mémoire, on appelle la fonction&nbsp:
 
GdkPixmap* gdk_pixmap_new (GdkWindow *window,
gint width,
gint height,
Ligne 279 :
Après avoir dessiné le rectangle représentant la brosse sur le pixmap, nous appelons la fonction&nbsp:
 
void gtk_widget_draw (GtkWidget *widget,
GdkRectangle *area);
 
Ligne 375 :
La seule modification consiste à appeler gdk_input_window_get_pointer() au lieu de gdk_window_get_pointer. Cela est nécessaire car gdk_window_get_pointer ne retourne pas l'information supplémentaire.
 
void gdk_input_window_get_pointer (GdkWindow *window,
guint32 deviceid,
gdouble *x,
Ligne 463 :
Notre programme affichera le nom du périphérique qui a généré chaque appui de bouton. Pour trouver le nom d'un périphérique, nous appelons la fonction&nbsp:
 
GList *gdk_input_list_devices (void);
 
qui retourne une GList (un type de liste chaînée de la bibliothèque glib) de structures GdkDeviceInfo. La structure GdkDeviceInfo est définie de la façon suivante&nbsp: