62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
|
package termui
|
||
|
|
||
|
type colorScheme struct {
|
||
|
BodyBg Attribute
|
||
|
BlockBg Attribute
|
||
|
HasBorder bool
|
||
|
BorderFg Attribute
|
||
|
BorderBg Attribute
|
||
|
BorderLabelTextFg Attribute
|
||
|
BorderLabelTextBg Attribute
|
||
|
ParTextFg Attribute
|
||
|
ParTextBg Attribute
|
||
|
SparklineLine Attribute
|
||
|
SparklineTitle Attribute
|
||
|
GaugeBar Attribute
|
||
|
GaugePercent Attribute
|
||
|
LineChartLine Attribute
|
||
|
LineChartAxes Attribute
|
||
|
ListItemFg Attribute
|
||
|
ListItemBg Attribute
|
||
|
BarChartBar Attribute
|
||
|
BarChartText Attribute
|
||
|
BarChartNum Attribute
|
||
|
}
|
||
|
|
||
|
// default color scheme depends on the user's terminal setting.
|
||
|
var themeDefault = colorScheme{HasBorder: true}
|
||
|
|
||
|
var themeHelloWorld = colorScheme{
|
||
|
BodyBg: ColorBlack,
|
||
|
BlockBg: ColorBlack,
|
||
|
HasBorder: true,
|
||
|
BorderFg: ColorWhite,
|
||
|
BorderBg: ColorBlack,
|
||
|
BorderLabelTextBg: ColorBlack,
|
||
|
BorderLabelTextFg: ColorGreen,
|
||
|
ParTextBg: ColorBlack,
|
||
|
ParTextFg: ColorWhite,
|
||
|
SparklineLine: ColorMagenta,
|
||
|
SparklineTitle: ColorWhite,
|
||
|
GaugeBar: ColorRed,
|
||
|
GaugePercent: ColorWhite,
|
||
|
LineChartLine: ColorYellow | AttrBold,
|
||
|
LineChartAxes: ColorWhite,
|
||
|
ListItemBg: ColorBlack,
|
||
|
ListItemFg: ColorYellow,
|
||
|
BarChartBar: ColorRed,
|
||
|
BarChartNum: ColorWhite,
|
||
|
BarChartText: ColorCyan,
|
||
|
}
|
||
|
|
||
|
var theme = themeDefault // global dep
|
||
|
|
||
|
func UseTheme(th string) {
|
||
|
switch th {
|
||
|
case "helloworld":
|
||
|
theme = themeHelloWorld
|
||
|
default:
|
||
|
theme = themeDefault
|
||
|
}
|
||
|
}
|