10.5.3 Abstract Gadget Classes

10.5.3.5 The Radio-Box and Check-Box Gadgets

A radio box is a special kind of gadget that constrains one or more toggle buttons. At any one time, only one of the buttons managed by the radio box may be "on." A radio box is responsible for laying out its contents (the buttons that it contains). So that the value of the radio box can be properly computed, it is a client of each of its buttons. As the current selection changes, the previously selected button and the newly selected button both have their value-changed-callback handlers invoked.

Like a radio box, a check box is a gadget that constrains a number of toggle buttons, but unlike a radio box, a check box may have zero or more of its buttons selected at a time.

radio-box [Class]

Summary:
The class that implements a radio box. It is a subclass of value-gadget and oriented-gadget-mixin.

:current-selection [Initarg]
Summary:
This is used to specify which button, if any, should be initially selected.

radio-box-current-selection [Generic Function]
Arguments:
radio-box
(setf radio-box-current-selection) [Generic Function]
Arguments:
button radio-box
Summary:
Returns (or sets) the current selection for the radio box. The current selection will be one of the toggle buttons in the box.

radio-box-selections [Generic Function]
Arguments:
radio-box
Summary:
Returns a sequence of all the selections in the radio box. The elements of the sequence will be toggle buttons.

gadget-value [Generic Function]
Arguments:
(button radio-box)
Summary:
Returns the selected button (i.e., returns the same value as radio-box-current-selection).

radio-box-pane [Class]
Summary:
The class that implements a portable radio box; it is a subclass of radio-box.

check-box [Class]
Summary:
The class that implements a check box. check-box is a subclass of value-gadget and oriented-gadget-mixin.

:current-selection [Initarg]
Summary:
This is used to specify which button, if any, should be initially selected.

check-box-current-selection [Generic Function]
Arguments:
check-box
(setf check-box-current-selection) [Generic Function]
Arguments:
button check-box
Summary:
Returns (or sets) the current selection for the check box. The current selection will be a list of zero or more of the toggle buttons in the box.

check-box-selections [Generic Function]
Arguments:
check-box
Summary:
Returns a sequence of all the selections in the check box. The elements of the sequence will be toggle buttons.

gadget-value [Generic Function]
Arguments:
(button check-box)
Summary:
Returns the selected buttons as a list (i.e., returns the same value as check-box-current-selection).

check-box-pane [Class]
Summary:
The class that implements a portable check box; it is a subclass of check-box.

with-radio-box [Macro]
Arguments:
(&rest options&key (type one-of)&allow-other-keys)&body body
Summary:
Creates a radio box whose buttons are created by the forms in body. The macro radio-box-current-selection can be wrapped around one of forms in body in order to indicate that that button is the current selection.

A radio box will be created if type is :one-of, a check box if :some-of.

For example, the following creates a radio box with three buttons in it, the second of which is initially selected.

           (with-radio-box () 
                           (make-pane 'toggle-button :label "Mono") 
                           (radio-box-current-selection 
                            (make-pane 'toggle-button :label "Stereo"))
                           (make-pane 'toggle-button :label "Quad")) 
The following simpler form can be used when you do not need to control the appearance of each button closely.

           (with-radio-box () "Mono" "Stereo" "Quad") 

CLIM 2.0 User's Guide - OCT 1998

Generated with Harlequin WebMaker