A
combo-field% object is a
text-field%
object that also resembles a
choice% object, because it
has a small popup button to the right of the text field. Clicking
the button pops up a menu, and selecting a menu item typically copies
the item into the text field.
If label is not #f, it is used as the combo label.
Otherwise, the combo does not display its label.
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 a menu that can be changed to
adjust the content and actions of the combo’s menu.
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<%>.
Adds a new item to the combo’s popup menu. The given label is used for
the item’s name, and the item’s callback installs the label into the
combo’s text field.
Returns a
popup-menu% that is effectively copied into the
combo’s popup menu when the combo is clicked. Only the labels can
callbacks of the menu’s items are used; the enable state, submenus,
or separators are ignored.
Specification:
Called when the user clicks the combo’s popup button. Override this method
to adjust the content of the combo menu on demand.
Default implementation:
Does nothing.