diff options
author | Koni Marti <koni.marti@gmail.com> | 2022-04-17 01:03:49 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-04-17 12:18:22 +0200 |
commit | 6edfbfa8ce3760b7d0ee91bb6be768b296a50574 (patch) | |
tree | f612c7fa831ecbb30e6c4719cf4b8b5cd9844a39 /lib/ui/tab.go | |
parent | 1ecee8efa5319cc9628deca04c354b2ebf87d89c (diff) | |
download | aerc-6edfbfa8ce3760b7d0ee91bb6be768b296a50574.tar.gz |
aerc: use contextual ui styleset for tabs/compose
Use contextual ui styleset for tabs and compose widgets. If no account
is selected, use default styleset as fallback.
Fixes: https://todo.sr.ht/~rjarry/aerc/3
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'lib/ui/tab.go')
-rw-r--r-- | lib/ui/tab.go | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/ui/tab.go b/lib/ui/tab.go index 07f61998..a67bdabc 100644 --- a/lib/ui/tab.go +++ b/lib/ui/tab.go @@ -31,6 +31,7 @@ type Tab struct { invalid bool pinned bool indexBeforePin int + uiConf *config.UIConfig } type TabStrip Tabs @@ -47,10 +48,11 @@ func NewTabs(uiConf *config.UIConfig) *Tabs { return tabs } -func (tabs *Tabs) Add(content Drawable, name string) *Tab { +func (tabs *Tabs) Add(content Drawable, name string, uiConf *config.UIConfig) *Tab { tab := &Tab{ Content: content, Name: name, + uiConf: uiConf, } tabs.Tabs = append(tabs.Tabs, tab) tabs.TabStrip.Invalidate() @@ -283,9 +285,13 @@ func (tabs *Tabs) removeHistory(index int) { func (strip *TabStrip) Draw(ctx *Context) { x := 0 for i, tab := range strip.Tabs { - style := strip.uiConfig.GetStyle(config.STYLE_TAB) + uiConfig := strip.uiConfig + if tab.uiConf != nil { + uiConfig = tab.uiConf + } + style := uiConfig.GetStyle(config.STYLE_TAB) if strip.Selected == i { - style = strip.uiConfig.GetStyleSelected(config.STYLE_TAB) + style = uiConfig.GetStyleSelected(config.STYLE_TAB) } tabWidth := 32 if ctx.Width()-x < tabWidth { @@ -293,7 +299,7 @@ func (strip *TabStrip) Draw(ctx *Context) { } name := tab.Name if tab.pinned { - name = strip.uiConfig.PinnedTabMarker + name + name = uiConfig.PinnedTabMarker + name } trunc := runewidth.Truncate(name, tabWidth, "…") x += ctx.Printf(x, 0, style, " %s ", trunc) |