]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/object.tex
added tied scoped pointers
[wxWidgets.git] / docs / latex / wx / object.tex
CommitLineData
a660d684
KB
1\section{\class{wxObject}}\label{wxobject}
2
3This is the root class of all wxWindows classes.
4It declares a virtual destructor which ensures that
5destructors get called for all derived class objects where necessary.
6
7wxObject is the hub of a dynamic object creation
8scheme, enabling a program to create instances of a class only knowing
9its string class name, and to query the class hierarchy.
10
11The class contains optional debugging versions
12of {\bf new} and {\bf delete}, which can help trace memory allocation
13and deallocation problems.
14
15wxObject can be used to implement reference counted objects, such as
16wxPen, wxBitmap and others.
17
18\wxheading{See also}
19
20\helpref{wxClassInfo}{wxclassinfo}, \helpref{Debugging overview}{debuggingoverview},\rtfsp
21\helpref{wxObjectRefData}{wxobjectrefdata}
22
23\latexignore{\rtfignore{\wxheading{Members}}}
24
25\membersection{wxObject::wxObject}\label{wxobjectconstr}
26
27\func{}{wxObject}{\void}
28
eb199c51
VZ
29\func{}{wxObject}{\param{const wxObject\&}{ other}}
30
31Default and copy constructors.
a660d684
KB
32
33\membersection{wxObject::\destruct{wxObject}}
34
35\func{}{wxObject}{\void}
36
37Destructor. Performs dereferencing, for those objects
38that use reference counting.
39
40\membersection{wxObject::m\_refData}\label{wxobjectmrefdata}
41
42\member{wxObjectRefData* }{m\_refData}
43
44Pointer to an object which is the object's reference-counted data.
45
46\wxheading{See also}
47
48\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref},\rtfsp
49\helpref{wxObject::SetRefData}{wxobjectsetrefdata},\rtfsp
50\helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp
51\helpref{wxObjectRefData}{wxobjectrefdata}
52
53\membersection{wxObject::Dump}\label{wxobjectdump}
54
55\func{void}{Dump}{\param{ostream\&}{ stream}}
56
eb199c51 57A virtual function that may be redefined by derived classes to allow dumping of
a660d684
KB
58memory states.
59
eb199c51
VZ
60This function is only defined in debug build and doesn't exist at all if
61{\tt \_\_WXDEBUG\_\_} is not defined.
62
a660d684
KB
63\wxheading{Parameters}
64
65\docparam{stream}{Stream on which to output dump information.}
66
67\wxheading{Remarks}
68
69Currently wxWindows does not define Dump for derived classes, but
70programmers may wish to use it for their own applications. Be sure to
eb199c51
VZ
71call the Dump member of the class's base class to allow all information to be
72dumped.
a660d684 73
eb199c51
VZ
74The implementation of this function in wxObject just writes the class name of
75the object.
a660d684
KB
76
77\membersection{wxObject::GetClassInfo}\label{wxobjectgetclassinfo}
78
79\func{wxClassInfo *}{GetClassInfo}{\void}
80
81This virtual function is redefined for every class that requires run-time
82type information, when using DECLARE\_CLASS macros.
83
84\membersection{wxObject::GetRefData}\label{wxobjectgetrefdata}
85
86\constfunc{wxObjectRefData*}{GetRefData}{\void}
87
88Returns the {\bf m\_refData} pointer.
89
90\wxheading{See also}
91
92\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp
93\helpref{wxObject::SetRefData}{wxobjectsetrefdata},\rtfsp
94\helpref{wxObjectRefData}{wxobjectrefdata}
95
96\membersection{wxObject::IsKindOf}\label{wxobjectiskindof}
97
98\func{bool}{IsKindOf}{\param{wxClassInfo *}{info}}
99
100Determines whether this class is a subclass of (or the same class as)
101the given class.
102
103\wxheading{Parameters}
104
105\docparam{info}{A pointer to a class information object, which may be obtained
106by using the CLASSINFO macro.}
107
108\wxheading{Return value}
109
cc81d32f 110true if the class represented by {\it info} is the same class as
a660d684
KB
111this one or is derived from it.
112
113\wxheading{Example}
114
115\begin{verbatim}
116 bool tmp = obj->IsKindOf(CLASSINFO(wxFrame));
117\end{verbatim}
118
119\membersection{wxObject::Ref}\label{wxobjectref}
120
121\func{void}{Ref}{\param{const wxObject\& }{clone}}
122
123Makes this object refer to the data in {\it clone}.
124
125\wxheading{Parameters}
126
127\docparam{clone}{The object to `clone'.}
128
129\wxheading{Remarks}
130
131First this function calls \helpref{wxObject::UnRef}{wxobjectunref} on itself
132to decrement (and perhaps free) the data it is currently referring to.
133
134It then sets its own m\_refData to point to that of {\it clone}, and increments the reference count
135inside the data.
136
137\wxheading{See also}
138
139\helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp
140\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp
141\helpref{wxObjectRefData}{wxobjectrefdata}
142
143\membersection{wxObject::SetRefData}\label{wxobjectsetrefdata}
144
145\func{void}{SetRefData}{\param{wxObjectRefData*}{ data}}
146
147Sets the {\bf m\_refData} pointer.
148
149\wxheading{See also}
150
151\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp
152\helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp
153\helpref{wxObjectRefData}{wxobjectrefdata}
154
155\membersection{wxObject::UnRef}\label{wxobjectunref}
156
157\func{void}{UnRef}{\void}
158
159Decrements the reference count in the associated data, and if it is zero, deletes the data.
160The {\bf m\_refData} member is set to NULL.
161
162\wxheading{See also}
163
164\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp
165\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp
166\helpref{wxObjectRefData}{wxobjectrefdata}
167
168\membersection{wxObject::operator new}\label{wxobjectnew}
169
170\func{void *}{new}{\param{size\_t }{size}, \param{const wxString\& }{filename = NULL}, \param{int}{ lineNum = 0}}
171
172The {\it new} operator is defined for debugging versions of the library only, when
fe26d444 173the identifier \_\_WXDEBUG\_\_ is defined. It takes over memory allocation, allowing
a660d684
KB
174wxDebugContext operations.
175
176\membersection{wxObject::operator delete}\label{wxobjectdelete}
177
178\func{void}{delete}{\param{void }{buf}}
179
180The {\it delete} operator is defined for debugging versions of the library only, when
fe26d444 181the identifier \_\_WXDEBUG\_\_ is defined. It takes over memory deallocation, allowing
a660d684
KB
182wxDebugContext operations.
183
184\section{\class{wxObjectRefData}}\label{wxobjectrefdata}
185
186This class is used to store reference-counted data. Derive classes from this to
187store your own data. When retrieving information from a {\bf wxObject}'s reference data,
188you will need to cast to your own derived class.
189
190\wxheading{Friends}
191
192\helpref{wxObject}{wxobject}
193
194\wxheading{See also}
195
196\helpref{wxObject}{wxobject}
197
198\latexignore{\rtfignore{\wxheading{Members}}}
199
200\membersection{wxObjectRefData::m\_count}
201
202\member{int}{m\_count}
203
204Reference count. When this goes to zero during a \helpref{wxObject::UnRef}{wxobjectunref}, an object
205can delete the {\bf wxObjectRefData} object.
206
207\membersection{wxObjectRefData::wxObjectRefData}\label{wxobjectrefdataconstr}
208
209\func{}{wxObjectRefData}{\void}
210
211Default constructor. Initialises the {\bf m\_count} member to 1.
212
213\membersection{wxObjectRefData::\destruct{wxObjectRefData}}
214
215\func{}{wxObjectRefData}{\void}
216
217Destructor.
218
219