*********************
VDKDnD class
********************
Inherits from VDKRawObject

Description
-----------
This class provides support for gtk+ drag an drop
VDKDnD can be viewed from two sides:
Source side:
-----------
the widget that is dragged. Source widget are normally
non-containers widgets.
Target side:
-----------
the widget that accept (is the target) of a dragged widget.
Target widgets are normally containers widget even if not
compulsory
.
Widgets can be both sources and targets, so VDKDnD class
supports m:n relationship between widgets interested in dnd.
VDKDnD class provides support for both sides.


PUBLIC MEMBERS
--------------
None

PROPERTIES
----------

VDKObject* DragSource (read-only)
The widget that actually is beeein dragged

VDKPoint   DragPoint (read-only)
Receiving a dnd_drag_motion signal, DragPoint contains mouse
coordinates.

METHODS
-------
VDKDnD(VDKObject* owner, GtkTargetEntry* target_table,
		  guint n_entries);
	Constructor, accept a target entry table and table size in rows.

virtual ~VDKDnD();
	Destructor

void AddTarget(VDKObject* target);
     Add a widget as dnd target.

void AddSource(VDKObject* source);
     Add an widget as dnd source.

void RemoveTarget(VDKObject* target);
     Remove a target from target list

void RemoveSource(VDKObject* source);
     Remove a source from source list

void SetIcon(VDKObject* widget, VDKRawPixmap* pixmap);
     Sets widget dragging icon

VDKDnDTable* DnDSources();
VDKDnDTable* DnDTargets();
    Return sources and targets dnd tables.
    VDKDnDTable class is a  VDKList of VDKDnDEntry class objects.
    Each VDKDnDEntry object has a method Object() that returns
    source/target widget address.
    VDKDnDIterator class for accessing table is provided as well.    
	         

USING PROPERTIES
----------------
DragSource (read-only)
     Once dnd_get_data_signal or dnd_dropped_signal are received 
     this properties contains drag source widget address.
     (Tip: always check if that property is NULL or not)
     
VDKPoint   DragPoint (read-only)
     Once dnd_drag_motion_signal is received this property contains
     mouse coordinates.

SIGNALS
-------
Both signals for static and dynamic tables are provided.

static table: dnd_dropped_signal 
dynamic table: "dnd_dropped"
	Received by target when a dragged widget is dropped into target

static table:	dnd_get_data_signal
dynamic table:	"dnd_get_data"
	Received when source data are transferred to dnd widget
	(not very useful for a normal user)


static table:	 dnd_drag_motion_signal
dynamic table:	 "dnd_drag_motion"
	received by target when a dragged widget icon mouves over the target widget

static table:	dnd_drag_leave_signal
dynamic table:	"dnd_drag_leave"
	received by target when a dragged widget icon leaves the target widget
TIP:
---
Signals using dynamic tables are handled by vdk overriding gtk+,
thus user must connect with dynamic tables setting <gtk> arg always false.
i.e.
SignalConnect(target,"dnd_dropped",&DndForm::OnDrop,false);

EXAMPLE:
In ./testvdk/dnd.cc and dnd.h


