diff options
author | Reto Brunner <reto@labrat.space> | 2020-07-30 23:22:32 +0200 |
---|---|---|
committer | Reto Brunner <reto@labrat.space> | 2020-07-30 23:22:32 +0200 |
commit | 3d784c5d8c7d037e38159fc1753773a2e81aa43e (patch) | |
tree | 2c062c9f4b4641a59e3f4f3ff3317f636bfd49cf /widgets/selector.go | |
parent | 6ee7b1c3fd40b0e2f93dcaa7ffb3b0bdd56ac285 (diff) | |
download | aerc-3d784c5d8c7d037e38159fc1753773a2e81aa43e.tar.gz |
Revert "Implement style configuration."
This reverts commit 1ff687ca2b0821c2cacc1fa725abb3302d2af9da.
Diffstat (limited to 'widgets/selector.go')
-rw-r--r-- | widgets/selector.go | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/widgets/selector.go b/widgets/selector.go deleted file mode 100644 index d19d38f6..00000000 --- a/widgets/selector.go +++ /dev/null @@ -1,107 +0,0 @@ -package widgets - -import ( - "github.com/gdamore/tcell" - - "git.sr.ht/~sircmpwn/aerc/config" - "git.sr.ht/~sircmpwn/aerc/lib/ui" -) - -type Selector struct { - ui.Invalidatable - chooser bool - focused bool - focus int - options []string - uiConfig config.UIConfig - - onChoose func(option string) - onSelect func(option string) -} - -func NewSelector(options []string, focus int, uiConfig config.UIConfig) *Selector { - return &Selector{ - focus: focus, - options: options, - uiConfig: uiConfig, - } -} - -func (sel *Selector) Chooser(chooser bool) *Selector { - sel.chooser = chooser - return sel -} - -func (sel *Selector) Invalidate() { - sel.DoInvalidate(sel) -} - -func (sel *Selector) Draw(ctx *ui.Context) { - ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', - sel.uiConfig.GetStyle(config.STYLE_SELECTOR_DEFAULT)) - x := 2 - for i, option := range sel.options { - style := sel.uiConfig.GetStyle(config.STYLE_SELECTOR_DEFAULT) - if sel.focus == i { - if sel.focused { - style = sel.uiConfig.GetStyle(config.STYLE_SELECTOR_FOCUSED) - } else if sel.chooser { - style = sel.uiConfig.GetStyle(config.STYLE_SELECTOR_CHOOSER) - } - } - x += ctx.Printf(x, 1, style, "[%s]", option) - x += 5 - } -} - -func (sel *Selector) OnChoose(fn func(option string)) *Selector { - sel.onChoose = fn - return sel -} - -func (sel *Selector) OnSelect(fn func(option string)) *Selector { - sel.onSelect = fn - return sel -} - -func (sel *Selector) Selected() string { - return sel.options[sel.focus] -} - -func (sel *Selector) Focus(focus bool) { - sel.focused = focus - sel.Invalidate() -} - -func (sel *Selector) Event(event tcell.Event) bool { - switch event := event.(type) { - case *tcell.EventKey: - switch event.Key() { - case tcell.KeyCtrlH: - fallthrough - case tcell.KeyLeft: - if sel.focus > 0 { - sel.focus-- - sel.Invalidate() - } - if sel.onSelect != nil { - sel.onSelect(sel.Selected()) - } - case tcell.KeyCtrlL: - fallthrough - case tcell.KeyRight: - if sel.focus < len(sel.options)-1 { - sel.focus++ - sel.Invalidate() - } - if sel.onSelect != nil { - sel.onSelect(sel.Selected()) - } - case tcell.KeyEnter: - if sel.onChoose != nil { - sel.onChoose(sel.Selected()) - } - } - } - return false -} |