navidys / tvxwidgets

tvxwidgets provides extra widgets for tview
MIT License
146 stars 12 forks source link
golang terminal-interface user-interface

tvxwidgets

PkgGoDev Go codecov Go Report

tvxwidgets provides extra widgets for tview.

Screenshot

Widgets

Example

package main

import (
    "time"

    "github.com/gdamore/tcell/v2"
    "github.com/navidys/tvxwidgets"
    "github.com/rivo/tview"
)

func main() {
    app := tview.NewApplication()
    gauge := tvxwidgets.NewActivityModeGauge()
    gauge.SetTitle("activity mode gauge")
    gauge.SetPgBgColor(tcell.ColorOrange)
    gauge.SetRect(10, 4, 50, 3)
    gauge.SetBorder(true)

    update := func() {
        tick := time.NewTicker(500 * time.Millisecond)
        for {
            select {
            case <-tick.C:
                gauge.Pulse()
                app.Draw()
            }
        }
    }
    go update()

    if err := app.SetRoot(gauge, false).EnableMouse(true).Run(); err != nil {
        panic(err)
    }
}