Exemple :
/* La fenêtre sera sensible à un changement d'exposition, aux entrées clavier aux clicks souris, au changement de taille (Structure), et aux déplacement du curseur */ XSelectInput(display, win, ExposureMask | KeyPressMask | ButtonPressMask | StructureNotifyMask | PointerMotionMask);
![]()
XEvent report; while(1) { XNextEvent(display, &report); switch (report.type) { case Expose: /* traitement des évènements de type Expose */ break; case ButtonPress: /* traitement des évènements de type ButtonPress */ break; case KeyPress: /* traitement des évènements de type KeyPress */ break; case ConfigureNotify: /* traitement des évènements de type ConfigureNotify */ break; } }
![]()
La structure ci-dessous, tirée du manuel, vous permet de connaître tous les types d'événements. On accédera aux informations retournées par ces événements en accèdant au champs correspondant de la structure.
typedef union _XEvent { int type; /* must not be changed */ 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;
![]()