// --------------------------------------------------------------------------------------------
// archivo  : xsmenu.h
// objetivo : header de funciones para dibujar menúes
// --------------------------------------------------------------------------------------------

#ifndef __xsMenu_H__
#define __xsMenu_H__

// Incluyo la librería xsEasy
#include "xsEasyC.h"
#include "xsconio.h"

// Se Incluyen librerías de c
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#include <stdbool.h>

// Constantes
#define BOTON_ACEPTAR                    0
#define BOTON_ACEPTAR_CANCELAR           1
#define BOTON_REINTENTAR_CANCELAR        2
#define BOTON_SI_NO                      3
#define BOTON_SI_NO_CANCELAR             4
#define BOTON_ANULAR_REINTENTAR_IGNORAR  5

// Tipos
typedef char Opcion[30];

// Objetivo: Mostrar un Menú Horizontal de Opciones
// Retorna : La opción Seleccionada o 0 si presiona escape
Entero menuHorizontal(Opcion menu[],     // El Vector con el Menú de Opciones
                      Entero opciones,   // El Número de Opciones del Menú
					  Entero activa,     // La opción activa
					  Entero renglon,    // El Renglón donde aparece el Menu
					  Entero columna);   // La Columna donde inician las opciones

// Objetivo: Mostrar un Menú Vertical de Opciones
// Retorna : La opción Seleccionada						
Entero menuVertical(Opcion menu[],     // El Vector con el Menu de Opciones
                    Entero opciones,   // El Número de Opciones del Menu
		            Entero activa,     // La opción activa
				    Entero renglon,    // El Renglón donde aparece el Menu
				    Entero columna);   // La Columna donde inician las opciones
						  
// Objetivo: Mostrar una Ventana con Mensaje para Captura de datos
// Retorna : El Texto capturado en el parámetro
Vacio ventanaCaptura(Caracter* titulo,      // Título a desplegar
                     Cadena    mensajes[],  // El Vector con los Mensajes
		             Entero    lineas,      // Cuantas Lineas tiene el mensaje
					 Entero    ancho,       // Ancho en Columnas del Mensaje
					 Caracter* texto);      // Texto en donde se almacena captura
				  
// Objetivo: Mostrar una Ventana con Mensaje y presentar botones para que el usuario escoja
// Retorna : La opción seleccionada
Entero ventanaMensaje(Caracter* titulo,      // Título a desplegar
                      Cadena    mensajes[],  // El Vector con los Mensajes
		 			  Entero    lineas,      // Cuantas Lineas tiene el mensaje
					  Entero    ancho,       // Ancho en Columnas del Mensaje
				      Entero    botones);    // Botones a presentar
						 
// fin de la Definición del Archivo
#endif