This commit is contained in:
2026-02-19 14:49:31 +01:00
parent bb3d4ead51
commit 5a4f9a3334
4 changed files with 41 additions and 2 deletions

View File

@@ -10,6 +10,8 @@
menu-set-title!
menu->json
with-menu-item
menu-for-each
ww-menu-item-callback
)
@@ -81,6 +83,21 @@
(hash-set! h 'menu r)
h)))
(define (menu-for-each menu cb)
(let ((items (ww-menu-items menu)))
(letrec ((f (λ (items)
(if (null? items)
#t
(let ((item (car items)))
(let ((submenu (ww-menu-item-submenu item)))
(if (eq? submenu #f)
(cb item)
(menu-for-each submenu cb))))
)
)
))
(f items))))
(define (menu->json menu)
(let ((o (open-output-string)))
(write-json (menu->hash menu) o)