Xlib ( X-kirjasto , venäjän kirjasto "iks" ) on C-kielellä kirjoitettu funktiokirjasto X Window -järjestelmän asiakkaalle .
Sisältää toimintoja vuorovaikutukseen ns. X palvelin. Kirjaston avulla voit käyttää korkeampaa abstraktiotasoa tietämättä yksityiskohtia siitä, miten taustalla oleva X Window System -protokolla toimii .
Jotkut käyttäjäsovellukset käyttävät Xlibiä suoraan (kuten Opera ), toiset käyttävät erityisiä " widget "-työkalusarjoja - "lisäosia" Xlib-ytimen kirjaston päällä.
Xlib - kirjasto ilmestyi noin vuonna 1985 , ja sitä käytetään tällä hetkellä perustana ja pääasiallisena graafisena käyttöliittymänä monissa Unix - kaltaisissa käyttöjärjestelmissä .
XCB -kirjasto on yritys kehittää Xlibille korvaava.
XLib-funktiot voidaan ryhmitellä useisiin luokkiin:
Seuraava ohjelmaesimerkki muodostaa yhteyden X-palvelimeen ja näyttää tervetuloikkunan:
/* Kääntä seuraavaksi. rivi: cc test.c -o test -lX11 */ #include <X11/Xlib.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> extern int errno ; int main ( void ) { Näyttö * d ; Ikkuna w ; XEvent e ; const char * msg = "Hei maailma!" ; int s ; /* Yhdistä X-palvelimeen, jos X-palvelin on etäkoneessa * pitäisi sallia X-palvelinta käyttävässä koneessa * etäyhteydet xhost+-komennolla (katso man xhost) */ if (( d = XOpenDisplay ( getenv ( "DISPLAY" ))) == NULL ) { printf ( "Ei voi muodostaa yhteyttä X-palvelimeen:%s \n " , strerror ( errno )); uloskäynti ( 1 ); } s = XDefaultScreen ( d ); /* Luo ikkuna */ w = XCreateSimpleWindow ( d , RootWindow ( d , s ), 10 , 10 , 200 , 200 , 1 , XBlackPixel ( d , s ), XWhitePixel ( d , s )); /* Mihin tapahtumiin reagoimme */ XSelectInput ( d , w , ExposureMask | KeyPressMask ); /* Näytä ikkuna */ XMapWindow ( d , w ); /* ääretön tapahtumasilmukka */ kun ( 1 ) { XNextEvent ( d , & e ); /* Piirrä ikkuna uudelleen */ if ( e . type == Expose ) { XFillRectangle ( d , w , OletusGC ( d , s ), 20 , 20 , 10 , 10 ); XDrawString ( d , w , DefaultGC ( d , s ), 50 , 50 , msg , strlen ( msg )); } /* Painike klikkaa-poistu */ jos ( esim . tyyppi == Näppäinpainallus ) tauko ; } /* Sulje yhteys X-palvelimeen */ XCloseDisplay ( d ); paluu 0 ; }Asiakas (ohjelma) luo yhteyden X-palvelimeen funktiolla XOpenDisplay, jolle välitetään osoitin ajonaikaisen ympäristömuuttujan kautta määritettyyn DISPLAY-kohtaan. UNIXissa tämä voidaan tehdä export DISPLAY=":0.0" -komennolla . DISPLAY-muuttuja voidaan asettaa myös etäkoneeseen, jossa on X-palvelin. Funktio (makro) DefaultScreenvalitsee nykyisen näytön (X-ikkunassa voi olla useita näyttöjä), XCreateSimpleWindowluo ikkunan ja XSelectInput määrittää tapahtumat, joihin ikkunan tulee vastata. XMapWindownäyttää ikkunan näytöllä ja XNextEventvalitsee jonosta yllä määritellyn tapahtuman. Kun tapahtuma Exposetapahtuu, ikkunaan piirretään suorakulmio ja merkkijono "Hello World!" tulee näkyviin. Kun painat näppäimistön näppäintä, ohjelma poistuu.
X-ikkunajärjestelmä | |
---|---|
Arkkitehtuuri |
|
Ikkunoiden ylläpitäjät |
|
Laajennukset |
|
Toteutukset | |
Standardit | |
Sovellukset |
|
GUI-elementtien työkalupakkit (sarjat) . | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
matalatasoinen _ |
| ||||||||||||||||||||||||||
korkea taso |
|