XCreateWindow
Prototypes
Window XCreateWindow(Display *HandleServeur, Window HandleFenetreMere, int X, int Y, unsigned int Largeur, unsigned int Hauteur, int Epaisseur, int Profondeur, unsigned int Classe, Visual *HandleVisuel, unsigned long Options, XSetWindowAttributes *Attributs);
Description
Crée une nouvelle fenêtre ayant les caractéristiques suivantes :
- Le style de la fenêtre est donnée par Options et Attributs.
- La fenêtre est gérée par le serveur désigné par HandleServeur avec le visuel désigné par HandleVisuel.
- La classe de la fenêtre est définie par Classe.
- La taille de la fenêtre est donnée par le rectangle (X, Y, Largeur, Hauteur).
- La capacité graphique est définie par Profondeur.
- La bordure de la fenêtre est épaisse de Epaisseur pixels.
- Si la fenêtre est une sous-fenêtre, HandleFenetreMere désigne la fenêtre de rattachement.
Le résultat est le handle identifiant la fenêtre créée.
Exemple
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
Display *HandleServeur;
int EcranParDefaut;
XSetWindowAttributes Attributs;
Window HandleFenetre;
XEvent Evenement;
Attributs.background_pixmap=None;
Attributs.background_pixel=WhitePixel(ServeurAffichage,EcranParDefaut);
Attributs.border_pixmap=None;
Attributs.border_pixel=WhitePixel(ServeurAffichage,EcranParDefaut);
Attributs.bit_gravity=StaticGravity;
Attributs.win_gravity=UnmapGravity;
Attributs.backing_store=NotUseful;
Attributs.backing_planes=0;
Attributs.backing_pixel=0;
Attributs.save_under=False;
Attributs.event_mask=KeyPressMask|KeyReleaseMask|ButtonPressMask|ButtonReleaseMask|EnterWindowMask|LeaveWindowMask|PointerMotionMask
|PointerMotionHintMask|Button1MotionMask|Button2MotionMask|Button3MotionMask|Button4MotionMask|Button5MotionMask
|ButtonMotionMask|KeymapStateMask|ExposureMask|VisibilityChangeMask|StructureNotifyMask|ResizeRedirectMask|SubstructureNotifyMask
|SubstructureRedirectMask|FocusChangeMask|PropertyChangeMask|ColormapChangeMask|OwnerGrabButtonMask;
Attributs.do_not_propagate_mask=False;
Attributs.override_redirect=False;
Attributs.colormap=CopyFromParent;
Attributs.cursor=None;
...
HandleFenetre=XCreateWindow(HandleServeur, RootWindow(HandleServeur, EcranParDefaut), 0, 0, 100, 100, 0, CopyFromParent, InputOutput, CpyFromParent, CWBorderPixel|CWBackPixel|CWEventMask, &Attributs);
if (!HandleFenetre)
...
for (;;)
{
memset(&Evenement, 0, sizeof(XEvent));
XNextEvent(HandleServeur, &Evenement);
...
}
...
Avertissement
Le résultat est NULL en cas d'erreur.
Voir aussi
XNextEvent pour prélever le message suivant.