-
-
Notifications
You must be signed in to change notification settings - Fork 575
Pages
rivo edited this page Dec 4, 2020
·
2 revisions
Using Pages to switch between different widgets:
Code:
package main
import (
"fmt"
"github.com/rivo/tview"
)
const pageCount = 5
func main() {
app := tview.NewApplication()
pages := tview.NewPages()
for page := 0; page < pageCount; page++ {
func(page int) {
pages.AddPage(fmt.Sprintf("page-%d", page),
tview.NewModal().
SetText(fmt.Sprintf("This is page %d. Choose where to go next.", page+1)).
AddButtons([]string{"Next", "Quit"}).
SetDoneFunc(func(buttonIndex int, buttonLabel string) {
if buttonIndex == 0 {
pages.SwitchToPage(fmt.Sprintf("page-%d", (page+1)%pageCount))
} else {
app.Stop()
}
}),
false,
page == 0)
}(page)
}
if err := app.SetRoot(pages, true).SetFocus(pages).Run(); err != nil {
panic(err)
}
}
See also: https://pkg.go.dev/github.com/rivo/tview#Pages