Fonctions et Macros de la XLib

 

black_pixel = BlackPixel (canal, screen)
donne la valeur de pixel (type unsigned long) de couleur noir pour cet écran.

palette = DefaultColormap (canal, screen)
donne la palette par défaut de type Colormap.

gc = DefaultGC (canal, écran);
contexte graphique de type GC associé à la fenêtre racine de l'écran.

écran = DefaultScreen (canal);
renvoie le numéro (type int) d'écran par défaut. 0 si station mono-écran.

Classe = DefaultVisual (canal, screen)
pointeur de type Visual sur la structure de classe visuelle

root = RootWindow (canal, screen);
fenêtre racine de l'écran

white_pixel = WhitePixel (canal, screen)
donne la valeur de pixel (type unsigned long) de couleur blanc pour cet écran.

XAllocNamedColor (canal, palette, def_de_couleur, &couleur_resultat, &couleur_exacte)
Colormap palette; char def_de_couleur[];
XColor couleur_resultat, couleur_exacte;
renvoie pour la définition de couleur donnée une couleur_resultat la plus proche possible relativement à la palette disponible ; couleur_exacte est la vraie.

XCirculateSubwindowsDown (canal, fenêtre_mère)
déclenche une permutation circulaire de la pile des sous-fenêtres vers le bas de la pile.

XCirculateSubwindowsUp (canal, fenêtre_mère)
déclenche une permutation circulaire de la pile des sous-fenêtres (de la fenêtre_mère) vers le haut de la pile.

XChangeGC (canal, gc, xgc_masq, &xgcvaleurs)
unsigned long xgc_masq; XGCValues xgcvaleurs;
change certaines valeurs de gc à partir de xgcvaleurs seulement celles sélectionnées dans le masque xgc_masq.

XChangeWindowAttributes (canal, fenêtre, masq_attrib, &attrib);
unsigned long masq_attrib; XSetWindowAttributes attrib;
modifie les attributs sélectionnés dans le masque masq_attrib aux valeurs indiquées dans attrib.

XClearWindow (canal, win);
efface le contenu puis re-affiche entièrement le fond de la fenêtre.

XCloseDisplay (canal);
ferme le canal d'affichage.

XCopyArea (canal, source, dest, gc, x, y, larg, haut, dest_x, dest_y)
Drawable source, dest;
copie la zone rectangulaire de coin gauche (x,y) de largeur larg et hauteur haut depuis source vers le coin gauche (dest_x, dest_y) en destination

curseur = XCreateFontCursor (canal, numéro_curseur)
Cursor curseur; identifiant de ressource curseur
int numéro_curseur; numéro de curseur standard
Crée un curseur en utilisant les caractéristiques codées dans cursorfont.h, notamment le hotspot, point sensible, pointeur actif.

gc = XCreateGC (canal, planche, xgc_masq, &xgcvaleurs);
Drawable planche; une fenêtre ou un pixmap
unsigned long xgc_masq; XGCValues xgcvaleurs;
crée une ressource gc (de type GC), attachée à l'écran, à partir des valeurs de xgcvaleurs sélectionnées dans le masque xgc_masq. planche permet d'affecter les caractéristiques : fenêtre root et profondeur du nouveau gc.

XCreatePixmap (canal, planche, larg, haut, prof)
créé un pixmap (de type Pixmap) selon les dimensions indiquées dans la planche (de type Drawable).

XCreatePixmapCursor (canal, forme, masque, pixel_avp, pixel_arp, x_hot, y_hot)
Bitmap masque, forme;
créé un curseur avec pixel_avp pour les points valant 1 du bitmap forme et pixel_arp pour les points valant 0 du bitmap forme. les pixels du pixmap obtenu seront affichés selon le masque. x_hot et y_hot sont les coordonnées du point sensible du curseur relativement au coin en haut à gauche du pixmap.

XCreateBitmapFromData (canal, draw, bitmap_bits, bitmap_width,
bitmap_height)
Drawable draw;
bitmap_bits, bitmap_width, bitmap_height; caractéristiques du fichier (include) bitmap
crée un pixmap de profondeur 1 à partir du fichier bitmap.

XCreatePixmapFromBitmapData (canal, draw, bitmap_bits, bitmap_width,
bitmap_height, pixel_avp, pixel_arp, prof)
Drawable draw;
bitmap_bits, bitmap_width, bitmap_height; caractéristiques du fichier (include) bitmap
unsigned long pixel_avp, pixel_arp; pixel de foregroung et background
int prof; profondeur du pixmap créé
crée un pixmap avec pixel_avp pour les points valant 1 du bitmap et pixel_arp pour les points valant 0.

nouvelle = XCreateSimpleWindow (canal, parente, x, y, larg, haut, bord, pixel_bord, pixel_arplan);
window parente;
int x,y, larg, haut, bord;
unsigned long pixel_bord, pixel_arplan;
crée une nouvelle fenêtre (fille de parente), mais ne l'affiche pas ! Le coin gauche de la fenêtre sera en coordonnées (x,y) par rapport au coin haut-gauche de sa parente. La nouvelle fenêtre aura une largeur de larg points et une hauteur de haut points, sa couleur de fond sera pixel_arplan. Autour d'elle, une bordure de largeur bord points et de couleur pixel_bord.

nouvelle = XCreateWindow (canal, fen_parent, x, y, larg, haut, bord, prof, classe_ES, classe_vis, masq_attrib, &attrib);
crée une nouvelle fenêtre comme XCreateSimpleWindow, mais en précisant plus d'attributs :
unsigned int classe_ES; InputOuput, rarement InputOnly (zone sensible, non affichable)
Visual * classe_vis; généralement CopyFromParent
int prof; nombre de plans pour les pixels
unsigned long masq_attrib; masque des attributs affectés
XsetWindowAttributes attrib;

int XDefaultDepth (canal, screen)
donne la profondeur par défaut de la fenêtre root

XDefineCursor (canal, fenêtre, cursor);
sélectionne cursor (de type Cursor) comme nouveau curseur courant pour la fenêtre.

XDeleteContext (canal, fenetre, contexte)
XContext contexte;
supprime l'association de données à la fenêtre dans tel contexte.

XDestroyWindow (canal, win);
libère la resource fenêtre win.

int XDisplayCells (canal, screen)
donne le nombre de cellules dans la palette (Colormap)

XDisplayKeycodes (canal, &min, &max)
int min, max;
renvoie la valeur keycode minimale et la valeur de keycode maximale.

int XDisplayPlanes (canal, screen)
donne la profondeur de l'écran

XDrawRectangle (canal, fenêtre, gc, x, y, larg, haut)
dessine un rectangle dans fenêtre ( Drawable ) selon les spécifications du contexte graphique gc, de coin gauche (x,y) et de largeur larg et de hauteur haut.

XDrawString (canal, fenetre, gc, x, y, chaine, nbre);
GC gc; char *chaine; Drawable fenetre;
dessine les nbre caractères de la chaine selon les caractéristiques de la ressource gc sur la ligne d'écriture commencant en (x,y) de la fenêtre.

char* XFetchBytes (canal, &nombre)
int nombre;
renvoi (retourne) les caractères de la propriété XA_CUT_BUFFER0 de la fenêtre racine. nombre est affecté du nombre de caractères renvoyés.

XFillRectangle (canal, fenêtre, gc, x, y, larg, haut)
dessine un rectangle plein dans fenêtre ( Drawable ) selon les spécifications du contexte graphique gc, de coin gauche (x,y) et de largeur larg et de hauteur haut.

XFindContext (canal, fenetre, contexte, pointeur_de_donnée)
XContext contexte; XPointer* pointeur_de_donnée;
recherche l'association de données à la fenêtre dans tel contexte, valeur retournée dans pointeur_de_donnée (cast nécessaire); s'il n'y a pas d'association, XFindContext renvoie 0.

XFlush (canal);
force le vidage du tampon d'émission des requêtes (communication asynchrone). Les requêtes sont envoyées au serveur, mais pas pour autant exécutées et terminées !

XGetGCValues (canal, gc, xgc_masq, &xgcvaleurs)
unsigned long xgc_masq;
XGCValues xgcvaleurs;
récupère dans xgcvaleurs les valeurs de gc sélectionnées dans le masque xgc_masq.

XGetGeometry (canal, sous-fenêtre, &root, &x, &y, &largeur, &hauteur, &epais_bordure, &profondeur)
requête à sémaphore coûteuse en temps. Récupère la géométrie actuelle d'une sous-fenêtre. Résultats :
root la fenêtre racine,
(x,y) coordonnées du coin gauche dans sa fenêtre parente,
sa largeur, sa hauteur, son épaisseur de bordure, sa profondeur (nombre de plan).

XGetKeyboardMapping (canal, a, b, &val)
int a, b, val;
affecte val du nombre maximal de keysyms associés à un keycode pour les keycodes de valeurs comprises entre les valeurs a et a+b-1.

XGrabKeyboard (disp, fen, owner_events, pointer_mode, keyboard_mode, time)
Bool owner_events; True si les events sont traités normalement pour les autres fenêtres de l'application
int pointer_mode, keyboard_mode; GrabModeAsync ou GrabModeSync
int time; retard au déclenchement du grab sinon CurrentTime
après cet appel, la fenêtre fen accapare les événements clavier.

XGrabPointer (...)
comme XGrabKeyboard, mais pour accaparer le pointeur souris

XKeycodeToKeysym (canal, keycode, n)
donne le n-ième keysym associé au keycode. n commence à 0. A chaque keycode est "mappé" une liste indicée de keysyms associés. Exemple pour le keycode de la touche c : 0x36, le mapping est le suivant c C c C , cad en indice 0 correspondant à la "touche normale" est associé le keysym c, en indice 1 correspondant à la touche plus le modifier Shift est associé le keysym C, ...
NoSymbol : valeur si pas de keysym associé.

XKeysymToString (keysym)
donne la dénomination textuelle (en chaine ascci terminée par la valeur 0) du keysym. Exemples : C Shift

nbre = XLookupString (&event, chaine, max, &symtouche, 0);
int nbre, max;
char chaine[MAX]; max+1 >= MAX
Keysym symtouche;
traduit en symbole keysym et chaine ascii un événement issu d'une frappe au clavier. résultat :
symtouche le keysym correspondant au keycode de la touche frappée et aux modifiers alors enfoncés,
chaine la chaîne des caractères ascii correspondant, si possible ! attention, pas de NULL en fin de chaîne,
nbre nombre de caractère dans chaîne.

police = XLoadFont (canal, fichier_de_fonte)
Font police;
crée une ressource police à partir du fichier_de_fonte.

XLowerWindow (canal, fenêtre)
place la fenêtre en bas de sa pile.

XMapRaised (canal, fenêtre)
affiche la fenêtre en l'ayant empilée au dessus de la pile de ses soeurs.

XMapSubwindows (canal, fenêtre)
affiche toutes les descendantes de la fenêtre en commençant par celle au sommet de la pile. Elles ne peuvent être visibles que si la fenêtre mère le devient.

XMapWindow (canal, fenêtre)
affiche la fenêtre sans modifier son rang dans la pile.

XMoveWindow (canal, sous-fenêtre, new_x, new_y)
re-positionne la sous-fenêtre en plaçant son coin gauche en (new_x, new_y) dans sa fenêtre parente.

XNextEvent (canal, &event)
XEvent event;
fournit le prochain événement de la file d'attente dans event, ou l'attend si elle est vide.

canal = XOpenDisplay (char *ecran_de_station)
Display *canal;
établit un canal d'affichage (un circuit de communication) entre votre programme client et une "station X" ou terminal X.
La structure canal reçoit les caractéristiques de connection.
si ecran_de_station = NULL, la valeur par défaut est celle de $DISPLAY, sinon elle définit telle station, tel écran, voire tel type de réseau.

attributs = XQueryFont (canal, police)
XFontStruct attributs;
récupère les attributs de la police.

XQueryPointer (display, win, &fen-root, &fen_pointée, &root_x, &root_y, &win_x, &win_y, &état);
Window win, fen-root, fen_pointée; int root_x, root_y, fen_x, fen_y; unsigned int état;
récupère la position de la souris relativement à la fenêtre win : coordonnées win_x, win_y. Remarque : le pointeur n'est pas nécessairement dans la fenêtre win. fen_root est la fenêtre racine et root_x root_y les coordonnées du pointeur dans root. fen_pointée est la fenêtre dans laquelle se trouve le pointeur. état code l'enfoncement des touches modifier et boutons de la souris.

XRaiseWindow (canal, fenêtre)
place la fenêtre au sommet de sa pile.

XResizeWindow (canal, sous-fenêtre, largeur, hauteur)
re-dimensionne la hauteur et largeur d'une sous-fenêtre.

XRestackWindows (canal, tab_de_fenêtres)
Window tab_de_fenêtres[];
réorganise la pile de toutes les fenêtres du tableau en commençant par la première qui sera au sommet de la pile. Elles doivent être parente, et celles absentes du tableau seront empilés en dessous.

XSaveContext (canal, fenetre, contexte, (XPointer)donnée)
XContext contexte;
ajoute l'association des données à la fenêtre dans tel contexte, ou encore associe les données à la fenêtre dans ce contexte.

XSelectInput (canal, fenêtre, masque)
int masque;
sélectionne les événements codés dans le masque pour la fenêtre.

XSetBackground (canal, gc, valeur_de_pixel)
change facilement le pixel de background de gc.

XSetFont (canal, gc, police)
GC gc; Font police;
modifie la police d'un contexte graphique.

XSetForeground (canal, gc, valeur_de_pixel)
change facilement le pixel de foreground de gc.

XSetFunction (canal, gc, fonction)
change facilement la fonction (de type int) de transfert du dessin dans le contexte graphique gc.

XSetInputFocus (canal, fen, f_renvoi, laps)
Window fen, f_renvoi; Time laps;
attribue à la fenêtre fen le focus du clavier dans "laps" de millisecondes ou immédiatement (CurrentTime). Si fen devient invisible, le focus sera attribuée alors à f_renvoi ou encore à RevertToParent,RevertToPointerRoot, RevertToNone.

XSetWindowBackgroundPixmap (canal, fenêtre, pixmap)
définit un fond au motif du pixmap (de type Pixmap) pour la fenêtre.

XSetWindowBorderWidth (canal, sous-fenêtre, bordure)
re-dimensionne l'épaisseur de bordure d'une sous-fenêtre.

XStoreBytes (canal, buffer, nombre)
char * buffer; int nombre;
range les nombre caractères de buffer dans la propriété XA_CUT_BUFFER0 de la fenêtre racine.

XStoreName (canal, fenetre, nom)
char * nom;
indique au gestionnaire de fenêtre le nom que l'on souhaite donner à celle-ci.

XSync (canal, bool)
int bool;
Si bool = 0, permets de s'assurer que toutes les requêtes ont été traitées ainsi que les événements avant de passer à l'instruction suivante.
Si bool=1, elle purge aussi la file d'attente des événements !

XSynchronize (canal, bool)
int bool;
si bool = 1, passage en mode synchrone (très lent), sinon bool = 0 pour le mode asynchrone. En synchrone, elle force le vidage du tampon de requêtes, et fait attendre le client chaque terminaison de requête.

XTextExtents (attributs, texte, nombre, &direction, &haut, &bas, &car_modele)
XFontStruct attributs;
char texte[];
int nombre, direction, haut, bas;
XCharStruct car_modele;
calcule, selon les attributs d'une police, pour un texte de tel nombre de caractère, sa direction, la hauteur maximale utilisée par les têtes, et en bas les queues, et une "boite" maximale englobant tous ses caractères dans car_modele.

XTextWidth (police_attributs, texte, nombre)
XFontStruct police_attributs;
calcule la largeur totale nécessaire au dessin des nombre caractères de texte selon les attributs de la police.

XUngrabKeyboard (canal, time);
annule la monopolisation du clavier dans quelques temps (time) ou maintenant CurrentTime

XUngrabPointer (canal, time);
annule la monopolisation du pointeur de souris dans quelques temps (time) ou maintenant CurrentTime

XContext XUniqueContext();
crée un contexte d'association de données à des fenêtres.

XUnmapSubwindows (canal, fenêtre_mère)
retire les sous-fenêtres de l'écran sans modifier leur rang dans la pile.

XUnmapWindow (canal, fenêtre)
retire la fenêtre de l'écran sans modifier son rang dans la pile.

 
index général fonctions de la XLib événements types dans XLib