



                             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
 verffentlicht 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  Mgliche 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 bentigen Gemini 1.2 oder hher).


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 schliet auch
sogenannte PD Versender aus, die mehr als den Diskettenpreis fr eine
Kopie verlangen.

Falls TreeView regelmig 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, Verbesserungsvorschlge 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. DFler knnen 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 fhiges 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 fhiges 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 knnen 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 whrenddessen 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 Grenangaben3 mit angezeigt, so stehen die Gren der
Verzeichnisse in Kilobyte direkt vor dem Namen des Verzeichnisses. Zwischen
der Grenangabe 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   Mgliche 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 erhhen.

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
gehren, 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 mchte.

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 hher als dem
   gerade angezeigten eingeladen und anschlieend 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 Gre des Verzeichnisses errechnet sich aus der Gre der in dem
   Verzeichnis stehenden Dateien plus der Gre 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 knnen.
    Wenn man ein Verzeichnis lscht 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 Schlieen 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 grer 32 und kleiner 127 auer ':' und '\': Diese
   Tasten werden in einem Suchstring zusammengefat 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 gelscht 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 nchste
   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
     gehrenden Verzeichnisbaum dar.
     Man kann so ziemlich alles, was auf dem Desktop von Gemini liegt, auf das
     TreeView -Icon ziehen. Der Shredder reprsentiert 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 dazugehrigen Pfad geffnet. 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 Hhe 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 reprsentierten 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 gehrenden 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
     fhiges 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 knnen. In 10.1
steht nheres.
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 smtliche Ausgaben ber das VDI. Soll auf den Drucker oder
in eine Metadatei ausgegeben werden, so bentigt TreeView das GDOS.
GDOS knnen Sie bei ATARI oder jedem gutem Atari-Fachhndler beziehen.



6.1   Drucken


TreeView druckt grundstzlich auf GDOS-Gert 21.

Bei der Druckerausgabe kann es zu Problemen kommen, wenn man einen Font
gewhlt hat, der nur in einer berechneten Gre vorliegt (z.B. doppelte Gre).
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 Fonthhe 0 zurck und damit wrde
alles auf eine Zeile zusammengequetscht.
Deshalb geht TreeView folgendermaen vor: Existiert der ausgewhlte Font nicht,
so wird die Fonthhe aus der Pointhhe des dargestellten Fonts und den
Pixelausmaen berechnet.

Es gibt auch mindestens zwei verschiedene META.SYS. Das META.SYS mit der
Dateilnge 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 bentigt TreeView, wie oben schon
gesagt, GDOS.
Das GDOS verwaltet VDI-Gertetreiber sowie die dazugehrigen Fonts.
Welche Gertetreiber 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 Gertenummer 21 ein
Druckertreiber eingetragen sein. Druckertreiber (sowie auch META.SYS) knnen
von Atari, jedem gutem Atari-Fachhndler sowie ber Mailboxen bezogen werden.
Weiterhin mu mindestens ein Zeichensatz fr den Druckertreiber im ASSIGN.SYS
eingetragen sein. Ebenso mu unter der Gertenummer 31 der Treiber META.SYS
im ASSIGN.SYS eingetragen sein, damit mit TreeView die Metafileausgabe genutzt
werden kann. Fr diesen Gertetreiber mu kein Zeichensatzeingetragen werden.
Falls welche eingetragen werden, so sollten dies nur Metafile-Fonts sein.
Eine beispielhafte ASSIGN.SYS Datei knnte 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, Dateilnge).
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 lscht.
    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 erhlt, die Metafont nicht versteht. Leider gehren dazu
 auch
    Meldungen von TreeView an Metafont.
    Auch dieser Fehler hat ansonsten keine Nebenwirkungen.

 3. Viele Programme knnen Metafiles nicht richtig lesen.
    Calamus 1.09 z.B. ignoriert smtliche 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 mglich.
Trotzdem ist es mglich, das noch Fehler in TreeView sind.
Sollte die Verwendung von TreeView zu irgendwelchen Schden fhren, so kann ich
dafr keine Verantwortung bernehmen.
Aus programmtechnischer Sicht ist es allerdings ziemlich unmglich 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
mglichst genaue Fehlerbeschreibung.
Am besten wre ein SysMon-Listing smtlicher Betriebssystemaufrufe.


Auf jeden Fall gehren 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) zustzlich 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 mglich das nachtrgliche 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 ermglicht, 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 Erklrung benutzt teilweise C-Notation.

TreeView geht beim Programmstart als ACC nun folgendermaen 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] enthlt 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 gewhrleistet, 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 geffnet 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 Fonthhe 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 Fenstergre 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 geffnet 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
vollstndig. Es sind nur die von TreeView verwendeten Messages aufgenommen. Eine
vollstndige 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 ermglichen
das Verhalten von TreeView teilweise zu beeinflussen.
Es folgt nun eine kurze Aufstellung dieser Variablen und was sie bewirken.
Falls Patchvariablen verndert werden sollen, so ist dies immer an einer Kopie
von TreeView zu machen. Niemals darf das Originalprogramm verndert werden. Es
darf auch keine im Patchbereich vernderte Kopie von TreeView weitergegeben
werden, da dadurch ja das in dieser Anleitung beschriebene Verhalten von
 TreeView
verndert wird.
Patchvariablen sollten auch nur dann verndert werden, wenn man genau weis, was
man tut!
Der allgemeine Aufbau der Patchvariablen sieht folgendermaen aus: Erst folgt
ein 7 Zeichen langer String, dann ein 0 Byte und anschlieend eine 2 Byte
lange Zahl (ein int).



10.4.1  GDOSPRT


GDOS Gerteadresse des Druckertreibers. Standardwert: 21. ber diese
 Patchvariable
kann die Druckerausgabe von TreeView auf ein anderes GDOS-Gert umgeleitet
 werden.



10.4.2  GDOSMET


GDOS Gerteadresse des Metafiletreibers. Standardwert: 31. ber diese
 Patchvariable
kann die Metafileausgabe von TreeView auf ein anderes GDOS-Gert umgeleitet
 werden.



11  Epilog


Fr Anregungen, Erfahrungsberichte und Fehlermeldungen bin ich immer dankbar.
Auf der ersten Seite knnen Sie nachlesen, wie ich zu erreichen bin.

Danken mchte ich Stefan Eissing, dem Programmierer von Venus, fr die
 gemeinsame
Entwicklung des AV-Protokolls und der Implementierung in Gemini und Venus .

Auerdem mchte 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 Whrend des Aufbauens des Verzeichnisses wird der Rechner nicht mehr
   blockiert,
 o Scrolling des Fensters im Hintergrund jetzt mglich (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 fhiges 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 gendert haben),
   da sonst die Gefahr besteht, da die Messagequeue des AES berluft.

 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 gendert.
   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 tatschliche 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 trgt sich jetzt sofort im Deskmen ein.

 o Patchvariablen eingefhrt.

 o Diverse kleinere Bugs entfernt.

 o Nach der Metafileausgabe hatte ich vergessen die Fonthhe zurckzusetzen.
   Dadurch traten Fehler beim Scrolling auf. Behoben.

 o Behandlung von nicht vorhandenen Laufwerken komplett berarbeitet.

 o Vorbergehend eingebautes Schlieen 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, knnen Icons in die durch TreeView angezeigten Ordner
   kopiert werden.
