3.39 radio-box%
Implements: control<%>
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.
(->newradio-box% (label_) (choices_) (parent_) [(callback_)] [(style_)] [(selection_)] [(font_)] [(enabled_)] [(vert-margin_)] [(horiz-margin_)] [(min-width_)] [(min-height_)] [(stretchable-width_)] [(stretchable-height_)])radio-box%object
label: string (up to 200 characters) or#f
choices: list of strings (up to 200 characters each) orbitmap%objects
parent:frame%,dialog%,panel%, orpane%object
callback=: procedure of two arguments: a(lambda(rbe) (void))radio-box%object and acontrol-event%object
style='(vertical): list of symbols in'(horizontal vertical vertical-label horizontal-label deleted)
selection=0: exact non-negative integer
font=:normal-control-fontfont%object
enabled=#t: boolean
vert-margin=2: exact integer in [0, 1000]
horiz-margin=2: exact integer in [0, 1000]
min-width=graphical minimum width: exact integer in [0, 10000]
min-height=graphical minimum height: exact integer in [0, 10000]
stretchable-width=#f: boolean
stretchable-height=#f: booleanCreates a radio button set with string or bitmap labels. The
choiceslist specifies the radio button labels; the list of choices must be homogeneous, either all strings or all bitmaps.If an ampersand (``&'') occurs in
label, it is specially parsed; under Windows and X, the character following an ampersand is underlined in the displayed control to indicate a keyboard mnemonic. (Under Mac OS X, mnemonic underlines are not shown.) The underlined mnemonic character must be a letter or a digit. The user can move the keyboard focus to the radio box by typing the mnemonic when the control's top-level-window contains the keyboard focus. The user must also hold down the Meta or Alt key if the keyboard focus is currently in a control that handles normal alphanumeric input. The ampersand itself is removed fromlabelbefore it is displayed for the control; a double-ampersand inlabelis converted to a single ampersand (with no mnemonic underlining). Under Mac OS X, a parenthesized mnemonic character is removed (along with any surrounding space) before the label is displayed, since a parenthesized mnemonic is often used for non-Roman languages. Finally, any text after a tab character is removed on all platforms. Mnemonic keyboard events are handled byon-traverse-char(but not under Mac OS X).Each string in
choicescan also contain an ampersand, which creates a mnemonic for clicking the corresponding radio button. As forlabel, a double ampersand is converted to a single ampersand.If
choicesis a list of bitmaps, then the bitmaps must be valid (seeok?inbitmap%) and not installed in abitmap-dc%object; otherwise, anexn:fail:contractexception is raised. If the bitmap has a mask (seeget-loaded-maskinbitmap%) that is the same size as the bitmap, then the mask is used for the label; furthermore, in contrast to the limitations ofdraw-bitmapindc<%>, non-monochrome label masks work consistently on all platforms.If
labelis a string, it is used as the label for the radio box. Otherwise, the radio box does not display its label.The
callbackprocedure is called (with the event type'radio-box) when the user changes the radio button selection.The
styleargument must include either'verticalfor a collection of radio buttons vertically arranged, or'horizontalfor a horizontal arrangement. Ifstyleincludes'vertical-label, then the radio box is created with a label above the control; ifstyledoes not include'vertical-label(and optionally includes'horizontal-label), then the label is created to the left of the radio box. Ifstyleincludes'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 callingparent'sadd-childmethod.By default, the first radio button is initially selected. If
selectionis positive, it is passed toset-selectionto set the initial radio button selection.The
fontargument determines the font for the control. For information about theenabledargument, seewindow<%>. For information about thehoriz-marginandvert-marginarguments, seesubarea<%>. For information about themin-width,min-height,stretchable-width, andstretchable-heightarguments, seearea<%>.
Methods
enable
get-item-label
get-item-plain-label
get-number
get-selection
is-enabled?
set-selection
All Methods
accept-drop-files from window<%>
client->screen from window<%>
command from control<%>
enable from radio-box%
overrides enable from window<%>
focus from window<%>
get-client-size from window<%>
get-cursor from window<%>
get-font from control<%>
get-graphical-min-size from area<%>
get-handle from window<%>
get-height from window<%>
get-item-label from radio-box%
get-item-plain-label from radio-box%
get-label from window<%>
get-number from radio-box%
get-parent from area<%>
get-plain-label from window<%>
get-selection from radio-box%
get-size from window<%>
get-top-level-window from area<%>
get-width from window<%>
get-x from window<%>
get-y from window<%>
has-focus? from window<%>
horiz-margin from subarea<%>
is-enabled? from radio-box%
overrides is-enabled? from window<%>
is-shown? from window<%>
min-height from area<%>
min-width from area<%>
on-drop-file from window<%>
on-focus from window<%>
on-move from window<%>
on-size from window<%>
on-subwindow-char from window<%>
on-subwindow-event from window<%>
on-superwindow-enable from window<%>
on-superwindow-show from window<%>
popup-menu from window<%>
refresh from window<%>
screen->client from window<%>
set-cursor from window<%>
set-label from window<%>
set-selection from radio-box%
show from window<%>
stretchable-height from area<%>
stretchable-width from area<%>
vert-margin from subarea<%>