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*

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
	data: ANY
	deny_cursor: EV_POINTER_STYLE
	id_object (an_id: INTEGER_32): IDENTIFIED
	is_destroyed: 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
	target_name: STRING_GENERAL

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_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_menu_mode
	set_target_name (a_name: STRING_GENERAL)

Constraints
	user interface modes mutually exclusive