deferred class
	EV_DRAWABLE

General
	cluster: interface
	description: 
		"Abstraction for objects onto which graphical primitives may be applied.
		
		Note: When line style is dashed and line width is bigger than one,
		lines are not guaranteed to be dashed on all platforms.
		All drawing operations are performed in the current
		oreground color unless otherwise stated. i.e. `clear_rectangle'
		uses the current background color."
	keywords: "figure, primitive, drawing, line, point, ellipse"

Ancestors
	EV_COLORIZABLE*
	EV_DRAWABLE_CONSTANTS
	EV_FONTABLE*

Queries
	background_color: EV_COLOR
	clip_area: EV_RECTANGLE
	dashed_line_style: BOOLEAN
	data: ANY
	drawing_mode: INTEGER_32
	font: EV_FONT
	foreground_color: EV_COLOR
	height: INTEGER_32
	is_destroyed: BOOLEAN
	line_width: INTEGER_32
	sub_pixmap (area: EV_RECTANGLE): EV_PIXMAP
	tile: EV_PIXMAP
	valid_drawing_mode (a_mode: INTEGER_32): BOOLEAN
	width: INTEGER_32

Commands
	clear
	clear_rectangle (x, y, a_width, a_height: INTEGER_32)
	copy (other: [like Current] EV_DRAWABLE)
	destroy
	disable_dashed_line_style
	draw_arc (x, y, a_bounding_width, a_bounding_height: INTEGER_32; a_start_angle, an_aperture: REAL_32)
	draw_ellipse (x, y, a_bounding_width, a_bounding_height: INTEGER_32)
	draw_ellipsed_text (x, y: INTEGER_32; a_text: STRING_GENERAL; clipping_width: INTEGER_32)
	draw_ellipsed_text_top_left (x, y: INTEGER_32; a_text: STRING_GENERAL; clipping_width: INTEGER_32)
	draw_pie_slice (x, y, a_bounding_width, a_bounding_height: INTEGER_32; a_start_angle, an_aperture: REAL_32)
	draw_pixmap (x, y: INTEGER_32; a_pixmap: EV_PIXMAP)
	draw_point (x, y: INTEGER_32)
	draw_polyline (points: ARRAY [EV_COORDINATE]; is_closed: BOOLEAN)
	draw_rectangle (x, y, a_width, a_height: INTEGER_32)
	draw_segment (x1, y1, x2, y2: INTEGER_32)
	draw_straight_line (x1, y1, x2, y2: INTEGER_32)
	draw_sub_pixmap (x, y: INTEGER_32; a_pixmap: EV_PIXMAP; area: EV_RECTANGLE)
	draw_text (x, y: INTEGER_32; a_text: STRING_GENERAL)
	draw_text_top_left (x, y: INTEGER_32; a_text: STRING_GENERAL)
	enable_dashed_line_style
	fill_ellipse (x, y, a_bounding_width, a_bounding_height: INTEGER_32)
	fill_pie_slice (x, y, a_bounding_width, a_bounding_height: INTEGER_32; a_start_angle, an_aperture: REAL_32)
	fill_polygon (points: ARRAY [EV_COORDINATE])
	fill_rectangle (x, y, a_width, a_height: INTEGER_32)
	remove_clip_area
	remove_clipping
	remove_tile
	set_and_mode
	set_background_color (a_color: [like background_color] EV_COLOR)
	set_clip_area (an_area: EV_RECTANGLE)
	set_clip_region (a_region: EV_REGION)
	set_copy_mode
	set_data (some_data: [like data] ANY)
	set_default_colors
	set_drawing_mode (a_mode: INTEGER_32)
	set_font (a_font: EV_FONT)
	set_foreground_color (a_color: [like foreground_color] EV_COLOR)
	set_invert_mode
	set_line_width (a_width: INTEGER_32)
	set_or_mode
	set_tile (a_pixmap: EV_PIXMAP)
	set_xor_mode

Constraints
	line width positive or zero
	drawing mode valid