1999-11-05 19:19:58 +00:00
|
|
|
\section{\class{wxCustomDataObject}}\label{wxcustomdataobject}
|
|
|
|
|
2000-03-15 00:21:49 +00:00
|
|
|
wxCustomDataObject is a specialization of
|
1999-11-05 19:19:58 +00:00
|
|
|
\helpref{wxDataObjectSimple}{wxdataobjectsimple} for some
|
|
|
|
application-specific data in arbitrary (either custom or one of the standard
|
|
|
|
ones). The only restriction is that it is supposed that this data can be
|
|
|
|
copied bitwise (i.e. with {\tt memcpy()}), so it would be a bad idea to make
|
|
|
|
it contain a C++ object (though C struct is fine).
|
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
By default, wxCustomDataObject stores the data inside in a buffer. To put the
|
2000-03-15 00:21:49 +00:00
|
|
|
data into the buffer you may use either
|
|
|
|
\helpref{SetData}{wxcustomdataobjectsetdata} or
|
1999-11-06 00:43:31 +00:00
|
|
|
\helpref{TakeData}{wxcustomdataobjecttakedata} depending on whether you want
|
|
|
|
the object to make a copy of data or not.
|
|
|
|
|
|
|
|
If you already store the data in another place, it may be more convenient and
|
|
|
|
efficient to provide the data on-demand which is possible too if you override
|
|
|
|
the virtual functions mentioned below.
|
|
|
|
|
|
|
|
\wxheading{Virtual functions to override}
|
|
|
|
|
|
|
|
This class may be used as is, but if you don't want store the data inside the
|
2000-03-15 00:21:49 +00:00
|
|
|
object but provide it on demand instead, you should override
|
|
|
|
\helpref{GetSize}{wxcustomdataobjectgetsize},
|
|
|
|
\helpref{GetData}{wxcustomdataobjectgetdata} and
|
1999-11-06 00:43:31 +00:00
|
|
|
\helpref{SetData}{wxcustomdataobjectsetdata} (or may be only the first two or
|
|
|
|
only the last one if you only allow reading/writing the data)
|
|
|
|
|
1999-11-05 19:19:58 +00:00
|
|
|
\wxheading{Derived from}
|
|
|
|
|
1999-11-06 10:22:11 +00:00
|
|
|
\helpref{wxDataObjectSimple}{wxdataobjectsimple}\\
|
1999-11-05 19:19:58 +00:00
|
|
|
\helpref{wxDataObject}{wxdataobject}
|
|
|
|
|
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/dataobj.h>
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{wxDataObject}{wxdataobject}
|
|
|
|
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
|
|
|
\membersection{wxCustomDataObject::wxCustomDataObject}\label{wxcustomdataobjectwxcustomdataobject}
|
|
|
|
|
|
|
|
\func{}{wxCustomDataObject}{\param{const wxDataFormat\& }{format = wxFormatInvalid}}
|
|
|
|
|
|
|
|
The constructor accepts a {\it format} argument which specifies the (single)
|
2000-03-15 00:21:49 +00:00
|
|
|
format supported by this object. If it isn't set here,
|
1999-11-05 19:19:58 +00:00
|
|
|
\helpref{SetFormat}{wxdataobjectsimplesetformat} should be used.
|
|
|
|
|
|
|
|
\membersection{wxCustomDataObject::\destruct{wxCustomDataObject}}\label{wxcustomdataobjectdtor}
|
|
|
|
|
|
|
|
\func{}{\destruct{wxCustomDataObject}}{\void}
|
|
|
|
|
|
|
|
The destructor will free the data hold by the object. Notice that although it
|
|
|
|
calls a virtual \helpref{Free()}{wxcustomdataobjectfree} function, the base
|
|
|
|
class version will always be called (C++ doesn't allow calling virtual
|
|
|
|
functions from constructors or destructors), so if you override {\tt Free()}, you
|
|
|
|
should override the destructor in your class as well (which would probably
|
|
|
|
just call the derived class' version of {\tt Free()}).
|
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
\membersection{wxCustomDataObject::Alloc}\label{wxcustomdataobjectalloc}
|
1999-11-05 19:19:58 +00:00
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
\func{virtual void *}{Alloc}{\param{size\_t }{size}}
|
1999-11-05 19:19:58 +00:00
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
This function is called to allocate {\it size} bytes of memory from SetData().
|
|
|
|
The default version just uses the operator new.
|
1999-11-05 19:19:58 +00:00
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
\membersection{wxCustomDataObject::Free}\label{wxcustomdataobjectfree}
|
|
|
|
|
1999-11-06 08:30:23 +00:00
|
|
|
\pythonnote{This method expects a string in wxPython. You can pass
|
|
|
|
nearly any object by pickling it first.}
|
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
\func{virtual void}{Free}{\void}
|
|
|
|
|
|
|
|
This function is called when the data is freed, you may override it to anything
|
|
|
|
you want (or may be nothing at all). The default version calls operator
|
1999-11-06 10:22:11 +00:00
|
|
|
delete$[]$ on the data.
|
1999-11-05 19:19:58 +00:00
|
|
|
|
|
|
|
\membersection{wxCustomDataObject::GetSize}\label{wxcustomdataobjectgetsize}
|
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
\constfunc{virtual size\_t}{GetSize}{\void}
|
1999-11-05 19:19:58 +00:00
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
Returns the data size in bytes.
|
1999-11-05 19:19:58 +00:00
|
|
|
|
|
|
|
\membersection{wxCustomDataObject::GetData}\label{wxcustomdataobjectgetdata}
|
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
\constfunc{virtual void *}{GetData}{\void}
|
1999-11-05 19:19:58 +00:00
|
|
|
|
|
|
|
Returns a pointer to the data.
|
|
|
|
|
1999-11-06 00:43:31 +00:00
|
|
|
\membersection{wxCustomDataObject::SetData}\label{wxcustomdataobjectsetdata}
|
|
|
|
|
|
|
|
\func{virtual void}{SetData}{
|
1999-11-06 10:22:11 +00:00
|
|
|
\param{size\_t }{size}, \param{const void }{*data}}
|
1999-11-06 00:43:31 +00:00
|
|
|
|
|
|
|
Set the data. The data object will make an internal copy.
|
|
|
|
|
|
|
|
\membersection{wxCustomDataObject::TakeData}\label{wxcustomdataobjecttakedata}
|
|
|
|
|
|
|
|
\func{virtual void}{TakeData}{
|
1999-11-06 10:22:11 +00:00
|
|
|
\param{size\_t }{size}, \param{const void }{*data}}
|
1999-11-06 00:43:31 +00:00
|
|
|
|
|
|
|
Like \helpref{SetData}{wxcustomdataobjectsetdata}, but doesn't copy the data -
|
|
|
|
instead the object takes ownership of the pointer.
|
1999-11-06 10:22:11 +00:00
|
|
|
|