/* Assemblage des fenêtres "en mosaïque" à l'écran */
/* Version 1.00: Chez Corbin, Dimanche 21 Février 1999 */
/* $VER: Mosaïque 1.00 (© R.Florac, 21/02/99) */

/* Si le script est appelé avec un argument, si m vaut 1 c'est
 * une mosaïque verticale, sinon ce sera une mosaïque horizontale
 * S'il n'y a aucun argument qui soit passé le programme demande
 * le type de mosaïque à utiliser (s'il y a plus d'une fenêtre) */
parse arg m

options results     /* indispensable pour récupérer le résultat des macros */

signal on error     /* pour l'interception des erreurs */
signal on syntax

'SELTEXT(-1)'; to=result
'NBTEXT(-1)'; nt=result
if nt<3 then do
    texte.0=0
    call desiconifier(0)
    if nt=2 then do
	texte.1=1
	call desiconifier(1)
    end
    t=nt
end
else do
    t=0
    do forever
	'REQTEXT("Texte 't+1' à afficher?"+CHR(10)+"Bouton droit pour arrêter")'
	f=result
	if f>0 then do
	    call desiconifier(f-1)
	    texte.t=f-1
	    t=t+1
	    if t=nt then leave
	end
	else leave
    end
end
if t=0 then exit
if m='' then do
    if t>1 then do
	'SELECT("Disposition fenêtres"+CHR(10)+"Mosaïque verticale"+CHR(10)+"Mosaïque horizontale")'
	m=result
	if m<1 then exit
    end
    else m=2
end

'MESURE(6)'; largeur=result
'MESURE(7)'; hauteur=result

if m=1 then do
    largeur=largeur%t
    hauteur=(hauteur*80)%100
    do i=0 to t-1
	'SELTEXT('texte.i'):WINDOW('i*largeur',1,'largeur','hauteur'):TOFRONT('texte.i')'
    end
end
else do
    hauteur=((hauteur*90)%100)%t
    do i=0 to t-1
	'SELTEXT('texte.i'):WINDOW(0,1+'i*hauteur','largeur','hauteur'):TOFRONT('texte.i')'
    end
end
'SELTEXT('to'):GOTO(COL,LINE)'
exit

desiconifier: procedure
    parse arg f
    'SELTEXT('f'):IF(MESURE(2)<0,WINDOW(1,1,1,1),0)'
    /* Il faut attendre que la fenêtre soit effectivement ré-ouverte */
    do i=1 to 15000
	'SELTEXT('f'):MESURE(2)'; if result>0 then leave
    end
    return

/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
'MESSAGE("Script Mosaïque.amitex"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
exit

error:
'MESSAGE("Script Mosaïque.amitex"+CHR(10)+"Erreur en ligne 'SIGL'")'
exit
