summaryrefslogtreecommitdiff
path: root/toolkit/gocui/color.go
blob: c1216f0fe53427167d5c61d84fe7c98187580797 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package main

import (
	"math/rand"
	"github.com/awesome-gocui/gocui"
	"git.wit.org/wit/gui/toolkit"
)

// ColorBlack ColorRed ColorGreen ColorYellow ColorBlue ColorMagenta ColorCyan ColorWhite
// gocui.GetColor("#FFAA55")  // Dark Purple
func (w *cuiWidget) setDefaultWidgetColor() {
	log(logInfo, "setDefaultWidgetColor() on", w.widgetType, w.name)
	v, _ := me.baseGui.View(w.cuiName)
	if (v == nil) {
		log(logError, "setDefaultWidgetColor() failed on view == nil")
		return
	}
	sleep(.05)
	// v.BgColor = gocui.GetColor("#FFAA55")  // Dark Purple
	// v.BgColor = gocui.GetColor("#88AA55") // heavy purple
	// v.BgColor = gocui.GetColor("#111111") // crazy red
	// v.BgColor = gocui.GetColor("#FF9911") // heavy red
	// v.SelBgColor = gocui.GetColor("#FFEE11") // blood red

	// v.BgColor = gocui.GetColor("#55AAFF") // super light grey
	// v.BgColor = gocui.GetColor("#FFC0CB") // 'w3c pink' yellow
	switch w.widgetType {
	case toolkit.Root:
		v.FrameColor = gocui.ColorRed
		v.BgColor = gocui.GetColor("#B0E0E6") // w3c 'powerder blue'
	case toolkit.Flag:
		v.FrameColor = gocui.ColorRed
		v.BgColor = gocui.GetColor("#B0E0E6") // w3c 'powerder blue'
	case toolkit.Window:
		v.FgColor = gocui.ColorCyan
		v.SelBgColor = gocui.ColorBlue
		v.FrameColor = gocui.ColorBlue
	case toolkit.Tab:
		v.SelBgColor = gocui.ColorBlue
		v.FrameColor = gocui.ColorBlue
	case toolkit.Button:
		v.BgColor = gocui.ColorWhite
		v.FrameColor = gocui.ColorGreen
		v.SelBgColor = gocui.ColorBlack
		v.SelFgColor = gocui.ColorGreen
	case toolkit.Label:
		v.BgColor = gocui.GetColor("#55AAFF") // super light grey
		v.SelBgColor = gocui.GetColor("#55AAFF") // super light grey
	case toolkit.Box:
		v.FrameColor = gocui.ColorRed
		// v.BgColor = gocui.GetColor("#FFC0CB") // 'w3c pink' yellow
		v.BgColor = gocui.GetColor("#DDDDDD") // light purple
	case toolkit.Grid:
		// v.FgColor = gocui.ColorCyan
		// v.SelBgColor = gocui.ColorBlue
		// v.FrameColor = gocui.ColorBlue
	case toolkit.Group:
		v.BgColor = gocui.GetColor("#55AAFF") // super light grey
	default:
	}
}

// SetColor("#FFAA55") // purple
func (w *cuiWidget) SetColor(c string) {
	if (w.v == nil) {
		log(logError, "SetColor() failed on view == nil")
		return
	}
	w.v.SelBgColor = gocui.ColorCyan
	w.v.SelFgColor = gocui.ColorBlack
	switch c {
	case "Green":
		w.v.BgColor = gocui.ColorGreen
	case "Purple":
		w.v.BgColor = gocui.GetColor("#FFAA55")
	case "Yellow":
		w.v.BgColor = gocui.ColorYellow
	case "Blue":
		w.v.BgColor = gocui.ColorBlue
	case "Red":
		w.v.BgColor = gocui.ColorRed
	default:
		w.v.BgColor = gocui.GetColor(c)
	}
}

func (w *cuiWidget) setDefaultHighlight() {
	if (w.v == nil) {
		log(logError, "SetColor() failed on view == nil")
		return
	}
	w.v.SelBgColor = gocui.ColorGreen
	w.v.SelFgColor = gocui.ColorBlack
}

func randColor() gocui.Attribute {
	colors := []string{"Green", "#FFAA55", "Yellow", "Blue", "Red", "Black", "White"}
	i := rand.Intn(len(colors))
	log("randColor() i =", i)
	return gocui.GetColor(colors[i])
}

func (w *cuiWidget) redoColor(draw bool) {
	if (w == nil) {
		return
	}

	sleep(.05)
	w.setDefaultHighlight()
	// w.setDefaultWidgetColor()

	for _, child := range w.children {
		child.redoColor(draw)
	}
}