func newBiomeList() *biomeList { bl := &biomeList{ HBox: gtk.NewHBox(false, 0), treeview: gtk.NewTreeView(), lStore: gtk.NewListStore(glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING), addBtn: gtk.NewButton(), delBtn: gtk.NewButton(), upBtn: gtk.NewButton(), downBtn: gtk.NewButton(), } scroll := gtk.NewScrolledWindow(nil, nil) scroll.SetPolicy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) scroll.Add(bl.treeview) bl.PackStart(scroll, true, true, 3) bl.treeview.SetModel(bl.lStore) bl.treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("Color", gtk.NewCellRendererText(), "background", 0)) bl.treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("ID", gtk.NewCellRendererText(), "text", 1)) bl.treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("Snowline", gtk.NewCellRendererText(), "text", 2)) bl.treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("Name", gtk.NewCellRendererText(), "text", 3)) bl.treeview.GetSelection().SetMode(gtk.SELECTION_SINGLE) bl.treeview.Connect("cursor-changed", bl.onCursorChanged) vbox := gtk.NewVBox(false, 0) bl.addBtn.Add(gtk.NewImageFromStock(gtk.STOCK_ADD, gtk.ICON_SIZE_SMALL_TOOLBAR)) bl.delBtn.Add(gtk.NewImageFromStock(gtk.STOCK_DELETE, gtk.ICON_SIZE_SMALL_TOOLBAR)) bl.upBtn.Add(gtk.NewImageFromStock(gtk.STOCK_GO_UP, gtk.ICON_SIZE_SMALL_TOOLBAR)) bl.downBtn.Add(gtk.NewImageFromStock(gtk.STOCK_GO_DOWN, gtk.ICON_SIZE_SMALL_TOOLBAR)) bl.addBtn.Connect("clicked", bl.onAdd) bl.delBtn.Connect("clicked", bl.onDel) bl.upBtn.Connect("clicked", bl.onUp) bl.downBtn.Connect("clicked", bl.onDown) bl.delBtn.SetSensitive(false) bl.upBtn.SetSensitive(false) bl.downBtn.SetSensitive(false) vbox.PackStart(bl.addBtn, false, false, 3) vbox.PackStart(bl.delBtn, false, false, 3) vbox.PackStart(bl.upBtn, false, false, 3) vbox.PackStart(bl.downBtn, false, false, 3) bl.PackStart(vbox, false, false, 0) return bl }
func CreateActivatableDemo(vbox *gtk.VBox) { action_entry := gtk.NewAction("ActionEntry", "Button attached to Action", "", gtk.STOCK_INFO) action_entry.Connect("activate", func() { fmt.Println("Action clicked") }) frame1 := gtk.NewFrame("GtkActivatable interface demonstration") frame1.SetBorderWidth(5) hbox2 := gtk.NewHBox(false, 5) hbox2.SetSizeRequest(400, 50) hbox2.SetBorderWidth(5) button1 := gtk.NewButton() button1.SetSizeRequest(250, 0) button1.SetRelatedAction(action_entry) hbox2.PackStart(button1, false, false, 0) hbox2.PackStart(gtk.NewVSeparator(), false, false, 0) button2 := gtk.NewButtonWithLabel("Hide Action") button2.SetSizeRequest(150, 0) button2.Connect("clicked", func() { action_entry.SetVisible(false) fmt.Println("Hide Action") }) hbox2.PackStart(button2, false, false, 0) button3 := gtk.NewButtonWithLabel("Unhide Action") button3.SetSizeRequest(150, 0) button3.Connect("clicked", func() { action_entry.SetVisible(true) fmt.Println("Show Action") }) hbox2.PackStart(button3, false, false, 0) frame1.Add(hbox2) vbox.PackStart(frame1, false, true, 0) }
func createArrowButton(at gtk.ArrowType, st gtk.ShadowType) *gtk.Button { b := gtk.NewButton() a := gtk.NewArrow(at, st) b.Add(a) b.Show() a.Show() return b }
func (g *GUI) mkSidebar() *gtk.ScrolledWindow { sbVBox := gtk.NewVBox(false, 0) sbVBox.PackStart(labelCustomFont("Tools", "Sans Bold 14"), false, false, 3) g.showbiomes = gtk.NewCheckButtonWithLabel("Show Biomes") g.showbiomes.SetActive(true) g.showbiomes.Connect("toggled", g.showbiomesToggled) sbVBox.PackStart(g.showbiomes, false, false, 3) g.fixSnowIce = gtk.NewCheckButtonWithLabel("Fix Snow/Ice") g.fixSnowIce.SetTooltipText("Add Snow/Ice for Taiga/Ice Plains. Remove Snow/Ice for other biomes.") g.fixSnowIce.Connect("toggled", g.fixSnowIceToggled) sbVBox.PackStart(g.fixSnowIce, false, false, 3) fill := gtk.NewRadioButtonWithLabel(nil, "Fill") fill.SetActive(true) fill.Connect("toggled", g.mkUpdateToolFx(fill, NewFillTool())) draw := gtk.NewRadioButtonWithLabel(fill.GetGroup(), "Draw") drawRadius := gtk.NewSpinButtonWithRange(1, 20, 1) drawHBox := gtk.NewHBox(false, 0) drawHBox.PackStart(draw, true, true, 0) drawHBox.PackStart(gtk.NewLabel("Radius:"), false, false, 3) drawHBox.PackEnd(drawRadius, false, false, 3) draw.Connect("toggled", g.mkUpdateToolFx(draw, NewDrawTool(func() int { return drawRadius.GetValueAsInt() }))) sbVBox.PackStart(fill, false, false, 3) sbVBox.PackStart(drawHBox, false, false, 3) sbVBox.PackStart(gtk.NewHSeparator(), false, false, 3) bioHeaderHBox := gtk.NewHBox(false, 0) bioHeaderHBox.PackStart(labelCustomFont("Biomes", "Sans Bold 14"), true, false, 0) editBiomesBtn := gtk.NewButton() editBiomesBtn.Add(gtk.NewImageFromStock(gtk.STOCK_EDIT, gtk.ICON_SIZE_SMALL_TOOLBAR)) editBiomesBtn.Connect("clicked", g.biomeEditor) editBiomesBtn.SetTooltipText("Configure Biomes") bioHeaderHBox.PackStart(editBiomesBtn, false, false, 0) sbVBox.PackStart(bioHeaderHBox, false, false, 3) g.bioVBoxWrap = gtk.NewVBox(false, 0) g.bioVBox = gtk.NewVBox(false, 0) g.bioVBoxWrap.PackStart(g.bioVBox, false, false, 0) sbVBox.PackStart(g.bioVBoxWrap, false, false, 3) g.updateBiomeInfo() scrolled := gtk.NewScrolledWindow(nil, nil) scrolled.SetPolicy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) scrolled.AddWithViewPort(sbVBox) return scrolled }