class
	EV_FIGURE_WORLD

General
	cluster: interface
	description: 
		"Figure groups that are the root of a world of figures.
		May be interpreted by any kind of projection.
		Examples: may be output to a printer, saved to an XML file,
		drawn on a drawing area, etc."
	keywords: "figure, world, group, universe, system"
	create: make_filled, default_create

Ancestors
	EV_FIGURE_GROUP

Action sequences
	conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
	drop_actions: EV_PND_ACTION_SEQUENCE
	pick_actions: EV_PND_START_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

Queries
	accept_cursor: EV_POINTER_STYLE
	after: BOOLEAN
	background_color: EV_COLOR
	before: BOOLEAN
	bounding_box: EV_RECTANGLE
	capacity: INTEGER_32
	capture_figure: EV_FIGURE
	changeable_comparison_criterion: BOOLEAN
	count: INTEGER_32
	cursor: ARRAYED_LIST_CURSOR
	Default_grid_x: INTEGER_32
	Default_grid_y: INTEGER_32
	deny_cursor: EV_POINTER_STYLE
	duplicate (n: INTEGER_32): [like Current] EV_FIGURE_WORLD
	exhausted: BOOLEAN
	Extendible: BOOLEAN
	first: [like item] EV_FIGURE
	for_all (test: FUNCTION [ANY, TUPLE [EV_FIGURE], BOOLEAN]): BOOLEAN
	full: BOOLEAN
	grid_enabled: BOOLEAN
	grid_visible: BOOLEAN
	grid_x: INTEGER_32
	grid_y: INTEGER_32
	group: EV_FIGURE_GROUP
	has (v: [like item] EV_FIGURE): BOOLEAN
	has_capture: BOOLEAN
	i_th alias "[]" (i: INTEGER_32): [like item] EV_FIGURE
	id_object (an_id: INTEGER_32): IDENTIFIED
	index: INTEGER_32
	index_of (v: [like item] EV_FIGURE; i: INTEGER_32): INTEGER_32
	index_set: INTEGER_INTERVAL
	infix "@" (i: INTEGER_32): [like item] EV_FIGURE
	intersects (r: EV_RECTANGLE): BOOLEAN
	invalid_rectangle: EV_RECTANGLE
	is_empty: BOOLEAN
	is_inserted (v: EV_FIGURE): BOOLEAN
	is_redraw_needed: BOOLEAN
	is_sensitive: BOOLEAN
	is_show_requested: BOOLEAN
	isfirst: BOOLEAN
	islast: BOOLEAN
	item: EV_FIGURE
	last: [like first] EV_FIGURE
	linear_representation: LINEAR [EV_FIGURE]
	object_comparison: BOOLEAN
	object_id: INTEGER_32
	occurrences (v: [like item] EV_FIGURE): INTEGER_32
	off: BOOLEAN
	orientation: REAL_64
	pebble: ANY
	pebble_function: FUNCTION [ANY, TUPLE, ANY]
	point: EV_RELATIVE_POINT
	point_array: ARRAY [EV_COORDINATE]
	point_count: INTEGER_32
	pointer_style: EV_POINTER_STYLE
	points_visible: BOOLEAN
	position_on_figure (x, y: INTEGER_32): BOOLEAN
	prunable: BOOLEAN
	readable: BOOLEAN
	sequential_occurrences (v: [like item] EV_FIGURE): INTEGER_32
	target_name: STRING_GENERAL
	there_exists (test: FUNCTION [ANY, TUPLE [EV_FIGURE], BOOLEAN]): BOOLEAN
	update_rectangle: EV_RECTANGLE
	valid_cursor (p: CURSOR): BOOLEAN
	valid_cursor_index (i: INTEGER_32): BOOLEAN
	valid_index (i: INTEGER_32): BOOLEAN
	world: EV_FIGURE_WORLD
	writable: BOOLEAN
	x_to_grid (a_x: INTEGER_32): INTEGER_32
	y_to_grid (a_y: INTEGER_32): INTEGER_32

Commands
	append (s: SEQUENCE [EV_FIGURE])
	back
	calculate_absolute_position
	compare_objects
	compare_references
	disable_capture
	disable_grid
	disable_sensitive
	do_all (action: PROCEDURE [ANY, TUPLE [EV_FIGURE]])
	do_if (action: PROCEDURE [ANY, TUPLE [EV_FIGURE]]; test: FUNCTION [ANY, TUPLE [EV_FIGURE], BOOLEAN])
	enable_capture
	enable_grid
	enable_sensitive
	extend (v: [like item] EV_FIGURE)
	fill (other: CONTAINER [EV_FIGURE])
	finish
	force (v: [like item] EV_FIGURE)
	force_i_th (fig: [like item] EV_FIGURE; i: INTEGER_32)
	forth
	full_redraw
	go_i_th (i: INTEGER_32)
	go_to (p: CURSOR)
	hide
	hide_grid
	hide_points
	insert (fig: [like item] EV_FIGURE; i: INTEGER_32)
	invalidate
	list_make (n: INTEGER_32)
	make_filled (n: INTEGER_32)
	make_from_array (a: ARRAY [EV_FIGURE])
	merge_left (other: [like Current] EV_FIGURE_WORLD)
	merge_right (other: [like Current] EV_FIGURE_WORLD)
	move (i: INTEGER_32)
	prune (v: [like item] EV_FIGURE)
	prune_all (fig: [like item] EV_FIGURE)
	put (v: [like item] EV_FIGURE)
	put_front (v: [like item] EV_FIGURE)
	put_left (v: [like item] EV_FIGURE)
	put_right (v: [like item] EV_FIGURE)
	remove
	remove_capture_figure
	remove_left
	remove_pebble
	remove_right
	replace (fig: [like item] EV_FIGURE)
	resize (new_capacity: INTEGER_32)
	search (v: [like item] EV_FIGURE)
	set_accept_cursor (a_cursor: EV_POINTER_STYLE)
	set_background_color (a_color: EV_COLOR)
	set_capture_figure (a_figure: EV_FIGURE)
	set_deny_cursor (a_cursor: EV_POINTER_STYLE)
	set_grid_x (new_grid_x: INTEGER_32)
	set_grid_y (new_grid_y: INTEGER_32)
	set_origin (an_origin: EV_RELATIVE_POINT)
	set_pebble (a_pebble: [like pebble] ANY)
	set_pebble_function (a_function: FUNCTION [ANY, TUPLE, ANY])
	set_point (a_point: EV_RELATIVE_POINT)
	set_pointer_style (a_cursor: [like pointer_style] EV_POINTER_STYLE)
	set_target_name (a_name: STRING_GENERAL)
	show
	show_grid
	show_points
	snap_to_grid
	start
	swap (i: INTEGER_32)
	validate
	wipe_out

Constraints
	background color exists