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

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

<othercredit role="translator"
><firstname
>Juan Manuel</firstname
> <surname
>García Molina</surname
> <affiliation
><address
><email
>juanma@superiodico.net</email
></address
></affiliation
><contrib
>Traductor</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Funciones &DCOP;</title>

<para
>&DCOP; se puede llamar de varias formas desde &kommander;. El primero es el método de la consola </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText miWidget <quote
>nuevo texto</quote
> </para>
<para
>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 <quote
>kmdr-executor-@pid</quote
> por @dcopid. Sin embargo, puede usar esta sintaxis (obviamente, sin los especiales) desde la línea de órdenes o desde cualquier guión externo para alterar la ventana de &kommander;. </para>
<para
>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 superior sería así: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Widget, true) </para>
<para
>En el momento de escribir este manual, debería evitar anidar llamadas &DCOP; dentro de las estructuras de lenguajes de guiones (como  <application
>bash</application
>), lo que significa que debería usar métodos de llamada desde consola. <emphasis
>Si usa &DCOP; interno, todos los especiales de &kommander; se ejecutarán primero y luego se ejecutará el guión.</emphasis
> </para>
<para
>Hay una forma simplificada de usar &DCOP; desde dentro de &kommander;, usando la sintaxis del objeto. Si quisiera cambiar el texto de un widget llamado @EditLine1, se vería como: </para>
<para
>@EditLine1.changeWidgetText(Texto nuevo) </para>
<para
>Como puede ver, la sintaxis es muy sencilla, así como visualmente consistente con los grupos de funciones. Todas las referencias &DCOP; de este documento usarán la nueva sintaxis del objeto mostrada arriba. <emphasis
>Tenga en cuenta que si hace referencia a 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.</emphasis
> </para>

<sect2 id="dcop-globals">
<title
>&DCOP; para variables globales</title>
<variablelist>
<varlistentry>
<term
>global(QString nombreVariable)</term>
<listitem>
<para
>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 este y, por tanto, no estará disponible para otros procesos de guiones ni en nuevos ejemplares del proceso que lo invocó. El <quote
>ámbito</quote
> global significa que una variable 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 <function
>@setGlobal</function
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString nombreVariable, QString valor)</term>
<listitem>
<para
>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). </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-all">
<title
>&DCOP; para todos los widgets</title>

<variablelist>
<varlistentry>
<term
>changeWidgetText(QString text)</term>
<listitem>
<para
>Debería renombrarse a setWidgetText y probablemente este nombre quede obsoleto. Elimina el texto mostrado en el widget y lo reemplaza con el texto suministrado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool enable)</term>
<listitem>
<para
>Activa o desactiva el widget. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Devuelve el texto asociado con el widget especificado. No es el mismo que el texto que se muestra. Sería <quote
>@widgetText</quote
> o el texto y/o el guión que se use para que llegue el valor que se muestra. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString text)</term>
<listitem>
<para
>Define la cadena predefinida de texto de &kommander;. Típicamente se define como <quote
>@widgetText</quote
> 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. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-box">
<title
>&DCOP; para widgets de listas de selección y de listas de selección múltiple</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString item, int index)</term>
<listitem>
<para
>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. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList items, int index)</term>
<listitem>
<para
>Añade una lista de cadenas de una vez. La lista debería delimitarla por <acronym
>EOL</acronym
> (\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. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString item)</term>
<listitem>
<para
>addUniqueItem añade un elemento al final de la lista sólo si es único. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Elimina todos los elementos. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int index)</term>
<listitem>
<para
>Elimina el elemento que hay en el índice (index) indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int index)</term>
<listitem>
<para
>Devuelve el texto del elemento en el index (índice) especificado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int index)</term>
<listitem>
<para
>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. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-button">
<title
>&DCOP; para widgets de casilla de verificación y botones de radio</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString widgetName, bool checked)</term>
<listitem>
<para
>Marca/quita la marca de widgets de casilla de verificación y botones de radio. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-tab">
<title
>&DCOP; para widgets de pestaña</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString widgetName, int index)</term>
<listitem>
<para
>Selecciona la pestaña por index (índice) para widgets de pestañas. El índice comienza en el 0. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>


</sect1>
