<chapter id="kdevelop-scripting">

<chapterinfo>
  <authorgroup>
    <author
><firstname
>Ian</firstname
><surname
>Geiser</surname
></author>
    <!-- ROLES_OF_TRANSLATORS -->
  </authorgroup>
</chapterinfo>

<title
>Usar 'Scripts' no KDevelop</title>

<sect1 id="running-scripts">
<title
>Executar os 'Scripts'</title>
<para
>Para aceder a um 'script' que esteja disponível ao &kdevelop;, use o menu <menuchoice
><guimenu
>Ferramentas</guimenu
><guimenuitem
>'Scripts'</guimenuitem
></menuchoice
>. Se não existir esse menu, então não estão nenhuns 'scripts' disponíveis no KDevelop. </para>
</sect1>

<sect1 id="adding-scripts">
<title
>Adicionar 'Scripts'</title>
<para
>Logo que tenha adicionado o suporte do KScript à sua aplicação anfitriã, a adição dos 'scripts' é igualmente simples. Os programas são compostos em duas partes, um ficheiro 'desktop' que contém os meta-dados sobre o programa e o programa em si. Esta aproximação foi usada devido à segurança e à simplicidade. O ficheiro 'desktop' oferece meta-dados para os menus e para o tipo de programa. Isto evita que a aplicação-anfitriã tenha de inspeccionar cada um dos programas. Um exemplo desse ficheiro é mostrado abaixo: </para>
<para
>O exemplo acima demonstra as partes principais que o KScript irá procurar. O primeiro item, o "Name", é o nome que irá aparecer ao utilizador na aplicação-anfitriã e o "Comment" será mostrado normalmente como uma dica. O "Type" é o mais importante. Este é usado para seleccionar o motor de 'scripts' adequado para executar o programa. De momento, os tipos disponíveis para o KDE são o  "ShellScript/bash" e o "JavaScript/kjs". O próximo passo é criar o programa em si. Para o exemplo acima, o tipo de programa usado é o "ShellScript/bash". O motor de 'scripts' 'shellscript' oferece algumas coisas para o programador. O primeiro elemento é o ID de DCOP da aplicação anfitriã. Este é passado ao programa como primeiro argumento. Isto significa que, em todo o lado no programa, o valor de "$1" irá devolver o ID de DCOP do anfitrião. É mostrado um exemplo de programa abaixo: </para>

<para
>Este programa é bastante simples e apenas executa um comando, passando o texto do primeiro documento ao resultado do "ls -l"</para>

<para
>Uma das ferramentas mais úteis ao desenvolver programas para as aplicações é a aplicação KDCOP.</para>
<figure id="screenshot-kdcop" float="1">
  <title
>KDCOP - Navegar nas Interface de DCOP no &kdevelop;</title>
  <mediaobject>
    <imageobject
><imagedata fileref="kdcop_browsing.png"/></imageobject>
  </mediaobject>
</figure>

<para
>A ferramenta KDCOP permite aos programadores dos 'scripts' navegarem e depurar as interfaces actuais da aplicação anfitriã. O KDCOP também oferece uma funcionalidade gira que permite aos utilizadores seleccionar um método e arrastar o código actual para o seu editor de texto. Isto simplifica a utilização para as pessoas que não conheçam os métodos de DCOP da linguagem de desenvolvimento. De momento, o KDCOP suporta o KJSEmbed, o Python, e a UNIX Shell para aceder ao DCOP.</para>

<para
>Logo que o 'script' esteja completo, está pronto a ser instalado. Os programadores das aplicações deverão documentar a localização que será percorrida à procura destes programas. No caso do exemplo anterior do Kate, os programa estão localizados em "$KDEDIRS/share/apps/kate/scripts".</para>

<figure id="screenshot-scripts" float="1">
  <title
>'Scripts' do &kdevelop; no Sistema de Ficheiros</title>
  <mediaobject>
    <imageobject
><imagedata fileref="script_location.png"/></imageobject>
  </mediaobject>
</figure>

<para
>O ficheiro 'desktop' do programa, bem como o programa associado, deverão estar na mesma pasta. Para os programadores do 'script', também se recomenda que todos os recursos dos outros programas, como os ficheiros UI ou os ficheiros de dados, deverão estar também na pasta de programas. No exemplo acima, o programa irá aparecer no menu "Ferramentas->'Scripts' do KDE". Uma coisa importante para os programadores de 'scripts' repararem é que não deverão executar operações que possam bloquear durante bastante tempo ou entrar num ciclo de eventos. Isto deve-se ao facto de a versão actual da interface de 'scripts' estar vocacionada para as tarefas automatizadas que executem até terminar. Isto está a ser pensado e extendido para o KDE 4. </para>

</sect1>


</chapter>
