Implement style configuration.

Introduce the ability to configure stylesets, allowing customization of
aerc's look (color scheme, font weight, etc). Default styleset is
installed to /path/to/aerc/stylesets/default.
This commit is contained in:
Kalyan Sriram 2020-07-27 01:03:55 -07:00 committed by Reto Brunner
parent 1bab1754f0
commit 1ff687ca2b
30 changed files with 1040 additions and 292 deletions
lib/ui

View file

@ -3,16 +3,19 @@ package ui
import (
"fmt"
"git.sr.ht/~sircmpwn/aerc/config"
"github.com/gdamore/tcell"
)
type Stack struct {
children []Drawable
onInvalidate []func(d Drawable)
uiConfig config.UIConfig
}
func NewStack() *Stack {
return &Stack{}
func NewStack(uiConfig config.UIConfig) *Stack {
return &Stack{uiConfig: uiConfig}
}
func (stack *Stack) Children() []Drawable {
@ -33,7 +36,8 @@ func (stack *Stack) Draw(ctx *Context) {
if len(stack.children) > 0 {
stack.Peek().Draw(ctx)
} else {
ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', tcell.StyleDefault)
ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ',
stack.uiConfig.GetStyle(config.STYLE_STACK))
}
}