git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			108 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \section{\class{wxCustomDataObject}}\label{wxcustomdataobject}
 | |
| 
 | |
| wxCustomDataObject is a specialization of
 | |
| \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).
 | |
| 
 | |
| By default, wxCustomDataObject stores the data inside in a buffer. To put the
 | |
| data into the buffer you may use either
 | |
| \helpref{SetData}{wxcustomdataobjectsetdata} or
 | |
| \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
 | |
| object but provide it on demand instead, you should override
 | |
| \helpref{GetSize}{wxcustomdataobjectgetsize},
 | |
| \helpref{GetData}{wxcustomdataobjectgetdata} and
 | |
| \helpref{SetData}{wxcustomdataobjectsetdata} (or may be only the first two or
 | |
| only the last one if you only allow reading/writing the data)
 | |
| 
 | |
| \wxheading{Derived from}
 | |
| 
 | |
| \helpref{wxDataObjectSimple}{wxdataobjectsimple}\\
 | |
| \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)
 | |
| format supported by this object. If it isn't set here,
 | |
| \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()}).
 | |
| 
 | |
| \membersection{wxCustomDataObject::Alloc}\label{wxcustomdataobjectalloc}
 | |
| 
 | |
| \func{virtual void *}{Alloc}{\param{size\_t }{size}}
 | |
| 
 | |
| This function is called to allocate {\it size} bytes of memory from SetData().
 | |
| The default version just uses the operator new.
 | |
| 
 | |
| \membersection{wxCustomDataObject::Free}\label{wxcustomdataobjectfree}
 | |
| 
 | |
| \pythonnote{This method expects a string in wxPython.  You can pass
 | |
| nearly any object by pickling it first.}
 | |
| 
 | |
| \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
 | |
| delete$[]$ on the data.
 | |
| 
 | |
| \membersection{wxCustomDataObject::GetSize}\label{wxcustomdataobjectgetsize}
 | |
| 
 | |
| \constfunc{virtual size\_t}{GetSize}{\void}
 | |
| 
 | |
| Returns the data size in bytes.
 | |
| 
 | |
| \membersection{wxCustomDataObject::GetData}\label{wxcustomdataobjectgetdata}
 | |
| 
 | |
| \constfunc{virtual void *}{GetData}{\void}
 | |
| 
 | |
| Returns a pointer to the data.
 | |
| 
 | |
| \membersection{wxCustomDataObject::SetData}\label{wxcustomdataobjectsetdata}
 | |
| 
 | |
| \func{virtual void}{SetData}{
 | |
|  \param{size\_t }{size}, \param{const void }{*data}}
 | |
| 
 | |
| Set the data. The data object will make an internal copy.
 | |
| 
 | |
| \membersection{wxCustomDataObject::TakeData}\label{wxcustomdataobjecttakedata}
 | |
| 
 | |
| \func{virtual void}{TakeData}{
 | |
|  \param{size\_t }{size}, \param{const void }{*data}}
 | |
| 
 | |
| Like \helpref{SetData}{wxcustomdataobjectsetdata}, but doesn't copy the data -
 | |
| instead the object takes ownership of the pointer.
 | |
| 
 |