From bf8cbddf1ac6b65c1a77dae0b7ccd910a9e96a3d Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 4 Feb 2025 14:27:32 -0600 Subject: add findWindows() --- find.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'find.go') diff --git a/find.go b/find.go index 1c8deb9..9191b06 100644 --- a/find.go +++ b/find.go @@ -58,6 +58,26 @@ func (tk *guiWidget) findByXYreal(w int, h int) []*guiWidget { return widgets } +// returns all the windows from the root of the binary tree +func findWindows() []*guiWidget { + rootW := me.treeRoot.TK.(*guiWidget) + return rootW.findWindows() +} + +// walk the binary tree looking for WidgetType == Window +func (tk *guiWidget) findWindows() []*guiWidget { + var found []*guiWidget + + if tk.node.WidgetType == widget.Window { + found = append(found, tk) + } + + for _, child := range tk.children { + found = append(found, child.findWindows()...) + } + return found +} + func (tk *guiWidget) setFullSize() rectType { r := tk.getFullSize() -- cgit v1.2.3