table of contents
XCreateWindow(3X11) | XLIB FUNCTIONS | XCreateWindow(3X11) |
NOM¶
XCreateWindow, XCreateSimpleWindow, XSetWindowAttributes - création de fenêtres et structure des attributs d'une fenêtre
SYNTAXE¶
Window XCreateWindow(display, parent, x,
y, largeur, hauteur, largeur_bord,
profondeur,
classe, type_visuel, masque, attributs)
Display *display;
Window parent;
int x, y;
unsigned int largeur, hauteur;
unsigned int largeur_bord;
int profondeur;
unsigned int classe;
Visual *type_visuel
unsigned long masque;
XSetWindowAttributes *attributs;
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;
ARGUMENTS¶
- attributs
- Spécifie la structure contenant les valeurs à considérer (selon le masque de valeurs spécifié). Les bits appropriés doivent être positionnés dans le masque de valeurs pour indiquer quels attributs ont été renseignés dans la structure.
- arrière-plan
- Spécifie la valeur des pixels pour l'arrière-plan de la fenêtre.
- bordure
- Spécifie la valeur des pixels pour la bordure de la fenêtre.
- largeur_bord
- Spécifie la largeur en pixels de la bordure de la fenêtre créée.
- classe
- Spécifie la classe de la fenêtre créée. Les valeurs possibles sont InputOutput, InputOnly, ou CopyFromParent. La valeur CopyFromParent signifie que la classe est héritée de la fenêtre parente.
- profondeur
- Spécifie la profondeur de la fenêtre. La valeur CopyFromParent signifie que la profondeur est héritée de la fenêtre parente.
- display
- Spécifie la connexion au serveur X.
- parent
- Spécifie la fenêtre parente.
- masque
- Spécifie quels attributs de la fenêtre sont définis par l'argument attributs. Ce masque est la combinaison par un OU inclusif bit à bit des masques correspondant aux attributs valides. Si le masque vaut zéro, les attributs sont ignorés et ne sont pas référencés.
- type_visuel
- Spécifie le type visuel (codage des couleurs). La valeur CopyFromParent signifie que le type visuel est hérité de la fenêtre parente.
- largeur
-
- hauteur
- Spécifie la largeur et la hauteur de la fenêtre créée. Ce sont les dimensions intérieures de la fenêtre ; elles n'incluent pas la bordure.
- x
-
- y
- Spécifie les coordonnées x et y du coin supérieur gauche de la fenêtre dans le référentiel de sa fenêtre parente. Elles correspondent à la position du coin de la fenêtre extérieur à la bordure, par rapport au coin de la fenêtre parente intérieur à la bordure.
DESCRIPTION¶
La fonction XCreateWindow crée une fenêtre non affichée, fille de la fenêtre parente spécifiée. 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.
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.
STRUCTURES¶
La structure XSetWindowAttributes contient les membres :
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) |
DIAGNOSTICS¶
- BadAlloc
- Le serveur a échoué dans l'allocation de la ressource ou de la mémoire serveur requise.
- BadColor
- La valeur d'un argument Colormap (palette de couleur) ne désigne pas une palette de couleur définie.
- BadCursor
- La valeur d'un argument Cursor (curseur) ne désigne pas un curseur défini.
- BadMatch
- Les valeurs n'existent pas pour une fenêtre de classe InputOnly.
- BadMatch
- Des arguments ou paires d'arguments ont des types et des valeurs correctes, mais ne satisfont pas à d'autres contraintes induites par la requête.
- BadPixmap
- La valeur d'un argument Pixmap ne désigne pas une pixmap définie.
- BadValue
- Des valeurs numériques sont hors des limites autorisées par la requête. Sauf précision contraire, toutes les valeurs permises par le type d'un argument sont acceptées par une requête. Un argument défini par une énumération de valeurs peut générer cette erreur.
- BadWindow
- La valeur d'un argument Window (fenêtre) ne désigne pas une fenêtre définie.
VOIR AUSSI¶
XChangeWindowAttributes(3X11), XConfigureWindow(3X11),
XDefineCursor(3X11), XDestroyWindow(3X11), XMapWindow(3X11),
XRaiseWindow(3X11), XUnmapWindow(3X11)
Xlib - C Language X Interface
TRADUCTION¶
Bertrand Duret, 2001.
Release 6.4 | X Version 11 |