prev up inhalt next


2.4.2 Architektur

Das X-Window-System ist das Fenstersystem der UNIX-Welt. X-Anwendungen verwenden Routinen aus der Xlib-Bibliothek, aus den X Toolkit Intrinsics und aus einem Widget-Set.

Xlib enthält verschiedene Low-Level-Funktionen auf der Ebene des X-Protokolls. Z.B.

    XDrawLine(display, window, gc, x1, y1, x2, y2);
zeichnet auf dem Ausgabegerät display im Fenster window unter Verwendung des Grafik-Kontextes gc eine Linie von Punkt x1,y1 zu Punkt x2,y2.

Die X Toolkit Intrinsics, kurz Xt Intrinsics, sind ein Aufsatz auf die Xlib. Hiermit lassen sich die grafischen Grundobjekte, die Widgets, kreieren und manipulieren. Widget ist ein aus den Begriffen Window und Gadget zusammengesetztes Kunstwort und bedeutet Dialogobjekt. Z.B.

    XtVaGetValues(widget, XmNwidth, &breite, XmNheight, &hoehe, NULL);
besorgt von einem Widget die Breite und Höhe und überträgt diese Werte in die Variablen breite bzw. hoehe.

Das X-Window-System stellt nur die Technik zur Verwaltung von grafischen Oberflächen zur Verfügung, die Toolkits hingegen bringen Verhalten ins Spiel, ein spezielles Look and Feel der Benutzerschnittstelle.

Ein Widget-Set ist eine Ansammlung von aufeinander abgestimmten Widget-Klassen, die sich durch Design und Funktionalität charakterisieren. Bekannte Beispiele für Widget-Sets sind OSF/Motif, Open Look und Athena Widgets.

In Motif gibt es z.B. einen dreidimensional aussehenden Druckknopf in der Klasse XmPushButton oder ein Anzeigefeld mit verschiebbarem Inhalt in der Klasse XmScrolledWindow. Widgets werden in Motif wie folgt klassifiziert:

   
Display-Widgets: zum Anzeigen von Information
  z.B. XmPushButton, XmToggleButton, XmText
   
Container-Widgets: zum Zusammenfassen der Kind-Widgets
  z.B. XmForm, XmRowColumn
   
Shell-Widgets: spezielle Container-Widgets, eingesetzt als Top-Level-Fenster, stehen unter Verwaltung des Window-Managers.
  z.B. XmDialogShell
   

Die Widget-Klassen bilden einen Baum, bei dem die Kinder die Eigenschaften ihrer Eltern erben und erweitern. Aussehen und Verhalten der Widgets werden durch deren Ressourcen gesteuert. Z.B. besitzt ein Label-Widget die Ressourcen Widget-Größe, auszugebender Text, Font und Farbe des auszugebenden Textes. Manchen Widgets kann man die Adresse von Funktionen mitgeben. Eine solche Funktion, genannt callback, wird dann bei Eintreten eines bestimmten Ereignisses, z.B. Drücken eines Mausknopfes innerhalb des Widget-Fensters, aufgerufen.


prev up inhalt next