X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c4f71cc3d63fb7bdfbd6cec3e39c8a8679f3e60..25b5adb446774de85425ed8da95f78a75964cd8e:/docs/doxygen/overviews/dnd.h diff --git a/docs/doxygen/overviews/dnd.h b/docs/doxygen/overviews/dnd.h index ee725cd088..db4bb131e9 100644 --- a/docs/doxygen/overviews/dnd.h +++ b/docs/doxygen/overviews/dnd.h @@ -8,54 +8,54 @@ /** - @page overview_dnd Drag and Drop Overview +@page overview_dnd Drag and Drop Overview - Classes: wxDataObject, wxTextDataObject, wxDropSource, wxDropTarget, - wxTextDropTarget, wxFileDropTarget +Classes: wxDataObject, wxTextDataObject, wxDropSource, wxDropTarget, + wxTextDropTarget, wxFileDropTarget - Note that @c wxUSE_DRAG_AND_DROP must be defined in @c setup.h in order - to use drag and drop in wxWidgets. +Note that @c wxUSE_DRAG_AND_DROP must be defined in @c setup.h in order +to use drag and drop in wxWidgets. - See also: @ref overview_dataobject and @ref page_utils_samples_dnd. +See also: @ref overview_dataobject and @ref page_samples_dnd. - 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. +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: +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: - @li @b Preparation: First of all, a data object must be created and - initialized with the data you wish to drag. For example: +@li @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 + @code + wxTextDataObject my_data("This text will be dragged."); + @endcode - @li Drag start: To start the dragging process (typically in response to a - mouse click) you must call wxDropSource::DoDragDrop like this: +@li 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 + @code + wxDropSource dragSource( this ); + dragSource.SetData( my_data ); + wxDragResult result = dragSource.DoDragDrop( true ); + @endcode - @li @b Dragging: The call to DoDragDrop() blocks the program until the user releases - the mouse button (unless you override the wxDropSource::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. +@li @b Dragging: The call to DoDragDrop() blocks the program until the user releases + the mouse button (unless you override the wxDropSource::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. - @li Processing the result: DoDragDrop() returns an @e effect code which - is one of the values of @c wxDragResult enum (explained in wxDropTarget page): +@li Processing the result: DoDragDrop() returns an @e effect code which + is one of the values of @c wxDragResult enum (explained in wxDropTarget page): - @code - switch (result) - { + @code + switch (result) + { case wxDragCopy: // copy the data break; @@ -65,31 +65,31 @@ default: // do nothing break; - } - @endcode - - - To be a @e drop target, i.e. to receive the data dropped by the user you should - follow the instructions below: - - @li @b Initialization: For a window to be a drop target, it needs to have - an associated wxDropTarget object. Normally, you will call wxWindow::SetDropTarget - during window creation associating your drop target with it. You must derive a class - from wxDropTarget and override its pure virtual methods. Alternatively, you may - derive from wxTextDropTarget or wxFileDropTarget and override their OnDropText() - or OnDropFiles() method. - - @li @b Drop: When the user releases the mouse over a window, wxWidgets - asks the associated wxDropTarget object if it accepts the data. For this, - a wxDataObject must be associated with the drop target and this data object will - be responsible for the format negotiation between the drag source and the drop target. - If all goes well, then wxDropTarget::OnData will get called and the wxDataObject belonging - to the drop target can get filled with data. - - @li The end: After processing the data, DoDragDrop() returns either - wxDragCopy or wxDragMove depending on the state of the keys Ctrl, Shift - and Alt at the moment of the drop. There is currently no way for the drop - target to change this return code. + } + @endcode + + +To be a @e drop target, i.e. to receive the data dropped by the user you should +follow the instructions below: + +@li @b Initialization: For a window to be a drop target, it needs to have + an associated wxDropTarget object. Normally, you will call wxWindow::SetDropTarget + during window creation associating your drop target with it. You must derive a class + from wxDropTarget and override its pure virtual methods. Alternatively, you may + derive from wxTextDropTarget or wxFileDropTarget and override their OnDropText() + or OnDropFiles() method. + +@li @b Drop: When the user releases the mouse over a window, wxWidgets + asks the associated wxDropTarget object if it accepts the data. For this, + a wxDataObject must be associated with the drop target and this data object will + be responsible for the format negotiation between the drag source and the drop target. + If all goes well, then wxDropTarget::OnData will get called and the wxDataObject belonging + to the drop target can get filled with data. + +@li The end: After processing the data, DoDragDrop() returns either + wxDragCopy or wxDragMove depending on the state of the keys Ctrl, Shift + and Alt at the moment of the drop. There is currently no way for the drop + target to change this return code. */