Trabajando con modelos

Existen principalmente dos almacenes donde guardar los datos: GtkListStore y GtkTreeStore, los cuales han de ser empleado según las necesidades.

A través de GtkTreeView se pueden mostrar los datos en forma de tabla, de árbol o mezclados. Para el primer caso se emplea GtkListStore y para los otros dos caso, se emplea GtkTreeStore.

Un modelo es el almacén donde se guardan los datos, los cuales pueden ser visibles o no, y que puede ser interpretada como una tabla o arreglo bidimensional, con filas, columnas y atributos de cada columna, donde cada columna se identifica con un numeral correlativo, partiendo desde el cero.

Preparación del entorno de trabajo

Como cada columna en un modelo puede ser representada con un número, es recomendable definir enumeraciones que faciliten la legibilidad del código, futuras mantenciones y evitando referirse a ellas con valores absolutos.

Ejemplo 1. Una lista enumerada típica

	enum
	{
		COLUMN_STATE,
		COLUMN_COMMENTS,
		COLUMN_MOVE,
		COLUMN_EDITABLE,
		NUM_COLUMNS
	};

En este caso, COLUMN_STATE valdrá 0, COLUMN_COMMENTS valdrá 1 y así sucesivamente. Es posible aprovechar la misma enumeración para saber la cantidad de "columnas" de datos que se manejaran. Con la enumeración dada, NUM_COLUMNS adopta el valor 4. La idea siempre es evitar escribir datos "duros" en el código.

Hay que recordar que en un modelo es posible almacenar más datos de los que realmente estarán visibles en un GtkTreeView. Así por ejemplo, en la enumeración se ha definido COLUMN_EDITABLE como una nueva columna, pero esta simplemente se empleará más adelante para el trabajo de edición de cada celda y no como una columna de trabajo del usuario.