The class push-button-panel
inherits all of its behavior from button-panel, which itself inherits most of its behavior from choice. Thus, the push button panel can accept items, callbacks, and so on.
(defun test-callback (data interface)
(capi:display-message
"Pressed ~S" data))
(capi:contain (make-instance 'capi:push-button-panel
:title "Press a button:"
:items
'("Press Me" "No, Me")
:selection-callback
'test-callback))
(capi:contain (make-instance 'capi:push-button-panel
:title "Press a button:"
:items
'("Press Me" "No, Me")
:selection-callback
'test-callback
:layout-class
'capi:column-layout))
(capi:contain (make-instance 'capi:push-button-panel
:title "Press a button:"
:items '(1 2 3 4 5 6 7 8 9)
:selection-callback
'test-callback
:layout-class
'capi:grid-layout
:layout-args
'(:columns 3)))
There is a further example here:
(example-edit-file "capi/buttons/buttons")
CAPI User Guide and Reference Manual (Unix version) - 3 Aug 2017