-/*!
-
- @page dnd_overview Drag and drop overview
-
- Classes: #wxDataObject,
- #wxTextDataObject,
- #wxDropSource,
- #wxDropTarget,
- #wxTextDropTarget,
- #wxFileDropTarget
- Note that wxUSE_DRAG_AND_DROP must be defined in setup.h in order
- to use drag and drop in wxWidgets.
- See also: @ref dataobject_overview and @ref samplednd_overview
- It may be noted that data transfer to and from the clipboard is quite
- similar to data transfer with drag and drop and the code to implement
- these two types is almost the same. In particular, both data transfer
- mechanisms store data in some kind of #wxDataObject
- and identify its format(s) using the #wxDataFormat
- class.
- To be a @e drag source, i.e. to provide the data which may be dragged by
- the user elsewhere, you should implement the following steps:
-
-
- @b Preparation: First of all, a data object must be created and
- initialized with the data you wish to drag. For example:
-
- @code
- wxTextDataObject my_data("This text will be dragged.");
- @endcode
-
- @b Drag start: To start the dragging process (typically in response to a
- mouse click) you must call wxDropSource::DoDragDrop
- like this:
-
- @code
- wxDropSource dragSource( this );
- dragSource.SetData( my_data );
- wxDragResult result = dragSource.DoDragDrop( TRUE );
- @endcode
-
- @b Dragging: The call to DoDragDrop() blocks the program until the user releases the
- mouse button (unless you override the #GiveFeedback function
- to do something special). When the mouse moves in a window of a program which understands the
- same drag-and-drop protocol (any program under Windows or any program supporting the
- XDnD protocol under X Windows), the corresponding #wxDropTarget methods
- are called - see below.
- @b Processing the result: DoDragDrop() returns an @e effect code which
- is one of the values of @c wxDragResult enum (explained #here):
-
- @code
- switch (result)
- {
- case wxDragCopy: /* copy the data */ break;
-case wxDragMove: /* move the data */
-break;
-default: /* do nothing */
-break;
-}
-@endcode