Next: B.2.7 Mecanismos de transferencia
Up: AÏDA
Previous: B.2.5 Recursos gráficos
El manejo de los eventos relacionados con el VBD está al cargo del programa que se conoce
con el nombre de motor de AÏDA
. Los eventos generados por el VBD son tratados
de modo asíncrono, es decir, se procesan solamente cuando el motor está activo,
esto es, mientras la función process-pending-events se está ejecutando.
Cada evento se procesa en cinco fases:
- Lectura del evento.
- Búsqueda de la aplicación asociada al evento. Si la ventana
en que se produjo el evento pertenece a AÏDA, la aplicación
se encuentra en el campo appli de la ventana. Si no, sólo
se procesan los eventos modify, kill y keyboard-focus.
- Decodificación del evento. Los eventos concretos recibidos
en la cola de eventos del VBD se decodifican en eventos abstractos.
Por ejemplo, cuando una aplicación selecionable recibe un evento concreto
como down-event con un campo de detalle con valor 0 (botón
izquierdo del ratón pulsado), se transforma en un evento abstracto
select que se interpreta como una petición del usuario para seleccionar
la aplicación.
- Ejecución del comportamiento de instancia. El evento original es restaurado
una vez que ha sido devuelto el control por parte de la función que define
el comportamiento de instancia, con lo cual se evitan posibles perturbaciones
debidas a la manipulación del evento por dicha función.
- Envío de un mensaje a la aplicación. Se envía un mensaje con el mismo nombre
que el código del evento, con el propio evento como argumento.
Una aplicación puede tomar el control de la cola de eventos por medio de llamadas a
las funciones que dan acceso a ella.
Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997