summaryrefslogtreecommitdiff
path: root/doc/menugenerator
diff options
context:
space:
mode:
Diffstat (limited to 'doc/menugenerator')
-rw-r--r--doc/menugenerator/menu-generator handbuch.1100
-rw-r--r--doc/menugenerator/menu-generator handbuch.287
-rw-r--r--doc/menugenerator/menu-generator handbuch.3155
-rw-r--r--doc/menugenerator/menu-generator handbuch.4424
-rw-r--r--doc/menugenerator/menu-generator handbuch.5975
-rw-r--r--doc/menugenerator/menu-generator handbuch.6235
-rw-r--r--doc/menugenerator/menu-generator handbuch.7367
-rw-r--r--doc/menugenerator/menu-generator handbuch.81676
-rw-r--r--doc/menugenerator/menu-generator handbuch.impressum88
-rw-r--r--doc/menugenerator/menu-generator handbuch.index258
-rw-r--r--doc/menugenerator/menu-generator handbuch.inhalt72
11 files changed, 0 insertions, 4437 deletions
diff --git a/doc/menugenerator/menu-generator handbuch.1 b/doc/menugenerator/menu-generator handbuch.1
deleted file mode 100644
index c190c0a..0000000
--- a/doc/menugenerator/menu-generator handbuch.1
+++ /dev/null
@@ -1,100 +0,0 @@
-#type ("prop.lq")##limit (11.0)##pagelength (16.5)##block#
-#start (2.0,0.0)#
-#page (3)#
-#headodd#
-#center#ls-Menu-Generator#right#%
-
-#end#
-#headeven#
-%#center#ls-Menu-Generator
-
-#end#
-#type ("prop.breit.lq")#
-#center#1
-
-#center#Was
-#center#kann
-#center#ls-Menu-Generator
-#type ("prop.lq")#
-
-
- In diesem Kapitel wollen wir Ihnen erläutern, was Sie
-mit #on("b")#ls-Menu-Generator#off("b")# anfangen können. Wir gehen davon
-aus, daß Ihnen die Benutzerschnittstelle #on("b")#ls-DIALOG#off("b")# be­
-kannt ist und daß Sie bereits mit einigen Anwendungen
-unter #on("b")#ls-DIALOG#off("b")# gearbeitet haben. Weiterhin setzen wir
-voraus, daß Sie Programmierkenntnisse (EUMEL/ELAN) be­
-sitzen.
- Bisher war es Ihnen nur möglich, von uns fertigge­
-stellte Programme unter der komfortablen Benutzer­
-schnittstelle #on("b")#ls-DIALOG#off("b")# laufen zu lassen. Sie haben aber
-sicher erkannt, welche Vorteile es bietet, Programme un­
-ter einer einheitlichen Benutzeroberfläche zu realisie­
-ren:
- Zunächst profitiert natürlich der Anwender von der
-einfachen und immer einheitlichen Bedienung solcher
-Programme. Der Aufwand, sich in neue Programmsysteme
-einzuarbeiten, wird erheblich reduziert. #on("b")#ls-DIALOG#off("b")# wurde
-ja auch speziell für den Unterricht konzipiert und ent­
-wickelt: Ziel war es, Computerlaien einen Zugang zum
-Computer zu verschaffen und den Umgang mit dem Compu­
-ter zu vereinfachen.
-
- #on("b")#ls-Menu-Generator#off("b")#ist nun aber kein weiteres Anwen­
-dungsprogramm! #on("b")#ls-Menu-Generator#off("b")# ist stattdessen für
-den Programmierer gedacht, der selbst unter #on("b")#ls-DIALOG#off("b")#
-Anwendungssysteme entwickeln möchte. #on("u")#Wir erhoffen uns
-durch die Bereitstellung dieses Werkzeuges, daß sich auch
-andere engagierte Personen daran beteiligen, qualitativ
-hochwertige Software insbesondere für den Schulbereich
-unter #on("b")#ls-DIALOG#off("b")# zu entwickeln.#off("u")#
-
- Mit #on("b")#ls-Menu-Generator#off("b")# haben Sie zwei Komponenten
-erworben: Das Generator-Programm zur Erzeugung von
-Menukarten und eine umfangreichen Dokumentation. Dabei
-enthält die Dokumentation nicht nur Informationen dar­
-über, wie Sie mit dem Generator-Programm arbeiten kön­
-nen - das natürlich auch. Darüberhinaus werden Ihnen
-alle Möglichkeiten, die #on("b")#ls-DIALOG#off("b")# zur Programmgestal­
-tung bietet, ausführlich erläutert - das macht den we­
-sentlichen Teil der Dokumentation aus!
-
- #on("b")#ls-DIALOG#off("b")# ist eigentlich ein "Baukastensystem", auf
-das andere Programme zugreifen können. Sie wissen si­
-cherlich, wieviel Arbeit bei jedem Programm aufzuwen­
-den ist, um die Benutzerschnittstelle zu realisieren. Die
-Gestaltung und Pflege der Benutzerschnittstelle kann
-bis zu 50% der Gesamtarbeit an einem Programm ausmachen.
-#on("b")#ls-Menu-Generator#off("b")# soll Ihnen helfen, diese Arbeit zu
-verringern.
-
- Alle Informationen, die ein Menu betreffen, sind in
-der sogenannten 'Menukarte' abgelegt. Wird nun ein Pro­
-gramm unter #on("b")#ls-DIALOG#off("b")# aufgerufen, so wird die entspre­
-chende Menukarte aus der "Menukarten - Sammeltask" ('ls-
-MENUKARTEN') geholt und an das System angekoppelt. An­
-schließend wird dem Anwender das Menu auf dem Bildschirm
-angeboten.
- Das Erstellen solcher Menukarten ist mit dem Genera­
-torprogramm sehr einfach - es wird in Kapitel 4 beschrie­
-ben. Allerdings sollten Sie nicht die Arbeit unterschät­
-zen, die Sie für eine sorgfältig erstellte, mit allen In­
-formationtexten gefüllte Menukarte aufwenden müssen!
-
- Bei den meisten Programmmen reicht aber ein einfaches
-Menu nicht aus. Bei vielen Verarbeitungsfunktionen ist
-es notwendig, mit dem Anwender einen Dialog zu führen:
-z.B. muß ein Dateiname erfragt, eine Information ausgege­
-ben und bestätigt, eine Auswahl oder eine Entscheidung
-getroffen werden. Alle Möglichkeiten, die #on("b")#ls-DIALOG#off("b")# dazu
-bereitstellt, sind in Kapitel 5 dokumentiert.
-
- Einige Reihe von Verarbeitungsfunktionen treten in
-nahezu jeder Anwendung auf (Datei- und Archivhandling).
-Hier stellt #on("b")#ls-DIALOG#off("b")# schon vorgefertigte Module zur
-Verfügung. In Kapitel 6 zeigen wir Ihnen, wie Sie auf die­
-se Module zugreifen und sie in Ihr Programmsystem ein­
-binden können. In Kapitel 7 zeigen wir Ihnen außerdem,
-wie Sie eigene Fenster definieren können und welche Ope­
-rationen auf diesen Fenstern zur Verfügung stehen.
-
diff --git a/doc/menugenerator/menu-generator handbuch.2 b/doc/menugenerator/menu-generator handbuch.2
deleted file mode 100644
index 696ed28..0000000
--- a/doc/menugenerator/menu-generator handbuch.2
+++ /dev/null
@@ -1,87 +0,0 @@
-#type ("prop.lq")##limit (11.0)##pagelength (16.5)##block#
-#start (2.0,0.0)#
-#page (6)#
-#headodd#
-#center#ls-Menu-Generator#right#%
-
-#end#
-#headeven#
-%#center#ls-Menu-Generator
-
-#end#
-#type ("prop.breit.lq")#
-#center#2
-
-#center#Installation
-#center#von
-#center#ls-Menu-Generator
-#type ("prop.lq")#
-
-
- Bevor Sie #on("b")#ls-Menu-Generator#off("b")# auf Ihrem System benut­
-zen können, müssen Sie das Programm zunächst installie­
-ren. Wenn #on("b")#ls-Menu-Generator#off("b")# auf Ihrem System schon zur
-Verfügung steht, können Sie dieses Kapitel ruhig über­
-springen.
-
-
-2.1 Voraussetzungen
-
- Um #on("b")#ls-Menu-Generator#off("b")# auf Ihrem Computer betreiben
-zu können, muß das EUMEL-Betriebssystem (Multi-User-
-Version) installiert und das Programmpaket #on("b")#ls-DIALOG#off("b")#
-(Version 1.1) bereits insertiert sein.
-
-
-2.2 Lieferumfang
-
- #on("b")#ls-Menu-Generator#off("b")# wird auf einer Diskette geliefert,
-die alle notwendigen Programme enthält. Folgende Dateien
-sollten sich auf der Diskette befinden:
-
- "fonttab.ls-Menu-Generator"
- "ls-MENUBASISTEXTE"
- "Generatordatei: Archivmenu"
- "ls-Menu-Generator 1"
- "ls-Menu-Generator 2"
- "ls-Menu-Generator/gen"
-
- Eventuell können noch weitere Namen auf der Diskette
-vorhanden sein.
-
-
-2.3 Installation
-
-Die Installation erfolgt in #on("u")#zwei Schritten#off("u")#:
-
- #on("u")#Zunächst#off("u")# muß die mitgelieferte Fonttabelle
-('fonttab.ls-Menu-Generator') in die Task 'configurator'
-geholt werden. Da Sie aus dem 'UR-Zweig' des EUMEL-
-Systems keinen schreibenden Zugriff auf die Task
-'configurator' haben, müssen Sie die Task 'configurator'
-an Ihr Terminal koppeln und die Datei 'fonttab.ls-Menu-
-Generator' von der Diskette in die Task kopieren.
- #on("u")#Anschließend#off("u")# kann #on("b")#ls-Menu-Generator#off("b")# in einer Task
-installiert werden, in der bereits das Programm #on("b")#ls-DIALOG#off("b")#
-zur Verfügung steht. Richten Sie also eine Task als Sohn
-der Task ein, in der auf Ihrem Computer bereits #on("b")#ls-DIALOG#off("b")#
-installiert ist. Legen Sie dann die Archivdiskette ein,
-auf der sich #on("b")#ls-Menu-Generator#off("b")# befindet und geben Sie
-die folgenden Kommandos:
-
- archive("ls-Menu-Generator") <RETURN>
-
- fetch("ls-Menu-Generator/gen",archive) <RETURN>
-
- run <RETURN>
-
- Sie haben damit das Generatorprogramm gestartet; die
-Installation wird automatisch durchgeführt. Lassen Sie
-während des gesamten Vorgangs die Archivdiskette einge­
-legt. Die Generierung ist beendet, wenn der EUMEL-Ein­
-gangsbildschirm erscheint. Die Task, in der die Generie­
-rung stattfindet, wird automatisch zur Managertask, das
-heißt, daß Söhne von ihr eingerichtet werden können.
-
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.3 b/doc/menugenerator/menu-generator handbuch.3
deleted file mode 100644
index e982988..0000000
--- a/doc/menugenerator/menu-generator handbuch.3
+++ /dev/null
@@ -1,155 +0,0 @@
-#block##pageblock#
-#pagenr("%",1)##setcount(1)##count per page#
-#headeven#
-gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#headodd#
-#right#gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#bottomeven#
-#center#____________________________________________________________
-3 - % #right#ERGOS
-#end#
-#bottomodd#
-#center#____________________________________________________________
-ERGOS #right# 3 - %
-#end#
-#ib#3 Die Arbeitsweise von gs-DIALOG#ie#
-
-
-In diesem Kapitel soll die grundsätzliche Arbeitsweise von gs-DIALOG erläutert
-werden. Sie erfahren, wie das Menusystem aufgebaut ist, wie man Menukarten an­
-koppelt und Menus zur Ausführung bringt. Ebenso wird erläutert, wie eine Menukarte
-aufgebaut ist.
-Wenn Sie die hier beschriebenen Vorgänge auf ihrem System nachvollziehen wollen,
-so muß in Ihrer Task das Programm 'gs-DIALOG' zur Verfügung stehen!
-
-
-#ib#3.1 Ankoppeln einer Menukarte - Ausführen eines Menus#ie#
-
-Vereinfacht gesagt ist eine Menukarte ein Datenraum, in dem alle Informationen, die
-zum Menu (zu den Menus) gehören, abgelegt sind. Der genaue Aufbau einer solchen
-Menukarte wird in Kapitel 3.2 beschrieben.
-Alle Menukarten, die auf einem System zur Verfügung stehen, werden in einer zentra­
-len Task ('gs-MENUKARTEN') bereitgehalten. Die Menukarten können von hier
-angefordert werden.
-Lassen Sie sich in Ihrem System eine Übersicht der vorhandenen Menukarten geben
-(list (/"gs-MENUKARTEN") <RETURN> ). Darauf wird Ihnen gegebenenfalls folgen­
-de Übersicht angeboten:
-
- 01.09.87 "gs-MENUKARTE:Archiv"
- 01.09.87 "gs-MENUKARTE:Herbert und Robbi"
- 01.09.87 "gs-MENUKARTE:MP-BAP"
- ...
-
-Zumindest die erste Menukarte müßte - sofern die gs-DIALOG-Basissoftware instal­
-liert ist - auf Ihrem System vorhanden sein. Die beiden anderen Menukarten sind
-natürlich nur dann vorhanden, wenn Sie die Programme 'gs-Herbert und Robbi'
-und 'gs-MP BAP' installiert haben.
-
-In einer weiteren Task (z.B. 'DIALOG') sind die Programme installiert, die es ermög­
-lichen, diese Menukarten zu handhaben. Alle Sohntasks dieser Task "erben" natür­
-lich diese Fähigkeiten. Von einer solchen Task aus kann nun eine Menukarte ange­
-fordert und ein darin enthaltenes Menu zur Ausführung gebracht werden. Das haben
-Sie sicher schon oft gemacht, z.B. wenn Sie den Befehl 'archiv' gegeben haben. Was
-hinter diesem Befehl steckt, sollen Sie sich jetzt klar machen:
-
-Wenn Sie den Befehl 'archiv' geben, wird zunächst die Menukarte
-'gs-MENUKARTE:Archiv' aus der Task 'gs-MENUKARTEN' angefordert und in Ihre
-Task kopiert. Davon merken Sie normalerweise nichts, denn nachdem die Ankopp­
-lung des Datenraumes (als unbenannter Datenraum) erfolgt ist, wird die Daten­
-raumkopie gelöscht; daher taucht der Name auch nie in Ihrer Dateiliste auf. Intern
-vermerkt das System, welche Menukarte aktuell angekoppelt ist. Soll wiederholt
-dieselbe Menukarte angekoppelt werden, so erübrigt sich das Kopieren aus der zen­
-tralen Bereitstellungstask.
-
-Nach dem Ankoppeln der Menukarte können Sie auf die in der Menukarte enthalte­
-nen Informationen zugreifen. Da in einer Menukarte mehrere Menus enthalten sein
-können, müssen Sie dem System noch mitteilen, welches Menu aktiviert werden soll.
-In der Menukarte 'gs-MENUKARTE:Archiv' ist nur ein Menu enthalten, das den
-Namen 'ARCHIV' hat (der Name des Menus erscheint übrigens bei der Präsentation
-immer oben links in der Kopfzeile).
-
-Sie sollen jetzt, ohne den Befehl 'archiv' zu verwenden, das Menu zur Ausführung
-bringen. Geben Sie dazu die folgenden Kommandos in der 'gib kommando:'- Ebene:
-
- #ib#install menu#ie# ("gs-MENUKARTE:Archiv");
- #ib#handle menu#ie# ("ARCHIV")
-
-Mit dem ersten Befehl koppeln Sie die genannte Menukarte an, mit dem zweiten
-Befehl bringen Sie das darin enthaltene Menu 'ARCHIV' zur Ausführung.
-Allerdings stellen Sie sicher auch einen Unterschied zur Ausführung des Befehls
-'archiv' fest, denn dort erscheint nicht erst unser "Software - Emblem" auf dem
-Bildschirm, sondern direkt das Menu.
-
-Wenn Ihnen eines der Programme 'gs-Herbert und Robbi' oder 'gs-MP BAP'
-bekannt ist, haben Sie unser Emblem aber sicher schon gesehen - wir verwenden es
-immer, um unsere Softwareprodukte kenntlich zu machen. Da man aber das Archiv­
-programm sehr häufig benötigt und es dann nur störend wirkt kann die Ausgabe
-unterdrückt werden. Daher gibt es den Befehl 'install menu' in zwei Versionen.
-Versuchen Sie es gleich einmal:
-
- install menu ("gs-MENUKARTE:Archiv", FALSE);
- handle menu ("ARCHIV")
-
-Die Präsentation des Menus erfolgt gleich aus zwei Gründen schneller als beim ersten
-Mal: einerseits wurde auf die Ausgabe unseres Software - Emblems verzichtet, ande­
-rerseits brauchte die Menukarte nicht erneut aus der Task 'gs-MENUKARTEN' kopiert
-zu werden, da sie ja schon angekoppelt war.
-Damit sind Sie nun in der Lage, Menukarten anzukoppeln und Menus zur Ausfüh­
-rung zu bringen.
-
-
-#ib#3.2 Aufbau/Inhalt einer Menukarte#ie#
-
-Eine Menukarte ist eine komplexe Datenstruktur, die bis zu 6 vollständige Menus
-aufnehmen kann. Weiterhin sind eine Reihe von Texten in jeder Menukarte abgelegt,
-auf die gs-DIALOG zurückgreift. Darüberhinaus kann der Anwendungsprogram­
-mierer bis zu 2000 Texte in die Menukarte auslagern, um so beim Insertieren seiner
-Programme den Umfang an Paketdaten geringer zu halten.
-Auf den ersten Blick scheint es wenig Sinn zu machen, mehrere Menus in einer
-Menukarte zu verwalten. Nehmen wir aber als Beispiel das Programmsystem
-gs-Herbert und Robbi. Hier ist ein Programm in zwei unterschiedlichen Ausprä­
-gungen zu behandeln. Sowohl das Hamster- als auch das Robotermenu befinden sich
-in einer Menukarte. Bei einem Wechsel zwischen den Modellen braucht also keine
-neue Menukarte angefordert, sondern nur ein neues Menu aus der aktuellen Menu­
-karte aktiviert zu werden.
-Zum anderen ist gs-DIALOG schon auf umfangreichere Programmsysteme vorberei­
-tet: Es ist nämlich möglich, von einem Menu aus ein weiteres Menu aus der aktuellen
-Menukarte zu aktivieren. Auf dem Bildschirm werden die beiden Menus dann ge­
-schachtelt (das zuletzt aktivierte vor dem aufrufenden Menu) angezeigt. Nach Verlas­
-sen der zweiten Menuebene gelangt der Benutzer automatisch in das Ausgangsmenu
-zurück.
-Zwar ist es nicht möglich, mehr als zwei Menus gleichzeitig zu aktivieren (geschach­
-telt auf dem Bildschirm darzustellen), doch können an verschiedenen Stellen des
-Ausgangsmenus ja unterschiedliche Menus aus der aktuellen Menukarte aktiviert
-werden.
-
-Jedes Menu in der Menukarte wird durch einen Namen gekennzeichnet. Dieser Name
-erscheint in der Kopfzeile oben links. Über diesen Namen kann das Menu aktiviert
-werden.
-Ein Menu besteht aus den sogenannten 'Oberbegriffen', die in der Kopfzeile angezeigt
-werden. In einer Kopfzeile können bis zu 10 Oberbegriffe verwaltet werden. Da zu
-jedem Oberbegriff bis zu 15 Verarbeitungsfunktionen (in den Pull-Down-Menus)
-verwaltet werden können, ist es möglich, in einem Menu bis zu 150 Verarbeitungs­
-funktionen abzulegen. Nutzt man alle 6 Menus einer Menukarte, so können maximal
-bis zu 900 Verarbeitungsfunktionen in einer Menukarte verwaltet werden.
-
-Eine Verarbeitungsfunktion besteht aus der/dem
-
- - 'Ein-Zeichen-Kennung' - die angibt, durch welche Taste die Verarbei­
- tungsfunktion ggf. aktiviert werden kann;
- - 'Menupunktbezeichnung' - die im Pull-Down-Menu als Name für die
- Verarbeitungsfunktion erscheint;
- - 'Funktionsaufruf' - dem Namen der Prozedur, die bei der Aktivie­
- rung des Menupunktes zur Ausführung ge­
- bracht wird;
- - 'Informationstext' - der zur aktuellen Verarbeitungsfunktion durch
- Tippen der <?>-Taste abgerufen werden
- kann.
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.4 b/doc/menugenerator/menu-generator handbuch.4
deleted file mode 100644
index 97e7491..0000000
--- a/doc/menugenerator/menu-generator handbuch.4
+++ /dev/null
@@ -1,424 +0,0 @@
-#block##pageblock#
-#pagenr("%",1)##setcount(1)##count per page#
-#headeven#
-gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#headodd#
-#right#gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#bottomeven#
-#center#____________________________________________________________
-4 - % #right#ERGOS
-#end#
-#bottomodd#
-#center#____________________________________________________________
-ERGOS #right# 4 - %
-#end#
-#ib#4 Erstellen einer neuen Menukarte#ie#
-
-
-Aus Kapitel 3 wissen Sie, wie man eine fertige Menukarte ankoppelt und wie man ein
-darin enthaltenes Menu zur Ausführung bringen kann. Außerdem wissen Sie bereits,
-welche Informationen in einer Menukarte untergebracht werden können. In diesem
-Kapitel nun wollen wir Ihnen zeigen, wie Sie eine eigene Menukarte entwickeln
-können.
-Damit Sie sich die Abläufe besser vorstellen können, werden wir die Vorgänge an
-einem Beispiel aufzeigen: Wir wollen eine 'kleine Textverarbeitung' schaffen, deren
-Verarbeitungsfunktionen über ein Menu angeboten werden.
-Es sei aber darauf hingewiesen, daß es nicht darum geht, eine voll funktionsfähige
-Textverarbeitung auszuarbeiten - vielmehr sollen die Erstellung der Menukarte und
-das Nutzen der durch gs-DIALOG bereitgestellten Werkzeuge exemplarisch auf
-gezeigt werden.
-
-
-#ib#4.1  Eintragen der Menupunkte#ie#
-
-Unsere Menukarte soll den Namen 'Kleine Textverarbeitung' erhalten, das darin
-enthaltene Menu den Namen 'SCRIPT'. Unter dem Oberbegriff 'Bearbeiten' sollen 5
-Verarbeitungsfunktionen angeboten werden. Insgesamt soll unser neues Menu fol
-genden Aufbau haben:
-
-SCRIPT: Bearbeiten
-
- n Neu erstellen
- a Ansehen/Ändern
- ----------------
- v Verzeichnis
- ----------------
- z Zeilenformtierung
- s Seitenformatierung
-
-
-
-Zur Erzeugung der zugehörigen Menukarte schreiben Sie folgendes Pro­
-gramm in eine Datei:
-
-
-oeffne menukarte ("Kleine Textverarbeitung");
-oeffne menu ("SCRIPT");
-
-oberbegriff ("Bearbeiten");
-
-menufunktion ("n", "Neu erstellen", "neue datei editieren","");
-menufunktion ("a", "Ansehen/Ändern", "alte datei editieren","");
-trennlinie;
-menufunktion ("v", "Verzeichnis", "verzeichnis ausgeben","");
-trennlinie;
-menufunktion ("z", "Zeilenformatierung", "zeilen formatieren","");
-menufunktion ("s", "Seitenformatierung", "seiten formatieren","");
-
-schliesse menu;
-schliesse menukarte;
-
-
-Bevor wir Ihnen die Einzelheiten erklären, sollten Sie zuerst einmal Ihr neu erstelltes
-Menu ausprobieren. Verlassen Sie dazu die Datei und geben Sie das Kommando 'run'.
-Nachdem das von Ihnen geschriebene Programm übersetzt worden ist, meldet sich
-der Menu-Generator.
-Die an Sie gestellte Frage 'Sollen auch Anwendungs texte in die Menukarte aufge­
-nommen werden (j/n)?' beantworten Sie einfach mit n(ein). Auf dem Bildschirm
-wird angezeigt, wie die Menukarte erstellt wird. Auf das Ende der Menukartengenerie­
-rung wird hingewiesen. Wenn Sie sich jetzt die Dateiliste Ihrer Task anzeigen lassen,
-taucht dort eine Datei mit Namen 'gs-MENUKARTE:Kleine Textverarbeitung' auf - das
-ist die neue Menukarte.
-Sie möchten sicher gleich ausprobieren, ob das Menu Ihren Vorstellungen entspricht.
-Geben Sie dazu das Kommando 'testinstallation ("gs-MENUKARTE:Kleine Textver­
-arbeitung")'. Bitte geben Sie den Text genauso ein wie hier angegeben!
-Nach kurzer Zeit erscheint der Hinweis 'Installation abgeschlossen!'. Geben Sie nun
-den Befehl 'handle menu ("SCRIPT")'; hierdurch aktivieren Sie das von Ihnen neu
-erstellte Menu - es erscheint auf dem Bildschirm.
-
-Über den Befehl '#ib#testinstallation#ie#' haben Sie sich sicher gewundert. Ihnen ist ja
-schon der Befehl '#ib#install menu#ie#' bekannt. Dieser Befehl aber kann hier nicht ein­
-fach angewendet werden - er ist für den (späteren) "regulären Betrieb" vorgesehen.
-Bedenken Sie bitte zweierlei: Die Menukarte befindet sich nur in Ihrer Task, 'install
-menu' fordert die Menukarte aber aus der Task 'gs-MENU KARTEN' an. Ist eine
-Menukarte schon angekoppelt gewesen, so wird nicht erneut angekoppelt, sondern
-auf die angekoppelte Menukarte zurückgegriffen. Dies alles können wir bei der
-Menukartenerstellung nicht gebrauchen!
-Der Befehl 'testinstallation' sendet automatisch die Menukarte zur Task
-'gs-MENUKARTEN' und kennzeichnet Sie noch durch den eigenen Tasknamen (da
-durch können sich beim Multiuserbetrieb unterschiedliche Anwender mit gleichem
-Menukartennamen nicht gegenseitig stören). Die Menukarte wird anschließend in
-jedem Falle 'frisch' angekoppelt, so daß Sie nach dem Befehl immer die aktuelle
-Menukarte angekoppelt haben. Außerdem bleibt die Menukarte in Ihrer Task erhal­
-ten!
-
-Doch nun zur Erläuterung des oben notierten Programms:
-
-Ein Programm zur Erstellung einer Menukarte muß immer mit dem Befehl '#ib#oeffne
-menukarte#ie#' beginnen und mit dem Befehl '#ib#schliesse menukarte#ie#' abgeschlos­
-sen werden. Der Befehl 'oeffne menukarte' hat einen Parameter (TEXT CONST) -
-hierdurch wird festgelegt, welchen Namen die Menukarte haben soll. Durch das
-Kommando 'oeffne menu karte ("Menu 1")' entsteht also die Menukarte 'gs-MENU
-KARTE:Menu 1".
-In die Menukarte können jetzt bis zu 6 Menus eingetragen werden. Jeder Eintrag
-eines Menus beginnt mit dem Befehl '#ib#oeffne menu#ie#' und endet mit dem Befehl
-'#ib#schliesse menu#ie#'. Der Befehl 'oeffne menu' hat hier einen Parameter (TEXT
-CONST) - hierdurch wird festgelegt, welchen Namen das Menu erhalten soll. Unter
-diesem Namen kann später das Menu angesprochen werden (z.B. 'handle menu
-("SCRIPT")'.
-
-Den Befehl 'oeffne menu' gibt es noch in zwei weiteren Ausführungen:
-Mit drei Textparametern - neben dem Namen des Menus können hier noch zwei
-Prozedurnamen angegeben werden. Diese Prozeduren werden beim Einstieg in das
-Menu bzw. beim Verlassen des Menus aufgerufen. Hiervon wird z.B. Gebrauch ge­
-macht, wenn das Archiv-Menu in eine Menukarte integriert ist: Wenn das Menu
-verlassen wird, soll sichergestellt sein, daß das Archiv automatisch freigege ben wird.
-Mehr hierüber erfahren Sie im Kapitel 6.1, in dem aufgezeigt wird, wie das Archiv-
-Menu in andere Menus eingebunden wird.
-Mit sechs Textparametern - neben den eben genannten drei Parametern können noch
-drei Texte übergeben werden. Diese Texte werden beim Aufruf des Menus unten
-rechts auf dem Bildschirm ausgegeben. Bei unseren Software-Produkten (z.B.
-'gs-Herbert und Robbi') machen wir davon Gebrauch, um Hinweise auf das
-Produkt, die Versionsnummer etc. zu geben. Die Hinweise bleiben nur kurz auf dem
-Bildschirm und verschwinden nach kurzer Zeit automatisch, oder wenn Sie irgen
-deine Taste tippen. Bei der Notation der Texte müssen Sie sich allerdings an einige
-Regeln halten (sehen Sie dazu Kapitel 5.12).
-
-Zwischen den Befehlen 'oeffne menu' und 'schliesse menu' werden nun die Oberbe­
-griffe (Kopfzeile) und die zugehörigen Verarbeitungsfunktionen eingetragen. Dabei
-müssen Sie sich genau an folgende Abfolge halten:
-Zuerst wird jeweils der Oberbegriff genannt, der in der Kopfzeile auftauchen soll.
-Direkt unter dem jeweiligen Oberbegriff werden die Menufunktionen eingetragen, die
-im zugehörigen 'Pull-Down-Menu' als Verarbeitungsfunktionen angeboten werden
-sollen. Die einzelnen Oberbegriffe mit Ihren zugehörigen Verarbeitungsfunktionen
-werden blockweise hintereinander notiert. Dadurch ergibt sich die folgende Struktur:
-
-
-oeffne menu ("Menuname");
-
-oberbegriff ("Oberbegriff 1");
-
-menufunktion ("1", "Verarbeitungsfunktion 1", "", "");
-menufunktion ("2", "Verarbeitungsfunktion 2", "", "");
-...
-
-oberbegriff ("Oberbegriff 2");
-
-menufunktion ("1", "Verarbeitungsfunktion 1", "", "");
-menufunktion ("2", "Verarbeitungsfunktion 2", "", "");
-...
-
-oberbegriff ("Oberbegriff 3");
-
-menufunktion ("1", "Verarbeitungsfunktion 1", "", "");
-menufunktion ("2", "Verarbeitungsfunktion 2", "", "");
-...
-
-... schliesse menu;
-
-
-Die Oberbegriffe werden in die Kopfzeile von links nach rechts eingetragen. Maximal
-können 10 Oberbegriffe eingetragen werden. Wählen Sie die Bezeichnungen nicht zu
-lang, denn sie müssen alle neben dem Namen des Menus in der Kopfzeile Platz
-finden (Ansonsten erhalten Sie hierauf bei der Menukartengenerierung einen Hin­
-weis, die Generierung wird abgebrochen!)!
-
-Den Befehl '#ib#oberbegriff#ie#' gibt es in zwei Versionen:
-In der hier aufgezeigten Version mit einem (TEXT-) Parameter: Hierdurch wird der
-Oberbegriff in der Kopfzeile festgelegt. In der zweiten Version hat der Befehl drei
-(TEXT-)Parameter: Durch den ersten wird - wie eben - die Kopfzeilenbezeichnung
-festgelegt. Daneben können noch zwei Prozedurnamen angegeben werden. Die
-Prozedur mit dem erstgenannten Namen wird beim Einstieg (vor dem "Ausklappen"
-des Pull-Down-Menus) ausgeführt, die Prozedur mit dem zweitgenannten Namen vor
-dem Ausstieg ("Einklappen"). Beim 'Archiv-Pull-Down-Menu' machen wir hiervon
-Gebrauch. Beim Einstieg wird dafür gesorgt, daß nur bestimmte Verarbeitungsfunk­
-tionen aktivierbar sind; beim Ausstieg wird sichergestellt, daß das Archivlaufwerk
-automatisch freigegeben wird.
-
-Unter einem Oberbegriff können Sie bis zu 15 Verarbeitungsfunktionen in ein Pull-
-Down-Menu eintragen. Die Verarbeitungsfunktionen können Sie optisch vonein ander
-trennen. Dafür steht der Befehl '#ib#trennlinie#ie#' zur Verfügung. Aber beachten Sie, er
-belegt den gleichen Platz wie eine Verarbeitungsfunktion.
-
-Zum Eintragen einer Verarbeitungsfunktion steht der Befehl '#ib#menufunktion#ie#' zur
-Verfügung. Der Befehl besitzt vier (TEXT-)Parameter. Die ersten beiden Parameter
-werden auch auf dem Bildschirm ausgegeben.
-Der erste Parameter legt fest, über welche Taste diese Verarbeitungsfunktion direkt
-zur Ausführung gebracht werden kann. Wenn eine Eintragung erfolgt, muß diese aus
-genau einem Zeichen bestehen. Innerhalb eines Pull-Down-Menus muß dieses
-Zeichen eindeutig sein, d.h. es darf nur einmal verwendet werden. Ansonsten er­
-scheint bei der Menugenerierung eine Fehlermeldung.
-Der zweite Parameter ist die Bezeichnung der Verarbeitungsfunktion, die dem Be­
-nutzer im Pull-Down-Menu angeboten wird. Wählen Sie die Bezeichnung bitte immer
-prägnant und möglichst mit dem Buchstaben beginnend, den Sie auch als ersten
-Parameter angegeben haben! Der Länge dieser Bezeichnung ist nur durch die Bild­
-schirmbreite (nicht mehr als 60 Zeichen) begrenzt, allerdings wählt gs-DIALOG die
-Breite des Pull-Down-Menus nach der längsten Bezeichnung, die im jeweiligen Pull-
-Down-Menu auftritt. Wenn die Bezeichnungen ganz unterschiedlich lang sind, sieht
-das nicht sonderlich gut aus, aber probieren Sie es ruhig einmal aus und entscheiden
-Sie selbst.
-
-Der dritte Parameter ist der Name der Prozedur, die bei der Aktivierung der Verarbei­
-tungsfunktion ausgewählt werden soll. Zum Zeitpunkt der Erstellung und des Testens
-des Menusystems braucht diese Prozedur noch nicht zu existieren. Damit ist es
-möglich, die Menuentwicklung völlig unabhängig von der Entwicklung der Verarbei­
-tungsfunktionen zu betreiben; Sie brauchen nur die späteren Namen der aufzurufen­
-den Prozeduren festzulegen! Aktivieren Sie eine solche Verarbeitungsfunktion im
-Pull-Down-Menu, die noch nicht fertiggestellt ist, so erscheint der Hinweis 'unbe­
-kanntes Kommando' - das kann aber auch geschehen, wenn die Verarbeitungsfunk­
-tion schon existiert, Sie aber bei der Eintragung einen (Schreib-)Fehler gemacht
-haben!
-
-Der vierte Parameter ist der Text, der als sogenannter Infotext ausgegeben wird wenn
-Sie auf die entsprechende Verarbeitungsfunktion positioniert haben und hier die
-<?>-Taste tippen. In unserem Beispiel haben wir keinen Infotext eingetragen.
-Versuchen Sie im Menu jetzt die <?>-Taste zu tippen, so erscheint der Hinweis
-'Leider ist zu diesem Menupunkt kein Info-Text eingetragen!'. Für die Handhabung
-des Menus sind diese Informationstexte nicht wichtig, sie dienen ausschließlich der
-Information des Benutzers.
-Die Arbeit zur Formulierung/Abfassung dieser Texte sollten Sie nicht unterschätzen.
-Sie sollten sich bei einer ernsthaften Anwendung aber diese Arbeit machen. Gerade
-der Anfänger, der mit Ihrem Menusystem arbeitet, wird Ihnen diese Arbeit danken.
-Wie Sie diese Texte komfortabel erstellen und in die Menutafel einbinden können,
-erklären wir Ihnen im nächsten Kapitel.
-
-
-#ib#4.2 Erstellung und Einbinden von Informationstexten#ie#
-
-Bisher haben wir noch keine Informationstexte zu den Menupunkten in die Menu­
-karte eingetragen. Diese Eintragung erfolgt über den vierten Parameter des Befehls
-'menufunktion'. Möchten Sie dort nur einige wenige Worte eintragen, so kann das
-direkt geschehen. Meist aber sind die Informationen zu einem Menupunkt doch
-länger, sie erstrecken sich über mehrere Zeilen.
-Zur Übergabe des Informationstextes steht aber nur ein Textparameter zur Verfügung.
-Würde man längere Texte direkt eintragen, wäre das bei der Menukartenerstellung
-sicher sehr unübersichtlich. Zum anderen benötigt gs-DIALOG den Text schon in
-aufbereiteter Form, d.h. es müssen z.B. Zeilenenden etc. kenntlich gemacht wer den.
-Damit Sie sich nun nicht alle Regeln der Texterstellung für gs-DIALOG merken
-müssen, bietet Ihnen gs-Menu-Generator eine komfortable Möglichkeit, diese
-Informationstexte zu entwickeln. Wir wollen das an einem Beispiel verdeutlichen:
-
-Erzeugen Sie sich eine Datei mit dem Namen 'Textprobe' und schreiben Sie z.B.
-folgenden Text, der ein Informationstext zum Menupunkt 'Neu erstellen' sein könnte,
-hinein:
-
-Text neu erstellen
-
-Das System erfragt zunächst den Namen für die Datei, in die
-der neue Text geschrieben werden soll. Anschließend wird eine
-leere Datei mit dem gewünschten Namen zum Beschreiben
-angeboten.
-Das Schreiben in eine solche Datei wird durch viele Hilfen
-erleichtert. Deshalb ist es ratsam, sich nach und nach mit
-den Möglichkeiten, die der Editor bietet, vertraut zu machen.
-Die Möglichkeiten sind im EUMEL-Benutzerhandbuch ausführlich
-beschrieben.
-
-Verlassen Sie nun die Datei und geben Sie in der 'gib kommando:'-Ebene folgendes
-Kommando:
-
- #ib#textprozedur#ie# ("Textprobe", "mein erster infotext")
-
-Auf dem Bildschirm erscheint zunächst der Hinweis 'Bitte warten ...', anschließend
-werden Sie - wie aus der Textverarbeitung (lineform) bekannt - aufgefordert, entspre­
-chende Trennungen vorzunehmen.
-Das eben eingegebene Kommando bewirkt nämlich, daß der in der Datei 'Textprobe'
-enthaltene Text für gs-DIALOG so aufbereitet wird, daß er in einer Box innerhalb des
-Menus eingeblendet werden kann. Die Zeilen werden auf die entsprechende Länge
-zugeschnitten und der Text in den Zeilen wird geblockt, soweit Sie keine Absatzmarke
-(<RETURN>) gesetzt haben.
-Der so den Regeln von gs-DIALOG entsprechend aufbereitete Text wird automatisch
-in eine Textprozedur "verpackt", die den von Ihnen als zweiten Parameter übergebe­
-nen Namen erhält. Beachten Sie deshalb bei der Festlegung des Namens, daß er mit
-einem Kleinbuchstaben beginnt und weiterhin nur Kleinbuchstaben, Ziffern und
-Leerzeichen enthält!
-Diese Textprozedur finden Sie anschließend in der Datei 'Textprobe.a'. An der En­
-dung '.a' können Sie erkennen, daß in dieser Datei ein "aufbereiteter" Text enthalten
-ist.
-Wenn Sie sich, nachdem auf dem Bildschirm der Hinweis 'Textprozedur ist erstellt!'
-erschienen ist, die Datei 'Textprobe.a' ansehen, so hat diese folgenden Inhalt:
-
-
-TEXT PROC mein erster infotext:
-" Text neu erstellen "13"" +
-" "13"" +
-" Das System erfragt zunächst den Namen für die Datei, in die der "13""+
-" neue Text geschrieben werden soll. Anschließend wird eine leere "13""+
-" Datei mit dem gewünschten Namen zum Beschreiben angeboten. "13""+
-" Das Schreiben in eine solche Datei wird durch viele Hilfen er-"13""+
-" leichtert. Deshalb ist es ratsam, sich nach und nach mit den Mög-"13""+
-" lichkeiten, die der Editor bietet, vertraut zu machen. "13"" +
-" Die Möglichkeiten sind im EUMEL-Benutzerhandbuch ausführlich be-"13""+
-" schrieben. "
-END PROC mein erster infotext;
-
-
-Kopieren Sie nun den Inhalt der Datei 'Textprobe.a' in die Datei, in die Sie das Pro­
-gramm zur Generierung Ihrer Menukarte geschrieben haben und ergänzen Sie die
-Ein tragung beim ersten Menupunkt in folgender Weise:
-
-
-TEXT PROC mein erster infotext:
-" Text neu erstellen "13"" +
-" "13"" +
-" Das System erfragt zunächst den Namen für die Datei, in die der"13""+
-" neue Text geschrieben werden soll. Anschließend wird eine leere"13""+
-" Datei mit dem gewünschten Namen zum Beschreiben angeboten. "13""+
-" Das Schreiben in eine solche Datei wird durch viele Hilfen er-"13""+
-" leichtert. Deshalb ist es ratsam, sich nach und nach mit den Mög-"13""+
-" lichkeiten, die der Editor bietet, vertraut zu machen. "13""+
-" Die Möglichkeiten sind im EUMEL-Benutzerhandbuch ausführlich be-"13""+
-" schrieben. "
-END PROC mein erster infotext;
-
-oeffne menukarte ("Kleine Textverarbeitung");
-oeffne menu ("SCRIPT");
-
-oberbegriff ("Bearbeiten");
-
-menufunktion ("n", "Neu erstellen", "neue datei editieren",
- mein erster infotext);
-menufunktion ("a", "Ansehen/Ändern","alte datei editieren", "");
-trennlinie;
-menufunktion ("v", "Verzeichnis", "verzeichnis ausgeben", "");
-trennlinie;
-menufunktion ("z", "Zeilenformatierung", "zeilen formatieren", "");
-menufunktion ("s", "Seitenformatierung", "seiten formatieren", "");
-
-schliesse menu;
-schliesse menukarte;
-
-
-Starten Sie erneut das Programm mit 'run' und erstellen Sie dadurch eine neue
-Menukarte. Installieren Sie anschließend die neue Menukarte mit dem Kommando
-'test installation ("gs-MENUKARTE:Kleine Textverarbeitung")' und bringen Sie das
-Menu mit dem Kommando 'handle menu ("SCRIPT")' zur Ausführung. Wenn Sie jetzt
-auf dem Menu punkt 'n Neu erstellen' die <?>-Taste tippen, erscheint der von
-Ihnen eingegebene Infotext in einer Box innerhalb des Menus. Die Größe der Box
-wird automatisch durch den Text bestimmt. Die Box ist maximal 65 Zeichen breit
-und 14 Zeilen hoch.
-
-Nachdem Sie nun in der Lage sind, solche Informationstexte zu erstellen und sie in
-die Menukarte einzubinden, möchten wir Ihnen noch einige Möglichkeiten der
-"Kosmetik solcher Informationstexte" aufzeigen.
-Häufig möchte man die Überschrift eines solchen Informationstextes zentriert über
-dem Text dargestellt haben. Das läßt sich auch hier einfach bewerkstelligen: Schrei­
-ben Sie dazu als erstes Zeichen der Zeile, die zentriert werden soll, das Zeichen '%'
-und schließen Sie die Zeile mit einer Absatzmarke (<RETURN>) ab.
-Möchten Sie innerhalb des Textes eine Textpassage invers dargestellt haben, so kenn­
-zeichnen Sie den Anfang der Inversdarstellung durch das Zeichen '$' und das Ende
-der Inversdarstellung durch das Zeichen '&'. Der Text wird anschließend entspre­
-chend aufbereitet. Allerdings sollte die Textpassage nicht über Zeilengrenzen hinaus­
-gehen!
-Möchten Sie in unserem Beispiel die Überschrift zentriert und invers dargestellt
-haben, so ersetzen Sie die erste Zeile der Datei 'Textprobe' durch die Zeile: %$Text
-neu erstellen&. Wenn Sie anschließend den gesamten oben beschriebenen Vorgang
-wiederholen, erscheint die Überschift zentriert und invers dargestellt innerhalb der
-Box im Menu.
-
-
-#ib#4.3 Auslagerung von anwendungsbezogenen Texten in die
-Menukarte#ie#
-
-Wie schon in Kapitel 3.2 erwähnt, kann der Anwendungsprogrammierer bis zu 2000
-Texte aus seinen Programmen in die Menukarte auslagern, um so den Umfang an
-Paketdaten geringer zu halten, allerdings darf die Gesamtkapazität einer Menukarte
-(eines Datenraumes) dabei nicht überschritten werden.
-
-Die Texte müssen in einer Datei zeilenweise notiert sein. Sie müssen (wie TEXT-Deno­
-ter) in Anführungsstriche eingefaßt sein, allerdings dürfen die Texte länger als
-(normale) TEXT-Denoter (255 Zeichen) sein. Innerhalb der Textzeile dürfen auch die
-Ausgabecodes "4", "5", "7", "10", "13", "14", und "15" verwendet werden. Innerhalb
-der Textzeile darzustellende Anführungszeichen unterliegen den gleichen Besonder­
-heiten wie sonst auch bei TEXT-Denotern.
-Machen wir ein Beispiel! Schreiben Sie in eine Datei mit Namen 'Neue Texte' die
-folgenden Zeilen:
-
-"Dieses ist der erste eingetragene Text!"
-"Hier ist eine "15"Markierung"14" im Text!"
-"Dieses ist die letzte Zeile!"
-
-Um diese Texte in die Menukarte einzubinden, starten Sie jetzt noch einmal Ihr
-Generierungprogramm für die Menukarte. Auf die Frage 'Sollen auch Anwendungstex­
-te in die Menukarte aufgenommen werden (j/n) ?' antworten Sie jetzt allerdings mit
-j(a). Daraufhin werden Ihnen die in Ihrer Task vorhandenen Dateien zur Auswahl
-angeboten. Kreuzen Sie die Datei 'Neue Texte' an, in der ja die eben genannten Texte
-eingetragen sind.
-Bei der Menukartengenerierung werden die Texte aus der Datei in die Menukarte
-eingebunden. Sollten Sie bei Notierung der Texte in der Datei formale Fehler gemacht
-haben, so werden Sie darauf hingewiesen.
-Um nun auf die eingelagerten Texte zurückgreifen zu können, muß erst einmal die
-neue Menukarte angekoppelt werden. Wie das geht, wissen Sie ja schon ('testin stalla­
-tion').
-Mit dem Befehl '#ib#anwendungstext#ie# (INT CONST zeilennummer)' (1 <= zeilen­
-nummer <= 2000) wird Ihnen nun der Text, der in der angegebenen Zeile steht,
-geliefert. Probieren Sie es doch gleich an Ihrer Menukarte aus: 'put (anwendungs­
-text (1))', 'put (anwendungstext (2))' usw.. Die eingelagerten Texte müßten jetzt auf
-dem Bildschirm erscheinen. Geben Sie eine Zeilennummer an, die nicht belegt ist, so
-wird der Text 'Kein Text vorhanden!' geliefert.
-
-Es können natürlich auch Texte abgelegt werden, die von gs-DIALOG aus aufgegrif­
-fen werden. Zur Konvertierung von Informationstexten steht die Prozedur '#ib#text zeile#ie#
-(TEXT CONST dateiname)' zur Verfügung. Diese Prozedur arbeitet genauso wie die
-Prozedur 'textprozedur', nur wird in der Ausgabedatei ('dateiname.a') der formatierte
-Text nicht als Textprozedur, sondern als einzeiliger Text geliefert. Sie können aber
-auch für gs-DIALOG Texte "von Hand" gestalten. Dazu müssen Sie sich an die
-Regeln für die Texte für gs-DIALOG halten, die in Kapitel 5.12 erläutert sind.
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.5 b/doc/menugenerator/menu-generator handbuch.5
deleted file mode 100644
index c002f1a..0000000
--- a/doc/menugenerator/menu-generator handbuch.5
+++ /dev/null
@@ -1,975 +0,0 @@
-#block##pageblock#
-#pagenr("%",1)##setcount(1)##count per page#
-#headeven#
-gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#headodd#
-#right#gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#bottomeven#
-#center#____________________________________________________________
-5 - % #right#ERGOS
-#end#
-#bottomodd#
-#center#____________________________________________________________
-ERGOS #right# 5 - %
-#end#
-#ib#5  Dialoge innerhalb des Menus#ie#
-
-
-In Kapitel 4 haben Sie erfahren, wie Sie eine eigene Menukarte entwickeln können;
-sicher haben Sie das schon ausprobiert und sich Ihr selbstgestaltetes Menu auf dem
-Bildschirm angesehen. Bislang erscheint aber noch der Hinweis 'unbekanntes Kom­
-mando', wenn Sie eine Menufunktion aktivieren - denn die Prozeduren, die Sie bei
-der Aktivierung der Menufunktion aufrufen, sind ja noch nicht fertiggestellt!
-Bei vielen Menufunktionen ist es notwendig, mit dem Benutzer noch einen Dialog zu
-führen: z.B. muß ein Dateiname erfragt, eine Information ausgegeben und bestätigt,
-eine Auswahl oder eine Entscheidung getroffen werden. In diesem Kapitel sollen
-Ihnen nun die Möglichkeiten vorgestellt werden, die Ihnen zur Verfügung stehen, um
-einen solchen Dialog mit dem Benutzer zu führen. Dieser Dialog wird innerhalb des
-Menus geführt. Alle Prozeduren, die sich auf diesen Menu-Dialog beziehen, enthalten
-deshalb den Wortbestandteil 'menu'.
-
-Hier noch einige Tips! Damit Sie Ihre Menu-Dialoge testen können, empfiehlt
-sich folgendes Vorgehen: Sie erstellen zuerst Ihre Menukarte und tragen schon die
-Namen für die jeweils aufzurufenden Prozeduren ein - wie wir es in Kapitel 4 ge­
-macht haben. Mit 'testinstallation' installieren Sie dann in Ihrer Task die neue Menu­
-karte.
-Nun schreiben Sie Ihre Prozeduren, die Sie unter das Menu legen wollen. Ist eine
-Prozedur "testreif", so müssen Sie sie zunächst insertieren, denn das Menusystem gs-
-DIALOG kann nur auf insertierte Prozeduren zugreifen. Anschließend rufen Sie das
-Menu (z.B. 'SCRIPT') aus der Menukarte mit dem Befehl 'handle menu ("SCRIPT")'
-(Hier ist der jeweilige Menuname einzusetzen!) auf. Wenn Sie den entsprechenden
-Menupunkt aktivieren, müßte Ihr Programm ablaufen.
-Es ist günstig, eine eigene Task zum Testen der Prozeduren anzulegen, damit diese
-hin und wieder gelöscht werden kann.
-
-
-#ib#5.1 Eingabe eines Textes/Namens#ie# ('#ib#menuanswer#ie#')
-
-Wenn der Benutzer in unserem Beispiel die Menufunktion 'Neu erstellen' aktiviert
-hat, muß der Name der Datei erfragt werden, die neu erstellt werden soll. Dafür steht
-die Prozedur 'menuanswer' zur Verfügung. Die in die Menukarte eingetragene Proze­
-dur 'neue datei editieren' (Siehe Kapitel 4.1) könnte dann folgendermaßen aussehen:
-
-
-PROC neue datei editieren:
- TEXT VAR dateiname := menuanswer ("Bitte den gewünschten Dateinamen:",
- "", 5);
- IF dateiname <> "" AND NOT exists (dateiname)
- THEN command dialogue (FALSE); #ib#cursor on#ie#;
- edit (dateiname);
- #ib#cursor off#ie#; command dialogue (TRUE);
- regenerate menuscreen (* sehen Sie dazu Kapitel 5.10 *)
- FI
-END PROC neue datei editieren;
-
-
-Schauen wir uns zuerst die Prozedur 'menuanswer' an. Die Prozedur hat drei Para­
-meter. Mit dem ersten Parameter legen Sie den Text fest, der innerhalb der Box
-ausgegeben wird, die auf dem Bildschirm erscheint. Der Text dient ausschließlich der
-Information des Anwenders.
-Mit dem zweiten Parameter können Sie dem Benutzer einen Vorschlag für die Einga­
-be machen, der zum Editieren ausgegeben wird. Da eine solche Vorgabe aber in die­
-ser Situation sinnlos wäre, verzichten wir darauf ("").
-
-Die auf dem Bildschirm erscheinende Box hat folgendes Aussehen:
-
- +-------------------------------------+
- I Bitte den gewünschten Dateinamen: I
- I I
- I I
- I Eingabe: I
- +-------------------------------------+
-
-
-Die Boxbreite und -höhe wird vom System automatisch anhand des von Ihnen als
-ersten Parameter übergebenen Textes festgelegt. Sie haben noch verschiedene Mög­
-lichkeiten, diesen Text zu gestalten (mehrere Zeilen, Inversdarstellung etc.) - auf
-diese Möglichkeiten gehen wir in Kapitel 5.13 detailliert ein.
-In unserem Beispiel erscheint die Box in der Mitte des Menubildschirms. Diese
-Festlegung treffen wir durch die Angabe der Position '5' als dritten Parameter. Sie
-können hier zwischen 5 verschiedenen Positionen wählen: 1 - oben links, 2 - oben
-rechts, 3 - unten links, 4 - unten rechts, 5 - zentral im Menubildschirm - mehr dazu
-in Kapitel 5.12.
-
-Mit dem Erscheinen der obigen Box auf dem Bildschirm ändert sich automatisch
-auch die Fußzeile im Menu, über die der Benutzer Informationen zur Bedienung
-erhält. Hier erscheint der Hinweis: 'Fertig: <RETURN>  Abbruch: <ESC><h>'.
-Um diese Hinweise brauchen Sie sich aber nicht zu kümmern , da sie alle automa­
-tisch gesetzt werden.
-Die Prozedur 'menuanswer' hat noch folgende Besonderheit: Es ist nicht möglich,
-den Namen 'break' einzugeben! Diese Eingabe wird automatisch abgefangen. Es hat
-sich gezeigt, daß Anwender manchmal versuchen, über <ESC><q> die Eingabe
-zu verlassen. In diesem Falle entstünde hier eine Datei mit Namen 'break' - was aber
-nicht sinnvoll wäre.
-Nach der Eingabe liefert die Prozedur 'menuanswer' als Wert den vom Benutzer
-eingegebenen Text - dabei sind führende und folgende Leerzeichen schon abgeschnit­
-ten ('compress'). Wurde die Prozedur mit <ESC><h> verlassen, so wird niltext
-geliefert.
-
-Wird in obiger Prozedur die Eingabe mit <ESC><h> abgebrochen oder existiert
-bereits eine Datei mit dem eingegebenen Namen, so verschwindet die Box, und der
-Menubildschirm wird automatisch in den alten Zustand gebracht.
-Wenn schon eine Datei mit dem Namen existiert, dann wäre es sinnvoll, den Benutzer
-darauf aufmerksam zu machen. Wie ein solcher Hinweis in das Menu eingeblendet
-werden kann, erklären wir im Kapitel 5.2.
-
-gs-DIALOG ist so geschrieben, daß der Cursor möglichst wenig störend wirkt. Aus
-diesem Grunde wird der Cursor immer an einer Stelle "geparkt". Sofern Ihr System es
-zuläßt und eine entsprechende Anpassung vorliegt, wird der Cursor ganz ausgeschal­
-tet. Denken Sie bitte daran, auch wenn er auf Ihrem Bildschirm ständig sichtbar ist!
-Wenn also jetzt eine Eingabe erfolgen soll, ist es notwendig, den Cursor anzuschalten.
-Wenn Sie wieder in das Menu zurückkehren, sollte der Cursor wieder ausgeschal­
-tet werden, damit er dort nicht stört.
-Wenn Sie die Prozedur 'edit' mit einem neuen Namen als Parameter aufrufen, erfragt
-das System, ob die Datei neu eingerichtet werden soll. Diese Anfrage muß hier unter­
-drückt werden, damit nicht irgendwelche Texte in den Menubildschirm geschrieben
-werden. Das Unterdrücken der Abfrage erreichen Sie durch Ausschalten des Kom­
-mandodialoges. Nach Einrichten der Datei muß der Kommandodialog aber wieder
-eingeschaltet werden, da gs-DIALOG das Eingeschaltetsein für eine fehlerfreie Funk­
-tion voraussetzt!
-
-Mit dem Befehl '#ib#regenerate menuscreen#ie#' (sehen Sie dazu auch Kapitel 5.10) wird der
-aktuelle Menubildschirm erneut vollständig auf den Bildschirm geschrieben (repro­
-duziert). Das ist notwendig, weil die Prozedur 'edit' den Bildschirm benutzt hat.
-Durch diesen Befehl wird der Menubildschirm exakt in der Form hergestellt, wie er
-zuletzt ausgesehen hat. Auch wenn Sie geschachtelte Menubildschirme haben, wer­
-den diese durch den einen Befehl reproduziert. So können Sie in Ihren Verarbei­
-tungsfunktionen mit dem Bildschirm "machen was Sie wollen" - Sie kehren mit dem
-letztgenannten Befehl immer wieder so in das Menu zurück, wie Sie es verlassen
-haben.
-
-
-#ib#5.2 Ausgabe einer Information#ie# ('#ib#menuinfo#ie#')
-
-In der Prozedur 'neue datei editieren' (Kapitel 5.1) wäre es sinnvoll, den Benutzer zu
-informieren, wenn bereits eine Datei mit dem eingegebenen Namen existiert. Hierfür
-steht die Prozedur 'menuinfo' zur Verfügung.
-
-Beispiel:
-
-menuinfo (" Eine Datei mit dem Namen "13" existiert schon!");
-
-Dadurch wird folgende Box ins Menu geschrieben:
-
- +----------------------------+
- I I
- I Eine Datei mit dem Namen I
- I existiert schon I
- I I
- +----------------------------+
-
-Die Box erscheint in der Mitte des Menus (Position 5); in der Fußzeile wird der Hin­
-weis ausgegeben 'Zum Weitermachen bitte irgendeine Taste tippen!'. Dann wartet das
-System so lange, bis eine Taste gedrückt wird. Anschließend wird der aktuelle Menu­
-schirm wiederhergestellt.
-Die Prozedur 'menuinfo' gibt es noch in zwei weiteren Versionen, nämlich mit zwei
-bzw. drei Parametern. Im ersten Fall kann über den zweiten Parameter noch die
-Position (1, 2, 3, 4, 5) innerhalb des Menubildschirmes festgelegt werden (sehen Sie
-dazu Kapitel 5.12). Mit dem dritten Parameter kann ggf. noch die Wartezeit festgelegt
-werden, die das System maximal verstreichen läßt, bevor es von sich aus das Pro­
-gramm fortsetzt.
-
-'menuinfo (" Eine Datei mit dem Namen "13" existiert schon!", 3, 40)'
-
-gibt die oben gezeigte Box aus, aber links unten in der Ecke des Menubildschirms
-(Position 3). Das System wartet (maximal) 4 Sekunden (40 Zehntel) und setzt dann -
-auch ohne Tastendruck - das Programm fort. Diese Prozedur mit gesondert angege­
-bener Wartezeit verwendet man dann, wenn man nicht unbedingt die Kenntnisnahme
-der Information durch den Benutzer bestätigt haben möchte.
-
-
-#ib#5.3 Auswahl eines Namen durch Ankreuzen#ie# ('#ib#menuone#ie#')
-
-Während bei der Neuerstellung einer Datei ein Name neu erfragt werden muß, kann
-man beim Menupunkt 'Ansehen/Ändern' auf schon vorhandene Dateien zugreifen.
-Sie können dem Benutzer z.B. alle Dateien in der Task zur Auswahl anbieten. Sobald
-der Benutzer einen Namen angekreuzt hat, soll die entsprechende Datei geöffnet wer­
-den. Dafür steht der Befehl 'menuone' zur Verfügung:
-
-
-PROC alte datei editieren:
- TEXT CONST kopf :: "Textdatei ansehen/ändern",
- hinweis :: "Bitte gewünschte Datei ankreuzen";
- TEXT VAR dateiname := menuone (ALL myself, kopf, hinweis, FALSE);
- IF dateiname <> ""
- THEN #ib#cursor on#ie#;
- edit (dateiname);
- #ib#cursor off#ie#;
- FI;
- regenerate menuscreen
-END PROC alte datei editieren;
-
-
-Die Prozedur 'menuone' hat 4 Parameter: Als erster Parameter ist ein Thesaurus zu
-übergeben, in dem die zur Auswahl stehenden Namen enthalten sind. Zum Thesau­
-rushandling werden noch einige zusätzliche Funktionen zur Verfügung gestellt (z.B.
-daß nur Dateien eines bestimmten Typs zur Auswahl angeboten werden können) -
-diese Funktionen werden in Kapitel 5.14 erläutert. In unserem Beispiel werden alle
-Dateien zur Auswahl angeboten, die in der Task zur Verfügung stehen.
-Die beiden Texte, die als 2. und 3. Parameter übergeben werden, erscheinen zur
-Kennzeichnung im Kopf der Auswahlliste. Der als zweiter Parameter übergebene Text
-erscheint zentriert und invers dargestellt auf dem Bildschirm, der als dritter Parame­
-ter übergebene Text nur zentriert. Es ist sinnvoll, mit dem ersten Text (2.Parame­
-ter) die zur Zeit aktivierte Menufunktion anzuzeigen, denn der Menubildschirm wird
-ja durch die Auswahlliste überschrieben. So kann sich der Benutzer besser im Menu­
-system orientieren.
-Mit dem 4. Parameter wird festgelegt, ob der Bildschirm nach der Auswahl "ge­
-reinigt", d.h. der alte Menubildschirm wiederhergestellt werden soll. Da in unserem
-Falle normalerweise im Anschluß an die Auswahl eine Datei auf dem Bildschirm
-editiert wird, verzichten wir auf die "automatische Regenerierung" des Menubild­
-schirms. Dieses besorgen wir nach dem Editieren durch das Kommando 'regenerate
-menuscreen' "von Hand".
-Auf das Fenster, das für die Auswahl auf dem Bildschirm angezeigt wird, können Sie
-keinen Einfluß nehmen - es wird vom System selbständig festgelegt. Dadurch können
-Sie die Auswahl, wie auch die anderen Dialogkomponenten ebenso in geschachteleten
-Menus aufrufen, ohne daß es zu Problemen kommt.
-
-
-#ib#5.4 Auswahl mehrerer Namen durch Ankreuzen#ie# ('#ib#menusome#ie#')
-
-Es ist nicht immer sinnvoll, daß der Benutzer nur einen Namen auswählen, d.h.
-ankreuzen kann. Bei der Zeilenformatierung könnte man z.B. zulassen, daß gleich
-mehrere Dateinamen angekreuzt werden können. Im Anschluß an die Auswahl sollen
-dann alle angekreuzten Dateien mit 'lineform' bearbeitet werden. Für diesen Zweck
-steht die Prozedur 'menusome' zur Verfügung. Sie hat die gleichen Parameter wie die
-in 5.3 erläuterte Prozedur 'menuone' - nur daß hier die Auswahl mehrerer Namen
-möglich ist. Verläßt der Benutzer die Auswahl durch <ESC><q>, so wird ein
-Thesaurus mit allen angekreuzten Namen geliefert; bei Verlassen mit <ESC><h>
-ein leerer Thesaurus. Beispiel:
-
-
-PROC zeilen formatieren:
- TEXT CONST kopf :: "Textdateien zeilenweise formatieren",
- hinweis :: "Bitte gewünschte Dateien ankreuzen";
- THESAURUS VAR dateinamen := menusome (ALL myself, kopf, hinweis,
- FALSE);
- cursor on;
- formatiere dateien;
- cursor off;
- regenerate menuscreen.
-
- formatiere dateien:
- INT VAR zaehler;
- FOR zaehler FROM 1 UPTO highest entry (dateinamen) REP
- IF name (dateinamen, zaehler) <> ""
- THEN lineform (name (dateinamen, zaehler))
- FI
- PER
-END PROC zeilen formatieren;
-
-
-
-#ib#5.5 Eingabe eines Textes/Namens - alternativ: Auswahl
- durch Ankreuzen#ie# ('#ib#menuanswerone#ie#','#ib#menuanswersome#ie#')
-
-Sehr häufig kommt es vor, daß der Benutzer auf die zuletzt bearbeitete Datei zurück­
-greifen will. In Kapitel 5.3 haben wir dem Benutzer bei der Menufunktion 'Anse­
-hen/Ändern' gleich alle Dateien zur Auswahl angeboten. Hier wäre es vielleicht gün­
-stiger gewesen, ihm die zuletzt bearbeitete Datei anzubieten und erst auf Wunsch die
-Liste aller Dateien zum Ankreuzen. Das läßt sich auf verschiedene Weise realisieren -
-wir werden Ihnen in diesem und in den folgenden Kapiteln verschiedene Möglich­
-keiten aufzeigen:
-
-Sie können z.B. mit der Prozedur 'menuanswerone' arbeiten. Wie Sie schon aus dem
-Namen entnehmen können, handelt es sich dabei um eine Prozedur, die eigentlich
-aus zwei Prozeduren, nämlich 'menuanswer' und 'menuone' zusammengesetzt ist.
-Stellen Sie sich vor, sie führen den Namen der zuletzt bearbeiteten Datei in Ihrem
-Programm unter der Variablen 'letzte datei'. Dann könnte die Prozedur 'alte datei
-editieren' aus Kapitel 5.3 auch folgendermaßen geschrieben werden:
-
-
-TEXT VAR letzte datei;
-...
-
-
-PROC alte datei editieren:
- TEXT CONST hinweis letzte :: "Zuletzt bearbeitete Datei:",
- kopf :: "Textdatei ansehen/ändern",
- hinweis :: "Bitte gewünschte Datei ankreuzen";
- TEXT VAR dateiname := menuanswerone (hinweis letzte,
- letzte datei,
- ALL myself, kopf,
- hinweis, FALSE);
- IF dateiname <> ""
- THEN cursor on;
- edit (dateiname);
- letzte datei := dateiname;
- cursor off;
- FI;
- regenerate menuscreen
-END PROC alte datei editieren;
-
-
-Insgesamt hat die Prozedur 6 Parameter: Die ersten beiden Parameter beziehen sich
-auf die Eingabe ('menuanswer'). Wie dort kann auch hier der Text festgelegt werden,
-der in der Box auf dem Bildschirm erscheint.
-Der zweite Parameter ist der Text, der dem Benutzer zum Editieren angeboten wird -
-hier der zuletzt benutzte Dateiname. Möchte der Benutzer auf die Datei mit dem an­
-gebotenen Namen zugreifen, braucht er nur mit <RETURN> zu bestätigen.
-Möchte er die Auswahl zum Ankreuzen angeboten bekommen, so braucht er nur die
-Tastenfolge <ESC><z> (für 'Zeigen') zu tippen. Auf diese Auswahl beziehen sich
-die letzten 4 Parameter, die die gleiche Bedeutung haben wie bei der Prozedur
-'menuone'. Auf die Möglichkeit, durch <ESC><z> eine Auswahl angeboten zu
-bekommen, wird in der Fußzeile des Menus hingewiesen.
-
-Aber Achtung! Sie sollten sich einer "Gefahr" bei diesem Vorgehen bewußt sein. Der
-Benutzer hat natürlich so die Möglichkeit, auch einen anderen Namen als den vorge­
-schlagenen anzugeben - einen Namen, der noch nicht in der Dateiliste enthalten ist.
-In einem solchen Falle würde Ihnen bei obiger Prozedur der Menubildschirm "ka­
-puttgeschrieben", denn das System fragt (bei eingeschaltetem Kommandodialog) an,
-ob eine Datei mit dem Namen eingerichtet werden soll. Für diesen Fall sollten Sie also
-unbedingt eine Vorsorge treffen (z.B. indem Sie den Benutzer darauf hinweisen, daß
-der eingegebene Name nicht akzeptiert wird)!
-
-Sie vermuten sicher schon ganz richtig, daß es entsprechend auch die Prozedur
-'menuanswersome' gibt, die zunächst einen Dateinamen erfragt und auf Wunsch
-eine Auswahl anbietet, in der mehrere Dateinamen angekreuzt werden können. Die
-Prozedur hat ebenfalls 6 Parameter, die identisch zur Prozedur 'menuanswerone'
-sind. Allerdings liefert die Prozedur 'menuanswersome' in jedem Fall einen Thesau­
-rus; wurde die Auswahl mit <ESC><h> abgebrochen, so liefert sie einen leeren
-Thesaurus.
-
-
-#ib# 5.6 Die Ja/Nein - Entscheidung#ie# ('#ib#menuyes#ie#','#ib#menuno#ie#')
-
-In Kapitel 5.5 trat das Problem auf, daß der Benutzer einen "unzulässigen" Namen
-eingeben konnte. Dieses Problem können wir umgehen: Wir fragen den Benutzer ein­
-fach, ob er mit der zuletzt bearbeiteten Datei arbeiten will und lassen Ihm nur die
-Chance, mit 'Ja' oder 'Nein' zu antworten. Im ersten Fall bieten wir ihm eben diese
-Datei an - ansonsten die Auswahl zum Ankreuzen.
-
-Hierfür stehen die Prozeduren 'menuyes' und 'menuno' zur Verfügung, die von Ihrer
-Funktion her den Ihnen bekannten Prozeduren 'yes' und 'no' gleichen. Die beiden
-Menu-Prozeduren haben jeweils zwei Parameter:
-
-
-TEXT VAR letzte datei;
-...
-
-PROC alte datei editieren:
- TEXT CONST kopf :: "Textdatei ansehen/ändern",
- hinweis :: "Bitte gewünschte Datei ankreuzen";
- TEXT VAR dateiname;
- IF menuyes (" Wollen Sie mit der Datei "13"" +
- " '" +letzte datei+ "'"13" arbeiten", 5)
- THEN editiere letzte datei
- ELSE dateiname := menuone (ALL myself, kopf, hinweis, FALSE);
- editiere ausgewaehlte datei
- FI;
- regenerate menuscreen.
-
- editiere letzte datei:
- cursor on; edit (letzte datei); cursor off.
-
- editiere ausgewaehlte datei:
- IF dateiname <> ""
- THEN cursor on; edit (dateiname); cursor off;
- letzte datei := dateiname
- FI
-END PROC alte datei editieren;
-
-
-Über den zweiten Parameter legen Sie die Position auf dem Bildschirm innerhalb des
-Menus fest (1, 2, 3, 4, 5; sehen Sie auch Kapitel 5.12). Der erste Parameter ist ein
-Text, welcher der gs-DIALOG-Syntax gehorchen muß (die Codes "13" bewirken
-einen Zeilenvorschub; sehen Sie auch Kapitel 5.13). Er wird in einer Box auf den
-Bildschirm geschrieben und durch 'Ja  Nein' ergänzt:
-
-
- +-----------------------------+
- I I
- I Wollen Sie mit der Datei I
- I 'Dateiname' I
- I arbeiten? I
- I I
- I Ja    Nein I
- I I
- +-----------------------------+
-
-Für 'Dateiname' ist auf Ihrem Bildschirm dann natürlich der aktuelle Inhalt von
-'letzte datei' eingetragen.
-Die Prozedur 'menuyes' liefert TRUE, wenn mit 'Ja' geantwortet wurde und FALSE,
-wenn mit 'Nein' geantwortet wurde. Die Prozedur 'menuno' wirkt wie 'NOT menuyes'.
-Nach Eingabe von 'Ja', 'Nein' (durch Tippen der Anfangsbuchstaben oder Positionie­
-rung auf die Antwort und anschließendem <RETURN>) wird der Menubildschirm
-automatisch regeneriert. Auch die entsprechenden Hinweise in der Fußzeile werden
-natürlich automatisch gesetzt.
-
-
-#ib#5.7 Die Alternativentscheidung#ie# ('#ib#menualternative#ie#')
-
-Im letzten Kapitel haben wir Ihnen die Prozeduren 'menuyes' und 'menuno' in Ihrer
-Wirkungsweise erläutert. Eigentlich sind die beiden Prozeduren nur ein (häufig
-benötigter) Spezialfall der Prozedur 'menualternative'. Die Funktionsweise der Proze­
-dur 'menualternative' dürfte Ihnen schon aus dem 'Archivmenu' bekannt sein: Wenn
-Sie eine neue Zieltask einstellen, werden Ihnen nämlich vier Alternativen zur Auswahl
-angeboten (Archiv, Vatertask, PUBLIC, Sonstige Task).
-Auf unsere Textverarbeitung bezogen könnten wir z.B. vor der Zeilenformatierung
-(lineform) über die Alternativentscheidung den gewünschten Schrifttyp abfragen. Wir
-wollen dem Benutzer in diesem Beispiel fünf Schrifttypen (schmal, elite, pica, letter,
-groß) zur Auswahl anbieten:
-
-
-
-TEXT VAR schrifttyp;
-...
-
-PROC schrifttyp waehlen:
- TEXT CONST info :: " Auswahl der Schrifttypen: "13""13""
- + " s ... schmal (17 Zeichen pro Zoll) "13""
- + " e ... elite (12 Zeichen pro Zoll) "13""
- + " p ... pica (10 Zeichen pro Zoll) "13""
- + " l ... letter (Proportionalschrift) "13""
- + " g ... groß ( 5 Zeichen pro Zoll) ",
-
- liste :: "schmal"13"elite"13"pica"13"letter"13"groß",
- tasten :: "seplgSEPLG";
-
- INT VAR auswahl := menualternative (info, liste, tasten, 5, TRUE);
- SELECT auswahl OF
- CASE 1, 101, 106: schrifttyp := "17"
- CASE 2, 102, 107: schrifttyp := "12"
- CASE 3, 103, 108: schrifttyp := "10"
- CASE 4, 104, 109: schrifttyp := "prop"
- CASE 5, 105, 110: schrifttyp := "5"
- OTHERWISE (* behalte alten Schrifttyp bei *)
- END SELECT
-END PROC schrifttyp waehlen;
-
-
-Hätten wir diese Prozedur in unsere Prozedur 'zeilen formatieren' eingebunden, so
-zeigte sich bei Aktivierung folgende Einblendung in den Menubildschirm:
-
-
-
- +---------------------------------------+
- I I
- I Auswahl der Schrifttypen: I
- I I
- I s ... schmal (17 Zeichen pro Zoll) I
- I e ... elite (12 Zeichen pro Zoll) I
- I p ... pica (10 Zeichen pro Zoll) I
- I l ... letter (Proportionalschrift) I
- I g ... groß ( 5 Zeichen pro Zoll) I
- I I
- I schmal elite pica letter groß I
- I I
- +---------------------------------------+
-
-Die Prozedur 'menualternative' besitzt insgesamt 5 Parameter. Wie Ihnen schon von
-von anderen Prozeduren bekannt ist, wird mit dem vorletzten (4.) Parameter die
-Position innerhalb des Menubildschirms bestimmt - hier also die Plazierung in die
-Mitte des Menubildschirms.
-Mit dem 5. Parameter können Sie noch festlegen, ob der Benutzer die Möglichkeit
-haben soll, die Alternativauswahl mit <ESC><h> abzubrechen (bei TRUE, wie im
-Beispiel) oder eben nicht.
-
-Mit dem 1. Parameter wird der Informationstext festgelegt, der auf dem Bildschirm
-innerhalb der Box erscheinen soll. Für die Funktion der Alternativauswahl ist die­
-ser Inhalt völlig belanglos - er dient ausschließlich der Information des Benutzers.
-Der Text kann - wie hier - z.B. durch eine Einteilung in Zeilen gestaltet werden
-(durch den Code "13").
-Der Text in den Zeilen sollte nicht zu breit sein, da er noch in eine Box innerhalb des
-Menubildschirms hineinpassen muß! Damit es auch bei geschachtelten Menus zu
-keinen Problemen kommt, sollte eine Zeile nicht breiter als 64 Zeichen sein. Aber
-keine Angst: Sie können gs-DIALOG durch zu lange Texte nicht durcheinanderbrin­
-gen - wenn Ihr Text zu breit ist, wird er rigoros abgeschnitten und einfach nicht
-angezeigt.
-
-Mit dem 2. Parameter übergeben Sie die Auswahlliste, die in der letzten Zeile der Box
-dargestellt wird. Hier dürfen insgesamt bis zu 10 Alternativen angegeben werden -
-bedenken Sie dabei aber unbedingt, daß diese Liste ebenfalls nicht zu lang werden
-darf (ebenfalls höchstens 64 Zeichen).
-Zwischen jeder von Ihnen notierten Alternative muß zur Kennung der Code "13"
-eingetragen werden - wie oben im Beispiel gezeigt. Da nachher in der Box zwischen
-den einzelnen Alternativen je drei Leerzeichen eingefügt werden, können Sie sich
-immer an der von Ihnen übergebenen Zeichenkette orientieren. Hat Ihre Auswahlliste
-nicht mehr als 64 Zeichen, dann ist sie in jedem Falle auf dem Bildschirm darstell­
-bar.
-Über diese Auswahlliste erfolgt normalerweise die Auswahl. Mit den Cursortasten links
-und rechts kann der Benutzer auf die gewünschte Alternative positionieren (auf dem
-Bildschirm invers dargestellt) und dann die <RETURN>-Taste tippen.
-Die Prozedur 'menualternative liefert dann einen Zahlenwert, nämlich die Position
-der gewählten Alternative in der als 2. Parameter übergebenen Liste (wird in unse­
-rem Beispiel die Alternative 'letter' gewählt, so liefert die Prozedur den Wert 4).
-Haben Sie den Abbruch durch <ESC><h> zugelassen (5. Parameter), so wird im
-Falle eines solchen Abbruchs der Wert '0' geliefert.
-
-Mit dem 3. Parameter können Sie noch festlegen, über welche Tasten eine Auswahl
-erfolgen soll. Wenn Sie hier niltext ("") angeben, ist eine Auswahl über die Tasten
-nicht möglich. Im Beispiel haben wir hier die Anfangsbuchstaben der im Text ge­
-nannten Schrifttypen gewählt und als Eingabe sowohl Klein- als auch Großbuchsta­
-ben gestattet. Erfolgt nun die Auswahl über das Tippen einer zugelassenen Taste,
-dann wird Ihre Position in der im 3. Parameter übergebenen Zeichenkette ermittelt
-und der Wert '100' dazuaddiert. Tippt in unserem Falle der Benutzer die Taste
-<L>, wird der Wert '109' geliefert.
-
-Es erfolgt übrigens kein Hinweis in der Fußzeile, ob eine Auswahl über das Tippen
-einer Taste möglich ist! Wenn Sie von der Möglichkeit Gebrauch machen, sollten Sie
-dieses durch die Gestaltung Ihres Informationstextes andeuten - wie wir es im Bei­
-spiel auch getan haben.
-
-
-#ib#5.8 Die Menunotiz#ie# ('#ib#write menunotice#ie#', '#ib#erasemenunotice#ie#')
-
-Innerhalb des Menus können Sie für den Benutzer auch eine Notiz ablegen. Wir
-machen z.B. bei der Archivverwaltung Gebrauch davon. Dort wird nämlich ständig
-angezeigt, mit welcher Task kommuniziert wird und - sofern es sich um einen Ar­
-chivmanager handelt - wie die (angemeldete) Diskette heißt. Wenn Sie z.B. dem
-Benutzer das aktuelle Datum im Menu anzeigen wollen, insertieren Sie die folgende
-Prozedur:
-
-
-PROC datum anzeigen:
- write menunotice ("Datum: " + date, 4)
-END PROC datum anzeigen;
-
-
-Die Prozedur 'write menunotice' besitzt zwei Parameter. Mit dem ersten Parameter
-wird der Text übergeben, der in der Box ausgegeben werden soll. Er unterliegt eben­
-falls der gs-DIALOG-Syntax für Texte. Durch den zweiten Parameter wird wieder die
-Position innerhalb des Menus festgelegt (hier rechts unten: Position 4).
-
-Wenn Sie jetzt in Ihrer Menukarte die Prozedur 'oberbegriff  ("Bearbeiten")' in fol­
-gender Weise abändern:
-
-
- oberbegriff ("Bearbeiten", "datum anzeigen", "erase menunotice")
-
-
-dann wird jedesmal, wenn das Pull-Down-Menu unter dem Oberbegriff 'Bearbeiten'
-aufgefaltet wird, unten rechts (Position 4) das aktuelle Datum in einer Box ange­
-zeigt. Diese Notiz verschwindet, wenn in ein anderes Pull-Down-Menu gewechselt
-wird.
-
-Auf den ersten Eindruck scheinen die Prozeduren 'write menunotice' und 'menuinfo'
-gleich zu sein - das ist aber nicht der Fall: Bei 'menuinfo' wird der Text in einer Box
-ausgegeben und so lange gewartet, bis der Benutzer eine Taste getippt hat (oder die
-angegebene Zeit verstrichen ist). Bei 'write menunotice' wird ebenfalls ein Text in
-einer Box auf den Menubildschirm geschrieben. Diese Box bleibt aber über längere
-Zeit bestehen (auf Erscheinen und Verschwinden kann der Benutzer selbst keinen
-Einfluß nehmen!) - und zwar solange, bis die Notiz gelöscht wird (mit 'erase menu­
-notice'; in unserem Beispiel, wenn das Pull-Down-Menu gewechselt wird) oder durch
-ein neues 'write menunotice' überschrieben wird. In einem Menu kann nämlich zu
-einem Zeitpunkt nur eine Menunotiz abgelegt werden.
-Wenn der Bildschirm durch gs-DIALOG-Prozeduren überschrieben wird, wird die
-Menunotiz ebenfalls ständig mitaufgefrischt, und auch, wenn Sie den Befehl 'regene­
-rate menuscreen' oder 'refresh submenu' geben.
-
-
-#ib#5.9 Fußzeilen im Menu#ie# ('#ib#menufootnote#ie#', '#ib#oldmenufootnote#ie#')
-
-In den Fußzeilen innerhalb des Menus werden dem Benutzer Bedienhinweise ange­
-zeigt. Die Fußzeile wird aber auch dazu benutzt, den Benutzer über Prozesse zu
-informieren, die im Hintergrund ablaufen - erst recht dann, wenn Sie einige Zeit in
-Anspruch nehmen. Sie zeigen dem Benutzer an, daß er nicht "unruhig" zu werden
-braucht, sondern das System "mit sich" beschäftigt ist.
-Im allgemeinen braucht sich der Programmierer um diese Fußnoten nicht zu küm­
-mern, denn sie werden von den einzelnen Komponenten des Systems automatisch
-gesetzt. Wir können aber z.B. dem Benutzer einen Hinweis geben, wenn unter dem
-Menupunkt 'Verzeichnis' eine Liste erstellt wird. Die Prozedur könnte dann folgen­
-dermaßen notiert werden:
-
-
-PROC verzeichnis ausgeben:
- menufootnote ("Bitte warten... Ich erstelle eine Dateiliste");
- FILE VAR f :: sequential file (output, "Dateiliste");
- list (f); modify (f);
- old menufootnote;
- entferne eigenen namen;
- zeige liste an;
- forget ("Dateiliste", quiet).
-
- entferne eigenen namen:
- TEXT VAR zeile :: ""; INT VAR i;
- FOR i FROM lines (f) DOWNTO 1 REP
- to line (f, i);
- read record (f, zeile);
- UNTIL pos (zeile, "Dateiliste") > 0 PER;
- delete record (f).
-
- zeige liste an:
- to line (f, 1);
- menuwindowshow (f) (* Sehen Sie Kapitel 5.11.1*)
-END PROC verzeichnis ausgeben;
-
-
-Beachten Sie, daß der Text nicht länger als 64 Zeichen ist, damit er auch bei ge­
-schachtelten Menus vollständig ausgegeben werden kann. Sollte der Text dennoch zu
-lang sein, wird er vom System auf die entsprechende Länge gestutzt.
-Haben Sie mit 'menufootnote' eine eigene Fußzeile gesetzt, so können Sie die da­
-durch gelöschte Zeile durch den Befehl 'old menufootnote' wieder hinschreiben.
-Ansonsten wird Ihre Fußzeile von der nächsten automatisch (d.h. vom System) ge­
-setzten Fußnote überschrieben. In dem obigen Beispiel hätten Sie also gut auf den
-Befehl 'old menufootnote' verzichten können.
-
-Durch 'old menufootnote' wird die letzte Fußnote, die automatisch vom System ge­
-setzt wurde, reproduziert. Der in der obigen Prozedur verwendete Befehl 'menuwin­
-dowshow' ist bisher noch nicht erläutert. Sehen Sie dazu bitte das Kapitel 5.11.1.
-
-
-#ib#5.10 Wiederherstellung des Menubildschirms#ie# ('#ib#regenerate
- menuscreen#ie#','#ib#refresh submenu#ie#')
-
-Der Befehl 'regenerate menuscreen' ist Ihnen schon aus diversen Beispielprogram­
-men dieses Handbuches bekannt. Ist der Menubildschirm "kaputtgeschrieben" oder
-der Bildschirm für andere Zwecke benutzt worden, so läßt sich durch diesen Befehl
-der Menubildschirm in seinem letzten Zustand reproduzieren (auch bei geschachtel­
-ten Menus!). Durch den Befehl wird der Bildschirm gelöscht und komplett neu
-aufgebaut.
-
-Ein vollständiger Bildschirmaufbau ist aber gar nicht immer nötig. Wenn Sie sicher
-sind, daß durch Ihre Operationen nur der Bereich zwischen den beiden durchgezo­
-genen Linien, die die Kopf- und Fußzeile abtrennen, betroffen ist, brauchen Sie nur
-den Befehl 'refresh submenu' zu geben. Hierdurch wird das aktuelle Pull-Down-
-Menu neu aufgebaut und - sofern gesetzt - die Menunotiz. Wenn möglich, ist er dem
-Befehl 'regenerate menuscreen vorzuziehen, da hierfür weniger Zeit benötigt wird
-und weniger "Unruhe" auf dem Bildschirm entsteht.
-Sorgen Sie aber unbedingt dafür, daß der von Ihnen benutzte Bildschirmbereich
-zuvor "gereinigt" wird, denn das besorgt 'refresh subnmenu' nicht!
-
-
-#ib#5.11 Arbeiten im Menufenster#ie#
-
-Neben den vorab aufgezeigten Möglichkeiten können Sie innerhalb des Menus auch
-noch ein Fenster öffnen. Innerhalb dieses Fensters stehen Ihnen alle Möglichkei­
-ten zur Verfügung, die Sie auch sonst zum Beschreiben des gesamten Bildschirms
-haben - und noch einiges mehr.
-Wir machen z.B. intensiv beim Archivhandling Gebrauch davon. So werden Ihnen
-Verzeichnisse angezeigt, Sie können verfolgen, wie die einzelnen Dateien vom Archiv
-geholt werden oder dorthin geschrieben werden und einiges mehr. In diesem Kapitel
-wollen wir Ihnen die Möglichkeiten aufzeigen, die Sie innerhalb des Menufensters
-haben.
-
-Auf die Größe des Menufensters haben Sie keinen Einfluß, sie wird vom System ge­
-setzt ("normales" Menu: 77 Zeichen breit und 20 Zeichen hoch; geschachteltes
-Menu: 71 Zeichen breit und 16 Zeichen hoch). Hierdurch ist sichergestellt, daß alle
-Operationen auch in geschachtelten Menus ohne Probleme ausführbar sind. Alle
-Prozeduren, die sich auf Aktionen im Menufenster beziehen, enthalten die Silbe
-'menuwindow'.
-Sie können mit den hier beschriebenen Prozeduren ähnlich arbeiten, wie mit den
-entsprechenden Prozeduren ohne den Wortbestandteil 'menuwindow' auf dem
-ganzen Bildschirm. Allerdings gibt es einige Unterschiede, auf die Sie achten sollten!
-
-
-5.11.1 Datei anzeigen/editieren
- ('#ib#menuwindowshow#ie#', '#ib#menuwindowedit#ie#')
-
-Von der Prozedur 'menuwindowshow (FILE VAR f)' haben wir im letzten Kapitel
-schon Gebrauch gemacht, um das Verzeichnis der Dateien in der Task innerhalb des
-Menus anzuzeigen. Die Prozedur gibt es in zwei Versionen mit je einem Parameter.
-Einmal kann, wie im vorigen Kapitel, ein FILE angegeben werden, andererseits kann
-auch der Name der anzuzeigenden Datei als Text übergeben werden ('menuwindow­
-show (TEXT CONST dateiliste)'). Durch den Befehl wird innerhalb des Menus ein
-umrandetes Fenster geöffnet, in der das angegebene File/die Datei angezeigt wird. Bei
-'menuwindowshow' kann die Datei nur eingesehen, nicht aber schreibend verändert
-werden.
-Die Prozedur 'menuwindowedit' gibt es ebenfalls in den zwei Ausprägungen. Sie
-verhält sich zur vorgenannten identisch - nur kann hier auch die Datei schreibend
-verändert werden.
-
-
-5.11.2 Menufenster öffnen/anzeigen ('#ib#show menuwindow#ie#')
-
-Wenn Sie eigene Operationen in einem Fenster im Menu ausführen lassen wollen,
-muß dieses Fenster zunächst auf dem Bildschirm angezeigt werden. Durch den
-Befehl 'show menuwindow' wird ein entsprechender Rahmen innerhalb des Menus
-ausgegeben und der Bereich innerhalb dieses Rahmens (das Fenster) gelöscht.
-Auf die Größe des Fensters innerhalb des aktuellen Menus können Sie - wie bereits
-eingangs gesagt - keinen Einfluß nehmen.
-Zu einem Zeitpunkt kann immer nur ein Menufenster geöffnet sein, da das Fenster
-schon den größtmöglichen sinnvollen Bereich des aktuellen Menus belegt. Ein er­
-neutes 'show menuwindow' hätte die gleiche Wirkung wie das nachfolgend beschrie­
-bene 'menuwindowpage' - nur wird hier zusätzlich noch der Rahmen des Fensters
-mitausgegeben.
-
-
-5.11.3 Menufenster löschen (putzen) ('#ib#menuwindowpage#ie#')
-
-Durch den Befehl 'menuwindowpage' wird das Fenster innerhalb des aktuellen
-Menus gelöscht; der Rahmen des Fensters bleibt bestehen, da er nicht mit zum ei­
-gentlichen Fenster gehört. Durch den Befehl wird der Menubildschirm nicht(!)
-rekonstruiert!
-
-
-5.11.4 Positionierungen im Menufenster
- ('#ib#menuwindowline#ie#', '#ib#menuwindowcursor#ie#')
-
-Mit 'menuwindowline' wird, wie auch sonst auf dem Bildschirm, an den Anfang der
-nächsten Zeile positioniert. Diesen Befehl gibt es, ebenso wie den Befehl 'line' (der
-auf dem Gesamtbildschirm operiert) ohne und mit einem Parameter. Durch 'menu­
-windowline (3)' wird an den Anfang der "drittnächsten" Zeile innerhalb des Menu­
-fensters positioniert.
-
-Aber Achtung! Der Befehl 'menuwindowline' weist einen deutlichen Unterschied zum
-Ihnen bekannten Befehl 'line' auf. Wird nämlich die untere Fenstergrenze überschrit­
-ten, so rollt (scrollt) der Bildschirm nicht um die entsprechenden Zeilen nach oben,
-wie Sie es von 'line' gewohnt sind - statt dessen wird der Fensterinhalt gelöscht und
-wieder oben im Fenster zu schreiben begonnen. Es erscheint, als ob auf ein neues
-Fenster positioniert würde.
-Innerhalb des Fensters können Sie auch den Cursor positionieren, wie Sie es vom
-Bildschirm gewohnt sind - allerdings nur innerhalb der aktuell gültigen Grenzen. In
-einem Menu ist das Fenster 77 Zeichen breit und 20 Zeichen hoch; in einem ge­
-schachtelten Menu 71 Zeichen breit und 16 Zeichen hoch.
-Wird außerhalb des aktuellen Menufensters positioniert, wird das Fenster gelöscht
-und die Fensterposition (1, 1) angenommen.
-
-
-5.11.5 Informationen über die aktuelle Menu-Fenster position ('#ib#get
-menuwindowcursor#ie#', '#ib#remaining menuwindowlines#ie#')
-
-Mit der Prozedur 'get menuwindowcursor (INT VAR spalte, zeile)' kann die aktuelle
-Position des Cursors innerhalb des Menufensters erfragt werden. Die Prozedur hat
-zwei Parameter, die als 'INT VAR' deklariert sein müssen. Der erste Parameter enthält
-anschließend die aktuelle Spalte, der zweite die aktuelle Zeile.
-
-Mit der werteliefernden Prozedur 'remaining menuwindowlines' kann die Anzahl der
-noch verbleibenden Zeilen innerhalb des aktuellen Menufensters erfragt werden. Die
-Prozedur wurde deshalb zur Verfügung gestellt, weil der Fensterinhalt - im Gegensatz
-zum normalen Bildschirm - nicht gescrollt werden kann. So können Sie sich vorab
-informieren, ob der Text, der von Ihnen ausgegeben werden soll, noch Platz findet, so
-daß während der Ausgabe nicht plötzlich der Fensterinhalt gelöscht wird.
-
-
-5.11.6 Ausgabe/Eingabe innerhalb des Menufensters
- ('#ib#menuwindowout#ie#', '#ib#menuwindowget#ie#',
- '#ib#menuwindoweditget#ie#', '#ib#menuwindowyes#ie#',
- '#ib#menuwindowno#ie#')
-
-Innerhalb des Menufensters können mit der Prozedur 'menuwindowout' Texte ausge­
-geben werden - die Prozedur hat einen TEXT-Parameter. Sollen INTEGER- oder REAL-
-Werte ausgegeben werden, so müssen diese Werte zuerst in Texte konvertiert werden.
-Bitte beachten Sie unbedingt, daß innerhalb des Fensters nicht gescrollt wird und
-auch kein Zeilenumbruch stattfindet! Ist ein Text länger als die verbleibende Restzei­
-le, so wird der Text bis zum Fensterende ausgegeben und die Ausgabe am Anfang der
-nächsten Zeile fortgesetzt. So ist sichergestellt, daß in keinem Falle die Fenstergren­
-zen überschritten werden.
-Sobald die letzte Position des aktuellen Menufensters beschrieben ist (unten rechts in
-der Fensterecke), wird der Fensterinhalt komplett gelöscht und die Ausgabe in der
-ersten Zeile des "neuen" Fensters fortgesetzt. Auf Zeilenumbruch und Scrolling wurde
-verzichtet, da der Realisierungsaufwand dafür zu hoch gewesen wäre.
-
-Mit der Prozedur 'menuwindowget (TEXT VAR text)' können Sie auch Texte innerhalb
-des Menufensters einlesen - INTEGER-/ REAL-Werte müssen ggf. von Hand konvertiert
-werde. Die Eingabe wird durch <RETURN> abgeschlossen. Es muß mindestens ein
-Zeichen (ungleich Leerzeichen) eingegeben werden. Von der Eingabe werden die
-führenden Leerzeichen abgeschnitten.
-Ist der einzugebende Text länger als die noch verbleibende Restzeile, so wird der Text
-in der Restzeile gescrollt. Sind in der aktuellen Zeile weniger als 7 Zeichen für die
-Eingabe vorhanden, so wird automatisch für die Eingabe an den Anfang der nächsten
-Zeile positioniert.
-
-Ab gs-DIALOG-Version 1.1 steht auch die Prozedur 'menuwindoweditget (TEXT VAR
-text)' zur Verfügung, durch die ein Text zum Editieren vorgegeben werden kann. Es
-ist allerdings darauf zu achten, daß der Text in jedem Falle initialisiert wird!
-
-Die beiden Prozeduren 'menuwindowyes' und 'menuwindowno' ähneln den Ihnen
-bekannten Prozeduren 'yes' und 'no'. Sie operieren nur auf dem Menufenster. Be­
-denken Sie aber bitte, daß, wenn bei der Ausgabe des Textes die Fenstergrenze über­
-schritten wird, der Resttext in der nächsten Zeile ausgegeben wird. Wird dabei sogar
-die untere Fenstergrenze überschritten, so wird der komplette Fensterinhalt gelöscht
-und die Ausgabe in der linken oberen Ecke des "neuen Fensters" fortgesetzt!
-
-
-5.11.7 Weiter Prozeduren ('#ib#menuwindowcenter#ie#',
- '#ib#menuwindowstop#ie#')
-
-Es werden noch zwei weitere Prozeduren für das Menufenster zur Verfügung gestellt,
-die bei der Programmentwicklung ganz nützlich sein können.
-Mit 'menuwindowcenter (TEXT CONST text)' werden vor und hinter dem übergebe­
-nen Text so viele Leerzeichen angefügt, daß der Text zentriert in der Menufenster-Zei­
-le ausgegeben wird. Bevor Sie den Text mit 'menuwindowout' ausgeben, müssen Sie
-an den Anfang einer Zeile positionieren, denn die Anzahl der vorangestellten Blanks
-wird unter Annahme dieser Zeilenposition ermittelt! Innerhalb der Zeile werden ggf.
-vorhandene Texte überschrieben.
-
-Durch die Prozedur 'menuwindowstop' wird an den Anfang der übernächsten Zeile
-positionert und der Text 'Zum Weitermachen bitte irgendeine Taste tippen!' ausgege­
-ben. Danach wird so lange gewartet, bis eine Taste getippt wird. Mit 'menuwindow­
-stop (INT CONST zeilenzahl) kann auch noch die Anzahl der Zeilen bestimmt wer­
-den, die vorwärtspositioniert werden soll (Standard: 2 Zeilen).
-
-
-#ib#5.12 Festlegung der Boxpositionen innerhalb des Menus#ie#
-
-In vielen Fällen kann der Programmierer noch entscheiden, an welcher Position
-innerhalb des Menus die Box erscheinen soll (z. B. bei 'menuanswer', 'menuinfo',
-'menuyes', 'menuno', 'menunotice' etc.). Die Positionen sind von 1 bis 5 durchnu­
-meriert und haben folgende Bedeutung:
-
-+----------------------------------------+
-I I
-+----------------------------------------+
-I I
-I +-----+ +-----+ I
-I I 1 I I 2 I I
-I +-----+ +-----+ I
-I I
-I +-----+ I
-I I 5 I I
-I +-----+ I
-I I
-I +-----+ +-----+ I
-I I 3 I I 4 I I
-I +-----+ +-----+ I
-I I
-+----------------------------------------+
-I I
-+----------------------------------------+
-#page#
-#ib#5.13 gs-DIALOG-Syntax (Regeln zur Erstellung von Texten)#ie#
-
-Werden Texte als Parameter übergeben, die in einer Box ausgegeben werden sollen,
-so kann dieser Text durch Einfügen von Steuerzeichen noch gestaltet werden, z.B.
-kann der Programmierer so den Zeilenaufbau bestimmen.
-Das System analysiert den eingegebenen Text. Jedesmal, wenn innerhalb des Textes
-der Code "13" erscheint, wird innerhalb der Box auf den nächsten Zeilenanfang
-positioniert. So ist eine Einteilung eines Textes in Zeilen leicht möglich. Soll eine
-Leerzeile eingefügt werden, so geben Sie einfach zweimal den Code "13" ("13""13").
-Bei der Textanalyse wird die jeweilige Zeilenlänge vermerkt. Die Box wird vom System
-gerade so breit gewählt, daß die längste vorkommende "Zeile" im Text gerade noch in
-die Box paßt.
-Aber Vorsicht! Die jeweilige Box kann innerhalb des Menus nur eine Maximalgröße
-annehmen (64 Zeichen breit und 14 Zeilen hoch). Wird von einer "Zeile" diese
-Maximalgröße überschritten, so wird die Zeile abgeschnitten und nur bis zur Maxi­
-malbreite der Box ausgegeben.
-
-Ein Text für eine solche Box könnte z.B. so aussehen:
-
-
-menuinfo (" Informationstexte "13" sind meist"13" zu
-lang!")
-
-
-das ergibt folgende Ausgabe in der Box:
-
-
- +-----------------------+
- I I
- I Informationstexte I
- I sind meist I
- I zu lang I
- I I
- +-----------------------+
-
-Es ist auch möglich, in solchen Texten Textpassagen invers darzustellen. Dazu wer­
-den in den Text die Codes zum Ein- ("15") und Ausschalten ("14") der Markierung
-eingefügt. Solche markierten Textpassagen dürfen aber nicht über interne Zeilen­
-grenzen (Code "13") hinausgehen. Sie müßten dann am Zeilenende aus- und am
-nächsten Zeilenanfang wiedereingeschaltet werden.
-Soll in der obigen Box das Wort 'Informationstexte' invers dargestellt werden, so wäre
-z.B. folgendes Kommando zu geben:
-
-
-menuinfo (" "15"Informationstexte"14" "13"" +
- " sind meist"13" zu lang!")
-
-
-#ib#5.14 Thesaurushandling#ie#
-
-Neben den allgemein zur Verfügung gestellten Thesaurusoperationen stellt
-gs-DIALOG einige weitere bereit. Mit der Prozedur 'THESAURUS PROC #ib#infix namen#ie#
-(THESAURUS CONST thes, TEXT CONST infix)' werden aus allen Dateinamen des
-angegebenen Thesaurus die herausgefiltert, die den Wortbestandteil 'infix' enthalten -
-und zwar gleichgültig, an welcher Position! Die herausgefilterten Dateinamen werden
-in einem Thesaurus geliefert. Im Programmsystem 'gs-Herbert und Robbi' mach­
-en wir z.B. Gebrauch davon, wenn wir nur die Landschaften der eigenen Task zur
-Auswahl anbieten wollen:
-
-
-THESAURUS VAR thes :: infix namen (ALL myself, "Flaeche:")
-
-
-Daneben gibt es eine ähnliche Prozedur, mit der man die Dateien eines bestimmten
-Dateityps herausfiltern kann. Mit
-
-
-THESAURUS VAR thes :: infix namen (ALL myself, 1003)
-
-
-werden alle Dateien mit dem Typ '1003' (normale Textfiles) herausgefiltert. Neben
-den beiden gibt es auch noch eine Prozedur, die beide Fälle miteinander koppelt:
-
-
-THESAURUS VAR thes :: infix namen (ALL myself, "gs-MENUKARTE:", 1954)
-
-
-Mit der folgenden Prozedur:
-
-
-THESAURUS VAR thes :: #ib#ohne praefix#ie# (ALL myself, "Flaeche:")
-
-
-wird aus den Dateinamen im angegebenen Thesaurus jeweils der führende Wortbe­
-standteil entfernt. Wir machen z.B. in gs-Herbert und Robbi davon Gebrauch, um
-die Landschaften/Arbeitsfelder anbieten zu können, ohne jeweils den Wortbestandteil
-'Flaeche:' miterscheinen zu lassen.
-
-Ganz nützlich ist auch noch die folgende Informationsprozedur '#ib#not empty#ie#
-(THESAURUS CONST thes)', mit der man z.B. feststellen kann, ob eine Auswahl ohne
-Ankreuzen oder mit <ESC><h> abgebrochen wurde:
-
-
-
-PROC zeilen formatieren:
- TEXT CONST kopf :: "Textdateien zeilenweise formatieren",
- hinweis :: "Bitte gewünschte Dateien ankreuzen";
- THESAURUS VAR dateinamen := menusome (ALL myself, kopf, hinweis,
- FALSE);
-
- IF not empty (dateinamen)
- THEN cursor on;
- formatiere dateien;
- cursor off;
- FI;
- regenerate menuscreen.
-
- formatiere dateien:
- INT VAR zaehler;
- FOR zaehler FROM 1 UPTO highest entry (dateinamen) REP
- IF name (dateinamen, zaehler) <> ""
- THEN lineform (name (dateinamen, zaehler))
- FI
- PER
-END PROC zeilen formatieren;
-
-
-
-#ib#5.15 Aktivieren und Deaktivieren von Menupunkten#ie#
-
-Daß Verarbeitungsfunktionen aktiviert und deaktiviert werden können, haben Sie
-schon in unserem Archiv-Pull-Down-Menu gesehen. Deaktivierte Menupunkte sind
-durch ein vorgestelltes '-'-Zeichen gekennzeichnet; diese Menufunktionen werden
-übersprungen, wenn Sie versuchen, darauf zu positionieren.
-
-Zur Aktivierung und Deaktivierung von Menupunkten stehen die Prozeduren '#ib#activate#ie#
-(TEXT CONST menupunktname)' und '#ib#deactivate#ie# (TEXT CONST menupunktname)'
-zur Verfügung. Zu beachten ist, daß diese Prozeduren nicht ständig aufrufbar sind -
-der jeweils angegebene 'menupunktname' muß sich nämlich auf das aktuelle Pull-
-Down-Menu beziehen! Als Menupunktname muß jeweils der Name angegeben wer­
-den, der bei der entsprechenden Menufunktion als 2. Parameter übergeben wurde.
-Ist der angegebene 'menupunktname' im aktuellen Pull-Down-Menu nicht enthalten,
-so wird die Anweisung ignoriert!
-
-Auch bei den Prozeduren' activate (INT CONST punktnummer)' und 'deactivate (INT
-CONST punktnummer)' gilt diese Einschränkung. Die beiden Prozeduren arbeiten
-schneller als die eben aufgezeigten, denn es muß im aktuellen Pull-Down-menu
-nicht mehr nach der jeweiligen Position gesucht werden. Die Positionen werden von
-oben nach unten durchgezählt. Beachten Sie aber unbedingt, daß die Trennlinien
-mitgezählt werden müssen!
-Die Prozeduren "zeigen nur dann Wirkung", wenn sie von einer Verarbeitungsfunk­
-tion des aktuell entfalteten Pull-Down-Menus aus aufgerufen werden (das geschieht
-im Archivmenu z.B. aus den beiden Menufunktionen 'Reservieren' und 'Initialisieren'
-heraus) oder wenn Sie beim Einstieg in ein Pull-Down-Menu bzw. beim Ausstieg
-daraus aufgerufen werden; d.h. aus einer Prozedur heraus, die bei 'oberbegriff' als
-2./3. Parameter in das Menukarten-Generierungsprogramm eingetragen ist. Beim
-Archiv-Pull-Down-Menu besorgt das die Prozedur 'menu archiv grundeinstellung'
-(sehen Sie dazu auch Kapitel 6.1).
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.6 b/doc/menugenerator/menu-generator handbuch.6
deleted file mode 100644
index a0dd3b5..0000000
--- a/doc/menugenerator/menu-generator handbuch.6
+++ /dev/null
@@ -1,235 +0,0 @@
-#block##pageblock#
-#pagenr("%",1)##setcount(1)##count per page#
-#headeven#
-gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#headodd#
-#right#gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#bottomeven#
-#center#____________________________________________________________
-6 - % #right#ERGOS
-#end#
-#bottomodd#
-#center#____________________________________________________________
-ERGOS #right# 6 - %
-#end#
-#ib#6  Einbinden der Datei- und Archivoperationen#ie#
-
-
-Sie haben bereits erfahren, wie Sie eine Menukarte generieren und ankoppeln kön­
-nen. Im letzten Kapitel haben wir Ihnen die Möglichkeiten aufgezeigt, innerhalb des
-Menus einen Dialog mit dem Benutzer zu führen. Sie sind somit in der Lage, Ihre
-eigenen Anwendungen unter der Benutzeroberfläche gs-DIALOG zu erstellen.
-Wie sich gezeigt hat, treten eine Reihe von Verarbeitungsfunktionen in nahezu jeder
-Anwendung auf. Im EUMEL-System benötigt man bei fast allen Anwendungspro­
-grammen auch die Möglichkeiten, Dateien auf dem Archiv zu sichern oder von dort
-zu holen; auch Umbenennen, Kopieren, Drucken, Reorganisieren ... von Dateien
-zählen sicher zu den häufig benötigten Verarbeitungsfunktionen. Wünschenswert ist
-es natürlich, daß in allen Programmen unter einer Benutzeroberfläche die "Stan­
-dard-Verarbeitungsfunktionen" in immer gleicher Weise zur Verfügung stehen!
-
-Dieser Vorteil liegt sogar nicht nur auf der Seite des Anwenders - auch der Anwen­
-dungsprogrammierer profitiert davon: Dann nämlich, wenn er diese Standard-Verar­
-beitungsfunktionen nicht immer neu schreiben muß, sondern auf vorgefertigte
-Prozeduren und natürlich auch auf die zugehörigen Informationstexte zurückgreift.
-
-Wir haben uns deshalb entschlossen, diese Standard-Verarbeitungsfunktionen zum
-Datei- und Archivhandling bereits in das Basissystem gs-DIALOG zu integrieren und
-Ihnen mit gs-Menu-Generator Dateien zur Verfügung zu stellen, in denen die
-Programme zur Einbindung dieser Prozeduren in Ihre eigenen Programmsysteme
-ebenso enthalten sind wie alle dazugehörigen Informationstexte.
-In diesem Kapitel soll nun beschrieben werden, wie Sie diese vorgefertigten Module in
-Ihre Menukarten/Programme einbinden können und was Sie dabei beachten müs­
-sen.
-
-
-#ib#6.1 Einbinden der Archivoperationen#ie#
-
-Auf der von uns gelieferten Diskette 'gs-Menu-Generator', befindet sich auch die
-Datei 'Generatordatei: Archivmenu'. Darin ist das vollständige Menukarten-Generie­
-rungs-Programm zur Generierung der Menukarte 'gs-MENUKARTE: Archiv' inclusive
-aller Informationstexte enthalten. U.a. befindet sich darin eben das folgende Pro­
-gramm:
-
-
-oeffne menukarte ("Archiv");
-oeffne menu ("ARCHIV", "", "menu archiv reservierung aufgeben");
-
-
-oberbegriff ("Dateien");
-
-menufunktion ("v", "Verzeichnis", "menu dateien verzeichnis",
- dateiverzeichnistext);
-trennlinie;
-menufunktion ("l", "Löschen", "menu dateien loeschen",
- dateiloeschentext);
-menufunktion ("d", "Drucken", "menu dateien drucken",
- dateidruckentext);
-trennlinie;
-menufunktion ("k", "Kopieren", "menu dateien kopieren",
- dateikopierentext);
-menufunktion ("u", "Umbenennen", "menu dateien umbenen­
- nen",
- dateiumbenennentext);
-trennlinie;
-menufunktion ("s", "Speicherplatz", "menu dateien speicherplatz",
- dateispeicherplatztext);
-menufunktion ("a", "Aufräumen", "menu dateien aufraeumen",
- dateiaufraeumtext);
-
-
-oberbegriff ("Archiv", "menu archiv grundeinstellung (4)",
- "menu archiv reservierung aufgeben");
-
-menufunktion ("r", "Reservieren", "menu archiv reservieren",
- archivreserviertext);
-menufunktion ("n", "Neue Diskette", "menu archiv neue diskette",
- neuediskettetext);
-trennlinie;
-menufunktion ("s", "Schreiben", "menu archiv schreiben",
- archivschreibtext);
-menufunktion ("c", "Checken", "menu archiv checken",
- archivchecktext);
-menufunktion ("k", "Kombination", "menu archiv schreibcheck",
- archivkombinationstext);
-menufunktion ("h", "Holen/Lesen", "menu archiv holen",
- archivholtext);
-menufunktion ("l", "Löschen", "menu archiv loeschen",
- archivloeschtext);
-trennlinie;
-menufunktion ("v", "Verzeichnis", "menu archiv verzeichnis",
- archivverzeichnistext);
-menufunktion ("d", "Drucken", "menu archiv verzeichnis
- drucken",
- archivdruckentext);
-trennlinie;
-menufunktion ("i", "Initialisieren", "menu archivinitialisieren",
- archivinitialisiertext);
-menufunktion ("z", "Zieltask einstellen", "menu archiv zieltask
- einstellen",
- archivzieltasktext);
-schliesse menu;
-schliesse menukarte;
-
-
-Wie schon oben erwähnt, sind auch alle Informationstexte in der Datei enthalten, die
-jeweils über den 4. Parameter der Prozeduren 'menufunktion' in die Menukarte
-eingebunden werden. Wir haben Sie hier nicht extra abgedruckt; Sie können ja die
-entsprechende Datei auf der Diskette einsehen!
-
-Zu dem Programm möchten wir jedoch noch einige wichtige Anmerkungen machen,
-damit Sie die entsprechenden Verarbeitungsfunktionen in Ihre Menukarte einbinden
-können.
-
-Wenden wir uns zunächst den Archivoperationen zu. gs-DIALOG stellt die folgenden
-Verarbeitungsfunktionen bereit:
-
-
- PROC #ib#menu archiv reservieren#ie#,
- PROC #ib#menu archiv neue diskette#ie#,
- PROC #ib#menu archiv schreiben#ie#,
- PROC #ib#menu archiv checken#ie#,
- PROC #ib#menu archiv schreibcheck#ie#,
- PROC #ib#menu archiv holen#ie#,
- PROC #ib#menu archiv loeschen#ie#,
- PROC #ib#menu archiv verzeichnis#ie#,
- PROC #ib#menu archiv verzeichnis drucken#ie#,
- PROC #ib#menu archiv initialisieren#ie#,
- PROC #ib#menu archiv zieltask einstellen#ie#,
-
-
-Durch diese elf Prozeduren werden die entsprechenden Menufunktionen ausgeführt.
-
-Außerdem werden noch folgende Prozeduren bereitgestellt:
-
-
- PROC #ib#menu archiv grundeinstellung#ie# (INT CONST ort)
- PROC #ib#menu archiv reservierung aufgeben#ie#
-
-
-Diesen beiden Prozeduren sollten Sie bei der Einbindung der Archivfunktionen in
-Ihre Menukarten besondere Beachtung schenken. Wie Sie im Programm auf der Seite
-zuvor sehen, taucht die Prozedur 'menu archiv reservierung aufgeben' gleich zweimal
-auf: einmal als 3.Parameter der Prozedur 'oberbegriff' und einmal als 3.Parameter
-der Prozedur 'oeffne menu' - und das aus folgendem Grund:
-
-Wenn der Benutzer die Archivoperationen verläßt, dann sollte automatisch das Archiv
-freigegeben werden, um so - auch bei Multi-User-Betrieb - ein einwandfreies Archiv­
-handling zu gewährleisten. Nun kann der Benutzer das Pull-Down-Menu 'Archiv' aber
-eben auf zweierlei Weise verlassen: Einmal durch den Wechsel in ein anderes Pull-
-Down-Menu der gleichen Menukarte - oder aber er verläßt insgesamt das Menu. Im
-ersten Falle wird das Archiv abgemeldet, weil ja die als 3.Parameter bei 'oberbegriff'
-eingetragene Prozedur ausgeführt wird - im zweiten Falle, weil die als 3.Parameter
-bei 'oeffne menu' eingetragene Prozedur ausgeführt wird. Diese Eintragungen sollten
-Sie auf keinen Fall bei der Einbindung der Archivoperationen vergessen.
-
-Die Prozedur 'menu archiv grundeinstellung (INT CONST ort)' sollte bei den Archiv­
-operationen immer als 2. Parameter in der Prozedur 'oberbegriff' übergeben wer­
-den. Nur wenn diese Prozedur beim Entfallten des Archiv-Pull-Down-Menus ausge­
-führt wird, ist die einwandfreie Funktion des Archivsystems sichergestellt. Dadurch
-geschieht nämlich folgendes:
-
- 1) Als Zieltask wird das Archiv der eigenen Station eingestellt - unabhängig
- davon, mit welcher Einstellung das Menu zuvor verlassen wurde.
-
- 2) Es wird die Zieltask auf dem Bildschirm angezeigt.
-
- 3) Die entsprechenden Menupunkte werden aktiviert bzw. deaktiviert.
-
- 4) Es wird festgelegt, an welcher Stelle innerhalb des Menus die Menunotiz zur
- Anzeige der Zieltask (und ggf. des Archivnamens) ausgegeben wird.
-
-Im Programm oben ist hierfür die Position 4 (rechts unten in der Ecke) gewählt. Wir
-haben diese Festlegung deswegen so getroffen, weil das Archiv-Pull-Down-Menu
-ziemlich weit links auf dem Bildschirm erscheint (es sind nur zwei Oberbegriffe
-eingetragen!). So stören sich Archiv-Pull-Down-Menu und die Menunotiz nicht gegen­
-seitig. In unseren Anwendungssystemen 'gs-Herbert und Robbi' und
-'gs-MP-BAP' haben wir dagegen die Position '3' eingetragen, damit die Menunotiz
-unten links in der Ecke erscheint, weil das Archiv-Pull-Down-Menu ganz rechts auf
-dem Bildschirm entfaltet wird.
-
-Achtung! Uns ist es sehr, sehr wichtig, daß zumindest die Archivfunktionen in allen
-Anwendungen unter gs-DIALOG in gleicher Weise zur Verfügung gestellt werden. Um
-das sicherzustellen, sind die Funktionen so in gs-DIALOG integriert, daß das System
-nur dann reibungslos funktioniert, wenn Sie sich an die eben aufgezeigten Regeln für
-die Einbindung in Ihr Anwendungssystem halten! Für die korrekte Funktionsweise
-muß im Archiv-Pull-Down-Menu auch immer exakt die Reihenfolge (der Aufbau) der
-Verarbeitungsfunktionen eingehalten werden. Auch die Namen sollten immer gleich
-gewählt werden!
-
-Wir hoffen, daß Sie als Programmierer für diese doch etwas rigorose Maßnahme
-Verständnis haben - dafür versichern wir Ihnen, daß wir sehr viel Gedanken und
-Arbeit in die Konstruktion des Archivsystems investiert haben!
-
-Auf eine Einschränkung muß allerdings noch hingewiesen werden:Das Archiv-
-Pull-Down-Menu kann aus technischen Gründen nicht das erste, ganz links in einem
-Menu stehende sein; es kann frühestens unter dem zweiten Oberbegriff in das Menu
-aufgenommen werden! Es ist z.Z. nicht möglich, im ganz links stehenden Pull-
-Down-Menu deaktivierte Menupunkte zu behandeln.
-
-
-#ib#6.2 Einbinden der Dateiopertionen#ie#
-
-gs-DIALOG stellt neben den Archivoperationen standardmäßig auch einige Dateiope­
-rationen bereit. Folgende Prozeduren stehen zur Verfügung:
-
-
- PROC #ib#menu dateien verzeichnis#ie#,
- PROC #ib#menu dateien loeschen#ie#,
- PROC #ib#menu dateien drucken#ie#,
- PROC #ib#menu dateien kopieren#ie#,
- PROC #ib#menu dateien umbenennen#ie#,
- PROC #ib#menu dateien speicherplatz#ie#,
- PROC #ib#menu dateien aufraeumen#ie#.
-
-
-Die Prozeduren bedürfen in Ihrer Wirkung sicher kaum einer Erklärung. Die Wir­
-kungsweise können Sie einfach ausprobieren, indem Sie die entsprechenden Ver­
-arbeitungsfunktionen im Archiv-Menu einfach einmal aktivieren.
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.7 b/doc/menugenerator/menu-generator handbuch.7
deleted file mode 100644
index 2e6f0ba..0000000
--- a/doc/menugenerator/menu-generator handbuch.7
+++ /dev/null
@@ -1,367 +0,0 @@
-#block##pageblock#
-#pagenr("%",1)##setcount(1)##count per page#
-#headeven#
-gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#headodd#
-#right#gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#bottomeven#
-#center#____________________________________________________________
-7 - % #right#ERGOS
-#end#
-#bottomodd#
-#center#____________________________________________________________
-ERGOS #right# 7 - %
-#end#
-#ib#7  Eigene Fenster und Fensteroperationen #ie#
-
-
-In Kapitel 5.11 haben wir Ihnen gezeigt, wie Sie innerhalb des Menus ein Fenster
-(das Menufenster) öffnen können. Innerhalb dieses Bereichs stehen Ihnen die
-wesentlichen Ein- und Ausgabeoperationen zur Verfügung, die Sie auch sonst vom
-Bildschirm her kennen. Auf die Größe des Menufensters können Sie allerdings keinen
-Einfluß nehmen, da die Fenstergröße automatisch vom System (gs-DIALOG) festge­
-legt wird - je nachdem, ob Sie mit einem Menu oder mit geschachtelten Menus
-arbeiten.
-Auf die Einschränkungen bzw. Abweichungen gegenüber den Möglichkeiten, die Sie
-bei Benutzung des ganzen Bildschirms haben, haben wir Sie ausdrücklich hingewie­
-sen: So ist es nicht möglich, den Text innerhalb eines Fensters zu rollen (scrolling);
-statt dessen wird bei Überschreiten der unteren Fenstergrenze der Fensterinhalt
-gelöscht und die Ausgabe oben im "neuen" Fenster fortgesetzt.
-Als wir gs-DIALOG konzipierten und die ersten Anwendungen unter dieser Benutzer­
-schnittstelle entwarfen, fiel uns auf, daß es sehr günstig für die Strukturierung des
-Bildschirms innerhalb der Anwendungsprogramme ist, wenn man den Bildschirm in
-Bereiche (Fenster) einteilen und den Fenstern entsprechende Funktionen zuweisen
-kann (z.B. Eingabe-, Informations-, Kontroll-Fenster etc.). Sinnvoll ist es dann, auch
-die entsprechenden Ein-/Ausgaberoutinen zur Verfügung zu haben, die sich auf die
-einzelnen Fenster beziehen.
-
-In diesem Kapitel werden wir Ihnen zeigen, wie Sie eigene Fenster definieren und
-darin Ein- und Ausgaben realisieren können. Für die Fenster gelten die gleichen
-Einschränkungen wie für das Menufenster - d.h. ein Rollen des Textes (scrolling) ist
-nicht möglich. Die Fensterposition und -größe innerhalb des Bildschirms können Sie
-aber festlegen.
-
-
-#ib#7.1 Definition von Fenstern ('window')#ie#
-
-Das Fensterkonzept in gs-DIALOG ist sehr einfach gehalten: Durch die Definition
-des Fenters werden nur Bereiche auf dem Bildschirm festgelegt, auf die sich
-bestimmte Ein-/Ausgabeprozeduren beziehen.
-
-Wir wollen Ihnen die Verwendung von Fenstern wieder an einem kleinen Beispiel
-verdeutlichen - bleiben wir dazu bei unserer Textverarbeitung: Für die Seitenforma­
-tierung müßte der Benutzer den oberen und linken Rand, die Schreibfeldbreite und
-die Schreibfeldlänge festlegen. Dazu wollen wir dem Benutzer die aktuellen Werte
-anzeigen und ggf. eine Neueinstellung vornehmen lassen. Ein Programm dazu könnte
-so aussehen:
-
-
-WINDOW VAR info :: window ( 2, 2, 32, 9),
- frage :: window (36, 2, 40, 3),
- daten :: window (36, 7, 40, 4);
-
-TEXT VAR oberer rand :: " 2.54",
- linker rand :: " 2.54",
- feldbreite :: "16.00",
- feldlaenge :: "24.50";
-
-
-zeige aktuelle werte an;
-frage nach neueinstellung.
-
-zeige aktuelle werte an:
- page; show (info);
- out (info, center (info, invers ("Aktuell eingestellte Werte:")));
- cursor (info, 2, 4);
- out (info, "Oberer Rand : " + oberer rand + " cm");
- cursor (info, 2, 5);
- out (info, "Linker Rand : " + linker rand + " cm");
- cursor (info, 2, 7);
- out (info, "Schreibfeldbreite : " + feldbreite + " cm");
- cursor (info, 2, 8);
- out (info, "Schreibfeldlänge : " + feldlaenge + " cm").
-
-frage nach neueinstellung:
- show (frage);
- cursor (frage, 1, 1);
- out (frage, center (frage, invers ("Papierformat einstellen:")));
- cursor (frage, 2, 3);
- IF yes ("Neueinstellung vornehmen")
- THEN neue werte erfragen
- FI.
-
-neue werte erfragen:
- show (daten);
- erfrage oberen rand;
- erfrage linken rand;
- erfrage feldbreite;
- erfrage feldlaenge.
-
-erfrage oberen rand:
- REAL VAR neuer oberer rand;
- cursor (daten, 1, 1);
- out (daten, center (daten, invers ("Oberen Rand einstellen:")));
- cursor (daten, 2, 3);
- out (daten, "Bitte den neuen Wert: ");
- get (daten, neuer oberer rand);
- oberer rand := text (neuer oberer rand, 5, 2);
- cursor (info, 23, 4);
- out (info, oberer rand).
-
-erfrage linken rand:
- (* analog zu 'erfrage oberen rand *).
-
-erfrage feldbreite:
- (* analog zu 'erfrage oberen rand *).
-
-erfrage feldlaenge:
- (* analog zu 'erfrage oberen rand *).
-
-
-
-Am Anfang des Programms werden drei Fenster definiert. Das "Infofenster" erscheint
-links oben auf dem Bildschirm, in ihm werden die aktuell eingestellten Werte ange­
-zeigt. Das "Fragefenster" erscheint neben dem ersten Fenster oben rechts auf dem
-Bildschirm.
-Beantwortet der Benutzer die dort ausgegebene Frage 'Neueinstellung vornehmen
-(j/n)?' mit 'ja', dann erscheint unter dem zweiten Fenster ein drittes
-("Datenfenster"). Innerhalb dieses Fensters können nacheinander die neuen Werte
-eingelesen werden (nicht alle Prozeduren sind hier ausgeführt!).
-
-Die Definition eines Fensters erfolgt in folgender Weise:
-
- #ib#WINDOW#ie# VAR fenstername :: #ib#window#ie# ( x, y, xsize, ysize);
-
-Der Fenstervariablen wird durch 'window' eine Größe zugeordnet. Mit den ersten
-beiden Werten legen Sie die linke obere Ecke des Fensters ('x' bezeichnet die Spalten,
-'y' die Zeilen) auf dem Gesamtbildschirm fest. Mit 'xsize' bestimmen Sie die Fenster­
-breite (Spaltenzahl), mit 'ysize' die Höhe des Fensters (Zeilenzahl). Der Fenster­
-cursor hat die Position (1,1).
-Die linke obere Ecke des ersten Fensters im Programm hat also die Position ( 2, 2).
-Das Fenster ist 32 Spalten breit und 9 Zeilen hoch; es kann unter dem Namen 'info'
-angesprochen werden.
-Bei der Festlegung der Fenstermaße ist der Rahmen des Fensters nicht berücksich­
-tigt - er gehört nicht zum Fenster dazu! Haben Sie die Absicht, das Fenster mit
-Rahmen auszugeben, dann sollten Sie das bei der Fensterdefinition berücksichtigen.
-Wir haben es im Beispielprogramm auch gemacht: Die linke obere Ecke hat gerade
-die Position (2,2) erhalten, damit noch der Rahmen Platz hat. Mit Rahmen ist unser
-Fenster also 34 Spalten breit und 11 Zeilen hoch. Die linke obere Ecke des zweiten
-Fensters ('frage') legen wir deshalb in die 36. Spalte und 2. Zeile, damit auch hier
-Platz für den Rahmen bleibt.
-Eine wichtige Einschränkung sollten Sie unbedingt berücksichtigen: Da manche
-Terminals mit Beschreiben der Position (80,24) automatisch den Bildschirm
-löschen, haben wir die maximale Ausdehnung eines umrandeten Fensters auf (2, 2,
-77, 22) festgelegt. Überschreiten Sie irgendwo diese Grenzen, dann wird kein Rah­
-men mehr erzeugt. Der Rahmen wird auch dann nicht erzeugt, wenn er in der 0.
-Zeile, 0.Spalte, 25 Zeile oder 80 Spalte zu liegen käme - erst recht natürlich nicht,
-wenn diese Werte noch unter- bzw. überschritten werden.
-
-
-#ib#7.2 Anzeigen/Löschen von Fenstern#ie#
- ('#ib#show#ie#', '#ib#page#ie#', '#ib#erase#ie#', '#ib#out frame#ie#')
-
-Mit dem Befehl 'show (WINDOW VAR w)' wird das Fenster 'w' angezeigt. Der Fenster­
-variablen müssen natürlich zuvor die Maße des Fensters zugewiesen sein. Durch den
-Befehl wird um den angegebenen Fensterbereich ein Rahmen gezogen und der
-"Innenbereich" des Fensters gelöscht. Möchten Sie das Fenster ohne Rahmen ange­
-zeigt haben, so verwenden Sie nur den Befehl 'page (WINDOW VAR w)'. Durch die­
-sen Befehl wird nur der "Innenbereich" des Fensters gelöscht.
-Haben Sie das Fenster einmal mit 'show' ausgegeben und wollen den Fensterinhalt
-löschen, so verwenden Sie auch hier den Befehl 'page (WINDOW VAR w)', denn der
-Rahmen braucht ja nicht erneut ausgegeben zu werden.
-Möchten Sie ein Fenster und den zugehörigen Rahmen löschen, dann steht Ihnen der
-Befehl 'erase (WINDOW VAR w) zur Verfügung: Durch den Befehl wird sowohl der
-"Innenbereich" des Fensters als auch der Rahmen gelöscht.
-Sie können natürlich auch selbst einen Rahmen um ein Fenster setzen. Dafür steht
-der Befehl 'out frame (WINDOW VAR w)' zur Verfügung. Der Rahmen wird ebenfalls
-um den durch 'w' bestimmten Fensterbereich gezogen - der "Innenbereich" bleibt
-unberührt!
-
-Sollten Sie ein Fenster mit dem Befehl 'show' ausgeben (oder mit 'out frame' einen
-Rahmen erzeugen) wollen, aber kein Rahmen auf dem Bildschirm erscheint, so
-haben Sie die zulässigen Fenstergrenzen überschritten. Sehen Sie dazu auch Kapitel
-7.1.
-
-
-#ib#7.3 Operationen innerhalb des Fensters#ie#
-
-Innerhalb des selbstdefinierten Fensters stehen Ihnen die gleichen Operationen zur
-Verfügung wie innerhalb des Menufensters. Bezieht sich eine Operation auf ein
-Fenster, so wird der interne Fensterbezeichner als erster Parameter übergeben.
-
-
-#ib#7.3.1 Datei anzeigen/editieren #ie#('#ib#edit#ie#', '#ib#show#ie#')
-
-Zum Anzeigen einer Datei steht die Prozedur 'show' zur Verfügung. Dabei kann
-einmal ein FILE angegeben werden ('show (WINDOW VAR w, FILE VAR f)') oder aber
-der Name der anzuzeigenden Datei ('show (WINDOW VAR w, TEXT VAR dateiname)').
-Die Datei kann nur eingesehen, nicht aber schreibend verändert werden.
-Die Prozedur 'edit' gibt es ebenfalls in den zwei Ausprägungen. Hier kann die Datei
-im Gegensatz zu 'show' auch schreibend verändert werden.
-Durch diesen Befehl wird jeweils innerhalb des angegebenen Fensters die Datei
-ausgegeben. Sofern die Lage des Fensters es zuläßt, wird automatisch ein Rahmen
-um das Dateifenster gezogen.
-
-
-#ib#7.3.2 Positionierungen im Fenster#ie#
- ('#ib#cursor#ie#', '#ib#get cursor#ie#', '#ib#line#ie#', '#ib#remaining lines#ie#')
-
-Mit 'cursor (WINDOW VAR w, INT CONST spalte, zeile)' können Sie den Cursor inner­
-halb des angegebenen Fensters positionieren. Werden dabei die Fenstergrenzen über-
-oder unterschritten, so wird der Fensterinhalt gelöscht und auf die Position (1, 1)
-innerhalb des Fensters positioniert.
-Mit der Prozedur 'get cursor (WINDOW VAR w, INT VAR spalte, zeile)' können Sie die
-aktuelle Cursorposition innerhalb des angegebenen Fensters erfragen.
-Wollen Sie an den Anfang der nächsten Zeile positionieren, dann verwenden Sie den
-Befehl 'line (WINDOW VAR w)' - wollen Sie gleich mehrere Zeilen vorwärtspositionie­
-ren, dann benutzen Sie den Befehl 'line (WINDOW VAR w, INT VAR anzahl zeilen)'.
-Wird allerdings bei einem der beiden letzten Befehle die untere Fenstergrenze über­
-schritten, so wird der Fensterinhalt gelöscht und die Operation in der ersten Zeile des
-neuen Fensters fortgesetzt.
-Die Informations-Prozedur 'remaining lines (WINDOW VAR w)' liefert Ihnen die
-Anzahl der unterhalb der aktuellen Zeile noch im Fenster vorhanden Zeilen.
-
-
-#ib#7.3.3 Ein- und Ausgaben innerhalb des Fensters#ie#
- ('#ib#out#ie#', '#ib#put#ie#', '#ib#putline#ie#', '#ib#get#ie#', '#ib#getline#ie#', '#ib#yes#ie#', '#ib#no#ie#')
-
-Mit der Prozedur 'out (WINDOW VAR w, TEXT CONST text)' können Sie einen Text
-innerhalb des angegebenen Fensters ausgeben. Paßt der Text nicht mehr in die
-aktuelle Zeile, so wird er in der nächsten Zeile fortgesetzt.
-Bedenken Sie, daß innerhalb der Fenster kein Wortumbruch realisiert ist. Ebenso­
-wenig ist das Rollen (scrolling) des Fensterinhalts möglich: Erfolgt die Ausgabe eines
-Textes über die untere Fenstergrenze hinaus, so wird der Fensterinhalt gelöscht und
-die Ausgabe an der Position (1, 1) des Fensters fortgesetzt.
-Zur Ausgabe von Texten stehen noch die beiden Prozeduren 'put (WINDOW VAR w,
-TEXT CONST text)' und 'putline (WINDOW VAR w, TEXT CONST text)' zur Verfügung.
-Bei erstgenannter Prozedur wird gegenüber 'out' an die Ausgabe noch ein Leerzei­
-chen angehängt, bei der zweiten wird zusätzlich an den Anfang der nächsten Zeile
-positioniert.
-Zahlenwerte können mit den Prozeduren 'put (WINDOW VAR w, INT CONST intwert)'
-und 'put (WINDOW VAR w, REAL CONST realwert)' ausgegeben werden. An die
-Zahlenwerte wird jeweils ein Leerzeichen angehängt.
-
-Für das Einlesen von Werten steht die Prozedur 'get' in mehreren Varianten zur
-Verfügung. Mit 'get (WINDOW VAR w, TEXT VAR text)' kann ein Text an der aktuellen
-Position des Fensters eingelesen werden. Stehen in der aktuellen Zeile des Fensters
-weniger als 5 Zeichenpositionen für die Eingabe zur Verfügung, so wird automatisch
-auf den Anfang der nächsten Zeile innerhalb des Fensters positioniert.
-Über einen dritten Parameter können noch zusätzliche Festlegungen getroffen wer­
-den: Soll die Eingabe noch durch weitere Zeichen (außer Positionierungszeichen)
-abgeschlossen werden können, so werden die Zeichen als TEXT übergeben( 'get
-(WINDOW VAR w, TEXT VAR text, TEXT CONST separator)'), soll die Maximallänge des
-einzugebenden Textes festgelegt sein, so wird diese als INT übergeben ('get (WINDOW
-VAR w, TEXT VAR text, INT CONST laenge)').
-
-Mit den Prozeduren 'get (WINDOW VAR w, INT VAR intwert)' und 'get (WINDOW VAR
-w, INT VAR realwert)' können auch Zahlenwerte innerhalb des Fensters eingelesen
-werden.
-
-Damit dem Anwender auch Vorschläge für der Eingabe gemacht werden können,
-steht die Prozedur 'editget' in zwei Variationen zur Verfügung. Bei 'editget' (WINDOW
-VAR w, TEXT VAR ausgabe) wird 'ausgabe zum Editieren ausgegeben. Daneben
-existiert noch ein 'editget' mit 7 Parametern, der detailliert bei der Zusammenstel­
-lung der Befehle erläutert ist.
-
-Ebenso wie auf dem Gesamtbildschirm und innerhalb des Menufensters stehen auch
-hier die beiden Prozeduren 'yes (WINDOW VAR w, TEXT CONST frage)' und 'no
-(WINDOW VAR w, TEXT CONST frage)' zur Verfügung.
-
-
-#ib#7.3.4 Weitere Prozeduren #ie#('#ib#center#ie#', '#ib#stop#ie#')
-
-Mit 'center (WINDOW VAR w, TEXT CONST text)' werden vor dem angegebenen Text
-so viele Leerzeichen angehängt, daß der Text zentriert in der aktuellen Fensterzeile
-ausgegeben wird - wenn der Cursur bei der Ausgabe auf der ersten Position der Zeile
-steht. Dabei werden aber bereits vorhandene Zeileninhalte überschrieben.
-
-Durch die Prozedur 'stop (WINDOW VAR w)' wird innerhalb des angegebenen Fen­
-sters an den Anfang der übernächsten Zeile positioniert und der Text " Zum Weiter­
-machen bitte irgendeine Taste tippen!" ausgegeben. Möchten Sie nicht an den Anfang
-der übernächsten Zeile positionieren, so können Sie die Anzahl der Zeilen auch
-explizit festlegen durch 'stop (WINDOW VAR w, INT CONST zeilenzahl).
-
-
-#ib#7.4 Boxoperationen#ie#
-
-Innerhalb des Menufensters (sehen Sie Kapitel 5) stehen Ihnen die Prozeduren
-'menuanswer', 'menuinfo', 'menuone', 'menusome', 'menuanswerone',
-'menuanswersome', 'menuyes', 'menuno', 'menualternative', 'write menunotice' und
-'menufootnote' zur Verfügung. Alle diese Prozeduren bezogen sich auf das von
-gs-DIALOG automatisch gesetzte Menufenster.
-Auch innerhalb der von Ihnen selbst definierten Fenster können Sie auf ähnliche
-Prozeduren zurückgreifen. Da wir die eben genannten Prozeduren in Kapitel 5 sehr
-detailliert beschrieben haben, werden wir hier nur auf die entsprechenden
-Beschreibungen verweisen und ggf. die Besonderheiten/Abweichnungen erwähnen.
-Zu beachten ist, daß innerhalb des Fensters weder die oberen noch die unteren zwei
-Zeilen von der "Box" beschrieben werden. Die oberen bleiben ständig frei - die unter­
-en werden zur Ausgabe der zugehörigen Benutzerinformation (Fußnote) benutzt -
-das sollten Sie bei der Festlegung der Fenstergröße bzw. bei der Länge der zu über­
-gebenden Texte berücksichtigen. Bei der Übergabe der Texte müssen Sie sich an die
-gs-DIALOG Syntax-Regeln halten, die in Kapitel 5.12 beschrieben sind.
-
-Die Prozedur '#ib#boxanswer#ie# (WINDOW VAR w, TEXT CONST ausgabetext, antwortvorgabe,
-INT CONST position)' arbeitet wie die Prozedur 'menuanswer (TEXT CONST ausgabe­
-text, antwortvorgabe, INT CONST position)' nur innerhalb des Fensters 'w' (sehen Sie
-auch Kapitel 5.1).
-
-Die Prozedur '#ib#boxinfo#ie#' gibt es in zwei Ausführungen: 'boxinfo (WINDOW VAR w, TEXT
-CONST text)' arbeitet wie 'menuinfo (TEXT CONST text)', allerdings auf dem angege­
-benen Fenster. Bei 'boxinfo (WINDOW VAR w, TEXT CONST text, INT CONST position,
-timelimit)' kann über den dritten Parameter noch die relative Position im angegebe­
-nen Fenster (sehen Sie dazu Kapitel 5.12) und über den vierten Parameter die Zeit­
-spanne festgelegt werden, für die die Information erscheint (sehen Sie auch Kap.
-5.2).
-
-Die Prozedur '#ib#boxone#ie# (WINDOW VAR w, THESAURUS CONST thesaurus, TEXT CONST
-text1, text2, BOOL CONST mit reinigung)' arbeitet wie die Prozedur 'menuone
-(THESAURUS CONST thesaurus, TEXT CONST text1, text2, BOOL CONST mit reini­
-gung)'. Zu bedenken ist hier, daß die Auswahl innerhalb des Fensters Platz finden
-muß. Der Aufruf dieser Prozedur ist daher nur möglich, wenn das angegebene Fen­
-ster mindestens 60 Spalten breit und 17 Zeilen hoch ist. Ansonsten kommt es zu
-einer Fehlermeldung (sehen Sie auch Kap. 5.3).
-
-Die Prozedur '#ib#boxsome#ie# (WINDOW VAR w, THESAURUS CONST thesaurus, TEXT
-CONST text1, text2, BOOL CONST mit reinigung)' arbeitet wie die Prozedur
-'menusome (THESAURUS CONST thesaurus, TEXT CONST text1, text2, BOOL CONST
-mit reinigung)'. Hinsichtlich der Fenstergröße gelten die gleichen Einschränkungen
-wie bei 'boxone' (sehen Sie auch Kap. 5.4).
-
-Die Prozeduren '#ib#boxanswerone#ie#' und '#ib#boxanswersome#ie#' entsprechen den Prozeduren
-'menuanswerone' und 'menuanswersome'; es wird nur zusätzlich jeweils als erster
-Parameter das aktuelle Fenster übergeben. Hinsichtlich der Fenstergröße gelten die
-gleichen Einschränkungen wie bei 'boxone' (sehen Sie auch Kap. 5.5).
-
-Die Prozeduren '#ib#boxyes#ie#', '#ib#boxno#ie#' und '#ib#boxalternative#ie#' entsprechen den Prozeduren
-'menuyes', 'menuno' und 'menualternative'; es wird nur zusätzlich jeweils als erster
-Parameter das aktuelle Fenster übergeben (sehen Sie auch Kap. 5.6 und 5.7).
-
-Die Prozedur '#ib#boxnotice#ie#' unterscheidet sich von der Prozedur 'write menunotice'
-erheblich: Letztgenannte Prozedur hat zwei Parameter. Durch den ersten wird der
-Ausgabetext übergeben, mit dem zweiten wird die relative Position innerhalb des
-Menubildschirms festgelegt. Sowohl Text als auch Position werden vom System ge­
-speichert. Bei jedem Neuaufbau eines Pull-Down-Menus oder des Menubildschirms
-wird die Notiz neu mitaufgebaut.
-Die Prozedur 'boxnotice (WINDOW VAR w, TEXT CONST text, INT CONST position, INT
-VAR x, y, xsize, ysize) dagegen hat sieben Parameter. Über den ersten wird das aktuel­
-le Fenster festgelegt. Die beiden nächsten Parameter entsprechen den beiden Para­
-metern von 'write menunotice'. Über die letzten vier Parameter werden die Posi­
-tion/Maße der Box geliefert, die ja erst durch das Aussehen der übergebenen Texte
-festgelegt werden. Weder Text noch Position der Boxnotiz werden vermerkt. Wollen Sie
-die Notiz löschen, so verwenden Sie eine der Prozeduren '#ib#page#ie# (INT CONST x, y, xsize,
-ysize)' oder '#ib#page up#ie# (INT CONST x, y, xsize, ysize)'. Im ersten Falle erscheint es dem
-Betrachter, als ob die Box von oben nach unten "aufgerollt" würde, im zweiten Falle
-von unten nach oben.
-
-Mit den Prozeduren '#ib#out footnote#ie# (WINDOW VAR w, TEXT CONST text)' wird in der
-untersten Zeile des Fensters 'w' der angegebene Text ausgegeben. In der vorletzten
-Zeile des Fensters wird eine Trennlinie ausgegeben. Die Fußnote incl. der Trennline
-kann durch den Befehl '#ib#erase footnote#ie#' gelöscht werden.
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.8 b/doc/menugenerator/menu-generator handbuch.8
deleted file mode 100644
index 66eb6cf..0000000
--- a/doc/menugenerator/menu-generator handbuch.8
+++ /dev/null
@@ -1,1676 +0,0 @@
-#block##pageblock#
-#pagenr("%",1)##setcount(1)##count per page#
-#headeven#
-gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#headodd#
-#right#gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#bottomeven#
-#center#____________________________________________________________
-8 - % #right#ERGOS
-#end#
-#bottomodd#
-#center#____________________________________________________________
-ERGOS #right# 8 - %
-#end#
-#ib#8  Kurzbeschreibung der Befehle #ie#
-
-
-Durch #u#(*)#e# gekennzeichnete Prozeduren stehen (zumindest in der hier dokumentier­
-ten Form) erst ab gs-DIALOG Version 1.1 zur Verfügung!
-
-
-#ib#activate#ie#
-PROC activate (TEXT CONST punktname):
-
-Zweck: Mit der Prozedur kann ein (deaktivierter) Menupunkt im aktuellen
- Pull-Down-Menu aktiviert, d.h. zur Ausführung freigegeben werden. Das
- '-'-Zeichen vor der Punktbezeichnung verschwindet auf dem Bildschirm,
- statt dessen erscheint das Zeichen, über den die Menufunktion direkt
- aktivierbar ist. 'punktname' muß eine Punktbezeichnung sein, die genau
- in der angegebenen Schreibweise im aktuellen Pull-Down-Menu vorhan­
- den ist (über den 2. Parameter der Prozedur 'menufunktion' in die
- Menukarte eingetragen wurde) - ansonsten wird diese Anweisung igno­
- riert. Die Prozedur "zeigt nur dann Wirkung", wenn sie aus einer Verar­
- beitungsfunktion des aktuell entfalteten Pull-Down-Menus heraus oder
- durch die "Startprozedur"/"Leaveprozedur" des aktuellen Pull-Down-
- Menus (sehen Sie auch 'oberbegriff') aufgerufen wird.
- Die Veränderung wird nicht sofort auf dem Bildschirm angezeigt, sondern
- erst, wenn das Pull-Down-Menu das nächste Mal vom System regeneriert
- wird; ansonsten muß das Kommando 'refresh submenu' gegeben werden.
-
-
-PROC activate (INT CONST punktposition):#u#(*)#e#
-Zweck: arbeitet wie obiges 'activate', allerdings werden die Menupunkte nicht
- über ihre Bezeichnung, sondern über ihre Position im (aktuellen) Pull-
- Down-Menu identifiziert. Die Positionen sind von oben nach unten durch­
- numeriert. Beachten Sie, daß Trennlinien eine Position belegen und
- mitgezählt werden. Die Prozedur arbeitet schneller als obige!
-
-
-#ib#anwendungstext#ie#
-TEXT PROC anwendungstext (INT CONST zeilennummer):
-
-Zweck: Mit diesem Befehl können Texte angesprochen (geholt) werden, die in die
- Menukarte ausgelagert wurden. Es wird der Text aus der angekoppelten
- Menukarte geliefert, der bei der "Einlagerung" in der Zeile 'zeilen­
- nummer' stand.
-Fehler: Kein Text vorhanden! (In der angekoppelten Menukarte ist unter der
- 'zeilennummer' kein Anwendungstext eingetragen.)
- Bitte achten Sie auf folgendes: Wenn Sie eine neue Menukarte generiert
- haben, muß diese erst an die aktuelle Task gekoppelt werden, bevor Sie
- auf die dort eingetragenen (Anwendungs-)Texte zugreifen können (z.B.
- mit 'testinstallation').
-
-
-#ib#areax#ie#
-INT PROC areax (WINDOW VAR w)
-Zweck: Liefert den Wert 'x' des Fensters w.
-
-
-#ib#areaxsize#ie#
-INT PROC areaxsize (WINDOW VAR w)
-Zweck: Liefert den den Wert 'xsize' des Fensters w.
-
-
-#ib#areay#ie#
-INT PROC areay (WINDOW VAR w)
-Zweck: Liefert den den Wert 'y' des Fensters w.
-
-
-#ib#areaysize#ie#
-INT PROC areaysize (WINDOW VAR w)
-Zweck: Liefert den den Wert 'ysize' des Fensters w.
-
-
-#ib#balken links#ie#
-TEXT PROC balken links:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "linker
- Balken" (̄) ausgegeben wird.
-
-
-PROC balken links (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" als "linker Balken" ausgegeben werden soll.
-
-
-#ib#balken oben#ie#
-TEXT PROC balken oben:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "oberer
- Balken" (�) ausgegeben wird.
-
-
-PROC balken oben (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" als "oberer Balken" ausgegeben werden soll.
-
-
-#ib#balken rechts#ie#
-TEXT PROC balken rechts:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "rechter
- Balken" (̃) ausgegeben wird.
-
-
-PROC balken rechts (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" als "rechter Balken" ausgegeben werden soll.
-
-
-#ib#balken unten#ie#
-TEXT PROC balken unten:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "unterer
- Balken" (̂) ausgegeben wird.
-
-
-PROC balken unten (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" als "unterer Balken" ausgegeben werden soll.
-
-
-#ib#boxalternative#ie#
-INT PROC boxalternative (WINDOW VAR w,
- TEXT CONST infotext,
- auswahlliste,
- zusatztasten,
- INT CONST position,
- BOOL CONST mit abbruch):
-
-Zweck: Vergl. 'menualternative'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menualternative' automatisch gesetzt wird. Der 'infotext' muß
- den gs-DIALOG-Syntax-Regel gehorchen! Die 'auswahlliste' muß nach
- festen Regeln erstellt werden (sehen Sie Kap. 5.7)
-
-
-#ib#boxanswer#ie#
-TEXT PROC boxanswer (WINDOW VAR w,
- TEXT CONST infotext,
- vorgabe,
- INT CONST  position):
-
-Zweck: Vergl. 'menuanswer'. Hier wird nur zusätzlich das Fenster festgelegt, das
- bei 'menuanswer' automatisch gesetzt wird. Der 'infotext' muß den
- gs-DIALOG-Syntax-Regel gehorchen!
-
-
-#ib#boxanswerone#ie#
-TEXT PROC boxanswerone (WINDOW VAR w,
- TEXT CONST infotext,
- vorgabe,
- THESAURUS CONST thes,
- TEXT CONST ueberschrift,
- hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Vergl. 'menuanswerone'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuanswerone' automatisch gesetzt wird.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#boxanswersome#ie#
-THESAURUS PROC boxanswersome (WINDOW VAR w,
- TEXT CONST infotext,
- vorgabe,
- THESAURUS CONST thes,
- TEXT CONST ueberschrift,
- hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Vergl. 'menuanswersome'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuanswersome' automatisch gesetzt wird.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#boxinfo#ie#
-PROC boxinfo (WINDOW VAR w, TEXT CONST infotext,
- INT CONST position, timelimit):
-
-Zweck: Vergl. 'menuinfo'. Hier wird nur zusätzlich das Fenster festgelegt, das bei
- 'menuinfo' automatisch gesetzt wird. Der 'infotext' muß den gs-DIALOG-
- Syntax-Regel gehorchen!
-
-
-PROC boxinfo (WINDOW VAR w, TEXT CONST infotext):
-
- wirkt wie: boxinfo (w, infotext, 5, maxint)
-
-
-#ib#boxno#ie#
-BOOL PROC boxno (WINDOW VAR w,
- TEXT CONST frage,
- INT CONST  position):
-
- wirkt wie: NOT boxyes (w, frage, position)
-
-
-#ib#boxnotice#ie#
-PROC boxnotice (WINDOW VAR w,
- TEXT CONST infotext,
- INT CONST  position
- INT VAR x, y, xsize, ysize):
-
-Zweck: Mit 'w' wird das aktuelle Fenster festgelegt. In 'infotext' wird der Text
- übergeben, der als Notiz ausgegeben werden soll, der Text muß den
- gs-DIALOG-Syntax-Regeln entsprechen. Mit 'position' wird die relative
- Lage innerhalb des Fensters 'w' bestimmt. Über die letzten vier Parameter
- werden die Position/Maße der Box geliefert. Weder Text noch Position
- werden vermerkt.
-
-
-#ib#boxone#ie#
-TEXT PROC boxone (WINDOW VAR w,
- THESAURUS CONST thes,
- TEXT CONST ueberschrift,
- hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Vergl. 'menuone'. Hier wird nur zusätzlich das Fenster festgelegt, das bei
- 'menuone' automatisch gesetzt wird.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#boxsome#ie#
-THESAURUS PROC boxsome (WINDOW VAR w,
- THESAURUS CONST thes,
- TEXT CONST ueberschrift,
- hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Vergl. 'menusome'. Hier wird nur zusätzlich das Fenster festgelegt, das
- bei 'menusome' automatisch gesetzt wird.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#boxyes#ie#
-BOOL PROC boxyes (WINDOW VAR w,
- TEXT CONST frage,
- INT CONST  position):
-
-Zweck: Vergl. 'menuyes'. Hier wird nur zusätzlich das Fenster festgelegt, das bei
- 'menuyes' automatisch gesetzt wird. Die 'frage' muß den gs-DIALOG-
- Syntax-Regel gehorchen!
-
-
-#ib#center#ie#
-TEXT PROC center (WINDOW VAR w, TEXT CONST text):
-
-Zweck: Vergl. 'menuwindowcenter'. Hier wird nur zusätzlich das Fenster festge­
- legt, das bei 'menuwindowcenter' automatisch gesetzt wird.
-
-
-TEXT PROC center (INT CONST laenge,
- TEXT CONST text):
-
-Zweck: "Ummantelt" 'text' mit Leerzeichen, so daß 'text' etwa in der Mitte zu
- stehen kommt. Der gelieferte Text hat die Länge 'laenge'.
-
-
-TEXT PROC center (TEXT CONST text):
-
- wirkt wie: center (79, text)
-
-
-#ib#clear buffer#ie#
-PROC clear buffer
-
-Zweck: Leert den Zeichenpuffer
-
-
-#ib#clear buffer and count#ie#
-INT PROC clear buffer and count (TEXT CONST
- zeichen):
-
-Zweck: Leert den Zeichenpuffer und liefert die Häufigkeit des Vorkommens von
- 'zeichen' im Zeichenpuffer.
-
-
-#ib#current menuwindow#ie#
-WINDOW PROC current menuwindow:
-
-Zweck: liefert das aktuelle Menufenster (die Einzelwerte können dann mit
- 'areax', 'areay', 'areaxsize' und 'areaysize' erfragt werden).
-
-
-#ib#cursor#ie#
-PROC cursor (WINDOW VAR w, INT CONST spalte,
- zeile):
-
-Zweck: Vergl. 'menuwindowcursor'. Hier wird nur zusätzlich das Fenster festge­
- legt, das bei 'menuwindowcursor' automatisch gesetzt wird.
-
-
-#ib#cursor off#ie#
-PROC cursor off:
-
-Zweck: Sofern die EUMEL-Installation die Möglichkeit bietet, wird der Cursor aus
- dem Bildschirm ausgeblendet.
- Wenn neue Verarbeitungsfunktionen entwickelt werden, sollte zu Beginn
- der Cursor eingeschaltet und nach Abschluß der Cursor wieder ausge­
- schaltet werden (sehen Sie auch Kap. 5.1).
-
-
-PROC cursor off (TEXT CONST zeichenkette):
-
-Zweck: Neufestlegung der 'zeichenkette', die ausgegeben werden soll, um bei der
- aktuellen EUMEL-Installation den Cursor auf den Befehl 'cursor off' hin
- auszuschalten.
-
-
-#ib#cursor on#ie#
-PROC cursor on:
-
-Zweck: Sofern die EUMEL-Installation die Möglichkeit bietet, wird der Cursor auf
- dem Bildschirm angezeigt. Wenn neue Verarbeitungsfunktionen entwik­
- kelt werden, sollte zu Beginn der Cursor eingeschaltet und nach Abschluß
- der Cursor wieder ausgeschaltet werden (sehen Sie auch Kap. 5.1).
-
-
-PROC cursor on (TEXT CONST zeichenkette):
-
-Zweck: Neufestlegung der 'zeichenkette', die ausgegeben werden soll, um bei der
- aktuellen EUMEL-Installation den Cursor auf den Befehl 'cursor on' hin
- anzuschalten.
-
-
-#ib#deactivate#ie#
-PROC deactivate (TEXT CONST punktname):
-
-Zweck: Vergl. 'activate (TEXT CONST punktname)'.
- Im Gegensatz zu der Prozedur wird hier 'punktname' deaktiviert und
- beim (nächsten) Erscheinen der Menupunktbezeichnung ein '-'Zeichen
- vorangestellt. Es gelten die gleichen Einschränkungen wie bei 'activate'!
-
-
-PROC deactivate (INT CONST punktposition):#u#(*)#e#
-Zweck: arbeitet wie obiges 'deactivate', allerdings werden die Menupunkte nicht
- über ihre Bezeichnung, sondern über ihre Position im (aktuellen) Pull-
- Down-Menu identifiziert. Die Positionen sind von oben nach unten durch­
- numeriert. Beachten Sie, daß Trennlinien eine Position belegen und
- mitgezählt werden. Die Prozedur arbeitet schneller als obige!
-
-
-#ib#direktstart#ie#
-PROC direktstart (TEXT CONST prozedurname,
- BOOL CONST mit loeschen):#u#(*)#e#
-Zweck: Macht aus der aktuellen Task eine Manager-Task ('global manager').
- Werden neue Sohntasks eingerichtet, so melden sich diese nicht - wie
- gewohnt - mit der 'gib kommando:'-Ebene. Statt dessen wird die Prozedur
- 'prozedurname' ausgeführt. Das Kommando ist dann sinnvoll, wenn sich
- die Sohntask gleich mit einem Menu melden soll. In der Prozedur
- 'prozedurname' muß dann die entsprechende Menukarte angekoppelt
- und das gewünschte Menu zur Ausführung gebracht werden. Hat 'mit
- loeschen den Wert 'TRUE', so wird nach Verlassen der Menuebene die
- Task automatisch gelöscht; bei 'FALSE' wird noch angefragt, ob die Task
- gelöscht werden soll. Wird die Frage bejaht, wird gelöscht; sonst wird die
- Task abgekoppelt (break) und kann durch 'continue' wieder angekoppelt
- werden.
- In der Task, in der das Kommando 'direktbefehl' gegeben wurde, sollte
- nicht das Kommando 'monitor' gegeben werden, da dadurch auch die­
- se Task zu einer Task gemacht würde, die sich direkt mit dem Menu
- meldet und ggf. bei Verlassen des Menus automatisch gelöscht wird! Die
- 'gib kommando:'-Ebene ist dadurch unzugänglich!
-
-
-#ib#ecke oben links#ie#
-TEXT PROC ecke oben links:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" links oben in der
- Ecke (ω) ausgegeben wird.
-
-
-PROC ecke oben links (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" links oben in der Ecke ausgegeben werden soll.
-
-
-#ib#ecke oben rechts#ie#
-TEXT PROC ecke oben rechts:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" rechts oben in
- der Ecke (�) ausgegeben wird.
-
-
-PROC ecke oben rechts (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" rechts oben in der Ecke ausgegeben werden soll.
-
-
-#ib#ecke unten links#ie#
-TEXT PROC ecke unten links:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" links unten in
- der Ecke (�) ausgegeben wird.
-
-
-PROC ecke unten links (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" links unten in der Ecke ausgegeben werden soll.
-
-
-#ib#ecke unten rechts#ie#
-TEXT PROC ecke unten rechts:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" rechts unten in
- der Ecke (�) ausgegeben wird.
-
-
-PROC ecke unten rechts (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" rechts unten in der Ecke ausgegeben werden soll.
-
-
-#ib#edit#ie#
-PROC edit (WINDOW VAR w, TEXT CONST dateiname):
-
-Zweck: Vergl. 'menuwindowedit'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowedit' automatisch gesetzt wird.
-
-
-PROC edit (WINDOW VAR w, FILE VAR f):
-
-Zweck: Vergl. 'menuwindowedit'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowedit' automatisch gesetzt wird.
-
-
-#ib#editget#ie#
-PROC editget (WINDOW VAR w, TEXT VAR text):#u#(*)#e#
-Zweck: Eingabe mit Editiermöglichkeit von 'text'. 'text' wird ausgegeben. Die
- Eingabe wird mit RETURN beendet. 'text' darf höchstens 79 Zeichen
- lang sein! Fehler: Text nicht initialisiert.
-
-
-PROC editget (WINDOW VAR w, TEXT VAR text,
- INT CONST max laenge, scroll,
- TEXT CONST sep, res,
- TEXT VAR exit char):#u#(*)#e#
-Zweck: Wie oben. Über 'max laenge' kann festgelegt werden , wie lang der einzu­
- gebende Text ('text') maximal sein darf. Über 'scroll' wird die Breite des
- Zeilenfensters festgelegt, bevor gerollt wird (jedoch nicht über die rech­
- te Fenstergrenze hinaus). Über 'sep' können Zeichen bestimmt werden,
- bei denen die Eingabe (zusätzlich zu RETURN) beendet werden soll. Über
- 'res' können reservierte Tasten angegeben werden. Wird eine dieser
- Tasten mit ESC betätigt, wird die Eingabe beendet. In 'exit char' steht
- dann ESC und das Zeichen, mit dem der Editor verlassen wurde.
-Fehler: Text nicht initialisiert.
-
-
-#ib#erase#ie#
-PROC erase (WINDOW VAR fenster):
-
-Zweck: Der durch 'fenster' beschrieben Bildschirmbereich wird gelöscht - ein­
- schließlich des Rahmens, der den Fensterbereich umgibt (vergl. Sie auch
- 'page')!
-
-
-#ib#erase footnote#ie#
-PROC erase footnote (WINDOW VAR fenster):
-
-Zweck: Die letzten beiden Zeilen in 'fenster' (in der die Fußnote nebst Trennlinie
- eingetragen sind) werden gelöscht (vergl. Sie auch 'out footnote')!
-
-
-#ib#erase menunotice#ie#
-PROC erase menunotice:
-
-Zweck: Sofern zuvor mit 'write menunotice' (sehen Sie auch dort) eine Menunotiz
- gesetzt wurde, wird diese gelöscht, ansonsten hat die Prozedur keine
- Wirkung.
-
-
-#ib#get#ie#
-PROC get (WINDOW VAR w, TEXT CONST eingabe):
-
-Zweck: Vergl. 'menuwindowget'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowget' automatisch gesetzt wird.
-
-
-PROC get (WINDOW VAR w, INT CONST wert):
-
-Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Der eingelesene Wert
- wird anschließend entsprechend konvertiert.
-
-
-
-PROC get (WINDOW VAR w, REAL CONST wert):
-
-Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Der eingelesene Wert
- wird anschließend entsprechend konvertiert.
-
-
-PROC get (WINDOW VAR w, TEXT CONST eingabe,
- INT CONST laenge):
-
-Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Zusätzlich wird die
- Eingabe beendet, wenn der eingegebene Text die Länge 'laenge' erreicht
- hat.
-
-
-PROC get (WINDOW VAR w, TEXT CONST eingabe,
- TEXT CONST separator):
-
-Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Zusätzlich werden
- über 'separtor' die Zeichen festgelegt, die zusätzlich zu den Positionie­
- rungszeichen die Eingabe beenden.
-
-
-#ib#get cursor#ie#
-PROC get cursor (WINDOW VAR w, INT VAR spalte,
- zeile):
-
-Zweck: Vergl. 'get menuwindowcursor'. Hier wird nur zusätzlich das Fenster
- festgelegt, das bei 'get menuwindowcursor' automatisch gesetzt wird.
-
-
-#ib#getline#ie#
-PROC getline (WINDOW VAR w, TEXT CONST eingabe):
-
-Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe). Nur wird hier die
- Eingabe ausschließlich über die Positionierungstasten - nicht aber über
- das Leerzeichen beendet.
-
-
-#ib#get menuwindowcursor#ie#
-PROC get menuwindowcursor (INT VAR spalte, zeile):
-
-Zweck: Mit der Prozedur wird die aktuelle Cursorposition innerhalb des Menu­
- fensters erfragt.
-
-
-#ib#handle menu#ie#
-PROC handle menu (TEXT CONST menuname):
-
-Zweck: Bringt das in der angekoppelten Menukarte enthaltene Menu mit dem
- Namen 'menuname' zur Ausführung, d.h. das entsprechende Menu wird
- auf dem Bildschirm präsentiert und kann mit den üblichen Tastenfunk­
- tionen gehandhabt werden.
- (Anmerkung: Die Menufunktionen können natürlich nur dann ausge­
- führt werden, wenn die zugehörigen Programme in der aktuellen Task
- zuvor insertiert wurden - ansonsten erscheint auf dem Bildschirm jeweils
- der Hinweis 'unbekanntes Kommando'!)
-Fehler: Das Menu 'menuname' ist nicht in der angekoppelten Menukarte!
-
-
-#ib#infix namen#ie#
-THESAURUS PROC infix namen (THESAURUS CONST thes,
- TEXT CONST infix):
-
-Zweck: Die Prozedur liefert einen Thesaurus, in dem alle Namen enthalten sind,
- die in 'thes' übergeben wurden und die den Wortbestandteil 'infix' enthal­
- ten (gleichgültig an welcher Position).
-
-
-THESAURUS PROC infix namen (THESAURUS CONST thes,
- INT CONST dateityp):
-
-Zweck: Die Prozedur liefert einen Thesaurus, in dem alle Dateinamen enthalten
- sind, die in 'thes' übergeben wurden und die den Dateityp 'dateityp'
- haben.
-
-
-THESAURUS PROC infix namen (THESAURUS CONST thes,
- TEXT CONST infix,
- INT CONST dateityp):
-
- wirkt wie: infix namen (infix namen (thes, infix), dateityp)
-
-
-#ib#install menu#ie#
-PROC install menu (TEXT CONST menukartenname,
- BOOL CONST mit emblem):
-
-Zweck: Mit diesem Befehl wird die Menukarte mit dem Namen 'menukarten­
- name' aus der Task 'gs-MENUKARTEN' in die aktuelle Task kopiert. Die
- Menukarte wird als unbenannter Datenraum an die Task gekoppelt. Der
- benannte Datenraum wird gelöscht. Der Name der angekoppelten Menu­
- karte wird vermerkt.
- Stimmt der Name der angekoppelten Menukarte mit dem Namen der
- angeforderten Menukarte überein, dann wird nicht erneut eine Kopie
- angefordert, sondern auf der bereits angekoppelten Menukarte gearbeitet.
- Hat 'mit emblem' den Wert 'TRUE', dann wird unser 'Software-Emblem'
- während des Ankoppelvorgangs auf dem Bildschirm ausgegeben, bei
- 'FALSE' nicht.
-Fehler: Die Menukarte 'menukartenname' existiert nicht in der Task
- 'gs-MENUKARTEN'.
-
-
-PROC install menu (TEXT CONST menukartenname):
-
- wirkt wie: install menu (TEXT CONST menukartenname, TRUE)
-
-
-#ib#invers#ie#
-TEXT PROC invers (TEXT CONST text):
-
-Zweck: Liefert den Text 'text' invers dargestellt. An den Text wird zuvor ein Leer­
- zeichen angehängt.
-
-
-#ib#kreuz#ie#
-TEXT PROC kreuz:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "Kreuz" (̗)
- ausgegeben wird.
-
-
-PROC kreuz (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" als "Kreuz" ausgegeben werden soll.
-
-
-#ib#line#ie#
-PROC line (WINDOW VAR w, INT CONST anzahl):
-
-Zweck: Vergl. 'menuwindowline'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowline' automatisch gesetzt wird.
-
-
-PROC line (WINDOW VAR w):
-
- wirkt wie: line (w, 1)
-
-
-#ib#menualternative#ie#
-INT PROC menualternative (TEXT CONST infotext,
- auswahlliste,
- zusatztasten,
- INT CONST position,
- BOOL CONST mit abbruch):
-
-Zweck: Mit der Prozedur können dem Benutzer innerhalb des Menubildschirms
- mehrere Alternativen zur Entscheidung angeboten werden, von denen er
- sich für eine entscheiden kann.
- Auf dem Bildschirm wird innerhalb des Menus eine Box ausgegeben.
- Boxbreite und -höhe werden vom System automatisch anhand des über­
- gebenen 'infotext'es (bzw. der 'auswahlliste') festgelegt. Der in 'infotext'
- übergebene Text wird innerhalb der Box angezeigt. Der Text muß den
- gs-DIALOG-Syntax-Regeln (sehen Sie Kap. 5.13) entsprechen - er dient
- ausschließlich der Information des Benutzers.
- In der letzten Zeile der Box wird die 'auswahlliste' angeboten. Zwischen
- jeder notierten Alternative muß in 'auswahlliste' der code "13" eingetra­
- gen sein. In der Box werden zwischen den Alternativen je drei Leerzei­
- chen eingefügt. Es können maximal 10 Alternativen angegeben werden,
- die aber incl. der eingefügten Leerzeichen eine Gesamtbreite von 64
- Zeichen nicht überschreiten dürfen. Über diese Liste erfolgt durch Posi­
- tionierung und anschließendem <RETURN> die Entscheidung für eine
- Alternative. Die Prozedur liefert dann als Zahlenwert die Position der
- gewählten Alternative in der übergebenen Auswahlliste.
- Über 'mit abbruch' wird festgelegt, ob die Alternativentscheidung durch
- die Tastenfolge <ESC><h> abgebrochen werden kann oder nicht. Ist
- das zulässig und geschehen, dann wird der Wert 0 geliefert.
- Über 'zusatztasten' kann noch festgelegt werden, ob die Entscheidung
- auch durch Tippen bestimmter Tasten angegeben werden kann. Sind hier
- Zeichen angegeben und erfolgt die Entscheidung über das Tippen einer
- zugelassenen Taste, dann wird die Position der getippten Taste in der
- unter 'zusatztasten' übergebenen Zeichenkette ermittelt und der Wert 100
- hinzuaddiert (sehen Sie dazu auch Kap. 5.7).
- Nach der Entscheidung wird der Menubildschirm automatisch in den
- Ausgangszustand versetzt.
-
-
-#ib#menuanswer#ie#
-TEXT PROC menuanswer (TEXT CONST infotext,
- vorgabe,
- INT CONST position):
-
-Zweck: Die Prozedur ermöglicht den Dialog mit dem Benutzer innerhalb des
- Menus. Sie liefert einen vom Benutzer eingegebenen (bzw. modifizierten)
- Text/Namen.
- Auf dem Bildschirm wird innerhalb des Menus eine Box ausgegeben.
- Boxbreite und -höhe werden vom System automatisch anhand des über­
- gebenen 'infotext'es festgelegt. Der in 'infotext' übergebene Text wird
- innerhalb der Box angezeigt. Der Text muß den gs-DIALOG-Syntax-Regeln
- (sehen Sie Kap. 5.13) entsprechen.
- In der letzten Zeile der ausgegebenen Box erscheint der Text "Eingabe:".
- Über 'vorgabe' kann dem Benutzer ein Text zum Editieren angeboten
- werden. Mit 'position' wird die relative Lage der Box innerhalb des Menu­
- bildschirms festgelegt (1, 2, 3, 4, 5: sehen Sie dazu Kap. 5.12).
- Die Eingabe kann durch <RETURN> abgeschlossen oder durch
- <ESC><h> abgebrochen werden, in letzterem Falle wird niltext ("")
- geliefert.
- Der gelieferte Wert ist von führenden und folgenden Leerzeichen befreit
- (compress). Es ist nicht möglich, den Namen 'break' einzugeben (sehen
- Sie dazu Kap.5.1).
-
-
-#ib#menuanswerone#ie#
-TEXT PROC menuanswerone (TEXT CONST infotext,
- vorgabe, THESAURUS CONST thesaurus,
- TEXT CONST ueberschrift, hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Die Prozedur ist aus den zwei Prozeduren 'menuanswer' und 'menuone'
- zusammengesetzt (sehen Sie auch dort). In einer Box innerhalb des
- Menus wird der 'infotext' ausgegeben und eine Eingabe erwartet; ggf.
- kann ein Text in 'vorgabe' zum Editieren ausgegeben werden. Wird die
- Eingabe mit <RETURN> abgeschlossen, wird der eingegebene Text
- geliefert. Statt der Eingabe kann der Benutzer sich durch die Tastenfolge
- <ESC><z> auch die in 'thesaurus' übergebenen Namen zur Auswahl
- anbieten lassen. Wird ein Name angekreuzt, wird dieser geliefert; wird die
- Auswahl durch <ESC><h> abgebrochen, wird niltext ("") geliefert.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#menuanswersome#ie#
-THESAURUS PROC menuanswersome (TEXT CONST
- infotext, vorgabe,
- THESAURUS CONST thesaurus,
- TEXT CONST ueberschrift, hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Die Prozedur ist aus den zwei Prozeduren 'menuanswer' und 'menusome'
- zusammengesetzt (sehen Sie auch dort). In einer Box innerhalb des
- Menus wird der 'infotext' ausgegeben und eine Eingabe erwartet; ggf.
- kann ein Text in 'vorgabe' zum Editieren ausgegeben werden. Wird die
- Eingabe mit <RETURN> abgeschlossen, wird der eingegebene Text in
- einem Thesaurus geliefert. Statt der Eingabe kann der Benutzer sich
- durch die Tastenfolge <ESC><z> auch die in 'thesaurus' übergebenen
- Namen zur Auswahl anbieten lassen. Werden Namen angekreuzt, werden
- diese in einem Thesaurus geliefert; wird die Auswahl durch
- <ESC><h> abgebrochen, wird ein leerer Thesaurus geliefert.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#menu archiv checken#ie#
-PROC menu archiv checken:
-
-Zweck: Über diese Prozedur kann das "Checken" von Dateien auf dem Archiv in
- das Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbe­
- dingt Kap. 6.1!
-
-
-#ib#menu archiv grundeinstellung#ie#
-PROC menu archiv grundeinstellung (INT CONST ort):
-
-Zweck: Hierüber wird die Grundeinstellung des Archivpakets vorgenommen: Dazu
- wird als Zieltask das Archiv der eigenen Station eingestellt. Dieses wird
- auch über eine Menunotiz im Menu angezeigt. Die entsprechenden Menu­
- punkte werden aktiviert bzw. deaktiviert. Sehen Sie dazu unbedingt Kap.
- 6.1!
- Über 'ort' wird festgelegt, an welcher Stelle innerhalb des Menus die
- Menunotiz zur Anzeige der Zieltask (und ggf. des Archivnamens) ausge­
- geben wird (sehen Sie dazu Kap. 5.12).
-
-
-#ib#menu archiv holen#ie#
-PROC menu archiv holen:
-
-Zweck: Über diese Prozedur kann das Holen von Dateien vom Archiv in das
- Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbedingt
- Kap. 6.1!
-
-
-#ib#menu archiv initialisieren#ie#
-PROC menu archiv initialisieren:
-
-Zweck: Über diese Prozedur kann das Formatieren/ Initialisieren eines Archivs in
- das Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbe­
- dingt Kap. 6.1!
-
-
-#ib#menu archiv loeschen#ie#
-PROC menu archiv loeschen:
-
-Zweck: Über diese Prozedur kann das Löschen von Dateien auf dem Archiv in das
- Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbedingt
- Kap. 6.1!
-
-
-#ib#menu archiv neue diskette#ie#
-PROC menu archiv neue diskette:
-
-Zweck: Über diese Prozedur kann das Anmelden einer neuen Diskette bei schon
- reserviertem Archiv in das Archiv-Pull-Down-Menu eingebunden werden.
- Sehen Sie dazu unbedingt Kap. 6.1!
-
-
-#ib#menu archiv reservieren#ie#
-PROC menu archiv reservieren:
-
-Zweck: Über diese Prozedur kann die Archivreservierung in das Archiv-Pull-
- Down-Menu eingebunden werden. Sehen Sie dazu unbedingt Kap. 6.1!
-
-
-#ib#menu archiv reservierung aufgeben#ie#
-PROC menu archiv reservierung aufgeben:
-
-Zweck: Über diese Prozedur kann eine bestehende Archivreservierung aus dem
- Menu heraus aufgegeben werden. Sehen Sie dazu unbedingt Kap. 6.1!
-
-
-#ib#menu archiv schreibcheck#ie#
-PROC menu archiv schreibcheck:
-
-Zweck: Über diese Prozedur kann das Schreiben von Dateien auf das Archiv und
- das sich automatisch daran anschließende "Checken" der zuvor geschrie­
- benen Dateien in das Archiv-Pull-Down-Menu eingebunden werden.
- Sehen Sie dazu unbedingt Kap. 6.1!
-
-
-#ib#menu archiv schreiben#ie#
-PROC menu archiv schreiben:
-
-Zweck: Über diese Prozedur kann das Schreiben von Dateien auf das Archiv in
- das Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbe­
- dingt Kap. 6.1!
-
-
-#ib#menu archiv verzeichnis#ie#
-PROC menu archiv verzeichnis:
-
-Zweck: Über diese Prozedur kann die Ausgabe eines Inhaltsverzeichnisses des
- Archivs auf dem Bildschirm in das Archiv-Pull-Down-Menu eingebunden
- werden. Sehen Sie dazu unbedingt Kap. 6.1!
-
-
-#ib#menu archiv verzeichnis drucken#ie#
-PROC menu archiv verzeichnis drucken:
-
-Zweck: Über diese Prozedur kann die Ausgabe eines Inhaltsverzeichnisses des
- Archivs über den Drucker in das Archiv-Pull-Down-Menu eingebunden
- werden. Sehen Sie dazu unbedingt Kap. 6.1!
-
-
-#ib#menu archiv zieltask einstellen#ie#
-PROC menu archiv zieltask einstellen:
-
-Zweck: Über diese Prozedur kann die Festlegung der Zieltask, mit der die Inter­
- taskkommunikation abgewickelt werden soll, in das Archiv-Pull-Down-
- Menu eingebunden werden. Sehen Sie dazu unbedingt Kap. 6.1!
-
-
-#ib#menu dateien aufraeumen#ie#
-PROC menu dateien aufraeumen:
-
-Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der
- Datei erfragt, die aufgeräumt, d.h. reorganisiert werden soll. Existiert
- keine Datei mit dem angegebenen Namen, so erfolgt ein Hinweis darauf.
- Statt der Eingabe des Dateinamens kann auch die Tastenfolge
- <ESC><z> getippt werden. Daraufhin werden alle Dateinamen der
- Task zur Auswahl angeboten. Hier können die gewünschten Dateinamen
- angekreuzt werden. Anschließend werden die angekreuzten Dateien
- reorganisiert. Der Vorgang wird auf dem Bildschirm protokolliert. Am
- Ende des Vorgangs wird der Menubildschirm automatisch regeneriert. Es
- können natürlich nur Dateien des Typs 1003 (Textfiles) reorganisiert
- werden; sofern andere Dateien ausgewählt werden, erfolgt ein Hinweis
- darauf.
-
-
-#ib#menu dateien drucken#ie#
-PROC menu dateien drucken:
-
-Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus (auch bei
- geschachtelten(!)) der Name der Datei erfragt, die gedruckt werden soll.
- Anschließend wird die Datei mit dem angegebenen Namen gedruckt.
- Existiert keine Datei mit dem angegebenen Namen, so erfolgt ein Hinweis
- darauf.
- Statt der Eingabe des Dateinamens kann auch die Tastenfolge
- <ESC><z> getippt werden. Daraufhin werden alle Dateinamen der
- Task zur Auswahl angeboten. Alle angekreuzten Dateien werden an­
- schließend gedruckt. Der Vorgang wird auf dem Bildschirm protokolliert.
- Am Ende wird der Menubildschirm automatisch regeneriert.
-
-
-#ib#menu dateien kopieren#ie#
-PROC menu dateien kopieren:
-
-Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der
- Datei erfragt, die kopiert werden soll. Existiert keine Datei mit dem
- angegebenen Namen, so erfolgt ein Hinweis darauf. Statt der Eingabe des
- Dateinamens kann auch die Tastenfolge <ESC><z> getippt werden.
- Daraufhin werden alle Dateinamen der Task zur Auswahl angeboten. Hier
- kann ein Dateiname angekreuzt werden. Nun wird der Name erfragt, den
- die Kopie erhalten soll. Existiert der Name bereits, erfolgt ein Hinweis
- darauf, sonst wird die Datei kopiert. Der Menubildschirm wird automa­
- tisch regeneriert.
-
-
-#ib#menu dateien loeschen#ie#
-PROC menu dateien loeschen:
-
-Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der
- Datei erfragt, die gelöscht werden soll. Anschließend wird die Datei mit
- dem angegebenen Namen gelöscht, sofern die Sicherheitsabfrage zum
- Löschen mit 'Ja' beantwortet wurde. Existiert keine Datei mit dem ange­
- gebenen Namen, so erfolgt ein Hinweis darauf. Statt der Eingabe des
- Dateinamens kann auch die Tastenfolge <ESC><z> getippt werden.
- Daraufhin werden alle Dateinamen der Task zur Auswahl angeboten. Alle
- angekreuzten Dateien werden anschließend (nach jeweiliger Sicherheits­
- anfrage) gelöscht. Der Vorgang wird auf dem Bildschirm protokolliert. Am
- Ende wird der Menubildschirm automatisch regeneriert.
-
-
-#ib#menu dateien speicherplatz#ie#
-PROC menu dateien speicherplatz:
-
-Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der
- Datei erfragt, deren Speicherplatz ermittelt werden soll. Existiert keine
- Datei mit dem angegebenen Namen, so erfolgt ein Hinweis darauf. Statt
- der Eingabe des Dateinamens kann auch die Tastenfolge <ESC><z>
- getippt werden. Daraufhin werden alle Dateinamen der Task zur Aus­
- wahl angeboten. Hier können die gewünschten Dateinamen angekreuzt
- werden. Anschließend wird der Speicherplatz der angekreuzten Datei(en)
- ermittelt und im Menufenster ausgegeben. Im Anschluß an die Anzeige
- wird der Menubildschirm automatisch regeneriert.
-
-
-#ib#menu dateien umbenennen#ie#
-PROC menu dateien umbenennen:
-
-Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der
- Datei erfragt, die umbenannt werden soll. Existiert keine Datei mit dem
- angegebenen Namen, so erfolgt ein Hinweis darauf. Statt der Eingabe des
- Dateinamens kann auch die Tastenfolge <ESC><z> getippt werden.
- Daraufhin werden alle Dateinamen der Task zur Auswahl angeboten. Hier
- kann ein Dateiname angekreuzt werden. Nun wird der Name erfragt, den
- die Datei anschließend erhalten soll. Existiert der Name bereits, erfolgt ein
- Hinweis darauf, sonst wird die Datei umbenannt. Der Menubildschirm
- wird automatisch regeneriert.
-
-
-#ib#menu dateien verzeichnis#ie#
-PROC menu dateien verzeichnis
-
-Zweck: Mit der Prozedur kann innerhalb des aktuellen Menus ein Verzeichnis der
- Dateien der eigenen Task ausgegeben werden. Nach Verlassen des Ver­
- zeichnisses durch <ESC><q> wird der Menubildschirm automatisch
- regeneriert.
-
-
-#ib#menufootnote#ie#
-PROC menufootnote (TEXT CONST fussnotentext):
-
-Zweck: Mit der Prozedur kann der Text in der "Fußzeile" des aktuellen Menubild­
- schirms (zumeist Hinweise an den Benutzer) ersetzt werden. Der vorhan­
- dene Text wird gelöscht und stattdessen 'fussnotentext' notiert. Der Text
- bleibt so lange erhalten, bis er durch eine andere selbstgesetzte Fußnote
- ('menufootnote') oder durch die alte vom System gesetzte Fußnote ('old
- menufootnote'; sehen Sie auch dort) überschrieben wird. Sofern
- gs-DIALOG-Prozeduren aufgerufen werden, die selbst Ausgaben in der
- Fußzeile machen, wird die durch 'menufootnote' gesetzte Fußnote eben­
- falls überschrieben. Wenn der Text länger als die aktuelle Menubild­
- schirmbreite ist,wird der Text abgeschnitten. Damit der Text auch in
- geschachtelten Menus vollständig ausgegeben werden kann, sollte er nicht
- länger als 69 Zeichen sein.
-
-
-#ib#menufunktion#ie#
-PROC menufunktion (TEXT CONST kuerzel,
- punktbezeichnung,
- prozedurname,
- infotext):
-
-Zweck: Der Befehl wird für die Generierung von Menukarten benötigt. Mit diesem
- Befehl wird in das aktuell geöffnete Menu unter dem aktuellen Oberbe­
- griff eine Verarbeitungsfunktion eingetragen. Mit 'kuerzel' wird die Taste
- bestimmt, über die die Verarbeitungsfunktion direkt aktiviert werden
- kann. 'kuerzel' muß innerhalb eines Pull-Down-Menus eindeutig gewählt
- sein! Unter 'punktbezeichnung' wird der Text eingetragen, der im Pull-
- Down-Menu ausgegeben werden soll. In 'prozedurname' steht der Name
- der Prozedur (als Text(!)), die bei Aktivierung des Menupunktes ausge­
- führt werden soll. In 'infotext' steht der Text, der als Information zu
- diesem Menupunkt bei Tippen der <?>-Taste angezeigt werden soll.
-Fehler: Menupunkt-Kürzel ist länger als ein Zeichen.
- Menupunktkürzel kommt mehrfach vor.
- Menupunktbezeichnung ist zu lang (> 60 Zeichen).
- Zu viele Menupunkte in einem Pull-Down-Menu (> 15).
-
-
-#ib#menuinfo#ie#
-PROC menuinfo (TEXT CONST infotext, INT CONST
- position, timelimit):
-
-Zweck: Die Prozedur ermöglicht es, innerhalb des Menus einen Hinweis (Infor­
- mationstext) auszugeben. Im Menubildschirm erscheint der 'infotext' in
- einer Box. Boxbreite und -höhe werden vom System automatisch anhand
- des übergebenen 'infotext'es festgelegt. 'infotext' muß den gs-DIALOG-
- Syntax-Regeln (sehen Sie Kap. 5.13) entsprechen. Mit 'position' wird die
- relative Lage der Box innerhalb des Menubildschirms festgelegt (1, 2, 3,
- 4, 5: sehen Sie dazu Kap. 5.12). Mit 'timelimit' kann die Zeitdauer (in
- Zehntelsekunden) festgelegt werden, für die der Hinweis höchstens er­
- scheint. Die Anzeige kann vom Benutzer durch Tippen einer beliebigen
- Taste abgebrochen werden.
-
-
-PROC menuinfo (TEXT CONST infotext,
- INT CONST position):
-
- wirkt wie: menuinfo (infotext, position, maxint)
-
-
-PROC menuinfo (TEXT CONST infotext):
-
- wirkt wie: menuinfo (infotext, 5)
-
-
-#ib#menukartenname#ie#
-TEXT PROC menukartenname:#u#(*)#e#
-Zweck: Liefert den Namen der zur zeit angekoppelten Menukarte. Ist keine
- Menukarte angekoppelt, wird niltext ("") geliefert.
-
-
-#ib#menuno#ie#
-BOOL PROC menuno (TEXT CONST frage,
- INT CONST position):
-
- wirkt wie: NOT menuyes (frage, position)
-
-
-#ib#menuone#ie#
-TEXT PROC menuone (THESAURUS CONST thesaurus,
- TEXT CONST ueberschrift,
- hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Durch die Prozedur werden dem Benutzer innerhalb des Menubild­
- schirms Namen zur Auswahl angeboten. Nach Ankreuzen eines Namens
- wird die Auswahl automatisch verlassen. Der angekreuzte Name wird
- geliefert. Wird die Auswahl durch <ESC><h> abgebrochen, so wird
- niltext ("") geliefert. In 'thesaurus' wird ein THESAURUS mit den Namen
- übergeben, die zur Auswahl angeboten werden sollen (sehen Sie dazu
- auch Kap. 5.14). Die beiden Texte 'ueberschrift' und 'hinweis' erscheinen
- zur Kennzeichnung im Kopf der Auswahlliste: 'ueberschrift' zentriert und
- invers dargestellt, 'hinweis' nur zentriert. Hat 'mit reinigung' den Wert
- TRUE, so wird nach der Auswahl der Menubildschirm automatisch wie­
- deraufgebaut, bei FALSE wird darauf verzichtet.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#menusome#ie#
-THESAURUS PROC menusome (THESAURUS CONST
- thesaurus,
- TEXT CONST ueberschrift,
- hinweis,
- BOOL CONST mit reinigung):
-
-Zweck: Durch die Prozedur werden dem Benutzer innerhalb des Menubild­
- schirms Namen zur Auswahl angeboten. Die Auswahl kann durch die
- Tastenfolge <ESC><q> verlassen werden. Der/ die angekreuzte(n)
- Name(n) wird/werden in einem Thesaurus geliefert. Wird die Auswahl
- durch die Tastenfolge <ESC><h> abgebrochen oder wurde kein Name
- angekreuzt, dann wird ein leerer Thesaurus geliefert. In 'thesaurus' wird
- ein Thesaurus mit den Namen übergeben, die zur Auswahl angeboten
- werden sollen (sehen Sie dazu auch Kap. 5.14). Die beiden Texte
- 'ueberschrift' und 'hinweis' erscheinen zur Kennzeichnung im Kopf der
- Auswahlliste: 'ueberschrift' zentriert und invers dargestellt, 'hinweis' nur
- zentriert. Hat 'mit reinigung' den Wert TRUE, so wird nach der Auswahl
- der Menubildschirm automatisch wiederaufgebaut, bei FALSE wird darauf
- verzichtet.
-Fehler: Fenster für Auswahl zu klein (x < 56, y < 15)
-
-
-#ib#menuwindowcenter#ie#
-TEXT PROC menuwindowcenter (TEXT CONST text):
-
-Zweck: Die Prozedur liefert einen Text, der so lang ist, wie das aktuelle Menufen­
- ster breit ist. Dazu wird 'text' so mit Leerzeichen "ummantelt" daß 'text'
- etwa in der Mitte zu stehen kommt. Steht der Cursor bei Ausgabe dieses
- Textes am Anfang der Zeile, erscheint der Text zentriert in der Zeile
- (vorhandene Zeileninhalte werden dadurch überschrieben (der Cursor
- steht dann auf dem rechten Fensterrand!).
-
-
-#ib#menuwindowcursor#ie#
-PROC menuwindowcursor (INT CONST spalte, zeile):
-
-Zweck: Mit diesem Befehl kann der Cursor innerhalb des aktuellen Menufensters
- positioniert werden. Ein "normales" Menufenster ist 77 Zeichen breit und
- 20 Zeichen hoch; ein Menufenster in einem geschachtelten Menu ist 71
- Zeichen breit und 16 Zeichen hoch). (Sehen Sie auch die Informations­
- prozeduren 'get menuwindowcursor' und 'remaining menuwindowlines').
-Fehler: Wird außerhalb des aktuellen Menufensters positioniert, wird der Fenster­
- inhalt gelöscht und die Fensterposition (1,1) angenommen.
-
-
-#ib#menuwindowedit#ie#
-PROC menuwindowedit (TEXT CONST dateiname):
-
-Zweck: Durch den Befehl wird innerhalb des Menus ein umrandetes Fenster
- geöffnet und die Datei mit dem Namen 'dateiname' zum Editieren ausge­
- geben. Auf die Größe des Menufensters kann kein Einfluß genommen
- werden - sie wird selbständig vom System gesetzt ("normales" Menu: 77
- Zeichen breit und 20 Zeichen hoch; geschachteltes Menu 71 Zeichen
- breit und 16 Zeichen hoch).
-Fehler: Die Datei mit dem Namen 'dateiname' existiert nicht.
-
-
-PROC menuwindowedit (FILE VAR f):
-
-Zweck: Vergl. obige 'menuwindowedit'-Prozedur. Die Datei 'f' muß mit der Verar­
- beitungsart 'modify' assoziiert worden sein.
-
-
-#ib#menuwindoweditget#ie#
-PROC menuwindoweditget (TEXT VAR text):#u#(*)#e#
-Zweck: Vergl. 'menuwindowget (TEXT VAR text)' Zusätzlich kann hier in 'text' ein
- Text zum Editieren vorgegeben werden.
-Fehler: Text nicht initialisiert.
-
-
-#ib#menuwindowget#ie#
-PROC menuwindowget (TEXT VAR text):
-
-Zweck: Mit der Prozedur können Texte innerhalb des Menufensters eingelesen
- werden (INTEGER- und REAL-Werte müssen ggf. "von Hand" konvertiert
- werden). Die Eingabe wird durch <RETURN> abgeschlossen. Es muß
- mindestens ein Zeichen (ungleich Leerzeichen) eingegeben werden. Von
- der Eingabe werden die führenden Leerzeichen abgeschnitten. Ist der
- einzugebende Text länger als die noch verbleibende Restzeile, so wird der
- Text in der Restzeile gescrollt. Sind in der aktuellen Zeile weniger als 7
- Zeichenpositionen für die Eingabe vorhanden, so wird automatisch für die
- Eingabe an den Anfang der nächsten Zeile positioniert.
-
-
-#ib#menuwindowline#ie#
-PROC menuwindowline (INT CONST anzahl):
-
-Zweck: Die Prozedur 'menuwindowline' hat innerhalb des Menubildschirms eine
- ähnliche Wirkung wie die Prozedur 'line' auf dem Gesamtbildschirm. Es
- werden 'anzahl' Zeilenwechsel vorgenommen. Wird allerdings die untere
- Grenze des Menubildschirms überschritten, dann rollt (scrollt) der Bild­
- schirm nicht die entsprechende Anzahl Zeilen nach oben, statt dessen
- wird der Fensterinhalt gelöscht und die Operation oben im Fenster fort­
- gesetzt.
-
-
-PROC menuwindowline:
-
- wirkt wie: menuwindowline (1)
-
-
-#ib#menuwindowout#ie#
-PROC menuwindowout (TEXT CONST text):
-
-Zweck: Mit der Prozedur können innerhalb des aktuellen Menufensters Texte
- ausgegeben werden. Sollen INTEGER- oder REAL-Werte ausgegeben wer­
- den, müssen diese zunächst in Texte konvertiert werden. Ist der Text
- länger als die verbleibende Restzeile innerhalb des aktuellen Menufen­
- sters, so wird der Text bis zum Fensterende (rechts) ausgegeben und die
- Ausgabe am Anfang der nächsten Zeile fortgesetzt. Sobald die letzte Posi­
- tion des aktuellen Menufensters (unten rechts in der Fensterecke) be­
- schrieben wurde, wird der Fensterinhalt gelöscht und die Ausgabe an der
- Position (1,1) des Fensters fortgesetzt.
-
-
-#ib#menuwindowpage#ie#
-PROC menuwindowpage:
-
-Zweck: Durch den Befehl 'menuwindowpage' wird der Inhalt des Fensters inner­
- halb des aktuellen Menus gelöscht (das "Menufenster") (vergleichen Sie
- auch 'show menuwindow'). Der Rahmen des Fensters (der bei 'show
- menuwindow' ausgegeben wurde), bleibt bestehen, da er nicht mit zum
- eigentlichen Fenster gehört. Durch den Befehl wird der Menubildschirm
- nicht rekonstruiert! Soll das Fenster geschlossen werden, ist der Befehl
- 'regenerate menuscreen' zu geben.
-
-
-#ib#menuwindowshow#ie#
-PROC menuwindowshow (TEXT CONST dateiname):
-
-Zweck: Vergl. 'menuwindowedit'-Prozedur. Die Datei 'dateiname' kann nicht
- schreibend verändert werden.
-
-
-PROC menuwindowshow (FILE VAR f):
-
-Zweck: Vergl. obige 'menuwindowshow'-Prozedur. Die Datei 'f' muß mit der
- Verarbeitungsart 'modify' assoziiert worden sein.
-
-
-#ib#menuwindowstop#ie#
-PROC menuwindowstop (INT CONST zeilenzahl):
-
-Zweck: Innerhalb des Menufensters werden 'zeilenzahl' Zeilenwechsel vorge­
- nommen und der Text " Zum Weitermachen bitte irgendeine Taste tip­
- pen!" ausgegeben. Danach wird so lange gewartet, bis eine Taste getippt
- wird.
-
-
-PROC menuwindowstop:
-
- wirkt wie: menuwindowstop (2)
-
-
-#ib#menuyes#ie#
-BOOL PROC menuyes (TEXT CONST frage,
- INT CONST position):
-
-Zweck: Die Prozedur dient dazu, innerhalb des Menus eine Ja/Nein-Entscheidung
- des Benutzers einzuholen. Im Gegensatz zur Standardprozedur 'yes'
- arbeitet diese Prozedur unabhängig davon, ob der Kommandodialog ein-
- oder ausgeschaltet ist. Auf dem Bildschirm wird innerhalb des Menus eine
- Box ausgegeben. Boxbreite und -höhe werden vom System automatisch
- anhand der übergebenen 'frage' festgelegt. Der in 'frage' übergebene Text
- wird um ein Fragezeichen (?) ergänzt und innerhalb der Box angezeigt.
- Der Text muß den gs-DIALOG-Syntax-Regeln (sehen Sie Kap. 5.13)
- entsprechen. In der letzten Zeile der ausgegebenen Box erscheint der Text
- "Ja    Nein". Die Prozedur 'menuyes' liefert TRUE, wenn mit 'Ja' geantwor­
- tet wurde und FALSE, wenn mit 'Nein' geantwortet wurde (durch Tippen
- der Anfangsbuchstaben oder Positionierung auf die Antwort und ab­
- schließendes <RETURN>). Der Menubildschirm wird automatisch
- regeneriert. Mit 'position' wird die relative Lage der Box innerhalb des
- Menubildschirms festgelegt (1, 2, 3, 4, 5: sehen Sie dazu Kap. 5.12).
-
-
-#ib#no#ie#
-BOOL PROC no (WINDOW VAR w, TEXT CONST frage):
-
- wirkt wie: NOT yes (w, frage).
-
-
-#ib#not empty#ie#
-BOOL PROC not empty (THESAURUS CONST thes):
-
-Zweck: Dient der Prüfung, ob ein Thesaurus Namen enthält oder nicht. Die
- Prozedur liefert TRUE, wenn Namen in 'thes' enthalten sind, sonst FALSE.
-
-
-#ib#oberbegriff#ie#
-PROC oberbegriff (TEXT CONST punktname,
- startprocname,
- leaveprocname):
-
-Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Mit diesem
- Befehl wird die Bezeichnung 'punktname' in die Kopfzeile des aktuell
- geöffneten Menus eingetragen. Die in 'startprocname' übergebene Proze­
- dur wird ausgeführt, bevor das zugehörige Pull-Down-Menu auf dem
- Bildschirm "ausgeklappt" wird; die in 'leaveprocname' übergebene Pro­
- zedur, wenn in ein anderes Pull-Down-Menu gewechselt wird (beachten
- Sie, daß die Prozedurnamen als Texte(!) übergeben werden).
-Fehler: Menukarte noch nicht geöffnet ('oeffne menukarte' fehlt).
- Menu noch nicht geöffnet ('oeffne menu' fehlt).
- Zu viele Oberbegriffe im Menu (> 10).
- Die Kopfzeile ist zu lang (> 70 Zeichen).
-
-
-PROC oberbegriff (TEXT CONST punktname):
-
- wirkt wie: oberbegriff (punktname, "", "")
-
-
-#ib#oeffne menu#ie#
-PROC oeffne menu (TEXT CONST menuname,
- einstiegsproc,
- ausstiegsproc, infotext1,
- infotext2, infotext3):
-
-Zweck: Der Befehl wird für die Generierung von Menukarten benötigt. Durch den
- Befehl wird innerhalb der Menukarte ein Menu mit dem Namen
- 'menuname' angelegt. Über diesen Namen kann das Menu auch später
- angesprochen werden (mit 'handle menu'). Die unter 'einstiegsproc'
- übergebene Prozedur wird bei der Aktivierung des Menus ausgeführt, die
- unter 'ausstiegsproc' übergebene Prozedur, wenn das Menu (mit
- <ESC><q>) verlassen wird (beachten Sie, daß die Prozedurnamen als
- Texte(!) übergeben werden!). In 'infotext1', 'infotext2' und 'infotext3'
- können Hinweise eingetragen werden, die bei Erscheinen des Menus auf
- dem Bildschirm für kurze Zeit in einer Box rechts unten angezeigt wer­
- den. Die Erstellung der Boxtexte ist an genaue Regeln gebunden (sehen
- Sie dazu Kap. 5.13). Sehen Sie auch bei 'schliesse menu'.
-
-
-PROC oeffne menu (TEXT CONST menuname,
- einstiegsproc,
- ausstiegsproc):
-
- wirkt wie: oeffne menu (menuname, einstiegsproc,
- ausstiegsproc, "", "", "")
-
-
-PROC oeffne menu (TEXT CONST menuname):
-
- wirkt wie: oeffne menu (menuname, "", "")
-
-
-#ib#oeffne menukarte#ie#
-PROC oeffne menukarte (TEXT CONST menukartenname):
-
-Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Ein Pro­
- gramm zur Erstellung einer Menukarte muß immer mit diesem Befehl
- beginnen. Durch den Befehl wird ein Datenraum mit dem Namen
- 'gs-MENUKARTE:menukartenname' eingerichtet; der Wortbestandteil
- 'gs-MENUKARTE:' wird dabei automatisch vor den angegebenen Namen
- gesetzt (sehen Sie auch 'schliesse menukarte').
-Fehler: Eine Menukarte mit dem angegebenen Namen existiert bereits in der
- Task. Bei der Generierung wird dann angefragt, ob die alte Menukarte
- gelöscht werden darf.
-
-
-#ib#ohne praefix#ie#
-THESAURUS PROC ohne praefix (THESAURUS CONST thes,
- TEXT CONST praefix):
-
-Zweck: Liefert in einem Thesaurus alle Namen aus dem übergebenen Thesaurus
- 'thes', die mit dem Wortbestandteil 'praefix' beginnen. Bei den gelie­
- ferten Namen ist dieser führende Wortbestandteil entfernt.
-
-
-#ib#old menufootnote#ie#
-PROC old menufootnote:
-
-Zweck: Der aktuelle Text in der Fußzeile des aktuellen Menubildschirms wird
- durch den hier zuletzt vom System gesetzten Text überschrieben. Die
- Prozedur wird benutzt, um eine selbstgesetzte Fußnote (sehen Sie auch
- 'write menunotice') zu löschen.
-
-
-#ib#out#ie#
-PROC out (WINDOW VAR w, TEXT CONST text):
-
-Zweck: Vergl. 'menuwindowout'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowout' automatisch gesetzt wird.
-
-
-#ib#out frame#ie#
-PROC out frame (WINDOW VAR fenster):
-
-Zweck: Um den durch 'fenster' angegebenen Bildschirmbereich wird ein Rahmen
- gezogen.
-
-
-#ib#out footnote#ie#
-PROC out footnote (WINDOW VAR fenster,
- TEXT CONST textzeile):
-
-Zweck: In der untersten Zeile des Fensters 'fenster' wird 'textzeile' ausgegeben, in
- der vorletzten Zeile eine Trennzeile. Sehen Sie auch 'erase footnote'.
-
-
-#ib#page#ie#
-PROC page (WINDOW VAR fenster,
- BOOL CONST mit rahmen):
-
-Zweck: Der durch 'fenster' beschriebene Fensterbereich wird gelöscht. Hat 'mit
- rahmen' den Wert TRUE, wird der Rahmenbereich ebenfalls gelöscht.
-
-
-PROC page (WINDOW VAR fenster):
-
- wirkt wie: page (fenster, FALSE).
-
-
-#ib#put#ie#
-PROC put (WINDOW VAR w, TEXT CONST text):
-
- wirkt wie: out (w, text + " ")
-
-
-PROC put (WINDOW VAR w, INT CONST zahl):
-
- wirkt wie: put (w, text (zahl))
-
-
-PROC put (WINDOW VAR w, REAL CONST zahl):
-
- wirkt wie: put (w, text (zahl))
-
-
-#ib#putline#ie#
-PROC putline (WINDOW VAR w, TEXT CONST text):
-
- wirkt wie: put (w, text); line (w)
-
-
-#ib#regenerate menuscreen#ie#
-PROC regenerate menuscreen:
-
-Zweck: Der Befehl wird verwendet, um den Menubildschirm (z.B. nach der
- Nutzung für anwendungsbezogene Ausgaben) in seinem letzten Zustand
- zu reproduzieren. Der Bildschirm wird gelöscht. Anschließend wird der
- aktuelle Menubildschirm vollständig neu aufgebaut - auch bei geschach­
- telten Menus. (sehen Sie auch 'refresh submenu')
-
-
-#ib#refresh submenu#ie#
-PROC refresh submenu:
-
-Zweck: Der Befehl dient dazu, das aktuelle Pull-Down-Menu (z.B. nach Über­
- schreiben) und ggf. eine gesetzte Menunotiz erneut auf den Bildschirm zu
- schreiben. Betroffen ist nur der Bereich zwischen den Trennlinien der
- Kopf- und Fußzeile. Für das vorausgehende Löschen verwendeter Bild­
- schirmbereich ist der Programmierer verantwortlich. Im Gegensatz zu
- 'regenerate menuscreen' findet hier kein kompletter Bildschirmaufbau
- statt. Wenn möglich, dann ist dieser Befehl dem Befehl 'regenerate
- menuscreen' wegen des geringeren Zeitaufwandes vorzuziehen.
-
-
-#ib#remaining lines#ie#
-INT PROC remaining lines (WINDOW VAR w):
-
-Zweck: Die Prozedur liefert die Anzahl der Zeilen im Fenster 'w', die noch
- zwischen Cursor und unterer Fenstergrenze vorhanden sind.
-
-
-#ib#remaining menuwindowlines#ie#
-INT PROC remaining menuwindowlines
-
-Zweck: Die Prozedur liefert die Anzahl der Zeilen im aktuellen Menufenster, die
- noch zwischen Cursor und unterer Fenstergrenze vorhanden sind.
-
-
-#ib#reset dialog#ie#
-PROC reset dialog:
-
-Zweck: Das Menusystem wird in den Anfangszustand versetzt. (Keine Menukarte
- angekoppelt; Anzahl der geöffneten Menus: 0)
-
-
-#ib#schliesse menu#ie#
-PROC schliesse menu:
-
-Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Durch den
- Befehl wird ein Menu in einer Menukarte abgeschlossen (sehen Sie auch
- 'oeffne menu')
-
-
-#ib#schliesse menukarte#ie#
-PROC schliesse menukarte
-
-Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Durch den
- Befehl wird eine Menukarte abgeschlossen (sehen Sie auch 'oeffne
- menukarte')
-
-
-#ib#senkrecht#ie#
-TEXT PROC senkrecht:
-
- Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als senkrechter
- Strich (�) ausgegeben wird.
-
-
-PROC senkrecht (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" als senkrechter Strich ausgegeben werden soll.
-
-
-#ib#show#ie#
-PROC show (WINDOW VAR fenster):
-
-Zweck: Das Fenster 'fenster' wird auf dem Bildschirm angezeigt (das Fenster
- muß zuvor durch 'window' initialisiert worden sein). Um den angegebe­
- nen Fensterbereich wird automatisch ein Rahmen gezogen. Der Rahmen
- gehört nicht zum Fenster dazu! (Soll das Fenster ohne Rahmen ausgege­
- ben werden, dann muß der Befehl 'page' verwendet werden.) Der Bereich
- innerhalb des Rahmens (Fensterbereich) wird gelöscht.
-
-
-#ib#show#ie#
-PROC show (WINDOW VAR w, TEXT CONST dateiname):
-
-Zweck: Vergl. 'menuwindowshow'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowshow' automatisch gesetzt wird.
-
-
-PROC show (WINDOW VAR w, FILE VAR f):
-
-Zweck: Vergl. 'menuwindowshow'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowshow' automatisch gesetzt wird.
-
-
-#ib#show menuwindow#ie#
-PROC show menuwindow:
-
-Zweck: Durch den Befehl 'show menuwindow' wird ein entsprechender Rahmen
- innerhalb des Menubildschirms ausgegeben und der Bereich innerhalb
- dieses Rahmens (das Fenster) gelöscht (sehen Sie auch 'menuwindow­
- page'). Innerhalb des Fensters können anschließend verschiedene Opera­
- tionen ausgeführt werden. Auf die Größe des Menufensters kann kein
- Einfluß genommen werden - sie wird selbständig vom System gesetzt
- ("normales" Menu: 77 Zeichen breit und 20 Zeichen hoch; geschachteltes
- Menu 71 Zeichen breit und 16 Zeichen hoch).
-
-
-#ib#stdinfoedit#ie#
-PROC stdinfoedit (TEXT CONST dateiname):#u#(*)#e#
-Zweck: Löscht den Bildschirm und bietet die Datei 'dateiname' in einem festge­
- legten zum Editieren an. In der Fußzeile wird die Information "Info:
- <ESC><?>  Verlassen: <ESC><q>" angezeigt. Nach Tippen von
- <ESC><?> werden Editorinformationen in den Bildschirm einge­
- blendet.
-
-
-PROC stdinfoedit (FILE VAR f):#u#(*)#e#
-Zweck: Wie obige 'stdinfoedit'-Prozedur'. Die Datei 'f' muß mit der Verarbei­
- tungsart 'modify' assoziiert worden sein.
-
-
-PROC stdinfoedit (TEXT CONST dateiname,
- INT CONST oberste zeile):#u#(*)#e#
-Zweck: Wie obige Prozedur (die wie 'stdwinfoedit (w, 1)' wirkt). Allerdings kön­
- nen bis zu zwei Zeilen oben auf dem Bildschirm unbenutzt bleiben (z.B.
- um die Kopfzeile des Menus weiterhin anzuzeigen). 'oberste zeile' gibt an,
- welche Bildschirmzeile die erste von dieser Prozedur benutzte ist
- (1<= oberste zeile<=3).
-
-
-PROC stdinfoedit (FILE VAR f,
- INT CONST oberste zeile):#u#(*)#e#
-Zweck: Wie obige 'stdinfoedit'-Prozedur'. Die Datei 'f' muß mit der Verarbei­
- tungsart 'modify' assoziiert worden sein.
-
-
-#ib#stop#ie#
-PROC stop (WINDOW VAR w, INT CONST zeilenzahl):
-
-Zweck: Vergl. 'menuwindowstop'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowstop' automatisch gesetzt wird.
-
-
-PROC stop (WINDOW VAR w):
-
- wirkt wie: stop (w, 1).
-
-
-#ib#testinstallation#ie#
-PROC testinstallation (TEXT CONST menutafelname):
-
-Zweck: Die Menutafel mit dem Namen 'menutafelname' (muß mit dem
- 'gs-MENUKARTE:' beginnen!) wird als aktuelle Menutafel an gs-DIALOG
- gekoppelt. Durch den Befehl wird die angegebene Menutafel zur Task
- 'gs-MENUAKRTEN' geschickt. Dem Namen wird zur Kennzeichnung noch
- der Taskname der Sendertask angehängt (dadurch können sich bei
- Multi-User-Betrieb verschiedene Anwender mit gleichen Menukarten­
- namen nicht stören). Die Menukarte wird anschließend in jedem Fall
- "frisch" angekoppelt. Außerdem bleibt die Menukarte (als benannter
- Datenraum) in der Task erhalten!
- (Mit dem Befehl 'handle menu' kann nun ein Menu aus der Menukarte
- zur Ausführung gebracht werden oder mit 'anwendungstext' auf in die
- Menukarte ausgelagerte Texte zugegriffen werden.)
- Hinweis: Von Zeit zu Zeit muß der Systembetreuer die überflüssigen
- Menukarten aus der Task 'gs-MENUKARTEN' entfernen, da die Anwender
- aus Ihrer Task die Karten nicht löschen können!
-Fehler: 'menutafelname' gibt es nicht!
- 'menutafelname' hat falsche(n) Typ/Bezeichnung (keine
- gs-MENUKARTE)!
-
-
-#ib#trennlinie#ie#
-PROC trennlinie:
-
-Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Durch den
- Befehl wird unter dem aktuellen Oberbegriff eine Trennlinie zur opti­
- schen Trennung einzelner Menupunkte eingetragen. Die Trennlinie belegt
- den gleichen Platz wie eine Verarbeitungsfunktion.
-Fehler: Zu viele Menupunkte in einem Pull-Down-Menu (maximal 15 incl. der
- Trennlinien!).
-
-
-#ib#textprozedur#ie#
-PROC textprozedur (TEXT CONST dateiname,
- prozedurname):
-
-Zweck: Der Befehl wird benötigt, um Texte entsprechend der gs-DIALOG-Syntax
- aufzuarbeiten. Der in die Datei 'dateiname' geschrieben Text wird bear­
- beitet. Die Prozedur eignet sich insbesondere dafür, Informationstexte
- aufzuarbeiten, die zu den einzelnen Menufunktionen ausgegeben werden,
- wenn der Benutzer die Tastenfolge <ESC><?> tippt (sehen Sie auch
- 'textzeile'). Der aufbereitete Text steht anschließend in der Datei 'datei­
- name.a'. Der Text ist in eine Textprozedur "verpackt", die den Namen hat,
- der als zweiter Parameter übergeben wird.
- Die Zeilen werden dabei so zugeschnitten, daß Sie in einer Box in das
- aktuelle Menu eingeblendet werden können. Boxbreite und -höhe werden
- automatisch gesetzt (max. 65 Zeichen breit und 14 Zeichen hoch)); die
- Zeilen werden geblockt, sofern in der Datei keine Absatzmarkierung
- (<RETURN>) am Ende der Zeile vorhanden ist. Soll eine Zeile zentriert
- werden, so muß als erstes Zeichen der Zeile das Zeichen '%' notiert sein -
- die Zeile muß durch eine Absatzmarke abgeschlossen sein. Textpassagen,
- die invers (markiert) dargestellt werden sollen, müssen duch das Zeichen
- '$' eingeleitet und durch das Zeichen '&' abgeschlossen werden. Markier­
- te Textpassagen dürfen (nach dem Zuschnitt!) nicht über Zeilengrenzen
- hinausgehen!
-Fehler: Datei 'dateiname' existiert nicht!
- Fonttabelle 'fonttab.gs-Menu-Generator' existiert nicht! (Fonttabelle von
- gs-Menu-Generator-Diskette in die Task 'configurator' laden!)
- Text ist zu lang - bitte kürzen! (Text darf in aufbereiteter Form maximal
- 14 Zeilen umfassen!)
- Zeilenformatierung mit <ESC> abgebrochen!
-
-
-
-#ib#textzeile#ie#
-PROC textzeile (TEXT CONST dateiname):
-
-Zweck: Der Befehl wird benötigt, um Texte entsprechend der gs-DIALOG-Syntax
- aufzuarbeiten. Der in die Datei 'dateiname' geschrieben Text wird bear­
- beitet. Die Prozedur eignet sich insbesondere dafür, anwendungsbezogene
- Texte aufzuarbeiten, die in die Menukarte ausgelagert werden sollen
- (sehen Sie auch 'textprozedur'). Der aufbereitete Text steht anschließend
- in der Datei 'dateiname.a' in einer Zeile notiert.
-
-
-#ib#waagerecht#ie#
-TEXT PROC waagerecht:
-
-Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als waagerechter
- Strich (̇) ausgegeben wird.
-
-
-PROC waagerecht (TEXT CONST zeichen):
-
-Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar­
- stellung der "Kästen" als waagerechter Strich ausgegeben werden soll.
-
-
-#ib#window#ie#
-WINDOW PROC window (INT CONST x, y, xsize, ysize):
-
-Zweck: Einer Fenstervariablen (WINDOW VAR name) wird die Lage und Größe
- zugeordnet (über den Zuweisungsoperator ':='). Gleichzeitig wird das
- Fenster initialisiert.
- Mit den ersten beiden Parametern wird die Lage der linken oberen Ecke
- des Fensters bestimmt (x: Spalte; y: Zeile). Mit 'xsize' wird die Fenster­
- breite, mit 'ysize' die Fensterhöhe festgelegt.
- Das Fenster wird noch nicht(!) angezeigt (sehen Sie dazu 'show' und
- 'page'). Ein Rahmen wird nicht zum Fenster gezählt; er kann aber mit
- der Prozedur 'show' ausgegeben werden. Ein Fenster darf nicht breiter als
- 80 und höher als 24 Zeichen sein. Umrahmte Fenster unterliegen weite­
- ren Einschränkungen (sehen Sie auch 'show'). Ein Fenster muß min­
- destens 6 Zeichen breit und 3 Zeichen hoch sein.
-Fehler: 'Window' ungültig
-
-
-#ib#write menunotice#ie#
-PROC write menunotice (TEXT CONST notiztext,
- INT CONST position):
-
-Zweck: Die Prozedur dient dazu, innerhalb des Menus in einer Box einen "dauer­
- haften Informationstext" auszugeben. Die Box bleibt nämlich so lange
- bestehen, bis sie explizit gelöscht (sehen Sie auch 'erase menunotice')
- oder durch einen neuen Notiztext überschrieben wird. Wenn der Bild­
- schirm durch gs-DIALOG-Prozeduren überschrieben wird, wird die
- Menunotiz ebenfalls ständig mitaufgefrischt und auch, wenn der Befehl
- 'regenerate menuscreen' oder 'refresh submenu' gegeben wird (Sehen Sie
- im Gegensatz dazu auch 'menuinfo' ("kurzzeitiger Informationstext").
- Im Menubildschirm erscheint der 'infotext' in einer Box. Boxbreite und
- -höhe werden vom System automatisch anhand des übergebenen 'notiz­
- text'es festgelegt. 'notiztext' muß den gs-DIALOG-Syntax-Regeln (sehen Sie
- Kap. 5.13) entsprechen. Mit 'position' wird die relative Lage der Box
- innerhalb des Menubildschirms festgelegt (1, 2, 3, 4, 5: sehen Sie dazu
- Kap. 5.12). In einem Menu kann zu einem Zeitpunkt nur eine Menunotiz
- abgelegt werden. Durch ein erneutes 'write menunotice' wir eine beste­
- hende Menunotiz überschrieben.
-
-
-#ib#yes#ie#
-BOOL PROC yes (WINDOW VAR w, TEXT CONST frage):
-
-Zweck: Vergl. 'menuwindowyes'. Hier wird nur zusätzlich das Fenster festgelegt,
- das bei 'menuwindowyes' automatisch gesetzt wird.
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.impressum b/doc/menugenerator/menu-generator handbuch.impressum
deleted file mode 100644
index 404826d..0000000
--- a/doc/menugenerator/menu-generator handbuch.impressum
+++ /dev/null
@@ -1,88 +0,0 @@
-____________________________________________________________________________
-
-
-#on("b")##on ("u")#
-#center#Betriebssystem E U M E L
-#off ("u")#
-
-
-#center#ls Menü-Generator
-
-
-
-
-#off("b")#
-#center#Lizenzfreie Software der
-#on ("b")#
-
-#center#Gesellschaft für Mathematik und Datenverarbeitung mbH,
-#center#5205 Sankt Augustin
-
-
-#off("b")#
-#center#Die Nutzung der Software ist nur im Schul- und Hochschulbereich für
-#center#nichtkommerzielle Zwecke gestattet.
-
-#center#Gewährleistung und Haftung werden ausgeschlossen
-
-
-____________________________________________________________________________
-#page#
-
-#free (4.0)##on("b")#
-#center#gs-Menu-Generator
-
-
-#center#Benutzerhandbuch
-
-
-#center#Version 1.0
-
-
-#off("b")##center#copyright
-#center#Eva Latta-Weber
-#center#Software- und Hardware-Systeme, 1988
-#center#ERGOS GmbH, 1990
-#page#
-#block#
-#center#____________________________________________________________________________
-
-
-Copyright:  ERGOS GmbH   März 1990
-
- Alle Rechte vorbehalten. Insbesondere ist die Überführung in
- maschinenlesbare Form sowie das Speichern in Informations­
- systemen, auch auszugsweise, nur mit schriftlicher Einwilligung
- der ERGOS GmbH gestattet.
-
-
-#center#____________________________________________________________________________
-
-Es kann keine Gewähr übernommen werden, daß das Programm für eine
-bestimmte Anwendung geeignet ist. Die Verantwortung dafür liegt beim
-Anwender.
-
-Das Handbuch wurde mit größter Sorgfalt erstellt. Für die Korrektheit und
-Vollständigkeit der Angaben kann keine Gewähr übernommen werden. Das
-Handbuch kann jederzeit ohne Ankündigung geändert werden.
-
-Texterstellung :  Dieser Text wurde mit der ERGOS-L3 Textverarbeitung
- erstellt und aufbereitet und auf einem Kyocera Laser­
- drucker gedruckt.
-
-
-
-
-#center#___________________________________________________________________________
-
-
-
-Ergonomic Office Software GmbH
-
-Bergstr. 7 Telefon: (02241) 63075
-5200 Siegburg Teletex: 2627-2241413=ERGOS
- Telefax: (02241) 63078
-
-
-#center#____________________________________________________________________________
-
diff --git a/doc/menugenerator/menu-generator handbuch.index b/doc/menugenerator/menu-generator handbuch.index
deleted file mode 100644
index 0aacd97..0000000
--- a/doc/menugenerator/menu-generator handbuch.index
+++ /dev/null
@@ -1,258 +0,0 @@
-#block##pageblock#
-#pagenr("%",1)##setcount(1)##count per page#
-#headeven#
-gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#headodd#
-#right#gs-Menu-Generator
-#center#____________________________________________________________
-
-#end#
-#bottomeven#
-#center#____________________________________________________________
-I - % #right#ERGOS
-#end#
-#bottomodd#
-#center#____________________________________________________________
-ERGOS #right# I - %
-#end#
-Index
-
-
-activate 5 - 28
-activate 8 - 1
-anwendungstext 4 - 13
-anwendungstext 8 - 2
-areax 8 - 2
-areaxsize 8 - 2
-areay 8 - 2
-areaysize 8 - 2
-balken links 8 - 2
-balken oben 8 - 3
-balken rechts 8 - 3
-balken unten 8 - 3
-boxalternative 8 - 4
-boxalternative 7 - 10
-boxanswer 8 - 4
-boxanswer 7 - 9
-boxanswerone 8 - 4
-boxanswerone 7 - 10
-boxanswersome 8 - 5
-boxanswersome 7 - 10
-boxinfo 8 - 5
-boxinfo 7 - 9
-boxno 8 - 5
-boxno 7 - 10
-boxnotice 8 - 6
-boxnotice 7 - 10
-boxone 8 - 6
-boxone 7 - 10
-boxsome 8 - 6
-boxsome 7 - 10
-boxyes 8 - 7
-boxyes 7 - 10
-center 8 - 7
-center 7 - 8
-clear buffer 8 - 7
-clear buffer and count 8 - 7
-current menuwindow 8 - 8
-cursor 8 - 8
-cursor 7 - 6
-cursor off 8 - 8
-cursor off 5 - 6
-cursor off 5 - 2
-cursor on 8 - 8
-cursor on 5 - 6
-cursor on 5 - 2
-deactivate 8 - 9
-deactivate 5 - 28
-direktstart 8 - 9
-ecke oben links 8 - 10
-ecke oben rechts 8 - 10
-ecke unten links 8 - 10
-ecke unten rechts 8 - 10
-edit 8 - 11
-edit 7 - 6
-editget 8 - 11
-erase 7 - 5
-erase 8 - 11
-erase footnote 8 - 12
-erase footnote 7 - 11
-erase menunotice 8 - 12
-erasemenunotice 5 - 15
-get 8 - 12
-get 7 - 7
-get cursor 8 - 13
-get cursor 7 - 6
-getline 7 - 7
-getline 8 - 13
-get menuwindowcursor 5 - 21
-get menuwindowcursor 8 - 13
-handle menu 3 - 2
-handle menu 8 - 13
-infix namen 8 - 14
-infix namen 5 - 26
-install menu 3 - 2
-install menu 4 - 3
-install menu 8 - 14
-invers 8 - 15
-kreuz 8 - 15
-line 8 - 15
-line 7 - 6
-menualternative 8 - 15
-menualternative 5 - 12
-menuanswer 8 - 17
-menuanswer 5 - 2
-menuanswerone 8 - 17
-menuanswerone 5 - 8
-menuanswersome 5 - 8
-menuanswersome 8 - 18
-menu archiv checken 8 - 18
-menu archiv checken 6 - 4
-menu archiv grundeinstellung 6 - 4
-menu archiv grundeinstellung 8 - 18
-menu archiv holen 8 - 19
-menu archiv holen 6 - 4
-menu archiv initialisieren 8 - 19
-menu archiv initialisieren 6 - 4
-menu archiv loeschen 8 - 19
-menu archiv loeschen 6 - 4
-menu archiv neue diskette 8 - 19
-menu archiv neue diskette 6 - 4
-menu archiv reservieren 6 - 4
-menu archiv reservieren 8 - 19
-menu archiv reservierung aufgeben 6 - 4
-menu archiv reservierung aufgeben 8 - 19
-menu archiv schreibcheck 8 - 20
-menu archiv schreibcheck 6 - 4
-menu archiv schreiben 6 - 4
-menu archiv schreiben 8 - 20
-menu archiv verzeichnis 8 - 20
-menu archiv verzeichnis 6 - 4
-menu archiv verzeichnis drucken 6 - 4
-menu archiv verzeichnis drucken 8 - 20
-menu archiv zieltask einstellen 6 - 4
-menu archiv zieltask einstellen 8 - 20
-menu dateien aufraeumen 8 - 21
-menu dateien aufraeumen 6 - 6
-menu dateien drucken 6 - 6
-menu dateien drucken 8 - 21
-menu dateien kopieren 6 - 6
-menu dateien kopieren 8 - 22
-menu dateien loeschen 8 - 22
-menu dateien loeschen 6 - 6
-menu dateien speicherplatz 6 - 6
-menu dateien speicherplatz 8 - 22
-menu dateien umbenennen 8 - 23
-menu dateien umbenennen 6 - 6
-menu dateien verzeichnis 6 - 6
-menu dateien verzeichnis 8 - 23
-menufootnote 5 - 17
-menufootnote 8 - 23
-menufunktion 4 - 6
-menufunktion 8 - 24
-menuinfo 5 - 4
-menuinfo 8 - 24
-menukartenname 8 - 25
-menuno 8 - 25
-menuno 5 - 10
-menuone 5 - 6
-menuone 8 - 25
-menusome 5 - 7
-menusome 8 - 26
-menuwindowcenter 8 - 26
-menuwindowcenter 5 - 23
-menuwindowcursor 5 - 21
-menuwindowcursor 8 - 27
-menuwindowedit 8 - 27
-menuwindowedit 5 - 19
-menuwindoweditget 8 - 27
-menuwindoweditget 5 - 22
-menuwindowget 8 - 28
-menuwindowget 5 - 22
-menuwindowline 8 - 28
-menuwindowline 5 - 21
-menuwindowno 5 - 22
-menuwindowout 5 - 22
-menuwindowout 8 - 28
-menuwindowpage 8 - 29
-menuwindowpage 5 - 20
-menuwindowshow 5 - 19
-menuwindowshow 8 - 29
-menuwindowstop 5 - 23
-menuwindowstop 8 - 29
-menuwindowyes 5 - 22
-menuyes 5 - 10
-menuyes 8 - 30
-no 8 - 30
-no 7 - 7
-not empty 5 - 27
-not empty 8 - 30
-oberbegriff 8 - 31
-oberbegriff 4 - 5
-oeffne menu 8 - 31
-oeffne menu 4 - 3
-oeffne menukarte 8 - 32
-oeffne menukarte 4 - 3
-ohne praefix 5 - 26
-ohne praefix 8 - 32
-oldmenufootnote 5 - 17
-old menufootnote 8 - 32
-out 7 - 7
-out 8 - 33
-out footnote 7 - 11
-out footnote 8 - 33
-out frame 8 - 33
-out frame 7 - 5
-page 8 - 33
-page 7 - 11
-page 7 - 5
-page up 7 - 11
-put 8 - 33
-put 7 - 7
-putline 8 - 34
-putline 7 - 7
-refresh submenu 5 - 18
-refresh submenu 8 - 34
-regenerate menuscreen 8 - 34
-regenerate menuscreen 5 - 18
-regenerate menuscreen 5 - 4
-remaining lines 8 - 34
-remaining lines 7 - 6
-remaining menuwindowlines 5 - 21
-remaining menuwindowlines 8 - 34
-reset dialog 8 - 35
-schliesse menu 4 - 3
-schliesse menu 8 - 35
-schliesse menukarte 8 - 35
-schliesse menukarte 4 - 3
-senkrecht 8 - 35
-show 8 - 35
-show 7 - 5
-show 8 - 36
-show 7 - 6
-show menuwindow 8 - 36
-show menuwindow 5 - 20
-stdinfoedit 8 - 36
-stop 7 - 8
-stop 8 - 37
-testinstallation 8 - 37
-testinstallation 4 - 3
-textprozedur 4 - 8
-textprozedur 8 - 38
-text zeile 4 - 13
-textzeile 8 - 39
-trennlinie 4 - 6
-trennlinie 8 - 38
-waagerecht 8 - 39
-WINDOW 7 - 2
-window 7 - 4
-window 8 - 40
-write menunotice 8 - 40
-write menunotice 5 - 15
-yes 7 - 7
-yes 8 - 41
-
-
diff --git a/doc/menugenerator/menu-generator handbuch.inhalt b/doc/menugenerator/menu-generator handbuch.inhalt
deleted file mode 100644
index 8b1aef4..0000000
--- a/doc/menugenerator/menu-generator handbuch.inhalt
+++ /dev/null
@@ -1,72 +0,0 @@
-#type ("elite.lq")##limit (11.5)##pagelength (16.5)##pageblock#
-#start (1.8,0.0)#
-#type ("prop.breit.lq")#
-Inhaltsverzeichnis
-#type ("elite.lq")#
-
-
-1 Was kann ls-Menu-Generator 3
-
-2 Installation von ls-Menu-Generator 6
-2. 1 Voraussetzungen 6
-2. 2 Lieferumfang 6
-2. 3 Installation 7
-
-3 Die Arbeitsweise von ls-DIALOG 8
-3. 1 Ankoppeln einer Menukarte/ 8
- Ausführen eines Menus
-3. 2 Aufbau/Inhalt einer Menukarte 11
-
-4. Erstellen einer neuen Menukarte 13
-4. 1 Eintragen der Menupunkte 13
-4. 2 Erstellung und Einbinden von 20
- Informationstexten
-4. 3 Auslagerung von anwendungsbezogenen 24
- Texten in die Menukarte
-
-5. Dialoge innerhalb des Menus 27
-5. 1 Eingabe eines Textes/Namens 28
-5. 2 Ausgabe einer Information 31
-5. 3 Auswahl eines Namen durch Ankreuzen 32
-5. 4 Auswahl mehrerer Namen durch Ankreuzen 34
-5. 5 Eingabe eines Textes/Namens - alternativ: 35
- Auswahl durch Ankreuzen
-5. 6 Die Ja/Nein - Entscheidung 37
-5. 7 Die Alternativentscheidung 39
-5. 8 Die Menunotiz 43
-5. 9 Fußzeilen im Menu 44
-5.10 Wiederherstellung des Menubildschirms 46
-5.11 Arbeiten im Menufenster 47
-5.11.1 Datei anzeigen/editieren 48
-5.11.2 Menufenster öffnen/anzeigen 48
-5.11.3 Menufenster löschen(putzen) 49
-5.11.4 Positionierungen im Menufenster 49
-5.11.5 Informationen über die aktuelle 50
- Menu-Fensterposition
-5.11.6 Aus-/Eingabe innerhalb des Menufensters 51
-5.11.7 Weitere Prozeduren 52
-5.12 Festlegung der Boxpositionen innerhalb 53
- des Menus
-5.13 ls-DIALOG-Syntax 54
- (Regeln zur Erstellung von Texten)
-5.14 Thesaurushandling 55
-5.15 Aktivieren/Deaktivieren von Menupunkten 57
-
-6. Einbinden der Datei- und Archivoperationen 59
-6. 1 Einbinden der Archivoperationen 60
-6. 2 Einbinden der Dateioperationen 65
-
-7. Eigene Fenster und Fensteroperationen 66
-7. 1 Definition von Fenstern 67
-7. 2 Anzeigen/Löschen von Fenstern 70
-7. 3 Operationen innerhalb des Fensters 71
-7. 3.1 Datei anzeigen/editieren 71
-7. 3.2 Positionierungen im Fenster 72
-7. 3.3 Ein- und Ausgaben innerhalb des Fensters 73
-7. 3.4 Weitere Prozeduren 74
-7. 4 Boxoperationen 75
-
-8. Kurzbeschreibung der Befehle 78
-
-9. Register 125
-