superclass: object% | ||
|
A radio-box% control allows the user to select one of number of mutually exclusive items. The items are displayed as a vertical column or horizontal row of labelled radio buttons. Unlike a list-control<%>, the set of items in a radio-box% cannot be changed dynamically.
Whenever the user changes the selected radio button, the radio box’s callback procedure is invoked. A callback procedure is provided as an initialization argument when each radio box is created.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
→ (is-a?/c radio-box%) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
choices : (or/c (listof label-string?) (listof (is-a?/c bitmap%))) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
selection : nonnegative-exact-integer? = 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
font : (is-a?/c font%) = normal-control-font | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enabled : any/c = #t | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vert-margin : (integer-in 0 1000) = 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
horiz-margin : (integer-in 0 1000) = 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
min-width : (integer-in 0 10000) = graphical-minimum-width | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
min-height : (integer-in 0 10000) = graphical-minimum-height | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stretchable-width : any/c = #f | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stretchable-height : any/c = #f |
Creates a radio button set with string or bitmap labels. The choices list specifies the radio button labels; the list of choices must be homogeneous, either all strings or all bitmaps.
If & occurs in label, it is specially parsed as for button%.
Each string in choices can also contain a &, which creates a mnemonic for clicking the corresponding radio button. As for label, a && is converted to a &.
If choices is a list of bitmaps, then the bitmaps must be valid (see ok? in bitmap%) and not installed in a bitmap-dc% object; otherwise, an exn:fail:contract exception is raised. If the bitmap has a mask (see get-loaded-mask in bitmap%) that is the same size as the bitmap, then the mask is used for the label; furthermore, in contrast to the limitations of draw-bitmap in dc<%>, non-monochrome label masks work consistently on all platforms.
If label is a string, it is used as the label for the radio box. Otherwise, the radio box does not display its label.
The callback procedure is called (with the event type 'radio-box) when the user changes the radio button selection.
The style argument must include either 'vertical for a collection of radio buttons vertically arranged, or 'horizontal for a horizontal arrangement. If style includes 'vertical-label, then the radio box is created with a label above the control; if style does not include 'vertical-label (and optionally includes 'horizontal-label), then the label is created to the left of the radio box. If style includes 'deleted, then the radio box is created as hidden, and it does not affect its parent’s geometry; the radio box can be made active later by calling parent’s add-child method.
By default, the first radio button is initially selected. If selection is positive, it is passed to set-selection to set the initial radio button selection.
The font argument determines the font for the control. For information about the enabled argument, see window<%>. For information about the horiz-margin and vert-margin arguments, see subarea<%>. For information about the min-width, min-height, stretchable-width, and stretchable-height arguments, see area<%>.
enable? : any/c |
n : nonnegative-exact-integer? |
enable? : any/c |
Overrides enable in window<%>.
If a single argument is provided, the entire radio box is enabled or disabled.
If two arguments are provided, then if enable? is #f, the nth radio button is disabled, otherwise it is enabled (assuming the entire radio box is enabled). Radio buttons are numbered from 0. If n is equal to or larger than the number of radio buttons in the radio box, an exn:fail:contract exception is raised.
(send a-radio-box get-item-label n) → string? |
n : nonnegative-exact-integer? |
Gets the label of a radio button by position. Radio buttons are numbered from 0. If n is equal to or larger than the number of radio buttons in the radio box, an exn:fail:contract exception is raised.
(send a-radio-box get-item-plain-label n) → string? |
n : nonnegative-exact-integer? |
Like get-item-label, except that the label must be a string and &s in the label are removed.
(send a-radio-box get-number) → nonnegative-exact-integer? |
Returns the number of radio buttons in the radio box.
(send a-radio-box get-selection) → nonnegative-exact-integer? |
Gets the position of the selected radio button. Radio buttons are numbered from 0.
(send a-radio-box is-enabled?) → boolean? |
(send a-radio-box is-enabled? n) → boolean? |
n : nonnegative-exact-integer? |
Overrides is-enabled? in window<%>.
If no arguments are provided, the enable state of the entire radio box is reported.
Otherwise, returns #f if nth radio button is disabled (independent of disabling the entire radio box), #t otherwise. Radio buttons are numbered from 0. If n is equal to or larger than the number of radio buttons in the radio box, an exn:fail:contract exception is raised.
(send a-radio-box set-selection n) → void? |
n : nonnegative-exact-integer? |
Sets the selected radio button by position. (The control’s callback procedure is not invoked.) Radio buttons are numbered from 0. If n is equal to or larger than the number of radio buttons in the radio box, an exn:fail:contract exception is raised.
A radio box’s selection can be changed by the user clicking the control, and such changes do not go through this method; use the controlcallback procedure (provided as an initialization argument) to monitor selection changes.