tview/demos/pages/main.go

36 lines
784 B
Go

// Demo code for the Pages primitive.
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).EnableMouse(true).Run(); err != nil {
panic(err)
}
}