14.12 Toolkit-Programmierung
Sie haben gesehen, wie mit der Xlib ein neues Fenster erzeugt wurde und wie man darin etwas »zeichnen« konnte. Im letzten Beispiel des Abschnitts zur Xlib-Programmierung, in dem mit Xlib Buttons erstellt wurden, haben Sie allerdings den Nachteil der Xlib kennen gelernt. Einem Entwickler von Software würde ein solcher Overhead einiges an Kopfzerbrechen bereiten. Man muss sich bei der Verwendung der Xlib um alle Details selbst kümmern.
In diesem Fall kommt dem Entwickler ein Toolkit entgegen. Immer wieder verwendete GUI-Elemente wie Buttons, Menüs, Texteingabefenster und noch vieles mehr stehen dabei fix und fertig zur Verfügung und müssen nicht mehr jedes Mal neu erfunden werden. Selbst Arbeiten wie die Aktionen von Maus und Tastatur oder das Aktualisieren des Fensterinhaltes werden Ihnen von Toolkit-Funktionen zur Steuerung von Events abgenommen. Ganz klar, der Aufwand, der dabei betrieben werden muss, ist im Gegensatz zur Xlib-Programmierung minimal.
14.12.1 Widgets
Ein Toolkit besteht gewöhnlich aus Xt-Funktionen und einem Widget-Set. Widgets (heißt übersetzt so viel wie Dingsbums) sind Speicherobjekte der Benutzeroberfläche (z. B. Buttons, Pull-down-Menüs etc.), die von den Xt-Funktionen definiert und verwaltet werden. Natürlich kann man sich auch eigene Widgets zusammenbauen – was allerdings nur dann Sinn macht, wenn Sie ein Widget erstellen, das es bei einem Toolkit noch nicht gibt.
Ganz im objektorientierten Stil unterscheidet man bei einem Widget zwischen einer Klasse und einer Instanz. Ein Widget-Set (alle vorhandenen Widgets wie Button, Menü ...) stellt Ihnen eine Reihe von Widget-Klassen zur Verfügung. Ohne hier etwas genauer zu werden, ist z. B. ein Button eine solche Klasse des Widget-Sets. Die Instanz eines Widgets ist das, was Sie als Programmierer erzeugen – praktisch der Button, der am Bildschirm angezeigt wird. Dabei können Sie beliebig viele Buttons (Instanzen) mit unterschiedlichen Eigenschaften am Bildschirm anzeigen.
Hinweis Auch wenn hier von objektorientierter Programmierung die Rede ist, sind die Toolkits häufig dennoch in reinem C geschrieben.
|
Ganz im Sinne der Objektorientierung gibt es nicht einfach n verschiedene Widget-Klassen mit verschiedenen Eigenschaften, sondern eine hierarchische Struktur. Jede Subklasse erbt alle Eigenschaften der übergeordneten Klasse (der sog. Superklasse), hat aber zusätzlich weitere Eigenschaften. Das ist auch nötig, denn ohne diese Hierarchie wäre es nicht möglich, ein Programm sauber zu strukturieren. Meistens steht am Anfang des Widget-Sets das Fenster. Somit müssen Sie zuerst das Fenster erzeugen, um weitere Widgets zu verwenden. So wird es einem recht einfach gemacht, ein Toolkit zu verwenden, in dem man nur die Anordnung der Hierarchie kennt. Um ein Widget zu verwenden, muss nur vom Anfang bis zum gewünschten Widget alles verwendet werden.
|