diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-02-26 22:41:54 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-02-26 22:42:01 -0500 |
commit | 661e3ec2a4dd97d4a8a8eab4f281b088770a6af2 (patch) | |
tree | 1f94f9a168642617690934deba2e5b712abb1834 /ui/ui.go | |
parent | 07f7cac2f3c5b7b74d16296d5afb57ff7e908130 (diff) | |
download | aerc-661e3ec2a4dd97d4a8a8eab4f281b088770a6af2.tar.gz |
Implement basic ex line input
TODO:
- scrolling
- commit/cancel
- command history (via an external command history provider)
- tab completion (via an external tab completion provider)
Diffstat (limited to 'ui/ui.go')
-rw-r--r-- | ui/ui.go | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -11,6 +11,8 @@ type UI struct { Content Drawable ctx *Context + interactive []Interactive + tbEvents chan tb.Event invalidations chan interface{} } @@ -58,6 +60,11 @@ func (state *UI) Tick() bool { state.ctx = NewContext(event.Width, event.Height) state.Content.Invalidate() } + if state.interactive != nil { + for _, i := range state.interactive { + i.Event(event) + } + } case <-state.invalidations: state.Content.Draw(state.ctx) tb.Flush() @@ -66,3 +73,7 @@ func (state *UI) Tick() bool { } return true } + +func (state *UI) AddInteractive(i Interactive) { + state.interactive = append(state.interactive, i) +} |