X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f9b1708cf57d57bc91f4e870a4646efd1f174c3d..340196c001690cd784e7e3f2fc54cd449324f914:/docs/latex/wx/tdnd.tex diff --git a/docs/latex/wx/tdnd.tex b/docs/latex/wx/tdnd.tex index ecdb4cf770..a2a970a951 100644 --- a/docs/latex/wx/tdnd.tex +++ b/docs/latex/wx/tdnd.tex @@ -7,16 +7,6 @@ Classes: \helpref{wxDataObject}{wxdataobject}, \helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget} -It has to be noted that the API for drag and drop in wxWindows is not -yet finished which is mostly due to the fact that DnD support under -GTK 1.0 is very rudimentary and entirely different from the XDnD -protocoll used by GTK 1.2. This also entails that not all of the documentation -concerning DnD might be correct and some of the code might get broken -in the future. The next release of wxWindows will be based on GTK 1.2 -and will hopefully include a much improved DnD support. The general -design on the wxDropSource side will be the same but especially the -wxDropTarget is almost certain to change. - Note that wxUSE\_DRAG\_AND\_DROP must be defined in setup.h in order to use Drag'n'Drop in wxWindows. @@ -44,7 +34,6 @@ initialized with the data you wish to drag. For example: \begin{verbatim} wxDataObject *my_data = new wxTextDataObject data("This string will be dragged."); \end{verbatim} - \item{\bf Drag start:} To start dragging process (typically in response to a mouse click) you must call \helpref{DoDragDrop}{wxdropsourcedodragdrop} function of wxDropSource object which should be constructed like this: @@ -53,14 +42,12 @@ of wxDropSource object which should be constructed like this: wxDropSource dragSource( this ); dragSource.SetData( my_data ); \end{verbatim} - \item {\bf Dragging:} The call to DoDragDrop() blocks until the user release the mouse button (unless you override \helpref{GiveFeedback}{wxdropsourcegivefeedback} 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 GTK 1.0 -DnD protocol under X Windows), the corresponding \helpref{wxDropTarget}{wxdroptarget} methods +same drag-and-drop protocol (any program under Windows or any program supporting the +XDnD protocol under X Windows), the corresponding \helpref{wxDropTarget}{wxdroptarget} methods are called - see below. - \item {\bf Processing the result:} DoDragDrop() returns an {\it effect code} which is one of the values of \helpref{wxDragResult}{wxdropsource} enum. Codes of wxDragError, wxDragNone and wxDragCancel have the obvious meaning and mean @@ -84,16 +71,13 @@ wxDropTarget and override its pure virtual methods. Alternatively, you may derive from \helpref{wxTextDropTarget}{wxtextdroptarget} or \helpref{wxFileDropTarget}{wxfiledroptarget} and override their OnDropText() or OnDropFiles() method. - \item {\bf Drop:} When the user releases the mouse over a window, wxWindows -queries the associated wxDropTarget object if it accepts the data. For -this, \helpref{GetFormatCount}{wxdroptargetgetformatcount} and \helpref{GetFormat}{wxdroptargetgetformat} are -used and if the format is -supported (i.e. is one of returned by GetFormat()), -then \helpref{OnDrop}{wxdroptargetondrop} is called. -Otherwise, wxDragNone is returned by DoDragDrop() and -nothing happens. - +queries the associated wxDropTarget object if it accepts the data. For this, +a \helpref{wxDataObject}{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 \helpref{OnData}{wxdroptargetondata} +will get called and the wxDataObject belonging to the drop target can get +filled with data. \item {\bf The end:} After processing the data, DoDragDrop() returns either wxDragCopy or wxDragMove depending on the state of the keys (, and ) at the moment of drop. There is currently no way for the drop