737231705f
vendors dependencies in standard `vendor` directory, managed by glide
61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/mattn/go-gtk/gdkpixbuf"
|
|
"github.com/mattn/go-gtk/glib"
|
|
"github.com/mattn/go-gtk/gtk"
|
|
"os"
|
|
"strconv"
|
|
)
|
|
|
|
func main() {
|
|
gtk.Init(&os.Args)
|
|
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
|
|
window.SetTitle("GTK Folder View")
|
|
window.Connect("destroy", gtk.MainQuit)
|
|
|
|
swin := gtk.NewScrolledWindow(nil, nil)
|
|
|
|
store := gtk.NewTreeStore(gdkpixbuf.GetType(), glib.G_TYPE_STRING)
|
|
treeview := gtk.NewTreeView()
|
|
swin.Add(treeview)
|
|
|
|
treeview.SetModel(store.ToTreeModel())
|
|
treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("pixbuf", gtk.NewCellRendererPixbuf(), "pixbuf", 0))
|
|
treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("text", gtk.NewCellRendererText(), "text", 1))
|
|
|
|
for n := 1; n <= 10; n++ {
|
|
var iter1, iter2, iter3 gtk.TreeIter
|
|
store.Append(&iter1, nil)
|
|
store.Set(&iter1, gtk.NewImage().RenderIcon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf, "Folder"+strconv.Itoa(n))
|
|
store.Append(&iter2, &iter1)
|
|
store.Set(&iter2, gtk.NewImage().RenderIcon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf, "SubFolder"+strconv.Itoa(n))
|
|
store.Append(&iter3, &iter2)
|
|
store.Set(&iter3, gtk.NewImage().RenderIcon(gtk.STOCK_FILE, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf, "File"+strconv.Itoa(n))
|
|
}
|
|
|
|
treeview.Connect("row_activated", func() {
|
|
var path *gtk.TreePath
|
|
var column *gtk.TreeViewColumn
|
|
treeview.GetCursor(&path, &column)
|
|
mes := "TreePath is: " + path.String()
|
|
dialog := gtk.NewMessageDialog(
|
|
treeview.GetTopLevelAsWindow(),
|
|
gtk.DIALOG_MODAL,
|
|
gtk.MESSAGE_INFO,
|
|
gtk.BUTTONS_OK,
|
|
mes)
|
|
dialog.SetTitle("TreePath")
|
|
dialog.Response(func() {
|
|
dialog.Destroy()
|
|
})
|
|
dialog.Run()
|
|
})
|
|
|
|
window.Add(swin)
|
|
window.SetSizeRequest(400, 200)
|
|
window.ShowAll()
|
|
|
|
gtk.Main()
|
|
}
|