diff options
| author | Jeff Carr <[email protected]> | 2025-03-04 14:33:39 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-03-04 14:33:39 -0600 |
| commit | a88937c508d2921aa5e6fa335450ee8f05e7fbf9 (patch) | |
| tree | f3129c304e6509c8ec7fceef66238f97f337ddd0 /find.go | |
| parent | 96eac58cf59d2c735cd2b88e4458fff12422e121 (diff) | |
working on delete table
Diffstat (limited to 'find.go')
| -rw-r--r-- | find.go | 50 |
1 files changed, 44 insertions, 6 deletions
@@ -176,12 +176,6 @@ func findWindowUnderMouse() *guiWidget { return nil } -// todo: use this? -func ctrlDown(g *gocui.Gui, v *gocui.View) error { - log.Info("todo: clicked with ctrlDown") - return nil -} - func (tk *guiWidget) findParentWindow() *guiWidget { if tk.WidgetType() == widget.Window { return tk @@ -191,3 +185,47 @@ func (tk *guiWidget) findParentWindow() *guiWidget { } return tk.parent.findParentWindow() } + +func (tk *guiWidget) findWidgetByName(name string) *guiWidget { + if tk.cuiName == name { + return tk + } + for _, child := range tk.children { + found := child.findWidgetByName(name) + if found != nil { + return found + } + } + return nil +} + +func (tk *guiWidget) findWidgetByView(v *gocui.View) *guiWidget { + if tk.v == v { + return tk + } + if tk.cuiName == v.Name() { + log.Log(NOW, "findWidget() error. names are mismatched or out of sync", tk.cuiName) + log.Log(NOW, "findWidget() or maybe the view has been deleted") + // return tk + } + for _, child := range tk.children { + found := child.findWidgetByView(v) + if found != nil { + return found + } + } + return nil +} + +func (tk *guiWidget) findWidgetById(id int) *guiWidget { + if tk.WidgetId() == id { + return tk + } + for _, child := range tk.children { + found := child.findWidgetById(id) + if found != nil { + return found + } + } + return nil +} |
