2017-12-15 14:29:21 +00:00
|
|
|
package main
|
|
|
|
|
2017-12-15 22:03:01 +00:00
|
|
|
import (
|
|
|
|
"github.com/gdamore/tcell"
|
|
|
|
"github.com/rivo/tview"
|
|
|
|
)
|
2017-12-15 14:29:21 +00:00
|
|
|
|
|
|
|
func main() {
|
2017-12-15 22:03:01 +00:00
|
|
|
app := tview.NewApplication()
|
2017-12-16 21:48:26 +00:00
|
|
|
var list *tview.List
|
2017-12-15 22:03:01 +00:00
|
|
|
|
2017-12-16 21:48:26 +00:00
|
|
|
frame := tview.NewFrame(tview.NewForm().
|
2017-12-15 22:03:01 +00:00
|
|
|
AddItem("First name", "", 20, nil).
|
|
|
|
AddItem("Last name", "", 20, nil).
|
|
|
|
AddItem("Age", "", 4, nil).
|
|
|
|
AddButton("Save", func() { app.Stop() }).
|
2017-12-16 21:48:26 +00:00
|
|
|
AddButton("Cancel", nil).
|
|
|
|
AddButton("Go to list", func() { app.SetFocus(list) })).
|
|
|
|
AddText("Customer details", true, tview.AlignLeft, tcell.ColorRed).
|
|
|
|
AddText("Customer details", false, tview.AlignCenter, tcell.ColorRed)
|
|
|
|
frame.SetBorder(true)
|
|
|
|
|
|
|
|
list = tview.NewList().
|
|
|
|
AddItem("Edit a form", "You can do whatever you want", 'e').
|
|
|
|
AddItem("Quit the program", "Do it!", 0).
|
|
|
|
SetSelectedFunc(func(index int, mainText, secondaryText string, shortcut rune) {
|
|
|
|
if shortcut == 'e' {
|
|
|
|
app.SetFocus(frame)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
list.SetBorder(true)
|
|
|
|
|
|
|
|
flex := tview.NewFlex(tview.FlexColumn, []tview.Primitive{
|
|
|
|
frame,
|
2017-12-15 14:29:21 +00:00
|
|
|
tview.NewFlex(tview.FlexRow, []tview.Primitive{
|
2017-12-16 21:48:26 +00:00
|
|
|
list,
|
2017-12-15 14:29:21 +00:00
|
|
|
tview.NewBox().SetBorder(true).SetTitle("Third"),
|
|
|
|
}),
|
|
|
|
tview.NewBox().SetBorder(true).SetTitle("Fourth"),
|
|
|
|
})
|
2017-12-16 21:48:26 +00:00
|
|
|
flex.AddItem(tview.NewBox().SetBorder(true).SetTitle("Fifth"), 20)
|
2017-12-15 14:29:21 +00:00
|
|
|
|
|
|
|
inputField := tview.NewInputField().
|
|
|
|
SetLabel("Type something: ").
|
|
|
|
SetFieldLength(10).
|
|
|
|
SetAcceptanceFunc(tview.InputFieldFloat)
|
|
|
|
inputField.SetBorder(true).SetTitle("Type!")
|
|
|
|
|
2017-12-16 21:48:26 +00:00
|
|
|
final := tview.NewFlex(tview.FlexRow, []tview.Primitive{flex})
|
2017-12-15 14:29:21 +00:00
|
|
|
final.AddItem(inputField, 3)
|
|
|
|
|
2017-12-16 21:48:26 +00:00
|
|
|
app.SetRoot(final, true).SetFocus(list)
|
2017-12-15 14:29:21 +00:00
|
|
|
|
|
|
|
if err := app.Run(); err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
}
|