# Funciones &DCOP;

Juan Manuel
García Molina

    juanma@superiodico.net

Traductor

# Funciones &DCOP;

&DCOP; se puede llamar de varias formas desde &kommander;. El primero, es el método de la consola

dcop kmdr-executor-@pid KommanderIf changeWidgetText miWidget nuevo texto

Asume que está dentro de un archivo de &kommander; y que tiene acceso al especial @pid, que contiene el id. del proceso. De hecho, es más fácil reemplazar kmdr-executor-@pid por @dcopid. Sin embargo, puede usar esta sintaxis (obviamente, sin los especiales) desde la línea de comandos o desde cualquier guión exteno para alterar la ventana de &kommander;.

Debido a que &kommander; no tiene un analizador completo en su estado alfa, si quiere usar el &DCOP; interno mucho más rápido para la ventana de otra aplicación (&DCOP; en consola es muy lento) es más complicado porque debe dar mucha información, entre la que se incluye un prototipo para la llamada. La llamada de lo de arriba sería así:

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

En el momento de escribir este manual, debería evitar anidar llamadas &DCOP; dentro de las estructuras de lenguajes de guiones (como bash), lo que significa que debería usar métodos de llamada desde consola. Si usa &DCOP; interno, todos los especiales de &kommander; se ejecutarán primero y luego se ejecutará el guión.

Hay una forma simplificada de usar &DCOP; desde dentro de &kommander;, usando la sintaxis del objeto. Digamos que quiere cambiar el texto de un widget que se llama @EditLine1. Tendría esta pinta:

@EditLine1.changeWidgetText(Texto nuevo)

Como puede ver, la sintaxis es muy sencilla, así como visualmente consistente con los grupos de funciones. Todas las referencias &DCOP; de aquí usarán la nueva sintaxis del objeto que se mostró arriba. Tenga en cuenta que si está referenciando un widget usando &DCOP; desde otra ventana o desde otra aplicación, el primer parámetro será siempre el nombre del widget. Todas las funciones que se muestran aquí comienzan en el segundo parámetro.

## &DCOP; para variables globales

global(QString nombreVariable)

  Devuelve el valor de la variable global indicada. Cuando un guión se ejecuta desde la ventana de &kommander; cualquier variable (no global) definida en el guión dejará de existir una vez completado el guión y, por tanto, no estará disponible para otros procesos de guiones ni en nuevos ejemplares del proceso llamante. El ámbito global de la variable significa que existirá para cualquier proceso de la ventana hasta que se cierre la misma. Puede cambiar estas variables en cualquier momento con una nueva llamada a `@setGlobal`.

setGlobal(QString nombreVariable, QString valor)

  Crea una variable global en el proceso de la ventana y le asigna un valor. Este valor se puede recuperar o volver a definir con global(QString nombreVariable).

## &DCOP; para todos los widgets

changeWidgetText(QString text)

  Debería cambiar el nombre por setWidgetText y probablemente este nombre quede obsoleto. Elimina el texto que se muestra en el widget y lo reemplaza con el texto que se suministra.

enableWidget(bool enable)

  Activa o desactiva el widget.

associatedText

  Devuelve el texto asociado con el widget especificado. No es el mismo que el texto que se muestra. Sería @widgetText o el texto y/o el guión que se use para que llegue el valor que se muestra.

setAssociatedText(QString text)

  Define la cadena predefinida de texto de &kommander;. Típicamente se define como @widgetText para mostrar lo que se introduzca en el widget. Posiblemente no lo necesite, pero ahí está por si acaso. Se aplica a todos los widgets que tengan datos.

## &DCOP; para widgets de listas de selección y de listas de selección múltiple

addListItem(QString item, int index)

  Añade un elemento a un widget de lista de selección en el índice (index) especificado. El índice de la lista comienza en el cero. Para añadirlo al final de la lista, use -1.

addListItems(QStringList items, int index)

  Añade una lista de cadenas de una vez. La lista debería delimitarla por EOL (\n - saltos de línea). Es tan hábil que puede usar bash para derivar la lista de forma bastante sencilla. Por ejemplo, usando @exec(ls -l ~/projects | grep kmdr) para que los elementos que proporcione conformen un listado de los archivos de &kommander; de la carpeta projects. El índice de la lista comienza en el cero. Para añadirlo al final de la lista, use -1.

addUniqueItem(QString item)

  addUniqueItem añade un elemento (item) al final de la lista sólo si es único.

clearList

  Elimina todos los elementos.

removeListItem(int index)

  Elimina el elemento que hay en el índice (index) indicado.

item(int index)

  Devuelve el texto del elemento en el index (índice) especificado.

setCurrentListItem(int index)

  Define el elemento actual (o seleccionado) con el index (índice) especificado. Se aplica a widgets de lista y de lista de selección múltiple.

## &DCOP; para widgets de casilla de verificación y botones de radio

setChecked(QString widgetName, bool checked)

  Marca/quita la marca de widgets de casilla de verificación y botones de radio.

## &DCOP; para widgets de solapa

setCurrentTab(QString widgetName, int index)

  Selecciona la solapa por index (índice) para widgets de solapa. El índice comienza en el 0.