<?xml version="1.0"  encoding="UTF-8" ?>

<sect1 id="dcop-interface">
<sect1info>
<title
>Funzioni &DCOP;</title>
<authorgroup>
<author
><firstname
></firstname
> <surname
></surname
> <affiliation
><address
> <email
></email>
</address
></affiliation>
</author>

<othercredit role="translator"
><firstname
>Samuele</firstname
><surname
>Kaplun</surname
><affiliation
><address
><email
>kaplun@aliceposta.it</email
></address
></affiliation
><contrib
>Traduzione del documento</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Funzioni &DCOP;</title>

<para
>&DCOP; può essere richiamato in &kommander; in diversi modi. Il primo metodo è attraverso la console </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText myWidget <quote
>new text</quote
> </para>
<para
>Si presume che tu ti trovi in un file &kommander; ed hai accesso al comando speciale @pid che contiene l'ID del processo. Nella pratica è più semplice sostituire <quote
>kmdr-executor-@pid</quote
> con @dcopid. Per modificare la finestra di &kommander;, puoi, comunque, utilizzare questa sintassi (ovviamente senza i comandi speciali) dalla linea di comando o da qualsiasi altro script esterno. </para>
<para
>Dato che &kommander; non possiede un analizzatore completo nel sua fase Alpha, usare il comando &DCOP; interno, molto più rapido, dalla finestra di un'altra applicazione (la console &DCOP; è molto lenta) è più complicato perché devi fornire molte informazioni, incluso un prototipo della chiamata. La chiamata di prima diventerebbe: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Widget, true) </para>
<para
>Al momento in cui questo manuale è stato scritto dovresti sapere che annidare chiamate &DCOP; all'interno di strutture di linguaggi di script (come <application
>bash</application
>) impone l'utilizzo dei metodi di chiamata da console. <emphasis
>Se utilizzi il &DCOP; interno tutti i comandi speciali di &kommander; saranno eseguiti prima dello script.</emphasis
> </para>
<para
>Esiste una nuova modalità semplificata di utilizzare &DCOP; all'interno di &kommander; utilizzando una sintassi ad oggetti. Supponiamo che tu voglia cambiare il testo in un widget chiamato @LineEdit1. Si scriverebbe così. </para>
<para
>@LineEdit1.changeWidgetText(New text) </para>
<para
>Come puoi vedere la nuova sintassi è molto semplice quanto consistente visivamente con i gruppi di funzioni. Tutti comandi &DCOP; referenziati qui utilizzeranno la nuova sintassi ad oggetti indicata prima. <emphasis
>Per favore, nota che se stai facendo riferimento ad un widget che utilizza &DCOP; da un'alta finestra o da un'altra applicazione, il primo parametro sarà sempre il nome del widget. Sono qui elencate tutte le funzioni a partire dal secondo parametro.</emphasis
> </para>

<sect2 id="dcop-globals">
<title
>&DCOP; per Variabili Globali</title>
<variablelist>
<varlistentry>
<term
>global(QString nomeVariabile)</term>
<listitem>
<para
>Restituisce il valore della variabile globale specificata. Quando uno script viene lanciato all'interno di una finestra di &kommander; qualsiasi variabile (non globale) impostata in quello script cesserà di esistere una volta terminato lo script e perciò non sarà più disponibile ai processi degli altri script o in una nuova istanza del processo chiamante. Nel <quote
>contesto</quote
> globale la variabile esisterà per ogni processo od ogni finestra fino al momento in cui quella viene chiusa. Puoi modificare queste variabili in ogni momento con una nuova chiamata a <function
>@setGlobal</function
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString nomeVariabile, QString valore)</term>
<listitem>
<para
>Crea una variabile che è globale per la finestra del processo e le assegna un valore. Questo valore può essere recuperato con global(QString nomeVariabile) o reimpostato. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-all">
<title
>&DCOP; per tutti i Widget</title>

<variablelist>
<varlistentry>
<term
>changeWidgetText(QString testo)</term>
<listitem>
<para
>Questo comando dovrebbe venir rinominato in setWidgetText ed il suo nome verrà probabilmente deprecato. Esso rimuove il testo visualizzato nel widget sostituendolo con il testo fornito. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool abilita)</term>
<listitem>
<para
>Abilita o disabilita un widget. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Restituisce il testo associato al particolare widget. Questo non è lo stesso di quello visualizzato. Verrebbe altrimenti utilizzato con <quote
>@widgetText</quote
> o con il testo e/o script utilizzato per arrivare al valore visualizzato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString testo)</term>
<listitem>
<para
>Imposta la stringa predefinita di Testo di &kommander;. Questa è tipicamente impostata a <quote
>@widgetText</quote
> per visualizzare ciò che viene inserito nel widget. È raro che tu ne abbia bisogno, in ogni caso c'è. Viene applicato a tutti i widget che contengono informazioni. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-box">
<title
>&DCOP; per i Widget ListBox e ComboBox</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString elemento, int indice)</term>
<listitem>
<para
>Aggiunge un elemento ad un widget ListBox all'indice specificato. L'indice della lista comincia da zero. Per aggiungere alla fine della lista utilizzare -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList elementi, int indice)</term>
<listitem>
<para
>Aggiunge una lista di stringhe in una sola volta. La lista dovrebbe essere delimitata da <acronym
>EOL</acronym
> (\n - a-capo). Questo comando è comodo perché puoi facilmente utilizzare bash per procurarti la lista. Utilizzando, ad esempio, @exec(ls -l ~/projects | grep kmdr) al posto degli elementi, restituirà l'elenco dei file di &kommander; nella cartella dei tuoi progetti. L'indice della lista comincia da zero. Utilizza -1 per aggiungere alla fine della lista. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString elemento)</term>
<listitem>
<para
>addUniqueItem aggiungerà un elemento alla fine della lista solo se non è già presente. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Rimuove tutti gli elementi. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int indice)</term>
<listitem>
<para
>Rimuove tutti gli elementi a partire dall'indice specificato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int indice)</term>
<listitem>
<para
>Restituisce il testo dell'elemento all'indice specificato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int indice)</term>
<listitem>
<para
>Imposta l'elemento corrente (o selezionato) all'indice specificato. Si applica ai widget ListBox e ComboBox. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-button">
<title
>&DCOP; per i Widget CheckBox e RadioButton</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString nomeWidget, bool attivato)</term>
<listitem>
<para
>Attiva/disattiva i widget CheckBox o RadioButton. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-tab">
<title
>&DCOP; per i Widget TabWidget</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString nomeWidget, int indice)</term>
<listitem>
<para
>Seleziona la linguetta del TabWidget in base all'indice. L'indice comincia da 0. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>


</sect1>
