class
	EV_LIST

General
	cluster: interface
	description: "Displays a list of items from which the user can select."
	keywords: "list, select, menu"
	create: make_with_strings, default_create

Ancestors
	EV_LIST_ITEM_LIST*

Action sequences
	conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
	deselect_actions: EV_NOTIFY_ACTION_SEQUENCE
	dock_ended_actions: EV_NOTIFY_ACTION_SEQUENCE
	dock_started_actions: EV_NOTIFY_ACTION_SEQUENCE
	drop_actions: EV_PND_ACTION_SEQUENCE
	focus_in_actions: EV_NOTIFY_ACTION_SEQUENCE
	focus_out_actions: EV_NOTIFY_ACTION_SEQUENCE
	key_press_actions: EV_KEY_ACTION_SEQUENCE
	key_press_string_actions: EV_KEY_STRING_ACTION_SEQUENCE
	key_release_actions: EV_KEY_ACTION_SEQUENCE
	mouse_wheel_actions: EV_INTEGER_ACTION_SEQUENCE
	pick_actions: EV_PND_START_ACTION_SEQUENCE
	pick_ended_actions: EV_PND_FINISHED_ACTION_SEQUENCE
	pointer_button_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
	pointer_button_release_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
	pointer_double_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
	pointer_enter_actions: EV_NOTIFY_ACTION_SEQUENCE
	pointer_leave_actions: EV_NOTIFY_ACTION_SEQUENCE
	pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE
	resize_actions: EV_GEOMETRY_ACTION_SEQUENCE
	select_actions: EV_NOTIFY_ACTION_SEQUENCE

Queries
	accept_cursor: EV_POINTER_STYLE
	actual_drop_target_agent: FUNCTION [ANY, TUPLE [INTEGER_32, INTEGER_32], EV_ABSTRACT_PICK_AND_DROPABLE]
	after: BOOLEAN
	background_color: EV_COLOR
	before: BOOLEAN
	Changeable_comparison_criterion: BOOLEAN
	count: INTEGER_32
	cursor: EV_DYNAMIC_LIST_CURSOR [EV_LIST_ITEM]
	data: ANY
	default_key_processing_handler: PREDICATE [ANY, TUPLE [EV_KEY]]
	deny_cursor: EV_POINTER_STYLE
	exhausted: BOOLEAN
	Extendible: BOOLEAN
	first: [like item] EV_LIST_ITEM
	for_all (test: FUNCTION [ANY, TUPLE [EV_LIST_ITEM], BOOLEAN]): BOOLEAN
	foreground_color: EV_COLOR
	Full: BOOLEAN
	has (v: [like item] EV_LIST_ITEM): BOOLEAN
	has_capture: BOOLEAN
	has_focus: BOOLEAN
	height: INTEGER_32
	help_context: FUNCTION [ANY, TUPLE, EV_HELP_CONTEXT]
	i_th alias "[]" (i: INTEGER_32): [like item] EV_LIST_ITEM
	id_object (an_id: INTEGER_32): IDENTIFIED
	index: INTEGER_32
	index_of (v: [like item] EV_LIST_ITEM; i: INTEGER_32): INTEGER_32
	index_set: INTEGER_INTERVAL
	infix "@" (i: INTEGER_32): [like item] EV_LIST_ITEM
	is_destroyed: BOOLEAN
	is_displayed: BOOLEAN
	is_dockable: BOOLEAN
	is_empty: BOOLEAN
	is_equal (other: [like Current] EV_LIST): BOOLEAN
	is_external_docking_enabled: BOOLEAN
	is_external_docking_relative: BOOLEAN
	is_inserted (v: EV_LIST_ITEM): BOOLEAN
	is_parent_recursive (a_list_item: EV_LIST_ITEM): BOOLEAN
	is_sensitive: BOOLEAN
	is_show_requested: BOOLEAN
	isfirst: BOOLEAN
	islast: BOOLEAN
	item: EV_LIST_ITEM
	last: [like item] EV_LIST_ITEM
	linear_representation: LINEAR [EV_LIST_ITEM]
	minimum_height: INTEGER_32
	minimum_width: INTEGER_32
	mode_is_drag_and_drop: BOOLEAN
	mode_is_pick_and_drop: BOOLEAN
	mode_is_target_menu: BOOLEAN
	multiple_selection_enabled: BOOLEAN
	object_comparison: BOOLEAN
	object_id: INTEGER_32
	occurrences (v: [like item] EV_LIST_ITEM): INTEGER_32
	off: BOOLEAN
	parent: EV_CONTAINER
	parent_of_source_allows_docking: BOOLEAN
	pebble: ANY
	pebble_function: FUNCTION [ANY, TUPLE, ANY]
	pebble_positioning_enabled: BOOLEAN
	pebble_x_position: INTEGER_32
	pebble_y_position: INTEGER_32
	pixmaps_height: INTEGER_32
	pixmaps_width: INTEGER_32
	pointer_position: EV_COORDINATE
	pointer_style: EV_POINTER_STYLE
	prunable: BOOLEAN
	readable: BOOLEAN
	real_source: EV_DOCKABLE_SOURCE
	real_target: EV_DOCKABLE_TARGET
	retrieve_item_by_data (some_data: ANY; should_compare_objects: BOOLEAN): EV_LIST_ITEM
	retrieve_items_by_data (some_data: ANY; should_compare_objects: BOOLEAN): ARRAYED_LIST [EV_LIST_ITEM]
	same (other: EV_ANY): BOOLEAN
	screen_x: INTEGER_32
	screen_y: INTEGER_32
	selected_item: EV_LIST_ITEM
	selected_items: DYNAMIC_LIST [EV_LIST_ITEM]
	sequential_occurrences (v: [like item] EV_LIST_ITEM): INTEGER_32
	source_has_current_recursive (source: EV_DOCKABLE_SOURCE): BOOLEAN
	strings: LINKED_LIST [STRING_32]
	strings_8: ARRAYED_LIST [STRING_8]
	target_name: STRING_GENERAL
	there_exists (test: FUNCTION [ANY, TUPLE [EV_LIST_ITEM], BOOLEAN]): BOOLEAN
	tooltip: STRING_32
	valid_cursor (p: CURSOR): BOOLEAN
	valid_cursor_index (i: INTEGER_32): BOOLEAN
	valid_index (i: INTEGER_32): BOOLEAN
	width: INTEGER_32
	writable: BOOLEAN
	x_position: INTEGER_32
	y_position: INTEGER_32

Commands
	append (s: SEQUENCE [[like item] EV_LIST_ITEM])
	back
	center_pointer
	compare_objects
	compare_references
	copy (other: [like Current] EV_LIST)
	destroy
	disable_capture
	disable_dockable
	disable_external_docking
	disable_external_docking_relative
	disable_multiple_selection
	disable_pebble_positioning
	disable_sensitive
	dl_force (v: [like item] EV_LIST_ITEM)
	do_all (action: PROCEDURE [ANY, TUPLE [EV_LIST_ITEM]])
	do_if (action: PROCEDURE [ANY, TUPLE [EV_LIST_ITEM]]; test: FUNCTION [ANY, TUPLE [EV_LIST_ITEM], BOOLEAN])
	enable_capture
	enable_dockable
	enable_external_docking
	enable_external_docking_relative
	enable_multiple_selection
	enable_pebble_positioning
	enable_sensitive
	ensure_item_visible (an_item: EV_LIST_ITEM)
	extend (v: [like item] EV_LIST_ITEM)
	fill (other: CONTAINER [EV_LIST_ITEM])
	finish
	force (v: [like item] EV_LIST_ITEM)
	forth
	go_i_th (i: INTEGER_32)
	go_to (p: CURSOR)
	hide
	merge_left (other: [like Current] EV_LIST)
	merge_right (other: [like Current] EV_LIST)
	move (i: INTEGER_32)
	prune (v: [like item] EV_LIST_ITEM)
	prune_all (v: [like item] EV_LIST_ITEM)
	put (v: [like item] EV_LIST_ITEM)
	put_front (v: [like item] EV_LIST_ITEM)
	put_i_th (v: [like item] EV_LIST_ITEM; i: INTEGER_32)
	put_left (v: [like item] EV_LIST_ITEM)
	put_right (v: [like item] EV_LIST_ITEM)
	refresh_now
	remove
	remove_default_key_processing_handler
	remove_help_context
	remove_left
	remove_pebble
	remove_real_source
	remove_real_target
	remove_right
	remove_selection
	remove_tooltip
	replace (v: [like item] EV_LIST_ITEM)
	search (v: [like item] EV_LIST_ITEM)
	set_accept_cursor (a_cursor: [like accept_cursor] EV_POINTER_STYLE)
	set_actual_drop_target_agent (an_agent: [like actual_drop_target_agent] FUNCTION [ANY, TUPLE [INTEGER_32, INTEGER_32], EV_ABSTRACT_PICK_AND_DROPABLE])
	set_background_color (a_color: [like background_color] EV_COLOR)
	set_data (some_data: [like data] ANY)
	set_default_colors
	set_default_key_processing_handler (a_handler: [like default_key_processing_handler] PREDICATE [ANY, TUPLE [EV_KEY]])
	set_deny_cursor (a_cursor: [like deny_cursor] EV_POINTER_STYLE)
	set_drag_and_drop_mode
	set_focus
	set_foreground_color (a_color: [like foreground_color] EV_COLOR)
	set_help_context (an_help_context: [like help_context] FUNCTION [ANY, TUPLE, EV_HELP_CONTEXT])
	set_minimum_height (a_minimum_height: INTEGER_32)
	set_minimum_size (a_minimum_width, a_minimum_height: INTEGER_32)
	set_minimum_width (a_minimum_width: INTEGER_32)
	set_pebble (a_pebble: [like pebble] ANY)
	set_pebble_function (a_function: FUNCTION [ANY, TUPLE, ANY])
	set_pebble_position (a_x, a_y: INTEGER_32)
	set_pick_and_drop_mode
	set_pixmaps_size (a_width, a_height: INTEGER_32)
	set_pointer_style (a_cursor: [like pointer_style] EV_POINTER_STYLE)
	set_real_source (dockable_source: EV_DOCKABLE_SOURCE)
	set_real_target (a_target: EV_DOCKABLE_TARGET)
	set_strings (a_string_array: INDEXABLE [STRING_GENERAL, INTEGER_32])
	set_target_menu_mode
	set_target_name (a_name: STRING_GENERAL)
	set_tooltip (a_tooltip: STRING_GENERAL)
	show
	start
	swap (i: INTEGER_32)
	wipe_out

Constraints
	selected items not void
	selected items first is selected item
	selected items empty xor selected item not void
	single selection implies at most one selected item
	selection size within bounds