/*
** $VER: Pixload Prefs 2.2
** www.Pixel-Art.fr.st
*/

signal on halt
signal on break_c

call init
call CreateApp
call Lecture
call HandleApp

/*******************************************/
init: procedure expose nbicon taille volume

   l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
   if AddLibrary("rxmui.library")~=0 then exit
   call RxMUIOpt("debugmode showerr")

   call open(chemin,"Pixload:Prefs/Pixload.prefs",'Read')
        nbicon=readln(chemin)
        rien=readln(chemin)
        rien2=readln(chemin)
        volume=readln(chemin)
        taille=readln(chemin)
   close(chemin)
return
/**************************************************/
HandleApp: procedure expose nbicon taille volume
    ctrl_c=2**12
    do forever
        call NewHandle("app","h",ctrl_c)
        if and(h.signals,ctrl_c)>0 then exit
        select
           when h.event="QUIT" then exit
           otherwise interpret h.event
        end
    end
/* never reached */
/*************************************************/
CreateApp: procedure expose nbicon taille volume

     fenetre_info.Class="Win"
     fenetre_info.dragbar=0
     fenetre_info.borderless=1
     fenetre_info.closegadget=0
     fenetre_info.depthgadget=0
     fenetre_info.sizegadget=0

     fenetre_info.Contents="info_group"

       info_group.0="info_contenu"

        info_contenu.Class="text"
        info_contenu.Font="Big"
        info_contenu.Contents=ParseText("%3%c              Pixload Prefs 2.2              ")

       info_group.1=hbar()
       info_group.2=vspace(2)

       info_group.3="info_contenu_1"
        info_contenu_1.Class="text"
        info_contenu_1.Font="Big"
        info_contenu_1.Contents=""

    if NewObj("window","fenetre_info")>0 then exit

    /********************************************/

    app.Title="Pixload-Prefs"
    app.Version="$VER: Pixload Prefs version 2.2"
    app.Author="Pixel Art - www.pixel-art.fr.st"
    app.Base="Pixload-config"
    app.SubWindow="win"

    win.ID="MAIN"
    win.Title="Pixload Prefs"

    win.Contents="barre_group"

    barre_group.0="entete"
       entete.class="group"
       entete.frame="group"
       entete.columns=10

       entete.0=checkmark("orientation",0)

       entete.1="entete_0"
          entete_0.class="text"
          entete_0.contents=Parsetext("%3Orientation (horizontal / vertical)")

       entete.2=checkmark("son",0)

       entete.3="son"
          son.class="text"
          son.contents=Parsetext("%3Sound ")||" (On/Off)"

       entete.4="entete_1"
         entete_1.class="numericbutton"
         entete_1.min=4
         entete_1.max=100
         entete_1.value=volume

       entete.5="entete_2"
         entete_2.class="text"
         entete_2.contents=Parsetext("%3Volume ")||" (%)"

       entete.6="entete_3"
         entete_3.class="numericbutton"
         entete_3.min=1
         entete_3.max=15
         entete_3.value=nbicon

       entete.7="entete_4"
         entete_4.class="text"
         entete_4.contents=Parsetext("%3Icons enabled")

       entete.8="entete_5"
         entete_5.class="numericbutton"
         entete_5.min=60
         entete_5.max=100
         entete_5.value=taille

       entete.9="entete_6"
         entete_6.class="text"
         entete_6.contents=Parsetext("%3Icons size")||" (%)"

      barre_group.1="drag_drop"

       drag_drop.class="group"
       drag_drop.frame="group"
       /*drag_drop.spacing=5*/
       drag_drop.columns=6

       drag_drop.0=label(parsetext("%3Pictures : "))

       drag_drop.1="entete_7"
         entete_7.class="popasl"
         entete_7.ShortHelp='Display pictures (IFF, GIF, JPEG)'
         entete_7.string=string("images","f")

       drag_drop.2=label(parsetext("%3Texts :"))

       drag_drop.3="entete_8"
         entete_8.class="popasl"
         entete_8.ShortHelp='Read Texts (Text, Rexx, Script)'
         entete_8.string=string("texte","f")

       drag_drop.4=label(parsetext("%3Sounds : "))

       drag_drop.5="entete_9"
         entete_9.class="popasl"
         entete_9.ShortHelp='Play Sounds (8SVX)'
         entete_9.string=string("musique","f")

     barre_group.2="ctrlg"
       ctrlg.class="group"
       ctrlg.frame="group"
       ctrlg.columns=5

     do i=0 to 14

         k=i*5
         ctrlg.k="petit_iff."i
         petit_iff.i.class="gfxpic"
         petit_iff.i.source="Pixload:icones/"i
         petit_iff.i.transparent=1
         petit_iff.i.scale=70
         petit_iff.i.precision="image"
         petit_iff.i.draw=1

         k=i*5+1
         ctrlg.k="programme."i
         programme.i.class="popasl"
         programme.i.ShortHelp='Logiciels / Programs'
         programme.i.string=string("file."i,"f")

         k=i*5+2
         ctrlg.k="texte_aide."i
         texte_aide.i.class="group"
         texte_aide.i.ShortHelp=Parsetext("Help Bubble")
         texte_aide.i.0=String("help."i,"f")

         k=i*5+3
         ctrlg.k="fichier_son."i
         fichier_son.i.class="popasl"
         fichier_son.i.ShortHelp='Sounds'
         fichier_son.i.string=string("song."i,"f")

         k=i*5+4
         ctrlg.k="haut_parleur."i
         haut_parleur.i.class="gfxpic"
         haut_parleur.i.ShortHelp=Parsetext("Click to hear")
         haut_parleur.i.source="Pixload:icones/son"
         haut_parleur.i.inputmode="relverify"
         haut_parleur.i.frame="button"

    end

    if NewObj("APPLICATION","APP")>0 then exit

    call add("app","fenetre_info")

    call Notify("win","CloseRequest",1,"app","Return","call fin")

    call Notify("entete_1","value","everytime","app","return","volume=h.value","triggerattr")

    call Notify("entete_3","value","everytime","app","return","call activation(h.value)","triggerattr")

    call Notify("entete_5","value","everytime","app","return","taille=h.value","triggerattr")

    do t=0 to 14
       call Notify("haut_parleur."t,"pressed",1,"app","Return","call ecoute("t")")
    end

    call set("win","open",1)

return

/*****************/
Lecture: procedure

    call open(chemin,"Pixload:Prefs/Pixload.prefs",'Read')

    nbicon=readln(chemin)
    call set(orientation,"selected",readln(chemin))
    call set(son,"selected",readln(chemin))
    volume=readln(chemin)
    taille=readln(chemin)

    call set(images,"contents",readln(chemin))
    call set(texte,"contents",readln(chemin))
    call set(musique,"contents",readln(chemin))

    do num=0 to 14

             fichier.num=readln(chemin)
             if fichier.num=0 then do

                 set.Disabled=1

                 call SetAttrs("petit_iff."num,"set")
                 call SetAttrs("programme."num,"set")
                 call SetAttrs("texte_aide."num,"set")
                 call SetAttrs("fichier_son."num,"set")
                 call SetAttrs("haut_parleur."num,"set")

             end

             fichier.num=readln(chemin)
             call set(file.num,"contents",fichier.num)

             fichier.num=readln(chemin)
             call set(help.num,"contents",fichier.num)

             fichier.num=readln(chemin)
             call set(song.num,"contents",fichier.num)
    end

    call close(chemin)

return
/********************************/
ecoute: procedure expose volume

Parse arg ecouter

call GetAttr(song.ecouter,"contents","resultat")

  address 'gcsound'
  sound resultat 1 volume/1.5625

return
/*********************************************/
Fin: procedure expose nbicon taille volume

call set("fenetre_info","open",1)
call set("info_contenu_1","contents",parsetext("%3%cSaving settings"))

call open(adresse,"Pixload:Prefs/Pixload.prefs",'Write')

    call WriteLN(adresse,nbicon)
    call WriteLN(adresse,xget("orientation","selected"))
    call WriteLN(adresse,xget("son","selected"))
    call WriteLN(adresse,volume)
    call WriteLN(adresse,taille)

    call WriteLN(adresse,xget("images","contents"))
    call WriteLN(adresse,xget("texte","contents"))
    call WriteLN(adresse,xget("musique","contents"))

    do i=0 to nbicon-1

       call writeln(adresse,"1")
       call WriteLN(adresse,xget("file."i,"contents"))
       call WriteLN(adresse,xget("help."i,"contents"))
       call WriteLN(adresse,xget("song."i,"contents"))

    end

    do i=nbicon to 14

       call writeln(adresse,"0")
       call WriteLN(adresse,xget("file."i,"contents"))
       call WriteLN(adresse,xget("help."i,"contents"))
       call WriteLN(adresse,xget("song."i,"contents"))

    end

    call close(adresse)

    if show('P','PIXLOAD.1') then
       do
        address 'PIXLOAD.1'
        quit
       end

    address command 'sys:c/wait sec=1'
    address command 'sys:c/wbrun Pixload:Pixload'

address command 'sys:c/wait 1'

call set("fenetre_info","open",0)

if show('P','PIXLOAD-CONFIG.1') then
       do
          address 'PIXLOAD-CONFIG.1'
          exit
       end

return
/*****/
halt:
    break=_c:
exit
/**********************************/
activation: procedure expose nbicon

parse arg nombre

      set.Disabled=0

      do r=0 to 14

        call SetAttrs("petit_iff."r,"set")
        call SetAttrs("programme."r,"set")
        call SetAttrs("texte_aide."r,"set")
        call SetAttrs("fichier_son."r,"set")
        call SetAttrs("haut_parleur."r,"set")

      end

      set.disabled=1

      do r=nombre to 14

        call SetAttrs("petit_iff."r,"set")
        call SetAttrs("programme."r,"set")
        call SetAttrs("texte_aide."r,"set")
        call SetAttrs("fichier_son."r,"set")
        call SetAttrs("haut_parleur."r,"set")

      end

      nbicon=nombre
                                            
return

