Bridge Tabpane

This commit is contained in:
Zack Guo
2016-11-03 01:41:47 -04:00
parent d29684eba4
commit 8e01231aa1
3 changed files with 98 additions and 82 deletions

View File

@@ -18,12 +18,12 @@ func main() {
}
defer termui.Close()
termui.UseTheme("helloworld")
//termui.UseTheme("helloworld")
header := termui.NewPar("Press q to quit, Press j or k to switch tabs")
header.Height = 1
header.Width = 50
header.HasBorder = false
header.Border = false
header.TextBgColor = termui.ColorBlue
tab1 := extra.NewTab("pierwszy")
@@ -32,7 +32,7 @@ func main() {
par2.Width = 37
par2.Y = 0
par2.BorderLabel = "Keys"
par2.Border.FgColor = termui.ColorYellow
par2.BorderFg = termui.ColorYellow
tab1.AddBlocks(par2)
tab2 := extra.NewTab("drugi")
@@ -57,29 +57,25 @@ func main() {
tabpane := extra.NewTabpane()
tabpane.Y = 1
tabpane.Width = 30
tabpane.HasBorder = true
tabpane.Border = true
tabpane.SetTabs(*tab1, *tab2, *tab3, *tab4, *tab5, *tab6)
evt := termui.EventCh()
termui.Render(header, tabpane)
for {
select {
case e := <-evt:
if e.Type == termui.EventKey {
switch e.Ch {
case 'q':
return
case 'j':
tabpane.SetActiveLeft()
termui.Render(header, tabpane)
case 'k':
tabpane.SetActiveRight()
termui.Render(header, tabpane)
}
}
}
}
termui.Handle("/sys/kbd/q", func(termui.Event) {
termui.StopLoop()
})
termui.Handle("/sys/kbd/j", func(termui.Event) {
tabpane.SetActiveLeft()
termui.Render(header, tabpane)
})
termui.Handle("/sys/kbd/k", func(termui.Event) {
tabpane.SetActiveRight()
termui.Render(header, tabpane)
})
termui.Loop()
}

View File

@@ -17,7 +17,6 @@ import (
"sort"
"strconv"
"strings"
"time"
"github.com/gizak/termui"
"github.com/gizak/termui/extra"
@@ -284,12 +283,12 @@ func main() {
termWidth := 70
termui.UseTheme("helloworld")
//termui.UseTheme("helloworld")
header := termui.NewPar("Press q to quit, Press j or k to switch tabs")
header.Height = 1
header.Width = 50
header.HasBorder = false
header.Border = false
header.TextBgColor = termui.ColorBlue
tabCpu := extra.NewTab("CPU")
@@ -298,7 +297,7 @@ func main() {
tabpane := extra.NewTabpane()
tabpane.Y = 1
tabpane.Width = 30
tabpane.HasBorder = false
tabpane.Border = false
cs, errcs := getCpusStatsMap()
cpusStats := NewCpusStats(cs)
@@ -336,37 +335,35 @@ func main() {
termui.Render(header, tabpane)
evt := termui.EventCh()
for {
select {
case e := <-evt:
if e.Type == termui.EventKey {
switch e.Ch {
case 'q':
return
case 'j':
tabpane.SetActiveLeft()
termui.Render(header, tabpane)
case 'k':
tabpane.SetActiveRight()
termui.Render(header, tabpane)
}
}
case <-time.After(time.Second):
cs, errcs := getCpusStatsMap()
if errcs != nil {
panic(errcs)
}
cpusStats.tick(cs)
cpuTabElems.Update(*cpusStats)
termui.Handle("/sys/kbd/q", func(termui.Event) {
termui.StopLoop()
})
ms, errm := getMemStats()
if errm != nil {
panic(errm)
}
memTabElems.Update(ms)
termui.Handle("/sys/kbd/j", func(termui.Event) {
tabpane.SetActiveLeft()
termui.Render(header, tabpane)
})
termui.Render(header, tabpane)
termui.Handle("/sys/kbd/k", func(termui.Event) {
tabpane.SetActiveRight()
termui.Render(header, tabpane)
})
termui.Handle("/timer/1s", func(e termui.Event) {
cs, errcs := getCpusStatsMap()
if errcs != nil {
panic(errcs)
}
}
cpusStats.tick(cs)
cpuTabElems.Update(*cpusStats)
ms, errm := getMemStats()
if errm != nil {
panic(errm)
}
memTabElems.Update(ms)
termui.Render(header, tabpane)
})
termui.Loop()
}