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.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()
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -31,23 +31,27 @@ const (
AlignRight
)
const uint16max = ^uint16(0)
type Gauge struct {
Block
Percent int
BarColor Attribute
PercentColor Attribute
Label string
LabelAlign Align
Percent int
BarColor Attribute
PercentColor Attribute
PercentColorHighlighted Attribute
Label string
LabelAlign Align
}
// NewGauge return a new gauge with current theme.
func NewGauge() *Gauge {
g := &Gauge{
Block: *NewBlock(),
PercentColor: theme.GaugePercent,
BarColor: theme.GaugeBar,
Label: "{{percent}}%",
LabelAlign: AlignCenter,
Block: *NewBlock(),
PercentColor: theme.GaugePercent,
BarColor: theme.GaugeBar,
Label: "{{percent}}%",
LabelAlign: AlignCenter,
PercentColorHighlighted: Attribute(uint16max),
}
g.Width = 12
@ -103,6 +107,9 @@ func (g *Gauge) Buffer() []Point {
p.Bg |= AttrReverse
}
if g.PercentColorHighlighted != Attribute(uint16max) {
p.Fg = g.PercentColorHighlighted
}
} else {
p.Bg = g.Block.BgColor
}