Content-type: text/html
Window XCreateSimpleWindow(display, parent, x, y, largeur, hauteur, largeur_bord,
bordure, arrière-plan)
Display *display;
Window parent;
int x, y;
unsigned int largeur, hauteur;
unsigned int largeur_bord;
unsigned long bordure;
unsigned long arrière-plan;
Le système de coordonnées comporte un axe X horizontal et un axe Y vertical, dont l'origine [0, 0] correspond au coin supérieur gauche. Les coordonnées sont entières, exprimées en pixels, et coïncident avec le centre des pixels. Chaque fenêtre ou pixmap possède son propre système de coordonnées. Pour une fenêtre, l'origine est à l'intérieur de la bordure dans le coin supérieur gauche.
Les fenêtres de classe InputOnly doivent être créées avec les paramètres largeur_bord et profondeur à zéro, et le type visuel doit être supporté par l'écran, sinon une erreur BadMatch est générée. La fenêtre parente peut avoir une profondeur et une classe quelconque. Pour une fenêtre de classe InputOutput, le type visuel et la profondeur doivent correspondre à une combinaison supportée par l'écran, sinon une erreur BadMatch est générée. La profondeur ne doit pas nécessairement être la même que celle de la fenêtre parente, mais celle-ci ne peut être une fenêtre de classe InputOnly, sinon une erreur BadMatch est générée. Si un attribut invalide est spécifié pour une fenêtre, une erreur BadMatch est générée.
Lors de la création, la fenêtre n'est pas affichée (mapped) sur le périphérique d'affichage de l'utilisateur. Pour afficher la fenêtre, il faut appeler la fonction XMapWindow. La fenêtre créée utilise initialement le même curseur que sa fenêtre parente. Un autre curseur peut être associé à la fenêtre en appelant la fonction XDefineCursor. La fenêtre sera visible sur l'écran si elle et toutes ses ancêtres sont affichées et qu'aucune de ses ancêtres ne la cache. Toute partie de la fenêtre qui déborde de sa fenêtre parente est tronquée.
XCreateWindow peut générer les erreurs BadAlloc, BadColor, BadCursor, BadMatch, BadPixmap, BadValue, et BadWindow.
La fonction XCreateSimpleWindow crée une fenêtre non affichée, fille de la fenêtre parente spécifiée et de classe InputOutput. Elle retourne l'identifiant de la fenêtre créée (window ID) et provoque la génération d'un événement CreateNotify par le serveur X. La fenêtre créée est placée au sommet de la pile de ses fenêtres soeurs. La profondeur, la classe et le type visuel d'une fenêtre créée par XCreateSimpleWindow sont hérités de la fenêtre parente. Tous les autres attributs de la fenêtre ont leur valeur par défaut, exceptés l'arrière-plan et la bordure.
XCreateSimpleWindow peut générer les erreurs BadAlloc, BadMatch, BadValue, et BadWindow.
typedef struct { Pixmap background_pixmap; /* arrière-plan, None, ou ParentRelative */ unsigned long background_pixel; /* valeur des pixels de l'arrière-plan */ Pixmap border_pixmap; /* bordure de la fenêtre ou CopyFromParent */ unsigned long border_pixel; /* valeur des pixels de la bordure */ int bit_gravity; /* une des valeurs des bits de gravité */ int win_gravity; /* une des valeurs de gravité de fenêtre */ int backing_store; /* NotUseful, WhenMapped, Always */ unsigned long backing_planes; /* plans à mémoriser si possible */ unsigned long backing_pixel; /* valeur de pixel à utiliser lors de la restauration des plans */ Bool save_under; /* les bits sous la fenêtre doivent-ils être mémorisés ? (popups) */ long event_mask; /* jeu d'événements devant être conservés */ long do_not_propagate_mask; /* jeu d'événements ne devant pas être propagés */ Bool override_redirect; /* valeur booléenne pour override_redirect (gestionnaire de fenêtre) */ Colormap colormap; /* palette de couleur associée à la fenêtre */ Cursor cursor; /* curseur affiché (ou None) */ } XSetWindowAttributes;
Pour une description détaillée des membres de cette structure, on se reportera à Xlib - C Language X Interface.
Bits du masque de valeurs pour les attributs de fenêtre :
#define | CWBackPixmap |
(1L<<0)
|
#define | CWBackPixel |
(1L<<1)
|
#define | CWBorderPixmap |
(1L<<2)
|
#define | CWBorderPixel |
(1L<<3)
|
#define | CWBitGravity |
(1L<<4)
|
#define | CWWinGravity |
(1L<<5)
|
#define | CWBackingStore |
(1L<<6)
|
#define | CWBackingPlanes |
(1L<<7)
|
#define | CWBackingPixel |
(1L<<8)
|
#define | CWOverrideRedirect |
(1L<<9)
|
#define | CWSaveUnder |
(1L<<10)
|
#define | CWEventMask |
(1L<<11)
|
#define | CWDontPropagate |
(1L<<12)
|
#define | CWColormap |
(1L<<13)
|
#define | CWCursor |
(1L<<14)
|