next up previous contents
Next: B.2.5 Recursos gráficos Up: AÏDA Previous: B.2.3 Aplicaciones

Aplicaciones de AÏDA

En la jerarquía de objetos incorporada en AÏDA se encuentran definidas un elevado conjunto de aplicaciones que se pueden utilizar como componentes de la aplicación que se desea construir. A pesar de que muchas de esas aplicaciones permiten un cierto nivel de adaptación, algunas veces puede ser necesario definir nuevos subtipos a partir de los existentes o cambiar el comportamiento de ciertas instancias ante distintos eventos.

A continuación se muestra una lista de la mayor parte de las aplicaciones predefinidas.

Botones

Menús

En entornos como X11 hay que tener en cuenta que el padre de las ventanas pull down se asigna a la ventana raizgif para permitir que un menú se pueda seguir utilizando aun cuando las dimensiones de la ventana de la aplicación a la que pertenece no sean suficientes para contener el menú desplegado.

Los menús creados con create-aidamenu pueden contener en sus opciones cualquier imagen, mientras que aquellos cuya creación se ha realizado mediante stringmenu sólo muestran strings. Estos últimos tienen un comportamiento más próximo al de los selectores que al de los menús propiamente dichos.

Desplazadores

Mediante las funciones verticalscroller y horizontalscroller se puede encerrar una imagen en una caja con una barra de desplazamiento horizontal o vertical. Si se desean ambas se deberá utilizar scroller. Se dispone de un conjunto de métodos para fijar las características de las barras de desplazamiento y para provocar un desplazamiento de la imagen.

Si se desea disponer de barras de desplazamiento separadas de la imagen, se pueden definir mediante verticalscrollbar y horizontalscrollbar. El aspecto que presentan en pantalla no se corresponde con el look de ningún gestor de ventanas específico como pueda ser Motif o OpenLook, sino que utiliza widgetsgif propios de AÏDA.

Selectores

Permiten seleccionar con el ratón una o varias imágenes de entre un conjunto de ellas. Cuando el conjunto de imágenes seleccionables es muy elevado se suele recurrir a un scroller para hacer más manejable el selector. Las imágenes suelen estar organizadas en forma de fila o columna, aunque la única restricción impuesta es que deben ser imágenes seleccionables. Cualquier imagen puede convertirse en selecccionable si se pasa como argumento a la función selecteableapplication. Un subtipo especial lo componen las aplicaciones creadas mediante greyselectable, que se diferencian de las anteriores en que cuando no están seleccionadas su imagen se muestra en gris. Los selectores se crean pasando el conjunto de imágenes seleccionables a selectorapplication.

Un caso especial de selectores lo constituyen los hiperselectores, que se crean mediante hiperselector y cuya característica distintiva es que permite filtrar el conjunto de stringsgif. El filtrado se consigue mediante los caracteres que el usuario teclea en el editor de líneas que los hiperselectores llevan acoplado en la parte inferior.

Editores

AÏDA incorpora una serie de editores básicos que pueden servir de base para la elaboración de otros más sofisticados. El más completo es el correspondiente a la aplicación medite, ya que se trata de un editor multilínea que admite la edición del texto mediante combinaciones de teclas similares a las utilizadas por el popular Emacs. Dispone de una buena interfaz para el programador ya que proporciona un conjunto bastante amplio de métodos que permiten un control eficaz del texto. Sin embargo presenta una importante limitación: sólo permite utilizar una única fuente y un color.

Si se precisa utilizar un editor que permita cambiar la fuente en porciones del texto, admitiendo una mezcla libre de fuentes de anchura fija y proporcional y en el que se pueda colorear porciones de texto, deberemos recurrir a textedit, un editor que se proporciona como extensión estándar de AÏDA. Otra ventaja que presenta es la de poder insertar imágenes, incluso aplicaciones, entre el texto. Sin embargo, tiene como inconveniente un manejo más complicado y ciertas carencias que obligan, por ejemplo, a definir manualmente el movimiento de scroll horizontal.

Para la edición de una sóla línea se dispone de un subtipo de medite denominado lineedit. Presenta problemas cuando se intenta utilizar con una fuente proporcional, ya que no es capaz de manejar adecuadamente el cursor.

Este problema se soluciona utilizando stringedit, que no es un subtipo de los anteriores. Se caracteriza porque sus instancias ocupan muy poco espacio en memoria y porque permite un filtrado de los caracteres tecleados y maneja perfectamente las fuentes proporcionales. Se utiliza asiduamente cuando es necesario presentar al usuario una línea para introducir algún tipo de dato, como por ejemplo el nombre de un fichero.

Como un subtipo del anterior tenemos formatedit que pemite definir el formato de la entrada, por lo cual es muy útil para el relleno de formularios.

Como un tipo especial de editor podemos considerar a los terminales virtuales, creados mediante llamadas a ttyapplication. Son áreas rectángulares de la pantalla en la que el usuario puede dialogar con AÏDA escribiendo expresiones en LE-LISP.

Los editores definidos en AÏDA son capaces de trabajar con caracteres acentuados. Para ello se debe utilizar una fuente que los incluya en su juego de caracteres y activar el modo acentuado evaluando (aida-manage-accent t). El mecanismo para acentuar interactivamente los caracteres es peculiar, puesto que es preciso teclear el apóstrofe ' antes de la letra que se desea acentuar, al contrario de lo que secede normalmente. Otro mecanismo consiste en redefinir las teclas de función de modo que su pulsación represente un caracter acentuado.

Árboles

Para conseguir objetos móviles se utilizan las imágenes móviles, que se crean mediante moveableapplication y son básicamente imágenes seleccionables que se pueden mover mediante el ratón. Cuando una de estas imágenes es movida por el usuario, una imagen fantasma sigue el movimiento del cursor del ratón hasta que se libera el botón correspondiente.

Un tipo especial de imágenes móviles lo constituyen las imágenes nodo, utilizadas para implementar los nodos en los editores de árboles. Estos últimos se crean mediante treeeditor y permiten editar tanto árboles propiamente dichos como grafos acíclicos.

Si se desea un editor de grafos más general y sofisticado se debe recurrir al grapher, que constituye una de las extensiones estándar de AÏDA.

Cajas de diálogo

Permiten crear ventanas con un cierto número de botones e imágenes. Mediante la simple pulsación de un botón, el usuario debe poder responder a la cuestión que planteó la necesidad de mostrar la caja de diálogo. AÏDA proporciona un conjunto de cajas de diálogo que cubre una amplia variedad de posibilades:

Adicionalmente se dispone de un conjunto completo de funciones y métodos que permiten adaptarlos adecuadamente a las necesidades del programador.

Medidores

El tipo de aplicaciones {meter} permite mostrar dinámicamente valores enteros y en punto flotante mediante una representación gráfica: una aguja en un dial, la posición en una escala rectangular, una pantalla digital estilo calculadora, etc. Las funciones utilizadas para su creación son:

Existe un amplio conjunto de métodos para definir cosas tales como la amplitud de la escala, las graduaciones, la imagen y el cursor a utilizar.

Mediante la función digicounter es posible crear una aplicación con aspecto similar al de las pantallas de las calculadoras de bolsillo que permite mostrar valores enteros modificables mediante clicks del ratón sobre los distintos dígitos.

Protectores

Durante la fase de desarrollo y depuración de programas es aconsejable utilizar protectores para evitar los errores producidos por el manejo de las imágenes en pantalla. Para ello se utiliza la función protector. Cuando una imagen está protegida, los errores son capturados por la función catcherror de LE-LISP, mientras que todos los eventos son pasados a la imagen.


next up previous contents
Next: B.2.5 Recursos gráficos Up: AÏDA Previous: B.2.3 Aplicaciones

Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997