// Creates a tree view and the tree store that holds its data func setupTreeView() (*gtk.TreeView, *gtk.TreeStore) { treeView, err := gtk.TreeViewNew() if err != nil { log.Fatal("Unable to create tree view:", err) } treeView.AppendColumn(createImageColumn("Icon", COLUMN_ICON)) treeView.AppendColumn(createTextColumn("Version", COLUMN_TEXT)) // Creating a tree store. This is what holds the data that will be shown on our tree view. treeStore, err := gtk.TreeStoreNew(glib.TYPE_OBJECT, glib.TYPE_STRING) if err != nil { log.Fatal("Unable to create tree store:", err) } treeView.SetModel(treeStore) return treeView, treeStore }
// Creates a tree view and the list store that holds its data func setupTreeView() (*gtk.TreeView, *gtk.ListStore) { treeView, err := gtk.TreeViewNew() if err != nil { log.Fatal("Unable to create tree view:", err) } treeView.AppendColumn(createColumn("Version", COLUMN_VERSION)) treeView.AppendColumn(createColumn("Feature", COLUMN_FEATURE)) // Creating a list store. This is what holds the data that will be shown on our tree view. listStore, err := gtk.ListStoreNew(glib.TYPE_STRING, glib.TYPE_STRING) if err != nil { log.Fatal("Unable to create list store:", err) } treeView.SetModel(listStore) return treeView, listStore }
func main() { gtk.Init(&os.Args) // Declarations Window, _ = gtk.WindowNew(gtk.WINDOW_TOPLEVEL) RootBox, _ = gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 6) TreeView, _ = gtk.TreeViewNew() Entry, _ = gtk.EntryNew() ListStore, _ = gtk.ListStoreNew(glib.TYPE_STRING) // Window properties Window.SetTitle("Products written in Go") Window.Connect("destroy", gtk.MainQuit) // TreeView properties { renderer, _ := gtk.CellRendererTextNew() column, _ := gtk.TreeViewColumnNewWithAttribute("Value", renderer, "text", 0) TreeView.AppendColumn(column) } TreeView.SetModel(ListStore) // TreeView selection properties sel, _ := TreeView.GetSelection() sel.SetMode(gtk.SELECTION_MULTIPLE) sel.Connect("changed", SelectionChanged) // Packing RootBox.PackStart(TreeView, true, true, 0) RootBox.PackStart(Entry, false, false, 0) Window.Add(RootBox) // Populating list // TODO: Add more values to the list AppendMultipleToList("Go", "Docker", "CockroachDB") Window.ShowAll() gtk.Main() }