    class
    	EV_MENU_IMP

    General
    	cluster: implementation_mswin
    	description: "EiffelVision menu. Mswindows implementation."
    	create: make

    Ancestors
    	EV_MENU_I*
    	EV_MENU_ITEM_IMP
    	EV_MENU_ITEM_LIST_IMP*

    Action sequences
    	conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_item_select_actions: EV_MENU_ITEM_SELECT_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_double_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	create_pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE
    	create_select_actions: EV_NOTIFY_ACTION_SEQUENCE
    	drop_actions: EV_PND_ACTION_SEQUENCE
    	item_select_actions: EV_MENU_ITEM_SELECT_ACTION_SEQUENCE
    	new_item_actions: ACTION_SEQUENCE [TUPLE [EV_ITEM]]
    	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_double_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE
    	remove_item_actions: ACTION_SEQUENCE [TUPLE [EV_ITEM]]
    	select_actions: EV_NOTIFY_ACTION_SEQUENCE

    Queries
    	accept_cursor: EV_POINTER_STYLE
    	awaiting_movement: BOOLEAN
    	capture_enabled: BOOLEAN
    	count: INTEGER_32
    	cursor: EV_DYNAMIC_LIST_CURSOR [EV_MENU_ITEM]
    	Default_accept_cursor: EV_POINTER_STYLE
    	Default_deny_cursor: EV_POINTER_STYLE
    	Default_pixmaps: EV_STOCK_PIXMAPS
    	deny_cursor: EV_POINTER_STYLE
    	dockable_dialog_target: EV_DOCKABLE_DIALOG
    	Drag_and_drop_starting_movement: INTEGER_32
    	exists: BOOLEAN
    	foreground_window: WEL_WINDOW
    	Global_drag_targets: ARRAYED_LIST [INTEGER_32]
    	Global_pnd_targets: HASH_TABLE [INTEGER_32, INTEGER_32]
    	has (v: [like item] EV_MENU_ITEM): BOOLEAN
    	has_heavy_capture: BOOLEAN
    	i_th (i: INTEGER_32): [like item] EV_MENU_ITEM
    	id: INTEGER_32
    	id_string (an_id: INTEGER_32): STRING_32
    	index: INTEGER_32
    	index_of (v: [like item] EV_MENU_ITEM; i: INTEGER_32): 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_non_sensitive: BOOLEAN
    	Internal_screen: EV_SCREEN
    	is_sensitive: BOOLEAN
    	is_transport_enabled: BOOLEAN
    	is_window (hwnd: POINTER): BOOLEAN
    	item: EV_MENU_ITEM
    	item_by_data (data: ANY): [like item] EV_MENU_ITEM
    	item_checked (an_id: INTEGER_32): BOOLEAN
    	item_enabled (an_id: INTEGER_32): BOOLEAN
    	item_exists (an_id: INTEGER_32): BOOLEAN
    	key_down (virtual_key: INTEGER_32): BOOLEAN
    	key_locked (virtual_key: INTEGER_32): BOOLEAN
    	key_to_string (key_data: INTEGER_32): STRING_32
    	mode_is_drag_and_drop: BOOLEAN
    	mode_is_pick_and_drop: BOOLEAN
    	mode_is_target_menu: BOOLEAN
    	object_id: INTEGER_32
    	off: BOOLEAN
    	original_pressure: REAL_64
    	original_x: INTEGER_32
    	original_x_offset: INTEGER_16
    	original_x_tilt: REAL_64
    	original_y: INTEGER_32
    	original_y_offset: INTEGER_16
    	original_y_tilt: REAL_64
    	originating_source: EV_DOCKABLE_SOURCE_I
    	parent: EV_MENU_ITEM_LIST
    	parent_imp: EV_MENU_ITEM_LIST_IMP
    	pebble: ANY
    	pebble_function: FUNCTION [ANY, TUPLE, ANY]
    	pebble_positioning_enabled: BOOLEAN
    	pebble_x_position: INTEGER_32
    	pebble_y_position: INTEGER_32
    	pixmap: EV_PIXMAP
    	pixmap_equal_to (a_pixmap: EV_PIXMAP): BOOLEAN
    	pixmap_imp: EV_PIXMAP_IMP_STATE
    	pnd_original_parent: EV_PICK_AND_DROPABLE_ITEM_HOLDER_IMP
    	pointer_x: INTEGER_16
    	pointer_y: INTEGER_16
    	popup_exists (position: INTEGER_32): BOOLEAN
    	popup_menu (position: INTEGER_32): WEL_MENU
    	position_enabled (position: INTEGER_32): BOOLEAN
    	position_to_item_id (position: INTEGER_32): INTEGER_32
    	resource_string_id (an_id: INTEGER_32): STRING_32
    	retrieve_item_by_data (data: ANY; should_compare_objects: BOOLEAN): EV_MENU_ITEM
    	retrieve_items_by_data (data: ANY; should_compare_objects: BOOLEAN): ARRAYED_LIST [EV_MENU_ITEM]
    	rubber_band_is_drawn: BOOLEAN
    	shared: BOOLEAN
    	source_being_docked: EV_DOCKABLE_SOURCE_I
    	system_directory: STRING_32
    	text: STRING_32
    	tick_count: INTEGER_32
    	transport_executing: BOOLEAN
    	user_is_sensitive: BOOLEAN
    	valid_cursor (p: CURSOR): BOOLEAN
    	wel_count: INTEGER_32
    	wel_item: POINTER
    	widget_imp_at_pointer_position: EV_WIDGET_IMP
    	window_of_item (hwnd: POINTER): WEL_WINDOW
    	windows_directory: STRING_32

    Commands
    	append (s: SEQUENCE [EV_MENU_ITEM])
    	append_bitmap (bitmap: WEL_BITMAP; an_id: INTEGER_32)
    	append_popup (a_menu: WEL_MENU; a_title: STRING_GENERAL)
    	append_separator
    	append_string (a_string: STRING_GENERAL; an_id: INTEGER_32)
    	append_string_with_break (a_string: STRING_GENERAL; an_id: INTEGER_32; has_separator: BOOLEAN)
    	back
    	check_drag_and_drop_release (a_x, a_y: INTEGER_32)
    	check_item (an_id: INTEGER_32)
    	delete_item (an_id: INTEGER_32)
    	delete_position (position: INTEGER_32)
    	disable_item (an_id: INTEGER_32)
    	disable_pebble_positioning
    	disable_position (position: INTEGER_32)
    	disable_transport
    	enable_item (an_id: INTEGER_32)
    	enable_pebble_positioning
    	enable_position (position: INTEGER_32)
    	enable_transport
    	escape_pnd
    	extend (v: [like item] EV_MENU_ITEM)
    	forth
    	go_i_th (i: INTEGER_32)
    	go_to (p: CURSOR)
    	hide_cursor
    	hilite_menu_item (window: WEL_COMPOSITE_WINDOW; an_id: INTEGER_32)
    	insert_bitmap (bitmap: WEL_BITMAP; a_position, an_id: INTEGER_32)
    	insert_popup (a_menu: WEL_MENU; a_position: INTEGER_32; a_title: STRING_GENERAL)
    	insert_separator (a_position: INTEGER_32)
    	insert_string (a_string: STRING_GENERAL; a_position, an_id: INTEGER_32)
    	merge_left (other: [like interface] EV_MENU)
    	merge_right (other: [like interface] EV_MENU)
    	message_beep_asterisk
    	message_beep_exclamation
    	message_beep_hand
    	message_beep_ok
    	message_beep_question
    	modify_string (a_string: STRING_GENERAL; an_id: INTEGER_32)
    	move (i: INTEGER_32)
    	output_debug_string (s: STRING_GENERAL)
    	pnd_motion (a_x, a_y, a_screen_x, a_screen_y: INTEGER_32)
    	pnd_press (a_x, a_y, a_button, a_screen_x, a_screen_y: INTEGER_32)
    	print_radio_group (g: [like radio_group] LINKED_LIST [EV_RADIO_MENU_ITEM_IMP])
    	print_radio_groups
    	prune (v: [like item] EV_MENU_ITEM)
    	put_front (v: [like item] EV_MENU_ITEM)
    	put_i_th (v: [like item] EV_MENU_ITEM; i: INTEGER_32)
    	put_left (v: [like item] EV_MENU_ITEM)
    	put_right (v: [like item] EV_MENU_ITEM)
    	remove
    	remove_insert_label
    	remove_insert_sep
    	remove_left
    	remove_pebble
    	remove_pixmap
    	remove_position (position: INTEGER_32)
    	remove_right
    	replace (v: [like item] EV_MENU_ITEM)
    	set_accept_cursor (a_cursor: [like accept_cursor] EV_POINTER_STYLE)
    	set_cursor_position_absolute (x, y: INTEGER_32)
    	set_deny_cursor (a_cursor: [like deny_cursor] EV_POINTER_STYLE)
    	set_drag_and_drop_mode
    	set_item (an_item: POINTER)
    	set_parent_imp (a_parent_imp: [like parent_imp] EV_MENU_ITEM_LIST_IMP)
    	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_pixmap (a_pixmap: EV_PIXMAP)
    	set_pnd_original_parent
    	set_pointer_style (c: EV_POINTER_STYLE)
    	set_shared
    	set_target_menu_mode
    	set_text (a_text: STRING_GENERAL)
    	set_unshared
    	show_cursor
    	show_track (x, y: INTEGER_32; window: WEL_COMPOSITE_WINDOW)
    	show_track_with_option (x, y: INTEGER_32; window: WEL_COMPOSITE_WINDOW; option: INTEGER_32; rect: WEL_RECT)
    	start
    	uncheck_item (an_id: INTEGER_32)
    	unhilite_menu_item (window: WEL_COMPOSITE_WINDOW; an_id: INTEGER_32)
    	user_disable_sensitive
    	user_enable_sensitive
    	wipe_out