tray icon behaviour

This commit is contained in:
2026-04-30 12:13:29 +02:00
parent 9dba10ea77
commit 62033eaadc
4 changed files with 28 additions and 11 deletions
+15 -4
View File
@@ -6,6 +6,8 @@
(provide wv-menu
wv-menu-item
is-wv-menu?
wv-menu?
wv-menu-empty?
wv-menu-set-callback!
wv-menu-set-icon!
wv-menu-set-title!
@@ -16,8 +18,6 @@
wv-menu-item-id
wv-menu-id
)
(define-struct ww-menu-item*
(id [title #:mutable] [icon-url #:mutable] [callback #:mutable] [submenu #:mutable] [separator #:mutable])
@@ -37,6 +37,9 @@
(define (wv-menu-id m)
(ww-menu*-id m))
(define (wv-menu? mnu)
(is-wv-menu? mnu))
(define (is-wv-menu? mnu)
(if (ww-menu*? mnu)
@@ -61,10 +64,18 @@
(when (symbol? (car items))
(set! menu-id (car items))
(set! items (cdr items)))
(when (list? (car items))
(set! items (car items)))
(if (null? items)
(set! items '())
(when (list? (car items))
(set! items (car items))))
(make-ww-menu* menu-id items)))
(define (wv-menu-empty? menu)
(if (is-wv-menu? menu)
(null? (ww-menu*-items menu))
(error "wv-empty-menu?: argument is not a menu")))
(define (wv-menu-item id title
#:icon-url [icon-url #f]
#:callback [callback (lambda args #t)]