home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0600 / CCE_0645.ZIP / CCE_0645 / TREEVW18 / TREEVIEW.TXT < prev   
Text File  |  1991-10-22  |  31KB  |  707 lines

  1.  
  2.                           TreeView
  3.                  (c) 1990,91 by Stephan Gerle
  4.                         Stephan Gerle
  5.                          Version 1.8
  6.                           22.10.1991
  7.  
  8. Dies ist die Anleitung zu TreeView Version 1.8. Sie wurde erstellt mit
  9. LaTEX.
  10.  
  11. TreeView wurde entwickelt mit Turbo C für den Atari ST.
  12.  
  13. Für Fragen oder Fehlerberichte bin ich unter folgender Adresse zu
  14. erreichen:
  15.  
  16.      Gelbe Post     Stephan Gerle
  17.                     Ruthstr. 8
  18.                     4600 Dortmund 1
  19.  
  20.      Graue Post     Tel.: 0231 / 65 25 35
  21.  
  22.      E-Mail (DFÜ)   MausNet   Stephan Gerle @ DO
  23.                     Usenet    Stephan_Gerle @ do.maus.de
  24.                     Zerberus  Stephan_Gerle % DO @ ZERMAUS.ZER
  25.                     Fido-Net  Stephan Gerle % MAUS DO @ 2:242/2
  26.  
  27. Diese Anleitung darf - auch auszugsweise - nur mit Genehmigung des Autors
  28. veröffentlicht werden.
  29.  
  30.  
  31. Inhaltsverzeichnis
  32.  
  33. 1    Was ist TreeView
  34. 2    Nutzungsbedingungen
  35. 3    Bedienung
  36.      3.1  Start als PRG
  37.      3.2  Start als ACC
  38.      3.3  Aufruf von TreeView
  39.      3.4  Grafische Darstellung
  40.      3.5  Mögliche Aktionen im Fenster
  41.      3.6  Tastaturkommandos
  42. 4    Besonderheiten mit Gemini
  43. 5    Andere Programme
  44. 6    Ausgabe
  45.      6.1  Drucken
  46.      6.2  Metafile
  47.      6.3  ASSIGN.SYS
  48. 7    Probleme mit anderen Programmen
  49. 8    Fehler
  50. 9    Grenzen
  51. 10   Programmtechnisches
  52.      10.1 AV-Protokoll
  53.      10.2 AV-Protokoll Messagenummern
  54.      10.3 Drvmap()
  55.      10.4 Patchvariablen
  56. 11   Epilog
  57. 12   Neu in Version
  58.      12.1 V1.8
  59.      12.2 V1.7
  60.      12.3 V1.6
  61.      12.4 Ältere Versionen
  62.  
  63.  
  64. 1         Was ist TreeView
  65.  
  66. TreeView ist ein Programm, welches den Verzeichnisbaum von Laufwerken
  67. grafisch in einem Fenster ausgibt. Dieser grafische Verzeichnisbaum kann -
  68. um z.B. einen Überblick über die Festplattenstruktur zu erhalten -
  69. ausgedruckt werden. TreeView kann sowohl als ACC als auch als PRG bzw. APP
  70. gestartet werden. Wenn TreeView als ACC gestartet wird, existiert eine
  71. Schnittstelle zu Gemini 1.2. (dafür benötigen Sie eine Gemini in der
  72. Version 1.2 oder höher).
  73.  
  74.  
  75. 2         Nutzungsbedingungen
  76.  
  77. TreeView ist nicht Public Domain! TreeView darf aber zusammen mit diesem
  78. Text beliebig oft und für jeden kopiert werden. Dabei dürfen das Programm
  79. als auch der Text nicht modifiziert werden. TreeView darf nicht
  80. kommerziell verkauft werden. Dies schliesst auch sogenannte PD Versender
  81. aus, die mehr als den Diskettenpreis für eine Kopie verlangen. Falls
  82. TreeView regelmässig benutzt wird, so bitte ich als kleine Anerkennung um
  83. eine Postkarte von Ihrem Heimatort. Dadurch kann ich sehen, ob TreeView
  84. überhaupt zur Anwendung kommt und die Karte kann auch gleichzeitig dazu
  85. genutzt werden, Verbesserungsvorschläge und Fehlermeldungen zu notieren.
  86.  
  87.  
  88. 3         Bedienung
  89.  
  90.  
  91. TreeView kann sowohl als PRG als auch als ACC gestartet werden. TreeView
  92. erkennt automatisch, ob es als ACC gestartet wurde und installiert sich
  93. dann im DESK-Menü. Andernfalls stellt sofort den Verzeichnisbaum dar.
  94.  
  95. 3.1       Start als PRG
  96.  
  97. Wenn Sie TreeView als PRG starten, so können Sie in der Kommandozeile den
  98. anzuzeigenden Pfad angeben. Beispielsweise
  99.  
  100.                treeview c:\gemini
  101.  
  102. Wird kein bzw. ein nicht gültiger Pfad angegeben, so wird der
  103. Verzeichnisbaum von dem aktuellen Laufwerk ab dem Wurzelverzeichnis
  104. dargestellt.
  105.  
  106. 3.2       Start als ACC
  107.  
  108. Wenn Sie TreeView als ACC benutzen wollen, so muss TreeView den Namen
  109. TREEVIEW.ACC erhalten. Diese Datei kopieren Sie nun in das
  110. Wurzelverzeichnis Ihres Bootlaufwerks, damit TreeView automatisch beim
  111. Booten eingeladen wird. Rufen Sie nun TreeView aus dem DESK-Menü aus auf,
  112. so zeigt TreeView den Verzeichnisbaum des aktuellen Laufwerks ab dem
  113. Wurzelverzeichnis an.
  114.  
  115. 3.3       Aufruf von TreeView
  116.  
  117. Wenn Sie TreeView starten, so sucht TreeView in dem darzustellendem
  118. Verzeichnis nach der versteckten Datei TREEVIEW.INF (siehe auch Ctrl-S).
  119. Ist diese Datei vorhanden, so wird sie eingeladen und der Verzeichnisbaum
  120. sofort dargestellt. Fehlt diese Datei, so wird der Verzeichnisbaum
  121. erstellt. Da diese Operation relativ lange dauert, zeigt TreeView
  122. währenddessen auf dem Bildschirm an, das wievielte Verzeichnis es gerade
  123. bearbeitet.
  124.  
  125. 3.4       Grafische Darstellung
  126.  
  127. Nachdem der Verzeichnisbaum eingeladen ist, wird er grafisch in einem
  128. Fenster dargestellt. In der obersten Zeile ist ganz links ein Drucker-Icon
  129. und rechts daneben sind Icons für die aktiven Laufwerke. Darunter sieht
  130. man - abgetrennt durch eine Linie - den Verzeichnisbaum.
  131.  
  132. Jedes Verzeichnis steht in einer eigenen Zeile. In der ersten Zeile steht
  133. das Verzeichnis, ab dem der Verzeichnisbaum dargestellt wird.
  134. Unterverzeichnisse sind jeweils um einen kleinen Betrag gegenüber dem
  135. Vaterverzeichnis nach rechts eingerückt. Die Verzeichnisse sind
  136. untereinander mit Strichen verbunden. Werden die Grössenangaben (siehe
  137. Ctrl-L) mit angezeigt, so stehen die Grössen der Verzeichnisse in Kilobyte
  138. direkt vor dem Namen des Verzeichnisses.
  139.  
  140. Die Kreise vor einem Verzeichniseintrag geben an, ob die vorhandenen
  141. Unterverzeichnisse dargestellt werden.
  142.  
  143.      (+) (Kreuz im Kreis) bedeutet, die Unterverzeichnisse sind sichtbar.
  144.      (-) (waagerechter Strich im Kreis) bedeutet, die Unterverzeichnisse
  145.          sind nicht sichtbar.
  146.  
  147. 3.5       Mögliche Aktionen im Fenster
  148.  
  149. Klickt man mit der Maus auf ein (+), so werden die Unterverzeichnisse
  150. eingeklappt und aus dem wird ein (-). Somit kann man normalerweise nicht
  151. benutzte Unterverzeichnisse unsichtbar machen und die Übersichtlichtkeit
  152. der Darstellung erhöhen.
  153.  
  154. Mittels Einfachklick auf einen Verzeichniseintrag wird ein Verzeichnis
  155. selektiert. Dies hat noch keine Auswirkungen.
  156.  
  157. Ein Doppelklick auf einen Verzeichniseintrag führt unter Gemini dazu, das
  158. Gemini ein Fenster mit den Dateien, die zu dem angeklickten Verzeichnis
  159. gehören, öffnet.
  160.  
  161. Klickt man auf das Drucker-Icon, so wird man noch gefragt, ob man auf den
  162. Drucker oder in ein Metafile (Vektorgrafikformat mit der Endung .GEM,
  163. dieser Dateityp wird von verschiedenen Grafikprogrammen unterstützt)
  164. drucken oder die Aktion abbrechen möchte.
  165.  
  166. Klickt man auf ein Laufwerk's-Icon, so wird der Verzeichnisbaum des
  167. angeklickten Laufwerks ab dem Wurzelverzeichnis erst eingeladen und dann
  168. angezeigt.
  169.  
  170. 3.6       Tastaturkommandos
  171.  
  172. Backspace:     Es wird der Verzeichnisbaum ab einer Ebene höher als dem
  173.                gerade angezeigten eingeladen und anschliessend
  174.                dargestellt.
  175.  
  176. Cursortasten:  Mit den Cursortasten kann in dem Fenster gescrollt werden.
  177.                Gleichzeitig mit Shift bewirken die Cursortasten ein
  178.                seitenweises Scrolling.
  179.  
  180. Esc:           Der gerade angezeigte Dateibaum wird neu erstellt.
  181.  
  182. HELP:          Bringt eine kleine Hilfsbox zu den Tastenfunktionen auf den
  183.                Bildschirm.
  184.  
  185. Mittels dem Button "Info" wird die (früher über Ctrl-I erreichbare)
  186. Infobox aufgerufen.
  187.  
  188.      In der Infobox kann die Versionsnummer von TreeView sowie ein paar
  189.      andere Informationen nachgeguckt werden: Unter "Kommunikation mit:"
  190.      steht der Name der Hauptapplikation, falls die Hauptapplikation das
  191.      AV-Protokoll (siehe 10.1) versteht. "Max. Ordnertiefe" ist die
  192.      maximale Ordnertiefe, die TreeView gerade darstellt. "Anzahl Ordner"
  193.      ist die Anzahl der von TreeView eingelesenen Ordner.
  194.  
  195. Ctrl-L:        Wechselt die Anzeige von TreeView. Nach dem ersten Mal
  196.                drücken wird zu jedem Verzeichniseintrag noch angegeben,
  197.                wieviel Kilobytes von dem Verzeichnis belegt wird. Nach
  198.                nochmaligem Drücken von Ctrl-L verschwindet diese Anzeige
  199.                wieder. Die Grösse des Verzeichnisses errechnet sich aus
  200.                der Grösse der in dem Verzeichnis stehenden Dateien plus
  201.                der Grösse der Unterverzeichnisse.
  202.  
  203. Ctrl-S:        Hiermit kann der geladene Verzeichnisbaum abgespeichert
  204.                werden. Wird TreeView nochmal mit diesem Pfad aufgerufen,
  205.                so wird  der Verzeichnisbaum nur noch erstellt, wenn CTRL
  206.                gedrückt  wird. Ansonsten wird der abgespeicherte
  207.                Verzeichnisbaum von der Platte geladen. Dies hat den
  208.                Vorteil, dass das Einladen sehr schnell geht. Der Nachteil
  209.                ist, das Konsistenzprobleme auftreten können. Wenn man ein
  210.                Verzeichnis löscht oder ein Neues erstellt, so weiss
  211.                TreeView davon natürlich nichts. In diesem Fall muss
  212.                mittels Gedrückthalten von CTRL der Verzeichnisbaum neu
  213.                erstellt werden. Existiert zu diesem Verzeichnis noch ein
  214.                altes TREEVIEW.INF, so wird automatisch der neu erstellte
  215.                Verzeichnisbaum wieder abgespeichert. Der Verzeichnisbaum
  216.                wird in dem darzustellendem Verzeichnis als versteckte
  217.                Datei unter dem Namen TREEVIEW.INF abgelegt.
  218.  
  219. Ctrl-P:        Ist dasselbe wie Anklicken des Drucker-Icons.
  220.  
  221. Ctrl-Q:        Nur aktiv, wenn TreeView als Programm gestartet wurde. Dann
  222.                wird damit TreeView verlassen. Sonst wird dieser
  223.                Tastendruck an die Hauptapplikation gesendet (bewirkt bei
  224.                Gemini das Beenden von Gemini!).
  225.  
  226. Ctrl-D:        Bewirkt das Schliessen des Fensters. Falls TreeView als PRG
  227.                gestartet wurde, wird damit TreeView auch beendet.
  228.  
  229. Ctrl-U:        Wie Ctrl-D.
  230.  
  231. Return und
  232. Ctrl-O:        Sendet den angeklickten Pfad an die Hauptapplikation
  233.                (entspricht Open).
  234.  
  235. Alle Tasten mit ASCII-Code grösser 32 und kleiner 127 ausser ':' und '\':
  236.  
  237.                Diese Tasten werden in einem Suchstring zusammengefasst der
  238.                dann im Verzeichnisbaum gesucht wird. Wird ein passender
  239.                Ordner gefunden, so wird er selektiert und der passende
  240.                Ausschnitt aus dem Verzeichnisbaum im Fenster dargestellt.
  241.                In der Titelzeile des Fensters kann man sehen, welcher
  242.                Suchstring bereits vorgeben ist.
  243.  
  244. Delete:        Das letzte Zeichen im Suchstring wird wieder entfernt.
  245.  
  246. Space:         Space kann in einem Ordnernamen nicht vorkommen. Deshalb
  247.                wird mit dieser Taste der Suchstring wieder gelöscht und
  248.                die Suche kann von vorne beginnen.
  249.  
  250. ALT-A..P:      Das durch den Buchstaben angegebene Laufwerk (falls
  251.                vorhanden) wird angezeigt.
  252.  
  253. Tab:           Wenn ein Ordner selektiert ist, so wird ohne drücken von
  254.                Shift der nächste Ordner und mit Shift der vorherige Ordner
  255.                selektiert.
  256.  
  257. Alle anderen Tastendrücke werden an die Hauptapplikation weitergereicht.
  258.  
  259.  
  260. 4         Besonderheiten mit Gemini
  261.  
  262.  
  263. Ab Gemini V1.2 existiert in Gemini eine Schnittstelle zu Accessories.
  264. TreeView macht sich diese Schnittstelle auf mehrere Arten zunutze.
  265.  
  266. 1.   Man kann Accessories in Gemini starten (dies funktioniert schon ab
  267. Gemini V1.1). Die Accessories werden dabei natürlich nicht richtig
  268. gestartet, sondern die Acc's kriegen die Message 0x4711, in der dem Acc
  269. eine Kommandozeile übergeben wird. Legt man nun z.B. das TreeView-Icon auf
  270. den Desktop von Gemini, so kann man TreeView einfach durch Doppelklick auf
  271. das Icon starten. Man kann auch - wie bei normalen Programmen - Icons auf
  272. dieses TreeView-Icon ziehen. TreeView darf aber nur mit einer Pfadangabe
  273. gestartet werden, deshalb sollte man auch nur ein Icon auf das
  274. TreeView-Icon ziehen. TreeView extrahiert dann die Pfadangabe aus dem
  275. übergebenen Parameter und stellt den zu dem Icon gehörenden
  276. Verzeichnisbaum dar.
  277.  
  278. Man kann so ziemlich alles, was auf dem Desktop von Gemini liegt, auf das
  279. TreeView-Icon ziehen. Der Shredder repräsentiert keinen Pfad und bildet
  280. damit die einzige Ausnahme.
  281.  
  282. 2.   Macht man einen Doppelklick auf einen Verzeichniseintrag in TreeView,
  283. so wird in Gemini ein Fenster mit dem dazugehörigen Pfad geöffnet. Dies
  284. kann dazu genutzt werden, um schnell tief verschachtelte Ordner zu öffnen.
  285.  
  286. 3.   Da ich in TreeView keinen Fontselektor einbauen wollte, fragt
  287. TreeView bei jedem Start bei Gemini nach, welcher Font für die
  288. Dateifenster in Gemini eingestellt ist. Dieser Font in dieser Höhe wird
  289. dann auch von TreeView verwendet.
  290.  
  291. 4.   Falls das Fenster von TreeView offen ist, kann man in Gemini auch
  292. noch Icons in dieses Fenster legen. TreeView interpretiert dies dann als
  293. Kopieraktion der durch die Icons repräsentierten Dateien in den im
  294. TreeView angeklickten Ordner (diese Möglichkeit ist in Gemini V1.2 noch
  295. nicht implementiert). Werden die Icons nicht auf einen Ordner gezogen, so
  296. interpretiert TreeView dies als den Wunsch den zu dem Icon gehörenden
  297. Verzeichnisbaum anzuzeigen.
  298.  
  299. 5.   Gemini merkt sich den Status von TreeView. Dieser Status kann mit
  300. "Status sichern" in Gemini abgespeichert werden. Damit kann man z.B. die
  301. Lage des TreeView-Fensters und den dargestellten Pfad abspeichern.
  302.  
  303.  
  304. 5         Andere Programme
  305.  
  306.  
  307. In TreeView ist das sogenannte AV-Protokoll eingebaut. Dies ist ein Satz
  308. von Mitteilungen, die ein Acc und ein Hauptprogramm austauschen können. In
  309. 10.1 steht näheres. Jedes Programm, welches dieses Protokoll unterstützt,
  310. wird damit auch von TreeView unterstützt.
  311. Für das Protokoll wird bei Gemini V1.2 eine Headerdatei mit
  312. Defines für die Protokollnummern mitgeliefert. Für Accessories gibt es von
  313. mir eine kleine Library, die für die Unterstützung des AV-Protokolls in
  314. eigenen Accessories genutzt werden kann.
  315.  
  316.  
  317. 6         Ausgabe
  318.  
  319.  
  320. TreeView macht sämtliche Ausgaben über das VDI. Soll auf den Drucker oder
  321. in eine Metadatei ausgegeben werden, so benötigt TreeView das GDOS. GDOS
  322. können Sie bei ATARI oder jedem gutem Atari-Fachhändler beziehen.
  323.  
  324. 6.1       Drucken
  325.  
  326. TreeView druckt grundsätzlich auf GDOS-Gerät 21. Bei der Druckerausgabe
  327. kann es zu Problemen kommen, wenn man einen Font gewählt hat, der nur in
  328. einer berechneten Grösse vorliegt (z.B. doppelte Grösse). Hat man in
  329. Gemini für die Dateifenster einen Font eingestellt, der für den
  330. Druckertreiber nicht vorhanden ist, so wird die Wahl des Fonts dem Treiber
  331. überlassen. Die mir bekannten GDOS-Treiber geben dann immer den ersten
  332. Font zurück, der im ASSIGN.SYS direkt unter dem Treibereintrag steht.
  333.  
  334. 6.2       Metafile
  335.  
  336. Die Metafile-Ausgabe ist mehr als kleines Bonbon gedacht, da diese
  337. erweiterte Ausgabemöglichkeit mich genau 6 Befehle kostet. Leider gibt es
  338. damit auch am meisten Probleme. Ist unter META.SYS im ASSIGN.SYS kein Font
  339. eingetragen, so liefert der Treiber die Fonthöhe 0 zurück und damit würde
  340. alles auf eine Zeile zusammengequetscht. Deshalb geht TreeView
  341. folgendermassen vor: Existiert der ausgewählte Font nicht, so wird fürdie
  342. Fonthöhe 16 und die Fontbreite 8 Pixel gewählt.
  343.  
  344. Es gibt auch mindestens zwei verschiedene META.SYS. Das META.SYS mit der
  345. Dateilänge 9325 Bytes funktioniert. Bei einem anderen META.SYS gab es auch
  346. schon mal Bomben. Das Metafile wird im Clipboard abgelegt wenn der
  347. Clipboardpfad gesetzt worden ist. Ist der Clipboardpfad nicht gesetzt, so
  348. wird das Metafile in dem Verzeichnis des dargestellten Verzeichnisbaums
  349. abgelegt.
  350.  
  351. 6.3       ASSIGN.SYS
  352.  
  353. Für das Drucken und die Metafileausgabe benötigt TreeView, wie oben schon
  354. gesagt, GDOS. Das GDOS verwaltet VDI-Gerätetreiber sowie die dazugehörigen
  355. Fonts. Welche Gerätetreiber und Fonts vorhanden sind, wird dem GDOS
  356. mittels der Datei ASSIGN.SYS mitgeteilt. Diese Datei ist eine reine
  357. ASCII-Datei, die mit jedem Editor, der ASCII-Dateien schreiben kann,
  358. bearbeitet werden kann (z.B. Tempus, Edison).
  359.  
  360. Will man mit TreeView drucken, so muss im ASSIGN.SYS für die Gerätenummer
  361. 21 ein Druckertreiber eingetragen sein. Druckertreiber (sowie auch
  362. META.SYS) können von Atari, jedem gutem Atari-Fachhändler sowie über
  363. Mailboxen bezogen werden. Weiterhin muss mindestens ein Zeichensatz für
  364. den Druckertreiber im ASSIGN.SYS eingetragen sein. Ebenso muss unter der
  365. Gerätenummer 31 der Treiber META.SYS im ASSIGN.SYS eingetragen sein, damit
  366. mit TreeView die Metafileausgabe genutzt werden kann. Für diesen
  367. Gerätetreiber muss kein Zeichensatz eingetragen werden. Falls welche
  368. eingetragen werden, so sollten dies nur Metafile-Fonts sein.
  369.  
  370. Eine beispielhafte ASSIGN.SYS Datei könnte z.B. so aussehen:
  371.  
  372.  
  373. path = C:\GDOS\FONTS; Pfadname, in dem Fonts und Geraetetreiber sind
  374. ;
  375. ; Hier folgen dann die Geraetetreiber fuer den Bildschirm
  376. ; sie sind hier nicht aufgelistet
  377. ;
  378. ;21 FX80.SYS
  379. ;
  380. ;ATSS08EP.FNT; zwei Fonts fuer den Druckertreiber
  381. ;ATSS10EP.FNT
  382. ;
  383. ;31 META.SYS
  384.  
  385.  
  386. Sollten Probleme beim Drucken auftreten, so bitte ich um genauere Angaben
  387. zu den verwendeten Druckertreibern (Versionsnummer, Dateilänge). Mit dem
  388. FX80.SYS (einer der ältesten GDOS-Treiber) funktioniert TreeView bei mir
  389. einwandfrei.
  390.  
  391.  
  392. 7         Probleme mit anderen Programmen
  393.  
  394. 1.   Bei der Version V3.0q (oder auch andere Versionen) von
  395. Autoswitch-Overscan wird der Bildschirm weiss, wenn man mit TreeView
  396. ausdrucken will. Das liegt daran, dass TreeView einen v_clrwk()-Aufruf auf
  397. die Druckerworkstation ausführt und Autoswitch-Overscan daraufhin den
  398. Bildschirm löscht. Dies hat ansonsten keine weiteren Nebeneffekte. Nach
  399. Starten eines Programmes ist der Bildschirm wieder normal. In der
  400. aktuellen Version (mindestens 3.0v) ist der Fehler behoben.
  401.  
  402. 2.   Eine Version von Metafont von Lutz Birkhahn gibt eine Fehlermeldung
  403. aus, wenn es eine Meldung erhält, die Metafont nicht versteht. Leider
  404. gehören dazu auch Meldungen von TreeView an Metafont. Auch dieser Fehler
  405. hat ansonsten keine Nebenwirkungen.
  406.  
  407. 3.   Viele Programme können Metafiles nicht richtig lesen. Calamus 1.09
  408. z.B. ignoriert sämtliche Textangaben in Metafiles. Guck 1.5a gibt zwar
  409. alles richtig aus, verwendet aber immer den Systemzeichensatz, sodass die
  410. Texte meist zu gross dargestellt werden. Die einzigen mir bekannten
  411. Programme, die die Metafiles korrekt anzeigen sind SciGraph sowie 1st
  412. Guide.
  413.  
  414.  
  415. 8         Fehler
  416.  
  417.  
  418. Alle mir bekannten Fehler sind aus dem Programm entfernt worden. Trotzdem
  419. ist es möglich,das noch Fehler in TreeView sind.
  420.  
  421. Sollte die Verwendung von TreeView zu irgendwelchen Schäden führen, so
  422. kann ich dafür keine Verantwortung übernehmen. Aus programmtechnischer
  423. Sicht ist es allerdings ziemlich unmöglich daß die Verwendung von TreeView
  424. zu irgendwelchen Datenverlusten auf einem Massenspeicher führen kann.
  425. Sollten bei der Verwendung von TreeView Fehler auftreten, so bitte ich um
  426. eine möglichst genaue Fehlerbeschreibung. Am besten wäre ein
  427. SysMon-Listing sämtlicher Betriebssystemaufrufe. Auf jeden Fall gehören zu
  428. einer Fehlerbeschreibung aber folgende Angaben:
  429.  
  430.      1. Versionsnummer von TreeView
  431.      2. laufendes Hauptprogramm mit Versionsnummer
  432.      3. installierte residente Programme mit Versionsnummern
  433.         (a) Auto-Ordner Programme
  434.         (b) Accessories
  435.         (c) nachgeladene residente Programme
  436.         (d) Harddisktreiber (wenn vorhanden)
  437.      4. Hardwarekonfiguration
  438.         (a) verwendeter Rechner
  439.         (b) Speicherkonfiguration
  440.         (c)  verwendeter Massenspeicher
  441.         (d) zusätzlich installierte Hardware
  442.  
  443.  
  444. 9         Grenzen
  445.  
  446.  
  447. 1.   Ab einer Ordnertiefe von ca. 15 Ordnern versagt TreeView, da interne
  448. Puffer überlaufen.
  449.  
  450. 2.   Wegen der chronologischen Reihenfolge der Messages im AES und dem auf
  451. Messages basierendem AV-Protokoll ist es nicht möglich das nachträgliche
  452. Ändern des Zeichensatzes und Verschieben des Fensters beim Laden mittels
  453. Chameleon zu unterbinden.
  454.  
  455.  
  456. 10        Programmtechnisches
  457.  
  458.  
  459. Dieses Kapitel ist nur für Programmierer interessant, die TreeView von
  460. ihrem Programm aus aufrufen wollen. Der normale Anwender kann diese
  461. Kapitelüberspringen.
  462.  
  463. 10.1      AV-Protokoll
  464.  
  465. In TreeView ist das AV-Protokoll implementiert. Das AV-Protokoll ist ein
  466. eventorientiertes Protokoll, welches es ermöglicht, daß die
  467. Hauptapplikation und Accessories sich gegenseitig Dienste anbieten. Die
  468. Kommunikation des Accessories mit der Hauptapplikation geschiehtüber das
  469. Messagesystemdes AES.
  470.  
  471. TreeView nutzt nur einen kleinen Teil der bereits definierten Messages des
  472. AV-Protokolls aus. Eine Aufstellung aller bereits definierten Messages des
  473. AV-Protokolls kann man in VAPROTO.H (wird mit Gemini V1.2 mitgeliefert
  474. bzw. kann bei mir oder Stefan Eissing bezogen werden) nachlesen.
  475. Untenstehende Erklärung benutzt teilweise C-Notation.
  476.  
  477. TreeView geht beim Programmstart als ACC nun folgendermassen vor:
  478.  
  479. 1.   Die Meldung AV_PROTOKOLL wird an die Hauptapplikation (ap_id = 0)
  480.      geschickt.
  481.           msg[6+7] = "TREEVIEW"
  482.           msg[3] = 1|2
  483.           msg[4]  = 0
  484.           msg[5] = 0
  485.      Das bedeutet, das TreeView VA_SETSTATUS und VA_START versteht.
  486.  
  487. 2.   Nun geht TreeView in die Messageschleife und wartet auf Messages.
  488.      TreeView reagiert bei erhalt folgender Messages:
  489.  
  490.      VA_PROTOSTATUS:
  491.           Die Message muss folgenden Aufbau haben:
  492.           msg[6+7] = Zeiger auf nullterminierten String wie bei appl_find
  493.                      verwendet.
  494.           msg[3] enthält Bitvektor.
  495.  
  496.           Die Bits haben folgende Bedeutung:
  497.  
  498.      __Word____Bit___Applikation_kennt_Message_________________Verwendet__
  499.  
  500.         3      0     AV_SENDKEY                                  x
  501.                1     AV_ASKFILEFONT                              x
  502.                2     AV_ASKCONFONT, AV_OPENCONSOLE
  503.                3     AV_ASKOBJECT
  504.                4     AV_OPENWIND                                 x
  505.                5     AV_STARTPROG
  506.                6     AV_ACCWINDOPEN, AV_ACCWINDCLOSED            x
  507.                7     AV_STATUS, AV_GETSTATUS                     x
  508.                8     AV_COPY_DRAGGED                             x
  509.  
  510.           Alle anderen Bits müssen 0 sein. Ebenso müssen msg[4] und msg[5]
  511.           0 sein. Durch den Bitvektor wird gewährleistet, dass das ACC
  512.           weiss, welche Messages die Hauptapplikation kennt und auch nur
  513.           die Messages abschickt, die von der Hauptapplikation verstanden
  514.           werden. TreeView schickt daraufhin die Messages AV_ASKFILEFONT
  515.           und AV_GETSTATUS an die Hauptapplikation.
  516.  
  517.      VA_SETSTATUS:
  518.           Der vorher mit AV_STATUS gesendete Status von TreeView wird
  519.           wieder eingestellt. In msg[3+4] muss ein Zeiger auf den Status
  520.           sein. NULL ist erlaubt. Dann wird die Message ignoriert. Im
  521.           Status speichert TreeView ab, wo das Fenster lag, welcher Pfad
  522.           angezeigt wurde und ob das Fenster offen war. Das Format des
  523.           Status ist nicht dokumentiert.
  524.  
  525.      VA_START:
  526.           Mit dieser Message kann TreeView geöffnet werden und
  527.           gleichzeitig der anzuzeigende Pfad übergeben werden.
  528.           In msg[3+4] steht ein Zeiger auf den anzuzeigenden Pfad. Ist der
  529.           Pfad nicht gültig, so öffnet sich das Fenster von TreeView
  530.           trotzdem mit dem Wurzelverzeichnis des aktuellen Laufwerks.
  531.  
  532.      VA_FILEFONT:
  533.           In msg[3] steht der FontId und in msg[4] die Fonthöhe in Points
  534.           (wie bei vst_points). TreeView stellt daraufhin diesen Font für
  535.           sein Fenster ein. Dies führt zu einem Redraw des Fensters, falls
  536.           es bereits offen war.
  537.  
  538.      VA_WINDOPEN:
  539.           Wird ignoriert.
  540.  
  541.      VA_DRAGACCWIND:
  542.           Wurde die Mausu"ber einem Ordner losgelassen, so schickt
  543.           TreeView die Message AV_COPY_DRAGGED an die Hauptapplikation.
  544.                msg[3] = Status der Sondertasten (Control, Shift,
  545.                         Alternate, CapsLock),
  546.                msg[4+5] Zeiger auf String mit Zielpfad.
  547.           Falls die Maus nicht über einem Ordner losgelassen wurde, so
  548.           wird VA_DRAGACCWIND wie VA_START behandelt.
  549.  
  550.      VA_COPY_COMPLETE:
  551.           Wird ignoriert.
  552.  
  553. TreeView schickt folgende Messages bei folgenden Aktionen ab:
  554.  
  555.      AV_PROTOKOLL:       Bei Start von TreeView und nach jedem empfangenen
  556.                          AC_CLOSE.
  557.      AV_GETSTATUS:       Bei Empfang von VA_PROTOSTATUS.
  558.      AV_STATUS:          Bei "Anderung der Fenstergrösse und wenn das
  559.                          Fenster aufgeht oder geschlossen wird.
  560.      AV_SENDKEY:         Wenn das TreeView-Fenster das oberste Fenster ist
  561.                          und eine Taste gedrückt wird, die TreeView nicht
  562.                          benutzt.
  563.      AV_ASKFILEFONT:     Nach Empfang von VA_PROTOSTATUS.
  564.      AV_OPENWIND:        Nach Doppelklick auf einen Ordner im
  565.                          TreeView-Fenster oder nach drücken von Ctrl-O
  566.                          bzw. Return wenn ein Ordner im TreeView-Fenster
  567.                          selektiert ist.
  568.      AV_ACCWINDOPEN:     Wenn TreeView sein Fenster geöffnet hat.
  569.      AV_ACCWINDCLOSE:    Wenn das Fenster von TreeView geschlossen wurde.
  570.      AV_COPY_DRAGGED:    Wenn VA_DRAGACCWIND mit Koordinaten über einem
  571.                          Ordner im TreeView-Fenster empfangen wurde.
  572.  
  573. 10.2      AV-Protokoll Messagenummern
  574.  
  575. Es folgt eine tabellarische Aufstellung der Messagenummern. Diese Liste
  576. ist nicht vollständig. Es sind nur die von TreeView verwendeten Messages
  577. aufgenommen. Eine vollständige Auflistungsteht in VAPROTO.H.
  578.  
  579. __Name__________________Nummer__|___Name__________________Nummer_____
  580.   AV_PROTOKOLL          0x4700  |   VA_PROTOSTATUS        0x4701
  581.   AV_GETSTATUS          0x4703  |
  582.   AV_STATUS             0x4704  |   VA_SETSTATUS          0x4705
  583.   AV_SENDKEY            0x4710  |   VA_START              0x4711
  584.   AV_ASKFILEFONT        0x4712  |   VA_FILEFONT           0x4713
  585.   AV_OPENWIND           0x4720  |
  586.   AV_ACCWINOPEN         0x4724  |  VA_DRAGACCWIND         0x4725
  587.   AV_ACCWINDCLOSED      0x4726  |
  588.   AV_COPY_DRAGGED       0x4728  |  VA_COPY_COMPLETE       0x4729
  589.  
  590. 10.3      Drvmap()
  591.  
  592. TreeView wertet die Funktion Drvmap() bei jedem Öffnen seines Fensters
  593. aus. Wird ein neues Laufwerk angemeldet, so muss TreeView einmal
  594. geschlossen werden, damit TreeView das neue Laufwerk in der Iconleiste
  595. anzeigt.
  596.  
  597. 10.4      Patchvariablen
  598.  
  599. Seit 1.4g gibt es eine kleine Anzahl von Patchvariablen, die es ermöglichen
  600. das Verhalten von \TreeView teilweise zu beeinflussen.
  601. Es folgt nun eine kurze Aufstellung dieser Variablen und was sie bewirken.
  602. Falls Patchvariablen verändert werden sollen, so ist dies immer an einer
  603. Kopie von TreeView zu machen. Niemals darf das Originalprogramm verändert
  604. werden.
  605. Es darf auch keine im Patchbereich veränderte Kopie von TreeView weiter-
  606. gegeben werden, da dadurch ja das in dieser Anleitung beschriebene Verhalten
  607. von TreeView verändert wird.
  608. Patchvariablen sollten auch nur dann verändert werden, wenn man genau weis,
  609. was man tut!
  610. Der allgemeine Aufbau der Patchvariablen sieht folgendermaßen aus: Erst
  611. folgt ein 7 Zeichen langer String, dann ein 0 Byte und anschließend eine
  612. 2 Byte lange Zahl (ein int).
  613.  
  614. 10.4.1    GDOSPRT
  615.  
  616. GDOS Geräteadresse des Druckertreibers. Standardwert: 21. Über diese
  617. Patchvariable kann die Druckerausgabe von TreeView auf ein anderes
  618. GDOS-Gerät umgeleitet werden.
  619.  
  620. 10.4.2    GDOSMET
  621.  
  622. GDOS Geräteadresse des Metafiletreibers. Standardwert: 31. Über diese
  623. Patchvariable kann die Metafileausgabe von TreeView auf ein anderes
  624. GDOS-Gerät umgeleitet werden.
  625.  
  626. 10.4.3    CONTROL
  627.  
  628. Standardwert: 4. Diese Patchvariable dient als Maske für die Rückgabe von
  629. Kbshift(-1). Ist das Ergebnis ungleich 0, so wird beim Einlesen des
  630. Verzeichnisbaums auf jeden Fall der Verzeichnisbaum neu erstellt. Ein
  631. eventuell vorhandenes TREEVIEW.INF wird dann ignoriert.
  632.  
  633. 11        Epilog
  634.  
  635. Für Anregungen, Erfahrungsberichte und Fehlermeldungen bin ich immer
  636. dankbar. Auf der ersten Seite können Sie nachlesen, wie ich zu erreichen
  637. bin.
  638.  
  639. Danken möchte ich Stefan Eissing, dem Programmierer von Venus, für die
  640. gemeinsame Entwicklung des AV-Protokolls und der Implementierung in Gemini
  641. und Venus.
  642.  
  643. Ausserdem möchte ich den vielen Betatestern für das Testen danken.
  644. Insbesondere Stefan Hintz, der auch die verrücktesten Sachen ausprobieren
  645. muss.
  646.  
  647. Viel Spass mit dem Programm.
  648.  
  649.  
  650. 12        Neu in Version
  651.  
  652. 12.1      V1.8
  653.       o   Bei Esc kommt jetzt erst einmal eine Sicherheitsabfrage.
  654.       o   Die Einfaltungen des Dateibaumes bleiben erhalten, wenn der Dateibaum
  655.           neu aufgebaut wird und der Dateibaum vorher angezeigt wurde.
  656.  
  657. 12.2      V1.7
  658.       o   Die Sliderpositionen werden jetzt gespeichert. Allerdings werden die
  659.           Positionen nur jede Sekunde gespeichert (falls sie sich geändert haben),
  660.           da sonst die Gefahr besteht, daß die Messagequeue des AES überläuft.
  661.       o   Die Statusinformationen werden jetzt genauer kontrolliert. Auch bei
  662.           Senden eines falschen Status sollte TreeView jetzt nicht mehr
  663.           abschmieren.
  664.           Das Format der Statusinformationen von TreeView hat sich geändert.
  665.           Abgesehen davon, daß das Format eh nie dokumentiert wurde und auch nicht
  666.           wird, kann es passieren, daß Statusinformationen, die von anderen
  667.           Programmen für TreeView zusammengebastelt wurden, nicht mehr
  668.           akzeptiert werden.
  669.       o   Die Angabe der Anzahl der Ordner ist jetzt die tatsächliche Anzahl und
  670.           nicht mehr die der dargestellten Ordner.
  671.       o   Selektieren eines Ordners, der von anderen Fenstern teilweise verdeckt
  672.           wurde, führt nicht mehr dazu, daß dieser Ordner in andere Fenster
  673.           gemalt wird.
  674.  
  675. 12.3      V1.6
  676.       o   Nach Drücken von Ctrl-L zeigt ein Punkt hinter dem K, daß
  677.           in dem Ordner mindestens eine Datei ist.
  678.       o   Im Info-Dialog steht jetzt das Datum und die Uhrzeit des eingelesenen
  679.           Dateibaums.
  680.       o   Diverse kleinere Bugfixes.
  681.  
  682. 12.4      Ältere Versionen
  683.  
  684. Gekürzte Zusammenfassung.
  685.  
  686.       o   Laufwerksauswahl per Tastatur umgestellt auf Keytbl()
  687.       o   Laufwerksauswahl erweitert bis Z:
  688.       o   Datum und Uhrzeit des erstellten Verzeichnisbaums wird mit abgespeichert
  689.       o   Abfrage auf vorhandes GDOS war fehlerhaft
  690.       o   TreeView trägt sich jetzt sofort im Deskmenü ein.
  691.       o   Patchvariablen eingeführt.
  692.       o   Diverse kleinere Bugs entfernt.
  693.       o      Nach der Metafileausgabe hatte ich vergessen die Fonthöhe zurück-
  694.           zusetzen. Dadurch traten Fehler beim Scrolling auf. Behoben.
  695.       o   Behandlung von nicht vorhandenen Laufwerken komplett überarbeitet.
  696.       o   Vorübergehend eingebautes schliessen des Fensters nach AC_CLOSE
  697.           falls noch vorhanden wieder entfernt.
  698.       o   Eigene Versionnummer für INF-Dateien
  699.       o   Ctrl-I entfernt wegen Verwendung in Gemini .
  700.       o   Da wind_update, v_hide_c und v_show_c jetzt selbst verwaltet
  701.           werden, sollte es keine Probleme mehr mit verschwundenen
  702.           Mauszeigern in der Menüleiste geben.
  703.       o   Suchstring kann mittels Delete wieder verkürzt werden.
  704.       o   Sobald GEMINI es kann, können Icons in die durch TreeView
  705.           angezeigten Ordner kopiert werden.
  706.  
  707.