|→ (is-a?/c combo-field%)|
|label : (or/c label-string? false/c)|
|choices : (listof label-string?)|
|init-value : string = ""|
|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 = #t|
|stretchable-height : any/c = #f|
If & occurs in label, it is specially parsed as for button%.
The choices list specifies the initial list of items for the combo’s popup menu. The append method adds a new item to the menu with a callback to install the appended item into the combo’s text field. The get-menu method returns the combo’s menu to allow arbitrary other operations. This menu might not be used at all if on-popup is overridden.
The callback procedure is called when the user changes the text in the combo or presses the Enter key (and Enter is not handled by the combo’s frame or dialog; see on-traverse-char in top-level-window<%> ). If the user presses Enter, the type of event passed to the callback is 'text-field-enter, otherwise it is 'text-field.
If init-value is not "", the minimum width of the text item is made wide enough to show init-value. Otherwise, a built-in default width is selected.
If style includes 'vertical-label, then the combo 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 combo. If style includes 'deleted, then the combo is created as hidden, and it does not affect its parent’s geometry; the combo can be made active later by calling parent’s add-child method..
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<%>.
Default implementation: Gets a menu from get-menu, sets its minimum width to match the combo control’s width, and then pops up the menu.