




Prompts the user to select an item or items from a choice.
prompt-with-list items message &key choice-class interaction value-function pane-args popup-args continuation => result, successp
A sequence.
A string.
A class name.
One of 
:single-selection
, 
:multiple-selection
, or 
:extended-selection
.
A function, or 
nil
.
Arguments to pass to the pane.
Arguments to pass to the confirmer.
A function or 
nil
.
The function 
prompt-with-list
 prompts the user with a choice. The user's selection is normally returned by the prompter.
items supplies the items of the choice.
message supplies a title for the choice.
choice-class determines the type of choice used in the dialog. choice-class defaults to list-panel, and must be a sublass of choice.
interaction
 determines the interaction style of the choice in the dialog. By default 
interaction
 is 
:single-selection
. For single selection, the dialog has an 
OK
 and a 
Cancel
 button, while for other selection styles it has 
Yes
, 
No
 and 
Cancel
 buttons where 
Yes
 means accept the selection, 
No
 means accept a null selection and 
Cancel
 behaves as normal. 
The primary returned value is usually the selected items, but a 
value-function
 can be supplied that gets passed the result and can then return a new result. If 
value-function
 is 
nil
 (this is the default), then 
result
 is simply the selection.
If 
continuation
 is non-
nil
, then it must be a function with a lambda list that accepts two arguments. The 
continuation
 function is called with the values that would normally be returned by 
prompt-with-list
. On Cocoa, passing 
continuation
 causes the dialog to be made as a window-modal sheet and 
prompt-with-list
 returns immediately, leaving the dialog on the screen. The with-dialog-results macro provides a convenient way to create a 
continuation
 function.
The prompter is created by passing an appropriate pane (in this case an instance of class 
choice-class
) to popup-confirmer. Arguments can be passed to the 
make-instance
 of the pane and the call to popup-confirmer using 
pane-args
 and 
popup-args
 respectively. The initial selection can be specified using choice initargs 
:selection
, 
:selected-item
 or 
:selected-items
 in 
pane-args
.
(capi:prompt-with-list
'(1 2 3 4 5) "Select an item:")
(capi:prompt-with-list
'(1 2 3 4 5) "Select some items:"
:interaction :multiple-selection
:selection '(0 2 4))
(capi:prompt-with-list
'(1 2 3 4 5) "Select an item:"
:interaction :multiple-selection
:choice-class 'capi:button-panel)
(capi:prompt-with-list
'(1 2 3 4 5) "Select an item:"
:interaction :multiple-selection
:choice-class 'capi:button-panel
:pane-args
'(:layout-class capi:column-layout))