    class
    	EV_SCREEN_IMP

    General
    	cluster: implementation_mswin
    	description: "EiffelVision screen, implementation interface."
    	create: make

    Ancestors
    	EV_DRAWABLE_IMP*
    	EV_SCREEN_I*
    	WEL_INPUT_EVENT
    	WEL_UNIT_CONVERSION

    Queries
    	arc_cosine (v: REAL_32): REAL_32
    	arc_sine (v: REAL_32): REAL_32
    	arc_tangent (v: REAL_32): REAL_32
    	assertion_violation: BOOLEAN
    	background_color: EV_COLOR
    	Bounding_area: EV_RECTANGLE
    	ceiling (v: REAL_32): REAL_32
    	Check_instruction: INTEGER_32
    	Class_invariant: INTEGER_32
    	clip_area: EV_RECTANGLE
    	Com_exception: INTEGER_32
    	cosine (v: REAL_32): REAL_32
    	Create_on_deferred: INTEGER_32
    	dashed_line_style: BOOLEAN
    	dc: WEL_SCREEN_DC
    	destroyed: BOOLEAN
    	Developer_exception: INTEGER_32
    	developer_exception_name: STRING_8
    	Dollar_applied_to_melted_feature: INTEGER_32
    	drawing_mode: INTEGER_32
    	Drawing_mode_and: INTEGER_32
    	Drawing_mode_copy: INTEGER_32
    	Drawing_mode_invert: INTEGER_32
    	Drawing_mode_or: INTEGER_32
    	Drawing_mode_xor: INTEGER_32
    	Eiffel_runtime_fatal_error: INTEGER_32
    	Eiffel_runtime_panic: INTEGER_32
    	Euler: REAL_64
    	exception: INTEGER_32
    	exception_class_name: STRING_8
    	Exception_in_signal_handler: INTEGER_32
    	exception_trace: STRING_8
    	External_exception: INTEGER_32
    	Floating_point_exception: INTEGER_32
    	floor (v: REAL_32): REAL_32
    	font: EV_FONT
    	foreground_color: EV_COLOR
    	height: INTEGER_32
    	horizontal_resolution: INTEGER_32
    	Incorrect_inspect_value: INTEGER_32
    	interface: EV_SCREEN
    	internal_font: EV_FONT
    	internal_font_height: INTEGER_32
    	Io_exception: INTEGER_32
    	is_developer_exception: BOOLEAN
    	is_developer_exception_of_name (name: STRING_8): BOOLEAN
    	is_signal: BOOLEAN
    	is_system_exception: BOOLEAN
    	line_width: INTEGER_32
    	log (v: REAL_32): REAL_32
    	log10 (v: REAL_32): REAL_32
    	log_2 (v: REAL_32): REAL_32
    	Loop_invariant: INTEGER_32
    	Loop_variant: INTEGER_32
    	meaning (except: INTEGER_32): STRING_8
    	No_more_memory: INTEGER_32
    	Number_of_codes: INTEGER_32
    	Operating_system_exception: INTEGER_32
    	original_class_name: STRING_8
    	original_exception: INTEGER_32
    	original_recipient_name: STRING_8
    	original_tag_name: STRING_8
    	Out_of_memory: INTEGER_32
    	Pi: REAL_64
    	pointer_position: EV_COORDINATE
    	Postcondition: INTEGER_32
    	Precondition: INTEGER_32
    	recipient_name: STRING_8
    	Rescue_exception: INTEGER_32
    	Resumption_failed: INTEGER_32
    	Retrieve_exception: INTEGER_32
    	Routine_failure: INTEGER_32
    	Runtime_check_exception: INTEGER_32
    	Runtime_io_exception: INTEGER_32
    	Signal_exception: INTEGER_32
    	sine (v: REAL_32): REAL_32
    	sqrt (v: REAL_32): REAL_32
    	Sqrt2: REAL_64
    	sub_pixmap (area: EV_RECTANGLE): EV_PIXMAP
    	tag_name: STRING_8
    	tangent (v: REAL_32): REAL_32
    	tile: EV_PIXMAP
    	valid_code (c: INTEGER_32): BOOLEAN
    	valid_drawing_mode (a_mode: INTEGER_32): BOOLEAN
    	vertical_resolution: INTEGER_32
    	virtual_height: INTEGER_32
    	virtual_width: INTEGER_32
    	virtual_x: INTEGER_32
    	virtual_y: INTEGER_32
    	Void_assigned_to_expanded: INTEGER_32
    	Void_call_target: INTEGER_32
    	widget_at_mouse_pointer: EV_WIDGET
    	widget_at_position (x, y: INTEGER_32): EV_WIDGET
    	width: INTEGER_32

    Commands
    	catch (code: INTEGER_32)
    	clear
    	clear_rectangle (x1, y1, a_width, a_height: INTEGER_32)
    	destroy
    	die (code: INTEGER_32)
    	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_rotated_text (x, y: INTEGER_32; a_angle: REAL_32; a_text: STRING_GENERAL)
    	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
    	exception_raise (name: STRING_8)
    	fake_key_press (a_key: EV_KEY)
    	fake_key_release (a_key: EV_KEY)
    	fake_pointer_button_press (a_button: INTEGER_32)
    	fake_pointer_button_release (a_button: INTEGER_32)
    	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)
    	get_dc
    	ignore (code: INTEGER_32)
    	internal_draw_text (x, y: INTEGER_32; angle: REAL_32; clipping_width: INTEGER_32; from_baseline: BOOLEAN; a_text: STRING_GENERAL)
    	message_on_failure
    	no_message_on_failure
    	raise_retrieval_exception (name: STRING_8)
    	redraw
    	release_dc
    	remove_clipping
    	remove_tile
    	set_background_color (a_color: EV_COLOR)
    	set_clip_area (an_area: EV_RECTANGLE)
    	set_clip_region (a_region: EV_REGION)
    	set_default_colors
    	set_default_font
    	set_drawing_mode (a_mode: INTEGER_32)
    	set_font (a_font: EV_FONT)
    	set_foreground_color (a_color: EV_COLOR)
    	set_line_width (a_width: INTEGER_32)
    	set_pointer_position (x, y: INTEGER_32)
    	set_tile (a_pixmap: EV_PIXMAP)

    Constraints
    	dc not void