Content-type: text/html
Status XGetGeometry(display, d, retour_racine,
retour_x, retour_y,
retour_largeur, retour_hauteur,
retour_largeur_bordure, retour_profondeur)
Display *display;
Drawable d;
Window *retour_racine;
int *retour_x, *retour_y;
unsigned int *retour_largeur, *retour_hauteur;
unsigned int *retour_largeur_bordure;
unsigned int *retour_profondeur;
XGetWindowAttributes peut générer des erreurs BadDrawable et BadWindow.
La fonction XGetGeometry retourne la fenêtre racine et la géométrie courante de la zone de dessin. La géométrie d'une zone de dessin comprend les coordonnées x et y, la largeur, la hauteur, la largeur de la bordure et la profondeur. Ceux-ci sont décrits dans la liste des arguments. Il est légal d'appliquer cette fonction à une fenêtre de classe InputOnly.
typedef struct { int x, y; /* position de la fenêtre */ int width, height; /* largeur et hauteur de la fenêtre */ int border_width; /* largeur de la bordure de la fenêtre */ int depth; /* profondeur de la fenêtre */ Visual *visual; /* la structure visual associée */ Window root; /* fenêtre racine de l'écran contenant la fenêtre */ int class; /* InputOutput, InputOnly */ 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; /* booléen, les bits sous la fenêtre doivent-ils être mémorisés ? */ Colormap colormap; /* palette de couleurs associée à la fenêtre */ Bool map_installed; /* booléen, la palette de couleur est-elle actuellement installée */ int map_state; /* IsUnmapped, IsUnviewable, IsViewable */ long all_event_masks; /* événements sélectionnés par tous les programmes */ long your_event_mask; /* mon masque d'événements */ long do_not_propagate_mask;/* événements à ne pas propager */ Bool override_redirect; /* valeur booléenne pour override-redirect */ Screen *screen; /* pointeur inverse sur l'écran */ } XWindowAttributes;
Les membres x et y représentent le coin externe supérieur gauche relativement à l'origine de la fenêtre parente. Les membres width et height représentent la taille interne de la fenêtre, sans compter sa bordure. Le membre border_width représente la largeur de la bordure de la fenêtre, exprimée en pixels. Le membre depth représente la profondeur de la fenêtre (soit le nombre de bits par pixel pour l'objet). Le membre visual est un pointeur sur la structure Visual associée à l'écran. Le membre root représente la fenêtre racine de l'écran contenant la fenêtre. Le membre class représente la classe de la fenêtre et peut prendre pour valeur soit InputOutput soit InputOnly.
Le membre bit_gravity représente le bit de gravité positionné pour la fenêtre et peut prendre l'une des valeurs suivantes :
ForgetGravity |
EastGravity
|
NorthWestGravity |
SouthWestGravity
|
NorthGravity |
SouthGravity
|
NorthEastGravity |
SouthEastGravity
|
WestGravity |
StaticGravity
|
Le membre win_gravity représente la gravité des fenêtres de la fenêtre et peut prendre l'une des valeurs suivantes :
UnmapGravity |
EastGravity
|
NorthWestGravity |
SouthWestGravity
|
NorthGravity |
SouthGravity
|
NorthEastGravity |
SouthEastGravity
|
WestGravity |
StaticGravity
|
Pour des informations supplémentaires sur la gravité, voir section 3.3.
Le membre backing_store (mémoire auxiliaire) représente la façon dont le serveur X doit maintenir le contenu de la fenêtre lorsqu'elle est retirée de l'affichage. Il peut prendre la valeur WhenMapped, Always, ou NotUseful. Le membre backing_planes représente (par les bits positionnés à 1) quels plans de bits de la fenêtre possèdent des données dynamiques qui doivent être préservées dans la mémoire auxiliaire et pendant les mémorisations des parties cachées (save_under). Le membre backing_pixel représente la valeur à affecter aux plans non pris en charge dans les backing_planes.
Le membre save_under vaut soit True soit False. Le membre colormap représente la palette de couleurs pour la fenêtre spécifiée et peut prendre pour valeur l'ID d'une palette ou None. Le membre map_installed indique si la palette de couleurs est actuellement installée et peut prendre pour valeur True ou False. Le membre map_state indique l'état de la fenêtre et peut prendre pour valeur IsUnmapped, IsUnviewable, ou IsViewable. IsUnviewable est utilisé dans le cas où la fenêtre est affichée, mais une de ses ancêtres ne l'est pas.
Le membre all_event_masks représente la combinaison par un OU inclusif bit à bit de tous les masques d'événements sélectionnés sur la fenêtre par l'ensemble des clients. Le membre your_event_mask représente la combinaison par un OU inclusif bit à bit des masques d'événements sélectionnés par le client effectuant la requête. Le membre do_not_propagate_mask représente la combinaison par un OU inclusif bit à bit des événements qui ne doivent pas se propager.
Le membre override_redirect indique si la fenêtre échappe aux moyens de contrôle des structures (SubstructureRedirectMask) et peut prendre les valeurs True ou False. Les gestionnaires de fenêtre devraient ignorer la fenêtre si ce membre vaut True.
Le membre screen est un pointeur sur l'écran auquel est associée la fenêtre. Cela permet d'obtenir facilement les informations de l'écran sans avoir à le retrouver à partir de la fenêtre racine.