From: rogerr@netcom.com (roger reynolds)
Subject: Re: RDD version 2 now available
Organization: Netcom - Online Communication Services (408 241-9760 guest)
Date: Wed, 7 Oct 1992 16:33:22 GMT

In article <9210062333.AA10581@expo.lcs.mit.edu> rogerr@netcom.COM (roger reynolds) writes:
>
>	As promised some time ago (sorry for the delay), a new version
>	of RDD is available.
>
>	Here is what is new:
>		- Ability to drag around a pixmap.  This makes for a much
>		  more "real" looking drag action.
>		- Ability to specify an arbitrary data type in the Rdd Client 
>		  message.  For example, you can tell the guy you are dropping
>		  on that the data is a "filename" or "pixmap" or whatever...
>		- Ability to start a drag-n-drop sequence from a callback
>		  routine.
>		- A couple of bug fixes.
>
>	The new version is available on export.lcs.mit.edu in the contrib
>	directory.  The file is rdd2.tar.Z
>	It was also posted to alt.sources.
>
>	As usual, your comments on how you are using rdd, and how well it 
>	works are most welcomed!
>
>	rogerr@netcom.com


	Sorry, for not describing what RDD is.
	Here is the readme file from RDD:



	
		
                     R D D -  Rogers Drag 'n Drop Library
				version 2


Description:
	RDD is a small library (if you call 1 module a library) that
	implements a basic drag-n-drop protocol for Xt based clients.
	Using RDD, it is quite trivial to add drag-n-drop functionality
	to new or existing applications, at least the drop part, starting
	a drag operation takes a bit more work.
	It also contains an example program which demonstrates how to
	use RDD.

New In this Release:
	- new function for specifying a pixmap to be dragged around by
	  rddDragAction
	- new function for specifying a type for the data being dropped
	- new members in the RddCallbackStruct
	- a callback procedure which can be installed to handle starting
	  a drag operation.
	- updated main program which demonstrates dragging a pixmap around.

Contents:
	rdd.h	- header file to be included by users.
	rdd.c	- compile and link with your application, or compile
		  with -DMAIN to build demo program.

Usage:
	To use RDD, an application must generally do the following
	- include rdd.h
	- call rddInit sometime between creating the top level shell
	  and calling XtRealize.
	- use rddAddDropHandler to register callback functions for windows
	  that get things dropped on them
	- bind the action routines rddStartAction, rddDragAction, and
	  rddDropAction to appropriate events for clients which initiate
	  drag operations.
	- replace XtAppMainLoop with rddAppMainLoop.

Building:
	To build the sample program:
		$(CC) $(CFLAGS) -DMAIN rdd.c -o rdd -lXt -lX11	
	should about do it.

Implementation:
	Quicky, when one client wants to drop something on another, the 
	data to be sent is stored in a special cut buffer, then an
	"rddProtocolMsg" ClientMessage event is sent from the initiating
	client to the destination client, who  retrieves the data, loads
	it into an RddCallbackStruct, and calls the drop handler function
	registered by the user for the window which was "dropped on".
	The type of data that is sent back an forth is undefined by
	RDD, but a typical example would be that client A drops the
	name of a file on client B, who then does whatever it does with
	the named file (load it, print it, delete it, etc...).

Author:
	Written by Roger Reynolds.  You may freely use/redistribute the
	RDD library.  Please drop me a line to let me know if you are
	using RDD, what for, how it works, bugs etc...
	This is pretty much just for my own information.
	There will undoubtably be improvements and updates to RDD.
	If you are interested, I will be maintaining a mailing-list of
	sorts, drop me your name and I'll try to keep you posted on
	what happens.
Newsgroups: comp.windows.x