Scroll to navigation

XAnyEvent(3X11) XLIB FUNCTIONS XAnyEvent(3X11)

NOM

XAnyEvent, XEvent - structure générique des événements X

STRUCTURES

Toutes les structures d'événements déclarées dans <X11/Xlib.h> ont les champs suivants en commun :

typedef struct {
	int type;
	unsigned long serial;
	Bool send_event;
	Display *display;
	Window window;
} XAnyEvent;


Le champ type est renseigné avec la valeur de la constante dont le nom correspond au type d'événement, et qui l'identifie de manière unique. Par exemple, lorsque le serveur X notifie un événement GraphicsExpose à une application cliente, il émet une structure XGraphicsExposeEvent avec le champ type positionné à la valeur GraphicsExpose. Le champ display contient un pointeur sur le display sur lequel l'événement est apparu. Le champ send_event vaut True si l'événement provient d'une requête SendEvent du protocole. Le champ serial contient le numéro de série issu du protocole, mais étendu à partir des 16 bits les moins signifiants à une valeur codée sur 32 bits. Le champ window contient l'identifiant de la fenêtre le plus pertinent pour les répartiteurs des boîtes à outils graphiques (NDT : afin de transmettre l'événement à la fenêtre concernée).

La structure XEvent est une union des structures individuelles déclarées pour chaque type d'événement :

typedef union _XEvent {
	int type;
	XAnyEvent xany;
	XKeyEvent xkey;
	XButtonEvent xbutton;
	XMotionEvent xmotion;
	XCrossingEvent xcrossing;
	XFocusChangeEvent xfocus;
	XExposeEvent xexpose;
	XGraphicsExposeEvent xgraphicsexpose;
	XNoExposeEvent xnoexpose;
	XVisibilityEvent xvisibility;
	XCreateWindowEvent xcreatewindow;
	XDestroyWindowEvent xdestroywindow;
	XUnmapEvent xunmap;
	XMapEvent xmap;
	XMapRequestEvent xmaprequest;
	XReparentEvent xreparent;
	XConfigureEvent xconfigure;
	XGravityEvent xgravity;
	XResizeRequestEvent xresizerequest;
	XConfigureRequestEvent xconfigurerequest;
	XCirculateEvent xcirculate;
	XCirculateRequestEvent xcirculaterequest;
	XPropertyEvent xproperty;
	XSelectionClearEvent xselectionclear;
	XSelectionRequestEvent xselectionrequest;
	XSelectionEvent xselection;
	XColormapEvent xcolormap;
	XClientMessageEvent xclient;
	XMappingEvent xmapping;
	XErrorEvent xerror;
	XKeymapEvent xkeymap;
	long pad[24];
} XEvent;


La première entrée d'une structure XEvent est toujours le champ type, qui est renseigné en fonction du type de l'événement. Le deuxième est systématiquement le numéro de série de la requête du protocole qui a généré l'événement. Le troisième est toujours send_event, qui est un Booléen indiquant si l'événement a été émis par un client différent. Le quatrième champ est toujours le display, qui représente le display sur lequel l'événement est apparu. Hormis pour les événements keymap, le cinquième champ est toujours une fenêtre, qui a été intelligemment choisie pour être utile aux répartiteurs des boîtes à outils graphiques. Pour ne pas générer d'incompatibilité avec les boîtes à outils graphiques, l'ordre de ces cinq premières entrées est immuable. La plupart des événements contient également un champ time, qui désigne l'heure à laquelle l'événement s'est produit. Enfin, un pointeur sur un événement générique doit être transtypé avant d'être utilisé pour accéder à toute autre information dans la structure.

VOIR AUSSI

XButtonEvent(3X11), XCreateWindowEvent(3X11), XCirculateEvent(3X11), XCirculateRequestEvent(3X11), XColormapEvent(3X11), XConfigureEvent(3X11), XConfigureRequestEvent(3X11), XCrossingEvent(3X11), XDestroyWindowEvent(3X11), XErrorEvent(3X11), XExposeEvent(3X11), XFocusChangeEvent(3X11), XGraphicsExposeEvent(3X11), XGravityEvent(3X11), XKeymapEvent(3X11), XMapEvent(3X11), XMapRequestEvent(3X11), XPropertyEvent(3X11), XReparentEvent(3X11), XResizeRequestEvent(3X11), XSelectionClearEvent(3X11), XSelectionEvent(3X11), XSelectionRequestEvent(3X11), XUnmapEvent(3X11), XVisibilityEvent(3X11)
Xlib - C Language X Interface

TRADUCTION

Bertrand Duret, 2002.

Release 6.5 X Version 11