    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