On this page:
append
clear
find-string
get-number
get-selection
get-string
get-string-selection
set-selection
set-string-selection
Inherited methods:
from control<%>
command
get-font
from window<%>
accept-drop-files
client->screen
enable
focus
get-client-size
get-cursor
get-handle
get-height
get-label
get-plain-label
get-size
get-width
get-x
get-y
has-focus?
is-enabled?
is-shown?
on-drop-file
on-focus
on-move
on-size
on-subwindow-char
on-subwindow-event
on-superwindow-enable
on-superwindow-show
popup-menu
refresh
screen->client
set-cursor
set-label
show
from area<%>
get-graphical-min-size
get-parent
get-top-level-window
min-height
min-width
stretchable-height
stretchable-width
from subarea<%>
horiz-margin
vert-margin

A list control gives the user a list of string items to choose from. There are two built-in classes that implement list-control<%>:
  • choice% – presents the list in a popup menu (so the user can choose only one item at a time)

  • list-box% – presents the list in a scrolling box, allowing the use to choose one item (if the style includes 'single) or any number of items

In either case, the set of user-selectable items can be changed dynamically.

(send a-list-control append item)  void?
  item : string
Adds a new item to the list of user-selectable items. The current selection is unchanged (unless the list control is an empty choice control, in which case the new item is selected).

(send a-list-control clear)  void?
Removes all user-selectable items from the control.

(send a-list-control find-string s)
  (or/c exact-nonnegative-integer? false/c)
  s : string
Finds a user-selectable item matching the given string. If no matching choice is found, #f is returned, otherwise the index of the matching choice is returned (items are indexed from 0).

(send a-list-control get-number)  exact-nonnegative-integer?
Returns the number of user-selectable items in the control (which is also one more than the greatest index in the list control).

Returns the index of the currently selected item (items are indexed from 0). If the choice item currently contains no choices or no selections, #f is returned. If multiple selections are allowed and multiple items are selected, the index of the first selection is returned.

(send a-list-control get-string n)
  (and/c immutable? label-string?)
  n : exact-nonnegative-integer?
Returns the item for the given index (items are indexed from 0). If the provided index is larger than the greatest index in the list control, an exn:fail:contract exception is raised.

Returns the currently selected item. If the control currently contains no choices, #f is returned. If multiple selections are allowed and multiple items are selected, the first selection is returned.

(send a-list-control set-selection n)  void?
  n : exact-nonnegative-integer?
Selects the item specified by the given index (items are indexed from 0). If the given index larger than the greatest index in the list control, an exn:fail:contract exception is raised.

In a list box control, all other items are deselected, even if multiple selections are allowed in the control. See also select in list-box%.

The control’s callback procedure is not invoked when this method is called.

The list control’s selection can be changed by the user clicking the control, and such changes do not go through this method; use the control callback procedure (provided as an initialization argument) to monitor selection changes.

(send a-list-control set-string-selection s)  void?
  s : string
Selects the item that matches the given string. If no match is found in the list control, an exn:fail:contract exception is raised.

In a list box control, all other items are deselected, even if multiple selections are allowed in the control. See also select in list-box%.

The control’s callback procedure is not invoked when this method is called.

The list control’s selection can be changed by the user clicking the control, and such changes do not go through this method; use the control callback procedure (provided as an initialization argument) to monitor selection changes.