%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name:        dobjsmpl.tex
%% Purpose:     wxDataObjectSimple documentation
%% Author:      Vadim Zeitlin
%% Modified by:
%% Created:     02.11.99
%% RCS-ID:      $Id: dobjsmpl.tex 32309 2005-02-22 15:09:56Z ABX $
%% Copyright:   (c) Vadim Zeitlin
%% License:     wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{\class{wxDataObjectSimple}}\label{wxdataobjectsimple}

This is the simplest possible implementation of the 
\helpref{wxDataObject}{wxdataobject} class. The data object of (a class derived
from) this class only supports one format, so the number of virtual functions
to be implemented is reduced.

Notice that this is still an abstract base class and cannot be used but should
be derived from.

\pythonnote{If you wish to create a derived wxDataObjectSimple class in
wxPython you should derive the class from wxPyDataObjectSimple
in order to get Python-aware capabilities for the various virtual
methods.}

\perlnote{In wxPerl, you need to derive your data object class
from Wx::PlDataObjectSimple.}

\wxheading{Virtual functions to override}

The objects supporting rendering the data must override 
\helpref{GetDataSize}{wxdataobjectsimplegetdatasize} and 
\helpref{GetDataHere}{wxdataobjectsimplegetdatahere} while the objects which
may be set must override \helpref{SetData}{wxdataobjectsimplesetdata}. Of
course, the objects supporting both operations must override all three
methods.

\wxheading{Derived from}

\helpref{wxDataObject}{wxdataobject}

\wxheading{Include files}

<wx/dataobj.h>

\wxheading{See also}

\helpref{Clipboard and drag and drop overview}{wxdndoverview}, 
\helpref{DnD sample}{samplednd}, 
\helpref{wxFileDataObject}{wxfiledataobject}, 
\helpref{wxTextDataObject}{wxtextdataobject}, 
\helpref{wxBitmapDataObject}{wxbitmapdataobject}

\latexignore{\rtfignore{\wxheading{Members}}}

\membersection{wxDataObjectSimple::wxDataObjectSimple}\label{wxdataobjectsimplewxdataobjectsimple}

\func{}{wxDataObjectSimple}{\param{const wxDataFormat\&}{ format = wxFormatInvalid}}

Constructor accepts the supported format (none by default) which may also be
set later with \helpref{SetFormat}{wxdataobjectsimplesetformat}.

\membersection{wxDataObjectSimple::GetFormat}\label{wxdataobjectsimplegetformat}

\constfunc{const wxDataFormat\&}{GetFormat}{\void}

Returns the (one and only one) format supported by this object. It is supposed
that the format is supported in both directions.

\membersection{wxDataObjectSimple::SetFormat}\label{wxdataobjectsimplesetformat}

\func{void}{SetFormat}{\param{const wxDataFormat\&}{ format}}

Sets the supported format.

\membersection{wxDataObjectSimple::GetDataSize}\label{wxdataobjectsimplegetdatasize}

\constfunc{virtual size\_t}{GetDataSize}{\void}

Gets the size of our data. Must be implemented in the derived class if the
object supports rendering its data.

\membersection{wxDataObjectSimple::GetDataHere}\label{wxdataobjectsimplegetdatahere}

\constfunc{virtual bool}{GetDataHere}{\param{void }{*buf}}

Copy the data to the buffer, return true on success. Must be implemented in the
derived class if the object supports rendering its data.

\pythonnote{When implementing this method in wxPython, no additional
parameters are required and the data should be returned from the
method as a string.}

\membersection{wxDataObjectSimple::SetData}\label{wxdataobjectsimplesetdata}

\func{virtual bool}{SetData}{\param{size\_t }{len}, \param{const void }{*buf}}

Copy the data from the buffer, return true on success. Must be implemented in
the derived class if the object supports setting its data.

\pythonnote{When implementing this method in wxPython, the data comes
as a single string parameter rather than the two shown here.}

