Pastey Treeview demo
- Posted by irv Aug 21, 2019
--# TreeView demo -- Note: EuGTK limits the depth to 6 (if I recall), simply -- because infinite recursion makes my head hurt. -- Besides which, clicking too deep into the branches gets -- confusing. -- If you need more, we can try to update EuGTK. include ../GtkEngine.e object store = create(GtkTreeStore,{gSTR,gSTR}) sequence os = { {"Windows","An Operating? System", {"Bill Gates"}}, {"Linux","An Operating! System", {"Linus Torvalds"}}, {"Mac","A Religion", {"Steve Jobs", "The Woz", {"Billy (the kid)", {"Bowser","Fido"}, "Susan (the other kid)", {"Grumpy Cat"} } } } } set(store,"data",os) constant col1 = create(GtkColumn,"title=OS,type=text,markup=1,sort_column_id=1"), col2 = create(GtkColumn,"title=Notes,type=text,markup=2,sort_column_id=2") constant tv = create(GtkTreeView,{ {"model",store}, {"append columns",{col1,col2}}, {"enable tree lines",TRUE}, {"rules hint",TRUE}, {"hover expand",TRUE}, -- {"expand all"}, $}) constant selection = get(tv,"selection") constant win = create(GtkWindow,"size=250x400,border_width=10,position=1,$destroy=Quit"), panel = create(GtkBox,VERTICAL), btn2 = create(GtkToggleButton,"gtk-ok#Expand","Expand"), btn1 = create(GtkButton,"gtk-quit","Quit"), box = create(GtkButtonBox) add(win,panel) pack(panel,tv,TRUE,TRUE,5) add(box,{btn1,btn2}) pack(panel,-box) show_all(win) main() ------------------------ global function Expand() ------------------------ if get(btn2,"active") then set(tv,"expand all") else set(tv,"collapse all") end if return 1 end function


