// --------------------------------------------------------------------------------------------
// archivo  : xsbox.h
// objetivo : header de funciones para dibujar marcos y ventanas
// --------------------------------------------------------------------------------------------

#ifndef __xsBox_H__
#define __xsBox_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>

#define LINEA_SENCILLA  VERDAD
#define LINEA_DOBLE     FALSO

#define TITULO_SUP_IZQ  0
#define TITULO_SUP_CEN  1
#define TITULO_SUP_DER  2
#define TITULO_INF_IZQ  3
#define TITULO_INF_CEN  4
#define TITULO_INF_DER  5

#define RELLENO_SUAVE   176
#define RELLENO_MEDIO   177
#define RELLENO_FUERTE  178
#define RELLENO_SOLIDO  219

#define TECLA_ABAJO      80
#define TECLA_DERECHA    77
#define TECLA_ARRIBA     72
#define TECLA_IZQUIERDA  75

#define CON_DELIMITADOR VERDAD
#define SIN_DELIMITADOR FALSO


// Objetivo: Rellena un Área de la pantalla con un caracter específico
// Retorna : Nada
Vacio dibujarArea(Entero columna1,	 // El Renglón donde se dibuja
                  Entero renglon1,   // La Columna Inicial
   	              Entero columna2,	 // La Columna Final
	 	          Entero renglon2,   // Indica si es sencilla o doble
		          Caracter relleno); // Caracter de Relleno


// Objetivo: Dibujar una linea horizontal
// Retorna : Nada
Vacio dibujarLineaHorizontal(Entero renglon,		 // El Renglon donde se dibuja la linea
                             Entero columnaInicial,  // La Columna Inicial
			  	     	     Entero columnaFinal,	 // La Columna Final
						     Logico lineaSencilla,   // Indica si es sencilla o doble
						     Logico conDelimitador); // Indica si tiene delimitador

// Objetivo: dibujar una linea vertical
// Retorna : Nada
Vacio dibujarLineaVertical(Entero columna,			 // La Columna donde se dibuja la linea
                           Entero renglonInicial,    // El Renglón Inicial
						   Entero renglonFinal,	     // El Renglón Final
						   Logico lineaSencilla,     // Indica si es sencilla o doble
						   Logico conDelimitador);   // Indica si tiene delimitador

// Objetivo: dibujar un Marco
// Retorna : Nada
Vacio dibujarMarco(Entero columna1,			// La Columna1 de la Esquina Superior Izquierda
                   Entero renglon1,         // El Renglon1 de la Esquina Superior Izquierda
				   Entero columna2,	        // La Columna2 de la Esquina Inferior Derecha
				   Entero renglon2,         // El Renglon2 de la Esquina Inferior Derecha
				   Logico lineaSencilla,    // Indica si es sencilla o doble
				   Caracter relleno);       // El Caracter de Relleno
				
// Objetivo: dibujarr un Marco con Título
// Retorna : Nada
Vacio dibujarMarcoConTitulo(Entero    columna1,		// La Columna1 de la Esquina Superior Izquierda
                            Entero    renglon1,     // El Renglon1 de la Esquina Superior Izquierda
				            Entero    columna2,	    // La Columna2 de la Esquina Inferior Derecha
				            Entero    renglon2,     // El Renglon2 de la Esquina Inferior Derecha
				            Logico    lineaSencilla,// Indica si es sencilla o doble
						    Caracter  relleno,      // Caracter de Relleno
					        Caracter *titulo,       // Título a desplegar
					        Entero    posicion);    // Inferior/Superior Centrado/Izquierda/Derecha
						  
// Objetivo: Dibujar una Ventana
// Retorna : Nada
Vacio dibujarVentana(Entero    columna1,	   // La Columna1 de la Esquina Superior Izquierda
                     Entero    renglon1,       // El Renglon1 de la Esquina Superior Izquierda
				     Entero    columna2,	   // La Columna2 de la Esquina Inferior Derecha
				     Entero    renglon2,       // El Renglon2 de la Esquina Inferior Derecha
				     Logico    lineaSencilla,  // Indica si es sencilla o doble
				     Caracter  relleno,        // Caracter de Relleno
				     Caracter *titulo,         // Título a desplegar
				     Entero    posicion);      // Inferior/Superior Centrado/Izquierda/Derecha

						 
// fin de la Definición del Archivo
#endif