diff options
author | Matthieu <matthieu.cneude@gmail.com> | 2019-02-02 15:43:39 +0100 |
---|---|---|
committer | Matthieu <matthieu.cneude@gmail.com> | 2019-02-02 15:43:39 +0100 |
commit | af316d5ad81a87cc5bb1a6b5269955f0fb73180e (patch) | |
tree | 46d2e0a89b375d15ae10c780e3e43cb9340d81e4 | |
parent | dad857b9ebfadd8363cbd7a2aa4eeb2e4c34514b (diff) |
Try the new termui... I'm not convincedfeature/new-termui
-rw-r--r-- | Gopkg.lock | 37 | ||||
-rw-r--r-- | Gopkg.toml | 6 | ||||
-rwxr-xr-x | cmd/devdash/devdash | bin | 13812444 -> 13606397 bytes | |||
-rw-r--r-- | internal/plateform/termui.go | 169 |
4 files changed, 103 insertions, 109 deletions
@@ -10,6 +10,14 @@ version = "v0.27.0" [[projects]] + branch = "master" + digest = "1:6ba6d8f52a0ea509e0073b27b13858a7f396382f6eab5f97f7570eb49f3ba165" + name = "github.com/cjbassi/drawille-go" + packages = ["."] + pruneopts = "UT" + revision = "27dc511fe6fd820bf8537298e1d447b450210b28" + +[[projects]] digest = "1:abeb38ade3f32a92943e5be54f55ed6d6e3b6602761d74b4aab4c9dd45c18abd" name = "github.com/fsnotify/fsnotify" packages = ["."] @@ -18,12 +26,15 @@ version = "v1.4.7" [[projects]] - digest = "1:0b98586be892040d424cdd4fb7e047f71ddfcdbfca59f975a4b4eb14b56ae33c" + branch = "master" + digest = "1:eabe64d852d1302e2f5cc58f6a322e3ebc7552cd02a808102ae377005f102bd1" name = "github.com/gizak/termui" - packages = ["."] + packages = [ + ".", + "widgets", + ] pruneopts = "UT" - revision = "bf53c5cbea3f372f745e1d8e4660e29f73d41517" - version = "v2.3.0" + revision = "5ece2b7178ff236574c7e88078b42150f724ff70" [[projects]] digest = "1:97df918963298c287643883209a2c3f642e6593379f97ab400c2a2e219ab647d" @@ -61,14 +72,6 @@ version = "v1.8.0" [[projects]] - branch = "master" - digest = "1:2eeeebccad4f052e6037527e86b8114c6bfd184a97f84d4449a5ea6ad202c216" - name = "github.com/maruel/panicparse" - packages = ["stack"] - pruneopts = "UT" - revision = "f20d4c4d746f810c9110e21928d4135e1f2a3efa" - -[[projects]] digest = "1:cdb899c199f907ac9fb50495ec71212c95cb5b0e0a8ee0800da0238036091033" name = "github.com/mattn/go-runewidth" packages = ["."] @@ -169,14 +172,6 @@ [[projects]] branch = "master" - digest = "1:9f3a60def1a1eb5ac184e71dde43c6f99606f54d106db7c95f8b8338629a777b" - name = "github.com/tatsushid/go-fastping" - packages = ["."] - pruneopts = "UT" - revision = "d7bb493dee3e090e2ffb6914adddf17c1e7c026c" - -[[projects]] - branch = "master" digest = "1:2092dc9eaa13ef38d2bedabf5b580c7d45a98f9ec8c508e18f1d9c389f075f83" name = "golang.org/x/net" packages = [ @@ -275,10 +270,10 @@ analyzer-version = 1 input-imports = [ "github.com/gizak/termui", + "github.com/gizak/termui/widgets", "github.com/pkg/errors", "github.com/sparrc/go-ping", "github.com/spf13/viper", - "github.com/tatsushid/go-fastping", "golang.org/x/oauth2/google", "golang.org/x/oauth2/jwt", "google.golang.org/api/analytics/v3", @@ -34,8 +34,8 @@ version = "1.1.0" [[constraint]] + branch="master" name = "github.com/gizak/termui" - version = "2.2.0" [[constraint]] branch = "master" @@ -51,8 +51,4 @@ [[constraint]] branch = "master" - name = "github.com/tatsushid/go-fastping" - -[[constraint]] - branch = "master" name = "github.com/sparrc/go-ping" diff --git a/cmd/devdash/devdash b/cmd/devdash/devdash Binary files differindex 17a340b..9b05beb 100755 --- a/cmd/devdash/devdash +++ b/cmd/devdash/devdash diff --git a/internal/plateform/termui.go b/internal/plateform/termui.go index 71713d8..aca1840 100644 --- a/internal/plateform/termui.go +++ b/internal/plateform/termui.go @@ -1,19 +1,17 @@ package plateform import ( - "fmt" - - "github.com/gizak/termui" - "github.com/pkg/errors" + termui "github.com/gizak/termui" + "github.com/gizak/termui/widgets" ) const maxRowSize = 12 type termUI struct { body *termui.Grid - widgets []termui.GridBufferer - col []*termui.Row - row []*termui.Row + widgets []interface{} + col []interface{} + row []interface{} } // NewTermUI returns a new Terminal Interface object with a given output mode. @@ -24,66 +22,67 @@ func NewTermUI() (*termUI, error) { // set the basic properties body := termui.NewGrid() - body.X = 0 - body.Y = 0 - body.BgColor = termui.ThemeAttr("bg") - body.Width = termui.TermWidth() + termWidth, termHeight := termui.TerminalDimensions() + body.SetRect(0, 0, termWidth, termHeight) + + // body.Y = 0 + // body.BgColor = termui.ThemeAttr("bg") + // body.Width = termui.TermWidth() return &termUI{ body: body, - row: []*termui.Row{}, }, nil } func (t *termUI) Init() { // set the basic properties - body := termui.NewGrid() - body.X = 0 - body.Y = 0 - body.BgColor = termui.ThemeAttr("bg") - body.Width = termui.TermWidth() - - t.body = body - t.widgets = []termui.GridBufferer{} - t.col = []*termui.Row{} - t.row = []*termui.Row{} + // body := termui.NewGrid() + // body.X = 0 + // body.Y = 0 + // body.BgColor = termui.ThemeAttr("bg") + // body.Width = termui.TermWidth() + + // t.body = body + // t.widgets = []termui.Buffer{} + // t.col = []*termui.GridItem{} + // t.row = []*termui.GridItem{} } func (termUI) Close() { - termui.Close() + // termui.Close() } func (t *termUI) AddCol(size int) { - t.col = append(t.col, termui.NewCol(size, 0, t.widgets...)) - t.widgets = []termui.GridBufferer{} + t.col = append(t.col, termui.NewCol(0.3, t.widgets...)) + t.widgets = nil } func (t *termUI) AddRow() error { - t.body.AddRows(termui.NewRow(t.col...)) - t.body.Align() - termui.Render(t.body) + t.row = append(t.row, termui.NewRow(0.5, t.col...)) + t.col = nil + // termui.Render(t.body) // clean the internal row - t.row = []*termui.Row{} - t.col = []*termui.Row{} + // t.row = []*termui.Row{} + // t.col = []*termui.Row{} return nil } -func (t termUI) validateRowSize() error { - var ts int - for _, r := range t.row { - for _, c := range r.Cols { - ts += c.Offset - } - } +// func (t termUI) validateRowSize() error { +// var ts int +// for _, r := range t.row { +// for _, c := range r.Cols { +// ts += c.Offset +// } +// } - if ts > maxRowSize { - return errors.Errorf("could not create row: size %d too big", ts) - } +// if ts > maxRowSize { +// return errors.Errorf("could not create row: size %d too big", ts) +// } - return nil -} +// return nil +// } func (t *termUI) TextBox( data string, @@ -92,22 +91,24 @@ func (t *termUI) TextBox( bdlabel string, h int, ) { - textBox := termui.NewPar(data) + p0 := widgets.NewParagraph() + p0.Text = data + p0.SetRect(0, 0, 20, 5) + p0.Border = false - textBox.TextFgColor = termui.Attribute(fg) - textBox.BorderFg = termui.Attribute(bd) - textBox.BorderLabel = bdlabel - textBox.Height = h + // textBox.TextFgColor = termui.Attribute(fg) + // textBox.BorderFg = termui.Attribute(bd) + // textBox.BorderLabel = bdlabel + // textBox.Height = h - t.widgets = append(t.widgets, textBox) + t.widgets = append(t.widgets, p0) } func (t *termUI) Text(text string, fg uint16, size int) { - pro := termui.NewPar(text) - pro.Border = false - pro.TextFgColor = termui.Attribute(fg) + textBox := widgets.NewParagraph() + textBox.Text = text - t.body.AddRows(termui.NewCol(size, 0, pro)) + t.widgets = append(t.widgets, textBox) } func (t *termUI) BarChart( @@ -117,18 +118,19 @@ func (t *termUI) BarChart( bd uint16, bdLabel string, ) { - bc := termui.NewBarChart() - bc.BorderLabel = bdLabel - bc.Data = data - bc.BarWidth = barWidth - bc.BarGap = 0 - bc.DataLabels = dimensions - bc.Width = 200 - bc.Height = 10 - bc.TextColor = termui.ColorGreen - bc.BarColor = termui.ColorBlue - bc.NumColor = termui.ColorWhite - bc.BorderFg = termui.Attribute(bd) + bc := widgets.NewBarChart() + // bc.Data = data + // bc.BorderLabel = bdLabel + // bc.Data = data + // bc.BarWidth = barWidth + // bc.BarGap = 0 + // bc.DataLabels = dimensions + // bc.Width = 200 + // bc.Height = 10 + // bc.TextColor = termui.ColorGreen + // bc.BarColor = termui.ColorBlue + // bc.NumColor = termui.ColorWhite + // bc.BorderFg = termui.Attribute(bd) t.widgets = append(t.widgets, bc) } @@ -140,16 +142,16 @@ func (t *termUI) StackedBarChart( bd uint16, bdLabel string, ) { - bc := termui.NewMBarChart() - bc.BorderLabel = bdLabel - bc.Data = data - bc.BarWidth = barWidth - bc.DataLabels = dimensions - bc.Width = 200 - bc.Height = 20 - bc.TextColor = termui.ColorGreen - bc.BorderFg = termui.Attribute(bd) - bc.SetMax(10) + bc := widgets.NewStackedBarChart() + // bc.BorderLabel = bdLabel + // bc.Data = data + // bc.BarWidth = barWidth + // bc.DataLabels = dimensions + // bc.Width = 200 + // bc.Height = 20 + // bc.TextColor = termui.ColorGreen + // bc.BorderFg = termui.Attribute(bd) + // bc.SetMax(10) t.widgets = append(t.widgets, bc) } @@ -159,23 +161,24 @@ func (t *termUI) Table( bd uint16, bdLabel string, ) { - ta := termui.NewTable() + ta := widgets.NewTable() ta.Rows = data - ta.BorderLabel = bdLabel - ta.FgColor = termui.ColorGreen - ta.BorderFg = termui.Attribute(bd) - ta.SetSize() + // ta.BorderLabel = bdLabel + // ta.FgColor = termui.ColorGreen + // ta.BorderFg = termui.Attribute(bd) + // ta.SetSize() t.widgets = append(t.widgets, ta) } // KQuit set a key to quit the application. func (termUI) KQuit(key string) { - termui.Handle(fmt.Sprintf("/sys/kbd/%s", key), func(termui.Event) { - termui.StopLoop() - }) + // termui.Handle(fmt.Sprintf("/sys/kbd/%s", key), func(termui.Event) { + // termui.StopLoop() + // }) } func (t *termUI) Render() { - termui.Loop() + t.body.Set(t.row...) + termui.Render(t.body) } |