...

Source file src/github.com/rivo/tview/demos/pages/main.go

Documentation: github.com/rivo/tview/demos/pages

     1  // Demo code for the Pages primitive.
     2  package main
     3  
     4  import (
     5  	"fmt"
     6  
     7  	"github.com/rivo/tview"
     8  )
     9  
    10  const pageCount = 5
    11  
    12  func main() {
    13  	app := tview.NewApplication()
    14  	pages := tview.NewPages()
    15  	for page := 0; page < pageCount; page++ {
    16  		func(page int) {
    17  			pages.AddPage(fmt.Sprintf("page-%d", page),
    18  				tview.NewModal().
    19  					SetText(fmt.Sprintf("This is page %d. Choose where to go next.", page+1)).
    20  					AddButtons([]string{"Next", "Quit"}).
    21  					SetDoneFunc(func(buttonIndex int, buttonLabel string) {
    22  						if buttonIndex == 0 {
    23  							pages.SwitchToPage(fmt.Sprintf("page-%d", (page+1)%pageCount))
    24  						} else {
    25  							app.Stop()
    26  						}
    27  					}),
    28  				false,
    29  				page == 0)
    30  		}(page)
    31  	}
    32  	if err := app.SetRoot(pages, true).EnableMouse(true).Run(); err != nil {
    33  		panic(err)
    34  	}
    35  }
    36  

View as plain text