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
|
// 30 august 2014
package main
import (
"image"
"reflect"
"github.com/andlabs/ui"
)
var w ui.Window
type areaHandler struct {
img *image.RGBA
}
func (a *areaHandler) Paint(rect image.Rectangle) *image.RGBA {
return a.img.SubImage(rect).(*image.RGBA)
}
func (a *areaHandler) Mouse(me ui.MouseEvent) {}
func (a *areaHandler) Key(ke ui.KeyEvent) bool { return false }
func initGUI() {
b := ui.NewButton("Button")
c := ui.NewCheckbox("Checkbox")
tf := ui.NewTextField()
tf.SetText("Text Field")
pf := ui.NewPasswordField()
pf.SetText("Password Field")
l := ui.NewLabel("Label")
t := ui.NewTab()
t.Append("Tab 1", ui.Space())
t.Append("Tab 2", ui.Space())
t.Append("Tab 3", ui.Space())
g := ui.NewGroup("Group", ui.Space())
icons := readIcons()
table := ui.NewTable(reflect.TypeOf(icons[0]))
table.Lock()
d := table.Data().(*[]icon)
*d = icons
table.Unlock()
area := ui.NewArea(200, 200, &areaHandler{tileImage(20)})
stack := ui.NewVerticalStack(
b,
c,
tf,
pf,
l,
t,
g,
table,
area)
stack.SetStretchy(5)
stack.SetStretchy(6)
stack.SetStretchy(7)
stack.SetStretchy(8)
w = ui.NewWindow("Window", 400, 500, stack)
w.OnClosing(func() bool {
ui.Stop()
return true
})
w.Show()
}
func main() {
go ui.Do(initGUI)
err := ui.Go()
if err != nil {
panic(err)
}
}
|