table of contents
XButtonEvent(3X11) | XLIB FUNCTIONS | XButtonEvent(3X11) |
NOM¶
XButtonEvent, XKeyEvent, XMotionEvent - Structures des événements KeyPress, KeyRelease, ButtonPress, ButtonRelease et MotionNotify
STRUCTURES¶
Les structures des événements KeyPress, KeyRelease, ButtonPress, ButtonRelease et MotionNotify contiennent :
typedef struct { int type; unsigned long serial; Bool send_event; Display *display; Window window; Window root; Window subwindow; Time time; int x, y; int x_root, y_root; unsigned int state; unsigned int button; Bool same_screen; } XButtonEvent; typedef XButtonEvent XButtonPressedEvent; typedef XButtonEvent XButtonReleasedEvent;
typedef struct { int type; unsigned long serial; Bool send_event; Display *display; Window window; Window root; Window subwindow; Time time; int x, y; int x_root, y_root; unsigned int state; unsigned int keycode; Bool same_screen; } XKeyEvent; typedef XKeyEvent XKeyPressedEvent; typedef XKeyEvent XKeyReleasedEvent;
typedef struct { int type; unsigned long serial; Bool send_event; Display *display; Window window; Window root; Window subwindow; Time time; int x, y; int x_root, y_root; unsigned int state; char is_hint; Bool same_screen; } XMotionEvent; typedef XMotionEvent XPointerMovedEvent;
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).
Ces structures ont les champs suivants en commun : window, root, subwindow, time, x, y, x_root, y_root, state et same_screen. Le champ window représente la fenêtre sur laquelle l'événement a été généré et elle est désignée comme fenêtre de l'événement. Tant que les conditions ci-dessus sont satisfaites, il s'agit de la fenêtre utilisée par le serveur X pour reporter l'événement. Le champ root représente la fenêtre racine de la fenêtre source. Les champs x_root et y_root contiennent les coordonnées du pointeur relatives à l'origine de la fenêtre racine au moment de l'événement.
Le champ same_screen est positionné pour indiquer si la fenêtre de l'événement est sur le même écran que la fenêtre racine et peut prendre les valeurs True ou False. S'il vaut True, la fenêtre de l'événement et la fenêtre racine sont sur le même écran. S'il vaut False, la fenêtre de l'événement et la fenêtre racine ne sont pas sur le même écran.
Si la fenêtre source est une descendante de la fenêtre de l'événement, le champ subwindow de la structure désigne la fille de la fenêtre de l'événement qui est la fenêtre source ou la fille de la fenêtre de l'événement qui est ancêtre de la fenêtre source. Sinon le serveur X positionne le champ à la valeur None. Le champ time contient l'heure à laquelle l'événement a eu lieu. Il est exprimé en millisecondes.
Si la fenêtre de l'événement est sur le même écran que la fenêtre racine, les champs x et y contiennent les coordonnées du pointeur relatives à l'origine de la fenêtre de l'événement. Sinon, ils sont positionnés à zéro.
Le champ state indique l'état logique des boutons du pointeur et des touches de modification juste avant l'événement. Il contient la valeur d'une combinaison par un OU inclusif bit-à-bit des masques suivants : Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask, ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask et Mod5Mask.
Chacune de ces structures comporte également un champ fournissant des détails sur l'événement. Pour les structures XKeyPressedEvent et XKeyReleasedEvent, ce champ est dénommé keycode. Il contient un nombre représentant une touche physique sur le clavier. Ce code est une représentation arbitraire pour toute touche du clavier (voir les sections 12.7 et 16.1).
Pour les structures XButtonPressedEvent et XButtonReleasedEvent, ce champ est dénommé button. Il représente le bouton qui a changé d'état et peut valoir Button1, Button2, Button3, Button4 ou Button5. Pour la structure XPointerMovedEvent, ce champ est dénommé is_hint. Il peut prendre les valeurs NotifyNormal ou NotifyHint.
VOIR AUSSI¶
XAnyEvent(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 |