diff --git a/lib/ui/borders.go b/lib/ui/borders.go index 97df5df..9b7860e 100644 --- a/lib/ui/borders.go +++ b/lib/ui/borders.go @@ -49,7 +49,7 @@ func (bordered *Bordered) Draw(ctx *Context) { y := 0 width := ctx.Width() height := ctx.Height() - style := tcell.StyleDefault.Background(tcell.ColorWhite).Foreground(tcell.ColorBlack) + style := tcell.StyleDefault.Reverse(true) if bordered.borders&BORDER_LEFT != 0 { ctx.Fill(0, 0, 1, ctx.Height(), ' ', style) x += 1 diff --git a/lib/ui/tab.go b/lib/ui/tab.go index 32b195c..49bdffa 100644 --- a/lib/ui/tab.go +++ b/lib/ui/tab.go @@ -83,19 +83,13 @@ func (tabs *Tabs) Select(index int) { func (strip *TabStrip) Draw(ctx *Context) { x := 0 for i, tab := range strip.Tabs { - style := tcell.StyleDefault. - Background(tcell.ColorWhite). - Foreground(tcell.ColorBlack) + style := tcell.StyleDefault.Reverse(true) if strip.Selected == i { - style = tcell.StyleDefault. - Background(tcell.ColorDefault). - Foreground(tcell.ColorDefault) + style = tcell.StyleDefault } x += ctx.Printf(x, 0, style, " %s ", tab.Name) } - style := tcell.StyleDefault. - Background(tcell.ColorWhite). - Foreground(tcell.ColorBlack) + style := tcell.StyleDefault.Reverse(true) ctx.Fill(x, 0, ctx.Width()-x, 1, ' ', style) } diff --git a/lib/ui/text.go b/lib/ui/text.go index b962166..aa97954 100644 --- a/lib/ui/text.go +++ b/lib/ui/text.go @@ -16,6 +16,7 @@ type Text struct { strategy uint fg tcell.Color bg tcell.Color + reverse bool onInvalidate func(d Drawable) } @@ -46,6 +47,12 @@ func (t *Text) Color(fg tcell.Color, bg tcell.Color) *Text { return t } +func (t *Text) Reverse(reverse bool) *Text { + t.reverse = reverse + t.Invalidate() + return t +} + func (t *Text) Draw(ctx *Context) { size := runewidth.StringWidth(t.text) x := 0 @@ -56,6 +63,9 @@ func (t *Text) Draw(ctx *Context) { x = ctx.Width() - size } style := tcell.StyleDefault.Background(t.bg).Foreground(t.fg) + if t.reverse { + style = style.Reverse(true) + } ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', style) ctx.Printf(x, 0, style, t.text) } diff --git a/widgets/aerc.go b/widgets/aerc.go index 92fc06e..fdfc658 100644 --- a/widgets/aerc.go +++ b/widgets/aerc.go @@ -49,7 +49,7 @@ func NewAerc(conf *config.AercConfig, logger *log.Logger, grid.AddChild(libui.NewText("aerc"). Strategy(libui.TEXT_CENTER). - Color(tcell.ColorBlack, tcell.ColorWhite)) + Reverse(true)) grid.AddChild(tabs.TabStrip).At(0, 1) grid.AddChild(tabs.TabContent).At(1, 0).Span(1, 2) diff --git a/widgets/dirlist.go b/widgets/dirlist.go index 58108ff..eb79bc4 100644 --- a/widgets/dirlist.go +++ b/widgets/dirlist.go @@ -109,8 +109,7 @@ func (dirlist *DirectoryList) Draw(ctx *ui.Context) { } style := tcell.StyleDefault if name == dirlist.selected { - style = style.Background(tcell.ColorWhite). - Foreground(tcell.ColorBlack) + style = style.Reverse(true) } ctx.Fill(0, row, ctx.Width(), 1, ' ', style) ctx.Printf(0, row, style, "%s", name) diff --git a/widgets/msglist.go b/widgets/msglist.go index 47be7bc..d8d419e 100644 --- a/widgets/msglist.go +++ b/widgets/msglist.go @@ -78,8 +78,7 @@ func (ml *MessageList) Draw(ctx *ui.Context) { style := tcell.StyleDefault if row == ml.selected-ml.scroll { - style = style.Background(tcell.ColorWhite). - Foreground(tcell.ColorBlack) + style = style.Reverse(true) } if _, ok := ml.store.Deleted[msg.Uid]; ok { style = style.Foreground(tcell.ColorGray) diff --git a/widgets/status.go b/widgets/status.go index 7a746fa..3536760 100644 --- a/widgets/status.go +++ b/widgets/status.go @@ -24,8 +24,8 @@ type StatusMessage struct { func NewStatusLine() *StatusLine { return &StatusLine{ fallback: StatusMessage{ - bg: tcell.ColorWhite, - fg: tcell.ColorBlack, + bg: tcell.ColorDefault, + fg: tcell.ColorDefault, message: "Idle", }, } @@ -46,15 +46,16 @@ func (status *StatusLine) Draw(ctx *ui.Context) { if len(status.stack) != 0 { line = status.stack[len(status.stack)-1] } - style := tcell.StyleDefault.Background(line.bg).Foreground(line.fg) + style := tcell.StyleDefault. + Background(line.bg).Foreground(line.fg).Reverse(true) ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', style) ctx.Printf(0, 0, style, "%s", line.message) } func (status *StatusLine) Set(text string) *StatusMessage { status.fallback = StatusMessage{ - bg: tcell.ColorWhite, - fg: tcell.ColorBlack, + bg: tcell.ColorDefault, + fg: tcell.ColorDefault, message: text, } status.Invalidate() @@ -63,8 +64,8 @@ func (status *StatusLine) Set(text string) *StatusMessage { func (status *StatusLine) Push(text string, expiry time.Duration) *StatusMessage { msg := &StatusMessage{ - bg: tcell.ColorWhite, - fg: tcell.ColorBlack, + bg: tcell.ColorDefault, + fg: tcell.ColorDefault, message: text, } status.stack = append(status.stack, msg)