summaryrefslogtreecommitdiff
path: root/doc/eudas/eudas.ref.10
diff options
context:
space:
mode:
Diffstat (limited to 'doc/eudas/eudas.ref.10')
-rw-r--r--doc/eudas/eudas.ref.10406
1 files changed, 0 insertions, 406 deletions
diff --git a/doc/eudas/eudas.ref.10 b/doc/eudas/eudas.ref.10
deleted file mode 100644
index fbfcf7e..0000000
--- a/doc/eudas/eudas.ref.10
+++ /dev/null
@@ -1,406 +0,0 @@
-#limit (11.0)##pagelength (16.5)##block#
-#start (2.0,0.0)#
-#page (97)#
-#headodd#
-#center#EUDAS#right#%
-
-#end#
-#headeven#
-%#center#EUDAS
-
-#end#
-#center#1
-
-10 Programmierung der Menüs
-
-
-
-10.1 Menüformat
-
-EUDAS verwendet drei verschiedene Strukturen zur Benutzerunter­
-stützung: Menü, Auswahl und Hilfestellung. Ein Menü dient zur
-Auswahl von Funktionen, eine Auswahl bietet Feld- oder Datei­
-namen an und eine Hilfestellung zeigt einen Informationstext.
- Alle diese Strukturen werden aus einer Initialisierungsdatei
-eingelesen. Die Initialisierungsdatei ist eine normale Textdatei. Ihr
-Format soll in diesem Abschnitt beschrieben werden.
- Die Strukturen können in beliebiger Reihenfolge in der Initiali­
-sierungsdatei stehen. Jede Struktur wird durch eine spezielle
-Anweisung eingeleitet. Anweisungen beginnen ähnlich wie im
-Druckmuster mit einem Prozentzeichen. Dementsprechend gibt es die
-drei Anweisungen
-
-
- % MENUE "Name"
- % AUSWAHL "Name"
- % HILFE "Gebiet/Name"
-
-
-die jeweils eine Struktur einleiten. Beendet wird eine Definition
-immer mit
-
-
- % ENDE
-
-
-#on("b")#Menü#off("b")# Für ein Menü wird noch der Text angegeben, der auf
-dem
-Bildschirm erscheinen soll. Er wird durch die Anweisung
-
-
- % BILD
-
-
-eingeleitet. Danach folgen Zeilen mit dem Bildschirminhalt in der
-gewünschten Größe (die tatsächliche Anzeigegröße wird erst beim
-Aufruf angegeben). Dabei werden die Auswahlpositionen, auf denen
-der Cursor sich bewegen kann, durch ein geschütztes Leerzeichen in
-Spalte 2 festgelegt.
- Nach der Angabe des Bildes muß für jede mögliche Auswahl­
-position noch eine weitere Angabe gemacht werden. Die Auswahl­
-positionen (oder Felder) werden dabei von oben nach unten durch­
-gezählt. Begonnen wird mit der Nummer 1.
- Eine Felddefinition hat das Format
-
-
- % FELD nr "Hilfstext" "Tasten"
-
-
-Die Nummer identifiziert das Feld. Der Hilfstext gibt den Namen der
-Hilfestellung an, die gezeigt werden soll, wenn auf diesem Feld ESC
-'?' gedrückt wird. Die Tasten sind alle Zeichen, die gedrückt werden
-können, um dieses Feld direkt auszuführen.
- Anschließend an die Felddefinition kann in weiteren Zeilen
-noch ein ELAN-Programm folgen, das bei Auswahl des Feldes aus­
-geführt wird.
-
-#on("b")#Auswahl#off("b")# Für eine Auswahl muß zuerst ein Vorspann angegeben
-werden, der immer in den ersten Bildschirmzeilen der Auswahl an­
-gezeigt wird. Dieser wird durch
-
-
- % VORSPANN
-
-
-eingeleitet. Danach folgt das Bild. Das Bild setzt sich aus drei Tei­
-len zusammen. Die erste Zeile, in der ein geschütztes Leerzeichen
-vorkommt, bildet den Wiederholungsteil. Diese Zeile wird nachher so
-oft wie nötig mit entsprechenden Inhalten wiederholt, wobei das
-geschützte Leerzeichen als Bindestrich dargestellt wird, auf dem
-sich der Cursor bewegen kann. Die Teile davor und danach werden
-jeweils bei Bedarf mitgerollt.
- Die Wiederholungszeile darf mehrere geschützte Leerzeichen
-enthalten. Die Inhalte werden dann in mehreren Spalten angezeigt.
-Zu beachten ist, daß vor einem Trennstrich noch mindestens fünf
-Zeichen Platz für eine laufende Nummer bleiben müssen.
-
-#on("b")#Hilfe#off("b")# Der Name einer Hilfestellung setzt sich aus zwei
-Teilen
-zusammen, die durch einen Schrägstrich getrennt werden. Der erste
-Name gibt die Kategorie der Hilfestellung an, der zweite Name den
-Einzeltext. Dies dient dazu, die relativ große Zahl der Hilfstexte
-überschaubar zu machen. Als Beispiel
-
-
- % HILFE "JA/Allgemein"
-
-
-Eine Hilfestellung besteht einfach aus mehreren Seiten Text. Jede
-Seite wird durch die AnweisungQ
-
-
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q
-
-
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q
-
-
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q
-
-
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q
-Q̈Q̈Q̈Q̈Q̈Q̈Q̈estellung, wobei die Seiten einfach von 1 an durch­
-gezählt werden. Anschließend darf für diese Seite natürlich kein
-Text folgen.
-
-
-10.2 Verwaltung der Menüs
-
-Alle Menüdaten werden intern in Datenräumen gehalten. Dabei sind
-die einzelnen Strukturen getrennt. Mit 'menuedaten einlesen' kön­
-nen Menüdaten aus einer Struktur gelesen und abgespeichert wer­
-den. Existierende Strukturen werden dabei überschrieben, neue
-hinzugefügt.
- Mit 'menuenamen' können die vorhandenen Strukturen abgefragt
-werden. Mit 'menue loeschen' werden einzelne Strukturen oder alle
-Menüdaten gelöscht. Damit die Datenräume mit den Menüdaten auch
-an Söhne übergeben werden, ist der 'global manager' entsprechend
-geändert. Dies wird im einzelnen durch 'menue manager' bewirkt.
-Der neue Global Manager akzeptiert auch Anfragen von Tasks, die
-nicht Söhne oder Enkel sind.
-
-
-PROC menuedaten einlesen (TEXT CONST dateiname)
-
- Die in der Datei enthaltenen Strukturen werden eingelesen und
- abgespeichert. Treten bei diesem Prozeß Fehler auf, so wird
- eine entsprechende Meldung ins EUMEL-Notizbuch geschrieben
- und nachher im Paralleleditor angezeigt.
-
-
-THESAURUS PROC menuenamen (INT CONST index)
-
- Liefert die Namen der Strukturen. Der Index hat folgende Be­
- deutung:
- 1: Hilfskategorien
- 2: Menüs
- 3: Auswahlen
- Ist der Index negativ, so werden die Hilfsnamen der entspre­
- chenden Hilfskategorie geliefert, die im Thesaurus den Index
- mit umgekehrtem Vorzeichen hat.
-
-
-PROC menue loeschen (TEXT CONST name, INT CONST index)
-
- Löscht den Namen in dem Thesaurus mit dem angegebenen In­
- dex, falls dort der Name vorhanden ist.
-
-
-PROC menue loeschen (BOOL CONST hilfen reduzieren)
-
- Löscht alle Menüdaten. Ist 'hilfen reduzieren' verlangt, wird
- beim späteren Einlesen der Hilfstexte jeweils nur der erste
- Text einer Kategorie gespeichert, um Platz zu sparen.
-
-
-PROC global manager
-
- Geänderter Manager, der die Menüdatenräume in Söhne trans­
- portiert und Sperren setzen kann. Ersetzt den normalen 'free
- global manager'. Nur im Multi-User-System vorhanden.
-
-
-PROC menue manager (DATASPACE VAR ds,
- INT CONST order, phase,
- TASK CONST order task)
-
- Eigentliche Manager-Routine. Kann dazu dienen, Managererwei­
- terungen vorzunehmen. Nur im Multi-User-System vorhanden.
- Beispiel: der Manager soll nur Aufträge von Söhnen annehmen.
-
-
- PROC new manager (DATASPACE VAR ds,
- INT CONST order, phase,
- TASK CONST order task):
-
- LET begin code = 4;
- IF order task < myself OR order = begin code OR
- order task = supervisor THEN
- menue manager (ds, order, phase, order task)
- ELSE
- errorstop ("kein Sohn")
- END IF
-
- END PROC new manager;
-
- global manager (PROC new manager)
- (* startet den Manager *)
-
-
-
-10.3 Aufruf
-
-Menüs werden mit der Prozedur 'menue anbieten' aufgerufen. Dabei
-muß neben den Namen ein Fenster übergeben werden, in dem die
-Menüs dann angezeigt werden. Es ist darauf zu achten, daß das
-Fenster groß genug ist, um wenigstens die Auswahlpositionen im
-Bild zu haben.
- Außerdem muß eine Prozedur übergeben werden, die die einzel­
-nen Funktionen ausführt. Diese Prozedur erhält als Parameter die
-Nummer der ausgewählten Funktion.
- Mit 'waehlbar' können Auswahlen gesperrt werden. Diese Anga­
-be kann jedoch nicht vor Aufruf von 'menue anbieten' erfolgen, da
-dann alle Sperren erstmal gelöscht werden. Zum Setzen der Sperren
-beim Betreten eines Menüs dient ein besonderer Code, mit dem die
-übergebene Prozedur aufgerufen wird.
- Eine Auswahl wird mit der Prozedur 'auswahl anbieten' aufge­
-rufen. Diese bekommt ebenfalls ein Fenster übergeben, außerdem
-den Namen einer Hilfestellung, die bei Bedarf aufgerufen werden
-kann. Weiterhin muß eine Prozedur übergeben werden, die die aus­
-zuwählenden Texte erzeugt. Die gewählten Texte können anschlie­
-ßend mit der Prozedur 'wahl' abgefragt werden.
- Eine Hilfestellung wird durch die Prozedur 'hilfe anbieten'
-ausgegeben. Dabei muß außer dem Namen auch noch ein Fenster
-übergeben werden.
- Mit 'status anzeigen' kann ein Text in der Statuszeile ausge­
-geben werden. Die Menüprogramme tun dies für ihren Bereich jedoch
-selbst.
-
-
-PROC menue anbieten (ROW 6 TEXT CONST menuenamen,
- FENSTER VAR f,
- BOOL CONST esc erlaubt,
- PROC (INT CONST, INT CONST) interpreter)
-
- Die angegebenen Menüs werden in dem Fenster 'f' angezeigt.
- Das Fenster wird nach Beendigung des Menüs als verändert
- gekennzeichnet. Die Namen der 6 Menüs werden in die Titelzeile
- aufgenommen. Die Menünamen sollten mit einer Menüidentifika­
- tion versehen sein, zum Beispiel "EUDAS.Öffnen". Der Text vor
- dem Punkt wird an den Anfang der Titelzeile gestellt und bei
- den einzelnen Menünamen unterdrückt. Nicht benötigte Menüs
- müssen als "" angegeben werden.
-
- 'esc erlaubt' gibt an, ob mit ESC ESC ein Kommandodialog ge­
- führt werden kann. Die übergebene Prozedur muß die einzelnen
- Funktionen ausführen, die als Zahl übergeben werden. Der
- Interpreter wird im 'disable stop' aufgerufen, daher ist in der
- Regel ein 'enable stop' erforderlich.
-
- Die Parameter für 'interpreter' haben folgende Bedeutung:
- Par. 1: 0 Aufruf zur Initialisierung der Sperren
- oder anderen Initialisierungen zu Beginn
- 1..6 Angabe des aktuellen Menüs
- Par. 2: 1..23 Aufruf der entsprechenden Funktion
- 0 Eintritt in ein neues Menü (wird vor der
- Ausgabe dieses Menüs aufgerufen)
- -1 Verlassen des Menüs
- -2 Bildschirmupdate (nach Eintritt in das
- Menü, wenn das Menü ganz ausgegeben ist,
- oder wenn der Bildschirm nach 'Gib
- Kommando:' zerstört worden ist)
-
- FEHLER:
-
- #on("i")#"Name" existiert nicht.#off("i")#
- Das angegebene Menü ist nicht vorhanden.
-
-
-PROC waehlbar (INT CONST menuenr, funktionsnr
- BOOL CONST moeglich)
-
- Setzt die Funktionssperre der angegebenen Funktion. Muß in­
- nerhalb von 'menue anbieten' aufgerufen werden. Zu Beginn von
- 'menue anbieten' sind jeweils alle Funktionen erlaubt.
-
-
-PROC ausfuehrtaste (TEXT CONST taste)
-
- Setzt die Taste, die Funktionen ausführt. Ist standardmäßig die
- Leertaste.
-
- FEHLER:
-
- #on("i")#falsche Ausfuehrtaste#off("i")#
- Es muß ein einzelnes Zeichen angegeben werden, das nicht
- bereits anderweitig verwendet wird.
-
-
-PROC auswahl anbieten (TEXT CONST name, FENSTER CONST f,
- TEXT CONST hilfe,
- PROC (TEXT VAR, INT CONST) inhalt)
-
- Ruft die Auswahl in dem angegebenen Fenster auf. 'hilfe' wird
- als Hilfestellung verwendet. Die Prozedur 'inhalt' liefert den
- Text, der an der n-ten Position stehen soll. Wenn keine wei­
- teren Texte vorhanden sind, muß für alle weiteren Positionen
- "" geliefert werden.
-
- FEHLER:
-
- #on("i")#"Name" existiert nicht.#off("i")#
- Die angegebene Auswahl ist nicht vorhanden.
-
-
-INT PROC wahl (INT CONST stelle)
-
- Liefert die Nummer des Textes, der an der n-ten Stelle ausge­
- wählt wurde. Wurde kein weiterer Text mehr gewählt, so wird 0
- geliefert.
-
-
-PROC hilfe anbieten (TEXT CONST name, FENSTER CONST f)
-
- Bietet den Hilfstext in dem angegebenen Fenster an. Existiert
- die Hilfe innerhalb der angegebenen Kategorie nicht, wird die
- erste Hilfe der Kategorie angezeigt.
-
- FEHLER:
-
- #on("i")#Hilfe existiert nicht#off("i")#
- Die angegebene Hilfskategorie ist nicht vorhanden.
-
-
-PROC status anzeigen (TEXT CONST zeile)
-
- Zeigt den angegebenen Text in der obersten Bildschirmzeile an.
-
-
-10.4 Dialog
-
-EUDAS führt den Benutzerdialog in einem Fenster, dessen Größe
-durch 'dialogfenster' eingestellt wird. Das Dialogfenster wird zei­
-lenweise belegt. 'dialog' reserviert eine neue Zeile für eine beliebi­
-ge Ausgabe. Wenn das Fenster voll ist oder überschrieben wurde,
-wird in der ersten Zeile wieder angefangen. Den gleichen Effekt
-kann man mit 'neuer dialog' erreichen.
- Mit 'ja' kann man im Dialogfenster eine Frage stellen. Als Ant­
-wort kann auch eine Hilfestellung angefordert werden oder die
-Funktion abgebrochen werden. Mit 'editget' kann man nach Auffor­
-derung einen Text eingeben lassen. Dabei stehen die gleichen
-zusätzlichen Möglichkeiten zur Verfügung.
- Mit 'fehler ausgeben' kann eine durch 'errorstop' erzeugte Feh­
-lermeldung im Dialogfenster angezeigt werden. Der Benutzer muß
-erst eine Taste drücken, ehe er weitermachen kann. Auch hier kann
-eine Hilfestellung zu der Fehlermeldung abgerufen werden.
-
-
-PROC dialogfenster (INT CONST x, y, xl, yl)
-
- Gibt die Fenstergröße und -position des Dialogfensters an. Für
- den ganzen Bildschirm müßte (1, 1, 79, 24) angegeben werden.
-
-
-PROC dialog
-
- Positioniert den Cursor auf die nächste Dialogzeile im Dialog­
- fenster. Wurde das Fenster verändert, wird das Fenster ge­
- löscht und auf die erste Zeile positioniert.
-
-
-PROC neuer dialog
-
- Sorgt dafür, daß der nächste Aufruf von 'dialog' wieder in
- einem leeren Fenster beginnt.
-
-
-BOOL PROC ja (TEXT CONST frage, hilfe)
-
- Stellt die angegebene Frage. Es kann die angegebene Hilfsin­
- formation abgerufen werden. Außerdem wird durch ESC 'h' ein
- Abbruch (errorstop ("")) erzeugt.
-
-
-PROC editget (TEXT CONST prompt, TEXT VAR eingabe,
- TEXT CONST res, hilfe)
-
- Gibt den Text 'prompt' aus und editiert dahinter 'eingabe'. Es
- kann die angegebene Hilfsinformation abgerufen werden. 'res'
- gibt an, bei welchen ESC-Folgetasten das Editieren beendet
- werden soll. In einem solchen Fall wird als Eingabe (ESC + die
- gedrückte Taste) zurückgeliefert.
-
-
-PROC fehler ausgeben
-
- Im Dialogfenster wird die letzte Fehlermeldung ausgegeben.
- Gleichzeitig wird der Fehlerzustand gelöscht. Der Benutzer muß
- eine Taste drücken, um weiterzumachen. Alternativ kann die
- Hilfsinformation "FEHLER/" + text (errorcode) abgerufen wer­
- den.
-
-