diff options
Diffstat (limited to 'toolkit/gocui/color.go')
| -rw-r--r-- | toolkit/gocui/color.go | 143 |
1 files changed, 71 insertions, 72 deletions
diff --git a/toolkit/gocui/color.go b/toolkit/gocui/color.go index 5dbed05..4c2ea76 100644 --- a/toolkit/gocui/color.go +++ b/toolkit/gocui/color.go @@ -3,86 +3,85 @@ 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 (n *node) setDefaultWidgetColor() { - w := n.tk - log(logInfo, "setDefaultWidgetColor() on", n.WidgetType, n.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 +//w.v.SelBgColor = gocui.ColorCyan +//color.go: w.v.SelFgColor = gocui.ColorBlack +//color.go: w.v.BgColor = gocui.ColorGreen - // v.BgColor = gocui.GetColor("#55AAFF") // super light grey - // v.BgColor = gocui.GetColor("#FFC0CB") // 'w3c pink' yellow - switch n.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: - } +type colorT struct { + frame gocui.Attribute + fg gocui.Attribute + bg gocui.Attribute + selFg gocui.Attribute + selBg gocui.Attribute + name string } -// SetColor("#FFAA55") // purple -func (w *cuiWidget) SetColor(c string) { - if (w.v == nil) { - log(logError, "SetColor() failed on view == nil") +var none gocui.Attribute = gocui.AttrNone +var lightPurple gocui.Attribute = gocui.GetColor("#DDDDDD") // light purple +var darkPurple gocui.Attribute = gocui.GetColor("#FFAA55") // Dark Purple +var heavyPurple gocui.Attribute = gocui.GetColor("#88AA55") // heavy purple +var powdererBlue gocui.Attribute = gocui.GetColor("#B0E0E6") // w3c 'powerder blue' +var superLightGrey gocui.Attribute = gocui.GetColor("#55AAFF") // super light grey + +// Standard defined colors from gocui: +// ColorBlack ColorRed ColorGreen ColorYellow ColorBlue ColorMagenta ColorCyan ColorWhite + +// 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 + +// Normal Text On mouseover +// Widget Frame Text background Text background +var colorWindow colorT = colorT{ none , gocui.ColorBlue, none , none , powdererBlue , "normal window"} +var colorActiveW colorT = colorT{ none , none , powdererBlue , none , powdererBlue , "active window"} + +var colorTab colorT = colorT{gocui.ColorBlue, gocui.ColorBlue, none , none , powdererBlue , "normal tab"} +var colorActiveT colorT = colorT{gocui.ColorBlue, none , powdererBlue , none , powdererBlue , "active tab"} + +var colorButton colorT = colorT{gocui.ColorGreen, none , gocui.ColorWhite, gocui.ColorGreen, gocui.ColorBlack, "normal button"} +var colorLabel colorT = colorT{ none , none , superLightGrey , none , superLightGrey , "normal label"} +var colorGroup colorT = colorT{ none , none , superLightGrey , none , superLightGrey , "normal group"} + +// widget debugging colors. these widgets aren't displayed unless you are debugging +var colorRoot colorT = colorT{gocui.ColorRed , none , powdererBlue , none , gocui.ColorBlue, "debug root"} +var colorFlag colorT = colorT{gocui.ColorRed , none , powdererBlue , none , gocui.ColorGreen, "debug flag"} +var colorBox colorT = colorT{gocui.ColorRed , none , lightPurple , none , gocui.ColorCyan, "debug box"} +var colorGrid colorT = colorT{gocui.ColorRed , none , lightPurple , none , gocui.ColorRed, "debug grid"} +var colorNone colorT = colorT{ none , none , none , none , none , "debug none"} + +// actually sets the colors for the gocui element +// the user will see the colors change when this runs +// TODO: add black/white only flag for ttyS0 +// TODO: or fix kvm/qemu serial console & SIGWINCH. +// TODO: and minicom and uboot and 5 million other things. +// TODO: maybe enough of us could actually do that if we made it a goal. +// TODO: start with riscv boards and fix it universally there +// TODO: so just a small little 'todo' item here +func (n *node) setColor(newColor *colorT) { + tk := n.tk + if (tk.color == newColor) { + // nothing to do since the colors have nto changed 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) + tk.color = newColor + if (tk.v == nil) { + return + } + if (tk.color == nil) { + log(true, "Set the node to color = nil") + tk.color = &colorNone } + log(true, "Set the node to color =", tk.color.name) + n.recreateView() +} + +func (n *node) setDefaultWidgetColor() { + n.showView() } func (n *node) setDefaultHighlight() { |
