next up previous contents
Next: B.2.7 Mecanismos de transferencia Up: AÏDA Previous: B.2.5 Recursos gráficos

Eventos

El manejo de los eventos relacionados con el VBD está al cargo del programa que se conoce con el nombre de motor de AÏDAgif. 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:

  1. Lectura del evento.
  2. 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.
  3. 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.
  4. 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.
  5. 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