Biblioteki dla systemu X Window
Transkrypt
Biblioteki dla systemu X Window
Biblioteki dla systemu X Window Bogdan Kreczmer ZPCiR ICT PWR pokój 307 budynek C3 [email protected] Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostepiony ˛ pod warunkiem wykorzystania wyłacznie ˛ do własnych prywatnych potrzeb i może on by ć kopiowany wyłacznie ˛ w całości, razem z ninijesza˛ strona˛ tytułowa. ˛ – BK, ZPCiR - ICT - PWr – X Window Aplikacja Programu Pocztowego Aplikacja Pseudo TTY Window Manager Emulator Terminala Biblioteka X X Toolkit Biblioteka X Biblioteka X Sieciowy protokol X X Serwer X Serwer Biblioteka Obslugi Urzadzen Biblioteka obslugi Urzadzen Klawiatura Mysz Ekran Ekran Klawiatura Ekran Mysz Rysunek 1: Przykład struktury systemu X Window. Biblioteki dla systemu X Window 1 Ważniejsze zalecenia projektowe twórców X Nie dodawaj nowej własności dopóki aplikacja nie może być bez niej zrealizowana. Ważniejszym jest określenie czym system nie jest niż czym on jest. Nie staraj sie˛ wychodzić na przeciw wszystkim potrzebom świata, raczej twórz system jako rozszerzalny poprzez dodawanie wyższych warst w sposób zgodny z warstwami niższymi. Jedyna˛ rzecza˛ gorsza˛ od generalizacji na podstawie jednego przykładu jest generalizacja bez żadnego przykładu. Jeżeli problem nie jest całkowicie zrozumiały prawdopodone jest, że najlepszym rozwiazaniem ˛ jest nie dostarczenie żadnego rozwiazania. ˛ Jeżeli można otrzymać 90% pożadanych ˛ efektów wykonujac ˛ 10% pracy, która˛ należałoby wyknonać, aby uzyskać 100%, to wybierz rozwiazanie ˛ mniej pracochłonne. Izoluj złożonść problemów, tak dalece jak to jest tylko możliwe. Dostarczaj raczej mechanizmów niż reguły. W szczególno ści reguły tworzenia interfejsu użytkownika pozostaw w rekach ˛ klienta. Biblioteki dla systemu X Window 2 Pakiety narzedziowe ˛ (toolkits) Xt Intrinsics — jest cz˛eścia˛ systemu X Window. OpenLook — bezpłatny pakiet stworzony przez firme˛ Sun. Zbudowany został w oparciu o bibliotek˛e XView, która jest zbliżona do Xt. Firma Sun wraz z innymi firmami komercyjnymi zaadaptowała środowisko CDE (Common Desktop Environment) korzystaja˛ cego z pakietu Motif. Oznacza to powolne zanikanie pakietu OpenLook. Motif — implementuje standard OSF (Open Software Foundation) zaprojektowany w celu zapewnienia jednolitego stylu i wygladu ˛ pulpitu w środwisku UNIX. Inne pakiety: Xft — Pongo — przeznaczony jest do konfigurowania, selekcji i renderowania różnego typu czcionek przy zastosowaniu protokołu X. wykorzystuje Xft. Umożliwia renderowanie tekstu (różne czcionki i powiekszenia). ˛ Biblioteki dla systemu X Window 3 Biblioteki wieloplatformowe wxWindows — (od 1992) pierwsze jej wersje napisane zostały przez Juliana Smarta (Artificial Intelligence Applications Institute, University of Edinburgh). Inspiracja˛ do stworzenia tej biblioteki były jego prace nad narz˛edziem typu meta-CASE nazwanym Hardy. Ciekawa˛ cecha˛ tego pakietu jest to, że może on pracowa ć z różnymi bibliotekami: wxWindows dla X11 (wxX11) wxWindows dla GTK+ (wxGTK) wxWindows dla Nano-X (wxNano-X) wxWindows dla Microwindows (wxMicrowindows) wxWindows dla SciTech MGL (wxMGL) wxWindows dla MS Windows CE (wxWinCE) Strona projektu: http://www.wxWindows.org Biblioteki dla systemu X Window 4 Biblioteki wieloplatformowe GTK+ — nazwa pakietu jest zwiazana ˛ z tym, że biblioteka ta wykorzystywana była w programie GIMP (Gnu Image Manipulation Project). Pakiet napisany jest w jezyku ˛ C, jednak mimo to jest zorientowany obiektowo. Wykorzystuje on bibliteki: GLib, Pango (rendering tekstu) oraz ATK (dostarcza zbiór interfejsów). Obecnie biblioteka ta jest wykorzystywana w projekcie GNOME. Strona projektu: http://www.gtk.org Biblioteki dla systemu X Window 5 Biblioteki wieloplatformowe Qt — ma charakter komercyjny. Pierwsza komercyjna wersja ukazała sie˛ w 1996. Darmowa wersja tej biblioteki wykorzystana została w projekcie KDE. Z tego też powodu podobnie jak GTK+ stała sie˛ standardowym komponentem dystrybucji Linuksowych. Oferuje wsparcie dla bardzo wielu platform: MS/Windows - 95, 98, NT 4.0, ME, and 2000 Unix/X11 - Linux, Sun Solaris, HP-UX, Compaq Tru64 UNIX, IBM AIX, SGI IRIX i wiele innych. Macintosh - Mac OS X. Strona projektu: http://www.trolltech.com Biblioteki dla systemu X Window 6