From dface61ccba162c922b25d18aca2ebc4e6f03312 Mon Sep 17 00:00:00 2001
From: Julian Smart <julian@anthemion.co.uk>
Date: Wed, 13 Jan 1999 14:23:31 +0000
Subject: [PATCH] Added dnd classes, data object classes, changed clipboard
 class doc, cured filefn.cpp wxFileNameFromPath bug, some tweaks to HelpGen

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/bmpdatob.tex    |  38 ++++++++++
 docs/latex/wx/category.tex    |  22 +++++-
 docs/latex/wx/classes.tex     |  12 +++-
 docs/latex/wx/clipbrd.tex     | 129 +++++++++++++++++-----------------
 docs/latex/wx/dataobj.tex     |  63 +++++++++++++++++
 docs/latex/wx/dropevt.tex     |   4 ++
 docs/latex/wx/dropsrc.tex     |  87 +++++++++++++++++++++++
 docs/latex/wx/droptrgt.tex    |  72 +++++++++++++++++++
 docs/latex/wx/fildatob.tex    |  38 ++++++++++
 docs/latex/wx/fildrptg.tex    |  62 ++++++++++++++++
 docs/latex/wx/prvdatob.tex    |  54 ++++++++++++++
 docs/latex/wx/sckaddr.tex     |   8 +--
 docs/latex/wx/tdnd.tex        |  17 +++--
 docs/latex/wx/textfile.tex    |  31 +++++++-
 docs/latex/wx/tlog.tex        |   9 ++-
 docs/latex/wx/topics.tex      |   2 +-
 docs/latex/wx/txtdatob.tex    |  42 +++++++++++
 docs/latex/wx/txtdrptg.tex    |  59 ++++++++++++++++
 docs/latex/wx/window.tex      |  24 +++++++
 docs/motif/todo.txt           |   4 +-
 docs/msw/todo.txt             |   4 +-
 src/common/filefn.cpp         |   4 +-
 src/msw/makefile.nt           |   8 +--
 utils/HelpGen/src/HelpGen.cpp |   6 +-
 24 files changed, 699 insertions(+), 100 deletions(-)
 create mode 100644 docs/latex/wx/bmpdatob.tex
 create mode 100644 docs/latex/wx/dataobj.tex
 create mode 100644 docs/latex/wx/dropsrc.tex
 create mode 100644 docs/latex/wx/droptrgt.tex
 create mode 100644 docs/latex/wx/fildatob.tex
 create mode 100644 docs/latex/wx/fildrptg.tex
 create mode 100644 docs/latex/wx/prvdatob.tex
 create mode 100644 docs/latex/wx/txtdatob.tex
 create mode 100644 docs/latex/wx/txtdrptg.tex

diff --git a/docs/latex/wx/bmpdatob.tex b/docs/latex/wx/bmpdatob.tex
new file mode 100644
index 0000000000..8519138f17
--- /dev/null
+++ b/docs/latex/wx/bmpdatob.tex
@@ -0,0 +1,38 @@
+\section{\class{wxBitmapDataObject}}\label{wxbitmapdataobject}
+
+ wxBitmapDataObject is a specialization of wxDataObject for bitmaps.
+
+\wxheading{Derived from}
+
+\helpref{wxDataObject}{wxdataobject}
+
+\wxheading{See also}
+
+\helpref{wxDataObject}{wxdataobject}, \helpref{wxBitmap}{wxbitmap}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxBitmapDataObject::wxBitmapDataObject}\label{wxbitmapdataobjectwxbitmapdataobject}
+
+\func{}{wxBitmapDataObject}{\void}
+
+Constructor. TODO: shouldn't there be a constructor taking a wxBitmap?
+
+\membersection{wxBitmapDataObject::GetFormat}\label{wxbitmapdataobjectgetformat}
+
+\func{virtual wxDataFormat}{GetFormat}{\void}
+
+Returns wxDF\_BITMAP.
+
+\membersection{wxBitmapDataObject::SetBitmap}\label{wxbitmapdataobjectsetbitmap}
+
+\func{virtual void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}}
+
+Sets the bitmap for the data object.
+
+\membersection{wxBitmapDataObject::GetBitmap}\label{wxbitmapdataobjectgetbitmap}
+
+\constfunc{virtual wxBitmap}{GetBitmap}{\void}
+
+Returns the bitmap associated with the data object.
+
diff --git a/docs/latex/wx/category.tex b/docs/latex/wx/category.tex
index c67d98c573..121f49b93a 100644
--- a/docs/latex/wx/category.tex
+++ b/docs/latex/wx/category.tex
@@ -316,8 +316,9 @@ facilities.
 
 \overview{Database classes overview}{odbcoverview}
 
-wxWindows provides a set of classes for accessing Microsoft's ODBC (Open Database Connectivity)
-product.
+wxWindows provides two alternative sets of classes for accessing Microsoft's ODBC (Open Database Connectivity)
+product. The new version by Remstar is documented in a separate manual.
+The older classes are as follows:
 
 \begin{twocollist}\itemsep=0pt
 \twocolitem{\helpref{wxDatabase}{wxdatabase}}{Database class}
@@ -326,6 +327,22 @@ product.
 \twocolitem{\helpref{wxRecordSet}{wxrecordset}}{Class representing one or more record}
 \end{twocollist}
 
+{\large {\bf Drag and drop and clipboard classes}}
+
+\overview{Drag and drop and clipboard overview}{wxdndoverview}
+
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\helpref{wxDropTarget}{wxdroptarget}}{Drop target class}
+\twocolitem{\helpref{wxFileDropTarget}{wxfiledroptarget}}{File drop target class}
+\twocolitem{\helpref{wxTextDropTarget}{wxtextdroptarget}}{Text drop target class}
+\twocolitem{\helpref{wxDropSource}{wxdropsource}}{Drop source class}
+\twocolitem{\helpref{wxDataObject}{wxdataobject}}{Data object class}
+\twocolitem{\helpref{wxTextDataObject}{wxtextdataobject}}{Text data object class}
+\twocolitem{\helpref{wxFileDataObject}{wxtextdataobject}}{File data object class}
+\twocolitem{\helpref{wxBitmapDataObject}{wxbitmapdataobject}}{Bitmap data object class}
+\twocolitem{\helpref{wxClipboard}{wxclipboard}}{Clipboard class}
+\end{twocollist}
+
 {\large {\bf File related classes}}
 
 wxWindows has several small classes to work with disk files, see \helpref{file classes
@@ -350,3 +367,4 @@ overview}{wxfileoverview} for more details.
 \twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class}
 \twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class}
 \end{twocollist}
+
diff --git a/docs/latex/wx/classes.tex b/docs/latex/wx/classes.tex
index 80f702b95e..d4cb013586 100644
--- a/docs/latex/wx/classes.tex
+++ b/docs/latex/wx/classes.tex
@@ -35,6 +35,7 @@ $$\image{14cm;0cm}{wxclass.ps}$$
 \input button.tex
 \input bitmap.tex
 \input bbutton.tex
+\input bmpdatob.tex
 \input brush.tex
 \input calclevt.tex
 \input checkbox.tex
@@ -57,6 +58,7 @@ $$\image{14cm;0cm}{wxclass.ps}$$
 \input crtslock.tex
 \input cursor.tex
 \input database.tex
+\input dataobj.tex
 \input date.tex
 \input datstrm.tex
 \input dc.tex
@@ -74,12 +76,16 @@ $$\image{14cm;0cm}{wxclass.ps}$$
 \input docprfrm.tex
 \input doctempl.tex
 \input dropevt.tex
+\input dropsrc.tex
+\input droptrgt.tex
 \input eraseevt.tex
 \input event.tex
 \input evthand.tex
 \input expr.tex
 \input file.tex
+\input fildatob.tex
 \input filedlg.tex
+\input fildrptg.tex
 \input filehist.tex
 \input filetype.tex
 \input focusevt.tex
@@ -181,9 +187,11 @@ $$\image{14cm;0cm}{wxclass.ps}$$
 \input taskbar.tex
 \input text.tex
 \input textdlg.tex
+\input txtdrptg.tex
 \input valtext.tex
-% \input tempfile.tex
-% \input textfile.tex
+\input tempfile.tex
+\input txtdatob.tex
+\input textfile.tex
 \input thread.tex
 \input time.tex
 \input timer.tex
diff --git a/docs/latex/wx/clipbrd.tex b/docs/latex/wx/clipbrd.tex
index a12f8b1f05..c8cefc54b9 100644
--- a/docs/latex/wx/clipbrd.tex
+++ b/docs/latex/wx/clipbrd.tex
@@ -1,13 +1,38 @@
 \section{\class{wxClipboard}}\label{wxclipboard}
 
-There is one wxClipboard object referenced by the pointer
-wxTheClipboard, initialized by calling \helpref{wxInitClipboard}{wxinitclipboard}.
-Under X, clipboard manipulation must be done by using this class, and
-such code will work under MS Windows also. Under MS Windows, you have the
-alternative of using the normal clipboard functions.
-
-The documentation for this class will be expanded in due course. At present,
-wxClipboard is only used in the wxMediaWindow add-on library.
+A class for manipulating the clipboard. Note that this is not compatible with the
+clipboard class from wxWindows 1.xx, which has the same name but a different implementation.
+
+To use the clipboard, construct a wxClipboard object on the stack and 
+call \helpref{wxClipboard::Open}{wxclipboardopen}. If this operation returns TRUE, you
+now own the clipboard. Call \helpref{wxClipboard::SetData}{wxclipboardsetdata} to put data
+on the clipboard (one or more times), or \helpref{wxClipboard::GetData}{wxclipboardgetdata} to
+retrieve data from the clipboard. Call \helpref{wxClipboard::Close}{wxclipboardclose} to close
+the clipboard and relinquish ownership. You should keep the clipboard open only momentarily.
+
+For example:
+
+\begin{verbatim}
+  wxClipboard clipboard;
+
+  // Write some text to the clipboard
+  if (clipboard.Open())
+  {
+    wxTextDataObject object("Some text");
+    clipboard.SetData(& object);
+    clipboard.Close();
+  }
+
+  // Read some text
+  if (clipboard.Open() && clipboard.IsSupportedFormat(wxDF_TEXT))
+  {
+    wxTextDataObject object;
+    clipboard.GetData(& object);
+    clipboard.Close();
+
+    wxMessageBox(object.GetText());
+  }
+\end{verbatim}
 
 \wxheading{Derived from}
 
@@ -15,89 +40,67 @@ wxClipboard is only used in the wxMediaWindow add-on library.
 
 \wxheading{See also}
 
-\helpref{wxClipboardClient}{wxclipboardclient}, \helpref{wxInitClipboard}{wxinitclipboard}.
+\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDataObject}{wxdataobject}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxClipboard::GetClipboardClient}
-
-\func{wxClipboardClient *}{GetClipboardClient}{\void}
-
-Get the clipboard client directly. Will be NULL if clipboard data
-is a string, or if some other application owns the clipboard. 
-This can be useful for shortcutting data translation, if the
-clipboard user can check for a specific client.
-
-\membersection{wxClipboard::GetClipboardData}
-
-\func{char*}{GetClipboardData}{\param{const wxString\& }{format}, \param{long *}{length}, \param{long}{ time}}
-
-Get data from the clipboard.
+\membersection{wxClipboard::wxClipboard}
 
-\membersection{wxClipboard::GetClipboardString}
+\func{}{wxClipboard}{\void}
 
-\func{wxString}{GetClipboardString}{\param{long}{ time}}
+Constructor.
 
-Get the data from the clipboard in the format ``TEXT".
+\membersection{wxClipboard::\destruct{wxClipboard}}
 
-\membersection{wxClipboard::SetClipboardClient}
+\func{}{\destruct{wxClipboard}}{\void}
 
-\func{void}{SetClipboardClient}{\param{wxClipboardClient *}{client}, \param{long}{ time}}
+Destructor.
 
-Set the clipboard data owner.
+\membersection{wxClipboard::Clear}\label{wxclipboardclear}
 
-\membersection{wxClipboard::SetClipboardString}
+\func{void}{Clear}{\void}
 
-\func{void}{SetClipboardString}{\param{const wxString\& }{data}, \param{long}{ time}}
+Clears the global clipboard object and the system's clipboard if possible.
 
-Set the clipboard string; does not require a client.
+\membersection{wxClipboard::Close}\label{wxclipboardclose}
 
-\section{\class{wxClipboardClient}}\label{wxclipboardclient}
+\func{bool}{Close}{\void}
 
-Implemented under X and MS Windows, a clipboard client holds data
-belonging to the clipboard. For plain text, a client is not necessary.
+Call this function to close the clipboard, having opened it with \helpref{wxClipboard::Close}{wxclipboardclose}.
 
-wxClipboardClient is an abstract class for which the virtual functions
-BeingReplaced and GetData must be overridden.
+\membersection{wxClipboard::GetData}\label{wxclipboardgetdata}
 
-\wxheading{Derived from}
-
-\helpref{wxObject}{wxobject}
+\func{bool}{GetData}{\param{wxDataObject*}{ data}}
 
-\wxheading{See also}
-
-\helpref{wxClipboard}{wxclipboard}, \helpref{wxInitClipboard}{wxinitclipboard}.
+Call this function to fill {\it data} with data on the clipboard, if available in the required
+format.
 
-\latexignore{\rtfignore{\wxheading{Members}}}
+\membersection{wxClipboard::IsSupportedFormat}\label{wxclipboardissupportedformat}
 
-\membersection{wxClipboardClient::formats}
+\func{bool}{IsSupportedFormat}{\param{wxDataFormat}{ format}, \param{const wxString\&}{ id = ""}}
 
-\member{wxStringList}{formats}
+Returns TRUE if the given format is available on the clipboard.
 
-This list should be filled in with strings indicating the formats
-this client can provide. Almost all clients will provide``TEXT".
-Format names should be 4 characters long, so things will work
-out on the Macintosh.
+\wxheading{Parameters}
 
-\membersection{wxClipboardClient::BeingReplaced}
+\docparam{format}{The format. See \helpref{wxDataObject}{wxdataobject} for a list of formats.}
 
-\func{void}{BeingReplaced}{\void}
+\docparam{id}{ If {\it format} is wxDF\_PRIVATE, {\it id} is the identifier of the private data format.}
 
-This method is called when the client is losing the selection.
+\membersection{wxClipboard::Open}\label{wxclipboardopen}
 
-\membersection{wxClipboardClient::GetData}
+\func{bool}{Open}{\void}
 
-\func{char*}{GetData}{\param{const wxString\& }{format}, \param{long *}{size}}
+Call this function to open the clipboard before calling \helpref{wxClipboard::SetData}{wxclipboardsetdata} 
+and \helpref{wxClipboard::GetData}{wxclipboardgetdata}.
 
-This method is called when someone wants the data this client is
-supplying to the clipboard.
+Call \helpref{wxClipboard::Close}{wxclipboardclose} when you have finished with the clipboard. You
+should keep the clipboard open for only a very short time.
 
-{\it format} is a string indicating the
-format of the data - one of the strings from the ``formats"
-list.
+\membersection{wxClipboard::SetData}\label{wxclipboardsetdata}
 
-{\it size} should be filled with the size of the resulting
-data. In the case of text, {\it size} does not count the
-NULL terminator.
+\func{bool}{SetData}{\param{wxDataObject*}{ data}}
 
+Call this function to set a data object to the clipboard. This function can be called several times
+to put different formats on the clipboard.
 
diff --git a/docs/latex/wx/dataobj.tex b/docs/latex/wx/dataobj.tex
new file mode 100644
index 0000000000..4efc76278e
--- /dev/null
+++ b/docs/latex/wx/dataobj.tex
@@ -0,0 +1,63 @@
+\section{\class{wxDataObject}}\label{wxdataobject}
+
+A wxDataObject represents data that can be copied to or from the clipboard, or
+dragged and dropped.
+
+There are several predefined data object classes, such as \helpref{wxFileDataObject}{wxfiledataobject}, 
+\helpref{wxTextDataObject}{wxtextdataobject}, and \helpref{wxBitmapDataObject}{wxbitmapdataobject}.
+
+You may also derive your own data object classes for user-defined types.
+
+TODO: how do user-defined types work?
+
+\wxheading{Derived from}
+
+\helpref{wxObject}{wxobject}
+
+\wxheading{Types}
+
+\index{wxDataFormat}The following symbols are interchangable with the
+Windows equivalents.
+
+\begin{verbatim}
+enum wxDataFormat
+{
+  wxDF_TEXT =             1,  /* CF_TEXT */
+  wxDF_BITMAP =           2,  /* CF_BITMAP */
+  wxDF_METAFILE =         3,  /* CF_METAFILEPICT */
+  wxDF_DIB =              8,  /* CF_DIB */
+  wxDF_OEMTEXT =          7,  /* CF_OEMTEXT */
+  wxDF_FILENAME =         15, /* CF_HDROP */
+  wxDF_PRIVATE =          20
+};
+\end{verbatim}
+
+\wxheading{See also}
+
+\helpref{wxFileDataObject}{wxfiledataobject}, 
+\helpref{wxTextDataObject}{wxtextdataobject}, 
+\helpref{wxBitmapDataObject}{wxbitmapdataobject}, 
+\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropTarget}{wxdroptarget}, 
+\helpref{wxDropSource}{wxdropsource}, 
+\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxDataObject::wxDataObject}\label{wxdataobjectwxdataobject}
+
+\func{}{wxDataObject}{\void}
+
+Constructor.
+
+\membersection{wxDataObject::\destruct{wxDataObject}}\label{wxdataobjectdtor}
+
+\func{}{\destruct{wxDataObject}}{\void}
+
+Destructor.
+
+\membersection{wxDataObject::GetFormat}\label{wxdataobjectgetformat}
+
+\constfunc{virtual wxDataFormat}{GetFormat}{\void}
+
+Returns the format of the object. See \helpref{Types}{wxdataobject}.
+
diff --git a/docs/latex/wx/dropevt.tex b/docs/latex/wx/dropevt.tex
index ff3e020e98..fc77fac91a 100644
--- a/docs/latex/wx/dropevt.tex
+++ b/docs/latex/wx/dropevt.tex
@@ -3,6 +3,10 @@
 This class is used for drop files events, that is, when files have been dropped
 onto the window. This functionality is currently only available under Windows.
 
+Important note: this is a separate implementation to the more general
+drag and drop implementation documented \helpref{here}{wxdndoverview}. It uses the
+older, Windows message-based approach of dropping files.
+
 \wxheading{Derived from}
 
 \helpref{wxEvent}{wxevent}\\
diff --git a/docs/latex/wx/dropsrc.tex b/docs/latex/wx/dropsrc.tex
new file mode 100644
index 0000000000..077ad1c69f
--- /dev/null
+++ b/docs/latex/wx/dropsrc.tex
@@ -0,0 +1,87 @@
+\section{\class{wxDropSource}}\label{wxdropsource}
+
+\overview{Overview}{wxdndoverview}
+
+This class represents a source for a drag and drop operation.
+
+\wxheading{Derived from}
+
+\helpref{wxObject}{wxobject}
+
+\wxheading{Types}
+
+\index{wxDragResult}wxDragResult is defined as follows:
+
+{\small\begin{verbatim}
+enum wxDragResult
+  {
+    wxDragError,    // error prevented the d&d operation from completing
+    wxDragNone,     // drag target didn't accept the data
+    wxDragCopy,     // the data was successfully copied
+    wxDragMove,     // the data was successfully moved
+    wxDragCancel    // the operation was cancelled by user (not an error)
+  };
+\end{verbatim}%
+}
+
+\wxheading{See also}
+
+\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropTarget}{wxdroptarget}, 
+\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxDropSource::wxDropSource}\label{wxdropsourcewxdropsource}
+
+\func{}{wxDropSource}{\param{wxWindow }{*win = NULL}}
+
+Default/wxGTK-specific constructor. If you use the default constructor you must
+call \helpref{wxDropSource::SetData}{wxdropsourcesetdata} later.
+
+{\it win} is only used by wxGTK. TODO: in what circumstances?
+
+\func{}{wxDropSource}{\param{wxDataObject }{\&data}, \param{wxWindow }{*win = NULL}}
+
+\wxheading{Parameters}
+
+\docparam{data}{A reference to the \helpref{data object}{wxdataobject} associated with the drop source.}
+
+\docparam{win}{Only used by wxGTK. TODO}
+
+\membersection{wxDropSource::\destruct{wxDropSource}}\label{wxdropsourcedtor}
+
+\func{virtual }{\destruct{wxDropSource}}{\void}
+
+\membersection{wxDropSource::SetData}\label{wxdropsourcesetdata}
+
+\func{void}{SetData}{\param{wxDataObject }{\&data}}
+
+Sets the data \helpref{data object}{wxdataobject} associated with the drop source.
+
+\membersection{wxDropSource::DoDragDrop}\label{wxdropsourcedodragdrop}
+
+\func{virtual wxDragResult}{DoDragDrop}{\param{bool }{bAllowMove = FALSE}}
+
+Do it (call this in response to a mouse button press, for example).
+
+If {\bf bAllowMove} is FALSE, data can only be copied.
+
+\membersection{wxDropSource::GiveFeedback}\label{wxdropsourcegivefeedback}
+
+\func{virtual bool}{GiveFeedback}{\param{wxDragResult }{effect}, \param{bool }{bScrolling}}
+
+Overridable: you may give some custom UI feedback during the drag and drop operation
+in this function. It is called on each mouse move, so your implementation must not be too
+slow.
+
+\wxheading{Parameters}
+
+\docparam{effect}{The effect to implement. One of wxDragCopy, wxDragMove.}
+
+\docparam{bScrolling}{TRUE if the window is scrolling.}
+
+\wxheading{Return value}
+
+Return FALSE if you want default feedback, or TRUE if you implement your own
+feedback.
+
diff --git a/docs/latex/wx/droptrgt.tex b/docs/latex/wx/droptrgt.tex
new file mode 100644
index 0000000000..0198dda34e
--- /dev/null
+++ b/docs/latex/wx/droptrgt.tex
@@ -0,0 +1,72 @@
+\section{\class{wxDropTarget}}\label{wxdroptarget}
+
+\overview{Overview}{wxdndoverview}
+
+This class represents a target for a drag and drop operation.
+
+\wxheading{Derived from}
+
+\helpref{wxObject}{wxobject}
+
+\wxheading{See also}
+
+\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, 
+\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxDropTarget::wxDropTarget}\label{wxdroptargetwxdroptarget}
+
+\func{}{wxDropTarget}{\void}
+
+Constructor.
+
+\membersection{wxDropTarget::\destruct{wxDropTarget}}\label{wxdroptargetdtor}
+
+\func{}{\destruct{wxDropTarget}}{\void}
+
+Destructor.
+
+\membersection{wxDropTarget::GetFormatCount}\label{wxdroptargetgetformatcount}
+
+\constfunc{virtual size\_t}{GetFormatCount}{\void}
+
+Override this to indicate how many formats you support.
+
+\membersection{wxDropTarget::GetFormat}\label{wxdroptargetgetformat}
+
+\constfunc{virtual wxDataFormat}{GetFormat}{\param{size\_t }{n}}
+
+Override this to indicate what kind of data you support.
+
+\membersection{wxDropTarget::OnEnter}\label{wxdroptargetonenter}
+
+\func{virtual void}{OnEnter}{\void}
+
+Called when the mouse enters the drop target.
+
+\membersection{wxDropTarget::OnDrop}\label{wxdroptargetondrop}
+
+\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void* }{data}, \param{size\_t }{size}}
+
+Called when the user drops a data object on the target. Return FALSE to veto the operation.
+
+\wxheading{Parameters}
+
+\docparam{x}{The x coordinate of the mouse.}
+
+\docparam{y}{The y coordinate of the mouse.}
+
+\docparam{data}{The data being dropped.}
+
+\docparam{size}{The size of the data being dropped.}
+
+\wxheading{Return value}
+
+Return TRUE to accept the data, FALSE to veto the operation.
+
+\membersection{wxDropTarget::OnLeave}\label{wxdroptargetonleave}
+
+\func{virtual void}{OnLeave}{\void}
+
+Called when the mouse leaves the drop target.
diff --git a/docs/latex/wx/fildatob.tex b/docs/latex/wx/fildatob.tex
new file mode 100644
index 0000000000..a5e13667d7
--- /dev/null
+++ b/docs/latex/wx/fildatob.tex
@@ -0,0 +1,38 @@
+\section{\class{wxFileDataObject}}\label{wxfiledataobject}
+
+wxFileDataObject is a specialization of wxDataObject for file names.
+
+\wxheading{Derived from}
+
+\helpref{wxDataObject}{wxdataobject}
+
+\wxheading{See also}
+
+\helpref{wxDataObject}{wxdataobject}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxFileDataObject::wxFileDataObject}\label{wxfiledataobjectwxfiledataobject}
+
+\func{}{wxFileDataObject}{\void}
+
+Constructor.
+
+\membersection{wxFileDataObject::GetFormat}\label{wxfiledataobjectgetformat}
+
+\constfunc{virtual wxDataFormat}{GetFormat}{\void}
+
+Returns wxDF\_FILENAME.
+
+\membersection{wxFileDataObject::AddFile}\label{wxfiledataobjectaddfile}
+
+\func{virtual void}{AddFile}{\param{const wxString\& }{file}}
+
+Adds a filename to the data object.
+
+\membersection{wxFileDataObject::GetFiles}\label{wxfiledataobjectgetfiles}
+
+\constfunc{virtual wxString}{GetFiles}{\void}
+
+Returns files as a zero-separated list.
+
diff --git a/docs/latex/wx/fildrptg.tex b/docs/latex/wx/fildrptg.tex
new file mode 100644
index 0000000000..5e413f4f94
--- /dev/null
+++ b/docs/latex/wx/fildrptg.tex
@@ -0,0 +1,62 @@
+\section{\class{wxFileDropTarget}}\label{wxfiledroptarget}
+
+ A drop target which accepts files (dragged from File Manager or Explorer).
+
+\wxheading{Derived from}
+
+\helpref{wxDropTarget}{wxdroptarget}
+
+\wxheading{See also}
+
+\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, 
+\helpref{wxDropTarget}{wxdroptarget}, \helpref{wxTextDropTarget}{wxtextdroptarget}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxFileDropTarget::wxFileDropTarget}\label{wxfiledroptargetwxfiledroptarget}
+
+\func{}{wxFileDropTarget}{\void}
+
+Constructor.
+
+\membersection{wxFileDropTarget::GetFormatCount}\label{wxfiledroptargetgetformatcount}
+
+\func{virtual size\_t}{GetFormatCount}{\void}
+
+See \helpref{wxDropTarget::GetFormatCount}{wxdroptargetgetformatcount}. This function is implemented
+appropriately for files.
+
+\membersection{wxFileDropTarget::GetFormat}\label{wxfiledroptargetgetformat}
+
+\constfunc{virtual wxDataFormat}{GetFormat}{\param{size\_t }{n}}
+
+See \helpref{wxDropTarget::GetFormat}{wxdroptargetgetformat}. This function is implemented
+appropriately for files.
+
+\membersection{wxFileDropTarget::OnDrop}\label{wxfiledroptargetondrop}
+
+\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void }{*data}, \param{size\_t }{size}}
+
+See \helpref{wxDropTarget::OnDrop}{wxdroptargetondrop}. This function is implemented
+appropriately for files, and calls \helpref{wxFileDropTarget::OnDropFiles}{wxfiledroptargetondropfiles}.
+
+\membersection{wxFileDropTarget::OnDropFiles}\label{wxfiledroptargetondropfiles}
+
+\func{virtual bool}{OnDropFiles}{\param{long }{x}, \param{long }{y}, \param{size\_t }{nFiles}, \param{const char * const}{files[]}}
+
+Override this function to receive dropped files.
+
+\wxheading{Parameters}
+
+\docparam{x}{The x coordinate of the mouse.}
+
+\docparam{y}{The y coordinate of the mouse.}
+
+\docparam{nFiles}{The number of files being dropped.}
+
+\docparam{files}{An array of filenames.}
+
+\wxheading{Return value}
+
+Return TRUE to accept the data, FALSE to veto the operation.
+
diff --git a/docs/latex/wx/prvdatob.tex b/docs/latex/wx/prvdatob.tex
new file mode 100644
index 0000000000..43892a08f0
--- /dev/null
+++ b/docs/latex/wx/prvdatob.tex
@@ -0,0 +1,54 @@
+automatically generated by HelpGen from privatedataobject.tex at 13/Jan/99 12:50:12
+\section{\class{wxPrivateDataObject}}\label{wxprivatedataobject}
+
+
+ ----------------------------------------------------------------------------
+ wxPrivateDataObject is a specialization of wxDataObject for app specific data
+ ----------------------------------------------------------------------------
+
+\wxheading{Derived from}
+
+\helpref{wxDataObject}{wxdataobject}
+
+\wxheading{Data structures}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPrivateDataObject::wxPrivateDataObject}\label{wxprivatedataobjectwxprivatedataobject}
+
+\constfunc{virtual }{wxPrivateDataObject}{\void}
+
+\membersection{wxPrivateDataObject::\destruct{wxPrivateDataObject}}\label{wxprivatedataobjectdtor}
+
+\constfunc{virtual }{\destruct{wxPrivateDataObject}}{\void}
+
+\membersection{wxPrivateDataObject::GetFormat}\label{wxprivatedataobjectgetformat}
+
+\constfunc{virtual wxDataFormat}{GetFormat}{\void}
+
+\membersection{wxPrivateDataObject::SetId}\label{wxprivatedataobjectsetid}
+
+\constfunc{virtual void}{SetId}{\param{const wxString\& }{id}}
+
+ the string ID identifies the format of clipboard or DnD data. a word
+ processor would e.g. add a wxTextDataObject and a wxPrivateDataObject
+ to the clipboard - the latter with the Id "WXWORD\_FORMAT".
+
+\membersection{wxPrivateDataObject::GetId}\label{wxprivatedataobjectgetid}
+
+\constfunc{virtual wxString}{GetId}{\void}
+
+\membersection{wxPrivateDataObject::SetData}\label{wxprivatedataobjectsetdata}
+
+\constfunc{virtual void}{SetData}{\param{const char }{*data}, \param{size\_t }{size}}
+
+ will make internal copy
+
+\membersection{wxPrivateDataObject::GetDataSize}\label{wxprivatedataobjectgetdatasize}
+
+\constfunc{virtual size\_t}{GetDataSize}{\void}
+
+\membersection{wxPrivateDataObject::GetData}\label{wxprivatedataobjectgetdata}
+
+\constfunc{virtual char*}{GetData}{\void}
+
diff --git a/docs/latex/wx/sckaddr.tex b/docs/latex/wx/sckaddr.tex
index e2ace6b8e0..9c505887cc 100644
--- a/docs/latex/wx/sckaddr.tex
+++ b/docs/latex/wx/sckaddr.tex
@@ -11,10 +11,10 @@
 
 \wxheading{See also}
 
-\helpref{wxSocketBase}{wxsocketbase}\\
-\helpref{wxIPV4address}{wxipv4address}\\
-\helpref{wxIPV6address}{wxipv6address}\\
-\helpref{wxunixaddress}{wxunixaddress}
+\helpref{wxSocketBase}{wxsocketbase}
+%\helpref{wxIPV4address}{wxipv4address}\\
+%\helpref{wxIPV6address}{wxipv6address}\\
+%\helpref{wxunixaddress}{wxunixaddress}
 
 % ----------------------------------------------------------------------------
 % Members
diff --git a/docs/latex/wx/tdnd.tex b/docs/latex/wx/tdnd.tex
index bf805dec0d..85346110cc 100644
--- a/docs/latex/wx/tdnd.tex
+++ b/docs/latex/wx/tdnd.tex
@@ -1,16 +1,15 @@
 \section{Drag-and-drop and clipboard overview}\label{wxdndoverview}
 
-Classes: \helpref{wxDataObject}{wxdataobject}
-
-% \helpref{wxTextDataObject}{wxtextdataobject}
-% \helpref{wxDropSource}{wxdropsource}
-% \helpref{wxDropTarget}{wxdroptarget}
-% \helpref{wxTextDropTarget}{wxtextdroptarget}
-% \helpref{wxFileDropTarget}{wxfiledroptarget}
+Classes: \helpref{wxDataObject}{wxdataobject}, 
+\helpref{wxTextDataObject}{wxtextdataobject}, 
+\helpref{wxDropSource}{wxdropsource}, 
+\helpref{wxDropTarget}{wxdroptarget}, 
+\helpref{wxTextDropTarget}{wxtextdroptarget}, 
+\helpref{wxFileDropTarget}{wxfiledroptarget}
 
 Samples: see the dnd sample.
 
-Headers: <wx/dataobj.h>, <wx/dropsrc.h and <wx/droptgt.h>>
+Headers: <wx/dataobj.h>, <wx/dropsrc.h and <wx/droptgt.h> or <wx/dnd.h>
 (note that wxUSE\_DRAG\_AND\_DROP must be defined in setup.h)
 
 This overview describes wxWindows support for drag and drop and clipboard
@@ -63,7 +62,7 @@ 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}{wxdragresult} enum. Codes
+is one of the values of \helpref{wxDragResult}{wxdropsource} enum. Codes
 of wxDragError, wxDragNone and wxDragCancel have the obvious meaning and mean
 that there is nothing to do on the sending end (except of possibly logging the
 error in the first case). wxDragCopy means that the data has been successfully
diff --git a/docs/latex/wx/textfile.tex b/docs/latex/wx/textfile.tex
index 5c281ba660..713b05bab9 100644
--- a/docs/latex/wx/textfile.tex
+++ b/docs/latex/wx/textfile.tex
@@ -16,6 +16,7 @@ limitation for the small files like configuration files or programs sources
 which are well handled by wxTextFile.
 
 The typical things you may do with wxTextFile in order are:
+
 \begin{itemize}\itemsep=0pt
 \item Create and open it: this is done with \helpref{Open}{wxtextfileopen} 
 function which opens the file (name may be specified either as Open argument or
@@ -27,7 +28,7 @@ access" functions like \helpref{GetLineCount}{wxtextfilegetlinecount} and
 but looks more like array addressing) or with "sequential access" functions
 which include \helpref{GetFirstLine}{wxtextfilegetfirstline}/
 \helpref{GetNextLine}{wxtextfilegetnextline} and also 
-\helpref{GetLastLine}{getlastline}/\helpref{GetPrevLine}{wxtextfilegetprevline}.
+\helpref{GetLastLine}{wxtextfilegetlastline}/\helpref{GetPrevLine}{wxtextfilegetprevline}.
 For the sequential access functions the current line number is maintained: it is
 returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} and may be
 changed with \helpref{GoToLine}{wxtextfilegotoline}.
@@ -70,57 +71,67 @@ enum wxTextFileType
 Default constructor, use Open(string) to initialize the object.
 
 \membersection{wxTextFile::wxTextFile}\label{wxtextfilector}
+
 \constfunc{}{wxTextFile}{\param{const wxString\& }{strFile}}
 
 Constructor does not load the file into memory, use Open() to do it. 
 
 \membersection{wxTextFile::Exists}\label{wxtextfileexists}
+
 \constfunc{bool}{Exists}{\void}
 
 Return TRUE if file exists - the name of the file should have been specified
 in the constructor before calling Exists().
 
 \membersection{wxTextFile::Open}\label{wxtextfileopen}
+
 \constfunc{bool}{Open}{\void}
 
 Open() opens the file with the name which was given in the \helpref{constructor}{wxtextfilector} 
 and also loads file in memory on success.
 
 \membersection{wxTextFile::Open}\label{wxtextfileopenname}
+
 \constfunc{bool}{Open}{\param{const wxString\& }{strFile}}
 
 Same as \helpref{Open()}{wxtextfileopen} but allows to specify the file name
 (must be used if the default constructor was used to create the object).
 
 \membersection{wxTextFile::Close}\label{wxtextfileclose}
+
 \constfunc{bool}{Close}{\void}
 
 Closes the file and frees memory, {\bf losing all changes}. Use \helpref{Write()}{wxtextfilewrite} 
 if you want to save them.
 
 \membersection{wxTextFile::IsOpened}\label{wxtextfileisopened}
+
 \constfunc{bool}{IsOpened}{\void}
 
 Returns TRUE if the file is currently opened.
 
 \membersection{wxTextFile::GetLineCount}\label{wxtextfilegetlinecount}
+
 \constfunc{size\_t}{GetLineCount}{\void}
 
 Get the number of lines in the file.
 
 \membersection{wxTextFile::GetLine}\label{wxtextfilegetline}
+
 \constfunc{wxString\&}{GetLine}{\param{size\_t }{n}}
 
 Retrieves the line number {\it n} from the file. The returned line may be
 modified but you shouldn't add line terminator at the end - this will be done
 by wxTextFile.
 
-\membersection{wxTextFile::operator[]}\label{wxtextfileoperator[]}
+\membersection{wxTextFile::operator[]}\label{wxtextfileoperatorarray}
+
 \constfunc{wxString\&}{operator[]}{\param{size\_t }{n}}
 
 The same as \helpref{GetLine}{wxtextfilegetline}.
 
 \membersection{wxTextFile::GetCurrentLine}\label{wxtextfilegetcurrentline}
+
 \constfunc{size\_t}{GetCurrentLine}{\void}
 
 Returns the current line: it has meaning only when you're using
@@ -130,17 +141,20 @@ GetLastLine() also change the value of the current line, as well as
 GoToLine().
 
 \membersection{wxTextFile::GoToLine}\label{wxtextfilegotoline}
+
 \constfunc{void}{GoToLine}{\param{size\_t }{n}}
 
 Changes the value returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} 
 and used by \helpref{GetFirstLine()}{wxtextfilegetfirstline}()/\helpref{GetNextLine()}{wxtextfilegetnextline}.
 
 \membersection{wxTextFile::Eof}\label{wxtextfileeof}
+
 \constfunc{bool}{Eof}{\void}
 
 Returns TRUE if the current line is the last one.
 
 \membersection{wxTextFile::GetFirstLine}\label{wxtextfilegetfirstline}
+
 \constfunc{wxString\&}{GetFirstLine}{\void}
 
 This method together with \helpref{GetNextLine()}{wxtextfilegetnextline} 
@@ -155,27 +169,32 @@ for ( str = GetFirstLine(); !Eof(); str = GetNextLine() )
 \end{verbatim}
 
 \membersection{wxTextFile::GetNextLine}\label{wxtextfilegetnextline}
+
 \func{wxString\&}{GetNextLine}{\void}
 
 Gets the next line (see \helpref{GetFirstLine}{wxtextfilegetfirstline} for 
 the example).
 
 \membersection{wxTextFile::GetPrevLine}\label{wxtextfilegetprevline}
+
 \func{wxString\&}{GetPrevLine}{\void}
 
 Gets the previous line in the file.
 
 \membersection{wxTextFile::GetLastLine}\label{wxtextfilegetlastline}
+
 \func{wxString\&}{GetLastLine}{\void}
 
 Gets the last line of the file.
 
 \membersection{wxTextFile::GetLineType}\label{wxtextfilegetlinetype}
+
 \constfunc{wxTextFileType}{GetLineType}{\param{size\_t }{n}}
 
 Get the type of the line (see also \helpref{GetEOL}{wxtextfilegeteol})
 
 \membersection{wxTextFile::GuessType}\label{wxtextfileguesstype}
+
 \constfunc{wxTextFileType}{GuessType}{\void}
 
 Guess the type of file (which is supposed to be opened). If sufficiently
@@ -183,26 +202,31 @@ many lines of the file are in DOS/Unix/Mac format, the corresponding value will
 be returned. If the detection mechanism fails wxTextFileType\_None is returned.
 
 \membersection{wxTextFile::GetName}\label{wxtextfilegetname}
+
 \constfunc{const char*}{GetName}{\void}
 
 Get the name of the file.
 
 \membersection{wxTextFile::AddLine}\label{wxtextfileaddline}
+
 \constfunc{void}{AddLine}{\param{const wxString\& }{str}, \param{wxTextFileType }{type = typeDefault}}
 
 Adds a line to the end of file.
 
 \membersection{wxTextFile::InsertLine}\label{wxtextfileinsertline}
+
 \constfunc{void}{InsertLine}{\param{const wxString\& }{str}, \param{size\_t }{n}, \param{wxTextFileType }{type = typeDefault}}
 
 Insert a line before the line number {\it n}.
 
 \membersection{wxTextFile::RemoveLine}\label{wxtextfileremoveline}
+
 \constfunc{void}{RemoveLine}{\param{size\_t }{n}}
 
 Delete one line from the file.
 
 \membersection{wxTextFile::Write}\label{wxtextfilewrite}
+
 \constfunc{bool}{Write}{\param{wxTextFileType }{typeNew = wxTextFileType\_None}}
 
 Change the file on disk. The {\it typeNew} parameter allows to change the
@@ -210,6 +234,7 @@ file format (default argument means "don't change type") and may be used to
 convert, for example, DOS files to Unix.
 
 \membersection{wxTextFile::GetEOL}\label{wxtextfilegeteol}
+
 \constfunc{static const char*}{GetEOL}{\param{wxTextFileType }{type = typeDefault}}
 
 Get the line termination string corresponding to given constant. {\it typeDefault} is
@@ -218,6 +243,8 @@ platform, i.e. it will be wxTextFileType\_Dos under Windows, wxTextFileType\_Uni
 Unix and wxTextFileType\_Mac under Mac.
 
 \membersection{wxTextFile::\destruct{wxTextFile}}\label{wxtextfiledtor}
+
 \constfunc{}{\destruct{wxTextFile}}{\void}
 
 Destructor does nothing.
+
diff --git a/docs/latex/wx/tlog.tex b/docs/latex/wx/tlog.tex
index 0cdc287607..56573c38ed 100644
--- a/docs/latex/wx/tlog.tex
+++ b/docs/latex/wx/tlog.tex
@@ -1,10 +1,9 @@
 \section{Log classes overview}\label{wxlogoverview}
 
-Classes: \helpref{wxLog}{wxlog}\\
-\helpref{wxLogStderr}{wxlogstderr},\\
-\helpref{wxLogOstream}{wxlogostream}, \helpref{wxLogTextCtrl}{wxlogtextctrl},\\
-\helpref{wxLogWindow}{wxlogwindow}, \helpref{wxLogGui}{wxloggui},\\
-\helpref{wxLogNull}{wxlognull}
+% Vadim: let's not have references to documentation that doesn't exist yet.
+% The docs are allowed to be incomplete, but not containing bad links!
+Classes: \helpref{wxLog}{wxlog}, wxLogStderr,
+wxLogOstream, wxLogTextCtrl, wxLogWindow, wxLogGui, wxLogNull
 
 This is a general overview of logging classes provided by wxWindows. The word
 logging here has a broad sense, including all of the program output, not only
diff --git a/docs/latex/wx/topics.tex b/docs/latex/wx/topics.tex
index 6c0ab70abe..cda8c6764d 100644
--- a/docs/latex/wx/topics.tex
+++ b/docs/latex/wx/topics.tex
@@ -38,5 +38,5 @@ This chapter contains a selection of topic overviews.
 \input tstring.tex
 \input tdnd.tex
 \input tthreads.tex
-% \input tfile.tex
+\input tfile.tex
 \input tusage.tex
diff --git a/docs/latex/wx/txtdatob.tex b/docs/latex/wx/txtdatob.tex
new file mode 100644
index 0000000000..937489fb3a
--- /dev/null
+++ b/docs/latex/wx/txtdatob.tex
@@ -0,0 +1,42 @@
+\section{\class{wxTextDataObject}}\label{wxtextdataobject}
+
+ wxTextDataObject is a specialization of wxDataObject for text data.
+
+\wxheading{Derived from}
+
+\helpref{wxDataObject}{wxdataobject}
+
+\wxheading{See also}
+
+\helpref{wxDataObject}{wxdataobject}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxTextDataObject::wxTextDataObject}\label{wxtextdataobjectwxtextdataobject}
+
+\func{}{wxTextDataObject}{\void}
+
+Default constructor.
+
+\func{}{wxTextDataObject}{\param{const wxString\& }{strText}}
+
+Constructor, passing text.
+
+\membersection{wxTextDataObject::GetFormat}\label{wxtextdataobjectgetformat}
+
+\constfunc{virtual wxDataFormat}{GetFormat}{\void}
+
+Returns wxDF\_TEXT.
+
+\membersection{wxTextDataObject::SetText}\label{wxtextdataobjectsettext}
+
+\func{virtual void}{SetText}{\param{const wxString\& }{strText}}
+
+Sets the text associated with the data object.
+
+\membersection{wxTextDataObject::GetText}\label{wxtextdataobjectgettext}
+
+\constfunc{virtual wxString}{GetText}{\void}
+
+Returns the text associated with the data object.
+
diff --git a/docs/latex/wx/txtdrptg.tex b/docs/latex/wx/txtdrptg.tex
new file mode 100644
index 0000000000..18c4f53421
--- /dev/null
+++ b/docs/latex/wx/txtdrptg.tex
@@ -0,0 +1,59 @@
+\section{\class{wxTextDropTarget}}\label{wxtextdroptarget}
+
+A predefined drop target for dealing with text data.
+
+\wxheading{Derived from}
+
+\helpref{wxDropTarget}{wxdroptarget}
+
+\wxheading{See also}
+
+\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, 
+\helpref{wxDropTarget}{wxdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxTextDropTarget::wxTextDropTarget}\label{wxtextdroptargetwxtextdroptarget}
+
+\func{}{wxTextDropTarget}{\void}
+
+Constructor.
+
+\membersection{wxTextDropTarget::GetFormatCount}\label{wxtextdroptargetgetformatcount}
+
+\constfunc{virtual size\_t}{GetFormatCount}{\void}
+
+See \helpref{wxDropTarget::GetFormatCount}{wxdroptargetgetformatcount}. This function is implemented
+appropriately for text.
+
+\membersection{wxTextDropTarget::GetFormat}\label{wxtextdroptargetgetformat}
+
+\constfunc{virtual wxDataFormat}{GetFormat}{\param{size\_t }{n}}
+
+See \helpref{wxDropTarget::GetFormat}{wxdroptargetgetformat}. This function is implemented
+appropriately for text.
+
+\membersection{wxTextDropTarget::OnDrop}\label{wxtextdroptargetondrop}
+
+\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void }{*data}, \param{size\_t }{size}}
+
+See \helpref{wxDropTarget::OnDrop}{wxdroptargetondrop}. This function is implemented
+appropriately for text, and calls \helpref{wxTextDropTarget::OnDropText}{wxtextdroptargetondroptext}.
+
+\membersection{wxTextDropTarget::OnDropText}\label{wxtextdroptargetondroptext}
+
+\func{virtual bool}{OnDropText}{\param{long }{x}, \param{long }{y}, \param{const char }{*data}}
+
+Override this function to receive dropped text.
+
+\wxheading{Parameters}
+
+\docparam{x}{The x coordinate of the mouse.}
+
+\docparam{y}{The y coordinate of the mouse.}
+
+\docparam{data}{The data being dropped: a NULL-terminated string.}
+
+\wxheading{Return value}
+
+Return TRUE to accept the data, FALSE to veto the operation.
diff --git a/docs/latex/wx/window.tex b/docs/latex/wx/window.tex
index 6057faff67..88f0808095 100644
--- a/docs/latex/wx/window.tex
+++ b/docs/latex/wx/window.tex
@@ -410,6 +410,17 @@ Returns a pointer to the window's layout constraints, or NULL if there are none.
 
 Returns a pointer to the button which is the default for this window, or NULL.
 
+\membersection{wxWindow::GetDropTarget}\label{wxwindowgetdroptarget}
+
+\constfunc{wxDropTarget*}{GetDropTarget}{\void}
+
+Returns the associated drop target, which may be NULL.
+
+\wxheading{See also}
+
+\helpref{wxWindow::SetDropTarget}{wxwindowsetdroptarget}, 
+\helpref{Drag and drop overview}{wxdndoverview}
+
 \membersection{wxWindow::GetEventHandler}\label{wxwindowgeteventhandler}
 
 \constfunc{wxEvtHandler*}{GetEventHandler}{\void}
@@ -1516,6 +1527,19 @@ You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a
 the constraints automatically in OnSize; otherwise, you must
 override OnSize and call Layout explicitly.
 
+\membersection{wxWindow::SetDropTarget}\label{wxwindowsetdroptarget}
+
+\func{void}{SetDropTarget}{\param{wxDropTarget*}{ target}}
+
+Associates a drop target with this window.
+
+If the window already has a drop target, it is deleted.
+
+\wxheading{See also}
+
+\helpref{wxWindow::GetDropTarget}{wxwindowgetdroptarget}, 
+\helpref{Drag and drop overview}{wxdndoverview}
+
 \membersection{wxWindow::SetFocus}\label{wxwindowsetfocus}
 
 \func{virtual void}{SetFocus}{\void}
diff --git a/docs/motif/todo.txt b/docs/motif/todo.txt
index 3eacb1b8c7..dfe385f197 100644
--- a/docs/motif/todo.txt
+++ b/docs/motif/todo.txt
@@ -43,6 +43,8 @@ High Priority
 
 - Implement missing wxImage functions for Motif.
 
+- wxClipboard
+
 Low Priority
 ------------
 
@@ -82,7 +84,7 @@ Low Priority
   - add the driver code to src/motif/helphtml.cpp (a frame, toolbar,
     history list).
 
-- Copy and paste, drag and drop. Use a standard X drag
+- Drag and drop. Use a standard X drag
   and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/
   or use Motif drag and drop as described here:
   http://www.motifzone.com/tmd/articles/DnD/dnd.html
diff --git a/docs/msw/todo.txt b/docs/msw/todo.txt
index 5cdfc5d148..88bb3dcf0b 100644
--- a/docs/msw/todo.txt
+++ b/docs/msw/todo.txt
@@ -43,7 +43,7 @@ erroneously.
 
 Add headers to VC++ project files.
 
-Test GLCanvas.
+Implement Robert's wxClipboard.
 
 Distribution naming?
 
@@ -89,8 +89,6 @@ BS_BITMAP, SS_BITMAP - but this may not allow wxBitmap
 argument, so instead just allow controls loaded from native
 resource to deal with this style and call default processing.
 
-Better clipboard support (as per Robert's class).
-
 wxWizard class?
 
 Doc/view - have some standard views/docs e.g. wxTextView.
diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp
index e9f0c9105f..3e299df4f8 100644
--- a/src/common/filefn.cpp
+++ b/src/common/filefn.cpp
@@ -648,7 +648,9 @@ wxString wxFileNameFromPath (const wxString& path1)
 	    return wxString(path + 2);
 #endif
     }
-  return wxString("");
+  // Yes, this should return the path, not an empty string, otherwise
+  // we get "thing.txt" -> "".
+  return path1;
 }
 
 // Return just the directory, or NULL if no directory
diff --git a/src/msw/makefile.nt b/src/msw/makefile.nt
index 2bacd2f7af..f14dc31123 100644
--- a/src/msw/makefile.nt
+++ b/src/msw/makefile.nt
@@ -1626,10 +1626,10 @@ $(DOCDIR)\html\wx\wx.htm:         $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex
         -mkdir $(DOCDIR)\html\wx
         -start /w tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
         -erase $(DOCDIR)\html\wx\*.con
-        -erase $(DOCDIR)\html\wx\*.ref
-        -erase $(DOCDIR)\latex\wx\*.con
-        -erase $(DOCDIR)\latex\wx\*.ref
-        cd $(THISDIR)
+#        -erase $(DOCDIR)\html\wx\*.ref
+#        -erase $(DOCDIR)\latex\wx\*.con
+#        -erase $(DOCDIR)\latex\wx\*.ref
+#        cd $(THISDIR)
 
 $(DOCDIR)\html\porting\port.htm:         $(DOCDIR)\latex\porting\porting.tex
         cd $(DOCDIR)\latex\porting
diff --git a/utils/HelpGen/src/HelpGen.cpp b/utils/HelpGen/src/HelpGen.cpp
index c8908f0732..28f36a2f01 100644
--- a/utils/HelpGen/src/HelpGen.cpp
+++ b/utils/HelpGen/src/HelpGen.cpp
@@ -429,8 +429,8 @@ void HelpGenVisitor::VisitClass( spClass& cl )
             }
 
             wxString baseclass = *i;
-            derived << "\\helpref{" << baseclass << "}"
-                       "{ " << baseclass.MakeLower()  << "}";
+            derived << "\\helpref{" << baseclass << "}";
+			derived << "{" << baseclass.MakeLower()  << "}";
         }
     }
     totalText << derived << "\n\n";
@@ -574,7 +574,7 @@ void HelpGenVisitor::VisitOperation( spOperation& op )
         funcname = dtor;
     }
 
-    totalText.Printf("\\membersection{%s::%s}\\label{%s}\n"
+    totalText.Printf("\\membersection{%s::%s}\\label{%s}\n\n"
                      "\\%sfunc{%s%s}{%s}{",
                      classname, funcname,
                      MakeLabel(classname, funcname).c_str(),
-- 
2.50.0

