# A Ferramenta de Construção de 'Scripts'

As aplicações do KDE podem ser controladas externamente a partir de outro programa, de uma linha de comandos da consola ou a partir de um 'script', usando o Desktop COmmunication Protocol (DCOP). O KStars tira partido desta funcionalidade para permitir que comportamentos mais complexos possam ser usados em 'scripts' e reproduzidos em qualquer altura. Isto pode ser usado, por exemplo, para criar uma demonstração para uma aula que ilustre um conceito astronómico.

O problemas com os programas do DBus é que escrevê-los é de certa forma uma espécie de programação, o que poderá ser uma tarefa complicada para aqueles que não têm experiência nenhuma em programação. A Ferramenta de Construção de 'Scripts' oferece uma interface GUI para criar programas de DCOP para o KStars, facilitando a criação de programas complexos.

## Introdução ao Construtor de 'Scripts'

Antes de explicar como usar o Construtor de 'Scripts', será dada uma introdução muito breve a todos os componentes GUI; para mais informações, use a função de "O Que É Isto?".

A Ferramenta de Construção de 'Scripts'
Ferramenta de Construção de 'Scripts'

O Construtor de 'Scripts' é apresentado na imagem acima. A área à esquerda é a do 'Script' Actual; ela mostra a lista dos comandos que compõem o 'script' em elaboração. A zona da direita é o Navegador de Funções; ela mostra uma lista com todas as funções de 'scripts' disponíveis. Por baixo do Navegador de Funções, existe um pequeno painel que irá mostrar uma documentação curta sobre a função seleccionada no Navegador de Funções. O painel por baixo do 'Script' Actual é o painel dos Argumentos da Função; quando for seleccionada uma função no 'Script Actual', este painel irá conter os itens para indicar os valores dos argumentos que a função seleccionada necessita.

Ao longo do topo da janela, existe uma fila de botões que lidam com o 'script' como um todo. Da esquerda para a direita, eles são: Novo 'Script', Abrir um 'Script', Gravar 'Script', Gravar o 'Script' Como... e Testar 'Script'. A função destes botões deverá ser óbvia, talvez exceptuando o último botão. Se carregar em Testar 'Script', o 'script' actual tentará ser executado na janela principal do KStars. Você deverá mover a janela do Construtor do 'Script' da frente antes de carregar nisto, para que possa ver os resultados.

No centro da janela, existe uma coluna de botões que operam em funções individuais do 'script'. De cima para baixo, estas são: Adicionar Função, Remover Função, Copiar Função, Subir e Descer. O Adicionar Função adiciona a função seleccionada de momento no Navegador de Funções na zona do 'Script' Actual (você poderá também adicionar uma função se fizer duplo-click nela). O resto dos botões lidam com a função seleccionada no 'Script Actual', removendo-a, duplicando-a ou mudando a sua posição no 'script' actual.

## Utilizar o Construtor de 'Scripts'

Para ilustrar a utilização do Construtor de 'Scripts', iremos apresentar um pequeno exemplo de tutorial onde iremos criar um 'script' que segue a Lua enquanto o relógio anda a uma velocidade acelerada.

Se vamos seguir a Lua, teremos de apontar a visualização para ela em primeiro lugar. A função lookToward é usada para isso. Seleccione esta função no Navegador de Funções, tendo em atenção a documentação que é mostrada no painel por baixo do Navegador. Carregue no botão Adicionar Função para adicionar esta função à área do 'Script Actual'. O painel dos Argumentos da Função irá conter agora uma lista chamada dir, que é uma abreviatura de 'direction' (direcção). Esta a direcção para a qual a visualização deverá ser apontada. A lista contém apenas os pontos cardeais, não a Lua ou outros objectos quaisquer. Você poderá então escrever Lua na opção manualmente, ou carregar no botão Objecto para usar a janela de Procurar um Objecto para seleccionar a Lua da lista de objectos identificados. Repare que, como de costume, o foco num objecto activa automaticamente o modo de seguimento do objecto, por isso não há necessidade de adicionar a função setTracking depois do 'lookToward'.

Agora que já tratámos de apontar para a Lua, queremos fazer o tempo passar a uma velocidade acelerada. Use a função setClockScale para isso. Adicione-a ao 'script' fazendo duplo-click nela no Navegador de Funções. O painel de Argumentos da Função contém um selector para indicar a iteração temporal desejada para o relógio da simulação. Mude essa iteração para 3 horas.

OK, já apontámos para a Lua e acelerámos o relógio. Agora só queremos que o 'script' espere durante vários segundos enquanto a visualização persegue a Lua. Adicione a função waitFor ao 'script' e use o painel de Argumentos da Função para indicar que deverá esperar 20 segundos antes de continuar.

Para terminar, vamos repor a iteração temporal do relógio para o valor normal de 1 segundo. Adicione outra instância do 'setClockScale', e coloque o seu valor a 1 s.

De facto, ainda não terminámos realmente. Temos provavelmente que nos certificar a visualização está a usar coordenadas Equatoriais antes de o 'script' seguir a Lua com uma iteração temporal acelerada. Caso contrário, se a visualização estiver a usar coordenadas Horizontais, ela irá rodar muito depressa, com ângulos grandes, à medida que a Lua nasce e se põe. Isto poderá ser muito confuso, e é evitado se usar a opção de visualização UseAltAz igual a false. Para mudar uma opção de visualização qualquer, use a função changeViewOption. Adicione esta função ao 'script' e analise o painel dos Argumentos da Função. Existe uma lista que contém todas as opções de visualização que poderão ser ajustadas com o 'changeViewOption'. Dado que sabemos que queremos usar a opção UseAltAz, poderemos simplesmente seleccioná-la na lista. Contudo, a lista é muito grande, e não existe nenhuma explicação para que é que serve cada item. Por isso poderá ser mais fácil carregar no botão Árvore de Navegação, o qual irá abrir uma janela que contém uma árvore com todas as opções de visualização, organizadas por tópico. Para além disso, cada item tem uma breve explicação do que é que a opção faz e o tipo de dados do valor da opção. A opção UseAltAz encontra-se sob a categoria Opções do mapa do céu. Basta seleccionar este item e carregar em OK, para que fique seleccionado na lista do painel dos Argumentos da Função. Finalmente, coloque o seu valor a false ou a 0.

Um passo mais: a alteração do 'UseAltAz' no fim do 'script' não nos faz nada bem; precisamos que isto seja alterado antes que algo de mau aconteça. Por isso, certifique-se que esta função é seleccionada na janela do 'Script Actual' e carregue no botão Subir até que seja a primeira função.

Agora que terminámos o 'script', deveremos gravá-lo em disco. Carregue no botão Gravar 'Script'. Isto irá abrir em primeiro lugar uma janela onde poderá indicar um nome para o 'script' e preencher o seu nome como autor. Indique como nome Seguir a Lua e o seu nome como autor, carregando depois em OK. De seguida, você irá ver a janela normal de Gravar um Ficheiro do &kde;. Indique o nome do ficheiro do 'script' e carregue em OK para gravar o código. Repare que, se o seu ficheiro não terminar em .kstars, este sufixo será adicionado automaticamente. Se você for curioso, poderá examinar o ficheiro do 'script' com um editor de texto qualquer.

Agora que temos um 'script' completo, poderemos corrê-lo de várias formas. Numa linha de comandos da consola, você poderá simplesmente executar o 'script', desde que esteja aberta uma instância do KStars em execução. Em alternativa, você poderá executar o programa no KStars com o item Executar 'Script' do menu Ficheiro.