    class
    	EV_PIXMAP_IMP_DRAWABLE

    General
    	cluster: implementation_mswin
    	description: "EiffelVision pixmap. Mswindows implementation for drawable pixmap (drawable, not self-displayable)"
    	create: make_with_simple

    Ancestors
    	EV_DRAWABLE_IMP*
    	EV_PIXMAP_I*
    	EV_PIXMAP_IMP_STATE*

    Action sequences
    	conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_drop_actions: EV_PND_ACTION_SEQUENCE
    	create_expose_actions: EV_GEOMETRY_ACTION_SEQUENCE
    	create_focus_in_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_focus_out_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_key_press_actions: EV_KEY_ACTION_SEQUENCE
    	create_key_press_string_actions: EV_KEY_STRING_ACTION_SEQUENCE
    	create_key_release_actions: EV_KEY_ACTION_SEQUENCE
    	create_mouse_wheel_actions: EV_INTEGER_ACTION_SEQUENCE
    	create_pick_actions: EV_PND_START_ACTION_SEQUENCE
    	create_pick_ended_actions: EV_PND_FINISHED_ACTION_SEQUENCE
    	create_pointer_button_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	create_pointer_button_release_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	create_pointer_double_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	create_pointer_enter_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_pointer_leave_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE
    	create_resize_actions: EV_GEOMETRY_ACTION_SEQUENCE
    	dock_ended_actions: EV_NOTIFY_ACTION_SEQUENCE
    	dock_started_actions: EV_NOTIFY_ACTION_SEQUENCE
    	drop_actions: EV_PND_ACTION_SEQUENCE
    	expose_actions: EV_GEOMETRY_ACTION_SEQUENCE
    	file_drop_actions: ACTION_SEQUENCE [TUPLE [LIST [STRING_32]]]
    	focus_in_actions: EV_NOTIFY_ACTION_SEQUENCE
    	focus_out_actions: EV_NOTIFY_ACTION_SEQUENCE
    	key_press_actions: EV_KEY_ACTION_SEQUENCE
    	key_press_string_actions: EV_KEY_STRING_ACTION_SEQUENCE
    	key_release_actions: EV_KEY_ACTION_SEQUENCE
    	mouse_wheel_actions: EV_INTEGER_ACTION_SEQUENCE
    	pick_actions: EV_PND_START_ACTION_SEQUENCE
    	pick_ended_actions: EV_PND_FINISHED_ACTION_SEQUENCE
    	pointer_button_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_button_release_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_double_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_enter_actions: EV_NOTIFY_ACTION_SEQUENCE
    	pointer_leave_actions: EV_NOTIFY_ACTION_SEQUENCE
    	pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE
    	resize_actions: EV_GEOMETRY_ACTION_SEQUENCE

    Queries
    	accept_cursor: EV_POINTER_STYLE
    	actual_drop_target_agent: FUNCTION [ANY, TUPLE [INTEGER_32, INTEGER_32], EV_ABSTRACT_PICK_AND_DROPABLE]
    	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
    	blue: INTEGER_32
    	Bounding_area: EV_RECTANGLE
    	build_cursor: WEL_CURSOR
    	build_icon: WEL_ICON
    	ceiling (v: REAL_32): REAL_32
    	Check_instruction: INTEGER_32
    	Class_invariant: INTEGER_32
    	clip_area: EV_RECTANGLE
    	closest_dockable_target: EV_DOCKABLE_TARGET
    	Com_exception: INTEGER_32
    	cosine (v: REAL_32): REAL_32
    	Create_on_deferred: INTEGER_32
    	cursor: WEL_CURSOR
    	dashed_line_style: BOOLEAN
    	dc: WEL_MEMORY_DC
    	Default_accept_cursor: EV_POINTER_STYLE
    	Default_deny_cursor: EV_POINTER_STYLE
    	default_key_processing_handler: PREDICATE [ANY, TUPLE [EV_KEY]]
    	Default_pixmaps: EV_STOCK_PIXMAPS
    	deny_cursor: EV_POINTER_STYLE
    	Developer_exception: INTEGER_32
    	developer_exception_name: STRING_8
    	dockable_dialog_target: EV_DOCKABLE_DIALOG
    	Dollar_applied_to_melted_feature: INTEGER_32
    	Drag_cursor: EV_POINTER_STYLE
    	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
    	get_bitmap: WEL_BITMAP
    	get_mask_bitmap: WEL_BITMAP
    	get_next_target (a_widget: EV_WIDGET): EV_DOCKABLE_TARGET
    	Global_drag_targets: ARRAYED_LIST [INTEGER_32]
    	Global_pnd_targets: HASH_TABLE [INTEGER_32, INTEGER_32]
    	green: INTEGER_32
    	has_capture: BOOLEAN
    	has_focus: BOOLEAN
    	has_mask: BOOLEAN
    	has_parent: BOOLEAN
    	height: INTEGER_32
    	help_context: FUNCTION [ANY, TUPLE, EV_HELP_CONTEXT]
    	icon: WEL_ICON
    	Incorrect_inspect_value: INTEGER_32
    	Insert_label: EV_CELL
    	Insert_label_imp: EV_CELL_I
    	Insert_sep: EV_TOOL_BAR_SEPARATOR
    	Insert_sep_imp: EV_TOOL_BAR_SEPARATOR_I
    	internal_font: EV_FONT
    	internal_font_height: INTEGER_32
    	internal_non_sensitive: BOOLEAN
    	internal_pointer_style: EV_POINTER_STYLE
    	Internal_screen: EV_SCREEN
    	Io_exception: INTEGER_32
    	is_developer_exception: BOOLEAN
    	is_developer_exception_of_name (name: STRING_8): BOOLEAN
    	is_displayed: BOOLEAN
    	is_dock_executing: BOOLEAN
    	is_dockable: BOOLEAN
    	is_external_docking_enabled: BOOLEAN
    	is_external_docking_relative: BOOLEAN
    	is_sensitive: BOOLEAN
    	is_show_requested: BOOLEAN
    	is_signal: BOOLEAN
    	is_system_exception: BOOLEAN
    	is_transport_enabled: BOOLEAN
    	item: INTEGER_32
    	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
    	mask_dc: WEL_MEMORY_DC
    	meaning (except: INTEGER_32): STRING_8
    	minimum_height: INTEGER_32
    	minimum_width: INTEGER_32
    	mode_is_drag_and_drop: BOOLEAN
    	mode_is_pick_and_drop: BOOLEAN
    	mode_is_target_menu: BOOLEAN
    	No_more_memory: INTEGER_32
    	not_external_docking_enabled: BOOLEAN
    	not_is_external_docking_relative: BOOLEAN
    	Number_of_codes: INTEGER_32
    	Operating_system_exception: INTEGER_32
    	original_class_name: STRING_8
    	original_exception: INTEGER_32
    	original_parent_position: INTEGER_32
    	original_recipient_name: STRING_8
    	original_tag_name: STRING_8
    	original_x_offset: INTEGER_16
    	original_y_offset: INTEGER_16
    	originating_source: EV_DOCKABLE_SOURCE_I
    	Out_of_memory: INTEGER_32
    	palette: WEL_PALETTE
    	parent: EV_CONTAINER
    	parent_is_sensitive: BOOLEAN
    	pebble: ANY
    	pebble_function: FUNCTION [ANY, TUPLE, ANY]
    	pebble_positioning_enabled: BOOLEAN
    	pebble_x_position: INTEGER_32
    	pebble_y_position: INTEGER_32
    	Pi: REAL_64
    	pnd_screen: EV_SCREEN
    	pointer_position: EV_COORDINATE
    	pointer_style: EV_POINTER_STYLE
    	pointer_x: INTEGER_16
    	pointer_y: INTEGER_16
    	Postcondition: INTEGER_32
    	Precondition: INTEGER_32
    	raw_image_data: EV_RAW_IMAGE_DATA
    	real_pointed_target: EV_PICK_AND_DROPABLE
    	real_source: EV_DOCKABLE_SOURCE
    	real_target: EV_DOCKABLE_TARGET
    	recipient_name: STRING_8
    	red: INTEGER_32
    	Rescue_exception: INTEGER_32
    	Resumption_failed: INTEGER_32
    	Retrieve_exception: INTEGER_32
    	Routine_failure: INTEGER_32
    	rubber_band_is_drawn: BOOLEAN
    	Runtime_check_exception: INTEGER_32
    	Runtime_io_exception: INTEGER_32
    	screen_x: INTEGER_32
    	screen_y: INTEGER_32
    	Signal_exception: INTEGER_32
    	sine (v: REAL_32): REAL_32
    	source_being_docked: EV_DOCKABLE_SOURCE_I
    	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
    	tooltip: STRING_32
    	transparent_color: EV_COLOR
    	user_is_sensitive: BOOLEAN
    	valid_code (c: INTEGER_32): BOOLEAN
    	valid_color_constant (c: INTEGER_32): BOOLEAN
    	valid_drawing_mode (a_mode: INTEGER_32): BOOLEAN
    	Void_assigned_to_expanded: INTEGER_32
    	Void_call_target: INTEGER_32
    	widget_imp_at_pointer_position: EV_WIDGET_IMP
    	width: INTEGER_32
    	x_position: INTEGER_32
    	y_position: INTEGER_32

    Commands
    	catch (code: INTEGER_32)
    	clear
    	clear_rectangle (x1, y1, a_width, a_height: INTEGER_32)
    	close_dockable_dialog (dockable_dialog: EV_DOCKABLE_DIALOG)
    	complete_dock
    	die (code: INTEGER_32)
    	disable_capture
    	disable_dashed_line_style
    	disable_dockable
    	disable_external_docking
    	disable_external_docking_relative
    	disable_pebble_positioning
    	disable_sensitive
    	disable_transport
    	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_rubber_band
    	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_capture
    	enable_dashed_line_style
    	enable_dockable
    	enable_external_docking
    	enable_external_docking_relative
    	enable_pebble_positioning
    	enable_sensitive
    	enable_transport
    	end_transport (a_x, a_y, a_button: INTEGER_32; a_x_tilt, a_y_tilt, a_pressure: REAL_64; a_screen_x, a_screen_y: INTEGER_32)
    	erase_rubber_band
    	exception_raise (name: STRING_8)
    	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)
    	flush
    	gdi_compact
    	get_dc
    	hide
    	ignore (code: INTEGER_32)
    	internal_disable_dockable
    	internal_draw_text (x, y: INTEGER_32; angle: REAL_32; clipping_width: INTEGER_32; from_baseline: BOOLEAN; a_text: STRING_GENERAL)
    	internal_enable_dockable
    	internal_set_pointer_style (c: EV_POINTER_STYLE)
    	message_on_failure
    	no_message_on_failure
    	on_parented
    	raise_retrieval_exception (name: STRING_8)
    	redraw
    	release_dc
    	remove_clipping
    	remove_default_key_processing_handler
    	remove_help_context
    	remove_insert_label
    	remove_insert_sep
    	remove_pebble
    	remove_real_source
    	remove_real_target
    	remove_tile
    	reset_for_buffering (a_width, a_height: INTEGER_32)
    	save_to_named_file (a_format: EV_GRAPHICAL_FORMAT; a_filename: FILE_NAME)
    	set_accept_cursor (a_cursor: [like accept_cursor] EV_POINTER_STYLE)
    	set_actual_drop_target_agent (an_agent: [like actual_drop_target_agent] FUNCTION [ANY, TUPLE [INTEGER_32, INTEGER_32], EV_ABSTRACT_PICK_AND_DROPABLE])
    	set_background_color (a_color: EV_COLOR)
    	set_blue (a_blue: INTEGER_32)
    	set_clip_area (an_area: EV_RECTANGLE)
    	set_clip_region (a_region: EV_REGION)
    	set_color (color: INTEGER_32)
    	set_default_font
    	set_default_key_processing_handler (a_handler: [like default_key_processing_handler] PREDICATE [ANY, TUPLE [EV_KEY]])
    	set_deny_cursor (a_cursor: [like deny_cursor] EV_POINTER_STYLE)
    	set_drag_and_drop_mode
    	set_drawing_mode (a_mode: INTEGER_32)
    	set_focus
    	set_font (a_font: EV_FONT)
    	set_foreground_color (a_color: EV_COLOR)
    	set_green (a_green: INTEGER_32)
    	set_help_context (an_help_context: [like help_context] FUNCTION [ANY, TUPLE, EV_HELP_CONTEXT])
    	set_line_width (a_width: INTEGER_32)
    	set_mask (a_mask: EV_BITMAP)
    	set_minimum_height (a_minimum_height: INTEGER_32)
    	set_minimum_size (a_minimum_width, a_minimum_height: INTEGER_32)
    	set_minimum_width (a_minimum_width: INTEGER_32)
    	set_pebble (a_pebble: [like pebble] ANY)
    	set_pebble_function (a_function: FUNCTION [ANY, TUPLE, ANY])
    	set_pebble_position (a_x, a_y: INTEGER_32)
    	set_pick_and_drop_mode
    	set_pointer_style (c: EV_POINTER_STYLE)
    	set_real_source (dockable_source: EV_DOCKABLE_SOURCE)
    	set_real_target (a_target: EV_DOCKABLE_TARGET)
    	set_red (a_red: INTEGER_32)
    	set_rgb (a_red, a_green, a_blue: INTEGER_32)
    	set_size (new_width, new_height: INTEGER_32)
    	set_target_menu_mode
    	set_tile (a_pixmap: EV_PIXMAP)
    	set_tooltip (a_text: STRING_GENERAL)
    	set_transparent_color (value: EV_COLOR)
    	show
    	start_transport (a_x, a_y, a_button: INTEGER_32; a_x_tilt, a_y_tilt, a_pressure: REAL_64; a_screen_x, a_screen_y: INTEGER_32)
    	stretch (new_width, new_height: INTEGER_32)
    	update_buttons (a_parent: EV_TOOL_BAR; start_index, end_index: INTEGER_32)
    	user_disable_sensitive
    	user_enable_sensitive

    Constraints
    	bitmap not void
    	bitmap reference tracked
    	palette reference tracked
    	mask bitmap reference tracked
    	dc reference tracked
    	mask dc reference tracked