diff --git a/color.go b/color.go index 52cdd8e..6440e8b 100644 --- a/color.go +++ b/color.go @@ -7,19 +7,9 @@ package main // https://jvns.ca/blog/2024/10/01/terminal-colours/ import ( - "math/rand" - - "github.com/gdamore/tcell/v2" - "github.com/awesome-gocui/gocui" - - "go.wit.com/log" ) -//w.v.SelBgColor = gocui.ColorCyan -//color.go: w.v.SelFgColor = gocui.ColorBlack -//color.go: w.v.BgColor = gocui.ColorGreen - var none gocui.Attribute = gocui.AttrNone var lightPurple gocui.Attribute = gocui.GetColor("#DDDDDD") // light purple var darkPurple gocui.Attribute = gocui.GetColor("#FFAA55") // Dark Purple @@ -142,11 +132,14 @@ var colorCheckbox colorT = colorT{ name: "normal checkbox", } +/* // 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 @@ -157,6 +150,7 @@ var colorNone colorT = colorT{none, none, none, none, none, "debug none"} // 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 (tk *guiWidget) setColor(newColor *colorT) { if tk.color == newColor { // nothing to do since the colors have nto changed @@ -173,112 +167,4 @@ func (tk *guiWidget) setColor(newColor *colorT) { // log.Log(NOW, "Set the node to color =", tk.color.name) tk.Show() } - -/* -func (w *guiWidget) disableColor() { - if w.color != &colorDisabled { - w.defaultColor = w.color - } - w.setColor(&colorDisabled) -} */ - -func (w *guiWidget) setDefaultHighlight() { - if w.v == nil { - log.Log(ERROR, "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.Log(NOW, "randColor() i =", i) - return gocui.GetColor(colors[i]) -} - -func (w *guiWidget) redoColor(draw bool) { - if w == nil { - return - } - - log.Sleep(.05) - w.setDefaultHighlight() - // w.setDefaultWidgetColor() - w.Show() - - for _, child := range w.children { - child.redoColor(draw) - } -} - -// what genius figured this out? -// originally from github.com/dimasma0305/GoFetch -func get_teminal_color_palette() string { - // var runes rune - // color1 := "\x1b[0;29m  \x1b[0m" - // runes = []rune(color1) - // view.WriteRunes(runes) - - color1 := "\x1b[0;29m  \x1b[0m" - color2 := "\x1b[0;31m  \x1b[0m" - color3 := "\x1b[0;32m  \x1b[0m" - color4 := "\x1b[0;33m  \x1b[0m" - color5 := "\x1b[0;34m  \x1b[0m" - color6 := "\x1b[0;35m  \x1b[0m" - color7 := "\x1b[0;36m  \x1b[0m" - color8 := "\x1b[0;37m  \x1b[0m" - - return color1 + " " + color2 + " " + color3 + " " + color4 + " " + color5 + " " + color6 + " " + color7 + " " + color8 -} - -func (tk *guiWidget) SetColorRed() { - tk.color = new(colorT) - tk.color.fg = gocui.ColorRed -} - -func (tk *guiWidget) setColorBlue() { - // r, g, b := - // newgreen := gocui.NewRGBColor(tcell.ColorLightBlue.RGB()) - - // tk.color.fg = gocui.ColorBlue - tk.color.bg = gocui.NewRGBColor(tcell.ColorLightBlue.RGB()) -} - -// weird. lots of color problems for me on debian sid using the traditional Andy Herzfield 'gnome' -func (tk *guiWidget) setColorButtonDenseOLD() { - /* - cellgreen := tcell.ColorLightGreen - r, g, b := cellgreen.RGB() - newgreen := gocui.NewRGBColor(r, g, b) - */ - - // tk.color.fg = gocui.ColorBlue - if tk.color == nil { - tk.color = new(colorT) - } - lightGreen := gocui.GetColor("0x90EE90") - lightGreen = gocui.GetColor("0x008000") - lightGreen = gocui.NewRGBColor(0x00, 0x80, 0x00) - - tk.color.frame = gocui.ColorYellow - tk.color.fg = gocui.AttrNone - tk.color.bg = gocui.ColorGreen - tk.color.bg = lightGreen - tk.color.bg = gocui.Attribute(tcell.ColorLightGreen) - tk.color.bg = superLightGrey - // bg: gocui.ColorGreen, - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.ColorGreen - - // tk.color = &colorButtonDense - - /* - tk.color.selFg = gocui.AttrNone - r, g, b := tcell.ColorLightGreen.RGB() - log.Info("color =", tcell.ColorLightGreen.CSS(), r, g, b) - tk.color.selBg = gocui.NewRGBColor(r, g, b) - */ -} diff --git a/colorNew.go b/colorNew.go index 76dcab6..63dd15a 100644 --- a/colorNew.go +++ b/colorNew.go @@ -6,7 +6,10 @@ package main // simple colors for light and dark import ( + "math/rand" + "github.com/awesome-gocui/gocui" + log "go.wit.com/log" ) // DONE ON ENABLE() WIDGET @@ -254,3 +257,51 @@ func (tk *guiWidget) setColorModal() { } tk.updateColor() } + +// what genius figured this out? +func (tk *guiWidget) setColorTextbox() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.ColorRed + tk.color.fg = gocui.ColorRed + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.ColorBlack + tk.color.selBg = gocui.AttrNone + } else { + tk.color.frame = gocui.ColorRed + tk.color.fg = gocui.AttrNone + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.ColorWhite + } + tk.updateColor() +} + +// what genius figured this out? +// originally from github.com/dimasma0305/GoFetch +func get_teminal_color_palette() string { + // var runes rune + // color1 := "\x1b[0;29m  \x1b[0m" + // runes = []rune(color1) + // view.WriteRunes(runes) + + color1 := "\x1b[0;29m  \x1b[0m" + color2 := "\x1b[0;31m  \x1b[0m" + color3 := "\x1b[0;32m  \x1b[0m" + color4 := "\x1b[0;33m  \x1b[0m" + color5 := "\x1b[0;34m  \x1b[0m" + color6 := "\x1b[0;35m  \x1b[0m" + color7 := "\x1b[0;36m  \x1b[0m" + color8 := "\x1b[0;37m  \x1b[0m" + + return color1 + " " + color2 + " " + color3 + " " + color4 + " " + color5 + " " + color6 + " " + color7 + " " + color8 +} + +func randColor() gocui.Attribute { + colors := []string{"Green", "#FFAA55", "Yellow", "Blue", "Red", "Black", "White"} + i := rand.Intn(len(colors)) + log.Log(NOW, "randColor() i =", i) + return gocui.GetColor(colors[i]) +} diff --git a/treeAdd.go b/treeAdd.go index 766e373..40b03ba 100644 --- a/treeAdd.go +++ b/treeAdd.go @@ -42,17 +42,17 @@ func addWidget(n *tree.Node) { switch n.WidgetType { case widget.Root: log.Log(INFO, "setStartWH() rootNode w.id =", n.WidgetId, "w.name", n.String()) - tk.color = &colorRoot + // tk.color = &colorRoot setFake(n) return case widget.Flag: - tk.color = &colorFlag + // tk.color = &colorFlag setFake(n) return case widget.Window: tk.frame = false tk.labelN = tk.GetText() + " X" - tk.setColor(&colorWindow) + // tk.setColor(&colorWindow) me.newWindowTrigger <- tk redoWindows(0, 0) hideHelp() @@ -64,7 +64,7 @@ func addWidget(n *tree.Node) { n.State.Label = "moreSTDOUT" return case widget.Tab: - tk.color = &colorTab + // tk.color = &colorTab return case widget.Button: if tk.node.IsEnabled() { @@ -84,10 +84,12 @@ func addWidget(n *tree.Node) { case widget.Textbox: n.State.Label = "" tk.labelN = " " - tk.color = &colorDropdown + // tk.color = &colorDropdown + tk.setColorInput() return case widget.Combobox: - tk.color = &colorCombobox + // tk.color = &colorCombobox + tk.setColorInput() return case widget.Box: // tk.color = &colorBox diff --git a/treeDraw.go b/treeDraw.go index c2d8864..7eeb88c 100644 --- a/treeDraw.go +++ b/treeDraw.go @@ -187,13 +187,13 @@ func (tk *guiWidget) drawView() { } func (w *guiWidget) DrawAt(offsetW, offsetH int) { - w.setColor(&colorActiveW) + // w.setColor(&colorActiveW) w.placeWidgets(offsetW, offsetH) // compute the sizes & places for each widget // w.dumpWidget(fmt.Sprintf("DrawAt(%d,%d)", offsetW, offsetH)) } func (w *guiWidget) simpleDrawAt(offsetW, offsetH int) { - w.setColor(&colorActiveW) + // w.setColor(&colorActiveW) w.dumpWidget("simpleDrawAt()") }