Like buttons, individual menu items, menus, and menu-components can be disabled by setting the :enabled
keyword to nil
.
In addition, a function can be specified via the :enabled-function
keyword, that determines whether or not the menu, menu item, or menu component is enabled. Consider the following example:
(defvar *on* t)
(setq menu
(make-instance
'menu-item
:title "Foo"
:enabled-function #'(lambda (menu) *on*)))
(contain menu)
Toggling the value of *on*
between t
and nil
in the listener, using setq
, results in the menu item toggling between an enabled and disabled state.