/*--------------------------------------------------------------------
 * FICHERO:  MenVert.c
 * OBJETIVO: Definir la funcin Men_Vertical()
 * AUTOR:    Pedro Reina
 * FECHA:    L.7.8.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Menu.h"

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Men_Vertical()
 * OBJETIVO: Presentar al usuario un men vertical para que
 *           pueda elegir entre varias opciones, mediante las
 *           teclas del cursor o mediante un atajo (tecla
 *           caliente)
 * ENTRADAS: Las coordenadas de la esquina superior izquierda e
 *           inferior derecha de la zona asignada al men, un 
 *           vector de cadenas, terminado en NIL, en el que se
 *           sealan los atajos y la opcin que hay que resaltar
 *           en primer lugar
 * SALIDAS:  Un nmero indicando la opcin elegida, empezando a
 *           contar en 1, o 0 si no se elige ninguna o no hay
 *           memoria
 * EJEMPLO:  Men_Vertical (1,10,8,20,{">Fichero","A>yuda",NIL},2)
 * ALGORITMO:
 *      Crear un men vertical de vectores
 *      Ejecutarlo
 *      Destruirlo
 *------------------------------------------------------------------*/
entero Men_Vertical (Fil1, Col1, Fil2, Col2, ListaOpcion, Opcion)
octeto Fil1, Col1, Fil2, Col2;
cadena ListaOpcion[];
entero Opcion;
  {
  menu   Menu;
  cadena Mensaje = "Elige una de las opciones";
                  
  if ( Menu = Men_Crea (MEN_VERTICAL, Fil1, Col1, Fil2, Col2, 
                        Men_TotalOpcion(ListaOpcion), MEN_VECTOR,
                        (memoria) ListaOpcion) )
    { 
    if ( Men_Cabe(Menu) ) 
      { Opcion = Men_EjecutaVerticalFijo (Menu, Opcion, Mensaje); }
    else
      { Opcion = Men_EjecutaVerticalMovil (Menu, Opcion, Mensaje); }
    Men_Destruye (Menu);
    }
    
  else  { Opcion = 0; }
  
  return ( Opcion );  
  }