Die graphische Oberfläche des PED enthält folgende Eingabeelemente:
Alle arbeiten nach dem ,,Callback-Prinzip``. Das heißt, daß sie bei Aktivierung durch den Anwender Funktionen aufrufen, die zuvor konfiguriert worden sind. Diese Funktionen führen die gewünschte Operation aus oder veranlassen sie.
In einfachen Fällen ist mit Beendigung der Funktion auch das Ziel erreicht, und keine weiteren Maßnahmen sind mehr erforderlich (z.B. ,,save`` zum Abspeichern des aktuellen Datenbestandes auf die Datei).
Wenn weitere Benutzeraktionen erforderlich sind, gibt es verschiedene Komplexitätsstufen. Falls mit dem Erscheinen eines Dialogfensters und einem davon ausgelösten Callback die Operation hinreichend definiert wird, kann auf Verwendung des Parsers verzichtet werden.
Erst komplexere Eingabefolgen, besonders verschachtelte Operationen, erfordern seinen Einsatz. Die Ansteuerung erfolgt, wie bereits angedeutet, über Callback-Funktionen, die jeweils ein oder mehrere Eingabeworte an den Parser senden.
Je nach erforderlicher Vorverarbeitung kann eine von vier Funktionen dazu verwendet werden:
Von besonderer Bedeutung sind die Konfigurationen der Mausknöpfe.
Die Aktion beim Drücken eines Mausknopfes mündet immer in der Verarbeitung einer Zeichenkette mit ped::logical-command. Sie ist das Ergebnis einer Auswertung einer der Maustaste zugeordneten Zeichenkette mit Ersetzungsanweisungen. Dabei geht es darum, die aktuelle Mausposition dem weiteren Datenfluß zugänglich zu machen.
Da verschiedene Interpretationen der Mausposition möglich sind,
gibt es eine ganze Reihe entsprechender Formen.
Diese Anweisungen bestehen immer aus %
und einem weiteren Zeichen,
und werden bei der Auswertung durch das entsprechende Ergebnis ersetzt.
%
-Zeichen;
%g
, aber im ein- und zweidimensionalen Fall nach Rundung mit Magnet
Zur Erklärung der Magnetrundung siehe Abschnitt 7.6.3.
Typisch werden die Formate %G
zur Dateneingabe, %g
zur
Datenauswahl, und %h
mit %v
für Befehle betreff
Bildausschnitt verwendet.
Um im zweidimensionalen Fall eine Liste der Weltkoordinaten
an der momentanen Mausposition
zu erhalten, dient die Konfiguration "'(%g)"
. Im Zuge der
Vorverarbeitung wird daraus eine LISP-Liste der Form (3.4 1.2).
Wie die Konfigurationstexte sinnvoll mit dem Parser zusammenarbeiten, wird in Abschnitt 6.2.8 gezeigt.
Aber auch andere Teile der Benutzerschnittstelle sind abhängig vom Zustand des Parsers und damit Gegenstand der speziellen Konfiguration. Dies sind der Titel der soeben in Abarbeitung befindlichen Operation, die Hinweistexte für die Bedeutung der Mausknöpfe, Funktionen zur Veranschaulichung der aktuellen Mauszeigerwirkung (,,elastische`` Zeichenfunktionen), und Dialogfenster.
Diese werden mit der Funktion mode eingestellt. Der Aufruf der Zeichenfunktionen zum Löschen und Zeichnen sowie das Aktivieren und Verschwindenlassen der Dialogfenster wird außerhalb des Parsers von Funktionen der Benutzerschnittstelle übernommen, die zu Beginn und am Ende der Callback-Funktionen aufgerufen werden.
(defun mode (title ; Titel der Operation b1 ; linker Mausknopf: Liste aus zwei Zeichenketten ; fuer Bedeutung und fuer Konfiguration b2 ; ebenso fuer mittleren Knopf b3 ; ebenso fuer rechten Knopf elastic-on ; Funktion, die eine dynamische Zeichnung vornimmt elastic-off ; Funktion, die diese dynamische Zeichnung rueckgaengig macht elastic-data ; statische Daten (client-data) fuer elastic-on/off dialog ; Dialog-Shell