summaryrefslogtreecommitdiff
path: root/doc/menugenerator/menu-generator handbuch.3
blob: e9829883c906461771a6442e17b4ab544daf63f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#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.