A function can be specified via the :enabled-function
initarg (inherited from menu-object), that determines whether or not the menu, menu item, or menu component is enabled. By default, a menu object is always enabled.
Consider the following example:
(defvar *on* nil) (contain (make-instance 'menu :items (list (make-instance 'menu-item :title "Foo" :enabled-function #'(lambda (menu) *on*)) (make-instance 'menu-item :title "Bar"))))
A menu with a disabled menu item
Changing the value of *on*
between t
and nil
in the Listener, using setq, results in the menu item changing between the enabled and disabled states.
By default, items in the menu bar menus and sub-menus are disabled while a dialog is on the screen on top of the active window. You can override this by passing a suitable value for the menu-item initarg :enabled-function-for-dialog
.
CAPI User Guide and Reference Manual (Macintosh version) - 01 Dec 2021 19:31:20