@DATABASE InterfaceEditor.guide

@Index INDEXNODE
@$VER: IEditor.guide 2.31 (22.12.96)
@AUTHOR "Simone Tellini"
@(C) "Simone Tellini Software"
@WIDTH 74


@NODE MAIN "Manuale di Interface Editor"

                  Interface Editor - Manuale Utente

      @{" Disclaimer                 " link disclaimer}@{" Selezione Gadgets          " link "selection"}
      @{" Copyright                  " link copyright}@{" Menù  di IEditor           " link "menus"}
      @{" Aggiornamenti              " link updates}@{" Tags dei Gadget            " link "requesters"}
      @{" Come registrarsi           " link register}@{" Muovere & Resize i gadget  " link "move"}
      @{" Configurazione richiesta   " link requirements}@{" Il Sorgente Generato       " link "source"}
      @{" Introduzione               " link introduction}@{" I comandi ARexx            " link arexx}
      @{" Iniziare con IEditor       " link starting}@{" Note                       " link "notes"}
      @{" Comandi da tastiera        " link keyboard}@{" Ringraziamenti             " link "credits"}
      @{" La finestra Strumenti      " link toolbar}@{" Uno sguardo sul futuro     " link "future"}

      @{" History " link History.txt/MAIN}                                     @{" Cerca... " system "Run SearchGuide InterfaceEditor_ITA.guide"}
@ENDNODE

@NODE disclaimer "DA LEGGERE!"

Standard international disclaimer:

THERE  IS  NO  WARRANTY  FOR  THE  SOFTWARE  TO  THE  EXTENT  PERMITTED BY
APPLICABLE  LAW.   EXCEPT  WHERE OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY
OF  ANY  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE  IMPLIED  WARRANTIES  OF  MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.   THE  ENTIRE  RISK  AS  TO  THE  QUALITY  AND PERFORMANCE OF THE
SOFTWARE IS WITH YOU.  SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE
COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE SOFTWARE
AS  PERMITTED  BELOW, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL,  INCIDENTAL  OR  CONSEQUENTIAL  DAMAGES ARISING OUT OF THE USE OR
INABILITY  TO  USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
OR  DATA  BEING  RENDERED  INACCURATE  OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES  OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN  IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

----- In breve: ;)

Tu  usi questo programma a tuo proprio rischio.  Esso è fornito "così come
è", senza garanzie di qualsiasi tipo.

L'autore  non  può  essere ritenuto responsabile per l'esattezza di questo
manuale   e/o   il   programma  che  descrive.   Qualsiasi  danno  causato
direttamente  o indirettamente dall'uso o uso errato di questo manuale e/o
il programma che descrive è di unica responsabilità dell'utente.
@ENDNODE

@NODE copyright "Copyright e Distribuzione"

                             Interface Editor

               © Copyright 1994-96 Simone Tellini Software

                       Scritto usando DICE C v2 da
                             Simone  Tellini
                           Piazza Resistenza  2
                           42016  Guastalla  RE
                                  Italia

                   Fido: 2:332/502.18 (Simone Tellini)
                        Internet: wiz@pragmanet.it

                              Manuale Utente
               © Copyright 1995-1996 Simone Tellini Software

               reqtools.library è © Copyright Nico François


Interface  Editor  è  (C)  1994-96  da  Simone  Tellini  Software.  Questo
programma  è  SHAREWARE:   se  lo  usi, dovresti @{"spedirmi" link author} la tua tassa di
registrazione;  in questo modo diventerai un utente registrato di IEditor,
riceverai il keyfile del programma e sarai così in grado di usare IE senza
alcuna  limitazione.   Supportare  lo  shareware  è  molto  importante, ti
piaciono i buoni programmi a un prezzo molto basso, non è vero?  ;-)

Questo  programma  può  essere  liberamente distribuito purché che tutti i
file  siano  inclusi  nella  distribuzione  senza modifiche.  *NON* si può
addebitare più di quanto faccia Fred Fish per un singolo dischetto.

Questo  programma  *NON*  può  essere  scaricato  su  BBS che reclamano il
copyright sul materiale scaricato.

Il   key   file  di  Interface  Editor  è  strettamente  personale,  *NON*
distribuibile  in  nessun  modo,  è  permesso  solo un backup per l'utente
registrato.

Quando   usi   questo  programma  per  progettare  GUI  per  un  programma
commerciale  o  shareware  apprezzerei una piccola nota riguardo ciò nella
documentazione  del  programma.   Apprezzerei anche @{"ricevere" link author} una copia di
quel programma, o, almeno, una demo!  :-)

La  distribuzione commerciale di Interface Editor e/o i suoi file relativi
*NON*  è  permessa  senza  consenso scritto dall'autore.  Questo comprende
anche  la  distribuzione  su  dischetti di copertina, riviste su dischetto
etc.

Io  sarò  contento  di  dare  il consenso ad inserire questo programma sul
dischetto  di  riviste  o  su  disk-magazine  se  ne  riceverò  una copia.
@{"Scrivetemi" link author} per dettagli.

Solo l'output di IEditor non è assoggettato a queste regole.

Il  programma  Patcher  è  liberamente  distribuibile,  purché  non  venga
modificato in alcun modo.
@ENDNODE

@NODE register "Come registrarsi"

Allora, per registrarvi ad IE dovete semplicemente compilare il "Modulo di
registrazione"  incluso  nell'archivio,  metterlo  in  una  busta chiusa e
@{"spedirmelo" link author} insieme alla vostra quota di regisrazione.

A proposito di quote, ecco uno schemino riassuntivo che spero vi chiarisca
le idee:

ITALY                LIT. 30.000

REST OF THE WORLD    US $ 25


Come  metodo  di  pagamento potete utilizzare uno dei seguenti:  contanti,
assegno  non trasferibile intestato a Simone Tellini, vaglia postale.  Per
l'estero, potete usare solo EuroChecks o contanti.

N.B.   Se  mettete  i  contanti  nella  busta,  ricordatevi che potrebbero
benissimo  non  arrivarmi!  Quindi cercate di utiizzare un modo sicuro per
spedirmi la vostra quota di registrazione!
@ENDNODE

@NODE updates "Aggiornamenti"

Una volta che ti sarai registrato, riceverai uno speciale keyfile  che  ti
permetterà  di  usare  una  qualsiasi  copia di IE senza limitazioni. Così
potrai  procurarti  aggiornamenti  a  IE  direttamente   dalle   reti   di
distribuzione di software PD.

L'ultima versione di IE,  inoltre,  è  sempre  disponibile  in  ogni  sito
Aminet, nella directory dev/gui.

Gli utenti registrati con un indirizzo telematico riceveranno  una  E-Mail
ogni volta che verrà rilasciata una nuova versione.


IEditor ha anche una sua pagina WWW. L'URL è il seguente:

http://www.pragmanet.it/~tellini/main.html


Attualmente questa BBS supporta IEditor:

  -  BBS:               The Drake
     SysOp:             Paolo Masetti
     Tel:               0522-838800
     Fido node:         2:332/522
     Area messaggi:     IEDITOR.LOC
     File name:         Area SUPPORT - IEditxxx.lha  (es. IEdit218.lha) 
     Magic File Name:   IEDITOR


Se  qualche  altra  BBS è disponibile a supportare IEditor, ne sarei molto
lieto:  @{"scrivetemi" link author} che ci mettiamo d'accordo.
@ENDNODE

@NODE introduction "Introduzione"

Interface Editor ti permette di salvare un'enorme quantità di tempo quando
devi  progettare  un'interfaccia  utente  GadTools  per  i tuoi programmi.
Questo  programma  è  il  successore  di Interface Editor v1.0, che era un
piccolo  programma con pochissimo controllo sull'aspetto dell'interfaccia.
A  partire  dalla  versione  2.0,  ho  cercato  di fare di IEditor un buon
programma user-friendly; ho anche sviluppato l'output che, nella v1.0, era
molto brutto!

Queste sono le caratteristiche principali di IEditor v2.0:

            Una completa interfaccia utente intuition/gadtools

             Edita su molte differenti risoluzioni di schermo

          Edita/Genera sorgenti per grossi schermi autoscrolling

                Tutti i tipi di gadget GadTools supportati

           Pieno controllo sui flag e sulle tags delle finestre

                Pienamente controllato da mouse e tastiera

                            Finestre multiple

              Font selezionabile dall'utente per ogni gadget

  La possibilità di cambiare risoluzione di schermo mentre sta editando

             Facile allineamento e dimensionamento di gadget

     Multipli spostamenti, cancellazioni, copie ed editing di gadget

                  Gadget booleani, Bevel Box, MENU_IMAGE

                               Porta ARexx

                          ARexx Interface Editor

                    Espandibile tramite moduli esterni

                                   ...
@ENDNODE

@NODE requirements "Configurazione minima richiesta"

InterfaceEditor  richiede  il  Kickstart  2.04+  e almeno 512kb di RAM (ma
è consigliato 1Mb).

É consigliabile utilizzare un stack minimo di 8 kbytes per IE.

Queste librerie sono usate da IEditor:

 reqtools.library  v37+
 icon.library      v37+
 locale.library    v38+ (facoltativa)
 asl.library       v37+
 gadtools.library  v37+
 intuition.library v37+
 dos.library       v37+
 graphics.library  v37+
 diskfont.library  v37+
 iffparse.library  v37+
 rexxsyslib.library     (facoltativa)

Per  compilare l'output di IEditor serve un compilatore C (come Dice) o un
assembler  con  gli  include  2.0  o  il  compilatore Amiga E (EC) v2.1b o
maggiore.

Se si  crea il codice Assembly specificando il @{"parametro" link asmprefs} RawCode non sono
necessari i file include.

InterfaceEditor è stato testato su queste macchine:

· Amiga  1200  68EC020  28MHz 
  2Mb CHIP   4Mb FAST Ram    ( Blizzrd 1220/4 )
  HD IDE Conner 1.2 Gb
  Squirrel Classic
  CD-ROM SCSI Pioneer DR-U124X
  2 Floppy  Drives
  Kick v39.106 - WB v39.29   ( Release 3.0 )

· Amiga 4000/40  68040  25MHz
  2Mb CHIP  16Mb FAST Ram
  HD IDE Conner 210 Mb
  HD IDE Seagate ST144At  124 Mb
  Kick v39.106 - WB v40.42   ( Release 3.0 )

· Amiga 2000B    68000  7MHz 
  1Mb CHIP   2Mb FAST Ram 
  HD SCSI 850 Mb
  Kick v40.63 - WB v40.42    ( Release 3.1 )
@ENDNODE

@NODE starting "Iniziare con Interface Editor"

Puoi  eseguire  Interface Editor dalla Shell o dal Workbench.  Se eseguito
dalla  Shell,  IE  accetta  come parametro il nome di una GUI da caricare.
Anche  da  WB  è possibile passare una GUI da caricare cliccando una volta
sull'icona di IE e, premendo il tasto shift, due volte sull'icona del file
voluto.

Quando  si sarà caricato, vedrai uno schermo con una piccola finestra:  la
Finestra  @{"Strumenti" link toolbar}.  Allora  potrai  caricare  un'interfaccia  vecchia o
iniziare a crearne una nuova.

Per caricare una GUI puoi selezionare la voce @{"Apri..." link "open"} nel primo menù o tu
puoi  cliccare  sul  penultimo  gadget  della  Finestra  @{"Strumenti" link toolbar}  e poi
selezionare il file che vuoi caricare.

Per  iniziare  a  creare  una  nuova  interfaccia, devi cliccare sul primo
gadget  della  finestra  @{"Strumenti" link toolbar}  o  selezionare  la voce @{"Nuovo..." link "new"} nel
menù "Finestre".
@ENDNODE

@NODE making "Fare un Gadget"

Fare  un  gadget  è molto semplice.  Innanzitutto devi selezionare la voce
"Aggiungi..."  nel  menù  "Gadget" o cliccare sul 5° gadget della @{"ToolBar" link toolbar}.
Poi devi scegliere il tipo del gadget nel listview che apparirà.

Ora  muovi  il  puntatore  del mouse dove vuoi piazzare l'angolo in alto a
sinistra  del  gadget  (vedrai  le  coordinate sulla barra dello schermo).
Clicca  LMB (tasto sinistro del mouse) e muovi il mouse tenendo premuto il
tasto.   Vedrai  un  rettangolo  che  rappresenta  il  tuo  gadget, le cui
dimensionsioni sono mostrate nella ScreenBar.

Una  volta  che hai deciso la dimensione del gadget, rilascia il tasto del
mouse.

Si  aprirà  un  requester:  qui puoi editare il titolo di gadget. Dopo ciò
si aprirà un'altro requester consentendoti modificare le tag del gadget.

Allora,  il  gadget  verrà creato.  Se l'operazione di creazione fallisce,
vedrai un rettangolo nero al posto del gadget.

Qui c'è una lista dei gadget supportati da IE2:

        @{" BUTTON        " link "button"}
        @{" CHECKBOX      " link "checkbox"}
        @{" INTEGER       " link "integer"}
        @{" LISTVIEW      " link "listview"}
        @{" MX            " link "mx"}
        @{" NUMBER        " link "number"}
        @{" CYCLE         " link "cycle"}
        @{" PALETTE       " link "palette"}
        @{" SCROLLER      " link "scroller"}
        @{" SLIDER        " link "slider"}
        @{" STRING        " link "string"}
        @{" TEXT          " link "text"}
        @{" BOOLEAN       " link "boolean"}


Nota che i gadget  @{"CHECKBOX" link checkbox}  e  @{"MX" link mx}  hanno  una  dimensione  fissata  che
significa  che  tu non puoi farli di qualsiasi dimensione desideri (a meno
che  tu  non setti la tag Scaled del gadget).  Inoltre, nel mettere questi
gadget, possono esserci alcuni problemi se usi un font più grande di Topaz
8 e non setti la tag Scaled.

NOTA:  i gadget @{"booleani" link boolean} non sono gestiti dalla gadtools.library, ma sono
       dei semplici gadget intuition.
@ENDNODE

@NODE selection "Selezione di gadget"

Se  i  gadget  non sono disabilitati o staccati, per selezionarne uno devi
premere LMB dove non ci sono gadget, quindi (tenendo premendo il tasto del
mouse)  disegna un rettangolo in modo che il/i gadget che vuoi selezionare
siano in parte o completamente coperti dal rettangolo.

Se  i  gadget sono disabilitati o staccati puoi semplicemente cliccare sul
gadget  che  desideri selezionare.  Puoi sempre disegnare un box attorno a
più di un gadget, per fare una selezione multipla.

Inoltre, se tieni premuto il @{"tasto" link keyboard} SHIFT, i gadget attualmente attivi non
verranno disattivati, ma rimarranno attivi.

Quando  un gadget è attivato, avrà un rettangolo attorno con quattro punti
negli angoli.
@ENDNODE

@NODE move "Muovere i gadgets"

È possibile muovere  o @{"ridimensionare" link size} uno o più gadget allo stesso tempo,
in base a quanti gadget sono @{"selezionati" link selection}.

Per  muovere  un  gadget,  devi sempicemente clickare su di esso e quindi,
tenendo  premuto  il pulsante, muovere il mouse.  (Se vuoi spostare più di
un gadget alla volta devi tener premuto anche un @{"tasto" link keyboard} Shift)

Vedrai  rettangoli che rappresentano i tuoi gadget, quando sono dove vuoi,
semplicemente rilascia il tasto del mouse.  Non è così difficile, vero?

Per @{"ridimensionare" link size} un gadget devi cliccare in uno dei suoi quattro angoli;
quindi muovi il mouse tenendo premuto il suo tasto.  Rilascia il tasto del
mouse per eseguire i cambiamenti.
@ENDNODE

@NODE size "Dimensionare i Gadget"

Puoi  scegliere  la dimensione di un gadget (o più di uno) specificando la
sua larghezza e altezza o dimensionandoli col @{"mouse" link move}.

Nel  primo  caso,  seleziona la voce "Gadget/Dimensioni...":  un requester
apparirà,  inserisci  qui  i  valori  che  vuoi (anche le coordinate X e Y
possono essere inserite qui).
@ENDNODE

@NODE copy "Gadget/Copia"

Questo  creerà  una copia dei gadget @{"selezionati" link "selection"}: dopo aver scelto questo
menu,  vedrai  dei  rettangoli  rappresentanti  i  gadget  selezionati che
seguiranno  il  puntatore  del  mouse.   Quando  saranno dove vuoi i nuovi
gadgets, premi LMB.

I  nuovi gadget saranno creati in quel posto e avranno TUTTI gli attributi
identici ai gadget originali, incluse le etichette.
@ENDNODE

@NODE menus "I menù di IEditor"

Qui tu trovi la descrizione di tutti i menù del mio programma:

 Progetto
    @{" Informazioni...    " link "about"}
    @{" Apri...            " link "open"}
    @{" Nuovo              " link "new"}
    @{" Salva              " link "save"}
    @{" Salva come...      " link "saveas"}
    @{" Parametri...       " link srcparams}
    @{" Genera Sorgente... " link gensrc }
    @{" Esci...            " link "quit"}

 Finestre
    @{" Nuova...        " link "newwindow"}
    @{" Apri...         " link "openwindow"}
    @{" Chiudi          " link "closewindow"}
    @{" Chiudi tutte    " link "closeallwindow"}
    @{" Elimina         " link "discardwindow"}
    @{" Elimina tutte   " link "discardallwindow"}
    @{" Titolo...       " link "titlewindow"}
    @{" Flags...        " link "windowflags"}
    @{" IDCMP...        " link "idcmp"}
    @{" Dimensioni...   " link "sizewindow"}
    @{" Zoom...         " link "zoomwindow"}
    @{" Tags...         " link "windowtags"}
     BevelBoxes
       @{" Aggiungi        " link addbox}
       @{" Modifica...     " link editbox}
     Immagini
       @{" Aggiungi        " link addimg}
       @{" Sposta          " link moveimg}
       @{" Elimina         " link deleteimg}
     Testi
       @{" Aggiungi...     " link addtxt}
       @{" Elimina...      " link deltxt}
       @{" Modifica...     " link edittxt}
       @{" Move...         " link movetxt}
     Banco di gadget
       @{" Crea...         " link makegbank}
       @{" Elimina...      " link delgbank}
       @{" Mostra...       " link showgbank}
       @{" Nascondi...     " link hidegbank}
       @{" Parametri...    " link editgbank}
    @{" Stampa          " link printwnd}
    @{" Salva...        " link "savewindow"}
    @{" Carica...       " link "loadwindow"}

 Gadgets
    @{" Aggiungi...     " link "making"}
    @{" Rimuovi         " link "delete"}
    @{" Seleziona tutti " link "selectall"}
    @{" Scelte...       " link "item"}
    @{" Dimensioni...   " link size}
    @{" Tags            " link "tags"}
    @{" Font            " link "font"}
     Allinea
        @{" A destra       " link "right"}
        @{" A sinistra     " link "left"}
        @{" In alto        " link "top"}
        @{" In basso       " link "bottom"}
     Distribuisci
        @{" Orizzontalmente" link spreadhoriz}
        @{" Verticalmente  " link spreadvert}
     Spaziatura
        @{" Setta X...     " link xspacing}
        @{" Setta Y...     " link yspacing}
     Clona
        @{" Larghezza      " link "xsize"}
        @{" Altezza        " link "ysize"}
        @{" Entrambe       " link "xysize"}
    @{" Ordine TabCycle " link taborder}
    @{" Copia           " link "copy"}    
    @{" Salva...        " link "savegadgets"}
    @{" Carica...       " link "loadgadgets"}

 Schermo
    @{" Tags...         " link "screentags"}
    @{" Tipo...         " link "screentype"}
    @{" Font...         " link "getfont"}
    @{" DriPens...      " link "dripens"}
     Palette
       @{" Modifica...     " link "palettemodifica"}
       @{" Salva...        " link "savepalette"}
       @{" Carica...       " link "loadpalette"}
    @{" Salva...        " link "savescr"}
    @{" Carica...       " link "loadscr"}

 Varie
    @{" Menu Editor...    " link "menued"}
    @{" Banco immagini... " link "imgbank"}
    @{" ARexx Editor...   " link arexxed}
    @{" main()...         " link mained}
    @{" Localizzazione... " link localize}

 Macros
    @{" Tasti funzione... " link macros}
    @{" Aggiungi...       " link addmacro}
    @{" Rimuovi...        " link remmacro}
    @{" Esegui...         " link execmacro}

 Preferenze 
    @{" Finestra Strumenti               " link "toolswindow"}
    @{" Usa i Gadget                     " link "usegads"}
    @{" Workbench                        " link "closewb"}
    @{" Finestra corrente in primo piano " link "infront"}
    @{" Usa i Flags settati              " link "usewflags"}
    @{" Sorgente Assembly...             " link "asmprefs"}
    @{" Generatore...                    " link genprefs}
    @{" Genera icone                     " link "createicons"}
    @{" Memorizza                        " link "saveprefs"}
@ENDNODE

@NODE new "Progetto/Nuovo"

Elimina  tutti i gadgets e tutte le finestre, permettendo così di iniziare
un nuovo lavoro.
@ENDNODE

@NODE open "Progetto/Apri..."

Questo  ti  presenterà con un filerequester in cui devi selezionare la GUI
che  desideri  caricare.  Se hai fatto cambiamenti alla GUI in memoria che
non sono stati ancora salvati ti verrà richiesto se vuoi:

   A) Si      - Cancellare la GUI in memoria.
   B) Annulla - Annullare l'operazione.

Quando   l'operazione  di  caricamento  è  terminata  sarai  in  grado  di
selezionare  una  finestra da aprire con il menù @{"Finestre/Apri..." link "openwindow"}
@ENDNODE

@NODE save "Progetto/Salva"

Questo  salverà  la  GUI  attualmente  in memoria col nome con cui è stata
salvato   l'ultima   volta.   Se  è  la  prima  volta  che  la  salvi,  un
file-requester apparirà richiedendo il nome del file.
@ENDNODE

@NODE saveas "Progetto/Salva Come..."

Questa  ha  la stessa funzione di @{"Progetto/Salva..." link "save"}, ma apre sempre il
file-requester.
@ENDNODE

@NODE gensrc "Progetto/Genera Sorgente..."

Questo ti presenterà con un filerequester in cui tu  devi  selezionare  il
nome che sarà usato per salvare il sorgente generato.

Se non è stato ancora selezionato un generatore, comparirà la finestra per
@{"configurarlo" link genprefs}.  Altrimenti,  verrà  utilizzato  il  generatore  settato in
precedenza.

Vedi il capitolo @{" Il Sorgente Generato " link "source"} per ulteriori informazioni.
@ENDNODE

@NODE closewb "Preferenze/Workbench"

Questo proverà a chiudere il Workbench (o aprirlo se è chiuso).  Se chiudi
il WB e poi esci da IEditor, il Workbench sarà automaticamente riaperto.
@ENDNODE

@NODE about "Progetto/Informazioni..."

Penso  che  già sai ciò che fà, non è vero?  Beh, apre quella finestra con
informazioni  di  copyright  ed  il mio indirizzo che dovresti vedere ogni
volta  che  carichi  Interface  Editor  (a  meno  che tu non sia un utente
registrato ;).
@ENDNODE

@NODE quit "Progetto/Esci"

Selezionando  questa voce, lascerai IEditor.  Se la GUI corrente non stata
salvata,  IE  ti  chiederà  se  vuoi "Salva", salvarla in formato binario,
"Esci", abbandonare immediatamente o "Cancella", non abbandonare.
@ENDNODE

@NODE delete "Gadgets/Rimuovi"

Selezionando  questa  voce,  un  requester  ti  chiederà  se  davvero vuoi
cancellare  i  gadget selezionati.  Rispondendo si, IEditor li cancellerà,
per sempre.

È possibile cancellare i gadgets anche premendo il @{"tasto" link keyboard} 'DEL'.

RICORDA:   Una  volta  che  un  gadget  è  cancellato, non puoi riportarlo
indietro!
@ENDNODE

@NODE tags "Gadgets/Tags..."

Questo aprirà un requester per editare le tags dei gadget @{"selezionati" link selection}.

Per tutti i tipi di gadget gadtools sono presenti questi gadget:

  Titolo:          Inserisci qui il testo del gadget.

  Etichetta:       Questo identificherà il gadget nel sorgente. Nota che
                   se tu non lo specifichi,  sarà  creato  quando  viene
                   generato il sorgente.

  Posizione        Questo ti permette di selezionare dove il  testo  del
  del titolo:      gadget deve stare.

  Underscore:      Settalo se  vuoi  una  lettera sottolineata nel testo
                   del gadget. La lettera da  sottolineare  deve  essere
                   preceduta da "_".

  Titolo evidenziato: Settalo se vuoi che il titolo sia scritto  con  la
                   penna Highlight dello schermo.  Con  alcuni  tipi  di
                   gadget non ha effetto.


Altri gadget sono presenti a seconda del tipo di gadget.


Seleziona il tipo su cui vuoi saperne di più:

     @{" BUTTON        " link "button"}
     @{" CHECKBOX      " link "checkbox"}
     @{" INTEGER       " link "integer"}
     @{" LISTVIEW      " link "listview"}
     @{" MX            " link "mx"}
     @{" NUMBER        " link "number"}
     @{" CYCLE         " link "cycle"}
     @{" PALETTE       " link "palette"}
     @{" SCROLLER      " link "scroller"}
     @{" SLIDER        " link "slider"}
     @{" STRING        " link "string"}
     @{" TEXT          " link "text"}

Questo tipo di gadget non è gestito dalla gadtools.library,  così  non  ha
nessuna tag, ma forse vorrai sapere quali parametri puoi modificare... ;)

     @{" BOOLEAN       " link "boolean"}
@ENDNODE

@NODE left "Gadgets/Allinea/A sinistra"

Questo  ti  chiedrà di cliccare sul gadget che ha il margine di sinistra a
cui  vuoi  allineare  i  gadget.  Quando clicchi sul gadget tutti i gadget
@{"selezionati" link "selection"} erediteranno  la  coordinata  del margine sinistro del gadget
cliccato.
@ENDNODE

@NODE right "Gadgets/Allinea/A destra"

Questo  ti  chiederà  di cliccare sul gadget che ha il margine di destra a
cui  vuoi  allineare  i  gadget.  Quando clicchi sul gadget tutti i gadget
@{"selezionati" link "selection"} erediteranno  la  coordinata  del  margine  destro del gadget
cliccato.

NOTA:  Questo potrebbe non funzionare sempre quando allinei al  margine  di
       destra   di  un  gadget  @{"Palette" link "palette"}.    La  gadtools.library  rende  le
       dimensioni di questo gadget tali da adattarlo all'interno  dell'area
       specificatae  ciò  rende  possibile che il gadget sia in effetti più
       piccolo di quanto specificato.
@ENDNODE

@NODE top "Gadgets/Allinea/In alto"

Questo  ti  chiederà  di cliccare sul gadget che ha il margine superiore a
cui  vuoi  allineare  i  gadget.  Quando clicchi sul gadget tutti i gadget
@{"selezionati" link "selection"} erediteranno  la  coordinata del margine superiore del gadget
cliccato.

NOTA:   Potrebbe non funzionare quando provi ad allineare un gadget @{"MX" link "mx"}, se
        il gadget  usa un font più alto di 8 punti e non ha settata la tag
        scaled.
@ENDNODE

@NODE bottom "Gadgets/Allinea/In basso"

Questo  ti  chiederà  di cliccare sul gadget che ha il margine inferiore a
cui  vuoi  allineare  i  gadget.  Quando clicchi sul gadget tutti i gadget
@{"selezionati" link "selection"} erediteranno  la  coordinata del margine inferiore del gadget
cliccato.

NOTA: Queto può non funzionare quando allinei al margine  inferiore  di  un
      gadget @{"LISTVIEW" link "listview"}.  La gadtools.library dimensiona il gadget in modo da
      farlo stare nell'area specificata, ciò  può  rendere  il  gadget  più
      piccolo di quanto specificato.

NOTA 2: Può non funzionare se provi ad allineare un gadget  @{"MX" link "mx"}, se  usa  un
        font più alto di 8 punti e non ha settata la tag scaled.

@ENDNODE

@NODE xsize "Gadgets/Clona/Larghezza"

Questo  ti  chiederà  di  cliccare sul gadget che ha la larghezza che vuoi
clonare.   Quando clicchi sul gadget desiderato tutti i gadget @{"selezionati" link "selection"}
prenderanno la stessa sua larghezza.
@ENDNODE

@NODE ysize "Gadgets/Clona/Altezza"

Questo  ti  chiederà  di  cliccare sul gadget che ha  l'altezza  che  vuoi
clonare.   Quando clicchi sul gadget desiderato tutti i gadget @{"selezionati" link "selection"}
prenderanno la stessa sua altezza.
@ENDNODE

@NODE xysize "Gadgets/Clona/Entrambe"

Questo ti chiederà di cliccare sul gadget che ha le  dimensioni  che  vuoi
clonare.   Quando clicchi sul gadget desiderato tutti i gadget @{"selezionati" link "selection"}
prenderanno le sue stesse dimensioni.
@ENDNODE

@NODE loadgadgets "Gadgets/Carica..."

Questo  aprirà  un  filerequester  ASL con cui puoi selezionare un file di
gadget  precedentemente salvati.  Quei gadget saranno messi nella finestra
attiva e non sostituiranno i gadget già esistenti in essa.
@ENDNODE

@NODE savegadgets "Gadgets/Salva..."

Questo salverà tutti i gadgets @{"selezionati" link "selection"}.
@ENDNODE

@NODE item "Gadgets/Scelte..."

Questo aprirà l'editor delle Scelte: consiste in una listview in cui  puoi
vedere le scelte che il gadget @{"selezionato" link "selection"} ha, uno string  gadget  che  ti di
modificare le scelte e tre pulsanti:

  Nuovo:      Aggiunge una nuova voce alla lista.
  Elimina:    Cancella la voce selezionata.
  Ok:         (=ESC) Chiude l'editor.

Questa  funzione funziona solo con i gadget @{"LISTVIEW" link "listview"}, @{"MX" link "mx"} e @{"CYCLE" link "cycle"}.  Per gli
ultimi due, sei obbligato ad inserire almeno DUE voci.
@ENDNODE

@NODE font "Gadgets/Font..."

Questo  aprirà  un  ASL  Font  Requester  in cui puoi selezionare un font.
Quest font sarà usato per tutti i gadget @{"selezionati" link "selection"}.
@ENDNODE

@NODE selectall "Gadgets/Seleziona tutti"

Sì!   Hai  indovinato!   Questo  selezionerà tutti i gadget della finestra
corrente.  ;)
@ENDNODE

@NODE newwindow "Finestre/Nuova..."
Questo aprirà una nuova finestra vuota.

Puoi   aprire   quante  finestre  vuoi  (devi  avere  abbastanza  memoria,
naturalmente).
@ENDNODE

@NODE discardwindow "Finestre/Elimina"

L'attuale finestra attiva sarà cancellata dalla memoria.  FAI ATTENZIONE!
@ENDNODE

@NODE discardallwindow "Finestre/Elimina tutte"

Tutte  le  finestre  attive  saranno cancellate dalla memoria.  STAI MOLTO
ATTENTO!
@ENDNODE

@NODE openwindow "Finestre/Apri..."

Apparirà  una  lista  delle  finestre  attualmente  in memoria:  clicca su
quella  che vuoi aprire.  Puoi usare anche i @{"tasti" link keyboard} freccia per andare su e giù
nella  lista,  il  @{"tasto" link keyboard}  RETURN per selezionare e il @{"tasto" link keyboard} 'ESC' per
terminare.
@ENDNODE

@NODE loadwindow "Finestre/Carica..."

Questo  aprirà  un  filereq  ASL  con  cui  puoi scegliere una finestra da
caricare.   La  finestra  selezionata  sarà  aggiunta  alle altre finestre
dell'interfaccia.
@ENDNODE

@NODE savewindow "Finestra/Salva..."

Questo  apre un filereq in cui tu puoi selezionare il nome con cui salvare la
finestra attiva.
@ENDNODE

@NODE windowflags "Finestre/Flags..."

Questo  aprirà  una lista dei flag per le finestre:  puoi scegliere quelli
che desideri cliccandoci su.  Quelli selezionati saranno marcati da questo
'*'.

Nota che i flag non sono usati, a meno che tu non abbia  settato  la  voce
@{" Preferenze/Usa i flags settati " link "usewflags"}.
@ENDNODE

@NODE idcmp "Finestre/IDCMP..."

Questo  aprirà  una lista degli IDCMP:  puoi scegliere quelli che desideri
cliccandoci su.  Quelli selezionati saranno marcati da questo '*'.

NOTA:   Nessuno  dei flag IDCMP è in effetti usato dentro IEditor.  I flag
funzioneranno solo nel sorgente generato.
@ENDNODE

@NODE windowtags "Finestre/Tags..."

Questo  aprirà  una  finestra  in  cui puoi editare la più importanti tags
della finestra.

Nella finestra troverai i seguenti gadget:

    ScreenTitle         Puoi scrivere un titolo di schermo alternativo qui
                        dentro.
                        Questo sarà il  titolo  dello  schermo  quando  la
                        finestra è attiva.

    AutoAdjust          Quando  questo   gadget   è   checkato   Intuition
                        automaticamente   aggiusterà  la  posizione  della
                        finestra e  le  sue  dimensioni  per  forzarla  ad
                        adattarsi allo schermo.

    FallBack            Quando la tua  finestra  si  deve  aprire  su  uno
                        schermo  specifico   e   quello   schermo   non  è
                        disponibile   si   aprirà   automaticamente  sullo
                        schermo di default quando questa tag è settata.

    MouseQueue          Questo ti permette di assegnare il massimo  numero
                        di messaggi MOUSEMOVE che  saranno  incodati  alla
                        tua porta messaggio in una sola volta.

    RptQueue            Lo stesso di  MouseQueue  solo  che  questa  volta
                        indica    il    massimo    numero    di   messaggi
                        RAWKEY/VANILLAKEY.

    Notify Depth        Se questa tag è settata,  riceverai  un  messaggio
                        IDCMP_CHANGEWINDOW quando la  tua  finestra  viene
                        spostata davanti o dietro.

    Menu Help           Se settato, abilita la caratteristica MenuHelp per
                        questa finestra.

    Tablet Messages     Richiede  gli  IntuiMessages  estesi  per  la  tua
                        finestra,   così    puoi    ricevere   gli  eventi
                        IESUBCLASS_NEWTABLET con gli IntuiMessages.

    Porta IDCMP Condivisa      Se  settato,  indica  che  questa  finestra
                               deve utilizzare una @{"porta IDCMP condivisa" link sharedport}.

Nel Box Localizza,  troverai  alcuni  checkbox  che  ti  permetteranno  di
decidere cosa localizzare nella finestra.
@ENDNODE

@NODE closewindow "Finestre/Chiudi"

Questo  chiuderà  la  finestra attiva, consentendoti di salvare la memoria
allocata per essa e per i suoi gadget.

Se la vuoi riaprire, seleziona la voce @{"Apri..." link "openwindow"}.
@ENDNODE

@NODE closeallwindow "Finestre/Chiudi tutte"

Questo chiuderà tutte le finestre del tuo GUI, consentendoti di salvare la
memoria allocata per esse e per i loro gadget.

Se le vuoi riaprire, seleziona la voce @{"Apri..." link "openwindow"}.
@ENDNODE

@NODE titlewindow "Finestre/Titolo..."

Questo  aprirà  il  requester  per  il  titolo della finestra, in cui puoi
specificare il titolo della finestra (Noo!  ;) e la sua etichetta.

Nota  che  se non specifichi un'etichetta, sarà creata da IE quando generi
il tuo sorgente.
@ENDNODE

@NODE sizewindow "Finestre/Dimensioni..."

Questo  aprirà  un  requester  in cui tu puoi specificare tutte le tags di
dimensione delle finestre, che sono:

   MinWidth, MinHeight, MaxWidth, MaxHeight:  questi determinano le minime
   e massime dimensioni della finestra. Premendo il gadget "*"  vicino  ai
   gadget integer, la dimensione della finestra  attiva  sarà  copiata  in
   essi.

   Inner Width, Inner  Height:   se   selezionati,  questi  determineranno
   la dimensione interna della finestra,  trascurando  la  dimensione  del
   bordo o la barra del titolo.

I   gadget   Ok   e   Cancella   rispettivamente  confermano  o  annullano
l'operazione.
@ENDNODE

@NODE zoomwindow "Finestre/Zoom..."

Questo aprirà un requester in cui tu troverai questi gadget:

  Top:    coordinata Y dell'angolo superiore sinistro che la finestra
          dovrà assumere quando viene premuto il gadget zoom.
          -1 indica che la finestra deve rimanere dov'è.  (Kick 3.0)

  Left:   coordinata X dell'angolo superiore sinistro che la finestra
          dovrà assumere quando viene premuto il gadget zoom.
          -1 indica che la finestra deve rimanere dov'è.  (Kick 3.0)

  Width:  Indica la larghezza che la finestra assumerà  quando  viene
          premuto lo zoom gadget.

  Height: Indica l'altezza che  la  finestra  assumerà  quando  viene
          premuto lo zoom gadget.


Ci sono anche quattro gadget "*":  premendoli le dimensioni e la posizione
della finestra saranno copiate nei rispettivi gadget integer.
@ENDNODE

@NODE makegbank "Finestre/Banco di gadget/Crea..."

Questa funzione permette di raggruppare tutti i gadget @{"selezionati" link selection} in  un
"banco di gadget".

Vedi la sezione @{"Parametri" link editgbank} per una descrizione del requester che  apparirà
dopo aver creato un banco.

Per banco di gadget, intendo  un  gruppo  di  gadget  che  possono  essere
attaccati o staccati a piacere dalla finestra in cui sono posti.

Lo scopo principale per cui ho inserito questa feature in IEditor,  è  per
creare  dei  requester simili al requester delle preferenze di GoldEd o ai
requester a "pagine" tipici di Word o Excel (aaargh! ;-).
@ENDNODE

@NODE delgbank "Finestre/Banco di gadget/Elimina..."

Selezionando questa voce, verrà aperta una finestra contenente  una  lista
dei  banchi  di  gadget presenti nella finestra. Selezionandone uno, verrà
eliminato e così pure tutti i gadget che lo formavano.

Il simbolo "(---)" significa "nessun banco":  scegliendolo  si  cancellerà
l'operazione.
@ENDNODE

@NODE showgbank "Finestre/Banco di gadget/Mostra..."

Selezionando questa voce, verrà aperta una finestra contenente  una  lista
dei  banchi  di  gadget presenti nella finestra. Selezionandone uno, verrà
mostrato.

Il simbolo "(---)" significa "nessun banco":  scegliendolo  si  cancellerà
l'operazione.
@ENDNODE

@NODE hidegbank "Finestre/Banco di gadget/Nascondi..."

Selezionando questa voce, verrà aperta una finestra contenente  una  lista
dei  banchi  di  gadget presenti nella finestra. Selezionandone uno, verrà
nascosto.

Ciò può risultare molto utile per "liberare" la finestra e poter disegnare
comodamente un altro banco di gadget al suo posto.

Il simbolo "(---)" significa "nessun banco":  scegliendolo  si  cancellerà
l'operazione.
@ENDNODE

@NODE editgbank "Finestre/Banco di gadget/Parametri..."

Selezionando questa voce, verrà aperta una finestra contenente  una  lista
dei  banchi  di  gadget presenti nella finestra.

Il simbolo "(---)" significa "nessun banco":  scegliendolo  si  cancellerà
l'operazione.

Scegliete quello che volete modificare e si aprirà una finestra contenente
questi gadget:

    - Label                     Etichetta del banco di gadget

    - Mostra all'apertura       Se è  settato,  il  banco  verrà  mostrato
                                automaticamente     all'apertura     della
                                finestra che lo contiene.
@ENDNODE

@NODE getfont "Schermo/Font..."

Questo aprirà il Font Req ASL in cui tu puoi selezionare un nuovo font per lo
schermo.

Nota  che  questo  interesserà  il  codice sorgente solo se la generazione
dello schermo è @{"attiva" link srcparams}.
@ENDNODE

@NODE dripens "Schermo/DriPens..."

Questo  aprirà  un  requester in cui puoi editare le DriPens, che sono una
matrice  di numeri di penne che sono usati per creare il nuovo aspetto del
SO 2.0.

In questo req troverai questi gadget:

    Pens                In  questo gadget ciclico puoi selezionare la  pen
                        da editare.
                        Attualmente le seguenti penne sono supportate:

                        DETAILPEN
                            DetailPen compatibile 1.3

                        BLOCKPEN
                            BlockPen compatibile 1.3

                        TEXTPEN
                            Usato  per il rendering dei testi dei gadget e
                            i titoli delle finestra.

                        SHINEPEN
                            Usato  per  rappresentare  il  lato chiaro dei
                            gadget e i bordi delle finestre.

                        SHADOWPEN
                            Usato  per  rappresentare  il  lato  scuro dei
                            gadget e i bordi delle finestre.

                        FILLPEN
                            Usato per rappresentare lo sfondo di un gadget
                            selezionato  e  i  bordi delle finestre quando
                            sono attive.

                        FILLTEXTPEN
                            Usato  per  rappresentare  i  testi dei gadget
                            selezionati e i titoli delle finestra attive.

                        BACKGROUNDPEN
                            Usato per rappresentare lo sfondo  dei  gadget
                            selezionati.

                        HIGHLIGHTTEXTPEN
                            Usato per rappresentare i testi di gadget  con
                            il flag Highlight settato.

              NOTA:  Le seguenti tre pens sono solo disponibili sotto 3.0.

                        BARDETAILPEN
                            Usato  per  rappresentare  il  testo  dei menù
                            NewLook.

                        BARBLOCKPEN
                            Usato  per  rappresentare  lo sfondo  dei menù
                            NewLook.

                        BARTRIMPEN
                            Usato  per  rappresentare  la  linea  sotto la
                            barra dei menù.

    Palette             Con questo gadget puoi cambiare la DriPen corrente.
@ENDNODE

@NODE palettemodify "Schermo/Colori/Modifica..."

Questo  aprirà  un color requester standard ReqTools, che ti permetterà di
cambiare la palette dello schermo.
@ENDNODE

@NODE paletteload "Schermo/Colori/Carica..."

Questo  aprirà  un  file-requester  ASL  in  cui  puoi selezionare un file
IFF-ILBM.  La palette di quel file sarà usata per lo schermo.
@ENDNODE

@NODE palettesave "Schermo/Colori/Salva..."

Questo  aprirà un file-requester ASL in cui puoi inserire il nome del file
per  i  colori.   IEditor  salva  la mappa di colore in un file in formato
IFF-ILBM.
@ENDNODE

@NODE screentags "Schermo/Tags..."

Nell'editor per le tags dello schermo troverai i seguenti gadget:

    Left, Top           Questi specificano  la  posizione  dell'angolo  in
                        alto a sinistra dello schermo.

    Title               In questo gadget puoi  scrivere  il  titolo  dello
                        schermo.   Questo  è  il  titolo che sarà mostrato
                        quando  non  ci  sono finestre attive che hanno il
                        loro titolo di schermo.

    Show Title          Se non è settata, lo schermo non avrà la barra del
                        titolo.

    Behind              Settando questo, lo schermo sarà aperto dietro gli
                        altri.  Questo ti permette di prepararlo prima  di
                        metterlo davanti.

    Quiet               Dice ad Intuition di non  disegnare  i  gadget  di
                        sistema dello schermo e il suo titolo.

    Type                Questo gadget ti permetterà di cambiare il tipo di
                        schermo  per  cui stai lavorando.  I seguenti tipi
                        sono supportati:

                      CUSTOMSCREEN
                          Lo schermo della tua GUI non può essere usato da
                          altri programmi.

                      PUBLICSCREEN
                          Lo schermo della tua GUI  può  essere  usato  da
                          qualsiasi altro programma.

    Overscan            Se questo è settato, nel sorgente  generato non ci
                        sarà la definizione della dimensione dello schermo
                        attraverso  SA_Width & SA_Height,  ma  sarà  usata
                        SA_Overscan al loro posto.

    Pub Name            Se inserisci qui una stringa, lo  schermo sarà uno
                        schermo pubblico, il cui nome è questo.

    Full Palette        Se settata, quando lo schermo viene aperto,  tutti
                        i suoi colori saranno sovrascritti dalla serie  di
                        colori delle preferenze.

    Error Code          Se   settata,   nel  sorgente  sarà  generata  una
                        variabile  in  cui  sarà messo un codice di errore
                        esteso nel caso in cui OpenScreenTagList fallisca.

    Draggable           Se non è settata, lo schermo non  sarà  spostabile
                        con la barra del titolo.
                        Questo funziona solo con kick v39+.

    Exclusive           Settalo  se  non  vuoi  mai  che  il  tuo  schermo
                        condivida   il   display  con  un  altro.   Questo
                        significa  che lo schermo non può essere abbassato
                        e  non  apparirà  dietro ad altri schermi che sono
                        abbassati.
                        Questo funziona solo con kick v39+.

    Share Pens          Se settata, Intuition otterrà le penne  per il tuo
                        schermo in modo condiviso.
                        Questo funziona solo con kick v39+.

    Interleaved         Richiede   ad   Intuition  di  allocare una bitmap
                        interleaved per il tuo schermo.
                        Questo funziona solo con kick v39+.

    Like Workbench      Settalo se vuoi  uno  schermo  proprio come quello
                        del Workbench.
                        Questo funziona solo con kick v39+.

    MinimizeISG         Dice ad Intuition di  usare  il  più piccolo Inter
                        Screen Gap possibile per il tuo schermo.
                        Questo funziona solo con kick v40+.
@ENDNODE

@NODE screentype "Screen/Change Type..."

Questo  aprirà il requester di modo di schermo ASL.  Nel requester di modo
di schermo tu puoi cambiare tutte le cose importanti circa lo schermo.

I  MODI  VGA E A2024 POSSONO SOLO ESSERE USATI CON MONITOR VGA/MULTISYNC O
A2024!   L'USO  DI  QUESTI MODI DI SCHERMATA SU UN MONITOR RGB STANDARD PU
RISULTARE SERIAMENTE DANNOSO PER IL MONITOR!
@ENDNODE

@NODE savescr "Schermo/Salva..."

Questo  aprirà  un  ASL File-requester in cui tu puoi inserire il nome del
file in cui tu vuoi salvare la definizione di schermo corrente.
@ENDNODE

@NODE loadscr "Schermo/Carica..."

Questo  aprirà un ASL File-requester in cui tu puoi selezionare un file da
cui caricare la definizione di schermo.
@ENDNODE

@NODE localize "Varie/Localizzazione..."

Questo aprirà un requester in cui troverai questi gadgets:

    Catalogo            nome  del   catalogo   della    tua   applicazione
                        (al nome verrà poi aggiunto ".catalog" da IE)

    Unisci              Inserire qui il path  di  un  file  .cd  da  unire
                        al file generato da IE. In questo modo è possibile
                        inserire  nel  catalogo  altre  stringhe  oltre  a
                        quelle presenti nella GUI.
                        Il file specificato verrà copiato  all'inizio  del
                        nuovo  file .cd,  in  modo  da  evitare  di  dover
                        ricompilare tutta la vostra applicazione quando si
                        aggiunge  o   toglie   una   stringa   nella  GUI.
                        Ovviamente sarà però poi necessario ricompilare la
                        GUI del vostro programma qualora venga aggiunta  o
                        rimossa una stringa dal file .cd (e .ct) prodotto.

                        Nota: dalla versione 2.31 di IEditor, è fortemente
                        consigliato  l'uso   della  funzione  "Importa..."
                        al posto di questa.

    Built In            Inserire qui  la  lingua  di  default  del  vostro
                        programma.

    Versione            Versione minima del catalogo da aprire.  0  indica
                        che va bene una versione qualsiasi.

    Attivata            Attiva la localizzazione della vostra GUI.


    Linguaggi           Qui puoi vedere i linguaggi per i quali IE creerà
                        i files di localizzazione.

    Nuovo               Aggiungi un nuovo linguaggio. Devi specificare il
                        nome  del  linguaggio  e  il  nome  del  file  di
                        traduzione che verrà creato per esso.
                        Nota  che   il   suffisso    ".ct"   è   aggiunto
                        automaticamente da IEditor.

    Elimina             Questo  rimuoverà  il  linguaggio  selezionato  e
                        tutte le traduzioni relative ad esso.


    Stringhe            Qui puoi gestire tutte le  stringhe  per  le  tue
                        applicazioni.   In   questo   modo  puoi  gestire
                        l'intero processo di localizzazione da IEditor.
                        Un doppio click su una stringa apre il  requester
                        spiegato di seguito.

    Nuova               Aggiunge una nuova stringa al database.

    Elimina             Rimuove una stringa  dal  database.  Naturalmente
                        non puoi rimuovere una stringa usata dalla GUI.

    Importa...          Questo ti permette di  leggere  un  file  .cd  ed
                        importare tutte le stringhe che contiene in IE.


Questi sono i gadget principali del requester per le stringhe:

    Stringa             La stringa che stai editando. Nota che  qui  puoi
                        modificare solo le stringhe che  non  sono  usate
                        dalla GUI: cambiare una stringa usata  dalla  GUI
                        non avrà alcun effetto.

    ID                  Etichetta per la stringa. Potrai quindi riferirti
                        alla stringa usando  "CatCompArray[ ID ].cca_Str"
                        nel tuo codice.
                        Le etichette per le stringhe usate nella GUI sono
                        assegnate  da   IEditor   quando   si  genera  il
                        sorgente.

    Traduzioni          Traduzioni per la stringa.
@ENDNODE

@NODE requesters "Gadget Requesters"

Seleziona il tipo di cui ti piacerebbe sapere di più:

    @{" BUTTON     " link "button"}
    @{" CHECKBOX   " link "checkbox"}
    @{" INTEGER    " link "integer"}
    @{" LISTVIEW   " link "listview"}
    @{" MX         " link "mx"}
    @{" NUMBER     " link "number"}
    @{" CYCLE      " link "cycle"}
    @{" PALETTE    " link "palette"}
    @{" SCROLLER   " link "scroller"}
    @{" SLIDER     " link "slider"}
    @{" STRING     " link "string"}
    @{" TEXT       " link "text"}
    @{" BOOLEAN    " link "boolean"}
@ENDNODE

@NODE button "BUTTON"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Immediate           Quando  questa  etichetta  è  settata,  il  gadget
                        invierà un messaggio IDCMP_GADGETDOWN quando viene
                        premuto.
                        Questo funziona solo con kick v39+.
@ENDNODE

@NODE checkbox "CHECKBOX"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Checked             Per default il gadget creato è disattivato. Quando
                        selezioni questa opzione  il  gadget  sarà  creato
                        "checkato".

    Scaled              Questa tag funziona solo con Kickstart 3.0+.
                        Se è  settata,  sarai  in  grado  di  cambiare  la
                        dimensione  del gadget checkbox.
                        NOTA:   se  usi  un  font  più alto di 8 punti, il
                        gadget non sarà  messo  dove lo disegni, ma un po'
                        più  giù.   Settando  questa  tag, esso sarà messo
                        esattaamente.
@ENDNODE

@NODE integer "INTEGER"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Tab Cycle           Se questa tag è settata, quando l'utente preme  il
                        tasto TAB mentre il gadget  è  attivo,  il  gadget
                        successivo sarà attivato.

    Immediate           Quando questa tag è settata, il gadget invierà  un
                        messaggio IDCMP_GADGETDOWN quando viene premuto.
                        Questo funziona solo con kick v39+.

    Exit Help           Quando è settata e l'utente preme  il  tasto  HELP
                        mentre il gadget creato è attivo il tuo programma
                        riceverà un messaggio speciale chiedendo un aiuto.
                        Puoi identificare questo messaggio speciale quando
                        il campo Code dell'IntuiMessage è 0x5F.

    Replace Mode        Questo tipo di gadget è  normalmente  creato  nel
                        modo insert. Settando questa tag sarà creato  nel
                        modo di sostituzione, ciò  significa  che  quando
                        l'utente  preme   un   tasto,   sovrascriverà  il
                        carattere sotto il cursore.

    Number              Normalmente il gadget è creato con 0 come il  suo
                        valore iniziale. Qui tu puoi inserire  il  valore
                        con cui vuoi che sia creato.

    MaxChars            In questo gadget tu  puoi  assegnare  il  massimo
                        numero di cifre che possono  essere  inserite  in
                        questo gadget.

    Justification       Con questo gadget tu puoi assegnare il posto dove
                        i numeri dovrebbero apparire nel gadget.
@ENDNODE

@NODE listview "LISTVIEW"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.
                        Con questo tipo di  gadget,  questa  tag  funziona
                        solo col kick v39+.

    Read Only           Quando setti questa  tag  il  gadget  creato  sarà
                        "a sola lettura" che significa che  i  nomi  nella
                        lista non potranno essere selezionati.

    Show Selected       Con questa opzione attivata il nome che  selezioni
                        sarà mostrato in un piccolo box proprio  sotto  il 
                        gadget. NOTA: Sotto Kickstart 3.0 questo  è  stato
                        cambiato! Sotto 3. 0  l'entrata  selezionata  sarà
                        mostrata con un differente colore di sfondo.

    Top                 Voce che deve essere visibile in alto nel listview.

    Make Visible        Numero della voce che deve  essere  forzata  dentro
                        l'area visibile  del  listivew  facendo  lo  scroll
                        minimo.
                        Questa tag sovrascrive "Top" e  funziona  solo  con
                        kick v39+.

    MultiSelect         Permette  di   usare    il    listview    in   modo
                        multiselezione.  Questa  feature  funziona  solo  a
                        partire dal kickstart v39.
                        Leggi @{"questa sezione" link multiselectsrc} per informazioni su come usare
                        le listview multiselect.

    Scroll Width        In questo gadget tu puoi inserire la  larghezza  in
                        pixel del gadget @{"SCROLLER" link "scroller"}.

    Max Pen             Il massimo numero di penna usato per il   rendering
                        da un callback hook personale.
                        Questo funziona solo con kick v39+.

    Selected            Numero della voce che dovrebbe essere selezionata.

    Spacing             In questo gadget puoi inserire il numero di  pixel
                        che saranno usati come spazio  tra  i  nomi  della
                        lista.

    Item Height         Inserisci qui l'esatta altezza di una voce. Questo
                        è normalmente utile per listviews che usano la tag
                        GTLV_CallBack.
                        Questo funziona solo con kick v39+.
@ENDNODE

@NODE mx "MX"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.
                        Con questo tipo di  gadget,  questa  tag  funziona
                        solo col kick v39+.

    Scaled              Questa tag funziona solo con Kickstart 3.0+.
                        Se è  settata,  sarai  in  grado  di  cambiare  la
                        dimensione  del gadget mx.
                        NOTA: se usi un font più alto di 8 punti, il gadget
                        non sarà messo dove lo disegni, ma un pò  più  giù.
                        Settando questa tag, esso sarà messo esattaamente.

    Title Place         Esso indica dove il titolo dovrebbe apparire.

    Active              Questo gadget ti permette di assegnare l'opzione che
                        sarà attiva quando il gadget verrà creato.

    Spacing             In questo gadget tu puoi inserire il numero di pixel
                        che saranno usati come spazio tra le opzioni.
@ENDNODE

@NODE number "NUMBER"

Queste sono le tags che puoi specificare con IE:

    Number              Per default il gadget mostra 0. Qui dentro tu puoi
                        cambiare il valore che il gadget creato avrà.

    Border              Quando è settata il gadget creato  avrà  un  bordo
                        recessed disegnato attorno esso.

    Front Pen           La pen da usare per stampare il numero.
                        -1 dice a IE di non usare questa tag nel sorgente.
                        Questo funziona solo con kick v39+.

    Back Pen            La pen da usare per disegnare lo sfondo del numero.
                        -1 dice a IE di non usare questa tag nel sorgente.
                        Questo funziona solo con kick v39+.

    Justification       Determina dove rappresentare il numero all'interno
                        del box del gadget.
                        Questo funziona solo con kick v39+.
                        Sotto v39, devi anche settare la tag Clipped,  se
                        setti  questa,   altrimenti   il  testo  non  sarà
                        stampato.

    Format              Stringa di formattazione in stile C da applicare al
                        numero prima di mostrarlo. Assicurati di  usare  il
                        modificatore 'l' (long).
                        Questo funziona solo con kick v39+.

    Clipped             Se è settata,  il testo del gadget sarà clipped alle
                        dimensioni del gadget.
                        Questo funziona solo con kick v39+.

    Max Number Len      Questo   indica   il  massimo  numero  di  byte  che
                        possono  essere   generati  applicando  la   stringa
                        "Format".
@ENDNODE

@NODE cycle "CYCLE"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Active              Questo gadget ti permette di  assegnare  l'opzione
                        che sarà attiva quando il gadget verrà creato.
@ENDNODE

@NODE palette "PALETTE"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Color               In questo gadget tu puoi inserire il colore che è
                        attivo nel gadget creato.

    Depth               La  profondità  ti  permette  di  controllare  la
                        quantità di colori che sono mostrati  nel  gadget
                        creato.

                            1   = 2 colori
                            2   = 4 colori
                            ......
                            8   = 256 colori

                        NOTA: Attualmente solo  un  valore  tra  1  e 8  è
                              permesso.

    Color Offset        Ci potrebbero essere volte che vuoi avere solo una
                        parte dei colori disponibili nel  gadget  palette.
                        Questo gadget e il gadget Depth possono  far  ciò.
                        Se tu vuoi avere il 2° e 3° colore su uno  schermo
                        di 4 colori fai quanto segue:

                           Assegna Depth a 1
                           Assegna Color Offset a 1

                        In questo modo otterrai il gadget che vuoi.

    Indicator Width     Questa etichetta indica la larghezza desiderata
                        dell'indicatore del colore  selezionato.  Se  è
                        uguale a 0, l'indicatore non sarà creato.
                        NOTA: Questa tag non funziona con kick v39+.

    Indicator Height    Questa etichetta indica la l'altezza desiderata
                        dell'indicatore del colore  selezionato.  Se  è
                        uguale a 0, l'indicatore non sarà creato.
                        NOTA: Questa tag non funziona con kick v39+.

    Num Colors          Numero di colori da mostrare nel gadget. Questo
                        sovrascrive "Depth" e permette numeri  che  non
                        sono potenze di 2.
                        Questo funziona solo con kick v39+.
@ENDNODE

@NODE scroller "SCROLLER"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Immediate           Quando questa tag è settata, il gadget invierà  un
                        messaggio IDCMP_GADGETDOWN quando viene premuto.
                        Questo funziona solo con kick v39+.

    Rel Verify          Quando è  settata  la  tua  finestra  riceverà  un
                        messaggio   quando   l'utente  rilascia  il  tasto
                        sinistro del mouse mentre il  puntatore  è  ancora
                        sul gadget.

    Top                 Inserire la posizione  visibile  nell'area  che lo
                        scroller rappresenta qui dentro.

    Total               Inserire il numero  totale  di  posizioni  che  lo
                        scroller rappresenta qui dentro.

    Visible             Inserire il numero di posizioni  visibili  che  lo
                        scroller rappresenta qui dentro.

    Arrows              Quando è settata lo  scroller  creato  avrà  delle
                        frecce. Inserisci qui la dimensione delle frecce.

    Freedom             Con questo gadget tu puoi assegnare  la  direzione
                        in cui lo scroller è regolabile.
@ENDNODE

@NODE slider "SLIDER"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Rel Verify          Quando è  settata  la  tua  finestra  riceverà  un
                        messaggio   quando   l'utente  rilascia  il  tasto
                        sinistro del mouse mentre il  puntatore  è  ancora
                        sul gadget.

    Immediate           Quando questa tag è settata, il gadget invierà  un
                        messaggio IDCMP_GADGETDOWN quando viene premuto.
                        Questo funziona solo con kick v39+.

    Min                 Inserisci  il  minimo  livello  dello  slider  qui
                        dentro.

    Max                 Inserisci  il  massimo  livello  dello  slider qui
                        dentro.

    Level               Per default la posizione dello  slider   è 0.  Qui
                        dentro  tu  puoi inserire il livello che lo slider
                        avrà quando verrà creato.

    Max Level Len       Massima  lunghezza  in  caratteri   della  stringa
                        di livello quando è stampata vicino allo slider.
                        Questo funziona solo con kick v39+.

    Level Format        Qui dentro  tu  puoi   inserire   una  stringa  di
                        formattazione  in  stile  C  per  l'indicatore  di
                        livello.

    Level Place         Con questo gadget determini la posizione in cui la
                        freccia di livello è rappresentata.

    Max Pixel Len       Indica la massima dimensione  di  pixel  sfruttata
                        dal  l'indicatore  di livello per qualsiasi valore
                        dello  slider.   Questo è utile nel momento in cui
                        si usano font proporzionali.
                        Questo funziona solo con kick v39+.

    Justification       Determina come  la  schermata  di   livello   deve
                        essere giustificata entro il suo spazio.
                        Questo funziona solo con kick v39+.

    Freedom             Con questo gadget tu puoi assegnare  la  direzione
                        in cui lo slider è regolabile.
@ENDNODE

@NODE string "STRING"

Queste sono le tags che puoi specificare con IE:

    Disabled            Quando questa opzione è attivata il gadget  creato
                        sarà creato disabilitato.

    Immediate           Quando questa tag è settata, il gadget invierà  un
                        messaggio IDCMP_GADGETDOWN quando viene premuto.
                        Questo funziona solo con kick v39+.

    Tab Cycle           Se questa tag è settata, quando l'utente preme  il
                        tasto  TAB  mentre  il  gadget è attivo, il gadget
                        successivo sarà attivato.

    Exit Help           Quando è settata e l'utente preme  il  tasto  HELP
                        mentre il gadget creato è attivo il tuo  programma
                        riceverà un messaggio speciale chiedendo un aiuto.
                        Puoi identificare questo messaggio speciale quando
                        il campo Code dell'IntuiMessage è 0x5F.

    Replace Mode        Questo tipo di gadget è  normalmente   creato  nel
                        modo insert. Settando questa tag sarà  creato  nel
                        modo di sostituzione,  ciò  significa  che  quando
                        l'utente   preme   un   tasto,   sovrascriverà  il
                        carattere sotto il cursore.

    String              Normalmente il gadget è creato vuoto.
                        Qui tu puoi inserire  la stringa con cui vuoi  che
                        sia creato.

    MaxChars            In questo gadget  tu  puoi  assegnare  il  massimo
                        numero di caratteri che  possono  essere  inseriti
                        in questo gadget.

    Justification       Con questo gadget tu puoi assegnare il posto  dove
                        il testo dovrebbe apparire nel gadget.
@ENDNODE

@NODE text "TEXT"

Queste sono le tags che puoi specificare con IE:

    CopyText            Quando è settata GadTools copierà il testo  in  un
                        buffer interno cosicchè il programma  può   usarlo
                        di nuovo.

    Border              Quando è settata il gadget creato  avrà  un  bordo
                        recessed disegnato attorno esso.

    Clipped             Se è settata,  il testo del gadget  sarà  clippato
                        alle dimensioni del gadget.
                        Questo funziona solo con kick v39+.

    Text                Per default il gadget è vuoto. Qui dentro tu  puoi
                        inserire il testo che il gadget creato avrà.

    Front Pen           La pen da usare per stampare il testo.
                        -1 dice a IE di non usare questa tag nel sorgente.
                        Questo funziona solo con kick v39+.

    Back Pen            La pen da usare per disegnare lo sfondo del testo.
                        -1 dice a IE di non usare questa tag nel sorgente.
                        Questo funziona solo con kick v39+.

    Justification       Determina dove rappresentare il testo all'interno
                        del box del gadget.
                        Questo funziona solo con kick v39+.
                        Sotto v39, devi anche settare la tag Clipped,  se
                        setti  questa,   altrimenti  il  testo  non  sarà
                        stampato.
@ENDNODE

@NODE macros "Macros/Tasti funzione..."

Questa voce aprirà una finestra in cui troverai 10  string  gadget  ed  un
cycle  gadget. I gadget stringa sono chiamati F1...F10: lì puoi inserire i
nomi degli script ARexx che vuoi associare ai rispettivi tasti funzione.

Oppure puoi clickare sui gadget "get file" posti a fianco di  ogni  string
gadget per aprire un file requester.

Con il cycle gadget puoi specificare se lo script dovrà  essere  collegato
al  solo  tasto  funzione,  oppure  al tasto funzione più un qualificatore
(nessuno, SHIFT, ALT): così puoi utilizzare fino a 30 script diversi.

@{"Scripts forniti con IEditor" link scripts}
@ENDNODE

@NODE addmacro "Macros/Aggiungi..."

Oltre a collegare script ARexx ai @{"tasti funzione" link macros}, puoi  aggiungere  delle
voci al menu Macros.

Selezionando questa  voce  apparirà  un  file  requester  con  cui  potrai
scegliere uno script ARexx da aggiungere al menu.

Una volta aggiunto, uno script ARexx può essere  richiamato  semplicemente
selezionando il suo nome.

@{"Scripts forniti con IEditor" link scripts}
@ENDNODE

@NODE remmacro "Macros/Rimuovi..."

Selezionando questa voce, apparirà una finestra con la lista  delle  macro
@{"aggiunte" link addmacro} al menu.

Clickando su quella che desideri, la rimuoverai.
@ENDNODE

@NODE execmacro "Macros/Esegui..."

Questa voce ti permetterà di eseguire istantaneamente uno script ARexx per
IE.

Apparirà infatti un file requester: scegli lo script che desideri e  verrà
eseguito.

@{"Scripts forniti con IEditor" link scripts}
@ENDNODE

@NODE scripts "Scripts ARexx forniti con IEditor"

Questi sono gli scripts che troverete nella distribuzione di IE:


ShadowText.ie
-------------

Permette di aggiungere un effetto ombra agli IntuiTexts.


Save&Exit.ie
------------

Salva l'interfaccia corrente ed esce da IEditor.


Shell.ie
--------

Apre una Shell sullo schermo di IE.


ImgBox.ie
---------

Aggiunge un bevel box di contorno ad una immagine.


CenterText.ie
-------------

Centra un IntuiText nel lato superiore di un BevelBox.


Ridge20.ie
----------

Trasforma un bevel box  in  un  bevel  del  tipo  Ridge,  compatibile  col
kickstart 2.0 (il Ridge impostato tramite tag funziona solo dal 3.0).


MoveImage.ie
------------

Sposta un'immagine alle coordinate indicate.


AlignBoxRight.ie
AlignBoxLeft.ie
AlignBoxTop.ie
AlignBoxBottom.ie
-----------------

Eseguono allineamenti fra bevel box.
@ENDNODE

@NODE toolswindow "Preferenze/Finestra Strumenti"

Questo aprirà/chiuderà la finestra degli @{"Strumenti" link toolbar}.
@ENDNODE

@NODE usegads "Preferenze/Usa i Gadgets"

Se  non  è  selezionato,  i gadget nelle finestre di edit saranno creati e
quindi staccati subito, rendendo la selezione più facile e veloce.
@ENDNODE

@NODE infront "Preferenze/Finestra corrente in primo piano"

Seleziona  questo  per avere la finestra selezionata sempre di fronte alle
altre.
@ENDNODE

@NODE usewflags "Preferenze/Usa i flags settati"

Se  impostato, le finestre che stai editando useranno i flag hai assegnato
loro, altrimenti i miei ;) flag saranno usati.
@ENDNODE

@NODE createicons "Preferenze/Genera icone"

Se è attivato, verrà creato un file .info quando @{"salvi" link "save"} una GUI.
@ENDNODE

@NODE genprefs "Preferenze/Generatore..."

Questo aprirà una finestra in cui puoi scegliere/configurare il generatore
di codice.

Nella finestra troverai una listview che mostra la  lista  dei  generatori
installati: basta clickare su quello desiderato per attivarlo.

Premendo sul gadget "Configura", si aprirà la finestra  di  configurazione
del generatore.

Per quanto riguarda i generatori forniti con IE, qui  c'è  la  descrizione
dei  loro  parametri,  per  altri  generatori consultate la documentazione
fornita:

    @{" C.generator " link cprefs}
@ENDNODE

@NODE asmprefs "Preferenze/Sorgente Asm..."

Questo  aprirà  un  requester  in cui puoi editare alcuni parametri per il
sorgente Asm:

    Data Section        Se è settato, sarà creata una sezione DATA.

    BSS Section         Prova ad indovinare... ;-)

    IntuiMsg            Se è settato, nel sorgente verrà  riservato  dello
                        spazio per gli IntuiMessage delle finestre.
                        Es. Se hai una finestra la cui etichetta è  "Win",
                        nel sorgente troverai questa linea:
                        WinMsg      ds.b  im_SIZEOF

    Clicked Ptr         Se è settato, nel campo UserData  di  ogni  gadget
                        che può generare un messaggio IDCMP verrà posto un
                        puntatore chiamato <Gadget Label>Clicked.
                        Così, quando ricevi un messaggio IDCMP da una  tua
                        finestra, dovrai eseguire  la  routine puntata  da
                        esso.

    IDCMP Handler       Questo attiva la generazione degli @{"IDCMP Handler" link handler}.

    Key Handler         Questo attiva la generazione dei @{"Key Handler" link keyhandler}.

    Gadget Labels       Se  settato,  ogni  gadget  avrà  il  suo  proprio
                        puntatore invece di un array globale.

    Raw Code            Se settato, sarai in grado di assemblare il codice
                        generato senza i file include.

    Intuition Base      Inserisci qui il nome che normalmente usi nei tuoi
                        sorgenti per identificare l'Intuition Base

    GadTools Base       Lo sai già, non è vero? ;)
@ENDNODE

@NODE cprefs "Preferenze/Sorgente C..."

Questo  aprirà  un  requester  in cui puoi editare alcuni parametri per il
sorgente C:

    IntuiMessage        Se settato, strutture chiamate <Window_Label>Msg
                        verranno create nel sorgente.

    Clicked Ptr         Se è settato,  nel sorgente un puntatore chiamato
                        <Gadget_Label>Clicked   sarà   messo   nel  campo
                        userdata di ogni NewGadget. Così, puoi creare  un
                        gestore di IDCMP che, quando riceve un  messaggio
                        del  tipo  GADGETUP  (o  GADGETDOWN),  esegue  la
                        routine puntata da gg_UserData. Naturalmente  nel
                        tuo sorgente dovrai avere delle routine  chiamate
                        <Gadget_Label>Clicked( void ).

    IDCMP Handler       Questo attiva la generazione degli @{"IDCMP Handler" link handler}.

    Key Handler         Questo attiva la generazione dei @{"Key Handler" link keyhandler}.

    To Lower            Se settato, il @{"Key Handler" link keyhandler} non  farà  differenze
                        fra maiuscole e minuscole.

    Template            Se  settato,   IE   genererà   un  file  chiamato
                        <Progetto>_temp.c  in  cui  troverai  i  template
                        vuoti per le funzioni chiamate dal sorgente della
                        GUI.

    Smart Str           Se   settato,  il  generatore  non  scriverà  una
                        una  stringa   più  di  una  volta,  risparmiando
                        spazio.

    Use CatComp         Se  settato,  il  generatore  userà  CatComp  per
                        generare i files .ct e  _locale.h  (CatComp  deve
                        essere nel path).
                        Altrimenti, il generatore creerà questi files  da
                        solo.
                        NOTA: nel file _locale.h  creato  dal  generatore
                        ci sono solo i dati  relativi  a  CATCOMP_NUMBERS
                        e CATCOMP_ARRAY.

    UWORD chip          Inserisci  qui   la   sintassi   usata   dal  tuo
                        compilatore per mettere i dati in  un  hunk CHIP.

    Headers             Qui puoi inserire il nome di un file in cui  sono
                        definiti gli include  da  usare.  Questi  saranno
                        usati al posto di quelli  di  default  usati  dal
                        C.generator.
                        Il gadget 'R' presente di fianco a questo apre un
                        requester per selezionare il file.
                        Questo è un @{"esempio" link headersexample} di file di  definizione  per
                        gli include.


    Use                 Usa le preferenze settate.

    Save                Salva ed usa le preferenze.

    Cancel              Annulla le modifiche effettuate.
@ENDNODE

@NODE saveprefs "Preferenze/Memorizza"

Questo salverà il corrente settaggio delle preferenze.
@ENDNODE

@NODE headersexample "Esempio di un file di definizione per gli headers"

##STANDARD
#include <exec/types.h>
#include <exec/nodes.h>
#include <intuition/intuition.h>
#include <intuition/gadgetclass.h>
#include <libraries/gadtools.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#ifdef PRAGMAS
#include <pragmas/exec_pragmas.h>
#include <pragmas/intuition_pragmas.h>
#include <pragmas/graphics_pragmas.h>
#include <pragmas/gadtools_pragmas.h>
#endif
#include <ctype.h>
#include <string.h>

##DISKFONT
#include <clib/diskfont_protos.h>

##AREXX
#include <rexx/rxslib.h>
#include <rexx/rexxio.h>
#include <rexx/errors.h>
#include <rexx/storage.h>
#include <dos/dos.h>
#include <dos/rdargs.h>
#include <clib/dos_protos.h>
#include <clib/rexxsyslib_protos.h>
#include <clib/alib_stdio_protos.h>
#ifdef PRAGMAS
#include <pragmas/dos_pragmas.h>
#include <pragmas/rexxsyslib_pragmas.h>
#endif

##LOCALE
#include <libraries/locale.h>
#include <clib/locale_protos.h>
#ifdef PRAGMAS
#include <pragmas/locale_pragmas.h>
#endif

##end
@ENDNODE

@NODE fontadaptive "Font Adaptivity"

IEditor  è  capace  di  creare GUI che automaticamente adatteranno le loro
dimensioni al font usato nello schermo che useranno:  cio significa che la
posizione  e  la dimensione di tutti i gadget, bevel-box, immagini, etc...
saranno adattati conformemente alla dimensione di font.

Il  sorgente  adatterà  anche la dimensione e la posizione delle finestre.
Inoltre  controllerà  se  le finestre staranno nello schermo:  nel caso in
cui risultino troppo grandi, il font "topaz 8" sarà usato.

IE ti permette di usare qualsiasi font nel momento in cui stai progettando
una  GUI  font-adaptive,  ma  io  ti  raccomando  di non usarne uno troppo
grande, altrimenti ci potranno essere alcuni problemi adattando i gadget.

NOTA  BENE:  fà attenzione quando usi gadget di dimensione fissa come @{"MX" link mx},
@{"CHECKBOX" link checkbox}, @{"BOOLEAN" link boolean} e le @{"immagini" link imgbank}: la loro dimensione non sarà modificata
per essere adattata al font!
@ENDNODE

@NODE handler "L'IDCMP Handler"

L'IDCMP  Handler  è  una piccola routine che gestisce tutti i messaggi che
arrivano   alla   User   Port   della   tua   finestra:   crea  una  copia
dell'IntuiMessage,  quindi  chiama  la  routine appropriata.  I nomi delle
routine chiamate sono composti in questo modo:

            <Etichetta della finestra><tipo di IDCMP>

Esempio:   Se  arriva un messaggio IDCMP_CLOSEWINDOW alla finestra "Main",
l'IDCMP Handler chiamerà la routine MainCloseWindow.

Ci  sono  però  due  eccezioni:  IDCMP_GADGETUP/DOWN e IDCMP_MENUPICK:  in
questi  casi  verrà  chiamata  la  routine  puntata dal campo UserData del
gadget/menu.

Inoltre  i  messaggi  IDCMP_REFRESHWINDOW  vengono  gestiti  completamente
dall'handler.

Nel  linguaggio  assembly,  le  routine verranno chiamate con un puntatore
alla copia del messaggio in A5.

Vedi il sorgente di "GMExample" per un esempio pratico.
@ENDNODE

@NODE keyhandler "Il Gadget Activation Key Handler"

L'  Activation  Key  Handler è una piccola routine che maneggia i messaggi
IDCMP  VanillaKey  che  si  riferiscono  al  tasto  di  attivazione  di un
gadget...

Così   puoi  assegnare  i  tuoi  underscore  senza  preoccuparti  di  come
maneggiarli!

La routine funziona in questo modo:

 - con i gadget @{"INTEGER" link integer} e @{"STRING" link string}, esegue un ActivateGadget()
 - con altri tipi di gadget, chiama la routine <Gadget Label>KeyPressed().

NOTA:   se  setti  il  flag  IDCMP_VANILLAKEY  per  la tua finestra, e usi
l'@{"IDCMP  Handler" link handler}, se il key handler non riconosce il tasto di attivazione,
la   routine  <Etichetta  Finestra>VanillaKey  sarà  invocata,  così  puoi
processare altri tasti oltre a quelli dei gadget.
@ENDNODE

@NODE source "Il Sorgente Generato"

Per i linguaggi Asm e C, IEditor crea due file sorgenti.  Il primo (.c|.s)
conterrà  tutte le routine e dati necessari per aprire la GUI.  Il secondo
(.h|.io) conterrà gli Extern o Xref e le costanti per i gadget ID.


NOTA:  se generi il sorgente  Amiga E,  ricordati che le iniziali di tutte
le etichette verranno cambiate in minuscolo!


Nel file principale sono generate le seguenti routine:

==========================================================================
   int SetupScreen( void );
==========================================================================

Questa routine aprirà o bloccherà lo schermo e otterrà il suo visual info.
Questa routine può ritornare uno dei seguenti errori:

        0 = Nessun errore.
        1 = Non ha potuto aprire o bloccare lo schermo.
        2 = Non ha potuto ottenere le visual info dello schermo.

==========================================================================
   void CloseDownScreen( void );
==========================================================================

Questa  routine libererà le risorse prese da "SetupScreen()".  Devi sempre
chiamare  questa  routine  quando  "SetupScreen()" fallisce per chiudere e
liberare le risorse che non ha fallito nell'aprire!!!

==========================================================================
   int Open<Window_Label>Window( void );
==========================================================================

Ci  sono  tante  di  queste routine quante sono le finestre nella tua GUI.
Queste routine creeranno i gadget e apriranno la finestra.  Queste routine
possono ritornare uno dei seguenti errori:

        0 = Nessun errore.
        1 = Non ha potuto creare il contesto.
        2 = Errore durante la creazione di gadget.
        3 = Non ha potuto creare i menu.
        4 = Non ha potuto aprire la finestra.

==========================================================================
   void Close<Window_Label>Window( void );
==========================================================================

Ci  sono  tante  di  queste routine quante sono le finestre nella tua GUI.
Queste   routine   libereranno   tutte   le   risorse   che   la   routine
"Open<Window_Label>Window()"   ha  preso.   Devi  sempre  chiamare  questa
routine se "Open<Window_Label>Window()" ha fallito!


Il  file  principale  anche  ha  le  seguenti definizioni globali che sono
condivise da tutte le finestre del progetto:

    struct Screen *Scr;         Un puntatore allo schermo aperto/bloccato.
    APTR           VisualInfo;  Un puntatore al visual info

Le  seguenti  variabile globali sono generati solo quando il file contiene
gadget  o  quando  la  finestra  deve  avere  un  gadget zoom o quando hai
selezionato un font per un gadget:

    struct Gadget   *<Gadget_Label>GList;   I gadget creati
    WORD             <Window_Label>Zoom[4]; Le posizioni alternative della
                                            finestra
    struct TextFont *<font_name><font_height>_<font_style><font_flags>;

Sono anche generati puntatori per ogni finestra che è in memoria:

    struct Window   *<Window_Label>Wnd;

Inoltre, quando lo schermo è generato e la tag ErrorCode è settata, questo
ULONG sarà incluso nel sorgente:

    ULONG           ErrorCode = NULL;

Qui  tu  troverai  un  codice  di  errore  che  ti  dirà cos'è andato male
nell'apertura dello schermo.


Ultimo  ma  non meno importante, nel sorgente verrà generata una variabile
chiamata   YOffset:    il   suo   valore   è   uguale   a  Scr->WBorTop  +
Scr->Font->YSize.  Se modifichi il font dello schermo, * DEVI * aggiornare
questa variabile!

Inoltre, dovrai anche aggiornare la variabile XOffset = Scr->WBorLeft.


Se  sono  presenti delle immagini nella tua GUI, verranno create strutture
chiamate:

    struct Image <Etichetta immagine>Img = ...

e hai messo qualche immagine direttamente nella finestra:

    struct Image <Etichetta finestra>_<numero immagine>Image = ...



Quando non setti la voce "Genera" nel menù Schermo, questo puntatore viene
generato:

    UBYTE          *PubScreenName = NULL;

Questo  ti permetterà di cambiare il nome dello schermo pubblico da aprire
senza dover trafficare nel sorgente generato.

Il  file principale contiene anche l'array di Gadget per ogni finestra che
sono definiti come segue:

 struct Gadget *<Window_Label>Gadgets[];

Per  accedere ai puntatori in quest'array il programma genera Define o EQU
nel  file  di  header  che  specificano  la  posizione  di un certo gadget
nell'array.  Questi defini sono costruiti come segue:

 #define GD_<Gadget_Label>


Se @{"richiesto" link srcparams}, IE genererà anche le seguenti routine:

==========================================================================
   BOOL  OpenDiskFonts( void );
==========================================================================

Apre tutti i diskfont utilizzati nell'interfaccia.

Restituisce FALSE (in asm, d0 = 0) se non ha potuto aprire uno  dei  font.
In  ogni  caso,  *dovrete*  chiamare  CloseDiskFonts prima di terminare il
programma!

I puntatori alle strutture TextFont restituite si chiameranno:

<Font Label>Font

dove <Font Label> è uguale a:

<Font Name><Dimensione>_<Flags><Style>

==========================================================================
   void CloseDiskFonts( void );
==========================================================================

Chiude tutti i diskfonts aperti da OpenDiskFonts().

Quando vengono create queste due routine,  dovrete  assicurarvi  di  avere
aperto le librerie "graphics.library" e "diskfont.library".




Vedi anche:
===========

      @{" Routine Main          " link mainsrc} per la routine Main.
      @{" Liste MultiSelect     " link multiselectsrc}
      @{" Porta IDCMP Condivisa " link sharedport}
      @{" ARexx routines        " link arexxroutines} per ARexx.
      @{" Banchi di gadget      " link gbanksrc}
      @{" C.generator           " link cprefs}
      @{" Gauge.iex             " link gaugeiex}



Assicurati che  le  "gadtools.library",  "intuition.library"  siano  tutte
aperte prima che una qualsiasi delle routine generate sia chiamato. Quando
usi un diskfont dovresti  aprirlo  attraverso  "OpenDiskFont()"  prima  di
chiamare   le   routine   generate  a  meno  che  non  sia  stato  settato
OpenDiskFonts nei @{"parametri" link srcparams} del sorgente.
@ENDNODE

@NODE arexxroutines "Routines ARexx"

Quando inserisci dei comandi @{"ARexx" link arexxed}, IE metterà anche queste variabili  nel
sorgente:

UWORD RX_Unconfirmed         numero dei messaggi ARexx non ancora risposti.
                             Questa variabile è a *SOLA LETTURA*!!!

struct MsgPort *RexxPort     puntatore alla tua porta ARexx.

UBYTE RexxPortName[]         nome finale della tua porta ARexx.
                             (nomebase.1, nomebase.2, etc...)



Queste sono le routines di gestione ARexx:

===========================================================================
   BOOL SetupRexxPort( void )
===========================================================================

Restituisce FALSE se fallisce, TRUE altrimenti.

Se  fallisce,  così  come  se  il  tuo  prg  non  riesce  ad   aprire   la
rexxsyslib.library,  *NON*  dovrai  chiamare  nessun'altra  routine  ARexx
generata da IE!


===========================================================================
   void DeleteRexxPort( void )
===========================================================================

Rimuove la porta creata da SetupRexxPort(). Questa funzione attende finchè
tutti  i  messaggi  non  siano  stati risposti. Potresti volerla forzare a
ritornare  immediatamente  settando  a  zero   RX_Unconfirmed   prima   di
chiamarla,  ma  ciò  *NON*  è  per niente consigliato. La sola ragione che
potresti avere per far ciò è che il sistema stia per saltare in aria...


===========================================================================
   void HandleRexxMsg( void )
===========================================================================

Questa funzione analizza tutti i messaggi ARexx ricevuti alla tua porta  e
chiama le funzioni correlate.

Questa funzione chiama le routine:

ULONG <Etichetta comando>Rexxed( ULONG *ArgArray, struct RexxMsg *Msg );

Il risultato di queste routines è posto in rm_Result1.


ArgArray è un array di valori riempito  dalla  funzione  ReadArgs()  della
dos.library. Vedi il suo autodoc per maggiori informazioni.

Msg è un puntatore al RexxMsg che ha invocato la tua funzione. Puoi usarlo
se vuoi che il tuo comando restituisca una argstring. Es.:

ULONG TestRexxed( ULONG *ArgArray, struct RexxMsg *Msg )
{
    UBYTE  *str, *as;

    str = "Questo è il risultato del comando Test.";

    if ( as = CreateArgstring( str, strlen( str )) ) {

        Msg->rm_Result2 = as;  // la stringa 'str' sarà messa nella
                               // variabile rexx RESULT

        return( 0L );          // Nessun errore

    } else {

        return( RC_FAIL );

    }
}


===========================================================================
   BOOL SendRexxMsg( char *Host, char *Ext, char *Command, APTR Msg,
                     LONG Flags )
===========================================================================

Puoi utilizzare questa funzione per lanciare script  ARexx  esterni  dalla
tua applicazione, per es. per assegnare script ARexx ai tasti funzione.

Questa routine restituisce TRUE se ha successo.

char *Host     nome dell'host: dovrà essere "REXX" per eseguire scripts  o
               il nome di un'altra porta ARexx se vuoi mandare dei comandi
               ARexx ad un altro programma.

char *Ext      se vuoi eseguire uno script, questa dovrebbe essere la  sua
               estensione.   Esempio:   se   vuoi   eseguire   lo   script
               'script1.mioprg' potresti usare:

               SendRexxMsg( "REXX", NULL, "script1.mioprg", NULL, NULL);

               o

               SendRexxMsg( "REXX", "mioprg", "script1", NULL, NULL);


char *Command  comando da eseguire.

APTR Msg       poni sempre a NULL.

ULONG Flags    Vedi i files include di ARexx.
@ENDNODE

@NODE mainsrc "Routines Main"

Nel file <Nome Progetto>Main.[c|s] ci  sono  varie  routine  che  eseguono
queste azioni:

  - Le librerie selezionate nel requester @{"main()" link mained} vengono aperte.

  - La routine OpenDiskFonts() viene chiamata (se necessario).

  - Viene chiamata la routine SetupScreen().

  - Viene chiamata la routine SetupRexxPort() (se necessario).

  - Vengono aperte le finestre selezionate nell'editor @{"main()" link mained}.

  - Se hai inserito una @{"Extra Proc" link mained}, viene chiamata.

  - Viene eseguito un loop Wait() finché Ok_to_Run non diventa falsa.

  - Viene chiuso tutto e il programma esce.


Se qualcosa va male viene chiamata la routine Error().


Dal tuo programma puoi chiamare la routine End() per uscire.

NOTA BENE: quando chiami End(), devi avere già chiuso  tutte  le  finestre
che hai aperto dopo l'inizializzazione, cioé tutto deve essere come prima.


Inoltre, puoi usare queste variabili:

BOOL  Ok_to_Run         se la setti a FALSE, il tuo programma finirà.

ULONG mask              questa è la bit mask passata a Wait().
                        Dovresti modificarla a seconda  delle  azioni  del
                        tuo programma, per es. se chiudi una finestra devi
                        rimuovere il suo bit.


Se hai selezionato Workbench nell'editor  @{"main()" link mained}, nel  sorgente  troverai
anche la variabile:

struct WBStartup *WBMsg;

Questa variabile può essere usata per due scopi:
1. come booleano per sapere se si è partiti da WB (quando WBMsg != NULL) o
   da CLI (quando WBMsg == NULL)
2. se si è partiti da WB, per leggere le informazioni fornite dal WB (dir
   di partenza, argomenti...)


Se  hai   selezionato  @{"Extra   Signals" link mained},   verrà   chiamata   la   routine
HandleOtherSignals() quando Wait() restituisce un bit pattern sconosciuto.
Devi settare i segnali supplementari che vuoi ricevere con una @{"ExtraProc" link mained}.
Es.

void MySetup( void )
{
    mask = (1 << PippoPort.mp_SigBit) | PlutoTaskSig;
}



Il file Main usa un  file  include  chiamato  IE_Errors.[h|i]  in  cui  si
trovano   le  stringhe  d'errore  e  la  routine  Error()  che  le  mostra
all'utente. Puoi modificare questo file come desideri, ricordando  che  la
routine Error() _deve_ accettare due STRPTR come argomenti.
@ENDNODE

@NODE gbanksrc "Gestione dei banchi di gadget"

Tutti i dati relativi ai banchi  di  gadget  vengono  posti  in  strutture
identiche  a  quelle  usate  da  IE per i gadget gadtools. Ciò permette di
usare la stessa routine per la creazione dei gadget.

Per creare e attaccare  un  banco  di  gadget  ad  una  finestra,  bisogna
eseguire queste operazioni:

    struct Gadget *glist;

    if( MakeGadgets( &glist, <Label>Gadgets, <Label>NGad,
                     <Label>GTypes, <Label>GTags, <Label>_CNT ) > 0 )

        AddGadgetBank( <Label finestra>Wnd, &<Label finestra>WBanks, glist );

    else

        /*  Non è stato possibile creare i gadget   */


Per rimuovere il banco:

    RemGadgetBank( <Label finestra>Wnd, &<Label finestra>WBanks, glist );

Infine non dimenticatevi di liberare i gadgets con un bel:

    FreeGadgets( glist );


NOTA: la finestra non viene ripulita da RemGadgetBank()! Infatti  potrebbe
essere  utile  rimuovere  i  gadget,  ricrearli  e  riattaccarli senza che
l'utente veda sfarfallamenti vari. Quindi se volete far sparire i  gadget,
dovrete fare un EraseRect() che comprenda l'area prima ricoperta da loro.


NOTA 2: Le strutture <Label finestra>WBanks sono da considerarsi  PRIVATE!
Quindi tenete giù le mani... ;-)
@ENDNODE

@NODE multiselectsrc "Gestione di listview MultiSelect"

Quando generate il codice per una listview multiselect, verrà definito  il
simbolo ML_SELECTED nel file <Project>.h.

ML_SELECTED è il flag che devi settare  nel  campo  ln_Pri  dei  nodi  che
dovrebbero apparire selezionati nella listview.

Inoltre, devi anche tenere quel flag aggiornato. Di seguito c'è un esempio
della routine minima che devi agganciare alla listview:

    BOOL ListClicked( void )
    {
        static ULONG ListTag[] = { GTLV_Labels, 0, TAG_END };

        /* Stacca la lista dal gadget */

        ListTag[1] = (ULONG)~0;

        GT_SetGadgetAttrsA( MainGadgets[ GD_List ], MainWnd, NULL,
                            ( struct TagItem * )ListTag );

        /* Aggiorna il flag */

        ListNodes[ MainMsg.Code ].ln_Pri ^= ML_SELECTED;

        /* Riattacca la lista */

        ListTag[1] = (ULONG)&ListList;

        GT_SetGadgetAttrsA( MainGadgets[ GD_List ], MainWnd, NULL,
                            ( struct TagItem * )ListTag );

        return( TRUE );
    }


Per sapere quali  elementi  sono  selezionati,  basta  scorrere  la  lista
controllando il flag ML_SELECTED.
@ENDNODE

@NODE gaugeiex "Gauge.iex"

Utilizzando questo expander si possono facilmente generare e  gestire  dei
fuel gauge.

L'expander genererà per ogni gauge una struttura di questo tipo:

        struct FuelGauge {
            WORD    Left, Top;
            UWORD   Width, Height;
            ULONG   Tot, Part;
            UBYTE   Freedom;
        };

I primi quattro e l'ultimo campo sono gestiti da IEditor e normalmente non
dovrete modificarli.

Invece, dovrete modificare i campi Tot e Part a  seconda  delle  esigenze.
Innanzitutto,   prima   di  aprire  una  finestra  con  un  fuel  gauge  è
consigliabile settare Part a 0,  in  modo  che  la  barra  venga  mostrata
"vuota".  Tot  va  inoltre  settato  al  massimo  valore  che  deve essere
rappresentato.

Ogni volta che si vuole mostrare  un  cambiamento,  bisogna  aumentare  il
valore di Part e quindi chiamare la funzione:

        SetFuel( <Label finestra>Wnd, &<Label fuel>Gauge );


Per esempio, se si vuole mostrare all'utente il progresso di una scansione
di 500 righe di testo, si può fare:

        TestGauge.Tot  = 500;
        TestGauge.Part = 0;

        if(!( OpenFGTestWindow() )) {

            for( i = 0; i < 500; i++ ) {

                /*  elaborazione della riga  */

                TestGauge.Part += 1;

                SetFuel( FGTestWnd, &TestGauge );
            }
        }

        CloseFGTestWindow();
@ENDNODE

@NODE credits "Ringraziamenti"

Inutile dire che se sono arrivato a questo punto, *molto* del merito va  a
quei  due  /esseri/  chiamati in gergo "beta-tester" *;D che mi hanno dato
una mano nella realizzazione di IE... :)

Quindi, vorrei ringraziare:

 - Gian Maria Calzolari e Mario Branchi per avermi aiutato  nello sviluppo
   di questo programma, nel suo beta-test e per il supporto morale :-).

 - Frank  Wille  per  aver creato PhxAss, uno stupendo assemblatore! ;)  e
   per il suo bug-report.

 - Alessio Cappelli per il supporto e i bug reports.

 - Pietro Altomani che mi sta aiutando a creare un E.generator

Voglio anche ringraziare i Sysop delle BBS che @{"supportano" link updates} IEditor.

Infine, ringrazio i (pochi) utenti registrati: è anche per merito loro  se
lo sviluppo di IE va avanti!


...qualcuno è disposto a scrivere altri cataloghi? ;)
@ENDNODE

@NODE notes "Note"

Scusate  la  forma  a  volte /inusuale/ di questo manuale:  il fatto è che
dovendo  scriverne  anche  una  versione in inglese, ho preferito scrivere
prima  quella,  utilizzando  poi  un programma di traduzione automatica ho
scritto  la  versione italiana...  che ci volete fare, sono mooolto pigro!
;-)

Se  qualcuno  vuole  tradurre questo manuale nella sua lingua lo può fare.
La sola  cosa chiedo è che mi spedisca una copia della traduzione cosicchè
possa distribuirla con la prossima versione del programma.

Inoltre,  scrivetemi se volete creare un nuovo catalogo per IE: vi spedirò
i  file  necessari  (se  quelli  nell'archivio  di  distribuzione non sono
aggiornati).

Quando  inviate  un rapporto di difetti o suggerimenti, per piacere ditemi
che  versione  di  IEditor  state  usando.   Questo  può  essere stabilito
scrivendo "Version IEditor" nella shell.

>Questo  è  un  programma  per  programmatori.  Parecchie cose nel manuale
>potrebbero  non essere chiare agli altri utenti di Amiga.  Se progetti di
>programmare  l'Amiga  dovresti almeno prendere i manuali RKM:  Libreries,
>Devices,  Includes  e AutoDocs, Users Interface Style Guide.  Anche uno o
>due   buoni   libri  circa  il  linguaggio  che  desideri  imparare  sono
>essenziali.  Io non sto dicendo questo perchè mi piace vederti sprecare i
>tuoi  soldi  ma  è  quasi impossibile programmare l'Amiga senza una buona
>documentazione.

Mai  fare  cambiamenti  al sorgente che IEditor genera.  Non dovresti fare
questo  perchè ogni volta che ri-generari il sorgente dovresti fare questi
cambiamenti  di  nuovo.   Dovresti  sempre codificare nel tuo programma le
specifiche  routine  in  uno  o  più moduli seperati.  In questo modo puoi
sempre  aggiungere  delle  cose  al  tuo GUI usando IEditor senza avere il
problema   di  dover  aggiungere  ripetutamente  altre  cose  al  sorgente
generato.


Per installare un modulo esterno è  sufficiente  copiarlo  nella  apposita
directory  (Loaders, Generators, Expanders). IE provvederà automaticamente
ad aprire il modulo.


Rapporti di difetti (che difetto?!?), suggerimenti, cartoline, contributi,
idee, donazioni, ragazze ;), etc..  all'@{"autore" link author}.

Flames, critiche et similia a:

  NIL:

;-)
@ENDNODE

@NODE imgbank "Banco immagini"

Questo requester ti permette di caricare file IFF-ILBM file da usare nella
tua GUI.  Le  immagini caricate possono essere usate nei @{"gadget booleani" link boolean},
nei @{"menu" link menued} e possono essere @{"disegnate" link addimg} nelle tue finestre.

Il   requester   è  diviso  in  due  parti:   nella  seconda  puoi  vedere
un'anteprima dell'immagine selezionata, nella prima ci sono questi gadget:

    - Immagini          questa  è  la  lista  delle  immagini  attualmente
                        disponibili per l'uso nella tua GUI.

    - (string gadget)   se vuoi  cambiare  l'etichetta  di  una  immagine,
                        questo gadget è quello che fa per te...

    - Nuova             aprirà  un   file-requester   ASL   con  cui  puoi
                        scegliere un  file  IFF-ILBM  da  aggiungere  alla
                        lista.

    - Elimina           rimuoverà l'immagine selezionata dalla lista.
                        Se quell'immagine è in uso nella tua GUI, ti verrà
                        chiesto se continuare o  no:   selezionando  "Si",
                        l'immagine sarà rimossa e i gadget  che  la  usano
                        avranno  i  loro  puntatori all'immagine  immagine
                        azzerati.

Per  uscire  dal Banco Immagini devi clikcare sul gadget di chiusura della
finestra.
@ENDNODE

@NODE arexxed "ARexx Interface Editor"

L'ARexx Interface Editor ti permette di aggiungere  molto  facilmente  una
interfaccia ARexx ai tuoi programmi.

Dopo che hai selezionato questa voce, verrà aperto l'editor, in  cui  sono
presenti questi gadget:

  - Comandi                    Questa è  la  lista  dei  comandi  che  hai
                               inserito.  Un   doppio   click  sulla  voce
                               selezionata aprirà una piccola finestra  in
                               cui  potrai   cambiare    l'etichetta   del
                               comando, il  nome  del  comando  e  il  suo
                               template.
                               Per  quel   che   riguarda   lo  stile,  ti
                               consiglio di scrivere sia il comando che il
                               template in maiuscolo.

  - Nuovo                      Aggiunge un comando.

  - Elimina                    Elimina il comando selezionato.

  - ARexx Port                 Base del nome della  porta  ARexx  del  tuo
                               progetto. IE aggiungerà '.1'.

  - Ext.                       Estensione di default per  gli  script  del
                               tuo progetto.
                               Questa  è  utilizzata  durante  il  parsing
                               degli  script:   quando  il  tuo  programma
                               riceverà un messaggio da  RexxMast  con  un
                               comando sconosciuto,  manderà  indietro  il
                               msg a RexxMast  che  proverà  ad  eseguirlo
                               come uno script. Guarda questo esempio:

                               address 'MYPROJECT.0'

                               'CMD1'  /* questo comando è conosciuto e
                                          viene eseguito */

                               script2
                               /* questo è un  comando  sconosciuto:  il
                                  tuo  prg   manderà   un   messaggio  a
                                  RexxMast    dicendoglielo.    RexxMast
                                  guarderà se è un comando Rexx interno,
                                  altrimenti    cercherà    uno   script
                                  chiamato  'script2'  o  'script2.ext',
                                  dove  ext   è   l'estensione  che  hai
                                  inserito.  Di default l' estensione  è
                                  'rexx'. */

                               Vedi il  tuo  manuale  ARexx  per  maggiori
                               informazioni.

Vedi anche: @{"generated routines" link arexxroutines}.
@ENDNODE

@NODE mained "Varie/main()..."

Questo aprirà l'editor della main().

Nella parte superiore di questo editor troverai due listview: quella sulla
sinistra  mostra le librerie che la procedura main() aprirà per te; quella
sulla destra mostra una lista di librerie predefinite: se esegui un doppio
click su una di quelle, verrà copiata nell'altra lista. Se vuoi modificare
alcuni parametri di una libreria nella lista di sinistra, puoi  farlo  con
un  doppio  click:  quindi potrai cambiare il nome della libreria, il nome
della sua base, la versione da aprire e decidere se il tuo programma  deve
fallire o no se non riesce ad aprire la libreria.

Se vuoi aprire una libreria che non è presente  nella  lista,  clicka  sul
pulsante "Aggiungi".


In questo requester c'è  un'altra  listview,  chiamata  "OpenxxxWindow()":
mostra  la/le  finestra/e  che  la procedura main aprirà. Queste finestre
saranno anche chiusa dal modulo main quando il programma finisce.


Infine ci sono anche questi gadgets:

   - CTRL C             se settato,  il  tuo  programma  terminerà
                        se riceverà un segnale CTRL C.

   - Extra Signals      se  settato,   quando  la  procedura  main
                        riceverà   un  segnale  che  non  conosce,
                        chiamerà una  procedura  esterna  chiamata
                        HandleOtherSignal.

   - Workbench          se settato, il tuo prg sarà lanciabile  da
                        Workbench.

   - ExtraProc          inserisci qui il nome della  procedura  da
                        chiamare prima del ciclo Wait().

Vedi anche: @{"sorgente generato" link mainsrc}
@ENDNODE

@NODE boolean "Gadgets Booleani"

I  gadget  booleani  sono  i più comuni pre-kick 2.0 gadget.  Sono gestiti
dalla  intuition.library, non dalla GadTools, così non hanno nessuna tag e
non  puoi  usare  la  GT_SetGadgetAttrsA()  funzione  con  essi.  Potresti
volerli usare se vuoi un pulsante con alcune caratteristiche che il Button
Kind  della   gadtools   non   ha,  per  esempio  le  @{"immagini" link imgbank},  il  modo
toggle-select...

NOTA  BENE:  nei tuoi sorgenti, accertati di non usare i simboli xxxGadget
             come  puntatori  a  un  gadget booleano, perché rappresentano
             le strutture Gadget!

Esempio: questo pezzo di codice sarebbe sbagliato:

     [...]
     move.l  BooleanGadget,a0
     jsr     _LVOOnGadget(a6)
     [...]

dovresti scrivere:

     [...]
     lea     BooleanGadget,a0
     jsr     _LVOOnGadget(a6)
     [...]

o in C:

     OnGadget( &BooleanGadget, .... );

Inoltre,  non  ci  sono  puntatori  ai  gadget di questo tipo negli array
<wnd>Gadgets.


Questi sono i gadget che troverai nel Requester Gadget booleani:

    - Etichetta         etichetta del gadget

    - Testo             il testo del gadget.  Sarà  usato  solo  se  il
                        checkbox è attivato.

    - X, Y              le coordinate del  testo,  relative  all'angolo
                        superiore a sinistra del gadget.

    - INVERSVID         se settato, il  testo  sarà  stampato  in  modo
                        inverso.

    - Draw Mode         JAM1        il testo  sarà  stampato   con   la
                                    Front  Pen  selezionata,  lasciando
                                    lo sfondo invariato.

                        JAM2        il testo sarà stampato con  entrambe
                                    la Front e Back pen selezionate.

                        COMPLEMENT  il  testo  sarà  stampato   in  modo
                                    complementare.

    - Front Pen         il colore del testo

    - Back Pen          il colore dello sfondo (usato solo  se  il  draw
                        mode è JAM2).

    - W, H              le dimensioni del gadget.

    - *                 copia le  dimensioni  dell'immagine  selezionata
                        nelle dimensioni del gadget.

    - Gadget Render     l'@{"immagine" link imgbank} usata per  rappresentare  il  gadget.
                        Il simbolo (---) significa NESSUNA IMMAGINE.

    - Select Render     l'@{"immagine" link imgbank}  usata  per  rappresentare il   gadget
                        quando è selezionato.

    - Highlight         GADGHNONE       selezionando   il   gadget   non
                                        cambierà.

                        GADGHCOMP       il    gadget      box       sarà
                                        complementato quando il gadget è
                                        selezionato.

                        GADGHBOX        quando il gadget è  selezionato,
                                        avrà  un  rettangolo   disegnato
                                        attorno.

                        GADGHIMAGE      quando  viene selezionato,  sarà
                                        rappresentato   con   l'@{"immagine" link imgbank}
                                        Select Render.

    - TOGGLESELECT      setta il modo  toggle-select per il gadget.

    - RELVERIFY         se settato, riceverai un messaggio IDCMP_GADGETUP
                        messaggio quando il gadget viene rilasciato.

    - IMMEDIATE         se settato, sarai informato quando il  gadget  è
                        attivato.

    - FOLLOWMOUSE       setta questo flag  se   vuoi  ricevere  i  mouse
                        movement message mentre il tuo gadget è attivo.
                        Se setti questo  flag,  dovresti  anche  settare
                        quello  IMMEDIATE.  Inoltre,  tu  vuoi  ricevere
                        qualsiasi movimento del mouse dovresti   settare
                        anche il flag RELVERIFY.

    - DISABLED          il gadget sarà creato disabilitato.

    - SELECTED          il gadget sarà creato selezionato.
@ENDNODE

@NODE future "Progetti futuri"

Nelle prossime release troverete...

  - AppIcon per @{"caricare" link "open"} GUI  (forse, che ne dici?)

  - Ampliamento dei comandi @{"ARexx" link arexx}

  - BOOPSI

  - ... hai qualche suggerimento? :)


... state sintonizzati! ;-)
@ENDNODE

@NODE keyboard "Comandi da tastiera"

Comandi che IE accetta da tastiera:

    TAB             Seleziona il gadget successivo

    SHIFT TAB       Seleziona il gadget precedente

    ALT TAB         Attiva la finestra successiva

    SHIFT ALT TAB   Attiva la finestra precedente

    RETURN          Modifica le tags dei gadget selezionati

    DEL             Elimina i gadget selezionati
@ENDNODE

@NODE printwnd "Finestre/Stampa"

Questa funzione ti permette di stampare la finestra di edit corrente.

È una  funzione un po' sperimentale, quindi ditemi cosa ne pensate e se vi
serve realmente.
@ENDNODE

@NODE spreadhoriz "Gadgets/Distribuisci/Orizzontalmente"

Questa  funzione  ti permette di distribuire i gadgets @{"selezionati" link selection} tra due
linee.

Dopo che hai selezionato questo item, vedrai una linea verticale che segue
i  movimenti  del  tuo  mouse  nella  finestra attiva:  muovila alla prima
coordinata  dell'area  in  cui  distribuire  i gadget e premi il tasto del
mouse;  ora  apparirà  un'altra linea:  muovila sulla seconda coordinata e
premi il tasto del mouse.

A questo punto, i gadget @{"selezionati" link selection} verranno equamente distribuiti tra le
due linee.

Se solo un gadget è attivo, verrà centrato tra le due linee.
@ENDNODE

@NODE spreadvert "Gadgets/Distribuisci/Verticalmente"

Questa  funzione  ti permette di distribuire i gadgets @{"selezionati" link selection} tra due
linee.

Dopo  che  hai  selezionato  questo item, vedrai una linea orizzontale che
segue i movimenti del tuo mouse nella finestra attiva:  muovila alla prima
coordinata  dell'area  in  cui  distribuire  i gadget e premi il tasto del
mouse;  ora  apparirà  un'altra linea:  muovila sulla seconda coordinata e
premi il tasto del mouse.

A questo punto, i gadget @{"selezionati" link selection} verranno equamente distribuiti tra le
due linee.

Se solo un gadget è attivo, verrà centrato tra le due linee.
@ENDNODE

@NODE xspacing "Gadgets/Spaziatura/Setta X..."

Questa  funzione  ti  chiederà il numero di pixel da inserire tra i gadget
@{"selezionati" link selection}.   Una volta che l'hai inserito, i gadget verranno posizionati
correttamente.
@ENDNODE

@NODE yspacing "Gadgets/Spaziatura/Setta Y..."

Questa  funzione  ti  chiederà il numero di pixel da inserire tra i gadget
@{"selezionati" link selection}.   Una volta che l'hai inserito, i gadget verranno posizionati
correttamente.
@ENDNODE

@NODE addbox "Finestre/BevelBox/Aggiungi"

I  BevelBox  si  aggiungono  nello  stesso  modo  in  cui vengono creati i
@{"gadgets" link making}.
@ENDNODE

@NODE editbox "Finestre/BevelBox/Modifica..."

Questo  aprirà  un piccolo requester che ti permetterà editare i bevel box
della finestra di Editing corrente.

Li puoi  muovere  o ridimensionare esattamente come i @{"gadget" link move}.  Puoi anche
inserire  le loro dimensioni e posizioni direttamente nei gadget X, Y, W e
H,  devi  solo  ricordare di premere 'RETURN' dopo aver inserito il valore
altrimenti IE non considererà i nuovi valori.

Inoltre puoi muovere i box con i quattro gadget freccia.

Per  cancellare  un  box clicca sul piccolo gadget in basso a sinistra del
requester.

Puoi  cambiare  il  tipo del box semplicemente cliccando sul tipo tu vuoi:
nota  che RIDGE e ICONDROPBOX richiedono SO v39+, sotto un SO più vecchio,
appariranno come i normale BUTTON bevel box.
@ENDNODE

@NODE addimg "Finestre/Immagini/Aggiungi"

Questo  ti  permetterà  di  disegnare  un'immagine  direttamente sulla tua
finestra.

Selezionando  questa  voce,  tu vedrai un requester che contiene una lista
delle immagini attualmente caricate con il @{"Banco Immagini" link imgbank}.

Seleziona  quella  che  vuoi  mettere  sulla tua finestra:  a questo punto
vedrai  un  box  che  segue  il puntatore del mouse; posizionalo dove vuoi
l'immagine e poi premi LMB.
@ENDNODE

@NODE moveimg "Finestre/Immagini/Sposta"

Seleziona  questa  voce  se  vuoi  spostare  un'immagine:   dopo  che  hai
selezionato questa voce, puoi muovere un'immagine proprio come i @{"gadget" link move}.

@ENDNODE

@NODE deleteimg "Finestre/Immagini/Elimina"

Questo  ti  permetterà  di rimuovere un'immagine dalla finestra di Editing
corrente.

Per cancellare l'immagine, cliccaci semplicemente sopra.
@ENDNODE

@NODE addtxt "Finestre/Testi/Aggiungi..."

Questo ti permetterà di aggiungere un IntuiText alla tua finestra.

Dopo  aver  selezionato  questa  voce,  IE ti mostrerà il requester per la
@{"modifica" link edittxt} del  testo.   Riempilo  conformemente  ai  tuoi  bisogni, quindi
seleziona OK.

A  questo punto, vedrai il testo che hai inserito seguire il puntatore del
mouse:  posizional dove vuoi che stia e premi il tasto sinistro del mouse.
@ENDNODE

@NODE deltxt "Finestre/Testi/Elimina..."

Seleziona  questo  se  vuoi  rimuovere  un  IntuiText  dalla tua finestra.
Quindi  seleziona  il  testo  che  vuoi  cancellare  dalla lista che IE ti
mostrerà.
@ENDNODE

@NODE edittxt "Finestre/Testi/Modifica..."

Questo ti permette di modificare un vecchio IntuiText.

Seleziona  quello  che vuoi editare dalla lista che IE ti mostrerà, quindi
vedrai un requester con questi gadget:

   - Text           err... il Testo! ;-)

   - Front Pen      La penna che dovrebbe essere usata per stamparlo.

   - Back Pen       La penna da usare per lo sfondo.  È usata solo se Draw
                    Mode è uguale a RP_JAM2.

   - INVERSVID      Inverte il colore del testo e dello sfondo.

   - DrawMode       Questo controlla come rappresentare il testo:
                      - RP_JAM1     usa solo la Front Pen.  Lo  sfondo non
                                    viene modificato.
                      - RP_JAM2     usa sia la Front pen che la Back  pen.
                      - RP_COMPLEMENT    scrive   il   testo    in    modo
                                         complementare.


   - Screen Font    Se settato, il testo sarà  stampato  usando   il  font
                    dello schermo.

   - Font           Questo aprirà un ASL Font Requester per selezionare il
                    font per il testo.
@ENDNODE

@NODE movetxt "Finestre/Testi/Sposta..."

Selezionando questa voce, IE ti mostrerà la lista dei testi della finestra
corrente;  scegli  quello che vuoi muovere:  quindi lo vedrai che segue il
puntatore del mouse.  Posizionalo nella nuova posizione e premi LMB.
@ENDNODE

@NODE menued "Menu Editor"

Il Menu Editor è... hmm... un editor per menu! ;-)

Ti permette infatti di costruire un menu con un paio di click del mouse...
Nella sua finestra troverai questi gadget:

    Title           Questa lista mostra i titolo dei Menu presenti.

    Item            Questo mostra gli Item del menu...

    Sub             ...vuoi che te lo dica? ;)

Sotto questi gadgets, ci sono questi pulsanti:

    /\              ehm... più o meno... Questo sposta in alto il nodo
                    selezionato

    \/              Questo sposta in basso il nodo selezionato.

    Nuovo           Aggiunge un nuovo nodo.

    Elimina         Eleimina il nodo selezionato.

    Mutual Exclude  Questo ti permette di specificare quali voci devono
                    venire escluse quando quella selezionata viene scelta.

Infine, ci sono questi due gadget:

    Test            Crea il menu così come l'hai costruito e lo attacca
                    alla finestra del Menu Editor, permettendoti di
                    controllare come apparirà...

    Ok              Chiude il Menu Editor; ha la stessa funzione del 
                    gadget di chiusura della finestra.


Per  editare  una  voce,  devi  eseguire  un  doppio click su di essa.  Il
requester che hai visto quando hai creato la voce apparirà.

In questo requester ci sono questi gadget:

    Testo           Il testo della voce del menu...

    Immagine        Questo aprirà la lista delle @{"immagini" link imgbank} disponibili:
                    scegline una se vuoi creare una voce MENU_IMAGEIMAGE.
                    (---) vuol dire nessuna immagine.

    BarLabel        Settalo se vuoi una barlabel... ;)

    Disabled        Se settato, il menu apparirà disabilitato.

    CheckIt         Settalo se vuoi che la voce sia "checkabile".

    Checked         Se è settato e anche CheckIt lo è la voce apparirà
                    "checkata".

    MenuToggle      Quando la voce verrà selezionata il suo stato cambierà
                    da marcata a non marcata e viceversa.


Nel requester MutualExclude ci sono questi gadget:

    Ignora          Le voci di questa lista non verranno cambiate.

    Escludi         Le voci di questa lista verranno escluse da quella che
                    hai selezionato.

    « and »         Questi due gadget spostano tutte le voci di una lista
                    nell'altra.

    < and >         Questi due gadget spostano la voce selezionata da una
                    lista all'altra.
@ENDNODE

@NODE author "IEditor's author... err...hey, it's me! :)"

Potete raggiungere l'autore a questo indirizzo:

  Simone Tellini
  Piazza Resistenza 2
  42016  Guastalla  RE
  ITALIA

oppure a questi indirizzi telematici:

Fidonet:    2:332/502.18  (Simone Tellini)
Internet:   wiz@pragmanet.it
WWW:        http://www.pragmanet.it/~tellini/main.html
@ENDNODE

@NODE toolbar "La finestra Strumenti"

In  questa  finestra  si trovano alcuni gadget che corrispondono alle voci
dei menu più usate (almeno da me ;)...

Nell'ordine da sinistra a destra sono:

Finestre...
    @{" Nuova...        " link newwindow}
    @{" Elimina         " link discardwindow}
    @{" IDCMP...        " link idcmp}
    @{" Flags...        " link windowflags}

Gadgets...
    @{" Aggiungi        " link making}
    @{" Rimuovi         " link delete}
    @{" Usa             " link usegads}

    @{" Banco Immagini  " link imgbank}

    @{" Tipo schermo    " link screentype}

Interfaccia...
    @{" Apri            " link open}
    @{" Salva           " link save}
@ENDNODE

@NODE taborder "Gadgets/Ordine TabCycle..."

Questa  funzione  è  molto  utile per assegnare il giusto ordine TabCycle:
cioè, ti  permette  di decidere in quale ordine i gadget di tipo @{"string" link string} e
@{"integer" link integer} devono essere attivati quando l'utente preme TAB o SHIFT-TAB.

Selezionando  questa voce del menù, IE aprirà una finestra che contiene un
listview e quattro gadget:  nel listview vedrai i gadget di tipo @{"string" link string} e
@{"integer" link integer} della  finestra che stai editando; i quattro gadget ti permettono
di muovere i gadget su o giù nella lista.
@ENDNODE

@NODE srcparams "Progetto/Parametri..."

Questo  aprirà  un  requester  con  cui  puoi  modificare alcuni parametri
relativi alla creazione del sorgente.

Questi parametri sono:

- Genera Scr                se settato, IE genererà anche il codice per lo
                            schermo.

- Font Adaptive             se  settato,  il  codice  generato  sarà  font
                            @{"adaptive" link fontadaptive}.

- OpenDiskFonts             se  settato,  le   @{"routine" link source}   OpenDiskFonts  e
                            CloseDiskFonts verranno generate.

- main()                    se  settato,  IE  genererà  un  file  chiamato
                            <Nome Progetto>Main.[c|s]  con    la   routine
                            @{"main()" link mained}.

- Porta IDCMP Condivisa     se   settato,   IE   genererà   la   procedura
                            HandleIDCMPPort(),   necessaria   per  gestire
                            le finestre con una @{"porta IDCMP condivisa" link sharedport}.
                            Inoltre, se il gadget stringa  al  suo  fianco
                            viene lasciato vuoto, la procedura SetupScreen
                            creerà una porta messaggi chiamata  IDCMPPort.
                            Altrimenti, verrà utilizzata la porta  da  voi
                            inserita.
@ENDNODE

@NODE sharedport "Porta IDCMP Condivisa"

IE può generare un sorgente in cui più finestre utilizzano la stessa porta
IDCMP.

Ciò può risultare utile per vari motivi, i più importanti dei quali sono:

- tutte le  finestre  possono  essere  usate  contemporaneamente  (come  i
  requester per le DriPens e per le tags dello schermo di IEditor)

- viene utilizzata meno memoria

- si risparmiano i bit  di  segnale  per  le  varie  porte  (un  task  può
  utilizzare  al  massimo  16  segnali:  infatti  IEditor  usa  una  porta
  condivisa per le finestre di editing e per alcuni dei suoi requester; in
  questo modo è possibile aprire quante finestre si vuole)


Per gestire la porta condivisa, il C.generator utilizza questo metodo:

- la  funzione   HandleIDCMPPort()  è  del  tutto  simile  alle  varie
  Handle<wnd>IDCMP(), con l'unica eccezione che gestisce più  finestre
  alla volta.

- quando arriva un messaggio alla porta  IDCMP,  la  HandleIDCMPPort()
  copia il suo contenuto nella struttura IDCMPMsg e quindi  chiama  la
  routine puntata dal campo ExtData della finestra da cui proviene  il
  messaggio.


Ecco un esempio per meglio chiarire il meccanismo:


BOOL  running = TRUE;

void main( void )
{
    /*  inserite qui la solita roba di inizializzazione... ;-)  */

    OpenMainWindow();   /* sono ottimista, non faccio controlli     */
    OpenToolsWindow();  /* ma voi FATELI! Questo è solo un esempio. */

    MainWnd->ExtData = HandleMain;
    MainWnd->ExtData = HandleToolsIDCMP;

    /*  Ciclo Principale  */

    while( running ) {

        WaitPort( IDCMPPort );

        HandleIDCMPPort();
    }

    CloseToolsWindow();
    CloseMainWindow();
}

void HandleMain( void )
{
    if(!( HandleMainIDCMP() ))
        running = FALSE;
}


...non è poi così complicato, no? ;-)
@ENDNODE

@NODE arexx "Comandi ARexx"

NOTA:   Gli  argomenti  dei  comandi  sono  interpretati  con  la funzione
ReadArgs del DOS, perciò valgono le stesse regole usate per i comandi CLI.
Es. se un comando ha il template FILE/A, vuol dire che *bisogna* fornirgli
il nome di un file, e lo si può fare in questi due modi:

cmd FileName

cmd file FileName

Ok? ;)

Qui  di  seguito trovate la lista dei comandi ARexx attualmente supportati
da IEditor (in @{"futuro" link future} la lista si allungherà!  ;) :

   @{" ADDBOX         " link rxaddbox}
   @{" ADDITEXT       " link rxadditext}

   @{" GENERATEASM    " link rxgenerateasm}
   @{" GENERATEC      " link rxgeneratec}
   @{" GENERATEE      " link rxgeneratee}
   @{" GETACTWDATA    " link rxgetactwdata}
   @{" GETBOX         " link rxgetbox}
   @{" GETBOXATTR     " link rxgetboxattr}
   @{" GETDRIPEN      " link rxgetdripen}
   @{" GETFILE        " link rxgetfile}
   @{" GETFONTATTR    " link rxgetfontattr}
   @{" GETIMAGE       " link rxgetimage}
   @{" GETIMAGEATTR   " link rxgetimageattr}
   @{" GETITEXT       " link rxgetitext}
   @{" GETITEXTATTR   " link rxgetitextattr}
   @{" GETITEXTLENGTH " link rxgetitextlen}
   @{" GETNAME        " link rxgetname}
   @{" GETSCRFONT     " link rxgetscrfont}
   @{" GETWNDDATA     " link rxgetwnddata}

   @{" NEW            " link rxnew}

   @{" OPEN           " link rxopen}

   @{" SAVE           " link rxsave}
   @{" SAVEAS         " link rxsaveas}
   @{" SETBOXATTR     " link rxsetboxattr}
   @{" SETIMAGEATTR   " link rxsetimageattr}
   @{" SETITEXTATTR   " link rxsetitextattr}
   @{" SETNAME        " link rxsetname}

   @{" QUIT           " link rxquit}
@ENDNODE

@NODE rxquit "QUIT"

FUNZIONE:   Questo  comando  farà  terminare  IEditor  immediatamente.  Se
l'interfaccia non stata salvata, i cambiementi saranno persi!
@ENDNODE

@NODE rxopen "OPEN"

FUNZIONE: Comanda ad IE di aprire un'interfaccia su disco.

TEMPLATE: ASK/S,FILE

Se  viene  settato  lo  switch  ASK,  IEditor aprirà un file requester per
scegliere la GUI da caricare.

FILE è il nome del file da aprire completo di path.


ESEMPI:

   'OPEN' 'work:developer/sources/diskorg/diskorg.gui'

   'OPEN' 'ask'

Se vuoi aprire un file chiamato "ask", allora usa:

   'OPEN' 'file ask'
o
   'OPEN' 'file "ask"'
@ENDNODE

@NODE rxsave "SAVE"

FUNZIONE:    Salva  l'interfaccia  corrente.   Se  la  GUI  non  ha  nome,
resituisce un errore.
@ENDNODE

@NODE rxsaveas "SAVEAS"

FUNZIONE: salva la GUI attuale con un nome.

TEMPLATE: ASK/S,FILE

Vedi @{"Open" link rxopen} per una spiegazione più dettagliata del template.
@ENDNODE

@NODE rxgetname "GETNAME"

FUNZIONE:   restituisce il nome dell'interfaccia corrente, cioè il file in
cui è stata salvata.

ESEMPIO:

/*
   Salva la GUI. Se non è mai stata salvata prima fa aprire il file
   requester.
 */

options results

address 'IEDITOR.1'

'GETNAME'

if result ~= '' then
     @{"'SAVE'" link rxsave}
else
     @{"'SAVEAS'" link rxsaveas} 'ASK'
@ENDNODE

@NODE rxsetname "SETNAME"

FUNZIONE: assegna il nome del file con cui la GUI sarà salvata.

TEMPLATE: FILE/A

ESEMPIO:

/*
    Crea una nuova GUI e definisce il suo nome.
 */

options results

address 'IEDITOR.1'

@{"'NEW'" link rxnew}

'SETNAME' 'NuovoProgetto.gui'
@ENDNODE

@NODE rxnew "NEW"

FUNZIONE:   rimuove  dalla  memoria  la GUI corrente, così puoi iniziare a
crearne una da capo.  Se la GUI non è stata salvata, sarà persa.
@ENDNODE

@NODE rxgetactwdata "GETACTWDATA"

FUNZIONE:  riempe una variabile stem con informazioni sulla la finestra di
editing  corrente.  Se non c'è una finestra di editing aperta, restituisce
il codice d'errore 5.

TEMPLATE: STEM/A

STEM  è  il  nome  della  variabile  da riempire.  Questi sono i campi che
saranno assegnati da IEditor:

stem.title        titolo della finestra
stem.label        etichetta della finestra
stem.screentitle
stem.topedge
stem.leftedge     posizione della finestra
stem.width
stem.height       dimensioni...
stem.idcmp        IDCMP flags
stem.flags        window flags
stem.minwidth
stem.minheight
stem.maxwidth
stem.maxheight
stem.innerwidth
stem.innerheight
stem.zoomleft
stem.zoomtop
stem.zoomwidth
stem.zoomheight
stem.mousequeue
stem.rptqueue
stem.tags         pacchetto di tags: vedi sotto
stem.numgads      numero di gadget
stem.nummenus     numero di menù
stem.numbools     numero di gadgets booleani
stem.numtexts     numero di IntuiText
stem.numboxes     numero di Bevel Box
stem.numimages    numero di immagini

Schema dei bit di stem.tags:
----------------------------

BIT     SE A 1 ...

1   -   Usa WA_ScreenTitle
2   -   Usa WA_MouseQueue
3   -   Usa WA_RptQueue
4   -   WA_AutoAdjust       =   TRUE
5   -   WA_FallBack         =   TRUE
6   -   Usa WA_Zoom
7   -   WA_TabletMessage    =   TRUE
8   -   WA_MenuHelp         =   TRUE
9   -   WA_NotifyDepth      =   TRUE
@ENDNODE

@NODE rxgetwnddata "GETWNDDATA"

FUNZIONE:   riempe  una  variabile stem con informazioni sulla finestra di
editing  specificata.  Se la finestra specificata non esiste, ritornerà il
codice di errore 5.

TEMPLATE: WINDOW/N/A,STEM/A

WINDOW è il numero di indice (partendo da 1) della finestra

Vedi @{"GETACTWDATA" link rxgetactwdata} per vedere quali campi sono assegnati da IEditor.
@ENDNODE

@NODE rxgenerateasm "GENERATEASM"

FUNZIONE:    comanda   ad   IE   di  generare  il  sorgente  Assembly  per
l'interfaccia corrente.

TEMPLATE: ASK/S,FILE
@ENDNODE

@NODE rxgeneratec "GENERATEC"

FUNZIONE:   comanda  ad  IE  di  generare  il sorgente C per l'interfaccia
corrente.

TEMPLATE: ASK/S,FILE
@ENDNODE

@NODE rxgetimage "GETIMAGE"

FUNZIONE: chiede all'utente di selezionare un'@{"immagine" link imgbank}.

TEMPLATE: WINDOW/N    finestra da attivare. Se omessa, verrà usata la
                      finestra corrente.

Questa funzione ritorna il codice d'errore 5 se la finestra non  conteneva
immagini  o  se  l'utente  ha  cancellato  il  comando.  Ritorna il codice
d'errore 10 se la finestra specificata era chiusa o non esisteva.
@ENDNODE

@NODE rxgetimageattr "GETIMAGEATTR"

FUNZIONE:  riempie una variabile stem con i dati di una @{"Immagine" link imgbank}

TEMPLATE:  WINDOW/N/K   finestra dell'immagine - se omessa, verrà usata la
                        finestra corrente.
           IMAGE/N/A    numero dell'immagine
           STEM/A       variabile da riempire

Questi sono i campi riempiti:

stem.LEFTEDGE     posizione dell'immagine
stem.TOPEDGE
stem.WIDTH        dimensioni
stem.HEIGHT
stem.DEPTH        profondità dell'immagine
stem.PLANEPICK    il campo PlanePick della sua struttura
stem.PLANEONOFF   il campo PlaneOnOff della sua struttura



ESEMPIO:

/*
    ImgBox
    Aggiunge un Bevel Box attorno ad una immagine
*/

OPTIONS RESULTS

SIGNAL ON ERROR

ADDRESS 'IEDITOR.1'

@{"'GETIMAGE'" link rxgetimage}

'GETIMAGEATTR' result img

@{"'ADDBOX'" link rxaddbox} img.leftedge-1 img.topedge-1 img.width+2 img.height+2 1

EXIT


ERROR:

if RC == 5 then exit 0  /* l'utente ha cancellato GetImage */

say 'Error "'|| ERRORTEXT(RC) ||'"on line' SIGL

EXIT RC
@ENDNODE

@NODE rxsetimageattr "SETIMAGEATTR"

FUNZIONE:  setta alcuni parametri di una @{"immagine" link imgbank}

TEMPLATE:  WINDOW/N/K     finestra dell'immagine. Se omesso verrà usata la
                          finestra corrente.
           IMAGE/N/A      numero dell'immagine.
           L=LEFTEDGE/N/K
           T=TOPEDGE/N/K
@ENDNODE

@NODE rxaddbox "ADDBOX"

FUNZIONE:  aggiunge un @{"Bevel Box" link addbox} ad una finestra.

TEMPLATE:  WINDOW/N/K    finestra in cui aggiungere il box. Se omessa
                         verrà usata la finestra corrente.
           LEFTEDGE/N/A  coordinate dell'angolo superiore sinistro
           TOPEDGE/N/A
           WIDTH/N/A     dimensioni
           HEIGHT/N/A
           TYPE/N/A      vedi sotto
           RECESSED/S

Nella variabile RESULT verrà messo il numero del nuovo box.

Tipi di Bevel Box disponibili:

  1 - Button
  2 - Ridge        (V39)
  3 - IconDropBox  (V39)
@ENDNODE

@NODE rxsetboxattr "SETBOXATTR"

FUNZIONE:  setta alcuni parametri di un BevelBox.

TEMPLATE:  WINDOW/N/K     finestra del box. Se omesso verrà usata la
                          finestra corrente.
           BOX/N/A        numero del box.
           L=LEFTEDGE/N/K
           T=TOPEDGE/N/K
           W=WIDTH/N/K
           H=HEIGHT/N/K
           TYPE/N/K       vedi @{"ADDBOX" link rxaddbox}
           RECESSED/S     se specificato, il box verrà scambiato da
                          RECESSED a non recessed e viceversa.
@ENDNODE

@NODE rxadditext "ADDITEXT"

FUNZIONE:  aggiunge un IntuiText ad una finestra.

TEMPLATE:  WINDOW/N/K     finestra in cui aggiungere il testo.  Se omesso
                          verrà usata la finestra corrente.
           FP=FRONTPEN/N/A
           BP=BACKPEN/N/A
           M=DRAWMODE/N/A vedi @{"GETITEXTATTR" link rxgetitextattr}
           X=LEFTEDGE/N/A
           Y=TOPEDGE/N/A
           TEXT/A
           FONT/N/K       numero del font da usare. Se omesso, verrà usato
                          il font dello schermo.

Nella variabile RESULT verrà messo il numero del testo.
@ENDNODE

@NODE rxgetitext "GETITEXT"

FUNZIONE: chiede all'utente di selezionare un'IntuiText.

TEMPLATE: WINDOW/N    finestra da attivare. Se omessa, verrà usata la
                      finestra corrente.

Questa funzione ritorna il codice d'errore 5 se la finestra non  conteneva
testi  o  se  l'utente  ha  cancellato  il  comando.  Ritorna   il  codice
d'errore 10 se la finestra specificata era chiusa o non esisteva.
@ENDNODE

@NODE rxgetitextattr "GETITEXTATTR"

FUNCTION:  riempie uno stem con informazioni su un testo.

TEMPLATE:  WINDOW/N/K   la finestra del testo. Se omesso verrà usata la
                        finestra corrente.
           TEXT/N/A     numero del testo
           STEM/A       variabile da riempire


Questi sono i campi riempiti:

stem.FRONTPEN       penne del testo
stem.BACKPEN
stem.DRAWMODE       0 = JAM1, 1 = JAM2, 2 = COMPLEMENT
                    5 = JAM2 + INVERSVID
                    6 = COMPLEMENT + INVERSVID
stem.LEFTEDGE       posizione del testo
stem.TOPEDGE
stem.FONT           numero del font. -1 se usa il font dello schermo.
stem.TEXT           il Testo, finalmente... ;-)
@ENDNODE

@NODE rxgetitextlen "GETITEXTLENGHT"

FUNCTION:  restituisce la lunghezza in pixel di un IntuiText.

TEMPLATE:  WINDOW/N/K   la finestra del testo. Se omesso verrà usata la
                        finestra corrente.
           TEXT/N/A     numero del testo
@ENDNODE

@NODE rxsetitextattr "SETITEXTATTR"

FUNZIONE:  setta alcuni parametri di un IntuiText.

TEMPLATE:  WINDOW/N/K     finestra del testo. Se omesso verrà usata la
                          finestra corrente.
           TEXT/N/A       numero del testo.
           FP=FRONTPEN/N/K
           BP=BACKPEN/N/K
           M=DRAWMODE/N/K
           X=LEFTEDGE/N/K
           Y=TOPEDGE/N/K
           FONT/N/K
           T=TEXT/K
@ENDNODE

@NODE rxgetdripen "GETDRIPEN"

FUNZIONE:  restituisce il numero del colore associato ad una determinata
           penna.

TEMPLATE:  PEN/N/A  uno dei seguenti valori:

  0  -  Detail Pen
  1  -  Block Pen
  2  -  Text Pen
  3  -  Shine Pen
  4  -  Shadow Pen
  5  -  Fill Pen
  6  -  Fill Text Pen
  7  -  Background Pen
  8  -  Higlight Text Pen
  9  -  Bar Detail Pen    (V39)
 10  -  Bar Block Pen     (V39)
 11  -  Bar Trim Pen      (V39)

Vedi @{"Screen/DriPens..." link dripens} per maggiori informazioni riguardo le penne.
@ENDNODE

@NODE rxgetbox "GETBOX"

FUNZIONE: chiede all'utente di selezionare un Bevel Box.

TEMPLATE: WINDOW/N    finestra da attivare. Se omessa, verrà usata la
                      finestra corrente.

Questa funzione ritorna il codice d'errore 5 se la finestra non  conteneva
bevel box o se l'utente ha  cancellato  il  comando.  Ritorna   il  codice
d'errore 10 se la finestra specificata era chiusa o non esisteva.
@ENDNODE

@NODE rxgetboxattr "GETBOXATTR"

FUNCTION:  riempie uno stem con informazioni su un bevel box.

TEMPLATE:  WINDOW/N/K   la finestra del box. Se omesso verrà usata la
                        finestra corrente.
           BOX/N/A      numero del box
           STEM/A       variabile da riempire


Questi sono i campi riempiti:

stem.LEFTEDGE       posizione
stem.TOPEDGE
stem.WIDTH          dimensioni
stem.HEIGHT
stem.TYPE           vedi @{"ADDBOX" link rxaddbox}
stem.RECESSED       booleano
@ENDNODE

@NODE rxgetfontattr "GETFONTATTR"

FUNZIONE:  riempie una varibile stem con informazioni su un font.

TEMPLATE:  FONT/N/A       numero del font
           STEM/A         varibile da riempire


Campi riempiti:

stem.NAME       nome del font
stem.YSIZE      ta_YSize
stem.FLAGS      ta_Flags
stem.STYLE      ta_Style


Questa funzione restituisce il codice d'errore 10 se il numero del font  è
troppo alto o troppo basso.
@ENDNODE

@NODE rxgetscrfont "GETSCRFONT"

FUNZIONE:  riempie uno stem con informazioni sul font dello schermo.

TEMPLATE:  STEM/A     varabile da riempire

Vedi @{"GETFONTATTR" link rxgetfontattr} per i campi riempiti.
@ENDNODE

@NODE rxgetfile "GETFILE"

FUNZIONE: apre un requester Asl per chiedere il nome di un file
          all'utente.

TEMPLATE:   TITLE/A     titolo del requester
            FILE/K      file iniziale
            PATH/K      path iniziale
            PATTERN/K   filtro iniziale
            SAVE/S      se presente, il requester sarà in SaveMode

Questa funzione restituisce il nome (completo  di  path)  del  file  nella
variabile  RESULT, o il codice d'errore 5 in RC se l'utente ha selezionato
"Annulla" nel requester.
@ENDNODE

@NODE INDEXNODE "Indice"


A

@{"ADDBOX" link "rxaddbox"}
@{"ADDITEXT" link "rxadditext"}
@{"Aggiornamenti" link "updates"}
@{"ARexx Interface Editor" link "arexxed"}


B

@{"Banchi di gadgets" link gbanksrc}
@{"Banco immagini" link "imgbank"}
@{"BUTTON" link "button"} kind


C

@{"CHECKBOX" link "checkbox"} kind
@{"Comandi ARexx" link "arexx"}
@{"Comandi da tastiera" link "keyboard"}
@{"Come registrarsi" link "register"}
@{"Configurazione minima richiesta" link "requirements"}
@{"Copyright e Distribuzione" link "copyright"}
@{"CYCLE" link "cycle"} kind


D

@{"DA LEGGERE!" link "disclaimer"}
@{"Dimensionare i Gadget" link "size"}


F

@{"Fare un Gadget" link "making"}
@{"Finestra/Salva..." link "savewindow"}
@{"Finestre/Apri..." link "openwindow"}
@{"Finestre/BevelBox/Aggiungi" link "addbox"}
@{"Finestre/BevelBox/Modifica..." link "editbox"}
@{"Finestre/Carica..." link "loadwindow"}
@{"Finestre/Chiudi tutte" link "closeallwindow"}
@{"Finestre/Chiudi" link "closewindow"}
@{"Finestre/Dimensioni..." link "sizewindow"}
@{"Finestre/Elimina tutte" link "discardallwindow"}
@{"Finestre/Elimina" link "discardwindow"}
@{"Finestre/Flags..." link "windowflags"}
@{"Finestre/IDCMP..." link "idcmp"}
@{"Finestre/Immagini/Aggiungi" link "addimg"}
@{"Finestre/Immagini/Elimina" link "deleteimg"}
@{"Finestre/Immagini/Sposta" link "moveimg"}
@{"Finestre/Nuova..." link "newwindow"}
@{"Finestre/Stampa" link "printwnd"}
@{"Finestre/Tags..." link "windowtags"}
@{"Finestre/Testi/Aggiungi..." link "addtxt"}
@{"Finestre/Testi/Elimina..." link "deltxt"}
@{"Finestre/Testi/Modifica..." link "edittxt"}
@{"Finestre/Testi/Sposta..." link "movetxt"}
@{"Finestre/Titolo..." link "titlewindow"}
@{"Finestre/Zoom..." link "zoomwindow"}
@{"Font Adaptivity" link "fontadaptive"}


G

@{"Gadget Requesters" link "requesters"}
@{"Gadget/Copia" link "copy"}
@{"Gadgets Booleani" link "boolean"}
@{"Gadgets/Allinea/A destra" link "right"}
@{"Gadgets/Allinea/A sinistra" link "left"}
@{"Gadgets/Allinea/In alto" link "top"}
@{"Gadgets/Allinea/In basso" link "bottom"}
@{"Gadgets/Carica..." link "loadgadgets"}
@{"Gadgets/Clona/Altezza" link "ysize"}
@{"Gadgets/Clona/Entrambe" link "xysize"}
@{"Gadgets/Clona/Larghezza" link "xsize"}
@{"Gadgets/Distribuisci/Orizzontalmente" link "spreadhoriz"}
@{"Gadgets/Distribuisci/Verticalmente" link "spreadvert"}
@{"Gadgets/Font..." link "font"}
@{"Gadgets/Ordine TabCycle..." link "taborder"}
@{"Gadgets/Rimuovi" link "delete"}
@{"Gadgets/Salva..." link "savegadgets"}
@{"Gadgets/Scelte..." link "item"}
@{"Gadgets/Seleziona tutti" link "selectall"}
@{"Gadgets/Spaziatura/Setta X..." link "xspacing"}
@{"Gadgets/Spaziatura/Setta Y..." link "yspacing"}
@{"Gadgets/Tags..." link "tags"}
@{"GENERATEASM" link "rxgenerateasm"}
@{"GENERATEC" link "rxgeneratec"}
@{"GETACTWDATA" link "rxgetactwdata"}
@{"GETBOX" link "rxgetbox"}
@{"GETBOXATTR" link "rxgetboxattr"}
@{"GETDRIPEN" link "rxgetdripen"}
@{"GETFILE" link "rxgetfile"}
@{"GETFONTATTR" link "rxgetfontattr"}
@{"GETIMAGE" link "rxgetimage"}
@{"GETIMAGEATTR" link "rxgetimageattr"}
@{"GETITEXT" link "rxgetitext"}
@{"GETITEXTATTR" link "rxgetitextattr"}
@{"GETITEXTLENGHT" link "rxgetitextlen"}
@{"GETNAME" link "rxgetname"}
@{"GETSCRFONT" link "rxgetscrfont"}
@{"GETWNDDATA" link "rxgetwnddata"}


H

@{"Key Handler" link "keyhandler"}
@{"IDCMP Handler" link "handler"}


I

@{"I menù di IEditor" link "menus"}
@{"IEditor's author... err...hey, it's me! :)" link "author"}
@{"Il Gadget Activation Key Handler" link "keyhandler"}
@{"Il Sorgente Generato" link "source"}
@{"Iniziare con Interface Editor" link "starting"}
@{"INTEGER" link "integer"} kind
@{"Introduzione" link "introduction"}


L

@{"L'IDCMP Handler" link "handler"}
@{"La finestra Strumenti" link "toolbar"}
@{"LISTVIEW" link "listview"} kind


M

@{"Macros/Aggiungi..." link "addmacro"}
@{"Macros/Esegui..." link "execmacro"}
@{"Macros/Rimuovi..." link "remmacro"}
@{"Macros/Tasti funzione..." link "macros"}
@{"Main" link "mainsrc"} routine
@{"Menu Editor" link "menued"}
@{"MultiSelect, Listview" link multiselectsrc}
@{"Muovere i gadgets" link "move"}
@{"MX" link "mx"} kind


N

@{"NEW" link "rxnew"}
@{"Note" link "notes"}
@{"NUMBER" link "number"} kind


O

@{"OPEN" link "rxopen"}


P

@{"PALETTE" link "palette"} kind
@{"Porta IDCMP Condivisa" link "sharedport"}
@{"Preferenze/Finestra corrente in primo piano" link "infront"}
@{"Preferenze/Finestra Strumenti" link "toolswindow"}
@{"Preferenze/Genera icone" link "createicons"}
@{"Preferenze/Generatore..." link "genprefs"}
@{"Preferenze/Memorizza" link "saveprefs"}
@{"Preferenze/Sorgente Asm..." link "asmprefs"}
@{"Preferenze/Sorgente C..." link "cprefs"}
@{"Preferenze/Usa i flags settati" link "usewflags"}
@{"Preferenze/Usa i Gadgets" link "usegads"}
@{"Preferenze/Workbench" link "closewb"}
@{"Progetti futuri" link "future"}
@{"Progetto/Apri..." link "open"}
@{"Progetto/Esci" link "quit"}
@{"Progetto/Genera Sorgente..." link "gensrc"}
@{"Progetto/Informazioni..." link "about"}
@{"Progetto/Nuovo" link "new"}
@{"Progetto/Parametri..." link "srcparams"}
@{"Progetto/Salva Come..." link "saveas"}
@{"Progetto/Salva" link "save"}


Q

@{"QUIT" link "rxquit"}


R

@{"Registrazione" link "register"}
@{"Ringraziamenti" link "credits"}
@{"Routines ARexx" link "arexxroutines"}
@{"Routines Main" link "mainsrc"}


S

@{"SAVE" link "rxsave"}
@{"SAVEAS" link "rxsaveas"}
@{"Schermo/Carica..." link "loadscr"}
@{"Schermo/Colori/Carica..." link "paletteload"}
@{"Schermo/Colori/Modifica..." link "palettemodify"}
@{"Schermo/Colori/Salva..." link "palettesave"}
@{"Schermo/DriPens..." link "dripens"}
@{"Schermo/Font..." link "getfont"}
@{"Schermo/Salva..." link "savescr"}
@{"Schermo/Tags..." link "screentags"}
@{"Screen/Change Type..." link "screentype"}
@{"Scripts ARexx forniti con IEditor" link "scripts"}
@{"SCROLLER" link "scroller"} kind
@{"Selezione di gadget" link "selection"}
@{"SETBOXATTR" link "rxsetboxattr"}
@{"SETIMAGEATTR" link "rxsetimageattr"}
@{"SETITEXTATTR" link "rxsetitextattr"}
@{"SETNAME" link "rxsetname"}
@{"SLIDER" link "slider"} kind
@{"Sorgente Generato" link "source"}
@{"STRING" link "string"} kind


T

@{"TEXT" link "text"} kind


V

@{"Varie/Localizzazione..." link "localize"}
@{"Varie/main()..." link "mained"}
@ENDNODE
