<?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>