// -------------------------------------------------------------------------------------------------
// xsventana.hpp
// -------------------------------------------------------------------------------------------------

// Se incluye la librería
#include "xsEasyCpp.hpp"

#ifndef __xsVentana_hpp__
#define __xsVentana_hpp__

Clase xsVentana : Publica xsObjeto
{
	Privada:

		xsFuncionRetorno funcionEjecutar;
		xsObjetoGUI *contenedor;      
		xsGrupoAceleradores* aceleradoresGrupo = NULL;
		
	Publica:

		Estatica Constante Entero BOTON_SI        = -8;
		Estatica Constante Entero BOTON_NO        = -9;
		Estatica Constante Logico EXPANDER        = Verdad;
		Estatica Constante Logico LLENAR          = Verdad;
		Estatica Constante Logico AL_INICIO       = Verdad;
		Estatica Constante Entero RELLENO_DEFAULT = 3;

		xsVentana();

		Vacio crear(Logico conContenedor);

	    xsVentana(Logico conContenedor);
		
		Vacio agregarAlContenedor(xsObjetoGUI* objetoInsertar, 
		                          Logico       expander, 
								  Logico       llenar, 
								  Entero       relleno,
								  Logico       inicio);
		
		Vacio agregarAlContenedor(xsObjetoGUI* objetoInsertar);

		Vacio agregarEnVentana(xsObjetoGUI* objetoInsertar);

		Vacio colocarBordeContenedor(Entero borde);

		Vacio colocarBordeVentana(Entero borde);

		Vacio colocarTitulo(xsCadena titulo);

		Vacio colocarIcono(xsCadena rutaIcono);

		xsCadena obtenerTitulo();

		Vacio colocarDecoracion(Logico decoracion);

		Vacio colocarCerrable(Logico cerrable);

		Vacio destruibleConPadre(Logico destruible);

		Vacio maximizar();

		Vacio desMaximizar();

		Vacio iconificar();

		Vacio desIconificar();

		Vacio cerrar();

		Vacio establecerModal(Logico modal);

		Logico obtenerModal();
		
		Vacio colocarDimensionable(Logico dimensionable);

		Logico obtenerDimensionable();

		xsObjetoGUI* obtenerManejadorContenedor();

		SinSigno Largo colocarFuncionSalida(xsFuncionRetorno	funcion);

		SinSigno Largo colocarFuncionCierre(xsFuncionRetorno	funcion);

		Vacio ejecutarFuncion(xsFuncionRetorno funcion);

		xsGrupoAceleradores* obtenerManejadorAceleradores();

		Vacio establecerRedimensionable(Logico redimensionable);

        Vacio centrar();
		
		Vacio colocarPosicion(xsVentanaPosicion posicion);

		Vacio mover(Entero xPos, 
		            Entero yPos);

	    Estatica Vacio mensajeInformacion(xsCadena tituloVentana,
						 		  	      xsCadena mensaje);

		Estatica Vacio mensajeError(xsCadena tituloVentana,
						  		    xsCadena mensaje);

		Estatica Vacio mensajeAdvertencia(xsCadena tituloVentana,
									      xsCadena mensaje);

		Estatica Entero mensajePregunta(xsCadena tituloVentana,
									    xsCadena pregunta);		
};

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