1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/modules/bargraph/widget.go
Sean Smith bcf899df72 Further reduce usage of global
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
2019-04-27 22:26:23 -04:00

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)
}