Xlib ( X-bibliotek , russisk bibliotek "iks" ) er et bibliotek med funktioner til klienten af X Window-systemet , skrevet på C-sproget .
Indeholder funktioner til at interagere med den såkaldte. X server. Biblioteket giver dig mulighed for at bruge et højere abstraktionsniveau uden at kende detaljerne om, hvordan den underliggende X Window System-protokol fungerer .
Nogle brugerapplikationer bruger Xlib direkte (såsom Opera ), andre bruger specielle " widget "-værktøjssæt - "add-ons" oven på Xlib-kernebiblioteket.
Xlib-biblioteket dukkede op omkring 1985 og bruges i øjeblikket som basis og som den primære grafiske brugergrænseflade i mange Unix - lignende operativsystemer .
XCB -biblioteket er et forsøg på at udvikle en erstatning for Xlib.
XLib-funktioner kan grupperes i flere kategorier:
Følgende programeksempel etablerer en forbindelse til X-serveren og viser et velkomstvindue:
/* Kompiler næste. linje: cc test.c -o test -lX11 */ #include <X11/Xlib.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> ekstern int errno ; int main ( void ) { Display * d ; Vindue w ; XEvent e ; const char * msg = "Hej verden!" ; int s ; /* Opret forbindelse til X-serveren, hvis X-serveren er på en ekstern maskine * bør tillades på den maskine, der kører X-serveren * fjernforbindelser med kommandoen xhost+ (se man xhost) */ if (( d = XOpenDisplay ( getenv ( "DISPLAY" ))) == NULL ) { printf ( "Kan ikke oprette forbindelse til X-server:%s \n " , strerror ( errno )); udgang ( 1 ); } s = XDefaultScreen ( d ); /* Opret vindue */ w = XCreateSimpleWindow ( d , RootWindow ( d , s ), 10 , 10 , 200 , 200 , 1 , XBlackPixel ( d , s ), XWhitePixel ( d , s )); /* Hvilke begivenheder vil vi reagere på */ XSelectInput ( d , w , ExposureMask | KeyPressMask ); /* Vis vinduet */ XMapWindow ( d , w ); /* Uendelig hændelsesløkke */ mens ( 1 ) { XNextEvent ( d , & e ); /* Tegn vinduet igen */ if ( e . type == Expose ) { XFillRektangel ( d , w , DefaultGC ( d , s ), 20 , 20 , 10 , 10 ); XDrawString ( d , w , DefaultGC ( d , s ), 50 , 50 , msg , strlen ( msg )); } /* På knappen klik-afslut */ if ( e . type == Tastetryk ) bryde ; } /* Luk forbindelse til X-server */ XCloseDisplay ( d ); returnere 0 ; }Klienten (programmet) opretter en forbindelse til X-serveren med funktionen XOpenDisplay, som sendes en pointer til DISPLAY, defineret gennem en runtime-miljøvariabel. På UNIX kan dette gøres med kommandoen eksport DISPLAY=":0.0". DISPLAY-variablen kan også indstilles til en ekstern maskine, der kører X-serveren. Funktionen (makro) DefaultScreenvælger den aktuelle skærm (et X-vindue kan have flere skærme), XCreateSimpleWindowopretter et vindue og XSelectInput specificerer de hændelser, vinduet skal reagere på. XMapWindowviser vinduet på skærmen og XNextEventvælger den hændelse, der blev defineret ovenfor, fra køen. Når begivenheden Exposeindtræffer, tegnes et rektangel i vinduet, og strengen "Hello World!" vises. Når du trykker på en tast på tastaturet, afsluttes programmet.
X vinduessystem | |
---|---|
Arkitektur |
|
Vinduesbestyrere |
|
Udvidelser |
|
Implementeringer | |
Standarder | |
Ansøgninger |
|
af GUI-elementer | Værktøjssæt (sæt)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lavt niveau |
| ||||||||||||||||||||||||||
højt niveau |
|