Xlib ( knihovna X , ruská knihovna "iks" ) je knihovna funkcí pro klienta systému X Window napsaná v jazyce C.
Obsahuje funkce pro interakci s tzv. X server. Knihovna vám umožňuje používat vyšší úroveň abstrakce , aniž byste znali podrobnosti o tom, jak základní protokol X Window System funguje .
Některé uživatelské aplikace používají Xlib přímo (např. Opera ), jiné používají speciální " widget " toolkity - "add-ons" nad základní knihovnou Xlib.
Knihovna Xlib se objevila kolem roku 1985 a v současnosti se používá jako základ a jako hlavní grafické uživatelské rozhraní v mnoha operačních systémech podobných Unixu .
Knihovna XCB je pokusem vyvinout náhradu za Xlib.
Funkce XLib lze seskupit do několika kategorií:
Následující příklad programu naváže připojení k X serveru a zobrazí uvítací okno:
/* Další kompilace. řádek: cc test.c -o test -lX11 */ #include <X11/Xlib.h> #include <stdio.h> #include <stdlib.h> #include <řetězec.h> #include <errno.h> extern int errno ; int main ( void ) { Displej * d ; Okno w ; XUdálost e ; const char * msg = "Ahoj světe!" ; int s ; /* Připojení k X serveru, pokud je X server na vzdáleném počítači * by mělo být povoleno na počítači se spuštěným X serverem * vzdálená připojení pomocí příkazu xhost+ (viz man xhost) */ if (( d = XOpenDisplay ( getenv ( "DISPLAY" ))) == NULL ) { printf ( "Nelze se připojit X server:%s \n " , strerror ( errno )); výstup ( 1 ); } s = XDefaultScreen ( d ); /* Vytvořit okno */ w = XCreateSimpleWindow ( d , RootWindow ( d , s ), 10 , 10 , 200 , 200 , 1 , XBlackPixel ( d , s ), XWhitePixel ( d , s )); /* Na jaké události budeme reagovat */ XSelectInput ( d , w , ExposureMask | KeyPressMask ); /* Zobrazí okno */ XMapWindow ( d , w ); /* Nekonečná smyčka událostí */ zatímco ( 1 ) { XNextEvent ( d , & e ); /* Překreslete okno */ if ( např . typ == Vystavit ) { XFillRectangle ( d , w , DefaultGC ( d , s ), 20 , 20 , 10 , 10 ); XDrawString ( d , w , DefaultGC ( d , s ), 50 , 50 , msg , strlen ( msg )); } /* Při kliknutí na tlačítko a ukončení */ if ( např . typ == KeyPress ) zlomit ; } /* Zavřít připojení k X serveru */ XCloseDisplay ( d ); návrat 0 ; }Klient (program) vytvoří připojení k X serveru pomocí funkce XOpenDisplay, které je předán ukazatel na DISPLAY, definovaný prostřednictvím proměnné prostředí runtime. V systému UNIX to lze provést příkazem export DISPLAY=":0.0". Proměnnou DISPLAY lze také nastavit na vzdálený počítač, na kterém běží X server. Funkce (makro) DefaultScreenvybere aktuální obrazovku (X Window může mít více obrazovek), XCreateSimpleWindowvytvoří okno a XSelectInput určí události, na které má okno reagovat. XMapWindowzobrazí okno na obrazovce a XNextEventvybere z fronty událost, která byla definována výše. Když k události Exposedojde, v okně se nakreslí obdélník a zobrazí se řetězec „Ahoj světe!“. Když stisknete klávesu na klávesnici, program se ukončí.
Systém X Window | |
---|---|
Architektura |
|
Správci oken |
|
Rozšíření |
|
Implementace | |
Normy | |
Aplikace |
|
prvků GUI | Toolkity (sady)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
na nízké úrovni |
| ||||||||||||||||||||||||||
vysoká úroveň |
|