diff options
author | Reto Brunner <reto@labrat.space> | 2020-05-27 07:37:02 +0200 |
---|---|---|
committer | Reto Brunner <reto@labrat.space> | 2020-05-27 07:57:10 +0200 |
commit | 0f78f06610c0e8887aba2ae50e99b86477a384b3 (patch) | |
tree | ff4cd6581d3af0911954a37550602366d2bb0e2f /widgets/aerc.go | |
parent | 6c4ed3cfe2fe66a1e5f26c404ea90e048142db72 (diff) | |
download | aerc-0f78f06610c0e8887aba2ae50e99b86477a384b3.tar.gz |
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
Diffstat (limited to 'widgets/aerc.go')
-rw-r--r-- | widgets/aerc.go | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/widgets/aerc.go b/widgets/aerc.go index 829873ad..57d6cef9 100644 --- a/widgets/aerc.go +++ b/widgets/aerc.go @@ -51,8 +51,8 @@ func NewAerc(conf *config.AercConfig, logger *log.Logger, tabs := ui.NewTabs(&conf.Ui) - statusbar := ui.NewStack() - statusline := NewStatusLine() + statusbar := ui.NewStack(conf.Ui) + statusline := NewStatusLine(conf.Ui) statusbar.Push(statusline) grid := ui.NewGrid().Rows([]ui.GridSpec{ @@ -76,7 +76,7 @@ func NewAerc(conf *config.AercConfig, logger *log.Logger, logger: logger, statusbar: statusbar, statusline: statusline, - prompts: ui.NewStack(), + prompts: ui.NewStack(conf.Ui), tabs: tabs, } @@ -382,12 +382,20 @@ func (aerc *Aerc) SetStatus(status string) *StatusMessage { return aerc.statusline.Set(status) } +func (aerc *Aerc) SetError(status string) *StatusMessage { + return aerc.statusline.SetError(status) +} + func (aerc *Aerc) PushStatus(text string, expiry time.Duration) *StatusMessage { return aerc.statusline.Push(text, expiry) } -func (aerc *Aerc) PushError(text string) { - aerc.PushStatus(text, 10*time.Second).Color(tcell.ColorDefault, tcell.ColorRed) +func (aerc *Aerc) PushError(text string, expiry time.Duration) *StatusMessage { + return aerc.statusline.PushError(text, expiry) +} + +func (aerc *Aerc) PushSuccess(text string, expiry time.Duration) *StatusMessage { + return aerc.statusline.PushSuccess(text, expiry) } func (aerc *Aerc) focus(item ui.Interactive) { @@ -416,11 +424,11 @@ func (aerc *Aerc) BeginExCommand(cmd string) { exline := NewExLine(aerc.conf, cmd, func(cmd string) { parts, err := shlex.Split(cmd) if err != nil { - aerc.PushError(" " + err.Error()) + aerc.PushError(" "+err.Error(), 10*time.Second) } err = aerc.cmd(parts) if err != nil { - aerc.PushError(" " + err.Error()) + aerc.PushError(" "+err.Error(), 10*time.Second) } // only add to history if this is an unsimulated command, // ie one not executed from a keybinding @@ -444,7 +452,7 @@ func (aerc *Aerc) RegisterPrompt(prompt string, cmd []string) { } err := aerc.cmd(cmd) if err != nil { - aerc.PushError(" " + err.Error()) + aerc.PushError(" "+err.Error(), 10*time.Second) } }, func(cmd string) []string { return nil // TODO: completions @@ -471,7 +479,7 @@ func (aerc *Aerc) RegisterChoices(choices []Choice) { } err := aerc.cmd(cmd) if err != nil { - aerc.PushError(" " + err.Error()) + aerc.PushError(" "+err.Error(), 10*time.Second) } }, func(cmd string) []string { return nil // TODO: completions @@ -552,11 +560,10 @@ func (aerc *Aerc) CloseDialog() { return } - func (aerc *Aerc) GetPassword(title string, prompt string) (chText chan string, chErr chan error) { chText = make(chan string, 1) chErr = make(chan error, 1) - getPasswd := NewGetPasswd(title, prompt, func(pw string, err error) { + getPasswd := NewGetPasswd(title, prompt, aerc.conf, func(pw string, err error) { defer func() { close(chErr) close(chText) |