Este tutorial irá lidar com o conceito de manipulação de sinais no PHP-GTK
2 o que é importante e fundamental, já que é isto que faz a sua aplicação
"tick"!.
Você deve ter notado que ao final de todos os programas PHP-GTK 2 que nós
escrevemos tem este comando:
O que isso significa é que um laço infinito é iniciado o qual apenas espera
para algo acontecer. Obiviamente você não quer apenas criar, mastras os
widgets e sair. Este laço é o que impede isso de acontecer e é a chave
para a execução da sua aplicação. Resumindo, o comando:
sai deste laço. Nós usamos isto em qualquer lugar que nós realmente
queramos parar a nossa aplicação.
Primeiramente, será útil definir alguns termos que nós vamos usar
feqüentemente.
-
Ação: Isto é alguma coisa que acontece. Por exemplo, o usuário clica em
um botão conta como uma ação.
-
Sinal: Esta é uma notificação gerada quando um evento acontece. Esta é
a maneira para a sua aplicação saber que uma ação recém ocorreu.
-
Callback: Uma função ou metodo que é invocado por outro pedaço de código.
-
Manipulador de Sinal: um callback que é chamado em resposta a um sinal
ser emitido. Aqui é onde você coloca o código que irá manipular o sinal.
-
Eventos: estes são um feixe continuo de impulsos que comunica as mudanças
de baixo nível no ambiente para o sistema de gerenciamento de janelas.
A manipulação de sinais basicamente consiste em conectar um sinal ao seu
manipulador de sinal, e claro, escrever o manipulador de sinal em sí. O
trabalho de gerar um sinal sempre que uma ação ocorrer é feito pelo PHP-GTK
2. Outra coisa para notar é que a geração do sinal não garante que o
susário tenha realizado alguma ação. è possível gerar manualmente um sinal,
e o PHP-GTK 2 gera sinais internamente a toda a hora.
Uma situação comum de um sinal ser gerado internamente e usado é quando
GtkAdjustment emite
"value-changed" para um
GtkProgressBar usa-lo. Então, alguns sinais tem um
manipulador padrão já embutido, o qual será executado se você conectar ou
não manualmente um manipulador de sinal para este sinal.
A maioria das vezes entretanto, se você quer que algo aconteça quando um
sinal é gerado, você precisa criar um manipulador de sinal para ele.