forked from rivo/tview
/
inputfield.go
40 lines (34 loc) · 1.18 KB
/
inputfield.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
package main
import (
"github.com/gdamore/tcell/v2"
"github.com/MapleLeafMakers/tview"
)
const inputField = `[green]package[white] main
[green]import[white] (
[red]"strconv"[white]
[red]"github.com/gdamore/tcell/v2"[white]
[red]"github.com/rivo/tview"[white]
)
[green]func[white] [yellow]main[white]() {
input := tview.[yellow]NewInputField[white]().
[yellow]SetLabel[white]([red]"Enter a number: "[white]).
[yellow]SetAcceptanceFunc[white](
tview.InputFieldInteger,
).[yellow]SetDoneFunc[white]([yellow]func[white](key tcell.Key) {
text := input.[yellow]GetText[white]()
n, _ := strconv.[yellow]Atoi[white](text)
[blue]// We have a number.[white]
})
tview.[yellow]NewApplication[white]().
[yellow]SetRoot[white](input, true).
[yellow]Run[white]()
}`
// InputField demonstrates the InputField.
func InputField(nextSlide func()) (title string, content tview.Primitive) {
input := tview.NewInputField().
SetLabel("Enter a number: ").
SetAcceptanceFunc(tview.InputFieldInteger).SetDoneFunc(func(key tcell.Key) {
nextSlide()
})
return "Input", Code(input, 30, 1, inputField)
}