home *** CD-ROM | disk | FTP | other *** search
- /* Personal Paint Amiga Rexx script - Copyright © 1995-1997 Cloanto Italia srl */
-
- /* $VER: Slideshow.pprx 1.0 */
-
- /** ENG
- This is a simple slideshow script. It normally displays all images
- and animations which it finds in the specified directory (and
- subdirectories).
-
- When the script is launched, it first searches for a file named
- "T:pprx_slideshow.list". If this file exists, the script displays the
- artwork files listed in the file. The file must contain two lines for
- each image or animation: the first line containing the path, and the
- second line indicating how often the item should be repeated (useful for
- animations).
-
- To have a slideshow loop automatically and unattended, both the Repeat and
- the Automatic options in the initial requester should be selected.
- */
-
- /** DEU
- Ein einfaches Skript zur Erzeugung einer Diaschau, welches
- im Normalfall alle Bilder und Animationen im angegebenen Verzeichnis
- (und in dessen Unterverzeichnissen) anzeigt.
-
- Sobald das Skript ausgeführt wird, sucht es zunächst eine Datei
- namens "T:pprx_slideshow.list" und zeigt die darin enthaltenen
- Bilder und Animationen an. Die Datei muß für jedes Bild (oder
- jede Animation) jeweils zwei Zeilen enthalten: Die erste Zeile
- enthält den Pfad, die zweite die gewünschte Anzahl von Wiederholungen
- (besonders geeignet bei Animationen).
-
- Um eine automatisch endlos ablaufende Diaschau zu erzeugen,
- müssen im ersten Dialogfenster die Optionen "Wiederholen" und
- "Automatisch" aktiviert sein.
- */
-
- /** ITA
- Questo è uno script per creare una semplice proiezione di immagini e
- animazioni. In genere mostra tutte le immagini e le animazioni che trova
- nel cassetto specificato (e negli eventuali cassetti in esso contunuti).
-
- Quando si avvia lo script, esso ricerca per prima cosa un file chiamato
- "T:pprx_slideshow.list". Se tale file esiste, lo script mostra i file grafici
- là elencati. Il file deve contenere due righe per ciascuna immagine o
- animazione: la prima contiene il percorso completo di nome di file, la
- seconda indica quante volte ripetere la voce (utile per le animazioni).
-
- Per ottenere una proiezione che riparta automaticamente
- si dovrebbero selezionare entrambe le opzioni Ripetuto e
- Automatico nella finestra di dialogo iniziale.
- */
-
- IF ARG(1, EXISTS) THEN
- PARSE ARG PPPORT
- ELSE
- PPPORT = 'PPAINT'
-
- IF ~SHOW('P', PPPORT) THEN DO
- IF EXISTS('PPaint:PPaint') THEN DO
- ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
- DO 30 WHILE ~SHOW('P',PPPORT)
- ADDRESS COMMAND 'Wait >NIL: 1 SEC'
- END
- END
- ELSE DO
- SAY "Personal Paint could not be loaded."
- EXIT 10
- END
- END
-
- IF ~SHOW('P', PPPORT) THEN DO
- SAY 'Personal Paint Rexx port could not be opened'
- EXIT 10
- END
-
- ADDRESS VALUE PPPORT
- OPTIONS RESULTS
- OPTIONS FAILAT 10000
-
- Get 'LANG'
- IF RESULT = 1 THEN DO /* Deutsch */
- txt_title_filreq = 'Grafikverzeichnis auswählen'
- txt_title_options = 'Diaschau-Optionen'
- txt_gad_repeat = 'Wiede_rholen:'
- txt_gad_auto = 'Auto_matisch:'
- txt_msg_stopped = 'Diaschau wurde unterbrochen'
- txt_msg_complete = 'Diaschau beendet'
- txt_err_oldclient = 'Für dieses Skript_ist eine neuere Version_von Personal Paint erforderlich'
- txt_err_nolist = 'Listendatei konnte nicht_geöffnet werden'
- END
- ELSE IF RESULT = 3 THEN DO /* Français */
- txt_title_filreq = 'Choisir le répertoire des graphismes'
- txt_title_options = 'Options de diaporama'
- txt_gad_repeat = '_Répéter :'
- txt_gad_auto = 'Auto_matique :'
- txt_msg_stopped = 'Le diaporama a été interrompu'
- txt_msg_complete = 'Diaporama terminé'
- txt_err_oldclient = 'Ce script nécessite une nouvelle_version de Personal Paint'
- txt_err_nolist = "Impossible d'ouvrir le fichier de liste."
- END
- ELSE IF RESULT = 2 THEN DO /* Italiano */
- txt_title_filreq = 'Selezionare cassetto immagini'
- txt_title_options = 'Opzioni slideshow'
- txt_gad_repeat = '_Ripetuto:'
- txt_gad_auto = 'Auto_matico:'
- txt_msg_stopped = 'Lo slideshow è stato interrotto'
- txt_msg_complete = 'Slideshow terminato'
- txt_err_oldclient = 'Questa procedura richiede_una versione più recente_di Personal Paint'
- txt_err_nolist = 'Il file indice non può essere aperto'
- END
- ELSE DO /* English */
- txt_title_filreq = 'Select artwork directory'
- txt_title_options = 'Slideshow Options'
- txt_gad_repeat = '_Repeat:'
- txt_gad_auto = 'Auto_matic:'
- txt_msg_stopped = 'The slideshow has been stopped'
- txt_msg_complete = 'Slideshow complete'
- txt_err_oldclient = 'This script requires a newer_version of Personal Paint'
- txt_err_nolist = 'List file could not be opened'
- END
-
- Version 'REXX'
- IF RESULT < 7 THEN DO
- RequestNotify 'PROMPT "'txt_err_oldclient'"'
- EXIT 10
- END
-
- DeleteFrames 'ALL'
- IF RC = 5 THEN
- EXIT 0
-
- FreeEnvironment 'QUERY'
- IF RC = 5 THEN
- EXIT 0
-
- tmpfname = 'T:pprx_slideshow.list'
-
- LockGUI
-
- IF ~EXISTS(tmpfname) THEN DO
- RequestPath '"'txt_title_filreq'"'
- IF RC = 0 THEN DO
- tmpfname = 'T:pprx_temp.'PRAGMA('ID')
- ADDRESS COMMAND 'List >'tmpfname' 'RESULT' NOHEAD PAT=~(#?.info) LFORMAT="*"%s%s*"*N1" ALL FILES'
- END
- END
-
- originalbars = ''
- listopen = 0
- SIGNAL ON Break_C
-
- IF EXISTS(tmpfname) THEN DO
- Request '"'txt_title_options'" "CHECK = ""'txt_gad_repeat'"", 0 CHECK = ""'txt_gad_auto'"", 1 "'
- IF RC = 0 THEN DO
- repeat = RESULT.1
- automatic = RESULT.2
- IF automatic THEN
- noprog = ''
- ELSE
- noprog = 'NOPROGRESS'
-
- Get 'BARS'
- originalbars = RESULT
- IF OPEN('listfile', tmpfname, 'R') THEN DO
- listopen = 1
- errcode = 0
- Set '"BARS=0"'
- DO FOREVER
- prevpos = SEEK('listfile', 0, CURRENT)
- curfname = READLN('listfile')
- IF EOF('listfile') THEN DO
- IF repeat THEN DO
- SEEK('listfile', 0, BEGIN)
- ITERATE
- END
- ELSE LEAVE
- END
- curtimes = READLN('listfile')
- IF EOF('listfile') THEN DO
- IF repeat THEN DO
- SEEK('listfile', 0, BEGIN)
- ITERATE
- END
- ELSE LEAVE
- END
-
- IF DATATYPE(curtimes) ~= 'NUM' THEN curtimes = 1
- curtimes = ABS(curtimes)
- curtimes = TRUNC(curtimes)
- IF curtimes < 1 THEN curtimes = 1
-
- GetFileFormat curfname
- IF RC = 0 THEN DO
- IF UPPER(RESULT) = 'ANIM' THEN
- PlayFile curfname 'TIMES' curtimes 'FORCE QUIET' noprog
- ELSE DO
- LoadImage curfname 'FORCE QUIET' noprog
- IF RC = 0 & automatic THEN
- ADDRESS COMMAND 'Wait >NIL: 3 SEC'
- END
- IF RC = 5 THEN
- errcode = 5
- IF RC = 0 & ~automatic THEN DO
- WaitForClick
- IF RC ~= 0 THEN
- errcode = 5
- END
- END
- IF errcode > 0 THEN BREAK
- END
- CALL CLOSE('listfile')
- listopen = 0
- IF errcode > 0 THEN
- RequestNotify 'PROMPT "'txt_msg_stopped'"'
- ELSE
- RequestNotify 'PROMPT "'txt_msg_complete'"'
- END
- ELSE
- RequestNotify 'PROMPT "'txt_err_nolist'"'
-
- Set '"BARS='originalbars'"'
- END
- ADDRESS COMMAND 'Delete >NIL: 'tmpfname
- END
- UnlockGUI
- EXIT 0
-
-
-
- Break_C:
-
- if originalbars ~= '' THEN
- Set '"BARS='originalbars'"'
- IF listopen THEN
- CALL CLOSE('listfile')
- ADDRESS COMMAND 'Delete >NIL: 'tmpfname
-
- RETURN
-