Add Style configuration

The following functionalities are added to configure aerc ui styles.
- Read stylesets from file with very basic fnmatch wildcard matching
- Add default styleset
- Support different stylesets as part of UiConfig allowing contextual
  styles.
- Move widgets/ui elements to use the stylesets.
- Add configuration manual for the styleset
This commit is contained in:
Reto Brunner 2020-05-27 07:37:02 +02:00
parent 6c4ed3cfe2
commit 0f78f06610
48 changed files with 1093 additions and 332 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))
}
}