summaryrefslogtreecommitdiff
path: root/widgets/aerc.go
diff options
context:
space:
mode:
authorReto Brunner <reto@labrat.space>2020-05-27 07:37:02 +0200
committerReto Brunner <reto@labrat.space>2020-05-27 07:57:10 +0200
commit0f78f06610c0e8887aba2ae50e99b86477a384b3 (patch)
treeff4cd6581d3af0911954a37550602366d2bb0e2f /widgets/aerc.go
parent6c4ed3cfe2fe66a1e5f26c404ea90e048142db72 (diff)
downloadaerc-0f78f06610c0e8887aba2ae50e99b86477a384b3.zip
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.go29
1 files changed, 18 insertions, 11 deletions
diff --git a/widgets/aerc.go b/widgets/aerc.go
index 829873a..57d6cef 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)