    deferred class
    	EV_GRID_I

    General
    	cluster: implementation_mswin
    	description:
    		"Widget which is a combination of an EV_TREE and an EV_MULTI_COLUMN_LIST.
    		Implementation Interface."

    Ancestors
    	EV_CELL_I*
    	EV_GRID_ACTION_SEQUENCES_I*
    	EV_SHARED_APPLICATION
    	EV_TOOLTIPABLE_I*
    	REFACTORING_HELPER

    Action sequences
    	column_deselect_actions: ACTION_SEQUENCE [TUPLE [EV_GRID_COLUMN]]
    	column_select_actions: ACTION_SEQUENCE [TUPLE [EV_GRID_COLUMN]]
    	conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
    	dock_ended_actions: EV_NOTIFY_ACTION_SEQUENCE
    	dock_started_actions: EV_NOTIFY_ACTION_SEQUENCE
    	docked_actions: EV_DOCKABLE_SOURCE_ACTION_SEQUENCE
    	drop_actions: EV_PND_ACTION_SEQUENCE
    	file_drop_actions: ACTION_SEQUENCE [TUPLE [LIST [STRING_32]]]
    	fill_background_actions: ACTION_SEQUENCE [TUPLE [EV_DRAWABLE, INTEGER_32, INTEGER_32, INTEGER_32, INTEGER_32]]
    	focus_in_actions: EV_NOTIFY_ACTION_SEQUENCE
    	focus_out_actions: EV_NOTIFY_ACTION_SEQUENCE
    	item_activate_actions: ACTION_SEQUENCE [TUPLE [EV_GRID_ITEM, EV_POPUP_WINDOW]]
    	item_deactivate_actions: EV_GRID_ITEM_ACTION_SEQUENCE
    	item_deselect_actions: EV_GRID_ITEM_ACTION_SEQUENCE
    	item_drop_actions: ACTION_SEQUENCE [TUPLE [EV_GRID_ITEM, ANY]]
    	item_select_actions: EV_GRID_ITEM_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
    	new_item_actions: EV_NEW_ITEM_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_press_item_actions: ACTION_SEQUENCE [TUPLE [INTEGER_32, INTEGER_32, INTEGER_32, EV_GRID_ITEM]]
    	pointer_button_release_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_button_release_item_actions: ACTION_SEQUENCE [TUPLE [INTEGER_32, INTEGER_32, INTEGER_32, EV_GRID_ITEM]]
    	pointer_double_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_double_press_item_actions: ACTION_SEQUENCE [TUPLE [INTEGER_32, INTEGER_32, INTEGER_32, EV_GRID_ITEM]]
    	pointer_enter_actions: EV_NOTIFY_ACTION_SEQUENCE
    	pointer_enter_item_actions: ACTION_SEQUENCE [TUPLE [BOOLEAN, EV_GRID_ITEM]]
    	pointer_leave_actions: EV_NOTIFY_ACTION_SEQUENCE
    	pointer_leave_item_actions: ACTION_SEQUENCE [TUPLE [BOOLEAN, EV_GRID_ITEM]]
    	pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE
    	pointer_motion_item_actions: ACTION_SEQUENCE [TUPLE [INTEGER_32, INTEGER_32, EV_GRID_ITEM]]
    	post_draw_overlay_actions: ACTION_SEQUENCE [TUPLE [EV_DRAWABLE, EV_GRID_ITEM, INTEGER_32, INTEGER_32]]
    	pre_draw_overlay_actions: ACTION_SEQUENCE [TUPLE [EV_DRAWABLE, EV_GRID_ITEM, INTEGER_32, INTEGER_32]]
    	resize_actions: EV_GEOMETRY_ACTION_SEQUENCE
    	row_collapse_actions: EV_GRID_ROW_ACTION_SEQUENCE
    	row_deselect_actions: EV_GRID_ROW_ACTION_SEQUENCE
    	row_expand_actions: EV_GRID_ROW_ACTION_SEQUENCE
    	row_select_actions: EV_GRID_ROW_ACTION_SEQUENCE
    	virtual_position_changed_actions: ACTION_SEQUENCE [TUPLE [INTEGER_32, INTEGER_32]]
    	virtual_size_changed_actions: ACTION_SEQUENCE [TUPLE [INTEGER_32, INTEGER_32]]

    Queries
    	accept_cursor: EV_POINTER_STYLE
    	activate_window: EV_POPUP_WINDOW
    	actual_drop_target_agent: FUNCTION [ANY, TUPLE [INTEGER_32, INTEGER_32], EV_ABSTRACT_PICK_AND_DROPABLE]
    	are_column_separators_enabled: BOOLEAN
    	are_columns_drawn_above_rows: BOOLEAN
    	are_row_separators_enabled: BOOLEAN
    	are_tree_node_connectors_shown: BOOLEAN
    	background_color: EV_COLOR
    	background_pixmap: EV_PIXMAP
    	cell_item: EV_WIDGET
    	client_height: INTEGER_32
    	client_width: INTEGER_32
    	closest_dockable_target: EV_DOCKABLE_TARGET
    	column (a_column: INTEGER_32): EV_GRID_COLUMN
    	column_at_virtual_position (a_virtual_x: INTEGER_32): EV_GRID_COLUMN
    	column_count: INTEGER_32
    	column_displayed (a_column: INTEGER_32): BOOLEAN
    	currently_active_item: EV_GRID_ITEM
    	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
    	displayed_background_color (a_column, a_row: INTEGER_32): EV_COLOR
    	displayed_column (i: INTEGER_32): EV_GRID_COLUMN
    	displayed_column_count: INTEGER_32
    	dockable_dialog_target: EV_DOCKABLE_DIALOG
    	Drag_cursor: EV_POINTER_STYLE
    	drawables_have_focus: BOOLEAN
    	dynamic_content_function: FUNCTION [ANY, TUPLE [INTEGER_32, INTEGER_32], EV_GRID_ITEM]
    	first_visible_column: EV_GRID_COLUMN
    	first_visible_row: EV_GRID_ROW
    	focused_selection_color: EV_COLOR
    	focused_selection_text_color: EV_COLOR
    	foreground_color: EV_COLOR
    	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]
    	has_capture: BOOLEAN
    	has_focus: BOOLEAN
    	has_horizontal_scrolling_per_item_just_changed: BOOLEAN
    	has_vertical_scrolling_per_item_just_changed: BOOLEAN
    	height: INTEGER_32
    	help_context: FUNCTION [ANY, TUPLE, EV_HELP_CONTEXT]
    	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_pointer_style: EV_POINTER_STYLE
    	Internal_screen: EV_SCREEN
    	is_always_selected: BOOLEAN
    	is_column_resize_immediate: BOOLEAN
    	is_content_partially_dynamic: BOOLEAN
    	is_displayed: BOOLEAN
    	is_dock_executing: BOOLEAN
    	is_dockable: BOOLEAN
    	is_docking_enabled: BOOLEAN
    	is_external_docking_enabled: BOOLEAN
    	is_external_docking_relative: BOOLEAN
    	is_header_displayed: BOOLEAN
    	is_horizontal_offset_set_to_zero_when_items_smaller_than_viewable_width: BOOLEAN
    	is_horizontal_overscroll_enabled: BOOLEAN
    	is_horizontal_scroll_bar_show_requested: BOOLEAN
    	is_horizontal_scrolling_per_item: BOOLEAN
    	is_item_height_changing: BOOLEAN
    	is_multiple_item_selection_enabled: BOOLEAN
    	is_multiple_row_selection_enabled: BOOLEAN
    	is_multiple_selection_enabled: BOOLEAN
    	is_resizing_divider_enabled: BOOLEAN
    	is_resizing_divider_solid: BOOLEAN
    	is_row_height_fixed: BOOLEAN
    	is_row_selection_enabled: BOOLEAN
    	is_selection_keyboard_handling_enabled: BOOLEAN
    	is_selection_on_click_enabled: BOOLEAN
    	is_selection_on_single_button_click_enabled: BOOLEAN
    	is_show_requested: BOOLEAN
    	is_single_item_selection_enabled: BOOLEAN
    	is_single_row_selection_enabled: BOOLEAN
    	is_transport_enabled: BOOLEAN
    	is_tree_enabled: BOOLEAN
    	is_vertical_overscroll_enabled: BOOLEAN
    	is_vertical_scroll_bar_show_requested: BOOLEAN
    	is_vertical_scrolling_per_item: BOOLEAN
    	item (a_column, a_row: INTEGER_32): EV_GRID_ITEM
    	item_accept_cursor_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM], EV_POINTER_STYLE]
    	item_accepts_pebble (a_item: EV_GRID_ITEM; a_pebble: ANY): BOOLEAN
    	item_at_virtual_position (a_virtual_x, a_virtual_y: INTEGER_32): EV_GRID_ITEM
    	item_deny_cursor_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM], EV_POINTER_STYLE]
    	item_pebble_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM], ANY]
    	item_target: EV_GRID_ITEM
    	item_veto_pebble_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM, ANY], BOOLEAN]
    	last_visible_column: EV_GRID_COLUMN
    	last_visible_row: EV_GRID_ROW
    	locked_indexes: ARRAYED_LIST [EV_GRID_LOCKED_I]
    	maximum_virtual_x_position: INTEGER_32
    	maximum_virtual_y_position: INTEGER_32
    	merged_radio_button_groups: ARRAYED_LIST [EV_CONTAINER]
    	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
    	non_focused_selection_color: EV_COLOR
    	non_focused_selection_text_color: EV_COLOR
    	not_external_docking_enabled: BOOLEAN
    	not_is_external_docking_relative: BOOLEAN
    	original_parent_position: INTEGER_32
    	original_x_offset: INTEGER_16
    	original_y_offset: INTEGER_16
    	originating_source: EV_DOCKABLE_SOURCE_I
    	parent: EV_CONTAINER
    	pebble: ANY
    	pebble_function: FUNCTION [ANY, TUPLE, ANY]
    	pebble_positioning_enabled: BOOLEAN
    	pebble_x_position: INTEGER_32
    	pebble_y_position: INTEGER_32
    	pixels_displayed_after_final_column: INTEGER_32
    	pixels_displayed_after_final_row: INTEGER_32
    	pixmap_equal_to (a_pixmap: EV_PIXMAP): BOOLEAN
    	pointer_position: EV_COORDINATE
    	pointer_style: EV_POINTER_STYLE
    	pointer_x: INTEGER_16
    	pointer_y: INTEGER_16
    	real_source: EV_DOCKABLE_SOURCE
    	real_target: EV_DOCKABLE_TARGET
    	row (a_row: INTEGER_32): EV_GRID_ROW
    	row_at_virtual_position (a_virtual_y: INTEGER_32; ignore_locked_rows: BOOLEAN): EV_GRID_ROW
    	row_count: INTEGER_32
    	row_height: INTEGER_32
    	rubber_band_is_drawn: BOOLEAN
    	screen_x: INTEGER_32
    	screen_y: INTEGER_32
    	selected_columns: ARRAYED_LIST [EV_GRID_COLUMN]
    	selected_items: ARRAYED_LIST [EV_GRID_ITEM]
    	selected_rows: ARRAYED_LIST [EV_GRID_ROW]
    	separator_color: EV_COLOR
    	source_being_docked: EV_DOCKABLE_SOURCE_I
    	subrow_indent: INTEGER_32
    	to_implement_assertion (comment: STRING_8): BOOLEAN
    	tooltip: STRING_32
    	tree_node_connector_color: EV_COLOR
    	user_is_sensitive: BOOLEAN
    	user_pebble_function_intermediary (a_x, a_y: INTEGER_32): ANY
    	user_pebble_function_intermediary_locked (a_x, a_y: INTEGER_32; locked: EV_GRID_LOCKED_I): ANY
    	veto_dock_function: FUNCTION [ANY, TUPLE [EV_DOCKABLE_SOURCE], BOOLEAN]
    	veto_pebble_function_intermediary (a_pebble: ANY): BOOLEAN
    	viewable_height: INTEGER_32
    	viewable_row_indexes: ARRAYED_LIST [INTEGER_32]
    	viewable_width: INTEGER_32
    	viewable_x_offset: INTEGER_32
    	viewable_y_offset: INTEGER_32
    	virtual_height: INTEGER_32
    	virtual_width: INTEGER_32
    	virtual_x_position: INTEGER_32
    	virtual_y_position: INTEGER_32
    	visible_column_indexes: ARRAYED_LIST [INTEGER_32]
    	visible_row_count: INTEGER_32
    	visible_row_indexes: ARRAYED_LIST [INTEGER_32]
    	width: INTEGER_32
    	x_position: INTEGER_32
    	y_position: INTEGER_32

    Commands
    	activate_item (a_item: EV_GRID_ITEM)
    	clear
    	close_dockable_dialog (dockable_dialog: EV_DOCKABLE_DIALOG)
    	complete_dock
    	deactivate_item (a_item: EV_GRID_ITEM)
    	disable_always_selected
    	disable_capture
    	disable_column_resize_immediate
    	disable_column_separators
    	disable_columns_drawn_above_rows
    	disable_dockable
    	disable_docking
    	disable_drawables_have_focus
    	disable_dynamic_content
    	disable_external_docking
    	disable_external_docking_relative
    	disable_full_redraw_on_virtual_position_change
    	disable_horizontal_offset_set_to_zero_when_items_smaller_than_viewable_width
    	disable_horizontal_overscroll
    	disable_horizontal_scrolling_per_item
    	disable_pebble_positioning
    	disable_resizing_divider
    	disable_row_height_fixed
    	disable_row_separators
    	disable_selection_keyboard_handling
    	disable_selection_on_click
    	disable_solid_resizing_divider
    	disable_transport
    	disable_tree
    	disable_vertical_overscroll
    	disable_vertical_scrolling_per_item
    	drop_action_intermediary (a_pebble: ANY)
    	enable_always_selected
    	enable_capture
    	enable_column_resize_immediate
    	enable_column_separators
    	enable_columns_drawn_above_rows
    	enable_dockable
    	enable_docking
    	enable_drawables_have_focus
    	enable_external_docking
    	enable_external_docking_relative
    	enable_full_redraw_on_virtual_position_change
    	enable_horizontal_overscroll
    	enable_horizontal_scrolling_per_item
    	enable_multiple_item_selection
    	enable_multiple_row_selection
    	enable_partial_dynamic_content
    	enable_pebble_positioning
    	enable_resizing_divider
    	enable_row_height_fixed
    	enable_row_separators
    	enable_selection_keyboard_handling
    	enable_selection_on_click
    	enable_selection_on_single_button_click
    	enable_single_item_selection
    	enable_single_row_selection
    	enable_solid_resizing_divider
    	enable_transport
    	enable_tree
    	enable_vertical_overscroll
    	enable_vertical_scrolling_per_item
    	extend (an_item: [like cell_item] EV_WIDGET)
    	fixme (comment: STRING_8)
    	hide
    	hide_column (a_column: INTEGER_32)
    	hide_header
    	hide_horizontal_scroll_bar
    	hide_tree_node_connectors
    	hide_vertical_scroll_bar
    	insert_new_column (a_index: INTEGER_32)
    	insert_new_rows (rows_to_insert, i: INTEGER_32)
    	insert_new_rows_parented (rows_to_insert, i: INTEGER_32; a_parent_row: EV_GRID_ROW)
    	internal_disable_dockable
    	internal_enable_dockable
    	lock_update
    	merge_radio_button_groups (other: EV_CONTAINER)
    	move_columns (i, j, n: INTEGER_32)
    	move_rows_to_parent (i, j, n: INTEGER_32; a_parent_row: EV_GRID_ROW)
    	propagate_background_color
    	propagate_foreground_color
    	recompute_horizontal_scroll_bar
    	redraw
    	refresh_now
    	remove_background_pixmap
    	remove_column (a_column: INTEGER_32)
    	remove_default_key_processing_handler
    	remove_help_context
    	remove_insert_label
    	remove_insert_sep
    	remove_pebble
    	remove_real_source
    	remove_real_target
    	remove_row (a_row: INTEGER_32)
    	remove_rows (lower_index, upper_index: INTEGER_32)
    	remove_selection
    	replace (v: [like cell_item] EV_WIDGET)
    	select_column (a_column: INTEGER_32)
    	select_row (a_row: INTEGER_32)
    	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: [like background_color] EV_COLOR)
    	set_background_pixmap (a_pixmap: EV_PIXMAP)
    	set_column_count_to (a_column_count: INTEGER_32)
    	set_default_colors
    	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_dynamic_content_function (a_function: FUNCTION [ANY, TUPLE [INTEGER_32, INTEGER_32], EV_GRID_ITEM])
    	set_first_visible_row (a_row: INTEGER_32)
    	set_focus
    	set_focused_selection_color (a_color: EV_COLOR)
    	set_focused_selection_text_color (a_color: EV_COLOR)
    	set_foreground_color (a_color: [like foreground_color] EV_COLOR)
    	set_help_context (an_help_context: [like help_context] FUNCTION [ANY, TUPLE, EV_HELP_CONTEXT])
    	set_item (a_column, a_row: INTEGER_32; a_item: EV_GRID_ITEM)
    	set_item_accept_cursor_function (a_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM], EV_POINTER_STYLE])
    	set_item_deny_cursor_function (a_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM], EV_POINTER_STYLE])
    	set_item_pebble_function (a_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM], ANY])
    	set_item_veto_pebble_function (a_function: FUNCTION [ANY, TUPLE [EV_GRID_ITEM, ANY], BOOLEAN])
    	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_node_pixmaps (an_expand_node_pixmap, a_collapse_node_pixmap: EV_PIXMAP)
    	set_non_focused_selection_color (a_color: EV_COLOR)
    	set_non_focused_selection_text_color (a_color: EV_COLOR)
    	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_real_source (dockable_source: EV_DOCKABLE_SOURCE)
    	set_real_target (a_target: EV_DOCKABLE_TARGET)
    	set_row_count_to (a_row_count: INTEGER_32)
    	set_row_height (a_row_height: INTEGER_32)
    	set_separator_color (a_color: EV_COLOR)
    	set_subrow_indent (a_subrow_indent: INTEGER_32)
    	set_target_menu_mode
    	set_tooltip (a_tooltip: STRING_GENERAL)
    	set_tree_node_connector_color (a_color: EV_COLOR)
    	set_veto_dock_function (a_function: FUNCTION [ANY, TUPLE [EV_DOCKABLE_SOURCE], BOOLEAN])
    	set_virtual_position (virtual_x, virtual_y: INTEGER_32)
    	show
    	show_column (a_column: INTEGER_32)
    	show_header
    	show_horizontal_scroll_bar
    	show_tree_node_connectors
    	show_vertical_scroll_bar
    	to_implement (comment: STRING_8)
    	unlock_column (a_column: EV_GRID_COLUMN_I)
    	unlock_row (a_row: EV_GRID_ROW_I)
    	unlock_update
    	unmerge_radio_button_groups (other: EV_CONTAINER)
    	user_disable_sensitive
    	user_enable_sensitive
    	wipe_out

    Constraints
    	drawer not void
    	drawable not void
    	header positioned corrently
    	internal client y valid while vertical scrollbar hidden
    	internal client y valid while vertical scrollbar shown
    	internal client x valid while horizontal scrollbar hidden
    	internal client x valid while horizontal scrollbar shown
    	row heights fixed implies row offsets void
    	row lists count equal
    	displayed column count not greater than column count
    	computed visible row count equals row when not users row offsets
    	computed visible row count no greater than rows
    	tree disabled implies visible rows equal hidden rows
    	internal viewport positions equal to viewports
    	tree node connector color not void