Open Source im professionellen Einsatz
Linux-Magazin 09/2005

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.

381

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.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Aufgetischt

    Moderne Benutzeroberflächen gestalten ist dank der GTK-Bibliothek keine Kunst für besondere Experten. Eine optisch ansprechende Gestaltung erfordert allerdings einiges an Arbeitszeit. Glade und Gazpacho gehen dem Programmierer in der GUI-Küche zur Hand.

  • GTK+

    Mit Python und GTK+ ist eine GUI-Anwendung für Linux rasch geschrieben. Mit ein wenig Installationsarbeit läuft der gleiche Code auch unter Windows und Mac OS X.

  • Klein-Delphi

    Die Zeiten sind vorbei, in denen Linux-Benutzer sämtlichen Code für das grafische Bediener-Interface eines Programms per Hand schreiben mussten. Zu Hilfe kommt Glade, eine RAD-Umgebung, die diesen Job erheblich vereinfacht.

  • Verkehrskontrolle

    Grafische Oberflächen mit GTK müssen Entwickler nicht in aufwändigem Spaghetti-Code definieren. Eine ausgefeilte Oberfläche entsteht mit dem GUI-Builder Glade per Drag&Drop. Die Beschreibung im XML-Format lesen Programme zur Laufzeit ein. So entsteht ein Netzwerk-Sniffer mit schöner Oberfläche.

  • Gnome 3.6 verbessert Eingabemethoden und Barrierefreiheit

    Das Gnome-Projekt hat Version 3.6 seiner freien Desktopumgebung veröffentlicht.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.