aboutsummaryrefslogtreecommitdiff
path: root/ui/account.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/account.go')
-rw-r--r--ui/account.go31
1 files changed, 27 insertions, 4 deletions
diff --git a/ui/account.go b/ui/account.go
index 9c16cc5..50f41e4 100644
--- a/ui/account.go
+++ b/ui/account.go
@@ -1,25 +1,35 @@
package ui
import (
+ "fmt"
+
tb "github.com/nsf/termbox-go"
"git.sr.ht/~sircmpwn/aerc2/config"
"git.sr.ht/~sircmpwn/aerc2/worker"
+ "git.sr.ht/~sircmpwn/aerc2/worker/types"
)
type AccountTab struct {
Config *config.AccountConfig
- Worker *worker.Worker
+ Worker worker.Worker
Parent *UIState
counter int
+ log []string
}
-func NewAccountTab(conf *config.AccountConfig, work *worker.Worker) *AccountTab {
+func NewAccountTab(conf *config.AccountConfig) (*AccountTab, error) {
+ work, err := worker.NewWorker(conf.Source)
+ if err != nil {
+ return nil, err
+ }
+ go work.Run()
+ work.PostAction(types.Configure{Config: conf})
return &AccountTab{
Config: conf,
Worker: work,
- }
+ }, nil
}
func (acc *AccountTab) Name() string {
@@ -32,13 +42,26 @@ func (acc *AccountTab) SetParent(parent *UIState) {
func (acc *AccountTab) Render(at Geometry) {
cell := tb.Cell{
+ Ch: ' ',
Fg: tb.ColorDefault,
Bg: tb.ColorDefault,
}
- TPrintf(&at, cell, "%s %d", acc.Name(), acc.counter)
+ TFill(at, cell)
+ TPrintf(&at, cell, "%s %d\n", acc.Name(), acc.counter)
+ for _, str := range acc.log {
+ TPrintf(&at, cell, "%s\n", str)
+ }
acc.counter++
if acc.counter%10000 == 0 {
acc.counter = 0
}
acc.Parent.InvalidateFrom(acc)
}
+
+func (acc *AccountTab) GetChannel() chan types.WorkerMessage {
+ return acc.Worker.GetMessages()
+}
+
+func (acc *AccountTab) HandleMessage(msg types.WorkerMessage) {
+ acc.log = append(acc.log, fmt.Sprintf("<- %T", msg))
+}