All choices can have callbacks associated with them. These callbacks are activated when the application user makes a selection, and different sorts of gesture can have different sorts of callback associated with them.
The following callbacks are available:
(called when a deselection is made),
(called when a double-click occurs). What makes one choice different from another is that they permit different combinations of these callbacks. This is a consequence of the differing interactions. For example, you cannot have an
in a radio button panel, because you cannot extend selection in one.
Callbacks pass data to the function they call. There are default arguments for each type of callback. Using the
keyword allows you to change these defaults. Example values are
(which causes the interface to be passed as an argument to the callback function),
(which causes the value of the selected data to be passed) and
(whereby no arguments are passed). Also there is a variety of composite
values, such as
(which causes two arguments, the data and the interface, to be passed). See the
entry in the LispWorks
CAPI Reference Manual
for a complete description of
The following example uses a push button and a callback function to display the arguments it receives.
(defun show-callback-args (arg1 arg2)
(display-message "The arguments were ~S and ~S" arg1 arg2))
:text "Push Me"
:data "Here is some data"
Try changing the
to other values.
If you do not use the
argument and you do not know what the default is, you can define your callback function with lambda list
to account for all the arguments that might be passed.
Specifying a callback that is invalid for a particular choice causes a compile-time error.