Rework event system
* Timers should now be done through Go tickers * Reworked event names used in Handle() * Reworked Event type and payloads
This commit is contained in:
@@ -24,7 +24,7 @@ func main() {
|
||||
|
||||
ui.Render(bc)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", "<Insert>", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ package main
|
||||
|
||||
import (
|
||||
"math"
|
||||
"time"
|
||||
|
||||
ui "github.com/gizak/termui"
|
||||
)
|
||||
@@ -22,14 +23,21 @@ func main() {
|
||||
p.TextFgColor = ui.ColorWhite
|
||||
p.BorderLabel = "Text Box"
|
||||
p.BorderFg = ui.ColorCyan
|
||||
p.Handle("/timer/1s", func(e ui.Event) {
|
||||
cnt := e.Data.(ui.EvtTimer)
|
||||
if cnt.Count%2 == 0 {
|
||||
p.TextFgColor = ui.ColorRed
|
||||
} else {
|
||||
p.TextFgColor = ui.ColorWhite
|
||||
|
||||
pTicker := time.NewTicker(time.Second)
|
||||
pTickerCount := 1
|
||||
go func() {
|
||||
for {
|
||||
if pTickerCount%2 == 0 {
|
||||
p.TextFgColor = ui.ColorRed
|
||||
} else {
|
||||
p.TextFgColor = ui.ColorWhite
|
||||
}
|
||||
|
||||
pTickerCount++
|
||||
<-pTicker.C
|
||||
}
|
||||
})
|
||||
}()
|
||||
|
||||
listData := []string{"[0] gizak/termui", "[1] editbox.go", "[2] interrupt.go", "[3] keyboard.go", "[4] output.go", "[5] random_out.go", "[6] dashboard.go", "[7] nsf/termbox-go"}
|
||||
|
||||
@@ -136,14 +144,20 @@ func main() {
|
||||
ui.Render(p, l, g, sls, lc, bc, lc2, p2)
|
||||
}
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
ui.Handle("/timer/1s", func(e ui.Event) {
|
||||
t := e.Data.(ui.EvtTimer)
|
||||
draw(int(t.Count))
|
||||
})
|
||||
drawTicker := time.NewTicker(time.Second)
|
||||
drawTickerCount := 1
|
||||
go func() {
|
||||
for {
|
||||
draw(drawTickerCount)
|
||||
|
||||
drawTickerCount++
|
||||
<-drawTicker.C
|
||||
}
|
||||
}()
|
||||
|
||||
ui.Loop()
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ func main() {
|
||||
|
||||
ui.Render(g0, g1, g2, g3, g4)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ package main
|
||||
|
||||
import (
|
||||
"math"
|
||||
"time"
|
||||
|
||||
ui "github.com/gizak/termui"
|
||||
)
|
||||
@@ -91,29 +92,33 @@ func main() {
|
||||
|
||||
ui.Render(ui.Body)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
ui.Handle("/timer/1s", func(e ui.Event) {
|
||||
t := e.Data.(ui.EvtTimer)
|
||||
i := t.Count
|
||||
if i > 103 {
|
||||
ui.StopLoop()
|
||||
return
|
||||
drawTicker := time.NewTicker(time.Second)
|
||||
drawTickerCount := 1
|
||||
go func() {
|
||||
for {
|
||||
if drawTickerCount > 103 {
|
||||
ui.StopLoop()
|
||||
return
|
||||
}
|
||||
for _, g := range gs {
|
||||
g.Percent = (g.Percent + 3) % 100
|
||||
}
|
||||
sp.Lines[0].Data = spdata[:100+drawTickerCount]
|
||||
lc.Data["default"] = sinps[2*drawTickerCount:]
|
||||
ui.Render(ui.Body)
|
||||
|
||||
drawTickerCount++
|
||||
<-drawTicker.C
|
||||
}
|
||||
}()
|
||||
|
||||
for _, g := range gs {
|
||||
g.Percent = (g.Percent + 3) % 100
|
||||
}
|
||||
|
||||
sp.Lines[0].Data = spdata[:100+i]
|
||||
lc.Data["default"] = sinps[2*i:]
|
||||
ui.Render(ui.Body)
|
||||
})
|
||||
|
||||
ui.Handle("/sys/wnd/resize", func(e ui.Event) {
|
||||
ui.Body.Width = ui.TermWidth()
|
||||
ui.Handle("<Resize>", func(e ui.Event) {
|
||||
payload := e.Payload.(ui.Resize)
|
||||
ui.Body.Width = payload.Width
|
||||
ui.Body.Align()
|
||||
ui.Clear()
|
||||
ui.Render(ui.Body)
|
||||
|
||||
@@ -63,7 +63,7 @@ func main() {
|
||||
|
||||
ui.Render(lc0, lc1, lc2)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ func main() {
|
||||
|
||||
ui.Render(ls)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ func main() {
|
||||
|
||||
ui.Render(bc)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ func main() {
|
||||
|
||||
ui.Render(par0, par1, par2, par3)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -37,14 +37,21 @@ func main() {
|
||||
return fmt.Sprintf("%.02f", v)
|
||||
}
|
||||
|
||||
ui.Handle("/timer/1s", func(e ui.Event) {
|
||||
if run {
|
||||
pc.Data, pc.Offset = randomDataAndOffset()
|
||||
ui.Render(pc)
|
||||
}
|
||||
})
|
||||
drawTicker := time.NewTicker(time.Second)
|
||||
drawTickerCount := 1
|
||||
go func() {
|
||||
for {
|
||||
if run {
|
||||
pc.Data, pc.Offset = randomDataAndOffset()
|
||||
ui.Render(pc)
|
||||
}
|
||||
|
||||
ui.Handle("/sys/kbd/s", func(ui.Event) {
|
||||
drawTickerCount++
|
||||
<-drawTicker.C
|
||||
}
|
||||
}()
|
||||
|
||||
ui.Handle("s", func(ui.Event) {
|
||||
run = !run
|
||||
if run {
|
||||
pc.BorderLabel = "Pie Chart"
|
||||
@@ -54,7 +61,7 @@ func main() {
|
||||
ui.Render(pc)
|
||||
})
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ func main() {
|
||||
|
||||
ui.Render(spls0, spls1, spls2)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ func main() {
|
||||
|
||||
ui.Render(table2)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
@@ -58,17 +58,17 @@ func main() {
|
||||
|
||||
ui.Render(header, tabpane)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
ui.Handle("/sys/kbd/j", func(ui.Event) {
|
||||
ui.Handle("j", func(ui.Event) {
|
||||
tabpane.SetActiveLeft()
|
||||
ui.Clear()
|
||||
ui.Render(header, tabpane)
|
||||
})
|
||||
|
||||
ui.Handle("/sys/kbd/k", func(ui.Event) {
|
||||
ui.Handle("k", func(ui.Event) {
|
||||
tabpane.SetActiveRight()
|
||||
ui.Clear()
|
||||
ui.Render(header, tabpane)
|
||||
|
||||
@@ -8,6 +8,7 @@ package main
|
||||
|
||||
import (
|
||||
"math"
|
||||
"time"
|
||||
|
||||
ui "github.com/gizak/termui"
|
||||
)
|
||||
@@ -134,14 +135,20 @@ func main() {
|
||||
|
||||
ui.Render(p, list, g, sp, lc, bc, lc1, p1)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
ui.Handle("/timer/1s", func(e ui.Event) {
|
||||
t := e.Data.(ui.EvtTimer)
|
||||
draw(int(t.Count))
|
||||
})
|
||||
drawTicker := time.NewTicker(time.Second)
|
||||
drawTickerCount := 1
|
||||
go func() {
|
||||
for {
|
||||
draw(drawTickerCount)
|
||||
|
||||
drawTickerCount++
|
||||
<-drawTicker.C
|
||||
}
|
||||
}()
|
||||
|
||||
ui.Loop()
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import (
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
ui "github.com/gizak/termui"
|
||||
"github.com/gizak/termui/extra"
|
||||
@@ -330,35 +331,42 @@ func main() {
|
||||
|
||||
ui.Render(header, tabpane)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
ui.Handle("/sys/kbd/j", func(ui.Event) {
|
||||
ui.Handle("j", func(ui.Event) {
|
||||
tabpane.SetActiveLeft()
|
||||
ui.Render(header, tabpane)
|
||||
})
|
||||
|
||||
ui.Handle("/sys/kbd/k", func(ui.Event) {
|
||||
ui.Handle("k", func(ui.Event) {
|
||||
tabpane.SetActiveRight()
|
||||
ui.Render(header, tabpane)
|
||||
})
|
||||
|
||||
ui.Handle("/timer/1s", func(e ui.Event) {
|
||||
cs, errcs := getCpusStatsMap()
|
||||
if errcs != nil {
|
||||
panic(errcs)
|
||||
}
|
||||
cpusStats.tick(cs)
|
||||
cpuTabElems.Update(*cpusStats)
|
||||
drawTicker := time.NewTicker(time.Second)
|
||||
drawTickerCount := 1
|
||||
go func() {
|
||||
for {
|
||||
cs, errcs := getCpusStatsMap()
|
||||
if errcs != nil {
|
||||
panic(errcs)
|
||||
}
|
||||
cpusStats.tick(cs)
|
||||
cpuTabElems.Update(*cpusStats)
|
||||
|
||||
ms, errm := getMemStats()
|
||||
if errm != nil {
|
||||
panic(errm)
|
||||
ms, errm := getMemStats()
|
||||
if errm != nil {
|
||||
panic(errm)
|
||||
}
|
||||
memTabElems.Update(ms)
|
||||
ui.Render(header, tabpane)
|
||||
|
||||
drawTickerCount++
|
||||
<-drawTicker.C
|
||||
}
|
||||
memTabElems.Update(ms)
|
||||
ui.Render(header, tabpane)
|
||||
})
|
||||
}()
|
||||
|
||||
ui.Loop()
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ func main() {
|
||||
|
||||
ui.Render(p)
|
||||
|
||||
ui.Handle("/sys/kbd/q", func(ui.Event) {
|
||||
ui.Handle("q", func(ui.Event) {
|
||||
ui.StopLoop()
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user