deferred class
	EV_PICK_AND_DROPABLE

General
	cluster: interface
	description: 
		"Facilities for pick and drop mechanism.
		Decendents can act both as pick and drop sources and as targets.
		When the user picks a `pebble' from a source and drops on a target,the `drop_actions' of the target receive the `pebble' as input.
		The user interface can be either pick and drop or drag and drop,selected by `set_pick_and_drop' and `set_drag_and_drop'."
	keywords: "pick and drop, drag and drop, source, PND, DND"

Ancestors
	EV_ABSTRACT_PICK_AND_DROPABLE*
	EV_ANY*
	EV_PICK_AND_DROPABLE_ACTION_SEQUENCES*
	EV_POSITIONED*

Action sequences
	conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
	drop_actions: EV_PND_ACTION_SEQUENCE
	pick_actions: EV_PND_START_ACTION_SEQUENCE
	pick_ended_actions: EV_PND_FINISHED_ACTION_SEQUENCE
	pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE

Queries
	accept_cursor: EV_POINTER_STYLE
	configurable_target_menu_handler: PROCEDURE [ANY, TUPLE [EV_MENU, ARRAYED_LIST [EV_PND_TARGET_DATA], EV_PICK_AND_DROPABLE, ANY]]
	data: ANY
	deny_cursor: EV_POINTER_STYLE
	height: INTEGER_32
	id_object (an_id: INTEGER_32): ?IDENTIFIED
	is_destroyed: BOOLEAN
	minimum_height: INTEGER_32
	minimum_width: INTEGER_32
	mode_is_configurable_target_menu: BOOLEAN
	mode_is_drag_and_drop: BOOLEAN
	mode_is_pick_and_drop: BOOLEAN
	mode_is_target_menu: BOOLEAN
	object_id: INTEGER_32
	pebble: ANY
	pebble_function: FUNCTION [ANY, TUPLE, ANY]
	pebble_positioning_enabled: BOOLEAN
	pebble_x_position: INTEGER_32
	pebble_y_position: INTEGER_32
	screen_x: INTEGER_32
	screen_y: INTEGER_32
	target_data_function: FUNCTION [ANY, TUPLE [ANY], EV_PND_TARGET_DATA]
	target_name: STRING_GENERAL
	width: INTEGER_32
	x_position: INTEGER_32
	y_position: INTEGER_32

Commands
	copy (other: [like Current] EV_PICK_AND_DROPABLE)
	destroy
	disable_pebble_positioning
	enable_pebble_positioning
	remove_pebble
	set_accept_cursor (a_cursor: [like accept_cursor] EV_POINTER_STYLE)
	set_configurable_target_menu_handler (a_handler: PROCEDURE [ANY, TUPLE [EV_MENU, ARRAYED_LIST [EV_PND_TARGET_DATA], EV_PICK_AND_DROPABLE, ANY]])
	set_configurable_target_menu_mode
	set_data (some_data: [like data] ANY)
	set_deny_cursor (a_cursor: [like deny_cursor] EV_POINTER_STYLE)
	set_drag_and_drop_mode
	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_target_data_function (a_function: FUNCTION [ANY, TUPLE [[like pebble] ANY], EV_PND_TARGET_DATA])
	set_target_menu_mode
	set_target_name (a_name: STRING_GENERAL)
	show_configurable_target_menu (a_x, a_y: INTEGER_32)

Constraints
	user interface modes mutually exclusive