Magic Disk 64

home to index to html: MD9207-UTILITIES-WINDOW-EDITOR.html
    WINDOW-EDITOR und WINDOW-MANAGER    
            die Menuexperten            
----------------------------------------
Mit  den  Programmen "Window-Editor" und
"Window-Manager" können Sie auf einfache
Weise  Menuleisten  und   Pulldown-Menus
erstellen und in eigene Programme, seien
diese  nun  in  BASIC oder Assembler ge-
schrieben, einbinden. Hierbei  erstellen
Sie  zunächst Ihre gewünschten Menus mit
dem Window-Editor und speichern sie  auf
Diskette  ab.  Für  Ihr eigenes Programm
laden Sie das Window-File wieder ein und
rufen die einzelnen Menus mit Hilfe  des
Window-Managers  auf.  Sie erhalten dann
jeweils einen  Rückgabewert,  der  Ihnen
anzeigt,  welcher Menupunkt vom Benutzer
angewählt wurde.                        
DER WINDOWEDITOR                        
Laden Sie den Window-Editor  mit  LOAD"-
WINDOW-EDITOR",8,1 in den Speicher Ihres
Rechners  ein  und  starten  Sie ihn mit
"SYS 20000".                            
Nach dem Start erscheint das  Titelbild.
Kurz danach gelangen Sie in das Hauptme-
nu  des  Window-Editors.  Hier  gibt  es
sechs  Menupunkte, die Sie mit verschie-
denen Buchstabentasten aufrufen können: 
E - Fenster erstellen                   
A - Fenster ändern                      
L - Fenster löschen                     
T - Fenster testen                      
U - Umrandung ändern                    
D - Diskmenu (Programm beenden)         
Auf  der  rechten  Seite des Bildschirms
sehen Sie ein Informationsfenster, das  
Ihnen  anzeigt,  wieviele  Fenster   Sie
schon  im  Speicher  halten  ("Nummer" -
entspricht gleichzeitig der  Nummer  des
nächsten  Fensters),  wieviele  Bytes im
Arbeitsspeicher noch frei sind ("Frei"),
und  wieviele   Bytes   genutzt   werden
("Nutzt").                              
DIE MENUPUNKTE                          
a) FENSTER ERSTELLEN:                   
Wählen  Sie  diesen Menupunkt, so werden
Sie gefragt, ob Sie  ein  Pulldown-Menu-
Window ("Pulldown"), oder einen Menubal-
ken ("Waagerecht-Menu")  erstellen  wol-
len.  Zudem wird die Fensternummer ange-
zeigt. Diese sollten Sie sich merken, da
Sie sie später zum Aufruf  des  entspre-
chenden  Menus  benötigen.  Drücken  Sie
nun, entsprechend des gewünschten Menus,
die Tasten "P" oder "W".                
Möchten Sie ein Pulldown-Window  erstel-
len  so  können Sie nach Drücken von "P"
Ihre einzelnen Menupunkte  nacheinander,
jeweils  durch  ein  RETURN  voneinander
getrennt,  eingeben.  Geben  Sie  keinen
Menupunkt  ein  und  drücken  RETURN, so
wird  wieder  unverrichteter  Dinge  zum
Hauptmenu zurückgekehrt.                
Mit Hilfe der Tasten  F1-F4  können  Sie
während der Eingabe die Rahmen- und Hin-
tergrundfarbe verändern. Hierbei gilt:  
F1/F2 - Rahmenfarbe hoch-/runterzählen  
F3/F4  -  Hintergrundfarbe hoch-/runter-
        zählen                          
Sind alle Menupunkte eingegeben und  die
Farben  gesetzt,  so  drücken  Sie bitte
RETURN ohne eine Eingabe in der jeweili-
gen  Zeile gemacht zu haben. Der Window-
Editor zeigt Ihnen nun  die  Anzahl  der
eingegebenen  Zeilen  an  und fragt nach
der Anzahl der Kopfzeilen. Eine Kopfzei-
le  ist  ein Eintrag im Menu-Window, der
keinen Menupunkt ansich darstellt,  son-
dern  vielmehr  zur Information über die
folgenden Menupunkte dient (z.B.  "Disk-
operationen:" als Kopfzeile und dann die
Menupunkte  "Laden", "Speichern", etc.).
Kopfzeilen befinden sich immer am oberen
Ende (eben dem "Kopf")  eines  Pulldown-
Windows. Demnach können Sie nur die obe-
ren n-ten Zeichen als  Kopfzeilen  defi-
nieren.  Möchten  Sie  keine  Kopfzeilen
verwenden, so übernehmen Sie einfach die
Anzahl "0". Andernfalls stellen Sie bit-
te  die  gewünschte  Anzahl  mittels der
CRSR-Tasten (hoch/runter) ein, oder  be-
nutzen  Sie  die Tasten 0-9. Mit den Ta-
sten "+" und "-" können Sie  jeweils  um
10  Zeilen  vor-,  bzw.  zurückblättern.
Beenden Sie Ihre Eingabe mit RETURN.    
Nun werden Sie nach der Farbe der  Kopf-
zeilen,  der  Menupunkte  und  der Menu-
Umrandung  gefragt.  Benutzen  Sie   zur
Farbangabe   entweder  die  Cursortasten
(wie oben beschrieben), oder aber  geben
Sie den gewünschten Farbcode direkt mit-
tels CTRL 1-8, bzw.  CBM  1-8  an  (z.B.
"CTRL-7 für Dunkelblau, oder "CBM-7" für
hellblau).  Wenn  Sie  keine  Kopfzeilen
verwenden, so wird die  Frage  nach  der
Farbe derselben übersprungen.           
Sind  alle  Farben eingegeben, so können
Sie Ihr Pulldown-Menu-Fenster mit  Hilfe
der  Cursor-Tasten  auf  dem  Bildschirm
positionieren. Beachten Sie  bitte,  daß
Sie  Teile  des Fensters, die in Zeile 0
stehen, nicht sehen  können  (hier  wird
der   Informationsbalken   des   Window-
Managers dargestellt). Später,  bei  der
Verwendundg  mit  dem Window-Manager ist
ein Window in Zeile  0  jedoch  komplett
sichtbar. Desweiteren werden Sie merken,
daß der Rahmen Ihres Windows eine "Spur"
auf  dem Bildschirm hinterläßt. Dies ist
normal und sollte Sie nicht weiter beun-
ruhigen  (die  "Spur"  erscheint  später
beim Aufruf des Menus nicht). Sollte  es
störend sein, so können Sie mit CLR/HOME
den Bildschirm nochmals löschen.        
Bevor  Sie nun die Bildschirmkoordinaten
übernehmen,   sollten   Sie   noch   den
gewünschten   Zeichensatz   (Groß/Klein,
oder Groß/Grafik) mit  "CBM+SHIFT"  ein-
stellen. Beenden Sie nun die Eingabe mit
RETURN. Sie gelangen anschließend wieder
ins Hauptmenu zurück.                   
Wenn  Sie  ein  "Waagerecht-Menu",  also
einen Menubalken, editieren möchten,  so
wählen Sie unter "Fenster erstellen" die
Option "W" an. Nun können Sie eine Bild-
schirmzeile mit den von Ihnen  gewünsch-
ten Menupunkten füllen. Dabei müssen Sie
die  einzelnen  Menupunkte  jeweils  mit
"F7" voneinander  trennen.  Drücken  Sie
diese  Taste, so erscheint ein Trennzei-
chen in Ihrer Zeile. Wenn Sie alle  Ihre
Menupunkte eingegeben haben, drücken Sie
bitte  RETURN. Wenn Sie die Trennzeichen
falsch benutzt haben (z.B.  2  Trennzei-
chen hintereinander, oder als erstes,   
bzw.  letztes  Zeichen)  so meldet Ihnen
das der  Window-Editor  und  Sie  müssen
Ihre  Zeile noch einmal eingeben. Achten
Sie bitte auch darauf, daß Sie vor Been-
den  mit  RETURN die Vorder- und Hinter-
grundfarben  Ihres  Bildschirms  mittels
F1-F4   eingestellt  haben.  Sie  werden
ebenfalls mitgespeichert!               
Nun  werden Sie nach der Farbe Ihres Me-
nus gefragt. Gehen Sie  hier  bitte  wie
bei  den Pulldownmenus vor (Farben blät-
tern mittels Cursortasten, oder  direkte
Farbcodes mittels CTRL und CBM).        
Anschließend können Sie wieder die Bild-
schirmposition Ihres Menubalkens festle-
gen. Mit RETURN  fixieren  Sie  Ihn  und
kehren ins Hauptmenu zurück.            
b) FENSTER ÄNDERN                       
Mit  diesem  Menupunkt  können  Sie  ein
schon  eingegebenes Fenster nachträglich
abändern. Stellen  Sie  zunächst  einmal
die Fensternummer des zu ändernden Fens-
ters ein (funktioniert wie bei der Anga-
be der Anzahl an Kopfzeilen). Gleichzei-
tig wird dazu  immer  das  entsprechende
Fenster eingeblendet (unsichtbar wenn in
Zeile 0!). Drücken Sie nun RETURN um das
eingestellte  Fenster  zu  verändern und
antworten Sie auf die Sicherheitsabfrage
mit  "J"  ("N"   kehrt   zum   Hauptmenu
zurück).                                
Ändern  Sie  ein  "Waagerecht-Menu",  so
wird das alte Menu in der obersten Zeile
angezeigt, während Sie eine Zeile tiefer
das  Menu  neu  eingeben können. Drücken
Sie hier einfach nur  RETURN,  wenn  Sie
das  Menu  so  übernehmen wollen, wie es
bereits eingegeben war. Etwaige Änderun-
gen an den Bildschirmfarben sollten, wie
immer,  vorher  vorgenommen  werden (F1-
F4). Nun können  Sie  wieder  Farbe  und
Position Ihres Menubalkens bestimmen und
kehren   anschließend  mit  übernommenen
Änderungen ins Hauptmenu zurück.        
Ein Pulldown-Menu wird ähnlich geändert.
Hier sehen Sie die einzelnen  Menuzeilen
jeweils einzeln und können Sie auch ein-
zeln ändern.  Zusätzlich  sehen  Sie  am
Ende der Darstellung des bisherigen Tex-
tes für diesen Menupunkt einen  Buchsta-
ben,  der  Ihnen anzeigt, wieviele Menu-
punkte Sie noch zur Verfügung haben. Sie
müssen wissen, daß die Anzahl der  Menu-
punkte nicht geändert werden kann. Steht
nun z.B. ein "E" am Ende der Anzeige, so
bedeutet  das, daß Sie noch 5 Zeilen än-
dern können, da "E" der 5. Buchstabe  im
Alphabet ist.                           
Wenn alle Menuzeilen eingegeben sind, so
können Sie nun, wie bei "Fenster erstel-
len", alle übrigen Einstellungen (Anzahl
der Kopfzeilen, Farben, etc.), vornehmen
und  kehren  anschießend  ins  Hauptmenu
zurück.                                 
c) FENSTER LÜSCHEN                      
Mit dieser Funktion können Sie immer das
jeweils zuletzt eingegebene Fenster wie-
der  löschen.  Dabei wird selbiges ange-
zeigt, und nach einer Sicherheitsabfrage
gelöscht. Sie können nun das vorangegan-
gene  Fenster  löschen  (das  jetzt  das
letzte ist).  Mit  "N"  kehren  Sie  ins
Hauptmenu zurück.                       
d) FENSTER TESTEN                       
Hier wählen Sie wie gewohnt eines  Ihrer
Fenster  an,  das anschließend angezeigt
wird  und  getestet  werden  kann.   Das
heißt,  daß Sie mit den Cursortasten den
Menubalken durch Ihr Menu bewegen können
(näheres zur Bedienung in der  Anleitung
für den Window-Manager). Durch Druck auf
RETURN  können  Sie ein weiteres Fenster
testen oder abbrechen.                  
e) UMRANDUNG ÄNDERN                     
Mit diesem Menupunkt können Sie die  Um-
randung  für  Pulldownmenus ändern. Nach
einer Sicherheitsabfrage können Sie  nun
die  Zeichen eingeben, die am oberen und
unteren Rand, sowie  in  der  Mitte  als
Umrandungszeichen benutzt werden sollen.
Hier  sehen Sie zunächst die Orginalzei-
chen, die der Window-Manager standardmä-
ßig  benutzt.  Darunter  stehen dann die
aktuellen Zeichen, sowie die Eingabezei-
le,  in der Sie die neuen Zeichen einge-
ben. Durch Drücken von CRSR-Rechts über-
nehmen  Sie  das  jeweils  vordefinierte
Zeichen. Mit der DEL-Taste springen  Sie
ein Zeichen zurück. Mit den Tasten "RVS/
ON"  und  "RVS/OFF"  können  Sie den Re-
vers-Modus ein- und ausschalten (RVS  ON
und  CRSR-Rechts  übernimmt das vordefi-
nierte Zeichen, jedoch invertiert). Alle
weiteren Tasten bewirken  eine  Verände-
rung  des  entsprechenden  Zeichens. Zum
Schluß folgt noch eine Sicherheitsabfra-
ge,  mit der Sie die neuen Zeichen über-
nehmen können. Antworten Sie mit "N", so
werden die momentan  gespeicherten  Zei-
chen   beibehalten   und  ins  Hauptmenu
zurückgekehrt.                          
f) DISKMENU                             
Im  Diskmenu  können  Sie  Ihre  Window-
Dateien laden und speichern. Desweiteren
können  Sie  Diskettenkommandos  an  die
Floppy senden, sowie  den  Window-Editor
verlassen.  Hier nun die einzelnen Menu-
punkte:                                 
L - LADEN                               
Hiermit laden Sie eine  schon  erstellte
Window-Datei in den Rechner. Nach anwäh-
len des  Menupunktes  können  Sie  einen
Dateinamen  angeben.  Wenn  Sie dieselbe
Datei schon einmal  geladen  hatten,  so
können  Sie  ihren Namen mit F7 nochmals
abrufen. Geben Sie keinen Namen  an,  so
wird  in  das Diskmenu zurückgesprungen.
Ist die angegebene Datei  keine  Window-
Datei, so wird eine Fehlermeldung ausge-
geben. Desweiteren wird nach jeder  Dis-
kettenoperation  der  Floppystatus ange-
zeigt.                                  
S - SPEICHERN                           
Hiermit speichern Sie eine Window-Datei.
Die Bedienung erfolgt analog zu "LADEN".
K - Kommando                            
Hiermit senden Sie ein Diskettenkommando
an  die Floppy (so können Sie z.B. Files
löschen, oder  eine  Diskette  formatie-
ren).  Geben  Sie  kein  Kommando an, so
wird  nur  der  Floppystatus  angezeigt.
Desweiteren können Sie sich mit der Ein-
gabe von "$" das Directory der eingeleg-
ten  Diskette  anzeigen  lassen. Während
dieser Anzeige können  Sie  die  Ausgabe
mit  der  SPACE-Taste anhalten, oder mit
"RUN/STOP" abbrechen. Um sich  ein  spe-
zielles  Directory  anzeigen  zu  lassen
können  Sie  auch  sog.  "File-Patterns"
benutzen. Hier zwei Beispiele:          
"$WIN*"  -->  zeigt  alle Dateien, deren
            Name mit "WIN" beginnt.     
"$*=S"  -->   zeigt  alle  sequentiellen
            Dateien an.                 
Z - Zurück                              
Hiermit   gelangen   Sie  ins  Hauptmenu
zurück.                                 
| - BASIC                               
Nach  einer  Sicherheitsabfrage wird der
Window-Editor beendet.                  
DER WINDOW-MANAGER                      
Der "Window-Manager" dient dazu, die mit
dem Window-Editor erstellten Fenster von
BASIC, oder Assembler  aus  benutzen  zu
können.  Er  ist  ein  Maschinensprache-
Modul, das  in  den  Speicher  ab  $C000
(dez.  49152) geladen wird. Dies muß ab-
solut geschehen, also  mit  ",8,1".  Als
erstes  sollte  Ihr Programm den Window-
Manager nachladen. Diese Aufgabe sollten
Sie mit einem kleinen Ladeprogramm erle-
digen.  Dadurch, daß der Ladevorgang die
BASIC-Variablen-Vetoren  "verbiegt"  ist
es  nicht  ratsam, den Window-Manager in
Ihrem Programm  selbst  nachzuladen.  Am
Besten  benutzen Sie den Loader, den wir
Ihnen unter  dem  Namen  "WINDOW-LOADER"
mit  auf  diese  MD  gepackt  haben.  Er
schreibt zunächst den Ladetext  auf  den
Bildschirm  und  füllt  anschließend den
Tastaturpuffer mit "RETURN"-Zeichen (AS-
CII-Code  13). In Zeile 30 fügen Sie bei
"IHR PROGRAMM" den Namen Ihres Programms
ein.                                    
a) Window-Datei laden:                  
In  Letzterem  sollten  Sie nun, das mit
dem Window-Editor erstellte Window-File,
einladen. Dies geschieht mit einer  Rou-
tine  aus  dem Window-Manager. Sie rufen
Sie mit 'SYS 49152,"NAME"'  auf.  "NAME"
steht  hierbei  für den Namen Ihrer Win-
dow-Datei. Selbiger MUSS  innerhalb  von
Anführungszeichen  stehen und kann nicht
in einer Variablen übergeben werden!    
b) Windows aktivieren:                  
Ist eine  Window-Datei  einmal  geladen,
können  die  einzelnen Menus mit dem Be-
fehl 'SYS 49155,NUMMER' aufgerufen  wer-
den. "NUMMER" steht dabei für die Nummer
Ihres  Windows (die im Window-Editor an-
gegeben wurde). Wenn Sie zu  der  Nummer
den  Wert 100 addieren, so wird Ihr Menu
invertiert dargestellt.                 
Nach dem Aufruf erscheint dann das  ent-
sprechende  Menu auf dem Bildschirm, wo-
bei der erste Menupunkt invertiert  dar-
gestellt  wird (sog. Auswahlbalken). Mit
den Cursortasten können Sie diesen  Bal-
ken  nun  im  Menu bewegen. Hierbei gilt
für Pulldown-Menus, daß mit  den  Tasten
CRSR-Hoch  und   CRSR-Runter,  bzw.  für
Waagerechtmenus mit CRSR-Links und CRSR-
Rechts, bewegt wird. Mit "HOME" springen
Sie  auf  den jeweils ersten Punkt eines
Menus, mit "CLR/HOME"  auf  den  letzen.
Drücken  Sie  eine  beliebige  Taste, so
wird der nächste Menupunkt angesprungen,
der mit dem  gedrücken  Zeichen  beginnt
(Bei  Druck auf "L" wird z.B auf "Laden"
gesprungen). Ist der Menubalken positio-
niert,  so kann mit RETURN der Menupunkt
angewählt werden. An dieser Stelle kehrt
der  Window-Manager  in   Ihr   Programm
zurück.  Die Nummer des Menupunktes kön-
nen Sie nun durch auslesen der Speicher-
stelle  2  in  Erfahrung  bringen  ("M=-
PEEK(2)").                              
Mit  der  ON-GOTO-Anweisung  des   64er-
BASICs  können Sie dann ganz einfach auf
Ihre Unterroutinen verzweigen:          
10 SYS 49155,nr:                        
20 ON PEEK(2) GOTO 100,200,300,etc.     
c) Selbst-Kopie                         
Der  Window-Manager  enthält  auch  eine
Funktion mit der Ihnen das Kopieren  auf
eine andere Diskette (z.B. Ihre Arbeits-
diskette) erleichtert wird.  Nach  einem
'SYS  49158'  werden  Sie dazu aufgefor-
dert, eine Diskette einzulegen  und  RE-
TURN  zu drücken. Anschließend speichert
sich  der  "Window-Manager"  selbst  auf
diese Diskette.                         
HINWEISE FÖR ASSEMBLER-PROGRAMMIERER    
In Maschinensprache  lautet  der  Aufruf
der  Routinen  natürlich  etwas  anders.
Hier die einzelnen Aufrufe:             
Laden einer Datei:                      
  1) Filenamen  im  ASCII-Code  ab $0340
     (dez.832) ablegen.                 
  2) Filenamenlänge in $0002 übergeben. 
  3) Aufruf durch "JSR $C05F"           
Aufruf eines Fensters:                  
  1) Fensternummer im X-Register.       
  2) Aufruf durch "JSR $C11E".          
  3) Menupunktnummer in $0002.          
Speichern des Steuerprogramms:          
  Aufruf durch "JSR $C006"              
ALLGEMEINE HINWEISE                     
Probieren  Sie ruhig einmal das Programm
"DEMO" auf dieser MD aus. Es zeigt Ihnen
den Umgang mit den Window-Manager-Menus,
und wie man auf intelligente  Weise  die
einzelnen     Menufenster    miteinander
verknüpft.                              
Wenn Sie einen  eigenen  Zeichensatz  in
Ihren  Menus  verwenden wollen, so akti-
vieren Sie bitte selbigen, und geben Sie
nach dem Laden des  Window-Editors  fol-
gende POKE-Befehle ein:                 
POKE20006,groß: POKE 20007,klein        
Hierbei stehen 'groß'  und  'klein'  für
die  Werte,  die  Sie  beim Auslesen der
Speicherstelle 53272 erhalten, wenn  Sie
einmal  den Groß-/Grafik- und den Groß-/
Kleinschrift-Zeichensatz   eingeschaltet
haben (umschalten mit "CBM+SHIFT").     
Beim Window-Manager müssen Sie  folgende
POKEs verwenden:                        
POKE 49161,groß: POKE 49162,klein       
Jetzt  können Sie den Window-Manager mit
Hilfe  der  Selbst-Kopie-Funktion  ("SYS
49158")  auf  eine  Diskette  speichern,
wobei die Änderungen für den Zeichensatz
mitgespeichert werden.                  
                                    (ub)



Valid HTML 4.0 Transitional Valid CSS!