home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 510.lha / MyOwnMenu_v1.32 / MOM.doc < prev    next >
Encoding:
Text File  |  1991-05-07  |  6.0 KB  |  161 lines

  1.  
  2.                         My Own Menu     vers. 1.32
  3.                        ----------------------------
  4.  
  5.                               Copyright  1990 
  6.  
  7.                                     by
  8.  
  9.                                Marco Lusini
  10.  
  11.  
  12. My Own Menu (MOM da ora in poi) è un programma che permette di aggiungere
  13. altri menu allo schermo del WorkBench e associare ad ogni menu un programma
  14. da lanciare.
  15.  
  16. Anche se esistono altri programmi simili, MOM è (almeno nelle intenzioni)
  17. superiore per stabilità, flessibilità e dimensioni. Infatti permette di
  18. lanciare da menu anche comandi CLI, permettendo più comandi nella stessa
  19. linea ed addirittura comandi propri degli script come If, Else ecc.
  20.  
  21. Inoltre si aggancia ai menu del WorkBench in modo tale che un eventuale suo
  22. blocco non comporta la paralisi del WorkBench stesso.
  23.  
  24. MOM si aggancia anche alla funzione SetMenuStrip() di Intuition per
  25. intercettare eventuali modifiche dovute ad esempio al cambio del font di
  26. sistema, cui segue la riformattazione dei menu custom per adattarsi alle
  27. nuove dimensioni.
  28.  
  29. Per funzionare, MOM richede la arp.library, usata per una maggiore
  30. stabilità e per ridurre le dimensioni dell' eseguibile; se poi nel sistema
  31. è presente il NULL-Handler come NULL:, MOM lo usa al posto di NIL: per 
  32. redirigere i comandi CLI, sempre per una maggiore stabilità.
  33.  
  34. MOM NON E` PUBLIC DOMAIN, MA E` LIBERAMENTE DISTRIBUIBILE PURCHE` SIA SEMPRE
  35. ASSOCIATO A QUESTO FILE DOC.
  36.  
  37.  
  38. INSTALLAZIONE:
  39. -------------
  40.    Copiate MOM-Handler in L:, dove MOM lo cercherà se non lo trova nella
  41. directory corrente.
  42.    Create poi il file MOM-Startup, che MOM cercherà prima nella directory
  43. corrente e poi in S: . Il formato del file è descritto più avanti.
  44.  
  45.  
  46. PARTENZA:
  47. --------
  48. Per prima cosa lanciate MOM solo da CLI e dopo aver caricato il WorkBench
  49. con LoadWB. Comunque MOM si accorgerà se ancora non esiste il WorkBench e
  50. abortirà senza lasciare tracce.
  51.  
  52. Il comando MOM legge ed elabora il file di startup, passandolo poi al
  53. MOM-Handler. Se l' handler non è presente, MOM cerca di lanciarlo,
  54. poi aspetta per un massimo di 10 secondi la comparsa del processo prima
  55. di passargli la struttura dei menu.
  56. Durante la sua inizializzazione, MOM-Handler copia il Path dal WorkBench
  57. e prende SYS: come directory corrente.
  58.  
  59. Così la prima invocazione di MOM lancerà il MOM-Handler e costruirà i
  60. menu, le seguenti aggiorneranno i menu rileggendo il file di startup.
  61.  
  62. Per rimuovere MOM, usare "MOM quit"
  63. N.B.: l' handler si rimuoverà dal sistema solo se tutti i programmi lanciati
  64.       sono terminati, altrimenti si limiterà a rimuovere i menu.
  65.  
  66.  
  67. FILE di STARTUP:
  68. ---------------
  69. Il file è fatto da linee di testo separate eventualmente da linee vuote.
  70. Ogni linea definisce un menu, con una sintassi che, ricalcando lo stile dei
  71. comandi DOS, si può descrivere come:
  72.  
  73. M=MENU/a, E=EXEC/k, W=WB/k, B=BACK/k, C=CONSOLE/k, K=KEY/k
  74.  
  75. Per chi non ha familiarità con i template dell' AmigaDOS, gli '=' servono
  76. a definire dei sinonimi, così ad es. M e MENU sono equivalenti.
  77. Le keyword CONSOLE e KEY sono opzionali.
  78.  
  79. Usando un' altro tipo di definizione, una linea ha il formato:
  80.  
  81. MENU <menu-def> WB <wb-prog> [CONSOLE <con-name>] [KEY <char>]
  82.    Definisce un programma da lanciare come da WorkBench, deve quindi avere
  83.    un file .info corrispondente. La CONSOLE è attualmente ignorata.
  84.  
  85. oppure
  86.  
  87. MENU <menu-def> EXEC <cmd-string> [CONSOLE <con-name>] [KEY <char>]
  88.    Definisce una stringa di comandi da lanciare in modo interattivo, usando
  89.    la console <con-name> (che deve essere per forza interattiva) per l'
  90.    input o "CON:0/20/640/100/MOM Console" se non è specificata alcuna CONSOLE.
  91.  
  92. oppure
  93.  
  94. MENU <menu-def> BACK <cmd-string> [CONSOLE <con-name>] [KEY <char>]
  95.    Definisce una stringa di comandi da lanciare in background, usando
  96.    la console <con-name> per l' output o "NIL:" se non è specificata
  97.    alcuna CONSOLE.
  98.  
  99. Ogni stringa è interpretata dall' arp.library per convertire le sequenze di
  100. escape consentite dal DOS o da ARP, ad es. "*n" corrisponde ad un RETURN.
  101.  
  102. <menu-def> è una stringa che descrive il menu, con i livelli del menu
  103.            separati da '/' : ad esempio "System/Memory/Flush" definisce
  104.            il MenuItem "Flush", nel SubMenu "Memory", nel Menu "System".
  105.  
  106. <wb-prog> è una stringa che descrive il nome di un TOOL o di un PROJECT
  107.           da lanciare come da WorkBench.
  108.  
  109. <cmd-string> è una stringa che descrive i comandi CLI da lanciare, separati
  110.              da "*n". Sono ammessi i comandi tipici degli script come If,
  111.              Else ecc, utili per realizzare dei piccoli script senza dover
  112.              creare un file separato da eseguire con Execute.
  113.  
  114. <con-name> è una stringa che descrive il filename della console da usare
  115.            per il comando. Se non deve essere interattiva, si può usare
  116.            qualsiasi nome valido per l' AmigaDOS, altrimenti deve essere
  117.            tipe "CON:....", "NEWCON:..." ecc.
  118.  
  119. <char> è un carattere da associare al menu come scorciatoia da tastiera.
  120.  
  121. ESEMPI:
  122. ------
  123. MENU "Test/AShell"   WB "SYS:AShell"  KEY "*e"
  124.  
  125.     Definisce un MenuItem "AShell" nel Menu "Test" associato al tasto
  126.         ESC, che lancia il TOOL "AShell" in SYS: come da WorkBench.
  127.  
  128. MENU "Test/Memory/Flush" BACK  "C:Avail FLUSH"
  129.  
  130.     Definisce un MenuItem "Flush" nel SubMenu "Memory" nel Menu
  131.         "Test", che lancia in background il comando DOS "Avail FLUSH".
  132.  
  133. M "Test/Snap ON" B "WaitForPort -immediate Snap.port*nIF WARN*nC:Snap -i0*nENDIF"
  134.  
  135.     Definisce un MenuItem "Snap ON" nel Menu "Test", che lancia in
  136.     background un mini script per attivare con certezza l' utility Snap.
  137.  
  138. M "Test/Dir Inter" E "Dir SYS: opt i" CONSOLE "CON:0/0/640/200/Dir Interactive"
  139.  
  140.     Definisce un MenuItem "Dir Inter" nel Menu "Test" che mostra
  141.         interattivamente la directory SYS: nella console indicata.
  142.  
  143.  
  144.                                 CONCLUDENDO
  145.                                -------------
  146.  
  147. Per qualsiasi commento, critica, bug, contributo, o altre idee, potete
  148. contattarmi all' indirizzo:
  149.  
  150.                         Marco Lusini
  151.  
  152.                         loc. Ceciliano 165
  153.                         52100 Arezzo
  154.                         Italy
  155.  
  156. oppure presso
  157.                         Gianluca Bigagli
  158.  
  159.                          FidoNet 2:332/100.2 
  160.                                 2:332/100.18
  161.