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 |