int main(string[] args) {
    Gtk.init(ref args);
    
    var window = new Gtk.Window();
    window.set_default_size(200, 200);
    window.destroy.connect(Gtk.main_quit);
    
    var store = new Gtk.ListStore(1, typeof(string));
    Gtk.TreeIter iter;
    for (int i=0; i<15; i++) {
        store.append(out iter);
        store.set_value(iter, 0, @"Hello $i");
    }
    
    var view = new Gtk.TreeView.with_model(store);
    var renderer = new Gtk.CellRendererText();
    var column = new Gtk.TreeViewColumn.with_attributes("Hi", renderer, "text", 0);
    view.append_column(column);
    
    var box = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
    var sw = new Gtk.ScrolledWindow(null, null);
    sw.add(view);
    box.pack_start(sw, true, true, 0);
    
    var button = new Gtk.Button.with_label("Adjustment loc");
    button.clicked.connect(() => {
        if (view.vadjustment.value == 0.0)
            stdout.printf("At top\n");
        else
            stdout.printf("Not at top\n");
    });
    box.pack_start(button, false, false, 0);
    
    window.add(box);
    window.show_all();
    
    Gtk.main();
    return 0;
}

