Added custom text color for gauge when the text is highlighted (i.e. the

gauge bar is over the text).
This commit is contained in:
Matteo Kloiber 2015-04-22 22:04:30 +02:00
parent 4e7911d1f3
commit c8d326317b
3 changed files with 29 additions and 11 deletions

View File

@ -56,7 +56,18 @@ func main() {
g3.Label = "{{percent}}% (100MBs free)" g3.Label = "{{percent}}% (100MBs free)"
g3.LabelAlign = termui.AlignRight g3.LabelAlign = termui.AlignRight
termui.Render(g0, g1, g2, g3) g4 := termui.NewGauge()
g4.Percent = 50
g4.Width = 50
g4.Height = 3
g4.Y = 14
g4.Border.Label = "Gauge"
g4.Label = "Gauge with custom highlighted label"
g4.PercentColor = termui.ColorYellow
g4.BarColor = termui.ColorGreen
g4.PercentColorHighlighted = termui.ColorBlack
termui.Render(g0, g1, g2, g3, g4)
<-termui.EventCh() <-termui.EventCh()
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -31,11 +31,14 @@ const (
AlignRight AlignRight
) )
const uint16max = ^uint16(0)
type Gauge struct { type Gauge struct {
Block Block
Percent int Percent int
BarColor Attribute BarColor Attribute
PercentColor Attribute PercentColor Attribute
PercentColorHighlighted Attribute
Label string Label string
LabelAlign Align LabelAlign Align
} }
@ -48,6 +51,7 @@ func NewGauge() *Gauge {
BarColor: theme.GaugeBar, BarColor: theme.GaugeBar,
Label: "{{percent}}%", Label: "{{percent}}%",
LabelAlign: AlignCenter, LabelAlign: AlignCenter,
PercentColorHighlighted: Attribute(uint16max),
} }
g.Width = 12 g.Width = 12
@ -103,6 +107,9 @@ func (g *Gauge) Buffer() []Point {
p.Bg |= AttrReverse p.Bg |= AttrReverse
} }
if g.PercentColorHighlighted != Attribute(uint16max) {
p.Fg = g.PercentColorHighlighted
}
} else { } else {
p.Bg = g.Block.BgColor p.Bg = g.Block.BgColor
} }