func rowActivated(model *gtk3.TreeStore, treeView *gtk3.TreeView, path *gtk3.TreePath, column *gtk3.TreeViewColumn, data ...interface{}) { var iter gtk3.TreeIter var call func(gtk3.WidgetLike) gtk3.WidgetLike model.GetIter(&iter, path) style := model.GetValue(&iter, StyleColumn).(int) indices := path.GetIndices() if len(indices) > 1 { call = Demos[indices[0]].Children[indices[1]].CallBack } else { call = Demos[indices[0]].CallBack } if call != nil { if style == pango.PangoStyle.ITALIC { style = pango.PangoStyle.NORMAL } else { style = pango.PangoStyle.ITALIC } model.SetValue(&iter, StyleColumn, style) window := call(treeView.GetTopLevel()) if window != nil { window.Connect("destroy", windowClosed, model, path.Copy()) } } }
func addColumns(treeview *gtk3.TreeView) { var renderer gtk3.CellRendererLike model := treeview.GetModel().(*gtk3.TreeStore) // Column for holiday names renderer = gtk3.NewCellRendererText() renderer.CRenderer().Set(gtk3.P{"xalign": 0.0}) col := gtk3.NewTreeViewColumnWithAttributes("Holiday", renderer, gtk3.A{{"text", HolidayNameCol}}) treeview.AppendColumn(col) col.SetClickable(true) // Alex column renderer = gtk3.NewCellRendererToggle() renderer.CRenderer().Set(gtk3.P{"xalign": 0.0}) renderer.CRenderer().Connect("toggled", itemToggled, model, AlexCol) col = gtk3.NewTreeViewColumnWithAttributes("Alex", renderer, gtk3.A{{"active", AlexCol}, {"visible", VisibleCol}, {"activatable", WorldCol}}) treeview.AppendColumn(col) col.SetSizing(gtk3.GtkTreeViewColumnSizing.FIXED) col.SetFixedWidth(60) col.SetClickable(true) // Havoc column renderer = gtk3.NewCellRendererToggle() renderer.CRenderer().Set(gtk3.P{"xalign": 0.0}) renderer.CRenderer().Connect("toggled", itemToggled, model, HavocCol) col = gtk3.NewTreeViewColumnWithAttributes("Havoc", renderer, gtk3.A{{"active", HavocCol}, {"visible", VisibleCol}}) treeview.AppendColumn(col) col.SetSizing(gtk3.GtkTreeViewColumnSizing.FIXED) col.SetFixedWidth(60) col.SetClickable(true) // Tim column renderer = gtk3.NewCellRendererToggle() renderer.CRenderer().Set(gtk3.P{"xalign": 0.0}) renderer.CRenderer().Connect("toggled", itemToggled, model, TimCol) col = gtk3.NewTreeViewColumnWithAttributes("Tim", renderer, gtk3.A{{"active", TimCol}, {"visible", VisibleCol}, {"activatable", WorldCol}}) treeview.AppendColumn(col) col.SetSizing(gtk3.GtkTreeViewColumnSizing.FIXED) col.SetFixedWidth(60) col.SetClickable(true) // Owen column renderer = gtk3.NewCellRendererToggle() renderer.CRenderer().Set(gtk3.P{"xalign": 0.0}) renderer.CRenderer().Connect("toggled", itemToggled, model, OwenCol) col = gtk3.NewTreeViewColumnWithAttributes("Owen", renderer, gtk3.A{{"active", OwenCol}, {"visible", VisibleCol}}) treeview.AppendColumn(col) col.SetSizing(gtk3.GtkTreeViewColumnSizing.FIXED) col.SetFixedWidth(60) col.SetClickable(true) // Dave column renderer = gtk3.NewCellRendererToggle() renderer.CRenderer().Set(gtk3.P{"xalign": 0.0}) renderer.CRenderer().Connect("toggled", itemToggled, model, DaveCol) col = gtk3.NewTreeViewColumnWithAttributes("Dave", renderer, gtk3.A{{"active", DaveCol}, {"visible", VisibleCol}}) treeview.AppendColumn(col) col.SetSizing(gtk3.GtkTreeViewColumnSizing.FIXED) col.SetFixedWidth(60) col.SetClickable(true) }
func addColumns(treeView *gtk3.TreeView) { model := treeView.GetModel() var renderer gtk3.CellRendererLike // column for fixed toggles renderer = gtk3.NewCellRendererToggle() renderer.CRenderer().Connect("toggled", fixedToggled, model) column := gtk3.NewTreeViewColumnWithAttributes("Fixed?", renderer, gtk3.A{{"active", ColumnFixed}}) // Set this column to a fixed sizing (50 pixels) column.SetSizing(gtk3.GtkTreeViewColumnSizing.FIXED) column.SetFixedWidth(50) treeView.AppendColumn(column) // Column for bug numbers renderer = gtk3.NewCellRendererText() column = gtk3.NewTreeViewColumnWithAttributes("Bug number", renderer, gtk3.A{{"text", ColumnNumber}}) column.SetSortColumnId(ColumnNumber) treeView.AppendColumn(column) // Column for severities renderer = gtk3.NewCellRendererText() column = gtk3.NewTreeViewColumnWithAttributes("Severity", renderer, gtk3.A{{"text", ColumnSeverity}}) column.SetSortColumnId(ColumnSeverity) treeView.AppendColumn(column) // Column for description renderer = gtk3.NewCellRendererText() column = gtk3.NewTreeViewColumnWithAttributes("Description", renderer, gtk3.A{{"text", ColumnDescription}}) column.SetSortColumnId(ColumnDescription) treeView.AppendColumn(column) // Column for spinner renderer = gtk3.NewCellRendererSpinner() column = gtk3.NewTreeViewColumnWithAttributes("Spinning", renderer, gtk3.A{{"pulse", ColumnPulse}, {"active", ColumnActive}}) column.SetSortColumnId(ColumnPulse) treeView.AppendColumn(column) // Column for symbolic icon renderer = gtk3.NewCellRendererPixbuf() renderer.CRenderer().Set(gtk3.P{"follow-state": true}) column = gtk3.NewTreeViewColumnWithAttributes("Symbolic icon", renderer, gtk3.A{{"icon-name", ColumnIcon}, {"sensitive", ColumnSensitive}}) column.SetSortColumnId(ColumnIcon) treeView.AppendColumn(column) }