forked from marcusolsson/tui-go
/
main.go
66 lines (51 loc) · 1.36 KB
/
main.go
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
package main
import (
"github.com/marcusolsson/tui-go"
)
var logo = ` _____ __ ____ ___ ______________
/ ___// //_/\ \/ / | / / ____/_ __/
\__ \/ ,< \ / |/ / __/ / /
___/ / /| | / / /| / /___ / /
/____/_/ |_| /_/_/ |_/_____/ /_/ `
func main() {
user := tui.NewEntry()
user.SetFocused(true)
password := tui.NewEntry()
form := tui.NewGrid(0, 0)
form.AppendRow(tui.NewLabel("User"), tui.NewLabel("Password"))
form.AppendRow(user, password)
status := tui.NewStatusBar("Ready.")
login := tui.NewButton("[Login]")
login.OnActivated(func(b *tui.Button) {
status.SetText("Logged in.")
})
register := tui.NewButton("[Register]")
buttons := tui.NewHBox(
tui.NewSpacer(),
tui.NewPadder(1, 0, login),
tui.NewPadder(1, 0, register),
)
window := tui.NewVBox(
tui.NewPadder(10, 1, tui.NewLabel(logo)),
tui.NewPadder(12, 0, tui.NewLabel("Welcome to Skynet! Login or register.")),
tui.NewPadder(1, 1, form),
buttons,
)
window.SetBorder(true)
wrapper := tui.NewVBox(
tui.NewSpacer(),
window,
tui.NewSpacer(),
)
content := tui.NewHBox(tui.NewSpacer(), wrapper, tui.NewSpacer())
root := tui.NewVBox(
content,
status,
)
tui.DefaultFocusChain.Set(user, password, login, register)
ui := tui.New(root)
ui.SetKeybinding("Esc", func() { ui.Quit() })
if err := ui.Run(); err != nil {
panic(err)
}
}