// -------------------------------------------------------------------------------------------------
// xsListaOpciones.hpp
// -------------------------------------------------------------------------------------------------

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

#ifndef __xsListaOpciones_hpp__
#define __xsListaOpciones_hpp__

Clase xsListaOpciones : Publica xsObjeto
{
	Privada:

		Estatica Entero separadores;
        Estatica Entero renglones[];


    // Propiedades Públicas
	Publica:
	    Numerado tipoColumna {Texto, PixBuf, Progreso, Spinner, Palanca};
		
		Estructura renglonListaOpciones 
		{
        	tipoColumna      tipo; 
        	Entero           posicion; 
			xsCadena         texto;
			xsPixelesBuffer* imagen;
    	};

	    xsListaOpciones();

	    Vacio crear();

		xsListaOpciones(xsModeloArbol* modelo);

		Vacio colocarModelo(xsModeloArbol* modelo);

		Vacio visualizarColumna(tipoColumna tipo,
		                        xsCadena    columna,
								Entero      posicion);
		
		xsCadena obtenerSeleccionado(Entero columna);

		Entero   obtenerSeleccionado();

		Vacio eliminarSeleccionado();				

		Vacio eliminar(Entero indice);		

		Vacio insertar(vector<renglonListaOpciones> datos);

		Vacio modificarSeleccionado(Entero columna, xsCadena texto);

		Entero obtenerIndiceSeleccionado();

		Vacio seleccionar(Entero posicion);

		Entero longitud();

		Vacio limpiar();
		
		Estatica Entero procesaSeparadores (xsModeloArbol*   model,
                                            xsArbolIterador* iter,
                                            xsApuntador      data);

		Estatica Vacio colocarNumeroSeparadores(Entero numero);

		Estatica Vacio indicarRenglonesSeparadores(Entero *renglonesSeparadores);
};

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