From a8a918655a4831c3682730fdf7fe54de98837681 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 31 Jan 2025 22:56:05 -0600 Subject: [PATCH] add keypress '2' as a debugging tool --- dropdown.go | 20 +++++++++++--------- eventBindings.go | 17 +++++++++++++++++ eventMouse.go | 9 +++++++-- find.go | 2 ++ 4 files changed, 37 insertions(+), 11 deletions(-) diff --git a/dropdown.go b/dropdown.go index 9d306df..f40f25d 100644 --- a/dropdown.go +++ b/dropdown.go @@ -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 { diff --git a/eventBindings.go b/eventBindings.go index 5c0a599..330c255 100644 --- a/eventBindings.go +++ b/eventBindings.go @@ -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) diff --git a/eventMouse.go b/eventMouse.go index 92e09eb..3a5e0a6 100644 --- a/eventMouse.go +++ b/eventMouse.go @@ -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 { diff --git a/find.go b/find.go index a2978a6..f94da20 100644 --- a/find.go +++ b/find.go @@ -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