/* Anzeige von jpg-Dateien mit ViewTool aus DOpus5 heraus
   von Peter Hauke
   e.Mail:          twilight@rcs.urz.tu-dresden.de
   WWW:             http://rcswww.urz.tu-dresden.de/~twilight
   andere Tools:    MaschCalc (Aminet:misc/sci/maschcal.lha)

   $VER: ViewTool.dopus5 Version 1.0 (21.02.1999)

   ViewTool aus dem Aminet ist ein jpg-Anzeiger mit PPC-Unterstützung
   Dafür läßt es sich jedoch nicht von der Shell aus bedienen, sodaß
   ein einfaches Einbinden in DirectoryOpus nicht möglich ist, wie man
   es z.B. von ViewTek oder FastJPEG gewöhnt ist.

   Da das mitgelieferte ARexx-Script bei ViewTool nicht viel taugt und
   zudem fehlerbehaftet ist (die auch in der Anleitung auftauchen)
   gibts hier ein neues - es ist mein erster Versuch in ARexx, also
   haut nicht alle auf mir rum, wenn was nicht stimmt!

 */

OPTIONS RESULTS
                                                    
ADDRESS 'DOPUS.1'                                   /* Opus ist Objekt der Begierde */

lister query source stem source_handle              /* Opus ermittelt aktuelle Lister */
lister query source_handle.0 Path                   /* Pfad des aktuellen Listers ermittelt ...*/
pfad=RESULT                                         /* ... und in Variable "pfad" speichern */

lister query source_handle.0 selfiles stem files    /* Angewählte Dateinamen ermitteln und in Feld "files" abspeichern */

do a=0 to files.count-1                             /* Schleifenbeginn: von 0 bis files.count-1
                                                       in files.count wird von opus die anzahl der angewählten files gespeichert,
                                                       die zählung beginnt jedoch bei 0 (daher auch files.count-1) */
        lister select source_handle.0 files.a OFF   /* alle Files im Lister deselektieren */
    end
        lister refresh source_handle.0 full         /* Lister refreshen, damit Deselktion wirklich statt findet */

                                                    /* Die nächsten 5 Zeilen erzeugen aus dem String "pfad" und den Einträgen
                                                       im Feld files (files.0 bis files.i) einen langen String "gesamtpfad"
                                                       Hintergrund: wenn man z.B. 20 Files in einer Schleife NACHEINANDER zu
                                                       ViewTool schickt, kann man das Anzeigen nicht durch drücken von ESC ab-
                                                       brechen, da für ViewTool jeder Aufruf seperat erfolgt. Übergibt man nun
                                                       alle Dateinamen auf einmal, kann man das Anzeigen abbrechen.
                                                       Die Übergabe sieht folgendermaßen aus:
                                                       LOADIMAGE File=pfad:(files.0|files.1|files.2...|files.i) */

gesamtpfad=pfad||'('||files.0                       /* aus pfad und der ersten angewählten Datei (files.0) wird ein String gebildet */
do i=1 to files.count-1                             /* Schleifenbeginn: von 1 (weil files.0 schon abgearbeitet) bis files.count-1 */
        gesamtpfad=gesamtpfad||'|'||files.i         /* zum Dateistring "gesamtpfad" wird immer ein neues Element hinzugefügt */
    end                                             /* Schleifenende */
        gesamtpfad=gesamtpfad||')'                  /* zum Abschluß noch ein ) */


/* Übergabe an ViewTool */

    ADDRESS 'ViewToolRexx'                          /* ViewTool-Rexxport aufrufen */
        LOADIMAGE 'file='gesamtpfad                 /* ViewTool soll Datei laden */

EXIT(0)                                             /* Programmende */

