next up previous contents
Next: 6.2 Eingabeanalyse Up: 6 Benutzerschnittstelle und Kontrollmodul Previous: 6 Benutzerschnittstelle und Kontrollmodul

6.1 XWindow-Applikation

Der PED in seiner interaktiven Form benützt die graphische Oberfläche des XWindow-Systems. Damit kann er gleichermaßen unter UNIX und VMS betrieben werden. Er basiert auf der VISTA-eigenen Erweiterung zum XWindow-Toolkit und den Athena-Widgets, dem ,,VISTA user interface`` VUI, sowie zusätzlichen Widgets, die in der Unterprogrammbibliothek XVW integriert sind.

Als XWindow-Applikation führt PED den Namen Ped. Ihre unmittelbare Einrichtung wird von C-Teilen des VLISP-Interpreters vorgenommen in Form einer vuiApplicationShell. Diese sieht zum einen eine Menüleiste vor, in der ein File-Menü mit einem Exit-Eintrag schon vordefiniert ist. Im Laufe der Initialisierung des PED und auch beim Nachladen von VLISP-Modulen werden viele weitere Menüs angelegt. Zum andern stellt die vuiApplicationShell einen Bereich für anwendungsspezifische Erweiterungen bereit.

In diesen wird ein sogenanntes Logical-Widget gestellt. Der Name kommt von der Idee, mit einem solchen Widget genau eine logische PIF-Datei zu bearbeiten.

Unterhalb des Logical-Widget werden verschiedene textorientierte Widgets zeilenweise angeordnet. In der ersten dieser Zeilen werden drei Widgets zur Anzeige des physischen und des logischen Names der gerade in Bearbeitung befindlichen Datei und des zur Zeit dargestellten Objekts (Geometrie, Gitter) angelegt. Darunter kommt die Kommandozeile, die die Eingabe von Befehlen über die Tastatur erlaubt. In die letzte Zeile kommen Statusanzeigen betreff die laufende Eingabeaktion und die aktuelle Bedeutung der drei Mausknöpfe.

Das Logical-Widget sieht eine Reihe Einstellungen vor, die vor allem die Zusammenarbeit von PLB und graphischer Oberfläche betreffen. Es leitet Ereignis-Callbacks nach ihrer unmittelbarer Bearbeitung an den VLISP-Interpreter weiter. Es enthält ein Form-Widget, in dem mehrere Canvas-Widgets eingerichtet werden können. Alle derzeitigen Anwendungen des PED benützen aber nur eines, weshalb das Logical- und das Canvas-Widget graphisch ident sind, obwohl eine klare Aufgabentrennung existiert.

Das Canvas-Widget ist eine Unterklasse des Composite-Widgets. Es stellt eine Ansicht der Daten dar. Vor allem für dreidimensionale Bearbeitung wäre die Verwendung eines zweiten solchen Widgets sinnvoll, um die Daten gleichzeitig aus einem anderen Winkel betrachten zu können.

Jedes Canvas-Widget enthält ein PedGraph-Widget, das nun unmittelbar die graphische Darstellung der Daten durchführt. Es ist also ein Mittler, der Ausgabe- und Kontrollbefehle vom Logical-Widget zum PedGraph-Widget leitet, und Ereignisse in der anderen Richtung.

Zur Skalierung werden im ein- und zweidimensionalen Fall um das PedGraph-Widget sogenannte Ruler-Widgets angeordnet, die Achsen zur Beschreibung der Positionen im PedGraph-Widget darstellen. Darüber hinaus geben sie mit Markierungen die aktuelle Mausposition auf der Skala wieder.

Das PedGraph-Widget ist vom Graph-Widget abgeleitet und daher eng verwandt mit dem SVGraph-Widget [19]. Es verwaltet sowohl eine Pixmap als auch ein Fenster. Dabei wirken Zeichenbefehle normalerweise auf die Pixmap, ausgenommen dynamische Zeichnungen, die direkt in das Fenster schreiben. Wenn der Inhalt des Fenster nicht mehr aktuell ist, z.B. weil es vorübergehend überdeckt war oder weil das Bild sich geändert hat, wird die Information der Pixmap in das Fenster kopiert.

Das Ruler-Widget seinerseits ist vom Simple-Widget abgeleitet und stellt eine Skala dar, die mit einer der projizierten Weltkoordinaten des PedGraph-Widgets korreliert ist. Es kann - vom Canvas gesteuert - mit einer Marke die aktuelle Zeigerposition anzeigen. Außerdem reagiert es auf Drücken von Mausknöpfen in seinem Fenster mit Callbacks an das Canvas-Widget, das daraufhin eine Verschiebung des Bildausschnittes veranlaßt.

Zusätzlich zu diesen ständig dargestellten Widgets kommen noch Dialogboxen für verschiedene Zwecke von der Fehleranzeige über Bestätigungen bis zum Einstellen von Konfigurationen und Parameter. Diese sind als vui::dialog-shells organisiert und werden nur bei Bedarf am Bildschirm dargestellt.

   figure2178
Abbildung 6.1: Die XWindow Applikation des PIF Editors

   figure2192
Abbildung 6.2: Die Schachtelung der wichtigsten Widgets des PIF-Editors


next up previous contents
Next: 6.2 Eingabeanalyse Up: 6 Benutzerschnittstelle und Kontrollmodul Previous: 6 Benutzerschnittstelle und Kontrollmodul

Martin Knaipp
Wed Jun 12 15:41:33 MET DST 1996