File: custdobj.tex

package info (click to toggle)
wxwidgets2.8 2.8.12.1-12
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 242,920 kB
  • sloc: cpp: 1,840,772; xml: 385,749; python: 334,729; makefile: 51,774; ansic: 30,987; sh: 7,716; sql: 258; lex: 194; perl: 139; yacc: 128; pascal: 95; php: 45; lisp: 38; tcl: 38; java: 22; haskell: 20; cs: 18; erlang: 17; ruby: 16; asm: 15; ada: 9; ml: 9; csh: 9
file content (110 lines) | stat: -rw-r--r-- 4,167 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
\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}

\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.

\pythonnote{This method expects a string in wxPython.  You can pass
nearly any object by pickling it first.}

\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.

\pythonnote{This method expects a string in wxPython.  You can pass
nearly any object by pickling it first.}