class
	EV_MODEL_BUFFER_PROJECTOR

General
	cluster: interface
	description: "Projectors for widgets using limited-sized buffer."
	create: make_with_buffer

Ancestors
	EV_MODEL_BUFFER_MANAGER*
	EV_MODEL_WIDGET_PROJECTOR*
	EV_SHARED_APPLICATION

Queries
	area: EV_DRAWABLE
	area_x: INTEGER_32
	area_y: INTEGER_32
	Buffer_scale_factor: REAL_32
	Buffer_used: BOOLEAN
	Default_colors: EV_STOCK_COLORS
	drawable: EV_DRAWABLE
	drawable_cell: CELL [EV_DRAWABLE]
	drawable_in_the_cell: EV_DRAWABLE
	drawable_position: EV_COORDINATE
	Ev_application: EV_APPLICATION
	is_figure_selected: BOOLEAN
	is_projecting: BOOLEAN
	is_world_too_large: BOOLEAN
	offset_x: INTEGER_32
	offset_y: INTEGER_32
	widget: EV_WIDGET
	world: EV_MODEL_WORLD
	world_as_pixmap (a_border: INTEGER_32): EV_PIXMAP

Commands
	change_area_position (a_x, a_y: INTEGER_32)
	clear_device
	draw_figure_arc (arc: EV_MODEL_ARC)
	draw_figure_dot (dot: EV_MODEL_DOT)
	draw_figure_ellipse (ellipse: EV_MODEL_ELLIPSE)
	draw_figure_equilateral (eql: EV_MODEL_EQUILATERAL)
	draw_figure_line (line: EV_MODEL_LINE)
	draw_figure_parallelogram (parallelogram: EV_MODEL_PARALLELOGRAM)
	draw_figure_picture (picture: EV_MODEL_PICTURE)
	draw_figure_pie_slice (slice: EV_MODEL_PIE_SLICE)
	draw_figure_polygon (polygon: EV_MODEL_POLYGON)
	draw_figure_polyline (line: EV_MODEL_POLYLINE)
	draw_figure_rectangle (rectangle: EV_MODEL_RECTANGLE)
	draw_figure_rotated_arc (arc: EV_MODEL_ROTATED_ARC)
	draw_figure_rotated_ellipse (ellipse: EV_MODEL_ROTATED_ELLIPSE)
	draw_figure_rotated_pie_slice (slice: EV_MODEL_ROTATED_PIE_SLICE)
	draw_figure_rounded_parallelogram (f: EV_MODEL_ROUNDED_PARALLELOGRAM)
	draw_figure_rounded_rectangle (f: EV_MODEL_ROUNDED_RECTANGLE)
	draw_figure_star (star: EV_MODEL_STAR)
	draw_figure_text (text_figure: EV_MODEL_TEXT)
	draw_grid
	full_project
	process_events_and_idle
	project
	project_rectangle (u: EV_RECTANGLE)
	register_figure (a_figure: EV_MODEL; a_routine: PROCEDURE [ANY, TUPLE [EV_MODEL]])
	set_drawable_cell (a_drawable_cell: [like drawable_cell] CELL [EV_DRAWABLE])
	set_drawable_cell_and_position (a_drawable_cell: [like drawable_cell] CELL [EV_DRAWABLE]; a_position: EV_COORDINATE)
	set_drawable_position (a_drawable_position: EV_COORDINATE)
	set_world (a_world: [like world] EV_MODEL_WORLD)
	update
	update_rectangle (u: EV_RECTANGLE; a_x, a_y: INTEGER_32)

Constraints
	right drawable in the cell