next up previous contents
Next: 3.6.2 Construcción de la Up: 3.6 Construcción de la Previous: 3.6 Construcción de la

3.6.1 Construcción del menú

El menú constituye uno de los elementos de interacción de los que dispone el usuario para comunicarse con la aplicación. AÏDA proporciona funciones que facilitan las tareas involucradas en la creación de menús, aunque no por ello deja de ser una tarea pesada en cierto grado.

Desde la función encargada de la creación de la imagen se llama al método create-mainmenu, que como su nombre indica, es el encargado de crear el menú que va a formar parte de la imagen de ICEeditor.

El menú de ICEeditor va a contar, desde un punto de vista meramente estructural, de las siguientes partes:

La barra del menú principal

Para crear la barra de menú se utiliza la función create-aidamenubar, a la que se pasan como argumentos los títulos de cada uno de los botones que la componen, esto es, el contenido del campo imagen de cada uno de ellos. En el caso de ICEeditor, se utilizarán cadenas de caracteres para rotular dichos botones, pero AÏDA no plantea restricciones al respecto.

Como nuestra intención es asociar submenús a las opciones de la barra, no definimos ninguna acción específica para los botones que la componen. Posteriormente, una vez se hallan creado los submenús, se utilizará la función aidamenu-attach-submenu para crear el vínculo que asocie cada botón con el menú desplegable correspondiente.

Los menús desplegables

Cada uno de los menús de tipo desplegable que componen el menú principal se define utilizando la función create-aidamenu. Su funcionamiento es similar al de la función utilizada para crear la barra de menú.

En la mayoría de las funciones se utiliza la función messagestring para acceder a la cadena de caracteres del idioma actual contenida en alguno de los mensajes multi-idioma previamente definidos. En algunos casos se utiliza una combinación de iconos y texto para rotular las opciones de menú. En tales casos, se utiliza el constructor de imágenes row para construir la imagen del botón correspondiente.

Si se desean establecer varios niveles de menús desplegables, se debe pasar el valor () al parámetro encargado de asociar acciones a las opciones de menú y utilizar posteriormente la función aidamenu-attach-submenu para enlazar los menús desplegables entre sí.

Si se desea que la selección de una opción dispare una acción, entonces de debe pasar como uno de los parámetros de la función de creación del menú la función que se disparará en el caso de que se lleve a cabo la selección. Hay dos maneras de hacer esto:

  1. Pasar el nombre de una función previamente definida.
  2. Definir in situ una función anónimagif.

En cualquier caso, se debe tener en cuenta que la función utilizada, sea anónima o con nombre, debe tomar como único argumento el menú desde el cual se disparó dicha acción.

En ICEeditor, se ha obtado mayoritariamente por utilizar funciones anónimas desde las cuales se invocan métodos de {ICEeditor}, al que se accede por medio de la jerarquía de componentes. La causa principal de esta elección se debe a la abligatoriedad de pasar el menú como argumento, ya que así evitamos la dependencia del orden de las opciones en el menú.


next up previous contents
Next: 3.6.2 Construcción de la Up: 3.6 Construcción de la Previous: 3.6 Construcción de la

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