// hello world var w = new Gtk.Window(0); w.connect("delete-event", function() { println("Done?"); Gtk.exit(1); }); w.setTitle("hello world"); var store = new Gtk.TreeStore("gchararray", "gfloat", "gpointer", "gboolean", "GdkPixbuf"); var iter = new Gtk.TreeIter(); store.append(iter); a = new G.Value("test") store.set(iter, 0, a); store.set(iter, 1, new G.Value(1.0)); store.set(iter, 2, new G.Value({ a: 1, c: 2})); store.set(iter, 3, new G.Value(true) ); var pixbuf = Gdk.Pixbuf.newFromFile("/usr/share/pixmaps/gnome-logo-icon.png"); println("pixbuf = " + pixbuf); store.set(iter, 4, new G.Value(pixbuf) ); // unref pixbuf? var child = new Gtk.TreeIter(); store.append(child,iter); store.set(child, 0, new G.Value("test2")); store.set(child, 1, new G.Value(1.0)); store.set(child, 2, new G.Value({ a: 1, c: 2})); store.set(child, 3, new G.Value(true) ); var view = new Gtk.TreeView(); var renderer = new Gtk.CellRendererText (); var col = new Gtk.TreeViewColumn(); col.setTitle("Name"); col.packStart(renderer, true); col.addAttribute(renderer, "text", 0); view.insertColumn( col, -1); var col = new Gtk.TreeViewColumn(); col.setTitle("Value"); col.packStart(renderer, true); col.addAttribute(renderer, "text", 1); view.insertColumn( col, -1); var col = new Gtk.TreeViewColumn(); col.setTitle("Bool"); col.packStart(renderer, true); col.addAttribute(renderer, "text", 3); view.insertColumn( col, -1); renderer = new Gtk.CellRendererPixbuf (); var col = new Gtk.TreeViewColumn(); col.setTitle("pix"); col.packStart(renderer, true); col.addAttribute(renderer, "pixbuf", 4); view.insertColumn( col, -1); println("adding store?"); view.setModel ( store ); view.connect("row-activated", function(view, path, col) { var model = view.getModel(); var iter = new Gtk.TreeIter(); if (model.getIter(iter, path)) { var name = new G.Value(); var name2 = new G.Value(); model.getValue(iter, 0, name); model.getValue(iter, 1, name2); println ("The row containing the name '"+ name.getString() + "' has been double-clicked. " + name2.getFloat()); model = new Gtk.ListStore(model); model.remove(iter); println ("removed?"); } }); println("add view?"); w.add(view); w.showAll(); Gtk.main();