---------------------------
-- GtkListView	
---------------------------

include GtkEngine.e
include std/machine.e

constant win = create(GtkWindow)
	connect(win,"destroy",quit)
	set(win,"title","ListView")
	set(win,"position",GTK_WIN_POS_CENTER)

constant view = create(GtkTreeView)
	set(view,"rules hint",TRUE)
	set(view,"columns autosize")
	set(view,"grid lines",GTK_TREE_VIEW_GRID_LINES_BOTH)
	add(win,view)

constant renderer = create(GtkCellRendererText)

enum NAME=0,ADDR,CITY,AGE

constant store = create(GtkListStore,gSTR,gSTR,gSTR,gINT)
	set(view,"model",store)
	set(view,"insert column with attributes",-1,"Name",renderer,"text",NAME)
	set(view,"insert column with attributes",-1,"Address",renderer,"text",ADDR)
	set(view,"insert column with attributes",-1,"City",renderer,"text",CITY)
    set(view,"insert column with attributes",-1,"Age",renderer,"text",AGE)

constant list = {
	{"Fred Flinstone","301 Cobblestone Way","Bedrock",38},
	{"Wilma Flinstone","301 Cobblestone Way","Bedrock",31},
	{"Barney Rubble","303 Cobblestone Way","Bedrock",42},
	{"Betty Rubble","303 Cobblestone Way","Bedrock",39}
}

object iter = allocate(32)

atom row
for i = 1 to length(list) do
	set(store,"append",iter)
	set(store,"set",iter,NAME,allocate_string(list[i][1]),-1)
	set(store,"set",iter,ADDR,allocate_string(list[i][2]),-1)
	set(store,"set",iter,CITY,allocate_string(list[i][3]),-1)
	set(store,"set",iter,AGE,list[i][4],-1)
end for

show_all(win)
main()

-------------------------------------------------------------------
-- copyright 2010 by Irv Mullins, code released under the LGPL
-------------------------------------------------------------------