mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Bargraph moves to common settings "Global" config moves out of wtf and into cfg for the few things that need it We can probably eliminate a global config used across things if we want to
84 lines
1.4 KiB
Go
84 lines
1.4 KiB
Go
package bargraph
|
|
|
|
/**************
|
|
This is a demo bargraph that just populates some random date/val data
|
|
*/
|
|
|
|
import (
|
|
"github.com/rivo/tview"
|
|
"math/rand"
|
|
"time"
|
|
|
|
"github.com/wtfutil/wtf/wtf"
|
|
)
|
|
|
|
var started = false
|
|
var ok = true
|
|
|
|
// Widget define wtf widget to register widget later
|
|
type Widget struct {
|
|
wtf.BarGraph
|
|
|
|
app *tview.Application
|
|
}
|
|
|
|
// NewWidget Make new instance of widget
|
|
func NewWidget(app *tview.Application, settings *Settings) *Widget {
|
|
widget := Widget{
|
|
BarGraph: wtf.NewBarGraph(app, "Sample Bar Graph", settings.common, false),
|
|
|
|
app: app,
|
|
}
|
|
|
|
widget.View.SetWrap(true)
|
|
widget.View.SetWordWrap(true)
|
|
|
|
return &widget
|
|
}
|
|
|
|
/* -------------------- Exported Functions -------------------- */
|
|
|
|
// MakeGraph - Load the dead drop stats
|
|
func MakeGraph(widget *Widget) {
|
|
|
|
//this could come from config
|
|
const lineCount = 8
|
|
var stats [lineCount]wtf.Bar
|
|
|
|
barTime := time.Now()
|
|
for i := 0; i < lineCount; i++ {
|
|
barTime = barTime.Add(time.Duration(time.Minute))
|
|
|
|
bar := wtf.Bar{
|
|
Label: barTime.Format("15:04"),
|
|
Percent: rand.Intn(100-5) + 5,
|
|
}
|
|
|
|
stats[i] = bar
|
|
}
|
|
|
|
widget.BarGraph.BuildBars(stats[:])
|
|
|
|
}
|
|
|
|
// Refresh & update after interval time
|
|
func (widget *Widget) Refresh() {
|
|
|
|
if widget.Disabled() {
|
|
return
|
|
}
|
|
|
|
widget.View.Clear()
|
|
|
|
widget.app.QueueUpdateDraw(func() {
|
|
display(widget)
|
|
})
|
|
|
|
}
|
|
|
|
/* -------------------- Unexported Functions -------------------- */
|
|
|
|
func display(widget *Widget) {
|
|
MakeGraph(widget)
|
|
}
|