
The class menu-object is the superclass of all menu objects, and provides functionality for handling generic aspects of menus, menu components and menu items.
If nil , the menu object is disabled, and cannot be selected.
Callback before the menu appears.
Returns non- nil if the menu is enabled.
The object is enabled if the slot is non- nil.
The selection callback for the object.
When the menu object is about to appear on the screen, the CAPI does the following:
popup-callback (if there is one) is called with the menu object and it is allowed to make arbitrary changes to that object. nil if the menu object is enabled. Note that enabled-slot is a short-hand means of creating an enabled-function which checks the value of a slot in the menu object's interface.
The callback initarg is placed in the selection-callback , extend-callback and retract-callback slots unless these are given explicitly, and so will get called when the menu object is selected or deselected. The callback-data-function is a function that is called with no arguments and the value it returns is used as the data to the callbacks.
(capi:contain (make-instance
'capi:menu-item
:text "Press Me"
:enabled-function #'(lambda (item)
(eq (random 2)
1))))