// -------------------------------------------------------------------------------------------------
// xsArbolOpciones.hpp
// Para generar el archivo objeto
// g++ xsArbolOpciones.cpp -c
// -------------------------------------------------------------------------------------------------

// Incluyo la libreria
#include "xsEasyCpp.hpp"

#ifndef __xsArbolOpciones_hpp__
#define __xsArbolOpciones_hpp__

Clase xsArbolOpciones : Publica xsObjeto
{
	Publica:	    		
		Numerado tipoColumna {Texto, PixBuf, Progreso, Spinner, Palanca};
		Estructura columnaArbolOpciones 
		{
        	tipoColumna tipo; 
        	Entero      posicion; 
    	};
		Estructura renglonArbolOpciones 
		{
        	tipoColumna      tipo; 
        	Entero           posicion; 
			xsCadena         texto;
			xsPixelesBuffer* imagen;
    	};
	    xsArbolOpciones();
	    Vacio crear();
		xsArbolOpciones(xsModeloArbol* modelo);
		Vacio colocarModelo(xsModeloArbol* modelo);
		Vacio agregarColumna(vector<columnaArbolOpciones> datos, 
		                     xsCadena titulo);
		xsArbolOpcionSeleccionada* obtenerSeleccionado();					 
		Vacio insertar(vector<renglonArbolOpciones> datos, Logico enRaiz);
		Vacio insertar(vector<renglonArbolOpciones> datos, xsCadena elementoPadre);
		Vacio eliminarRenglon(xsArbolOpcionSeleccionada* renglon);
		Vacio eliminarRenglonSeleccionado();
		Vacio eliminar(xsCadena elemento);
		Vacio modificarRenglonSeleccionado(vector<renglonArbolOpciones> datos);
		Vacio modificarElemento(vector<renglonArbolOpciones> datos,xsCadena elemento);
		Vacio colocarEncabezadosVisibles(Logico visibles);
        Vacio limpiar();
		Vacio seleccionar(xsCadena elemento);
		Entero longitud(xsCadena elemento);
		Vacio expander();
		Vacio expander(xsCadena elemento);
		Vacio colapsar();
		Vacio colapsar(xsCadena elemento);
};

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