# Funzioni &DCOP;

&DCOP; può essere richiamato in &kommander; in diversi modi. Il primo metodo è attraverso la console

dcop kmdr-executor-@pid KommanderIf changeWidgetText myWidget new text

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 kmdr-executor-@pid 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.

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:

@dcop(@dcopid, KommanderIf, enableWidget(QString, bool), Widget, true)

Al momento in cui questo manuale è stato scritto dovresti sapere che annidare chiamate &DCOP; all'interno di strutture di linguaggi di script (come bash) impone l'utilizzo dei metodi di chiamata da console. Se utilizzi il &DCOP; interno tutti i comandi speciali di &kommander; saranno eseguiti prima dello script.

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ì.

@LineEdit1.changeWidgetText(New text)

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

## &DCOP; per Variabili Globali

global(QString nomeVariabile)

- 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 contesto 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 `@setGlobal`.

setGlobal(QString nomeVariabile, QString valore)

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

## &DCOP; per tutti i Widget

changeWidgetText(QString testo)

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

enableWidget(bool abilita)

- Abilita o disabilita un widget.

associatedText

- Restituisce il testo associato al particolare widget. Questo non è lo stesso di quello visualizzato. Verrebbe altrimenti utilizzato con @widgetText o con il testo e/o script utilizzato per arrivare al valore visualizzato.

setAssociatedText(QString testo)

- Imposta la stringa predefinita di Testo di &kommander;. Questa è tipicamente impostata a @widgetText 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.

## &DCOP; per i Widget ListBox e ComboBox

addListItem(QString elemento, int indice)

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

addListItems(QStringList elementi, int indice)

- Aggiunge una lista di stringhe in una sola volta. La lista dovrebbe essere delimitata da EOL (\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.

addUniqueItem(QString elemento)

- addUniqueItem aggiungerà un elemento alla fine della lista solo se non è già presente.

clearList

- Rimuove tutti gli elementi.

removeListItem(int indice)

- Rimuove tutti gli elementi a partire dall'indice specificato.

item(int indice)

- Restituisce il testo dell'elemento all'indice specificato.

setCurrentListItem(int indice)

- Imposta l'elemento corrente (o selezionato) all'indice specificato. Si applica ai widget ListBox e ComboBox.

## &DCOP; per i Widget CheckBox e RadioButton

setChecked(QString nomeWidget, bool attivato)

- Attiva/disattiva i widget CheckBox o RadioButton.

## &DCOP; per i Widget TabWidget

setCurrentTab(QString nomeWidget, int indice)

- Seleziona la linguetta del TabWidget in base all'indice. L'indice comincia da 0.