    class
    	EV_MODEL_DRAWING_AREA_PROJECTOR

    General
    	cluster: interface
    	description:
    		"Projectors that make representations of `world' on
    		EV_DRAWING_AREA."
    	keywords: "figures, project, pointer, drawing, points"
    	create: make_with_buffer, make

    Ancestors
    	EV_MODEL_WIDGET_PROJECTOR*

    Queries
    	area: EV_DRAWABLE
    	area_x: INTEGER_32
    	area_y: INTEGER_32
    	buffer_used: BOOLEAN
    	Default_colors: EV_STOCK_COLORS
    	drawable: EV_DRAWABLE
    	Ev_application: EV_APPLICATION
    	is_figure_selected: BOOLEAN
    	is_projecting: BOOLEAN
    	offset_x: INTEGER_32
    	offset_y: INTEGER_32
    	widget: EV_WIDGET
    	world: EV_MODEL_WORLD

    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 (a_drawable: [like drawable] EV_DRAWABLE)
    	set_world (a_world: [like world] EV_MODEL_WORLD)
    	update_rectangle (u: EV_RECTANGLE; a_x, a_y: INTEGER_32)