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)