aboutsummaryrefslogtreecommitdiff
path: root/ui/render.go
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-01-10 22:54:55 -0500
committerDrew DeVault <sir@cmpwn.com>2018-01-10 22:54:55 -0500
commit55e84533022c1f9bf9fd9e2cd2db930394b590b8 (patch)
tree513ee239f641aa5154427776efa18fda752e642d /ui/render.go
parent77a0f68758905faa74407499ff92c90929e27989 (diff)
Improve invalidation logic
Diffstat (limited to 'ui/render.go')
-rw-r--r--ui/render.go80
1 files changed, 0 insertions, 80 deletions
diff --git a/ui/render.go b/ui/render.go
deleted file mode 100644
index 4fedc2c..0000000
--- a/ui/render.go
+++ /dev/null
@@ -1,80 +0,0 @@
-package ui
-
-import (
- tb "github.com/nsf/termbox-go"
-
- "git.sr.ht/~sircmpwn/aerc2/config"
-)
-
-func Initialize(conf *config.AercConfig) (*UIState, error) {
- state := UIState{
- Config: conf,
- InvalidPanes: InvalidateAll,
-
- tbEvents: make(chan tb.Event, 10),
- }
- if err := tb.Init(); err != nil {
- return nil, err
- }
- tb.SetInputMode(tb.InputEsc | tb.InputMouse)
- tb.SetOutputMode(tb.Output256)
- go (func() {
- for !state.Exit {
- state.tbEvents <- tb.PollEvent()
- }
- })()
- return &state, nil
-}
-
-func (state *UIState) Close() {
- tb.Close()
-}
-
-func (state *UIState) AddTab(tab AercTab) {
- state.Tabs = append(state.Tabs, tab)
-}
-
-func (state *UIState) Invalidate(what uint) {
- state.InvalidPanes |= what
-}
-
-func (state *UIState) calcGeometries() {
- width, height := tb.Size()
- // TODO: more
- state.Panes.TabView = Geometry{
- Row: 0,
- Col: 0,
- Width: width,
- Height: height,
- }
-}
-
-func (state *UIState) Tick() bool {
- select {
- case event := <-state.tbEvents:
- switch event.Type {
- case tb.EventKey:
- if event.Key == tb.KeyEsc {
- state.Exit = true
- }
- case tb.EventResize:
- state.Invalidate(InvalidateAll)
- }
- default:
- // no-op
- break
- }
- if state.InvalidPanes != 0 {
- if state.InvalidPanes&InvalidateAll == InvalidateAll {
- tb.Clear(tb.ColorDefault, tb.ColorDefault)
- state.calcGeometries()
- }
- if state.InvalidPanes&InvalidateTabs != 0 {
- tab := state.Tabs[state.SelectedTab]
- tab.Render(state.Panes.TabView)
- }
- tb.Flush()
- state.InvalidPanes = 0
- }
- return true
-}