Magic Disk 64

home to index to text: MD9207-UTILITIES-WINDOW-EDITOR.txt
    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 geschrieben, 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 Hauptmenu des Window-Editors. Hier gibt es sechs Menupunkte, die Sie mit verschiedenen 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 Menubalken (" Waagerecht-Menu") erstellen wollen. Zudem wird die Fensternummer angezeigt. Diese sollten Sie sich merken, da Sie sie später zum Aufruf des entsprechenden Menus benötigen. Drücken Sie nun, entsprechend des gewünschten Menus, die Tasten " P" oder " W" .
Möchten Sie ein Pulldown-Window erstellen 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 Rahmenund Hintergrundfarbe verändern. Hierbei gilt:
F1/ F2- Rahmenfarbe hoch-/ runterzählen F3/ F4- Hintergrundfarbe hoch-/ runterzählen Sind alle Menupunkte eingegeben und die Farben gesetzt, so drücken Sie bitte RETURN ohne eine Eingabe in der jeweiligen Zeile gemacht zu haben. Der Window-Editor zeigt Ihnen nun die Anzahl der eingegebenen Zeilen an und fragt nach der Anzahl der Kopfzeilen. Eine Kopfzeile ist ein Eintrag im Menu-Window, der keinen Menupunkt ansich darstellt, sondern vielmehr zur Information über die folgenden Menupunkte dient ( z. B." Diskoperationen:" 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 oberen nten Zeichen als Kopfzeilen definieren. Möchten Sie keine Kopfzeilen verwenden, so übernehmen Sie einfach die Anzahl "0" . Andernfalls stellen Sie bitte die gewünschte Anzahl mittels der CRSR-Tasten ( hoch/ runter) ein, oder benutzen Sie die Tasten 0-9 . Mit den Tasten "+" 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 Kopfzeilen, 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 mittels 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 beunruhigen ( 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" einstellen. 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 Bildschirmzeile mit den von Ihnen gewünschten Menupunkten füllen. Dabei müssen Sie die einzelnen Menupunkte jeweils mit " F7" voneinander trennen. Drücken Sie diese Taste, so erscheint ein Trennzeichen 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 Trennzeichen 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 Beenden mit RETURN die Vorderund Hintergrundfarben 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ättern mittels Cursortasten, oder direkte Farbcodes mittels CTRL und CBM) .
Anschließend können Sie wieder die Bildschirmposition Ihres Menubalkens festlegen. 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 Fensters ein ( funktioniert wie bei der Angabe der Anzahl an Kopfzeilen) . Gleichzeitig 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 Änderungen 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 einzeln ändern. Zusätzlich sehen Sie am Ende der Darstellung des bisherigen Textes für diesen Menupunkt einen Buchstaben, der Ihnen anzeigt, wieviele Menupunkte Sie noch zur Verfügung haben. Sie müssen wissen, daß die Anzahl der Menupunkte nicht geändert werden kann. Steht nun z. B. ein " E" am Ende der Anzeige, so bedeutet das, daß Sie noch 5 Zeilen ändern können, da " E" der 5 . Buchstabe im Alphabet ist.
Wenn alle Menuzeilen eingegeben sind, so können Sie nun, wie bei " Fenster erstellen", 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 wieder löschen. Dabei wird selbiges angezeigt, und nach einer Sicherheitsabfrage gelöscht. Sie können nun das vorangegangene 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 Umrandung 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 Orginalzeichen, die der Window-Manager standardmäßig benutzt. Darunter stehen dann die aktuellen Zeichen, sowie die Eingabezeile, in der Sie die neuen Zeichen eingeben. Durch Drücken von CRSR-Rechts übernehmen 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 Revers- Modus einund ausschalten ( RVS ON und CRSR-Rechts übernimmt das vordefinierte Zeichen, jedoch invertiert) . Alle weiteren Tasten bewirken eine Veränderung des entsprechenden Zeichens. Zum Schluß folgt noch eine Sicherheitsabfrage, mit der Sie die neuen Zeichen übernehmen können. Antworten Sie mit " N", so werden die momentan gespeicherten Zeichen 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 Menupunkte:
L - LADEN Hiermit laden Sie eine schon erstellte Window-Datei in den Rechner. Nach anwählen 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 ausgegeben. Desweiteren wird nach jeder Diskettenoperation der Floppystatus angezeigt.
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 formatieren) . Geben Sie kein Kommando an, so wird nur der Floppystatus angezeigt.
Desweiteren können Sie sich mit der Eingabe von "$" das Directory der eingelegten 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 spezielles 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ß absolut geschehen, also mit ",8,1" . Als erstes sollte Ihr Programm den Window-Manager nachladen. Diese Aufgabe sollten Sie mit einem kleinen Ladeprogramm erledigen. 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 Routine aus dem Window-Manager. Sie rufen Sie mit ' SYS 49152," NAME"' auf." NAME" steht hierbei für den Namen Ihrer Window- 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 Befehl ' SYS 49155, NUMMER' aufgerufen werden." NUMMER" steht dabei für die Nummer Ihres Windows ( die im Window-Editor angegeben wurde) . Wenn Sie zu der Nummer den Wert 100 addieren, so wird Ihr Menu invertiert dargestellt.
Nach dem Aufruf erscheint dann das entsprechende Menu auf dem Bildschirm, wobei der erste Menupunkt invertiert dar- gestellt wird ( sog. Auswahlbalken) . Mit den Cursortasten können Sie diesen Balken 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 positioniert, 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önnen Sie nun durch auslesen der Speicherstelle 2 in Erfahrung bringen (" M=- PEEK(2)") .
Mit der ON-GOTO- Anweisung des 64 er-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 Arbeitsdiskette) erleichtert wird. Nach einem ' SYS 49158' werden Sie dazu aufgefordert, 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 $ C05 F" Aufruf eines Fensters:
1) Fensternummer im X-Register.
2) Aufruf durch " JSR $ C11 E" .
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 aktivieren Sie bitte selbigen, und geben Sie nach dem Laden des Window-Editors folgende 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ß-/ Grafikund 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!