summaryrefslogtreecommitdiff
path: root/choices.go
blob: 99b94e6680732051a9fcfd31b9e346b896d0a889 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// 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.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
}