<sect1 id="tool-scriptbuilder">
<title
>A ferramenta Construtor de scripts</title>
<indexterm
><primary
>Ferramentas</primary>
<secondary
>Construtor de scripts</secondary>
</indexterm>

<para
>KDE applications can be controlled externally from another program, from a console prompt, or from a shell script using the Inter-process communication protocol (<abbrev
>DCOP</abbrev
>). KStars takes advantage of this feature to allow rather complex behaviors to be scripted and played back at any time. This can be used, for example, to create a classroom demo to illustrate an astronomical concept. </para>
<para
>The problem with DBus scripts is, writing them is a bit like programming, and can seem a daunting task to those who do not have programming experience. The Script Builder Tool provides a <abbrev
>GUI</abbrev
> point-and-click interface for constructing KStars DCOP scripts, making it very easy to create complex scripts. </para>

<sect2 id="sb-intro">
<title
>Introdución ao Construtor de scripts</title>

<para
>Antes de explicar como empregar o Construtor de scripts vou fornecer unha breve introdución a todos os componentes da <abbrev
>GUI</abbrev
>; para máis información emprega a función "Que é isto?". </para>

<screenshot>
<screeninfo
>A Ferramenta Construtor de scripts </screeninfo>
<mediaobject>
  <imageobject>
    <imagedata fileref="scriptbuilder.png" format="PNG"/>
  </imageobject>
  <textobject>
    <phrase
>Ferramenta Construtor de scripts</phrase>
  </textobject>
</mediaobject>
</screenshot>

<para
>Na imaxe de abaixo vese o Construtor de scripts. A caixa da esquerda é a <firstterm
>caixa do script actual</firstterm
>; mostra a lista de comandos que constitúen o script no que se está a traballar. A caixa da dereita é o <firstterm
>Navegador de funcións</firstterm
>; mostra a lista de todas as funcións de scrip disponíbeis. Por debaixo do Navegador de funcións hai un paneliño que mostra unha documentación breve acerca da función do script resaltado no Navegador de funcións. O panel por baixo da caixa do script actual é o <firstterm
>panel Argumentos da función</firstterm
>; cando se resalta unha función na caixa Guión actual, este panel contén elementos para especificar os valores de calquera argumento que requira a función resaltada. </para
><para
>Along the top of the window, there is a row of buttons which operate on the script as a whole. From left to right, they are: <guibutton
>New Script</guibutton
>, <guibutton
>Open Script</guibutton
>, <guibutton
>Save Script</guibutton
>, <guibutton
>Save Script As...</guibutton
>, and <guibutton
>Test Script</guibutton
>. The function of these buttons should be obvious, except perhaps the last button. Pressing <guibutton
>Test Script</guibutton
> will attempt to run the current script in the main KStars window. You should move the Script Builder window out of the way before pressing this, so you can see the results. </para
><para
>No centro da xanela hai unha columna de botóns que actúan sobre as funcións individuais do script. Desde arriba para baixo, son: <guibutton
>Engadir función</guibutton
>, <guibutton
>Eliminar función</guibutton
>, <guibutton
>Copiar función</guibutton
>, <guibutton
>Subir</guibutton
> e <guibutton
>Baixar</guibutton
>. <guibutton
>Engadir función</guibutton
> adiciona a función resaltada no Navegador de funcións á caixa Script actual (tamén se pode engadir unha función preméndoa dúas veces). O resto dos botóns actúan sobre a función resaltada na caixa Script actual, eliminándoo, duplicándoo ou movendo a súa posición no script actual. </para>
</sect2>

<sect2 id="sb-using">
<title
>Uso do Construtor de scripts</title>
<para
>Para ilustrar o uso do Construtor de scripts presentamos un pequeno titorial de exemplo no que facemos un script que segue a Lúa mentres o reloxo corre a unha velocidade acelerada. </para
><para
>Se imos seguir a Lúa, temos primeiros que centrar o visor nela. A función <firstterm
>lookToward</firstterm
> é a que se emprega para isto. Resalta esta función no Navegador de funcións e observa a documentación que se mostra no panel que hai por debaixo do Navegador. </para
><para
>Unha vez que nos ocupamos de apuntar para a Lúa, o seguinte que queremos é facer que o tempo transcorra a unha velocidade acelerada. Para isto, emprega a función <firstterm
>setClockScale</firstterm
>. Engádea ao script premendo dúas veces o Navegador de funcións. O panel Argumentos da función contén un selector de pasos de tempo para axustar os pasos de tempo desexados para o reloxo de simulación. Cambia os pasos de tempo a 3 horas. </para
><para
>Ben, apuntamos para a Lúa e aceleramos o reloxio. A seguir simplemente queremos que o script agarde uns segundos mentres o visor segue a Lúa. Engade a función <firstterm
>waitFor</firstterm
> ao script e emprega o panel Argumentos de función para especificar que debe agardar 20 segundos antes de continuar. </para
><para
>Para rematar, volvamos os pasos de tempo do reloxo ao valor normal de 1 segundo. Engade outro setClockScale e dalle o valor de 1 segundo. </para
><para
>Na verdade, ainda non rematamos de todo. Probabelmente nos teñamos que asegurar de que o visor está a empregar as coordenadas ecuatoriais antes de que o script siga a Lúa cun paso de tempo acelerado. Se non, se o visor emprega as coordenadas horizontais, rotará moi rapidamente en ángulos moi grandes segundo a Lúa se ergue e se pon. Isto pode resultar moi confuso e evítase configurando a Opción de Vista <firstterm
>UseAltAz</firstterm
> como <quote
>false</quote
>. Para mudar calquera Opción de Vista emprega a función <firstterm
>changeViewOption</firstterm
>. Engade esta función ao script e examina o panel Argumentos de función. Hai un menú despregábel que contén a listaxe de todas as opcións que se poden axustar con changeViewOption. Dado que sabemos que queremos a opción UseAltAz, poderíamos simplemente seleccionala neste menú. Porén, a lista é bastante longa e carece de explicacións do que é cada elemento. Polo tanto, é mellor premer o botón <guibutton
>Examinar árbore</guibutton
>, que abre unha xanela cunha vista de árbore de todas as funcións disponíbeis organizadas por temas. Alén disto, cada elemento ten unha explicación breve do que fai a opción e o tipo de datos do valor da opción. Atopamos UseAltAz na categoría <guilabel
>Opcións do mapa do ceo</guilabel
>. Chega con resaltar este elemento e premer <guibutton
>Aceptar</guibutton
> e selecciónase no menú despregábel do panel Argumentos de función. Por último, fai que o seu valor sexa <quote
>false</quote
> ou <quote
>0</quote
>. </para
><para
>Un paso máis: mudar UseAltAz ao final do script non nos sirve de nada; ten que cambiar antes de que aconteza nada máis. Por iso, asegúrate de que a función estea resaltada na caixa Script actual e preme o botón <guibutton
>Subir</guibutton
> até que sexa a primeira función. </para
><para
>Unha vez rematado o script deberíamolo gravar no disco. Preme o botón <guibutton
>Gardar script</guibutton
>. Isto abre primeiro unha xanela na que se lle pode dar un nome ao script e escribir o teu nome como autor. Escribe <quote
>Seguindo a Lúa</quote
> como nome e o teu nome como autor e preme <guibutton
>Aceptar</guibutton
>. A seguir, verás o diálogo normal Gardar Ficheiro do &kde;. Especifica un nome de ficheiro para o script e preme <guibutton
>Aceptar</guibutton
> para gravarlo. Lembra que se o nome do ficheiro non remata con <quote
>.kstars</quote
>, este sufixo engádese automaticamente. Se tes curiosidade, podes examinar o ficheiro do script con calquera editor de texto. </para
><para
>Now that we have a completed script, we can run it in a couple of ways. From a console prompt, you can simply execute the script as long as an instance of KStars is currently running. Alternatively, you can execute the script from within KStars using the <guimenuitem
>Run Script</guimenuitem
> item in the <guimenu
>File</guimenu
> menu. </para>
</sect2>
</sect1>

