gadgetwindow/choices.go

91 lines
2.2 KiB
Go
Raw Normal View History

// This creates a simple hello world window
package main
import (
"go.wit.com/gui"
"go.wit.com/lib/gadgets"
"go.wit.com/log"
)
type choices struct {
group *gui.Node // the group
grid *gui.Node // the grid
hello *gui.Node // the hello button
computers *gui.Node
colors *gui.Node
checkers *gui.Node
socks *gadgets.OneLiner
animal *gadgets.BasicCombobox
place *gadgets.BasicEntry
}
// This initializes the first window and some widgets
func newChoices(parent *gui.Node) *choices {
var c *choices
c = new(choices)
c.group = parent.NewGroup("choices")
c.grid = c.group.NewGrid("gridiron", 2, 1)
c.grid.NewButton("hello", func() {
log.Info("world")
})
c.grid.NewButton("toggle basic window", func() {
basicWindow.Toggle()
})
c.grid.NewLabel("a label")
c.computers = c.grid.NewDropdown().SetProgName("COMPUTERS")
c.computers.AddText("Atari 500")
c.computers.AddText("Beagleboard")
c.computers.AddText("Unmatched Rev B")
c.computers.SetText("Beagleboard")
c.computers.Custom = func() {
log.Info("You changed the computer to:", c.computers.String())
}
c.colors = c.grid.NewCombobox().SetProgName("COLORS")
c.colors.AddText("Cyan")
c.colors.AddText("Magenta")
c.colors.AddText("Yellow")
c.colors.SetText("orange")
c.checkers = c.grid.NewCheckbox("Checkers").SetProgName("CHECKERS")
c.checkers.Custom = func() {
log.Info("Checkers is", c.checkers.Bool())
}
c.socks = gadgets.NewOneLiner(c.grid, "two for one")
c.socks.SetValue("socks")
c.animal = gadgets.NewBasicCombobox(c.grid, "animals")
c.animal.AddText("otter")
c.animal.AddText("honey badger")
c.animal.AddText("polar bear")
c.place = gadgets.NewBasicEntry(c.grid, "common favorite place")
c.place.Custom = func() {
log.Info("now set to:", c.place.String())
if c.place == section1.place {
section2.place.SetText(c.place.String())
}
if c.place == section2.place {
section1.place.SetText(c.place.String())
}
}
c.place.SetText("coffee shop")
c.grid.NewButton("enable animals", func() {
c.animal.Enable()
})
c.grid.NewButton("disable animals", func() {
c.animal.Disable()
})
return c
}
func (c *choices) SetSocks(s string) *choices {
c.socks.SetValue(s)
return c
}