Open Source im professionellen Einsatz

Wegweiser durch die Gnome-APIs

Spurensuche

Der Desktop mit der Pfote findet auch hierzulande immer mehr Anhänger. Damit wächst die Bedeutung von Gnome als Entwicklungsplattform, deren GUI-Toolkit GTK sogar auf Windows und Mac läuft. Dieser Artikel verhilft zur Orientierung auf den verschlungenen Entwicklungswegen.

Wer in die Gnome-Programmierung einsteigen will und einen Blick auf die API-Dokumentation [1] wirft, verliert leicht die Orientierung. Viele Links führen ins Leere oder auf veraltete Seiten. Dieser Artikel zeichnet eine übersichtliche Karte der Gnome-Landschaft.

API-Verwirrung

Der angehende Gnome-Programmierer sieht sich gleich mit mehreren Problemen konfrontiert: Es gibt rund 30 einzelne Bibliotheken mit eigenen APIs, deren Funktionalitäten sich aber oft überschneiden. Vielfach lösen neue Libraries alte ab, aber die Dokumentationsseiten des alten API spiegeln das nicht wider. Auch die ohnehin seltenen Tutorials benutzen viele veraltete Funktionen, ohne auf diesen Umstand hinzuweisen. Häufig beschreiben sie die einzelnen Objekte und Methoden gar nicht in ihrer Funktion, sondern beschränken sich auf allgemeine Beschreibung der Art "Das ist der Eingabeparameter".

So sind zum Beispiel mit der Version 2 die GObject-Funktionen von GTK in die Glib gewandert, deren Dokumention sich wie die aller anderen vorgestellten Bibliotheken auf [1] findet. Signalfunktionen heißen statt »gtk_signal_...()« nun »g_signal...()«. Andererseits enthält GTK 2.6 nun Objekte und Methoden, die vorher in der Gnome-Bibliothek Libgnome zu finden waren. So implementiert ab GTK 2.6 das Objekt »GtkAboutDialog« statt bisher »GnomeAbout« den beliebten About-Dialog.

Die Basis: Glib

Abgesehen von solchen, auch entwicklungsbedingten Ungereimtheiten gliedert sich das Gnome-Entwicklungsmodell in Schichten. Ganz unten liegt die Glib-Bibliothek, die mit grafischen Benutzeroberflächen nichts zu tun hat. Sie stellt grundlegende Typen zur Verfügung, die zum Teil denen der Standard-C-Bibliothek Glibc entsprechen. Allerdings sind die Glib-Typen so implementiert, dass sie plattformübergreifend funktionieren - GTK gibt es auch auf Windows und Mac. Glib kennt unter anderem »gchar«, »guchar« (unsigned), »gint«, »guint«, »gfloat«, »gdouble« und 64-Bit-Typen wie »gint64« und »guint64«.

Über diese grundlegenden Dinge hinaus enthält die Glib Funktionen für Speicherverwaltung, Timer, String-, Dateifunktionen und einiges mehr. Darüber liegt GDK (GTK Drawing Kit), das Funktionen für einfache Zeichnungen anbietet. GDK abstrahiert vom darunter liegenden Grafiksystem, also unter Unix/Linux von der Xlib, unter Windows von den Win32-Zeichenfunktionen. Darauf baut GTK auf, das schlichte GUI-Widgets, aber auch komplexe Elemente wie Menüs, Datei- oder About-Dialoge bereitstellt.

Für Zeichenoperationen wie Linien und Rechtecke verwenden die Toolkits die Libart. Bitmap-Operationen und Bilddateiformate deckt die Bibliothek Gdkpixbuf ab. Die vielen Gnome-Bibliotheken ergänzen die GTK-GUI-Funktionen. Die kommende GTK-Version nutzt die neue Cairo-Grafikbibliothek, die komplexe, hoch optimierte Zeichenfunktionen mit Bezierkurven und Antialiasing bietet.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook