3.13 combo-field%
Superclass: text-field%
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. By default,
clicking the button pops up a menu, and selecting a menu item copies
the item into the text field.
(->newcombo-field% (label_) (choices_) (parent_) [(callback_)] [(init-value_)] [(style_)] [(font_)] [(enabled_)] [(vert-margin_)] [(horiz-margin_)] [(min-width_)] [(min-height_)] [(stretchable-width_)] [(stretchable-height_)])combo-field%object
label: string (up to 200 characters) or#f
choices: list of strings (up to 200 characters each)
parent:frame%,dialog%,panel%, orpane%object
callback=: procedure of two arguments: a(lambda(cfe) (void))combo-field%object and acontrol-event%object
init-value="": string
style=null: list of symbols in'(vertical-label horizontal-label deleted)
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=0: exact integer in [0, 10000]
min-height=0: exact integer in [0, 10000]
stretchable-width=#t: boolean
stretchable-height=#f: booleanIf
labelis not#f, it is used as the combo label. Otherwise, the combo does not display its label.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 combo 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).The
choiceslist specifies the initial list of items for the combo's popup menu. Theappendmethod adds a new item to the menu with a callback to install the appended item into the combo's text field. Theget-menumethod returns the combo's menu to allow arbitrary other operations. This menu might not be used at all ifon-popupis overridden.The
callbackprocedure 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; seeon-traverse-charintop-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-valueis not"", the minimum width of the text item is made wide enough to showinit-value. Otherwise, a built-in default width is selected.If
styleincludes'vertical-label, then the combo 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 combo. Ifstyleincludes'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 callingparent'sadd-childmethod. .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
append
get-menu
on-popup
All Methods
accept-drop-files from window<%>
append from combo-field%
client->screen from window<%>
command from control<%>
enable from window<%>
focus from window<%>
get-client-size from window<%>
get-cursor from window<%>
get-editor from text-field%
get-font from control<%>
get-graphical-min-size from area<%>
get-handle from window<%>
get-height from window<%>
get-label from window<%>
get-menu from combo-field%
get-parent from area<%>
get-plain-label from window<%>
get-size from window<%>
get-top-level-window from area<%>
get-value from text-field%
get-width from window<%>
get-x from window<%>
get-y from window<%>
has-focus? from window<%>
horiz-margin from subarea<%>
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-popup from combo-field%
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-value from text-field%
show from window<%>
stretchable-height from area<%>
stretchable-width from area<%>
vert-margin from subarea<%>