forked from tslocum/cview
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
41 lines
1.2 KiB
package main |
|
|
|
import ( |
|
"code.rocketnine.space/tslocum/cview" |
|
"github.com/gdamore/tcell/v2" |
|
) |
|
|
|
const inputField = `[green]package[white] main |
|
|
|
[green]import[white] ( |
|
[red]"strconv"[white] |
|
|
|
[red]"github.com/gdamore/tcell/v2"[white] |
|
[red]"code.rocketnine.space/tslocum/cview"[white] |
|
) |
|
|
|
[green]func[white] [yellow]main[white]() { |
|
input := cview.[yellow]NewInputField[white](). |
|
[yellow]SetLabel[white]([red]"Enter a number: "[white]). |
|
[yellow]SetAcceptanceFunc[white]( |
|
cview.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] |
|
}) |
|
cview.[yellow]NewApplication[white](). |
|
[yellow]SetRoot[white](input, true). |
|
[yellow]Run[white]() |
|
}` |
|
|
|
// InputField demonstrates the InputField. |
|
func InputField(nextSlide func()) (title string, info string, content cview.Primitive) { |
|
input := cview.NewInputField() |
|
input.SetLabel("Enter a number: ") |
|
input.SetAcceptanceFunc(cview.InputFieldInteger) |
|
input.SetDoneFunc(func(key tcell.Key) { |
|
nextSlide() |
|
}) |
|
return "InputField", "", Code(input, 30, 1, inputField) |
|
}
|
|
|