<sect1 id="tool-scriptbuilder">
<title
>Il Costruttore di script</title>
<indexterm
><primary
>Strumenti</primary>
<secondary
>Costruttore di script</secondary>
</indexterm>

<para
>Le applicazioni &kde; possono essere controllate esternamente da un altro programma, da un prompt di terminale o da uno script di shell, usando il protocollo di comunicazione tra processi (&DBus;). &kstars; sfrutta questa possibilità per permettere in ogni momento la registrazione e riproduzione di complesse sequenze di eventi. Ciò può essere utile, ad esempio, per creare una dimostrazione didattica che illustri un concetto astronomico. </para>
<para
>Il problema con gli script &DBus; è che scriverli è un po' come programmare, impresa che può apparire proibitiva a chi non ha esperienza in materia. Il Costruttore di script fornisce un'interfaccia grafica (<abbrev
>GUI</abbrev
>) punta-e-fai-clic per realizzare gli script &DBus; di &kstars;, rendendo molto facile crearne anche di complessi. </para>

<sect2 id="sb-intro">
<title
>Introduzione al Costruttore di script</title>

<para
>Prima di spiegare come si usa il Costruttore di script, introdurremo brevemente tutti i componenti dell'interfaccia grafica; per maggiori informazioni utilizza la funzione "Che cos'è questo?". </para>

<screenshot>
<screeninfo
>Il Costruttore di script </screeninfo>
<mediaobject>
  <imageobject>
    <imagedata fileref="scriptbuilder.png" format="PNG"/>
  </imageobject>
  <textobject>
    <phrase
>Costruttore di script</phrase>
  </textobject>
</mediaobject>
</screenshot>

<para
>Il Costruttore di script è mostrato nell'immagine qui sopra. A sinistra c'è il <firstterm
>riquadro Script corrente</firstterm
> che mostra la lista di comandi inclusi nello script corrente. Il riquadro a destra è il <firstterm
>Browser funzioni</firstterm
>, con la lista di tutte le funzioni disponibili. Sotto il Browser funzioni c'è un pannello dove compare una breve documentazione sulla funzione evidenziata nel riquadro sovrastante. Sotto il riquadro Script corrente c'è il <firstterm
>pannello Argomenti funzione</firstterm
>; quando si seleziona una funzione nel riquadro Script corrente, in questo pannello appare il necessario per specificare il valore degli argomenti eventualmente richiesti. </para
><para
>In cima alla finestra c'è una fila di pulsanti che operano sullo script nel suo insieme. Da sinistra a destra: <guibutton
>Nuovo script</guibutton
>, <guibutton
>Apri script...</guibutton
>, <guibutton
>Salva script</guibutton
>, <guibutton
>Salva script come...</guibutton
> e <guibutton
>Prova script</guibutton
>. La funzione di questi pulsanti dovrebbe essere ovvia, fatta forse eccezione per l'ultimo. Premendo <guibutton
>Prova script</guibutton
> lo script corrente sarà eseguito nella finestra principale di &kstars;. Prima di farlo ti consigliamo di spostare la finestra del Costruttore di script, in modo che tu possa vedere i risultati. </para
><para
>Al centro della finestra c'è una fila verticale di pulsanti che operano su singole funzioni dello script. Dall'alto in basso: <guibutton
>Aggiungi funzione</guibutton
>, <guibutton
>Elimina funzione</guibutton
>, <guibutton
>Copia funzione</guibutton
>, <guibutton
>Sposta in alto</guibutton
> e <guibutton
>Sposta in basso</guibutton
>. Il pulsante <guibutton
>Aggiungi funzione</guibutton
> aggiunge la funzione selezionata nel Browser all'interno del riquadro Script corrente (puoi anche aggiungere una funzione con un doppio clic su di essa). Gli altri pulsanti operano sulla funzione selezionata nel riquadro Script corrente, con l'effetto di eliminarla, di duplicarla o di modificarne la posizione all'interno dello script. </para>
</sect2>

<sect2 id="sb-using">
<title
>Utilizzo del Costruttore di script</title>
<para
>Per illustrare l'utilizzo del Costruttore di script presenteremo un piccolo esempio. Scriveremo uno script che insegue la Luna mentre il tempo scorre a velocità accelerata. </para
><para
>Se vogliamo inseguire la Luna dobbiamo per prima cosa puntarla. La funzione <firstterm
>lookToward</firstterm
> ha precisamente questo scopo. Selezionala nel Browser funzioni e consulta la documentazione visualizzata nel pannello sottostante. Quindi premi il pulsante <guibutton
>Aggiungi funzione</guibutton
> per aggiungere la funzione nel riquadro Script corrente. Il pannello Argomenti funzione conterrà ora una casella chiamata <quote
>Dir</quote
>, che sta per "Direzione". Si tratta della direzione verso cui si vuol puntare lo schermo. La lista contiene solo i punti cardinali, non la Luna o altri oggetti. Puoi inserire <quote
>Luna</quote
> manualmente nella casella, oppure premere il pulsante <guibutton
>Oggetto...</guibutton
> per utilizzare la finestra <guilabel
>Trova oggetto...</guilabel
> e selezionarla dalla lista di oggetti con nome. Nota che, come sempre, centrare un oggetto attiva automaticamente l'inseguimento, così che non c'è bisogno di aggiungere la funzione <firstterm
>setTracking</firstterm
> dopo lookToward. </para
><para
>Ora che abbiamo puntato la Luna vogliamo che il tempo scorra a una velocità superiore al normale. Utilizza allo scopo la funzione <firstterm
>setClockScale</firstterm
>. Aggiungila allo script facendo doppio clic su di essa nel Browser funzioni. Il pannello Argomenti funzione contiene ora il necessario per modificare il passo dell'orologio della simulazione. Porta il passo a tre ore. </para
><para
>Bene, abbiamo puntato la Luna e accelerato lo scorrere del tempo. Ora vogliamo solo che lo script attenda un certo numero di secondi mentre lo schermo insegue la Luna. Aggiungi allo script la funzione <firstterm
>waitFor</firstterm
>, e utilizza il pannello Argomenti funzione per impostare a venti secondi il tempo di attesa. </para
><para
>Per finire, riportiamo il passo dell'orologio al valore normale di un secondo. Aggiungi un'altra istanza di setClockScale, e impostane il valore a un secondo. </para
><para
>Per la verità non abbiamo ancora finito. Dovremmo assicurarci che il programma stia utilizzando le coordinate equatoriali prima che lo script inizi a inseguire la Luna con passo temporale accelerato. Altrimenti, se lo schermo utilizza coordinate orizzontali, ruoterà assai rapidamente di grandi angoli mentre la Luna sorge e tramonta. Ciò può provocare parecchia confusione, ma lo si può evitare impostando l'opzione di visualizzazione <firstterm
>UseAltAz</firstterm
> a <quote
>false</quote
>. Per modificare una qualsiasi opzione di visualizzazione, utilizza la funzione <firstterm
>changeViewOption</firstterm
>. Aggiungila allo script ed esamina il pannello Argomenti funzione. C'è un pulsante che apre una lista di tutte le opzioni modificabili tramite changeViewOption. Dato che sappiamo di dover utilizzare l'opzione UseAltAz, potremmo semplicemente selezionarla dalla lista. Si tratta tuttavia di una lista piuttosto lunga, e non ci sono spiegazioni per le varie voci. Potrebbe quindi essere più semplice premere il pulsante <guibutton
>Esamina albero...</guibutton
>, che aprirà una finestra con una vista ad albero delle opzioni di visualizzazione, divise per argomento. Inoltre ogni voce dispone di una breve spiegazione, ed è indicato il tipo di dati dell'argomento. Possiamo trovare UseAltAz nella categoria <guilabel
>Opzioni mappa celeste</guilabel
>. Selezionala e premi <guibutton
>OK</guibutton
>, ed essa comparirà all'interno del pannello Argomenti funzione. Infine, imposta il suo valore a <quote
>false</quote
> o <quote
>0</quote
>. </para
><para
>Un'altra cosa: cambiare UseAltAz alla fine dello script non serve a granché; dobbiamo modificarlo prima di ogni altra cosa. Perciò assicurati che la funzione sia selezionata nel riquadro Script corrente, e premi il pulsante <guibutton
>Sposta in alto</guibutton
> fino a farla diventare la prima funzione. </para
><para
>Ora che abbiamo terminato lo script dobbiamo salvarlo su disco. Premi il pulsante <guibutton
>Salva script</guibutton
>. Si aprirà una finestra in cui puoi inserire un nome per lo script e uno per il suo autore. Inserisci <quote
>Inseguire la Luna</quote
> come nome, metti il tuo nome come autore e premi <guibutton
>OK</guibutton
>. Apparirà la finestra di dialogo standard "Salva file" di &kde;. Specifica un nome file per lo script e premi <guibutton
>OK</guibutton
> per salvarlo. Nota che, se il nome file non finisce per <quote
>.kstars</quote
>, l'estensione sarà aggiunta automaticamente. Se sei curioso, puoi esaminare lo script con un qualunque editor di testi. </para
><para
>Ora che abbiamo uno script completo possiamo eseguirlo in due modi diversi. È possibile farlo da un prompt di terminale, purché &kstars; sia in esecuzione. In alternativa puoi eseguire lo script da &kstars; tramite la voce di menu <menuchoice
><guimenu
>File</guimenu
> <guimenuitem
>Esegui Script...</guimenuitem
></menuchoice
>. </para>
</sect2>
</sect1>

