closes #45 - allow to use color tags in listbox
This commit is contained in:
parent
187fb9bdd0
commit
2b10c92a2f
23
listbox.go
23
listbox.go
|
@ -23,6 +23,7 @@ type ListBox struct {
|
||||||
currSelection int
|
currSelection int
|
||||||
topLine int
|
topLine int
|
||||||
buttonPos int
|
buttonPos int
|
||||||
|
multicolor bool
|
||||||
|
|
||||||
onSelectItem func(Event)
|
onSelectItem func(Event)
|
||||||
onKeyPress func(term.Key) bool
|
onKeyPress func(term.Key) bool
|
||||||
|
@ -95,8 +96,12 @@ func (l *ListBox) redrawItems(canvas Canvas, tm Theme) {
|
||||||
}
|
}
|
||||||
|
|
||||||
canvas.FillRect(l.x, l.y+dy, l.width-1, 1, term.Cell{Bg: b, Ch: ' ', Fg: f})
|
canvas.FillRect(l.x, l.y+dy, l.width-1, 1, term.Cell{Bg: b, Ch: ' ', Fg: f})
|
||||||
_, text := AlignText(l.items[curr], maxWidth, AlignLeft)
|
if l.multicolor {
|
||||||
canvas.PutText(l.x, l.y+dy, text, f, b)
|
canvas.PutColorizedText(l.x, l.y+dy, maxWidth, l.items[curr], f, b, Horizontal)
|
||||||
|
} else {
|
||||||
|
_, text := AlignText(l.items[curr], maxWidth, AlignLeft)
|
||||||
|
canvas.PutText(l.x, l.y+dy, text, f, b)
|
||||||
|
}
|
||||||
|
|
||||||
curr++
|
curr++
|
||||||
dy++
|
dy++
|
||||||
|
@ -397,3 +402,17 @@ func (l *ListBox) OnKeyPress(fn func(term.Key) bool) {
|
||||||
func (l *ListBox) ItemCount() int {
|
func (l *ListBox) ItemCount() int {
|
||||||
return len(l.items)
|
return len(l.items)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MultiColored returns if the listbox checks and applies any
|
||||||
|
// color related tags inside its title. If MultiColores is
|
||||||
|
// false then title is displayed as is.
|
||||||
|
// To read about available color tags, please see ColorParser
|
||||||
|
func (l *ListBox) MultiColored() bool {
|
||||||
|
return l.multicolor
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetMultiColored changes how the listbox output its title: as is
|
||||||
|
// or parse and apply all internal color tags
|
||||||
|
func (l *ListBox) SetMultiColored(multi bool) {
|
||||||
|
l.multicolor = multi
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue