add keypress '2' as a debugging tool

This commit is contained in:
Jeff Carr 2025-01-31 22:56:05 -06:00
parent 39e851c76c
commit a8a918655a
4 changed files with 37 additions and 11 deletions

View File

@ -84,16 +84,18 @@ func (tk *guiWidget) showDropdown() {
// var items []string
// items = tk.node.State.Strings
//for i, s := range items {
for i, s := range tk.node.Strings() {
log.Log(GOCUI, "showDropdown()", tk.String(), i, s)
ddItems += s + "\n"
}
/*
for i, s := range tk.node.Strings() {
// log.Log(GOCUI, "showDropdown()", tk.String(), i, s)
ddItems += s + "\n"
}
*/
log.Log(GOCUI, "new dropdown items should be set to:", ddItems)
sizeW, sizeH := tk.Size()
log.Log(GOCUI, "showDropdown() size W,H=", sizeW, sizeH)
// log.Log(GOCUI, "new dropdown items should be set to:", ddItems)
// sizeW, sizeH := tk.Size()
// log.Log(GOCUI, "showDropdown() size W,H=", sizeW, sizeH)
startW, startH := tk.Position()
log.Log(GOCUI, "showDropdown() location W,H=", startW, startH)
// log.Log(GOCUI, "showDropdown() location W,H=", startW, startH)
me.dropdownV.MoveToOffset(startW+3, startH+2)
me.dropdownV.labelN = ddItems
me.dropdownV.Show()
@ -177,7 +179,7 @@ func dropdownUnclicked(w, h int) {
// log.Log(GOCUI, fmt.Sprintf("dropdownUnclicked() there was no dropdown widget at (w=%d h=%d)", mouseW, mouseH))
return
}
log.Log(GOCUI, "dropdownUnclicked()", d.node.Strings(), "end. now try to enable me.dropdownV")
// log.Log(GOCUI, "dropdownUnclicked()", d.node.Strings(), "end. now try to enable me.dropdownV")
dtext := strings.Join(d.node.Strings(), "\n")
tk := me.dropdownV
if dtoggle {

View File

@ -9,6 +9,7 @@ import (
"github.com/awesome-gocui/gocui"
"go.wit.com/log"
"go.wit.com/widget"
)
// THIS IS A STANDARD.
@ -44,6 +45,7 @@ func registerHandlers(g *gocui.Gui) {
g.SetKeybinding("", 'M', gocui.ModNone, dumpWidgetPlacement) // 'M' list all widgets with positions
g.SetKeybinding("", 'L', gocui.ModNone, dumpWidgets) // 'L' list all widgets in tree view
g.SetKeybinding("", 'd', gocui.ModNone, theLetterD) // 'd' toggles on and off debugging buttons
g.SetKeybinding("", '2', gocui.ModNone, theNotsure) // '2' for testing new ideas
g.SetKeybinding("", 'q', gocui.ModNone, quit) // 'q' only exits gocui. plugin stays alive (?)
}
@ -60,6 +62,21 @@ func setSuperMouse(g *gocui.Gui, v *gocui.View) error {
return nil
}
// use this to test code ideas
func theNotsure(g *gocui.Gui, v *gocui.View) error {
log.Info("got keypress 2. now what?")
w, h := g.MousePosition()
for _, tk := range findByXY(w, h) {
if tk.WidgetType == widget.Stdout {
log.Info("skipping stdout")
continue
}
log.Log(GOCUI, fmt.Sprintf("findByXY() 'f' key %-8s wId=%4d at (%3d,%3d) %s", tk.WidgetType, tk.node.WidgetId, w, h, tk.node.String()))
tk.Hide()
}
return nil
}
func theHide(g *gocui.Gui, v *gocui.View) error {
var w *guiWidget
w = me.treeRoot.TK.(*guiWidget)

View File

@ -125,9 +125,14 @@ func mouseDown(g *gocui.Gui, v *gocui.View) error {
maxX, _ := g.Size()
findUnderMouse()
// why was this here?
// findUnderMouse()
msg := fmt.Sprintf("mouseDown() Mouse really down at: %d,%d", mx, my)
// TODO: USE THIS TO MAKE TEMPORARY HELP / INSTRUCTION DIALOGS
// this message will pop up when you click on the magic thing
// figure out how this works and make it generically useful.
msg := fmt.Sprintf("This is -222 widget demo. %d,%d", mx, my)
// dropdownClicked(mx, my)
x := mx - len(msg)/2
if x < 0 {

View File

@ -53,6 +53,7 @@ func findByXYreal(widget *guiWidget, w int, h int) []*guiWidget {
return widgets
}
// returns the "highest priority widget under the mouse
func findUnderMouse() *guiWidget {
w, h := me.baseGui.MousePosition()
@ -88,6 +89,7 @@ func findUnderMouse() *guiWidget {
return found
}
// panics. todo: fix ctrl-mouse click?
// find the widget under the mouse click
func ctrlDown(g *gocui.Gui, v *gocui.View) error {
var found *guiWidget