From 8eb7faf67c403e9692fa7faa0a3f2d74fa774330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Sat, 22 Aug 2020 15:27:57 +0200 Subject: [PATCH] termui: help bar background goes all the width --- termui/bug_table.go | 2 +- termui/help_bar.go | 16 +++++++++++----- termui/label_select.go | 2 +- termui/show_bug.go | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/termui/bug_table.go b/termui/bug_table.go index d4e4552e7cbe12072c32c8e1f74cdcda83d0d433..b23619073835e64af511526699bad26c63f38a66 100644 --- a/termui/bug_table.go +++ b/termui/bug_table.go @@ -128,7 +128,7 @@ func (bt *bugTable) layout(g *gocui.Gui) error { v.Frame = false v.FgColor = gocui.ColorWhite - _, _ = fmt.Fprint(v, bugTableHelp.Render()) + _, _ = fmt.Fprint(v, bugTableHelp.Render(maxX)) } _, err = g.SetCurrentView(bugTableView) diff --git a/termui/help_bar.go b/termui/help_bar.go index eb6facb66e805477a3fde67cee549cf8267e33a8..78f8ebca733729b15317b05372c206e55b211b50 100644 --- a/termui/help_bar.go +++ b/termui/help_bar.go @@ -4,6 +4,8 @@ import ( "fmt" "strings" + text "github.com/MichaelMure/go-term-text" + "github.com/MichaelMure/git-bug/util/colors" ) @@ -12,13 +14,17 @@ type helpBar []struct { text string } -func (hb helpBar) Render() string { +func (hb helpBar) Render(maxX int) string { var builder strings.Builder - for i, entry := range hb { - if i != 0 { - builder.WriteByte(' ') - } + for _, entry := range hb { builder.WriteString(colors.BlueBg(fmt.Sprintf("[%s] %s", entry.keys, entry.text))) + builder.WriteByte(' ') + } + + l := text.Len(builder.String()) + if l < maxX { + builder.WriteString(colors.BlueBg(strings.Repeat(" ", maxX-l))) } + return builder.String() } diff --git a/termui/label_select.go b/termui/label_select.go index dc5adc2e0f041d57a842abd80e7ea7b2d85ef906..dfba20a6208a0ad121d814834a55d0258ec848b7 100644 --- a/termui/label_select.go +++ b/termui/label_select.go @@ -153,7 +153,7 @@ func (ls *labelSelect) layout(g *gocui.Gui) error { v.FgColor = gocui.ColorWhite } v.Clear() - _, _ = fmt.Fprint(v, labelSelectHelp.Render()) + _, _ = fmt.Fprint(v, labelSelectHelp.Render(maxX)) if _, err = g.SetViewOnTop(labelSelectInstructionsView); err != nil { return err } diff --git a/termui/show_bug.go b/termui/show_bug.go index 74eccd3653617bcdc373ea493036d765db4b4f1d..6296c445c41931dcea11e9ec94ef4c1630bdab1b 100644 --- a/termui/show_bug.go +++ b/termui/show_bug.go @@ -105,7 +105,7 @@ func (sb *showBug) layout(g *gocui.Gui) error { } v.Clear() - _, _ = fmt.Fprint(v, showBugHelp.Render()) + _, _ = fmt.Fprint(v, showBugHelp.Render(maxX)) _, err = g.SetViewOnTop(showBugInstructionView) if err != nil {