forked from tslocum/cview
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"code.rocketnine.space/tslocum/cview"
|
|
"github.com/gdamore/tcell/v2"
|
|
)
|
|
|
|
const sliderCode = `[green]package[white] main
|
|
|
|
[green]import[white] (
|
|
[red]"fmt"[white]
|
|
|
|
[red]"github.com/gdamore/tcell/v2"[white]
|
|
[red]"code.rocketnine.space/tslocum/cview"[white]
|
|
)
|
|
|
|
[green]func[white] [yellow]main[white]() {
|
|
slider := cview.[yellow]NewSlider[white]()
|
|
slider.[yellow]SetLabel[white]([red]"Volume: 0%"[white])
|
|
slider.[yellow][yellow]SetChangedFunc[white]([yellow]func[white](key tcell.Key) {
|
|
label := fmt.[yellow]Sprintf[white]("Volume: %3d%%", value)
|
|
slider.[yellow]SetLabel[white](label)
|
|
})
|
|
slider.[yellow][yellow]SetDoneFunc[white]([yellow]func[white](key tcell.Key) {
|
|
[yellow]nextSlide[white]()
|
|
})
|
|
app := cview.[yellow]NewApplication[white]()
|
|
app.[yellow]SetRoot[white](slider, true)
|
|
app.[yellow]Run[white]()
|
|
}`
|
|
|
|
// Slider demonstrates the Slider.
|
|
func Slider(nextSlide func()) (title string, content cview.Primitive) {
|
|
slider := cview.NewSlider()
|
|
slider.SetLabel("Volume: 0%")
|
|
slider.SetChangedFunc(func(value int) {
|
|
slider.SetLabel(fmt.Sprintf("Volume: %3d%%", value))
|
|
})
|
|
slider.SetDoneFunc(func(key tcell.Key) {
|
|
nextSlide()
|
|
})
|
|
return "Slider", Code(slider, 30, 1, sliderCode)
|
|
}
|