Whenever the selection of a choice item is changed by the user, the choice item’s callback procedure is invoked. A callback procedure is provided as an initialization argument when each choice item is created.
See also list-box%.
(new choice% [label label] [choices choices] [parent parent] [ [callback callback] [style style] [selection selection] [font font] [enabled enabled] [vert-margin vert-margin] [horiz-margin horiz-margin] [min-width min-width] [min-height min-height] [stretchable-width stretchable-width] [stretchable-height stretchable-height]]) → (is-a?/c choice%) label : (or/c label-string? #f) choices : (listof label-string?)
(or/c (is-a?/c frame%) (is-a?/c dialog%) (is-a?/c panel%) (is-a?/c pane%))
callback : ((is-a?/c choice%) (is-a?/c control-event%) . -> . any) = (lambda (c e) (void))
(listof (or/c 'horizontal-label 'vertical-label 'deleted)) = null selection : exact-nonnegative-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
If & occurs in label, it is specially parsed as for button%.
The choices list specifies the initial list of user-selectable items for the control. The initial set of choices determines the control’s minimum graphical width (see Geometry Management for more information).
If style includes 'vertical-label, then the choice item 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 choice item. If style includes 'deleted, then the choice item is created as hidden, and it does not affect its parent’s geometry; the choice item can be made active later by calling parent’s add-child method.
By default, the first choice (if any) is initially selected. If selection is positive, it is passed to set-selection to set the initial choice selection. Although selection normally must be less than the length of choices, it can be 0 when choices is empty.