table of contents
XConfigureWindow(3X11) | XLIB FUNCTIONS | XConfigureWindow(3X11) |
NOM¶
XConfigureWindow, XMoveWindow, XResizeWindow, XMoveResizeWindow, XSetWindowBorderWidth, XWindowChanges - configuration de fenêtre et structure des modifications de fenêtre
SYNTAXE¶
XConfigureWindow(display, f, masque,
valeurs)
Display *display;
Window f;
unsigned int masque;
XWindowChanges *valeurs;
XMoveWindow(display, f, x, y)
Display *display;
Window f;
int x, y;
XResizeWindow(display, f, largeur,
hauteur)
Display *display;
Window f;
unsigned int largeur, hauteur;
XMoveResizeWindow(display, f, x, y,
largeur, hauteur)
Display *display;
Window f;
int x, y;
unsigned int largeur, hauteur;
XSetWindowBorderWidth(display, f,
largeur_bordure)
Display *display;
Window f;
unsigned int largeur_bordure;
ARGUMENTS¶
- display
- Spécifie la connexion au serveur X.
- masque
- Spécifie les valeurs de la fenêtre qui sont définies dans l'argument valeurs. Ce masque est la combinaison par un OU inclusif bit à bit des masques correspondant aux valeurs valides. Si le masque vaut zéro, les valeurs sont ignorées et ne sont pas référencées.
- valeurs
- Spécifie la structure XWindowChanges.
- f
- Spécifie la fenêtre à configurer, déplacer ou dimensionner.
- largeur_bordure
- Spécifie la largeur de la bordure de la fenêtre.
- largeur
-
- hauteur
- Spécifient la largeur et la hauteur, qui sont les dimensions intérieures de la fenêtre.
- x
-
- y
- Spécifient les coordonnées x et y, qui définissent le nouvel emplacement du pixel supérieur-gauche de la bordure de la fenêtre ou de la fenêtre elle-même si elle n'a pas de bordure ou définissent la nouvelle position de la fenêtre relativement à sa fenêtre mère.
DESCRIPTION¶
La fonction XConfigureWindow utilise les valeurs spécifiées dans la structure XWindowChanges pour reconfigurer la taille, la position, la bordure et le niveau dans la pile de la fenêtre. Les valeurs non spécifiées sont reprises de la géométrie courante de la fenêtre.
Si une fenêtre soeur est spécifiée sans stack_mode (mode d'empilement) ou si la fenêtre n'est pas en réalité une fenêtre soeur, une erreur BadMatch est générée. Noter que les calculs pour BottomIf, TopIf, et Opposite sont effectués selon la géométrie finale de la fenêtre (telle qu'elle est décrite par les autres arguments passés à XConfigureWindow), et non selon sa géométrie initiale. Les contenus mémorisés (backing store) de la fenêtre, de ses descendantes et de toute fenêtre nouvellement visible sont soit perdus soit modifiés pour refléter les contenus présents sur l'écran (selon l'implémentation).
XConfigureWindow peut générer les erreurs BadMatch, BadValue, et BadWindow.
La fonction XMoveWindow déplace la fenêtre spécifiée aux coordonnées x et y spécifiées, mais ne change ni sa taille, ni son statut d'affichage et ne modifie pas sa position dans la pile. Déplacer une fenêtre affichée peut éventuellement provoquer la perte de son contenu si elle est cachée par une fenêtre non fille et si aucun contenu mémorisé n'existe. Si le contenu de la fenêtre est perdu, le serveur X génère des événements Expose. Déplacer une fenêtre affichée provoque la génération d'événements Expose pour toute fenêtre précédemment cachée.
Si le flag override-redirect (NDT. « surcharge-de-la-redirection ») de la fenêtre est False et si un autre client a sélectionné SubstructureRedirectMask sur la fenêtre parente, le serveur X génère un événement ConfigureRequest et aucun traitement supplémentaire n'est réalisé. Sinon, la fenêtre est déplacée.
XMoveWindow peut générer une erreur BadWindow.
La fonction XResizeWindow modifie les dimensions intérieures de la fenêtre spécifiée, sans inclure ses bords. Cette fonction ne change pas les coordonnées du point supérieur-gauche ou l'origine et ne change pas le niveau de la fenêtre dans la pile. Modifier la taille d'une fenêtre affichée peut conduire à la perte de son contenu et générer des événements Expose. Si une fenêtre affichée est rendue plus petite, modifier sa taille génère des événements Expose sur les fenêtres qu'elle cachait précédemment.
Si le flag override-redirect de la fenêtre est False et si un autre client a sélectionné SubstructureRedirectMask sur la fenêtre parente, le serveur X génère un événement ConfigureRequest et aucun traitement supplémentaire n'est réalisé. Si la largeur ou la hauteur valent zéro, une erreur BadValue est générée.
XResizeWindow peut générer des erreurs BadValue et BadWindow.
La fonction XMoveResizeWindow modifie la taille et l'emplacement de la fenêtre spécifiée sans changer son niveau dans la pile. Déplacer et redimensionner une fenêtre affichée peut générer un événement Expose sur la fenêtre. Selon les nouvelles taille et position passées en paramètre, déplacer et redimensionner une fenêtre peut générer des événements Expose sur les fenêtres qu'elle cachait précédemment.
Si le flag override-redirect de la fenêtre est False et si un autre client a sélectionné SubstructureRedirectMask sur la fenêtre parente, le serveur X génère un événement ConfigureRequest et aucun traitement supplémentaire n'est réalisé. Sinon, la taille et la position de la fenêtre sont modifiées.
XMoveResizeWindow peut générer des erreurs BadValue et BadWindow.
La fonction XSetWindowBorderWidth change la largeur de la bordure de la fenêtre spécifiée en lui donnant la valeur spécifiée.
XSetWindowBorderWidth peut générer une erreur BadWindow.
STRUCTURES¶
La structure XWindowChanges contient :
/* Bits du masque de valeurs de configuration d'une fenêtre */
#define | CWX | (1<<0) |
#define | CWY | (1<<1) |
#define | CWWidth | (1<<2) |
#define | CWHeight | (1<<3) |
#define | CWBorderWidth | (1<<4) |
#define | CWSibling | (1<<5) |
#define | CWStackMode | (1<<6) |
/* Valeurs */ typedef struct { int x, y; int width, height; int border_width; Window sibling; int stack_mode; } XWindowChanges;
Les membres x et y sont utilisés pour modifier les coordonnées x et y de la fenêtre, qui sont relatives à l'origine de sa fenêtre parente et indiquent la position du coin extérieur supérieur-gauche de la fenêtre. Les membres width (largeur) et height (hauteur) sont utilisés pour modifier les dimensions intérieures de la fenêtre, sans inclure la bordure, et doivent être non nuls, sinon une erreur BadValue est générée. Une tentative de configuration de la fenêtre racine n'a aucun effet.
Le membre border_width est utilisé pour modifier la largeur de la bordure (exprimée en pixels). Noter que modifier uniquement la largeur de la bordure ne change pas la position du coin extérieur supérieur-gauche de la fenêtre mais change la position absolue de l'origine de la fenêtre. Si l'on essaie de fixer l'attribut border-width d'une fenêtre de classe InputOnly à une valeur non nulle, une erreur BadMatch est générée.
Le membre sibling (fenêtre soeur) est utilisé pour déterminer la fenêtre soeur de référence pour la modification de l'empilement. Le stack_mode (mode d'empilement) est utilisé pour déterminer comment l'empilement de la fenêtre sera modifié et peut valoir Above, Below, TopIf, BottomIf, ou Opposite.
DIAGNOSTICS¶
- BadMatch
- Une fenêtre de classe InputOnly est utilisée à la place d'un Drawable.
- BadMatch
- Des arguments ou paires d'arguments ont des types et des valeurs corrects, mais ne satisfont pas à d'autres contraintes induites par la requête.
- 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 ne désigne pas une fenêtre définie.
VOIR AUSSI¶
XChangeWindowAttributes(3X11), XCreateWindow(3X11),
XDestroyWindow(3X11), XMapWindow(3X11), XRaiseWindow(3X11),
XUnmapWindow(3X11)
Xlib - C Language X Interface
TRADUCTION¶
Bertrand Duret, 2001.
Release 6.4 | X Version 11 |