/* spiegamenu.pro */
/* da usare con attivazione menu vari */
scrivere programma inserendo informazioni che saranno utilizzate dal programma menu.pro 
inserito con include "menu.pro":legenda,parametri per finestra menu
informazioni da inserire alle righe contenenti vari menu da richiamare

nowarnings
domains
include "menu.pro"
predicates
fine
pulisci
finestra
elabora1(integer)
elabora2(integer)
elabora3(integer)
termine1(integer)
termine2(integer)
termine3(integer)
scelta(integer)
scelta1(integer)
scelta2(integer)
scelta3(integer)
elabora(integer)
azione1
azione2
azione3
azione4
azione5
azione6
azione
finestra1
termine(integer)
goal finestra,azione.
clauses
  finestra:-
  makewindow(1,5,7,"",1,1,17,75),
  makewindow(2,7,1,"",15,40,5,40).
  
  pulisci:-
  shiftwindow(2),beep,
  write("premi ENTER per proseguire"),
  readchar(_),clearwindow,shiftwindow(1),
  clearwindow.
  finestra1:-shiftwindow(1),clearwindow.   
  azione:-
  menu(2,40,[opzio1,
  opzio2,opzio3,
  opzio4,
  opzio5,
  opzio6,fine],Scelta),
  elabora(Scelta),
  termine(Scelta),!.
  elabora(0).
  elabora(1):-Scelta(1).
  elabora(2):-Scelta(2).
  elabora(3):-Scelta(3).
  elabora(4):-Scelta(4).
  elabora(5):-Scelta(5).
  elabora(6):-Scelta(6).
  termine(7).
  termine(0).
  Scelta(1):-azione1.
  Scelta(2):-azione2.
  Scelta(3):-azione3.
  Scelta(4):-azione4.
  Scelta(5):-azione5.
  Scelta(6):-azione6.
  Scelta(7):-fine.
  
  azione1:-
   clearwindow,
   menu(2,30,[opzi1,
   menu_principale],Scelta),
   elabora1(Scelta),
   termine1(Scelta),!.
   elabora1(0).
   elabora1(1):-scelta1(1).
   elabora1(2):-scelta1(2).
   termine1(2).
   termine1(0).
   scelta1(1):-
   finestra1,
   write("opzio1\n"),
   pulisci,
   azione1.
   scelta1(2):-write("ritorno a menu principale\n"),
      azione.                                        
      
   azione2:-
      clearwindow,
      menu(5,50,[opzio2,
      torna_a_menu_principale],
      Scelta),
      elabora2(Scelta),
      termine2(Scelta),!.
      elabora2(0).
      elabora2(1):-scelta2(1).
      elabora2(2):-scelta2(2).
      termine2(2).
      termine2(0).
      scelta2(1):-
      finestra1,
      write("opzio2\n"),
      pulisci,
      beep,azione2.
      scelta2(2):-write("ritorno a menu principale\n "),
      beep,azione.
      
 azione3:-
 clearwindow,
 menu(6,40,[opzione3,menu_principale],Scelta),
      elabora3(Scelta),
      termine3(Scelta),!.
      elabora3(0).
      elabora3(1):-scelta3(1).
      elabora3(2):-scelta3(2).
      termine3(2).
      termine3(0).
      scelta3(1):-
      finestra1,
      write("opzio3 \n"),
      pulisci,
      beep,azione3.
      scelta3(2):-write("torna a menu principale\n"),
      beep,azione.     
   
   azione4:-
      finestra1,
      write(" opzio4,menu_principale "),nl,
      pulisci,
      beep,azione.      
   azione5:-
      finestra1,
      write("opzio5 \n"),
      pulisci,
      azione.
      
   azione6:-
      finestra1,
      write("opzio6 \n"),
      pulisci,
      azione.
   fine:-
   clearwindow,
   write("fine prove\n"),beep.