diff options
| author | Jeff Carr <[email protected]> | 2023-04-03 10:26:47 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-04-03 10:26:47 -0500 |
| commit | 4b6207743b90968d6b822032a4355e43b6ce6da9 (patch) | |
| tree | 2cb9f13d5e95f14e165f8e41e8484320b7454177 /toolkit/gocui/color.go | |
| parent | 0320ebe4bb49ea80761d77af80fa208157ffdb89 (diff) | |
gocui: working towards correct layout
make a gocui widget binary tree
more debugging cleanups
sample button app displays in gocui
geometry logic closer to correct
improvements in gocui layout
continued attempts to clean up tabs
dump binary tree
moving towards proper chan callback()
deprecate Widget.Name
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'toolkit/gocui/color.go')
| -rw-r--r-- | toolkit/gocui/color.go | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/toolkit/gocui/color.go b/toolkit/gocui/color.go new file mode 100644 index 0000000..efe44dd --- /dev/null +++ b/toolkit/gocui/color.go @@ -0,0 +1,113 @@ +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 + } + // 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.SetDefaultWidgetColor() + + for _, child := range w.children { + child.redoColor(draw) + } +} |
