home *** CD-ROM | disk | FTP | other *** search
/ ANews 2 / AnewsCD2.iso / ANews_N°2 < prev    next >
Text File  |  1999-10-14  |  36KB  |  1,107 lines

  1. /**********************************************************\
  2. **
  3. **      Interface du CD ANews
  4. **      ©1999 Frédéric RIGNAULT
  5. **
  6. \**********************************************************/
  7. VERSION = "$VER:v1.02 (14.10.99)"
  8. VERSION = SUBSTR(VERSION,6)
  9.  
  10. ROOT="ANewsCD2:"
  11.  
  12. DEBUG=0
  13. REDIR=">NIL:"
  14.  
  15. /* Déclarations Globale */
  16.  
  17. FALSE=0
  18. TRUE=1
  19. NOSELECT=4.2949673E+9
  20. TXTCOL="\0339" /* \0339 */
  21. TXTCOL2="\0339"
  22. LASTCAT=0
  23. LASTREP=0
  24. LASTLIST=0
  25. typl.0=11       ;icone.0=ROOT||"Icônes/Auto"     ;aide.0="Boutton Action par défaut:\nNE DOIT PAS ETRE LA!"
  26. typl.1="+run"   ;icone.1=ROOT||"Icônes/Run"      ;aide.1="Lancer le programme."
  27. typl.2="+manuel";icone.2=ROOT||"Icônes/Run"      ;aide.2="Execute une action."
  28. typl.3="+voir"  ;icone.3=ROOT||"Icônes/View"     ;aide.3="Visualiser l'image."
  29. typl.4="+son"   ;icone.4=ROOT||"Icônes/Musique"  ;aide.4="Ecouter le son."
  30. typl.5="+ecoute";icone.5=ROOT||"Icônes/Musique"  ;aide.5="Ecouter le son."
  31. typl.6="+jouer" ;icone.6=ROOT||"Icônes/Musique"  ;aide.6="Jouer le module."
  32. typl.7="+html"  ;icone.7=ROOT||"Icônes/HTML"     ;aide.7="Afficher la page Html."
  33. typl.8="+anim"  ;icone.8=ROOT||"Icônes/Video"    ;aide.8="Voir l'animation"
  34. typl.9="+copie" ;icone.9=ROOT||"Icônes/Disk"     ;aide.9="Copier le(s) fichier."
  35. typl.10="+extract";icone.10=ROOT||"Icônes/Archive" ;aide.10="Extraire l'archive et lance l'installation si disponible."
  36. typl.11="+install";icone.11=ROOT||"Icônes/Disk"    ;aide.11="Lancement de l'installation."
  37. guide.0=ROOT||"Icônes/help.iff"
  38. guide.1=ROOT||"Icônes/guide.iff"
  39. guide.2=ROOT||"Icônes/html.iff"
  40. guide.3=ROOT||"Icônes/readme.iff"
  41. image.1=ROOT||"Icônes/run.iff"
  42. image.2=image.1
  43. image.3=ROOT||"Icônes/View.iff"
  44. image.4=ROOT||"Icônes/musique.iff"
  45. image.5=image.4
  46. image.6=image.4
  47. image.7=ROOT||"Icônes/html.iff"
  48. image.8=ROOT||"Icônes/video.iff"
  49. image.9=ROOT||"Icônes/disk.iff"
  50. image.10=ROOT||"Icônes/archive.iff"
  51. image.11=ROOT||"Icônes/disk.iff"
  52.  
  53. PrefsLoad=FALSE
  54. WaitLoad=FALSE
  55. IconShow=1
  56. IconGuide=1
  57.  
  58. /* Open libs needed */
  59. options results
  60. IF EXISTS("libs:rexxsupport.library") THEN DO
  61.  IF ~SHOW("L","rexxsupport.library") THEN
  62.   IF ~ADDLIB("rexxsupport.library",0,-30,0) THEN EXIT
  63.  END
  64. ELSE EXIT
  65. IF EXISTS("libs:rexxreqtools.library") THEN DO
  66.  IF ~SHOW("L","rexxreqtools.library") THEN
  67.   IF ~ADDLIB("rexxreqtools.library",0,-30) THEN EXIT
  68.  END
  69. ELSE EXIT
  70. if DEBUG then Say "Libs:OK"
  71.  
  72. if (show('p','ANEWS')) & (show('p','ASERV')) then do
  73.   address ANEWS SHOW
  74.   exit
  75. end
  76.  
  77. /* Open message Port Of Script */
  78. address rexx
  79. OPENPORT("ASERV")
  80.  
  81. /* Open Muirexx */
  82.  
  83. call StartMUI
  84. call LoadPrefs
  85. call OpenGUI
  86. call InitAll
  87. call GestEvent
  88. call StopMUI
  89. exit
  90.  
  91. GestEvent:
  92. Do forever
  93.  address ANEWS
  94.  window ID ANEWS ATTRS MUIA_Window_Sleep FALSE
  95.  address REXX
  96.  gotit=0
  97.  do until gotit
  98.   call waitpkt(ASERV);packet=getpkt(ASERV)
  99.   gotit=(packet ~= null())
  100.  end
  101.  address ANEWS
  102.  window ID ANEWS ATTRS MUIA_Window_Sleep TRUE
  103.  address REXX;class=getarg(packet);reply(packet,0)
  104.  if debug then say class","LASTCAT","LASTREP","LASTLIST
  105.  address ANEWS
  106.  select
  107.    when class='ABOUT' then do
  108.      request ID ANEWS Title '"A propos du Navigateur ANews"' GADGETS "D'accord" STRING replacepat("Navigateur de CD ANews\nVersion %s\n©1999 Frédéric Rignault", "%s", VERSION )
  109.    end
  110.    when class='QUIT' then break
  111.    when class='PREFS' then call OpenPrefs
  112.    when class='CANCELPREFS' then do
  113.      window ID APREF ATTRS MUIA_Window_Open FALSE
  114.    end
  115.    when class='USEPREFS' then do
  116.      call readprefs
  117.      window ID APREF ATTRS MUIA_Window_Open FALSE
  118.      call saveprefs("USE")
  119.    end
  120.    when class='SAVEPREFS' then do
  121.      call readprefs
  122.      window ID APREF ATTRS MUIA_Window_Open FALSE
  123.      call saveprefs("SAVE")
  124.    end
  125.    when class='CATUPD' then call UpdateReps
  126.    when class='REPUPD' then call UpdateList
  127.    when class='LSTUPD' then call UpdateInfos
  128.    when class='AUTO' then call StartAuto
  129.    when class='GUIDE' then call ShowGuide
  130.    when class='HELP' then call ShowHelp
  131.    otherwise do
  132.      if debug then say class||"?"
  133.    end
  134.  end
  135. end
  136. return
  137.  
  138. InitAll:
  139. If open('f1',ROOT||"Arbre.ani",'r') then Do
  140.  i=0
  141.  j=0
  142.  Arbre.0=0
  143.  do forever
  144.    a=readln('f1')
  145.    if a="END" then break
  146.    if left(a,1)="+" then do
  147.      j=j+1
  148.      parse var a "+" b "," c
  149.      Arbre.i.0=j
  150.      Arbre.i.j.Titre=b
  151.      Arbre.i.j.Rep=c
  152.    end
  153.    else do
  154.      i=i+1
  155.      Arbre.0=i
  156.      Arbre.i.Titre=a
  157.      j=0
  158.      Arbre.i.0=j
  159.    end
  160.  end
  161.  a=close('f1')
  162.  End
  163.  
  164. address ANEWS
  165.  
  166. list ID CATS ATTRS MUIA_List_Quiet TRUE
  167. do i=1 to Arbre.0
  168.   list ID CATS INSERT POS MUIA_List_Insert_Bottom STRING TXTCOL||Arbre.i.Titre
  169. end
  170. list ID CATS ATTRS MUIA_List_Quiet FALSE MUIA_List_Active 0
  171. return
  172.  
  173. UpdateReps:
  174. list ID CATS ATTRS MUIA_List_Active
  175. i=result+1
  176. if LASTCAT=i then return
  177. LASTCAT=i
  178. list ID REPS STRING
  179. list ID REPS ATTRS MUIA_List_Quiet TRUE
  180. DO j=1 to Arbre.i.0
  181.   LIST ID REPS INSERT POS MUIA_List_Insert_Bottom STRING TXTCOL||Arbre.i.j.Titre
  182. end
  183. list ID REPS ATTRS MUIA_List_Quiet FALSE MUIA_List_Active 0
  184. LASTREP=0
  185. return
  186.  
  187. UpdateList:
  188. parse arg nouv
  189.  
  190. if nouv="" then nouv=0
  191.  
  192. list ID CATS ATTRS MUIA_List_Active
  193. i=result+1
  194. list ID REPS ATTRS MUIA_List_Active
  195. j=result+1
  196.  
  197. if (LASTREP=j) & (nouv=0) then return
  198. LASTREP=j
  199.  
  200. list ID LIST STRING
  201. list ID LIST ATTRS MUIA_List_Quiet TRUE
  202.  
  203. repertoire=ROOT||Arbre.i.j.Rep
  204.  
  205. i=0
  206. if exists(repertoire||'contenu.ani') then do
  207.   If open('f1',repertoire||"contenu.ani",'r') then Do
  208.     do forever
  209.       a=readln('f1')
  210.       if eof('f1') then break
  211.       parse var a b '=' c
  212.       select
  213.         when b="nom" then do
  214.           i=i+1
  215.           contenu.0=i
  216.           contenu.i.nom=c
  217.           contenu.i.finfo=""
  218.           contenu.i.rep=""
  219.           contenu.i.guide=""
  220.           contenu.i.action.0=0
  221.           contenu.i.infos.0=0
  222.           list ID LIST INSERT POS MUIA_List_Insert_Bottom STRING TXTCOL||c
  223.         end
  224.         when b="+rep" then contenu.i.rep=c
  225.         when b="+guide" then contenu.i.guide=c
  226.         when b="+infos" then do
  227.           k=contenu.i.infos.0+1
  228.           contenu.i.infos.0=k
  229.           contenu.i.infos.k=a
  230.         end
  231.         when b="+finfo" then contenu.i.finfo=c
  232.         otherwise do
  233.           j=contenu.i.action.0+1
  234.           contenu.i.action.0=j
  235.           contenu.i.action.j=a
  236.         end
  237.       end
  238.     end
  239.   a=close('f1')
  240.   end
  241. end
  242. list ID LIST ATTRS MUIA_List_Quiet FALSE
  243. if i>0 then do
  244.   if nouv=0 then nouv=1
  245.   if nouv>=0 then list ID LIST ATTRS MUIA_List_Active nouv-1
  246. end
  247. else do
  248.   call UpdGuide(0)
  249.   call UpdIcon(0)
  250. end
  251. LASTLIST=0
  252. return
  253.  
  254. UpdateInfos:
  255. list ID CATS ATTRS MUIA_List_Active
  256. i=result+1
  257. list ID REPS ATTRS MUIA_List_Active
  258. j=result+1
  259. list ID LIST ATTRS MUIA_List_Active
  260. k=result+1
  261. if LASTLIST=k then return
  262. LASTLIST=k
  263. repertoire=ROOT||Arbre.i.j.Rep
  264. repbase=repertoire
  265. etat=0
  266. listeaction.0=0
  267. listeinfos.0=0
  268. if k=NOSELECT then return
  269. b="nom="||contenu.k.nom
  270. if contenu.k.infos.0>0 then do
  271.  if debug then say "Texteinfo"
  272.  if open('f2',"T:infos.txt",'w') then do
  273.    do l=1 to contenu.k.infos.0
  274.      parse var contenu.k.infos.l a '=' b
  275.      x=listeinfos.0+1
  276.      listeinfos.0=x
  277.      listeinfos.x=b
  278.      call writeln('f2',b)
  279.    end
  280.    call close('f2')
  281.    VIEW ID INFOS FILE "T:infos.txt"
  282.  end
  283. end
  284. else do
  285.    fichier=repbase||contenu.k.rep||contenu.k.finfo
  286.    if (exists(fichier)) & (contenu.k.finfo~="") then do
  287.      VIEW ID INFOS FILE fichier
  288.    end
  289.    else do
  290.      VIEW ID INFOS STRING ""
  291.    end
  292. end
  293. repbase=repertoire
  294. if contenu.k.action.0>0 then do
  295.   parse var contenu.k.action.1 a '=' b
  296.   m=0
  297.   do l=1 to typl.0
  298.     if typl.l=a then do
  299.       m=l
  300.       break
  301.     end
  302.   end
  303.   if debug then say "Image:"||m
  304.   call UpdIcon(m)
  305.   do l=1 to contenu.k.action.0
  306.     parse var contenu.k.action.l a '=' b
  307.     x=listeaction.0+1
  308.     listeaction.0=x
  309.     listeaction.x=b
  310.   end
  311. end
  312. else do
  313.   call UpdIcon(0)
  314. end
  315. if (Contenu.k.guide~=lastfile) & (Contenu.k.guide~="") then do
  316.   a=upper(Contenu.k.guide)
  317.   select
  318.    when right(a,6)=".GUIDE" then call UpdGuide(1)
  319.    when (right(a,5)=".HTML") | (right(a,4)=".HTM") then call UpdGuide(2)
  320.    otherwise call UpdGuide(3)
  321.   end
  322. end
  323. else do
  324.   call UpdGuide(0)
  325. end
  326. return
  327.  
  328. UpdIcon:
  329. if IconShow~=0 then do
  330.   object ID AUT||IconShow ATTRS MUIA_ShowMe FALSE
  331.   IconShow=0
  332. end
  333. if arg(1)~=IconShow then do
  334.   IconShow=arg(1)
  335.   object ID AUT||IconShow ATTRS MUIA_ShowMe TRUE
  336. end
  337. return
  338.  
  339. UpdGuide:
  340. if IconGu