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

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

<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>jncp@netcabo.pt</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Funções &DCOP;</title>

<para
>O &DCOP; pode ser invocado de várias formas no &kommander;. Primeiro, existe o método da consola </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText meuElemento <quote
>novo texto</quote
> </para>
<para
>Isto assume que você está dentro de um ficheiro do &kommander; e que tem acesso ao especial @pid, o qual contém o ID do processo. De facto, é mais simples substituir o <quote
>kmdr-executor-@pid</quote
> por @dcopid. Contudo, você poderá usar esta sintaxe (obviamente sem os especiais) a partir da linha de comandos ou com algum programa externo para alterar a janela do &kommander;. </para>
<para
>Dado que o &kommander; não tem um processador completo na sua fase 'Alpha', se você quiser usar o &DCOP; interno, que é muito mais rápido, a partir de outra janela da aplicação (o &DCOP; da consola é bastante lento), será mais complicado porque você precisa de dar bastantes informações, incluindo um protótipo da chamada. A chamada acima ficaria igual a: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Widget, true) </para>
<para
>Na altura em que isto foi escrito, você deverá saber que o encadeamento de chamadas de &DCOP; dentro de estruturas da linguagem de programação (como o <application
>bash</application
>) significa que você precisa de usar chamadas dos métodos a partir da consola. <emphasis
>Se usar o &DCOP; interno, todos os especiais do &kommander; serão executados primeiro e depois o programa será então executado.</emphasis
> </para>
<para
>Existe uma nova forma simplificada de usar o &DCOP; dentro do &kommander;, através de uma sintaxe de objectos. Digamos que você deseje alterar o texto num elemento chamado @CampoTexto1. Seria algo semelhante ao seguinte. </para>
<para
>@CampoTexto1.changeWidgetText(Novo texto) </para>
<para
>Como poderá ver, a nova sintaxe é muito simples, assim como é consistente visualmente com os grupos de funções. Todas as referências ao &DCOP; irão usar a nova sintaxe de objectos indicada acima.  <emphasis
>Lembre-se por favor que, se for referenciar um elemento gráfico a partir do &DCOP; noutra janela ou com outra aplicação, o primeiro parâmetro será sempre o nome do elemento gráfico. Todas as funções são listadas aqui a começar pelo segundo parâmetro.</emphasis
> </para>

<sect2 id="dcop-globals">
<title
>O &DCOP; para Variáveis Globais</title>
<variablelist>
<varlistentry>
<term
>global(QString nomeVariavel)</term>
<listitem>
<para
>Devolve o valor da variável global indicada. Quando um programa é corrido dentro de uma janela do &kommander;, todas as variáveis (não-globais) definidas neste programa deixarão de existir depois de o programa terminar e, como tal, não estarão disponíveis para outros processos de programas ou numa nova instância do processo que invoca. O <quote
>âmbito</quote
> global significa que a variável irá existir para qualquer processo da janela até que esta seja fechada. Você poderá alterar estas variáveis em qualquer altura com uma chamada nova ao <function
>@setGlobal</function
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString nomeVariavel, QString valor)</term>
<listitem>
<para
>Cria uma variável que é global para o processo da janela e atribui o valor a ela. Este valor poderá ser obtido com a chamada global(QString nomeVariavel) ou alterada de novo. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-all">
<title
>O &DCOP; para Todos os Elementos</title>

<variablelist>
<varlistentry>
<term
>changeWidgetText(QString texto)</term>
<listitem>
<para
>Este deverá ser mudado para 'setWidgetText' e este nome poderá vir a ficar obsoleto. Isto remove o texto apresentado no elemento gráfico e substitui-o pelo texto indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool activar)</term>
<listitem>
<para
>Activa ou desactiva um dado elemento gráfico. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Devolve o texto associado com o elemento gráfico indicado. Este não é o mesmo que o texto apresentado. Será o <quote
>@widgetText</quote
> ou o texto e/ou programa usado para chegar ao valor apresentado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString texto)</term>
<listitem>
<para
>Isto configura o texto por omissão do Texto do &kommander;. Isto é tipicamente igual a <quote
>@widgetText</quote
> para mostrar o que é introduzido no elemento gráfico. É pouco provável que tenha muita necessidade disto, mas se o fizer, será aqui. Aplica-se a todos os elementos que possam conter dados. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-box">
<title
>O &DCOP; para os Elementos ListBox e ComboBox</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString item, int indice)</term>
<listitem>
<para
>Adiciona um item a um elemento ListBox no índice indicado. O índice da lista começa em zero. Para adicionar ao fim da lista, use -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList itens, int indice)</term>
<listitem>
<para
>Isto adiciona uma lista de cadeias de caracteres logo de uma vez. A lista deverá delimitada por caracteres <acronym
>EOL</acronym
> (\n - mudança de linha). Isto é útil, dado que poderá usar a 'bash' para derivar a lista de forma relativamente simples. Por exemplo, se usar @exec(ls -l ~/projectos | grep kmdr) para os itens, irá ter uma listagem dos ficheiros do &kommander; na sua pasta de projectos. O índice da lista começa em zero. Use o -1 para adicionar ao fim da lista. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString item)</term>
<listitem>
<para
>O 'addUniqueItem' irá adicionar um item ao fim da lista, somente se for único. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Remove todos os itens. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int indice)</term>
<listitem>
<para
>Remove o item no índice indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int indice)</term>
<listitem>
<para
>Devolve o texto do item no índice indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int indice)</term>
<listitem>
<para
>Configura o item actual (ou seleccionado) com o índice indicado. Aplica-se aos elementos ListBox e ComboBox. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-button">
<title
>O &DCOP; para os Elementos CheckBox e RadioButton</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString nomeElemento, bool assinalado)</term>
<listitem>
<para
>Liga/desliga os elementos CheckBox ou RadioButton. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="dcop-tab">
<title
>O &DCOP; para os Elementos TabWidget</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString nomeElemento, int indice)</term>
<listitem>
<para
>Selecciona a página pelo índice nos TabWidgets. O índice começa em 0 (zero). </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>


</sect1>
