]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/object.tex
More const bool (sigh)
[wxWidgets.git] / docs / latex / wx / object.tex
... / ...
CommitLineData
1\section{\class{wxObject}}\label{wxobject}
2
3This is the root class of all wxWidgets 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 \helpref{reference counted}{trefcount} objects,
16such as wxPen, wxBitmap and others (see \helpref{this list}{refcountlist}).
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{wxobjectctor}
26
27\func{}{wxObject}{\void}
28
29\func{}{wxObject}{\param{const wxObject\&}{ other}}
30
31Default and copy constructors.
32
33\membersection{wxObject::\destruct{wxObject}}\label{wxobjectdtor}
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
57A virtual function that may be redefined by derived classes to allow dumping of
58memory states.
59
60This function is only defined in debug build and doesn't exist at all if
61{\tt \_\_WXDEBUG\_\_} is not defined.
62
63\wxheading{Parameters}
64
65\docparam{stream}{Stream on which to output dump information.}
66
67\wxheading{Remarks}
68
69Currently wxWidgets does not define Dump for derived classes, but
70programmers may wish to use it for their own applications. Be sure to
71call the Dump member of the class's base class to allow all information to be
72dumped.
73
74The implementation of this function in wxObject just writes the class name of
75the object.
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
110true if the class represented by {\it info} is the same class as
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::IsSameAs}\label{wxobjectissameas}
120
121\func{bool}{IsSameAs}{\param{const wxObject\& }{ obj}}
122
123Returns \true if this object has the same data pointer as \arg{obj}. Notice
124that \true is returned if the data pointers are \NULL in both objects.
125
126This function only does a \emph{shallow} comparison, i.e. it doesn't compare
127the objects pointed to by the data pointers of these objects.
128
129\membersection{wxObject::Ref}\label{wxobjectref}
130
131\func{void}{Ref}{\param{const wxObject\& }{clone}}
132
133Makes this object refer to the data in {\it clone}.
134
135\wxheading{Parameters}
136
137\docparam{clone}{The object to `clone'.}
138
139\wxheading{Remarks}
140
141First this function calls \helpref{wxObject::UnRef}{wxobjectunref} on itself
142to decrement (and perhaps free) the data it is currently referring to.
143
144It then sets its own m\_refData to point to that of {\it clone}, and increments the reference count
145inside the data.
146
147\wxheading{See also}
148
149\helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp
150\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp
151\helpref{wxObjectRefData}{wxobjectrefdata}
152
153\membersection{wxObject::SetRefData}\label{wxobjectsetrefdata}
154
155\func{void}{SetRefData}{\param{wxObjectRefData*}{ data}}
156
157Sets the {\bf m\_refData} pointer.
158
159\wxheading{See also}
160
161\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp
162\helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp
163\helpref{wxObjectRefData}{wxobjectrefdata}
164
165\membersection{wxObject::UnRef}\label{wxobjectunref}
166
167\func{void}{UnRef}{\void}
168
169Decrements the reference count in the associated data, and if it is zero, deletes the data.
170The {\bf m\_refData} member is set to NULL.
171
172\wxheading{See also}
173
174\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp
175\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp
176\helpref{wxObjectRefData}{wxobjectrefdata}
177
178\membersection{wxObject::UnShare}\label{wxobjectunshare}
179
180\func{void}{UnShare}{\void}
181
182Ensure that this object's data is not shared with any other object.
183
184if we have no
185data, it is created using CreateRefData() below, if we have shared data
186it is copied using CloneRefData(), otherwise nothing is done.
187
188
189\membersection{wxObject::operator new}\label{wxobjectnew}
190
191\func{void *}{new}{\param{size\_t }{size}, \param{const wxString\& }{filename = NULL}, \param{int}{ lineNum = 0}}
192
193The {\it new} operator is defined for debugging versions of the library only, when
194the identifier \_\_WXDEBUG\_\_ is defined. It takes over memory allocation, allowing
195wxDebugContext operations.
196
197\membersection{wxObject::operator delete}\label{wxobjectdelete}
198
199\func{void}{delete}{\param{void }{buf}}
200
201The {\it delete} operator is defined for debugging versions of the library only, when
202the identifier \_\_WXDEBUG\_\_ is defined. It takes over memory deallocation, allowing
203wxDebugContext operations.
204
205
206
207%% wxObjectRefData
208
209\section{\class{wxObjectRefData}}\label{wxobjectrefdata}
210
211This class is used to store reference-counted data. Derive classes from this to
212store your own data. When retrieving information from a {\bf wxObject}'s reference data,
213you will need to cast to your own derived class.
214
215\wxheading{Friends}
216
217\helpref{wxObject}{wxobject}
218
219\wxheading{See also}
220
221\helpref{wxObject}{wxobject}
222
223\latexignore{\rtfignore{\wxheading{Members}}}
224
225
226\membersection{wxObjectRefData::wxObjectRefData}\label{wxobjectrefdatactor}
227
228\func{}{wxObjectRefData}{\void}
229
230Default constructor. Initialises the internal reference count to 1.
231
232\membersection{wxObjectRefData::\destruct{wxObjectRefData}}\label{wxobjectrefdatadtor}
233
234\func{}{wxObjectRefData}{\void}
235
236Destructor. It's declared {\tt protected} so that wxObjectRefData instances will never
237be destroyed directly but only as result of a \helpref{DecRef}{wxobjectrefdatadecref} call.
238
239\membersection{wxObjectRefData::GetRefCount}\label{wxobjectrefdatagetrefcount}
240
241\constfunc{int}{GetRefCount}{\void}
242
243Returns the reference count associated with this shared data.
244When this goes to zero during a \helpref{DecRef}{wxobjectrefdatadecref} call, the object
245will auto-free itself.
246
247\membersection{wxObjectRefData::DecRef}\label{wxobjectrefdatadecref}
248
249\func{void}{DecRef}{\void}
250
251Decrements the reference count associated with this shared data and, if it reaches zero,
252destroys this instance of wxObjectRefData releasing its memory.
253
254Please note that after calling this function, the caller should absolutely avoid to use
255the pointer to this instance since it may not be valid anymore.
256
257\membersection{wxObjectRefData::IncRef}\label{wxobjectrefdataincref}
258
259\func{void}{IncRef}{\void}
260
261Increments the reference count associated with this shared data.
262