next up previous contents
Next: Conclusiones Up: ICEeditor según CENTAUR Previous: El formalismo PPML

8.3 El entorno del lenguaje: ICEeditor

Cuando se pulsa el botón Editor de la ventana principal de CENTAUR, aparece un cteview, básicamente una ventana que contiene un editor denominado ctedit y unos elementos opcionales: un menú, una barra de botones y un scroller. Al pulsar el botón Read, aparecerá la ventana de diálogo que se muestra en la figura 8.7. Una vez introducido el nombre de un programa, éste será cargado en el ctview junto con su entorno asociado. El entorno de un lenguaje puede alterar la composición del menú, de la barra de botones y de las barras de desplazamiento, así como el comportamiento del ratón.

  figure5914
Figure 8.7: Ventana de diálogo.

En el caso del Pascal, el entorno se utiliza para lograr convertir el ctedit en la versión CENTAUR de la parte gráfica de ICEeditor.

Se deben incluir las siguientes líneas en el fichero pascal.rdb para indicar la existencia y ubicación de la especificación del entorno:

Centaur.pascal.Env: module
Centaur.pascal.Module.Root: user
Centaur.pascal.Module.Location: centaur/tables/pascal/environment

El fichero de descripción del módulo, llamado module.LM, deberá contener las siguientes líneas:

defmodule centaur/tables/pascal/environment
files ("centaur/tables/pascal/environment/ICEeditor.pascal.ll")

La inicialización del entorno

Para que el ctview adquiera el aspecto deseado al cargar un programa en pascal, se deben definir las dos funciones siguientes:

En la figura 8.8 se muestra el entorno utilizado para la edición del programa newton-2.pascal.

  figure5952
Figure: ICEeditor versión CENTAUR.

Asimismo, en la figura 8.9 se muestran los mensajes que aparecen en el xterm desde el cual se lanzó CENTAUR cuando se cargan los entornos para Pascal y para METAL.

  figure5962
Figure 8.9: Mensajes adicionales en el xterm.

La construcción del entorno

Como se observa en la figura 8.8, el entorno para Pascal está constituido por los siguientes elementos:

El sistema gráfico de CENTAUR no permite mayores lujos a la hora de construir la interfaz gráfica. Con lo que está disponible se ha querido asimilar, en la medida de lo posible, la versión de ICEeditor realizada en AÏDA a las posibilidades gráficas de CENTAUR. A continuación se describe cada uno de los elementos enumerados anteriormente.

La barra de menú

Un ctview incorpora de modo estándar a la barra de menú los siguientes submenús:

Adicionalemte, se incorporan un conjunto de opciones de menú específicas de ICEeditor. Para ello se define la función {pascal}:create-menu, que toma como argumento un ctview, y modifica el menú estándar de éste añadiendo las siguientes opciones:

Para enlazar estas opciones al menú de un ctview, se envía el mensaje add-menu a dicho ctview, utilizando como argumentos el submenú y la posición que éste ocupará en la barra de menú.

La barra de botones

La barra de botones se ha de situar de modo obligatorio junto al borde izquierdo de la ventana. Está formada por los doce botones ya conocidos de la versión AÏDA:

La función {pascal}:create-button-bar, que recibe como argumento un ctview, es la encargada de crear la barra de botones. Antes de enviar el mensaje add-to-column al ctview, es preciso enviar el mensaje show a cada uno de los botones, ya que de lo contrario no serán visibles.

Las funciones {pascal}:create-menu y {pascal}:create-button-bar son invocadas desde {pascal}:set-environment.


next up previous contents
Next: Conclusiones Up: ICEeditor según CENTAUR Previous: El formalismo PPML

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