TreeView* Stephan Gerle Version 2.4 21.8.1992 Dies ist die Anleitung zu TreeView Version 2.4. Sie wurde erstellt mit LaTEX. Fr Fragen oder Fehlerberichte bin ich unter folgender Adresse zu erreichen: Gelbe Post Stephan Gerle Ruthstr. 8 4600 (44149) Dortmund 1 Graue Post Tel.: 0231 / 65 25 35 E-Mail (DFš) MausNet Stephan Gerle @ DO Usenet Stephan_Gerle @ do.maus.de Zerberus Stephan_Gerle % DO @ ZERMAUS.ZER Fido-Net Stephan Gerle % MAUS DO @ 2:242/2 Diese Anleitung darf - auch auszugsweise - nur mit Genehmigung des Autors ver”ffentlicht werden. ___________________________________________________ * (c) 1990,91,92 by Stephan Gerle Inhaltsverzeichnis 1 Was ist TreeView 2 Nutzungsbedingungen 3 Bedienung 3.1 Start als PRG 3.2 Start als ACC 3.3 Aufruf von TreeView 3.4 Grafische Darstellung 3.5 M”gliche Aktionen im Fenster 3.6 Tastaturkommandos 4 Besonderheiten mit Gemini 5 Andere Programme 6 Ausgabe 6.1 Drucken 6.2 Metafile 6.3 ASSIGN.SYS 7 Probleme mit anderen Programmen 8 Fehler 9 Grenzen 10 Programmtechnisches 10.1 AV-Protokoll 10.2 AV-Protokoll Messagenummern 10.3 Drvmap() 10.4 Patchvariablen 10.4.1 GDOSPRT 10.4.2 GDOSMET 11 Epilog 12 Neu in Version 12.1 V2.2 12.2 V2.1 12.3 V2.0 12.4 V1.9 12.5 V1.8 12.6 V1.7 12.7 V1.6 12.8 Žltere Versionen 1 Was ist TreeView TreeView ist ein Programm, welches den Verzeichnisbaum von Laufwerken grafisch in einem Fenster ausgibt. Dieser grafische Verzeichnisbaum kann - um z.B. einen "Uberblick ber die Festplattenstruktur zu erhalten - ausgedruckt werden. TreeView kann sowohl als ACC als auch als PRG bzw. APP gestartet werden. Wenn TreeView als ACC gestartet wird, existiert eine Schnittstelle zu Gemini (Sie ben”tigen Gemini 1.2 oder h”her). 2 Nutzungsbedingungen TreeView ist nicht Public Domain! TreeView darf aber zusammen mit diesem Text beliebig oft und fr jeden kopiert werden. Dabei drfen das Programm als auch der Text nicht modifiziert werden. TreeView darf nicht kommerziell verkauft werden. Dies schliežt auch sogenannte PD Versender aus, die mehr als den Diskettenpreis fr eine Kopie verlangen. Falls TreeView regelm„žig benutzt wird, so bitte ich als kleine Anerkennung um eine Postkarte von Ihrem Heimatort. Dadurch kann ich sehen, ob TreeView berhaupt zur Anwendung kommt und die Karte kann auch gleichzeitig dazu genutzt werden, Verbesserungsvorschl„ge und Fehlermeldungen zu notieren. Dann sollte aber unbeding die Versionsnummer von TreeView auf der Karte stehen. šber eine kleine Spende freue ich mich natrlich immer. Falls sich jemand dazu berwinden sollte kann er mir das Geld auf folgendes Konto berweisen: Stadtsparkasse Dortmund BLZ 440 501 99 Konto Nr. 372 007 222 Falls jemand eine neue Version haben will, kann er mir eine Diskette mit frankiertem Rckumschlag schicken. Die neueste Version werde ich dann auf die Diskette draufkopieren und zurckschicken. DFšler k”nnen die neueste Version auch in der Maus DO (0231-174 674) downloaden. 3 Bedienung TreeView kann sowohl als PRG als auch als ACC gestartet werden. TreeView erkennt automatisch, ob es als ACC gestartet wurde und installiert sich dann im DESK-Men. Wird TreeView als PRG gestartet, so ”ffnet TreeView sofort den Verzeichnisbaum. Ist ein multitasking f„higes AES vorhanden (MultiGEM z.B.), so wird mittels AV-Protokoll der Status von TreeView gesucht. Ist ein Status abgespeichert worden, so wird dieser eingestellt, wenn ein multitasking f„higes AES vorhanden ist. Ansonsten wird das aktuelle Laufwerk ab dem Rootverzeichnis oder der bergebene Pfadname dargestellt. 3.1 Start als PRG Wenn Sie TreeView als PRG starten, so k”nnen Sie in der Kommandozeile den anzuzeigenden Pfad angeben. Beispielsweise treeview c:\gemini Wird kein bzw. ein nicht gltiger Pfad angegeben, so wird der Verzeichnisbaum von dem aktuellen Laufwerk ab dem Wurzelverzeichnis dargestellt. 3.2 Start als ACC Wenn Sie TreeView als ACC benutzen wollen, so muž TreeView den Namen TREEVIEW.ACC erhalten. Diese Datei kopieren Sie nun in das Wurzelverzeichnis Ihres Bootlaufwerks, damit TreeView automatisch beim Booten eingeladen wird. Rufen Sie nun TreeView aus dem DESK-Men aus auf, so zeigt TreeView den Verzeichnisbaum des aktuellen Laufwerks ab dem Wurzelverzeichnis an. 3.3 Aufruf von TreeView Wenn Sie TreeView starten, so sucht TreeView in dem darzustellendem Verzeichnis nach der versteckten Datei TREEVIEW.INF. Ist diese Datei vorhanden, so wird sie eingeladen und der Verzeichnisbaum sofort dargestellt. Fehlt diese Datei, so wird der Verzeichnisbaum erstellt. Da diese Operation relativ lange dauert, zeigt TreeView w„hrenddessen auf dem Bildschirm an, das wievielte Verzeichnis es gerade bearbeitet. 3.4 Grafische Darstellung Nachdem der Verzeichnisbaum eingeladen ist, wird er grafisch in einem Fenster dargestellt. In der obersten Zeile ist ganz links ein Drucker-Icon und rechts daneben sind Icons fr die aktiven Laufwerke. Darunter sieht man - abgetrennt durch eine Linie - den Verzeichnisbaum. Jedes Verzeichnis steht in einer eigenen Zeile. In der ersten Zeile steht das Verzeichnis, ab dem der Verzeichnisbaum dargestellt wird. Unterverzeichnisse sind jeweils um einen kleinen Betrag gegenber dem Vater- verzeichnis nach rechts eingerckt. Die Verzeichnisse sind untereinander mit Strichen verbunden. Werden die Gr”ženangaben3 mit angezeigt, so stehen die Gr”žen der Verzeichnisse in Kilobyte direkt vor dem Namen des Verzeichnisses. Zwischen der Gr”ženangabe und dem Namen steht ein Punkt, wenn in dem Verzeichnis mindestens eine Datei vorhanden ist. Fehlt der Punkt, so ist das Verzeichnis leer. Die Kreise vor einem Verzeichniseintrag geben an, ob die vorhandenen Unterverzeichnisse dargestellt werden. (+) bedeutet, die Unterverzeichnisse sind sichtbar. (-) bedeutet, die Unterverzeichnisse sind nicht sichtbar. 3.5 M”gliche Aktionen im Fenster Klickt man mit der Maus auf ein , so werden die Unterverzeichnisse eingeklappt und aus dem wird ein. Somit kann man normalerweise nicht benutzte Unterverzeichnisse unsichtbar machen und die šbersichtlichtkeit der Darstellung erh”hen. Mittels Einfachklick auf einen Verzeichniseintrag wird ein Verzeichnis selektiert. Dies hat noch keine Auswirkungen. Ein Doppelklick auf einen Verzeichniseintrag fhrt unter Gemini dazu, das Gemini ein Fenster mit den Dateien, die zu dem angeklickten Verzeichnis geh”ren, ”ffnet. Klickt man auf das Drucker-Icon, so wird man noch gefragt, ob man auf den Drucker oder in ein Metafile drucken oder die Aktion abbrechen m”chte. Klickt man auf ein Laufwerk's-Icon, so wird der Verzeichnisbaum des angeklickten Laufwerk's ab dem Wurzelverzeichnis erst eingeladen und dann angezeigt. 3.6 Tastaturkommandos Backspace: Es wird der Verzeichnisbaum ab einer Ebene h”her als dem gerade angezeigten eingeladen und anschliežend dargestellt. Cursortasten: Mit den Cursortasten kann in dem Fenster gescrollt werden. Gleichzeitig mit Shift bewirken die Cursortasten ein seitenweises Scrolling. Esc: Der gerade angezeigte Dateibaum wird neu erstellt. HELP: Bringt eine kleine Hilfsbox zu den Tastenfunktionen auf den Bildschirm. Mittels dem Button "Info" wird die (frher ber Ctrl-I erreichbare) Infobox aufgerufen. In der Infobox kann die Versionsnummer von TreeView sowie ein paar andere Informationen nachgeguckt werden: Unter "Kommunikation mit:" steht der Name der Hauptapplikation, falls die Hauptapplikation das AV-Protokoll (siehe 10.1) versteht. "Max. Ordnertiefe" ist die maximale Ordnertiefe, die TreeView gerade darstellt. "Anzahl Ordner" ist die Anzahl der von TreeView eingelesenen Ordner. Unter "Verzeichnisbaum vom" steht das Datum und die Uhrzeit, von wann der dargestellte Verzeichnisbaum ist. Danach kann man sehen, wie aktuell der Verzeichnisbaum ist. Ctrl-L: Wechselt die Anzeige von TreeView . Nach dem ersten Mal drcken wird zu jedem Verzeichniseintrag noch angegeben, wieviel Kilobytes von dem Verzeichnis belegt wird. Nach nochmaligem Drcken von Ctrl-L verschwindet diese Anzeige wieder. Die Gr”že des Verzeichnisses errechnet sich aus der Gr”že der in dem Verzeichnis stehenden Dateien plus der Gr”že der Unterverzeichnisse. Ctrl-S: Hiermit kann der geladene Verzeichnisbaum abgespeichert werden. Wird TreeView nochmal mit diesem Pfad aufgerufen, so wird der Verzeichnis- baum nur noch erstellt, wenn CTRL gedrckt wird. Ansonsten wird der abgespeicherte Verzeichnisbaum von der Platte geladen. Dies hat den Vorteil, daž das Einladen sehr schnell geht. Der Nachteil ist, das Konsistenzprobleme auftreten k”nnen. Wenn man ein Verzeichnis l”scht oder ein Neues erstellt, so weiž TreeView davon natrlich nichts. In diesem Fall muž mit Esc der Dateibaum aktualisiert werden. Existiert zu diesem Verzeichnis noch ein altes TREEVIEW.INF, so wird automatisch der neu erstellte Verzeichnisbaum wieder abgespeichert. Der Verzeichnisbaum wird in dem darzustellendem Verzeichnis als versteckte Datei unter dem Namen TREEVIEW.INF abgelegt. Ctrl-P: Ist dasselbe wie Anklicken des Drucker-Icons. Ctrl-Q: Nur aktiv, wenn TreeView als Programm gestartet wurde. Dann wird damit TreeView verlassen. Sonst wird dieser Tastendruck an die Haupt- applikation gesendet (bewirkt bei Gemini das Beenden von Gemini!). Ctrl-D: Bewirkt das Schliežen des Fensters. Ctrl-U: Wie Ctrl-D. Return und Ctrl-O: Sendet den angeklickten Pfad an die Hauptapplikation (entspricht Open). Alle Tasten mit ASCII-Code gr”žer 32 und kleiner 127 aužer ':' und '\': Diese Tasten werden in einem Suchstring zusammengefažt der dann im Verzeichnisbaum gesucht wird. Wird ein passender Ordner gefunden, so wird er selektiert und der passende Ausschnitt aus dem Verzeichnisbaum im Fenster dargestellt. In der Titelzeile des Fensters kann man sehen, welcher Suchstring bereits vorgeben ist. Delete: Das letzte Zeichen im Suchstring wird wieder entfernt. Space: Space kann in einem Ordnernamen nicht vorkommen. Deshalb wird mit dieser Taste der Suchstring wieder gel”scht und die Suche kann von vorne beginnen. ALT-A..Z: Das durch den Buchstaben angegebene Laufwerk (falls vorhanden) wird angezeigt. Tab: Wenn ein Ordner selektiert ist, so wird ohne drcken von Shift der n„chste Ordner und mit Shift der vorherige Ordner selektiert. Alle anderen Tastendrcke werden an die Hauptapplikation weitergereicht. 4 Besonderheiten mit Gemini Ab Gemini V1.2 existiert in Gemini eine Schnittstelle zu Accessories. TreeView macht sich diese Schnittstelle auf mehrere Arten zunutze. 1. Man kann Accessories in Gemini starten. Die Accessories werden dabei natrlich nicht richtig gestartet, sondern die Acc's kriegen die Message 0x4711, in der dem Acc eine Kommandozeile bergeben wird. Legt man nun z.B. das TreeView -Icon auf den Desktop von Gemini , so kann man TreeView einfach durch Doppelklick auf das Icon starten. Man kann auch - wie bei normalen Programmen - Icons auf dieses TreeView -Icon ziehen. TreeView darf aber nur mit einer Pfadangabe gestartet werden, deshalb sollte man auch nur ein Icon auf das TreeView-Icon ziehen. TreeView extrahiert dann die Pfadangabe aus dem "Ubergebenen Parameter und stellt den zu dem Icon geh”renden Verzeichnisbaum dar. Man kann so ziemlich alles, was auf dem Desktop von Gemini liegt, auf das TreeView -Icon ziehen. Der Shredder repr„sentiert keinen Pfad und bildet damit die einzige Ausnahme. 2. Macht man einen Doppelklick auf einen Verzeichniseintrag in TreeView, so wird in Gemini ein Fenster mit dem dazugeh”rigen Pfad ge”ffnet. Dies kann dazu genutzt werden, um schnell tief verschachtelte Ordner zu ”ffnen. 3. Da ich in TreeView keinen Fontselektor einbauen wollte, fragt TreeView bei jedem Start bei Gemini nach, welcher Font fr die Dateifenster in Gemini eingestellt ist. Dieser Font in dieser H”he wird dann auch von TreeView verwendet. 4. Falls das Fenster von TreeView offen ist, kann man in Gemini auch noch Icons in dieses Fenster legen. TreeView interpretiert dies dann als Kopieraktion der durch die Icons repr„sentierten Dateien in den im TreeView angeklickten Ordner. Werden die Icons nicht auf einen Ordner gezogen, so interpretiert TreeView dies als den Wunsch den zu dem Icon geh”renden Verzeichnisbaum anzuzeigen. 5. Gemini merkt sich den Status von TreeView . Dieser Status kann mit "Status sichern" in Gemini abgespeichert werden. Damit kann man z.B. die Lage des TreeView-Fensters und den dargestellten Pfad abspeichern. 6. Ab TreeView V2.0 funktioniert das ganze auch, wenn ein multitasking f„higes AES installiert ist und TreeView als PRG gestartet wird. 5 Andere Programme In TreeView ist das sogenannte AV-Protokoll eingebaut. Dies ist ein Satz von Mitteilungen, die ein Acc und ein Hauptprogramm austauschen k”nnen. In 10.1 steht n„heres. Jedes Programm, welches dieses Protokoll untersttzt, wird damit auch von TreeView untersttzt. Fr das Protokoll wird bei Gemini V1.2 eine Headerdatei mit Defines fr die Protokollnummern mitgeliefert. Fr Accessories gibt es von mir eine kleine Library, die fr die Untersttzung des AV-Protokoll's in eigenen Accessories genutzt werden kann. 6 Ausgabe TreeView macht s„mtliche Ausgaben ber das VDI. Soll auf den Drucker oder in eine Metadatei ausgegeben werden, so ben”tigt TreeView das GDOS. GDOS k”nnen Sie bei ATARI oder jedem gutem Atari-Fachh„ndler beziehen. 6.1 Drucken TreeView druckt grunds„tzlich auf GDOS-Ger„t 21. Bei der Druckerausgabe kann es zu Problemen kommen, wenn man einen Font gew„hlt hat, der nur in einer berechneten Gr”že vorliegt (z.B. doppelte Gr”že). Hat man in Gemini fr die Dateifenster einen Font eingestellt, der fr den Druckertreiber nicht vorhanden ist, so wird die Wahl des Fonts dem Treiber berlassen. Die mir bekannten GDOS-Treiber geben dann immer den ersten Font zurck, der im ASSIGN.SYS direkt unter dem Treibereintrag steht. 6.2 Metafile Leider gibt es damit am meisten Probleme. Ist unter META.SYS im ASSIGN.SYS kein Font eingetragen, so liefert der Treiber die Fonth”he 0 zurck und damit wrde alles auf eine Zeile zusammengequetscht. Deshalb geht TreeView folgendermažen vor: Existiert der ausgew„hlte Font nicht, so wird die Fonth”he aus der Pointh”he des dargestellten Fonts und den Pixelausmažen berechnet. Es gibt auch mindestens zwei verschiedene META.SYS. Das META.SYS mit der Dateil„nge 9325 Bytes funktioniert. Bei einem anderen META.SYS gab es auch schon mal Bomben. Das Metafile wird im Clipboard abgelegt wenn der Clipboardpfad gesetzt worden ist. Ist der Clipboardpfad nicht gesetzt, so wird das Metafile in dem Verzeichnis des dargestellten Verzeichnisbaums abgelegt. 6.3 ASSIGN.SYS Fr das Drucken und die Metafileausgabe ben”tigt TreeView, wie oben schon gesagt, GDOS. Das GDOS verwaltet VDI-Ger„tetreiber sowie die dazugeh”rigen Fonts. Welche Ger„tetreiber und Fonts vorhanden sind, wird dem GDOS mittels der Datei ASSIGN.SYS mitgeteilt. Diese Datei ist eine reine ASCII-Datei, die mit jedem Editor, der ASCII-Dateien schreiben kann, bearbeitet werden kann (z.B. Tempus, Edison). Will man mit TreeView drucken, so muž im ASSIGN.SYS fr die Ger„tenummer 21 ein Druckertreiber eingetragen sein. Druckertreiber (sowie auch META.SYS) k”nnen von Atari, jedem gutem Atari-Fachh„ndler sowie ber Mailboxen bezogen werden. Weiterhin muž mindestens ein Zeichensatz fr den Druckertreiber im ASSIGN.SYS eingetragen sein. Ebenso muž unter der Ger„tenummer 31 der Treiber META.SYS im ASSIGN.SYS eingetragen sein, damit mit TreeView die Metafileausgabe genutzt werden kann. Fr diesen Ger„tetreiber muž kein Zeichensatzeingetragen werden. Falls welche eingetragen werden, so sollten dies nur Metafile-Fonts sein. Eine beispielhafte ASSIGN.SYS Datei k”nnte z.B. so aussehen: path = C:\GEMSYS ;Pfadname, in dem Fonts und Geraetetreiber sind ; ; Hier folgen dann die Geraetetreiber fuer den Bildschirm ; Sie sind hier nicht aufgelistet ; 21 FX80.SYS ; ATSS08EP.FNT ; Zwei Fonts fuer den Druckertreiber ATSS10EP.FNT ; 31 META.SYS ; ATSS10MF.FNT ; Fonts fuer Metafile-Treiber ATSS12MF.FNT Sollten Probleme beim Drucken auftreten, so bitte ich um genauere Angaben zu den verwendeten Druckertreiber (Versionsnummer, Dateil„nge). Mit dem FX80.SYS (einer der „ltesten GDOS-Treiber) funktioniert TreeView bei mir einwandfrei. 7 Probleme mit anderen Programmen 1. Bei der Version V3.0q (oder auch andere Versionen) von Autoswitch-Overscan wird der Bildschirm weiž, wenn man mit TreeView ausdrucken will. Das liegt daran, daž TreeView einen v_clrwk()-Aufruf auf die Druckerworkstation ausfhrt und Autoswitch-Overscan daraufhin den Bildschirm l”scht. Dies hat ansonsten keine weiteren Nebeneffekte. Nach Starten eines Programmes ist der Bildschirm wieder normal. In der aktuellen Version (mindestens 3.0v) ist der Fehler behoben. 2. Eine Version von Metafont von Lutz Birkhahn gibt eine Fehlermeldung aus, wenn es eine Meldung erh„lt, die Metafont nicht versteht. Leider geh”ren dazu auch Meldungen von TreeView an Metafont. Auch dieser Fehler hat ansonsten keine Nebenwirkungen. 3. Viele Programme k”nnen Metafiles nicht richtig lesen. Calamus 1.09 z.B. ignoriert s„mtliche Textangaben in Metafiles. Guck 1.5a gibt zwar alles richtig aus, verwendet aber immer den System- zeichensatz, sodaž die Texte meist zu grož dargestellt werden. Die einzigen mir bekannten Programme, die die Metafiles korrekt anzeigen sind SciGraph sowie 1stGuide. 4. Einige Programme verstehen die die Meldungen des AV-Protokolls nicht und geben daraufhin leider eine Fehlermeldung aus, anstatt sie einfach zu ignorieren. 8 Fehler Alle mir bekannten Fehler sind aus dem Programm entfernt worden soweit m”glich. Trotzdem ist es m”glich, das noch Fehler in TreeView sind. Sollte die Verwendung von TreeView zu irgendwelchen Sch„den fhren, so kann ich dafr keine Verantwortung bernehmen. Aus programmtechnischer Sicht ist es allerdings ziemlich unm”glich das die Verwendung von TreeView zu irgendwelchen Datenverlusten auf einem Massenspeicher fhren kann. Sollten bei der Verwendung von TreeView Fehler auftreten, so bitte ich um eine m”glichst genaue Fehlerbeschreibung. Am besten w„re ein SysMon-Listing s„mtlicher Betriebssystemaufrufe. Auf jeden Fall geh”ren zu einer Fehlerbeschreibung aber folgende Angaben: 1. Versionsnummer von TreeView 2. laufendes Hauptprogramm mit Versionsnummer 3. installierte residente Programme mit Versionsnummern (a) Auto-Ordner Programme (b) Accessories (c) nachgeladene residente Programme (d) Harddisktreiber (wenn vorhanden) 4. Hardwarekonfiguration (a) verwendeter Rechner (b) Speicherkonfiguration (c) verwendeter Massenspeicher (d) zus„tzlich installierte Hardware 9 Grenzen 1. Ab einer Ordnertiefe von ca. 15 Ordnern versagt TreeView , da interne Puffer berlaufen. 2. Wegen der chronologischen Reihenfolge der Messages im AES und dem auf Messages basierendem AV-Protokoll ist es nicht m”glich das nachtr„gliche Žndern des Zeichensatzes und Verschieben des Fensters beim Laden mittels Chameleon zu unterbinden. 10 Programmtechnisches Dieses Kapitel ist nur fr Programmierer interessant, die TreeView von ihrem Programm aus aufrufen wollen. Der normale Anwender kann diese Kapitel berspringen. 10.1 AV-Protokoll In TreeView ist das AV-Protokoll implementiert. Das AV-Protokoll ist ein eventorientiertes Protokoll, welches es erm”glicht, das die Hauptapplikation und Accessories sich gegenseitig Dienste anbieten. Die Kommunikation des Accessories mit der Hauptapplikation geschieht ber das Messagesystem des AES. TreeView nutzt nur einen kleinen Teil der bereits definierten Messages des AV-Protokolls aus. Eine Aufstellung aller bereits definierten Messages des AV-Protokolls kann man in VAPROTO.H nachlesen. Untenstehende Erkl„rung benutzt teilweise C-Notation. TreeView geht beim Programmstart als ACC nun folgendermažen vor: 1. Die Meldung AV_PROTOKOLL wird an die Hauptapplikation (ap_id = 0) geschickt. msg[6+7] = "TREEVIEW" msg[3] = 1|2 msg[4] = 0 msg[5] = 0 Das bedeutet, das TreeView VA_SETSTATUS und VA_START versteht. 2. Nun geht TreeView in die Messageschleife und wartet auf Messages. TreeView reagiert bei erhalt folgender Messages: VA_PROTOSTATUS: Die Message muž folgenden Aufbau haben: msg[6+7] = Zeiger auf nullterminierten String wie bei appl_find verwendet. msg[3] enth„lt Bitvektor. Die Bits haben folgende Bedeutung: Word Bit Applikation kennt Message Verwendet ---------------------------------------------------------- 3 0 AV_SENDKEY x 1 AV_ASKFILEFONT x 2 AV_ASKCONFONT, AV_OPENCONSOLE 3 AV_ASKOBJECT 4 AV_OPENWIND x 5 AV_STARTPROG 6 AV_ACCWINDOPEN, AV_ACCWINDCLOSED x 7 AV_STATUS, AV_GETSTATUS x 8 AV_COPY_DRAGGED x Alle anderen Bits mssen 0 sein. Ebenso mssen msg[4] und msg[5] 0 sein. Durch den Bitvektor wird gew„hrleistet, daž das ACC weiž, welche Messages die Hauptapplikation kennt und auch nur die Messages abschickt, die von der Hauptapplikation verstanden werden. TreeView schickt daraufhin die Messages AV_ASKFILEFONT und AV_GETSTATUS an die Hauptapplikation. VA_SETSTATUS: Der vorher mit AV_STATUS gesendete Status von TreeView wird wieder eingestellt. In msg[3+4] muž ein Zeiger auf den Status sein. NULL ist erlaubt. Dann wird die Message ignoriert. Im Status speichert TreeView ab, wo das Fenster lag, welcher Pfad angezeigt wurde und ob das Fenster offen war. Das Format des Status ist nicht dokumentiert! VA_START: Mit dieser Message kann TreeView ge”ffnet werden und gleichzeitig der anzuzeigende Pfad bergeben werden. In msg[3+4] steht ein Zeiger auf den anzuzeigenden Pfad. Ist der Pfad nicht gltig, so ”ffnet sich das Fenster von TreeView trotzdem mit dem Wurzelverzeichnis des aktuellen Laufwerks. VA_FILEFONT: In msg[3] steht der FontId und in msg[4] die Fonth”he in Points (wie bei vst_points). TreeView stellt daraufhin diesen Font fr sein Fenster ein. Dies fhrt zu einem Redraw des Fensters, falls es bereits offen war. VA_WINDOPEN: Wird ignoriert. VA_DRAGACCWIND: Wurde die Maus ber einem Ordner losgelassen, so schickt TreeView die Message AV_COPY_DRAGGED an die Hauptapplikation. msg[3] = Status der Sondertasten (Control, Shift, Alternate, CapsLock), msg[4+5] Zeiger auf String mit Zielpfad. Falls die Maus nicht ber einem Ordner losgelassen wurde, so wird VA_DRAGACCWIND wie VA_START behandelt. VA_COPY_COMPLETE: Wird ignoriert. TreeView schickt folgende Messages bei folgenden Aktionen ab: AV_PROTOKOLL: Bei Start von TreeView und nach jedem empfangenen AC_CLOSE. AV_GETSTATUS: Bei Empfang von VA_PROTOSTATUS. AV_STATUS: Bei Žnderung der Fenstergr”že und wenn das Fenster aufgeht oder geschlossen wird. AV_SENDKEY: Wenn das TreeView -Fenster das oberste Fenster ist und eine Taste gedrckt wird, die TreeView nicht benutzt. AV_ASKFILEFONT: Nach Empfang von VA_PROTOSTATUS. AV_OPENWIND: Nach Doppelklick auf einen Ordner im TreeView -Fenster oder nach drcken von Ctrl-O bzw. Return wenn ein Ordner im TreeView -Fenster selektiert ist. AV_ACCWINDOPEN: Wenn TreeView sein Fenster ge”ffnet hat. AV_ACCWINDCLOSE: Wenn das Fenster von TreeView geschlossen wurde. AV_COPY_DRAGGED: Wenn VA_DRAGACCWIND mit Koordinaten ber einem Ordner im TreeView -Fenster empfangen wurde. 10.2 AV-Protokoll Messagenummern Es folgt eine tabellarische Aufstellung der Messagenummern. Diese Liste ist nicht vollst„ndig. Es sind nur die von TreeView verwendeten Messages aufgenommen. Eine vollst„ndige Auflistung steht in VAPROTO.H. Name Nummer | Name Nummer -------------------------|------------------------- AV_PROTOKOLL 0x4700 | VA_PROTOSTATUS 0x4701 AV_GETSTATUS 0x4703 | AV_STATUS 0x4704 | VA_SETSTATUS 0x4705 AV_SENDKEY 0x4710 | VA_START 0x4711 AV_ASKFILEFONT 0x4712 | VA_FILEFONT 0x4713 AV_OPENWIND 0x4720 | AV_ACCWINOPEN 0x4724 | VA_DRAGACCWIND 0x4725 AV_ACCWINDCLOSED 0x4726 | AV_COPY_DRAGGED 0x4728 | VA_COPY_COMPLETE 0x4729 10.3 Drvmap() TreeView wertet die Funktion Drvmap() bzw. besser Dsetdrv(Dgetdrv()) bei jedem ™ffnen seines Fensters aus. Wird ein neues Laufwerk angemeldet, so muž TreeView einmal geschlossen werden damit TreeView das neue Laufwerk in der Iconleiste anzeigt. 10.4 Patchvariablen Seit 1.4g gibt es eine kleine Anzahl von Patchvariablen, die es erm”glichen das Verhalten von TreeView teilweise zu beeinflussen. Es folgt nun eine kurze Aufstellung dieser Variablen und was sie bewirken. Falls Patchvariablen ver„ndert werden sollen, so ist dies immer an einer Kopie von TreeView zu machen. Niemals darf das Originalprogramm ver„ndert werden. Es darf auch keine im Patchbereich ver„nderte Kopie von TreeView weitergegeben werden, da dadurch ja das in dieser Anleitung beschriebene Verhalten von TreeView ver„ndert wird. Patchvariablen sollten auch nur dann ver„ndert werden, wenn man genau weis, was man tut! Der allgemeine Aufbau der Patchvariablen sieht folgendermažen aus: Erst folgt ein 7 Zeichen langer String, dann ein 0 Byte und anschliežend eine 2 Byte lange Zahl (ein int). 10.4.1 GDOSPRT GDOS Ger„teadresse des Druckertreibers. Standardwert: 21. šber diese Patchvariable kann die Druckerausgabe von TreeView auf ein anderes GDOS-Ger„t umgeleitet werden. 10.4.2 GDOSMET GDOS Ger„teadresse des Metafiletreibers. Standardwert: 31. šber diese Patchvariable kann die Metafileausgabe von TreeView auf ein anderes GDOS-Ger„t umgeleitet werden. 11 Epilog Fr Anregungen, Erfahrungsberichte und Fehlermeldungen bin ich immer dankbar. Auf der ersten Seite k”nnen Sie nachlesen, wie ich zu erreichen bin. Danken m”chte ich Stefan Eissing, dem Programmierer von Venus, fr die gemeinsame Entwicklung des AV-Protokolls und der Implementierung in Gemini und Venus . Aužerdem m”chte ich den vielen Betatestern fr das Testen danken. Insbesondere Stefan Hintz, der auch die verrcktesten Sachen ausprobieren muž. Viel Spaž mit dem Programm. 12 Neu in Version 12.1 V2.2 o Fehler bei zu wenig Speicher behoben 12.2 V2.1 o Bug mit eingeklapptem Root-Verzeichnis entfernt o W„hrend des Aufbauens des Verzeichnisses wird der Rechner nicht mehr blockiert, o Scrolling des Fensters im Hintergrund jetzt m”glich (langsam) o Unter MiNT wird der Verzeichnisbaum des universellen Filesystems von Laufwerk U:\ auf Laufwerk C:\TV_MINT.INF abgelegt, da auf Laufwerk U:\ nicht geschrieben werden kann. 12.3 V2.0 o Support fr multitasking f„higes AES eingebaut. o Patchvariable CONTROL entfernt, da Neueinlesen durch Drcken von Control auch ausgebaut. o TreeView macht Redraw anstelle von Scrolling, wenn Scrolling erwnscht und Fenster nicht im Vordergrund. o Bugfix bei symbolischen Links unter MiNT. o Mehrseitige Metafiles werden korrekt erzeugt. o Metafileausgabe generell berarbeitet 12.4 V1.9 o Vorbereitung fr MultiTasking. Ist ein Programm namens AVServer geladen, dann werden alle AV-Protokollmeldungen an dieses Programm geschickt. Diese Erweiterung ist fr die Nutzung unter MultiTOS notwendig. 12.5 V1.8 o Bei Esc kommt jetzt erst einmal eine Sicherheitsabfrage. o Die Einfaltungen des Dateibaumes bleiben erhalten, wenn der Dateibaum neu aufgebaut wird und der Dateibaum vorher angezeigt wurde. 12.6 V1.7 o Die Sliderpositionen werden jetzt gespeichert. Allerdings werden die Positionen nur jede Sekunde gespeichert (falls sie sich ge„ndert haben), da sonst die Gefahr besteht, daž die Messagequeue des AES berl„uft. o Die Statusinformationen werden jetzt genauer kontrolliert. Auch bei Senden eines falschen Status sollte TreeView jetzt nicht mehr abschmieren. Das Format der Statusinformationen von TreeView hat sich ge„ndert. Abgesehen davon, dass das Format eh nie dokumentiert wurde und auch nicht wird, kann es passieren, daž Statusinformationen, die von anderen Programmen fr TreeView zusammengebastelt wurden, nicht mehr akzeptiert werden. o Die Angabe der Anzahl der Ordner ist jetzt die tats„chliche Anzahl und nicht mehr die der dargestellten Ordner. o Selektieren eines Ordners, der von anderen Fenstern teilweise verdeckt wurde, fhrt nicht mehr dazu, daž dieser Ordner in andere Fenster gemalt wird. 12.7 V1.6 o Nach Drcken von Ctrl-L zeigt ein Punkt hinter dem K, daž in dem Ordner mindestens eine Datei ist. o Im Info-Dialog steht jetzt das Datum und die Uhrzeit des eingelesenen Dateibaums. o Diverse kleinere Bugfixes. 12.8 Žltere Versionen Gekrzte Zusammenfassung. o Laufwerksauswahl per Tastatur umgestellt auf Keytbl() o Laufwerksauswahl erweitert bis Z: o Datum und Uhrzeit des erstellten Verzeichnisbaums wird mit abgespeichert o Abfrage auf vorhandes GDOS war fehlerhaft o TreeView tr„gt sich jetzt sofort im Deskmen ein. o Patchvariablen eingefhrt. o Diverse kleinere Bugs entfernt. o Nach der Metafileausgabe hatte ich vergessen die Fonth”he zurckzusetzen. Dadurch traten Fehler beim Scrolling auf. Behoben. o Behandlung von nicht vorhandenen Laufwerken komplett berarbeitet. o Vorbergehend eingebautes Schliežen des Fensters nach AC_CLOSE falls noch vorhanden wieder entfernt. o Eigene Versionsnummer fr INF-Dateien. o Ctrl-I entfernt wegen Verwendung in Gemini . o Da wind_update, v_hide_c und v_show_c jetzt selbst verwaltet werden sollte es keine Probleme mehr mit verschwundenen Mauszeigern in der Menleiste geben. o Suchstring kann mittels Delete wieder verkrzt werden. o Sobald GEMINI es kann, k”nnen Icons in die durch TreeView angezeigten Ordner kopiert werden.