mirror of https://github.com/rivo/tview
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
5 years ago
|
// Demo code for the ProgressBar primitive.
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
|
||
|
"github.com/rivo/tview"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
app := tview.NewApplication()
|
||
|
|
||
|
grid := tview.NewGrid().SetColumns(-1, 6, 4, 30, -1).SetRows(-1, 12, 4, 4, -1)
|
||
|
grid.SetBackgroundColor(tview.Styles.PrimitiveBackgroundColor)
|
||
|
|
||
|
verticalProgressBar := tview.NewProgressBar()
|
||
|
verticalProgressBar.SetBorder(true)
|
||
|
verticalProgressBar.SetVertical(true)
|
||
|
|
||
|
horizontalProgressBar := tview.NewProgressBar()
|
||
|
horizontalProgressBar.SetBorder(true)
|
||
|
horizontalProgressBar.SetMax(150)
|
||
|
|
||
|
padding := tview.NewTextView()
|
||
|
grid.AddItem(padding, 0, 0, 1, 5, 0, 0, false)
|
||
|
grid.AddItem(padding, 1, 0, 1, 1, 0, 0, false)
|
||
|
grid.AddItem(verticalProgressBar, 1, 1, 2, 1, 0, 0, false)
|
||
|
grid.AddItem(padding, 1, 2, 1, 1, 0, 0, false)
|
||
|
grid.AddItem(padding, 2, 0, 1, 5, 0, 0, false)
|
||
|
grid.AddItem(horizontalProgressBar, 3, 3, 1, 1, 0, 0, false)
|
||
|
grid.AddItem(padding, 1, 4, 1, 1, 0, 0, false)
|
||
|
grid.AddItem(padding, 4, 0, 1, 5, 0, 0, false)
|
||
|
|
||
|
go func() {
|
||
|
t := time.NewTicker(100 * time.Millisecond)
|
||
|
for range t.C {
|
||
|
if verticalProgressBar.Complete() {
|
||
|
verticalProgressBar.SetProgress(0)
|
||
|
} else {
|
||
|
verticalProgressBar.AddProgress(1)
|
||
|
}
|
||
|
|
||
|
if horizontalProgressBar.Complete() {
|
||
|
horizontalProgressBar.SetProgress(0)
|
||
|
} else {
|
||
|
horizontalProgressBar.AddProgress(1)
|
||
|
}
|
||
|
|
||
|
// Queue draw
|
||
|
app.QueueUpdateDraw(func() {})
|
||
|
}
|
||
|
}()
|
||
|
|
||
|
if err := app.SetRoot(grid, true).Run(); err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|