A choice which displays its selected items and its unselected items in disjoint lists, and facilitates easy movement of items between these lists.
The class
double-list-panel
is a choice which displays its
items
in two list-panels. One list contains the selected items and the other contains the unselected items. There is a pair of arrow buttons which move highlighted items between the lists.
The default
interaction
of
double-list-panel
is
:extended-selection
.
The
selection-callback
,
extend-callback
or
retract-callback
is called as appropriate when items are moved between the lists. There is no
action-callback
for
double-list-panel
.
The user selects and de-selects items in the
double-list-panel
by moving them between the two lists. There are three ways to move the items:
Return
.(capi:display
(make-instance
'capi:double-list-panel
:items '("John" "Geoff" "chicken" "blue" "water")
:selection-callback
#'(lambda (item choice)
(capi:display-message "selecting ~a" item))
:extend-callback
#'(lambda(item choice)
(capi:display-message "extending ~a" item))
:retract-callback
#'(lambda(item choice)
(capi:display-message "deselecting ~a" item))))