]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/function.tex
Added support for locales like de_AT.iso-8859-1
[wxWidgets.git] / docs / latex / wx / function.tex
CommitLineData
a660d684
KB
1\chapter{Functions}\label{functions}
2\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
3\setfooter{\thepage}{}{}{}{}{\thepage}
4
5The functions defined in wxWindows are described here.
6
7\section{File functions}\label{filefunctions}
8
954b8ae6
JS
9\wxheading{Include files}
10
11<wx/utils.h>
12
13\wxheading{See also}
14
15\helpref{wxPathList}{wxpathlist}
a660d684
KB
16
17\membersection{::wxDirExists}
18
19\func{bool}{wxDirExists}{\param{const wxString\& }{dirname}}
20
21Returns TRUE if the directory exists.
22
23\membersection{::wxDos2UnixFilename}
24
25\func{void}{Dos2UnixFilename}{\param{const wxString\& }{s}}
26
e2a6f233 27Converts a DOS to a Unix filename by replacing backslashes with forward
a660d684
KB
28slashes.
29
30\membersection{::wxFileExists}
31
32\func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
33
34Returns TRUE if the file exists.
35
36\membersection{::wxFileNameFromPath}
37
38\func{wxString}{wxFileNameFromPath}{\param{const wxString\& }{path}}
39
532372a3
JS
40\func{char*}{wxFileNameFromPath}{\param{char* }{path}}
41
42Returns the filename for a full path. The second form returns a pointer to
43temporary storage that should not be deallocated.
a660d684
KB
44
45\membersection{::wxFindFirstFile}\label{wxfindfirstfile}
46
532372a3 47\func{wxString}{wxFindFirstFile}{\param{const char*}{spec}, \param{int}{ flags = 0}}
a660d684
KB
48
49This function does directory searching; returns the first file
532372a3 50that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to
a660d684
KB
51get the next matching file.
52
53{\it spec} may contain wildcards.
54
55{\it flags} is reserved for future use.
56
a660d684
KB
57For example:
58
59\begin{verbatim}
60 wxString f = wxFindFirstFile("/home/project/*.*");
58503787 61 while ( !f.IsEmpty() )
a660d684
KB
62 {
63 ...
64 f = wxFindNextFile();
65 }
66\end{verbatim}
67
68\membersection{::wxFindNextFile}\label{wxfindnextfile}
69
5ab656cd 70\func{wxString}{wxFindNextFile}{\void}
a660d684
KB
71
72Returns the next file that matches the path passed to \helpref{wxFindFirstFile}{wxfindfirstfile}.
73
5ab656cd
VZ
74See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example.
75
631f1bfe
JS
76\membersection{::wxGetOSDirectory}\label{wxgetosdirectory}
77
78\func{wxString}{wxGetOSDirectory}{\void}
79
80Returns the Windows directory under Windows; on other platforms returns the empty string.
81
a660d684
KB
82\membersection{::wxIsAbsolutePath}
83
84\func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}}
85
86Returns TRUE if the argument is an absolute filename, i.e. with a slash
87or drive name at the beginning.
88
89\membersection{::wxPathOnly}
90
91\func{wxString}{wxPathOnly}{\param{const wxString\& }{path}}
92
532372a3 93Returns the directory part of the filename.
a660d684
KB
94
95\membersection{::wxUnix2DosFilename}
96
97\func{void}{wxUnix2DosFilename}{\param{const wxString\& }{s}}
98
e2a6f233 99Converts a Unix to a DOS filename by replacing forward
a660d684
KB
100slashes with backslashes.
101
102\membersection{::wxConcatFiles}
103
104\func{bool}{wxConcatFiles}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2},
105\param{const wxString\& }{file3}}
106
107Concatenates {\it file1} and {\it file2} to {\it file3}, returning
108TRUE if successful.
109
110\membersection{::wxCopyFile}
111
112\func{bool}{wxCopyFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
113
114Copies {\it file1} to {\it file2}, returning TRUE if successful.
115
7af89395
VZ
116\membersection{::wxGetCwd}\label{wxgetcwd}
117
118\func{wxString}{wxGetCwd}{\void}
119
120Returns a string containing the current (or working) directory.
121
a660d684
KB
122\membersection{::wxGetWorkingDirectory}
123
532372a3 124\func{wxString}{wxGetWorkingDirectory}{\param{char*}{buf=NULL}, \param{int }{sz=1000}}
a660d684 125
7af89395
VZ
126This function is obsolete: use \helpref{wxGetCwd}{wxgetcwd} instead.
127
a660d684
KB
128Copies the current working directory into the buffer if supplied, or
129copies the working directory into new storage (which you must delete yourself)
130if the buffer is NULL.
131
132{\it sz} is the size of the buffer if supplied.
133
134\membersection{::wxGetTempFileName}
135
532372a3 136\func{char*}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{char* }{buf=NULL}}
a660d684
KB
137
138Makes a temporary filename based on {\it prefix}, opens and closes the file,
139and places the name in {\it buf}. If {\it buf} is NULL, new store
140is allocated for the temporary filename using {\it new}.
141
142Under Windows, the filename will include the drive and name of the
143directory allocated for temporary files (usually the contents of the
e2a6f233 144TEMP variable). Under Unix, the {\tt /tmp} directory is used.
a660d684
KB
145
146It is the application's responsibility to create and delete the file.
147
148\membersection{::wxIsWild}\label{wxiswild}
149
150\func{bool}{wxIsWild}{\param{const wxString\& }{pattern}}
151
152Returns TRUE if the pattern contains wildcards. See \helpref{wxMatchWild}{wxmatchwild}.
153
154\membersection{::wxMatchWild}\label{wxmatchwild}
155
156\func{bool}{wxMatchWild}{\param{const wxString\& }{pattern}, \param{const wxString\& }{text}, \param{bool}{ dot\_special}}
157
158Returns TRUE if the {\it pattern}\/ matches the {\it text}\/; if {\it
159dot\_special}\/ is TRUE, filenames beginning with a dot are not matched
160with wildcard characters. See \helpref{wxIsWild}{wxiswild}.
161
162\membersection{::wxMkdir}
163
1a33c3ba 164\func{bool}{wxMkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}}
a660d684
KB
165
166Makes the directory {\it dir}, returning TRUE if successful.
167
1a33c3ba
VZ
168{\it perm} is the access mask for the directory for the systems on which it is
169supported (Unix) and doesn't have effect for the other ones.
170
a660d684
KB
171\membersection{::wxRemoveFile}
172
173\func{bool}{wxRemoveFile}{\param{const wxString\& }{file}}
174
175Removes {\it file}, returning TRUE if successful.
176
177\membersection{::wxRenameFile}
178
179\func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
180
181Renames {\it file1} to {\it file2}, returning TRUE if successful.
182
183\membersection{::wxRmdir}
184
185\func{bool}{wxRmdir}{\param{const wxString\& }{dir}, \param{int}{ flags=0}}
186
187Removes the directory {\it dir}, returning TRUE if successful. Does not work under VMS.
188
189The {\it flags} parameter is reserved for future use.
190
191\membersection{::wxSetWorkingDirectory}
192
193\func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}}
194
195Sets the current working directory, returning TRUE if the operation succeeded.
196Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification.
197
d37fd2fa
VZ
198\membersection{::wxSplitPath}\label{wxsplitfunction}
199
200\func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{const wxString *}{ path}, \param{const wxString *}{ name}, \param{const wxString *}{ ext}}
201
202This function splits a full file name into components: the path (including possible disk/drive
203specification under Windows), the base name and the extension. Any of the output parameters
204({\it path}, {\it name} or {\it ext}) may be NULL if you are not interested in the value of
205a particular component.
206
207wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under
208Windows, however it will not consider backslashes as path separators under Unix (where backslash
209is a valid character in a filename).
210
211On entry, {\it fullname} should be non NULL (it may be empty though).
212
213On return, {\it path} contains the file path (without the trailing separator), {\it name}
214contains the file name and {\it ext} contains the file extension without leading dot. All
215three of them may be empty if the corresponding component is. The old contents of the
216strings pointed to by these parameters will be overwritten in any case (if the pointers
217are not NULL).
218
ed93168b
VZ
219\membersection{::wxTransferFileToStream}\label{wxtransferfiletostream}
220
221\func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}}
222
223Copies the given file to {\it stream}. Useful when converting an old application to
224use streams (within the document/view framework, for example).
225
226Use of this function requires the file wx\_doc.h to be included.
227
228\membersection{::wxTransferStreamToFile}\label{wxtransferstreamtofile}
229
230\func{bool}{wxTransferStreamToFile}{\param{istream\& }{stream} \param{const wxString\& }{filename}}
231
232Copies the given stream to the file {\it filename}. Useful when converting an old application to
233use streams (within the document/view framework, for example).
234
235Use of this function requires the file wx\_doc.h to be included.
236
d524e22d
VZ
237\section{Network functions}\label{networkfunctions}
238
239\membersection{::wxGetFullHostName}\label{wxgetfullhostname}
240
241\func{wxString}{wxGetFullHostName}{\void}
242
243Returns the FQDN (fully qualified domain host name) or an empty string on
244error.
245
246See also: \helpref{wxGetHostName}{wxgethostname}
247
248\wxheading{Include files}
249
250<wx/utils.h>
251
252\membersection{::wxGetEmailAddress}\label{wxgetemailaddress}
253
254\func{bool}{wxGetEmailAddress}{\param{const wxString\& }{buf}, \param{int }{sz}}
255
256Copies the user's email address into the supplied buffer, by
257concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp
258and \helpref{wxGetUserId}{wxgetuserid}.
259
260Returns TRUE if successful, FALSE otherwise.
261
262\wxheading{Include files}
263
264<wx/utils.h>
265
266\membersection{::wxGetHostName}\label{wxgethostname}
267
268\func{wxString}{wxGetHostName}{\void}
269\func{bool}{wxGetHostName}{\param{char * }{buf}, \param{int }{sz}}
270
271Copies the current host machine's name into the supplied buffer. Please note
272that the returned name is {\it not} fully qualified, i.e. it does not include
273the domain name.
274
275Under Windows or NT, this function first looks in the environment
276variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp
277in the {\bf wxWindows} section of the WIN.INI file is tried.
278
279The first variant of this function returns the hostname if successful or an
280empty string otherwise. The second (deprecated) function returns TRUE
281if successful, FALSE otherwise.
282
283See also: \helpref{wxGetFullHostName}{wxgetfullhostname}
284
285\wxheading{Include files}
286
287<wx/utils.h>
288
289\section{User identification}\label{useridfunctions}
290
291\membersection{::wxGetUserId}\label{wxgetuserid}
292
293\func{wxString}{wxGetUserId}{\void}
294\func{bool}{wxGetUserId}{\param{char * }{buf}, \param{int }{sz}}
295
296This function returns the "user id" also known as "login name" under Unix i.e.
297something like "jsmith". It uniquely identifies the current user (on this system).
298
299Under Windows or NT, this function first looks in the environment
300variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp
301in the {\bf wxWindows} section of the WIN.INI file is tried.
302
303The first variant of this function returns the login name if successful or an
304empty string otherwise. The second (deprecated) function returns TRUE
305if successful, FALSE otherwise.
306
307See also: \helpref{wxGetUserName}{wxgetusername}
308
309\wxheading{Include files}
310
311<wx/utils.h>
312
313\membersection{::wxGetUserName}\label{wxgetusername}
314
315\func{wxString}{wxGetUserName}{\void}
316\func{bool}{wxGetUserName}{\param{char * }{buf}, \param{int }{sz}}
317
318This function returns the full user name (something like "Mr. John Smith").
319
320Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp
321in the {\bf wxWindows} section of the WIN.INI file. If PenWindows
322is running, the entry {\bf Current} in the section {\bf User} of
323the PENWIN.INI file is used.
324
325The first variant of this function returns the user name if successful or an
326empty string otherwise. The second (deprecated) function returns TRUE
327if successful, FALSE otherwise.
328
329See also: \helpref{wxGetUserId}{wxgetuserid}
330
331\wxheading{Include files}
332
333<wx/utils.h>
334
a660d684
KB
335\section{String functions}
336
337\membersection{::copystring}
338
339\func{char*}{copystring}{\param{const char* }{s}}
340
341Makes a copy of the string {\it s} using the C++ new operator, so it can be
342deleted with the {\it delete} operator.
343
344\membersection{::wxStringMatch}
345
346\func{bool}{wxStringMatch}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2},\\
347 \param{bool}{ subString = TRUE}, \param{bool}{ exact = FALSE}}
348
349Returns TRUE if the substring {\it s1} is found within {\it s2},
350ignoring case if {\it exact} is FALSE. If {\it subString} is FALSE,
351no substring matching is done.
352
353\membersection{::wxStringEq}\label{wxstringeq}
354
355\func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}}
356
357A macro defined as:
358
359\begin{verbatim}
360#define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
361\end{verbatim}
362
ed93168b 363\membersection{::IsEmpty}\label{isempty}
a660d684 364
ed93168b 365\func{bool}{IsEmpty}{\param{const char *}{ p}}
a660d684 366
ed93168b
VZ
367Returns TRUE if the string is empty, FALSE otherwise. It is safe to pass NULL
368pointer to this function and it will return TRUE for it.
a660d684 369
ed93168b 370\membersection{::Stricmp}\label{stricmp}
a660d684 371
ed93168b 372\func{int}{Stricmp}{\param{const char *}{p1}, \param{const char *}{p2}}
a660d684 373
ed93168b
VZ
374Returns a negative value, 0, or positive value if {\it p1} is less than, equal
375to or greater than {\it p2}. The comparison is case-insensitive.
a660d684 376
ed93168b
VZ
377This function complements the standard C function {\it strcmp()} which performs
378case-sensitive comparison.
a660d684 379
ed93168b
VZ
380\membersection{::Strlen}\label{strlen}
381
382\func{size\_t}{Strlen}{\param{const char *}{ p}}
383
384This is a safe version of standard function {\it strlen()}: it does exactly the
385same thing (i.e. returns the length of the string) except that it returns 0 if
386{\it p} is the NULL pointer.
387
388\membersection{::wxGetTranslation}\label{wxgettranslation}
389
390\func{const char *}{wxGetTranslation}{\param{const char * }{str}}
391
392This function returns the translation of string {\it str} in the current
393\helpref{locale}{wxlocale}. If the string is not found in any of the loaded
394message catalogs (see \helpref{i18n overview}{internationalization}), the
395original string is returned. In debug build, an error message is logged - this
396should help to find the strings which were not yet translated. As this function
397is used very often, an alternative syntax is provided: the \_() macro is
398defined as wxGetTranslation().
a660d684
KB
399
400\section{Dialog functions}\label{dialogfunctions}
401
402Below are a number of convenience functions for getting input from the
403user or displaying messages. Note that in these functions the last three
404parameters are optional. However, it is recommended to pass a parent frame
405parameter, or (in MS Windows or Motif) the wrong window frame may be brought to
406the front when the dialog box is popped up.
407
c50f1fb9
VZ
408\membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider}
409
410\func{wxTipProvider *}{wxCreateFileTipProvider}{
411 \param{const wxString\& }{filename},
412 \param{size\_t }{currentTip}}
413
414This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be
415used with \helpref{wxShowTip}{wxshowtip}.
416
417\docparam{filename}{The name of the file containing the tips, one per line}
418\docparam{currentTip}{The index of the first tip to show - normally this index
419 is remembered between the 2 program runs.}
420
421\wxheading{See also:}
422
423\helpref{Tips overview}{tipsoverview}
424
425\wxheading{Include files}
426
427<wx/tipdlg.h>
428
a660d684
KB
429\membersection{::wxFileSelector}\label{wxfileselector}
430
f5ee2e5f
JS
431\func{wxString}{wxFileSelector}{\param{const wxString\& }{message}, \param{const wxString\& }{default\_path = ""},\\
432 \param{const wxString\& }{default\_filename = ""}, \param{const wxString\& }{default\_extension = ""},\\
433 \param{const wxString\& }{wildcard = ``*.*''}, \param{int }{flags = 0}, \param{wxWindow *}{parent = ""},\\
a660d684
KB
434 \param{int}{ x = -1}, \param{int}{ y = -1}}
435
436Pops up a file selector box. In Windows, this is the common file selector
437dialog. In X, this is a file selector box with somewhat less functionality.
438The path and filename are distinct elements of a full file pathname.
706bb5f9 439If path is empty, the current directory will be used. If filename is empty,
a660d684
KB
440no default filename will be supplied. The wildcard determines what files
441are displayed in the file selector, and file extension supplies a type
442extension for the required filename. Flags may be a combination of wxOPEN,
e6daf794 443wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0.
a660d684 444
e6daf794 445Both the Unix and Windows versions implement a wildcard filter. Typing a
a660d684
KB
446filename containing wildcards (*, ?) in the filename text item, and
447clicking on Ok, will result in only those files matching the pattern being
e6daf794 448displayed.
a660d684 449
e6daf794
RR
450The wildcard may be a specification for multiple types of file
451with a description for each, such as:
a660d684
KB
452
453\begin{verbatim}
58abfef6 454 "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
a660d684
KB
455\end{verbatim}
456
706bb5f9 457The application must check for an empty return value (the user pressed
a660d684
KB
458Cancel). For example:
459
460\begin{verbatim}
f5ee2e5f 461const wxString& s = wxFileSelector("Choose a file to open");
a660d684
KB
462if (s)
463{
464 ...
465}
466\end{verbatim}
467
954b8ae6
JS
468\wxheading{Include files}
469
470<wx/filedlg.h>
471
c49245f8
VZ
472\membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
473
474\func{long}{wxGetNumberFromUser}{
475 \param{const wxString\& }{message},
476 \param{const wxString\& }{prompt},
477 \param{const wxString\& }{caption},
478 \param{long }{value},
479 \param{long }{min = 0},
480 \param{long }{max = 100},
481 \param{wxWindow *}{parent = NULL},
482 \param{const wxPoint\& }{pos = wxDefaultPosition}}
483
484Shows a dialog asking the user for numeric input. The dialogs title is set to
485{\it caption}, it contains a (possibly) multiline {\it message} above the
486single line {\it prompt} and the zone for entering the number.
487
488The number entered must be in the range {\it min}..{\it max} (both of which
489should be positive) and {\it value} is the initial value of it. If the user
490enters an invalid value or cancels the dialog, the function will return -1.
491
492Dialog is centered on its {\it parent} unless an explicit position is given in
493{\it pos}.
494
495\wxheading{Include files}
496
497<wx/textdlg.h>
498
a660d684
KB
499\membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
500
501\func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
502 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\
503 \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = TRUE}}
504
505Pop up a dialog box with title set to {\it caption}, message {\it message}, and a
506\rtfsp{\it default\_value}. The user may type in text and press OK to return this text,
532372a3 507or press Cancel to return the empty string.
a660d684
KB
508
509If {\it centre} is TRUE, the message text (which may include new line characters)
510is centred; if FALSE, the message is left-justified.
511
954b8ae6
JS
512\wxheading{Include files}
513
514<wx/textdlg.h>
515
a660d684
KB
516\membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice}
517
518\func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
519 \param{int }{nsel}, \param{int *}{selection},
520 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
521 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
522
523Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
524listbox. The user may choose one or more item(s) and press OK or Cancel.
525
526The number of initially selected choices, and array of the selected indices,
527are passed in; this array will contain the user selections on exit, with
528the function returning the number of selections. {\it selection} must be
529as big as the number of choices, in case all are selected.
530
531If Cancel is pressed, -1 is returned.
532
533{\it choices} is an array of {\it n} strings for the listbox.
534
535If {\it centre} is TRUE, the message text (which may include new line characters)
536is centred; if FALSE, the message is left-justified.
537
954b8ae6
JS
538\wxheading{Include files}
539
540<wx/choicdlg.h>
541
a660d684
KB
542\membersection{::wxGetSingleChoice}\label{wxgetsinglechoice}
543
544\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
545 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
546 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
547
548Pops up a dialog box containing a message, OK/Cancel buttons and a single-selection
549listbox. The user may choose an item and press OK to return a string or
532372a3 550Cancel to return the empty string.
a660d684
KB
551
552{\it choices} is an array of {\it n} strings for the listbox.
553
554If {\it centre} is TRUE, the message text (which may include new line characters)
555is centred; if FALSE, the message is left-justified.
556
954b8ae6
JS
557\wxheading{Include files}
558
559<wx/choicdlg.h>
560
a660d684
KB
561\membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex}
562
563\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
564 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
565 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
566
567As {\bf wxGetSingleChoice} but returns the index representing the selected string.
568If the user pressed cancel, -1 is returned.
569
954b8ae6
JS
570\wxheading{Include files}
571
572<wx/choicdlg.h>
573
a660d684
KB
574\membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata}
575
576\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
577 \param{const wxString\& }{client\_data[]}, \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1},\\
578 \param{int}{ y = -1}, \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
579
580As {\bf wxGetSingleChoice} but takes an array of client data pointers
581corresponding to the strings, and returns one of these pointers.
582
954b8ae6
JS
583\wxheading{Include files}
584
585<wx/choicdlg.h>
586
a660d684
KB
587\membersection{::wxMessageBox}\label{wxmessagebox}
588
589\func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK \pipe wxCENTRE},\\
590 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}}
591
592General purpose message dialog. {\it style} may be a bit list of the
593following identifiers:
594
595\begin{twocollist}\itemsep=0pt
596\twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
597wxCANCEL.}
598\twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
599wxYES\_NO or wxOK.}
600\twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.}
601\twocolitem{wxCENTRE}{Centres the text.}
602\twocolitem{wxICON\_EXCLAMATION}{Under Windows, displays an exclamation mark symbol.}
603\twocolitem{wxICON\_HAND}{Under Windows, displays a hand symbol.}
604\twocolitem{wxICON\_QUESTION}{Under Windows, displays a question mark symbol.}
605\twocolitem{wxICON\_INFORMATION}{Under Windows, displays an information symbol.}
606\end{twocollist}
607
608The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
609
610For example:
611
612\begin{verbatim}
613 ...
614 int answer = wxMessageBox("Quit program?", "Confirm",
615 wxYES_NO | wxCANCEL, main_frame);
616 if (answer == wxYES)
617 delete main_frame;
618 ...
619\end{verbatim}
620
621{\it message} may contain newline characters, in which case the
622message will be split into separate lines, to cater for large messages.
623
624Under Windows, the native MessageBox function is used unless wxCENTRE
625is specified in the style, in which case a generic function is used.
626This is because the native MessageBox function cannot centre text.
627The symbols are not shown when the generic function is used.
628
954b8ae6
JS
629\wxheading{Include files}
630
631<wx/msgdlg.h>
632
c50f1fb9
VZ
633\membersection{::wxShowTip}\label{wxshowtip}
634
635\func{bool}{wxShowTip}{
636 \param{wxWindow *}{parent},
58a855e0 637 \param{wxTipProvider *}{tipProvider},
c50f1fb9
VZ
638 \param{bool }{showAtStartup = TRUE}}
639
640This function shows a "startup tip" to the user.
641
642\docparam{parent}{The parent window for the modal dialog}
643
644\docparam{tipProvider}{An object which is used to get the text of the tips.
645 It may be created with
646 \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.}
647
648\docparam{showAtStartup}{Should be TRUE if startup tips are shown, FALSE
649 otherwise. This is used as the initial value for "Show tips at startup"
650 checkbox which is shown in the tips dialog.}
651
652\wxheading{See also:}
653
654\helpref{Tips overview}{tipsoverview}
655
656\wxheading{Include files}
657
658<wx/tipdlg.h>
659
a660d684
KB
660\section{GDI functions}\label{gdifunctions}
661
662The following are relevant to the GDI (Graphics Device Interface).
663
954b8ae6
JS
664\wxheading{Include files}
665
666<wx/gdicmn.h>
667
a660d684
KB
668\membersection{::wxColourDisplay}
669
670\func{bool}{wxColourDisplay}{\void}
671
672Returns TRUE if the display is colour, FALSE otherwise.
673
674\membersection{::wxDisplayDepth}
675
676\func{int}{wxDisplayDepth}{\void}
677
678Returns the depth of the display (a value of 1 denotes a monochrome display).
679
e2a6f233 680\membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
a660d684 681
e2a6f233 682\func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
a660d684
KB
683 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
684
e2a6f233 685Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
a660d684
KB
686makes it into a placeable metafile by prepending a header containing the given
687bounding box. The bounding box may be obtained from a device context after drawing
688into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
689
690In addition to adding the placeable metafile header, this function adds
691the equivalent of the following code to the start of the metafile data:
692
693\begin{verbatim}
694 SetMapMode(dc, MM_ANISOTROPIC);
695 SetWindowOrg(dc, minX, minY);
696 SetWindowExt(dc, maxX - minX, maxY - minY);
697\end{verbatim}
698
e3065973 699This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
a660d684
KB
700
701Placeable metafiles may be imported by many Windows applications, and can be
702used in RTF (Rich Text Format) files.
703
704{\it scale} allows the specification of scale for the metafile.
705
706This function is only available under Windows.
707
708\membersection{::wxSetCursor}\label{wxsetcursor}
709
710\func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
711
f53561f1 712Globally sets the cursor; only has an effect in Windows and GTK.
a660d684
KB
713See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
714
a660d684
KB
715\section{Printer settings}\label{printersettings}
716
f53561f1
RR
717These routines are obsolete and should no longer be used!
718
a660d684
KB
719The following functions are used to control PostScript printing. Under
720Windows, PostScript output can only be sent to a file.
721
954b8ae6
JS
722\wxheading{Include files}
723
724<wx/dcps.h>
725
a660d684
KB
726\membersection{::wxGetPrinterCommand}
727
728\func{wxString}{wxGetPrinterCommand}{\void}
729
730Gets the printer command used to print a file. The default is {\tt lpr}.
731
732\membersection{::wxGetPrinterFile}
733
734\func{wxString}{wxGetPrinterFile}{\void}
735
736Gets the PostScript output filename.
737
738\membersection{::wxGetPrinterMode}
739
740\func{int}{wxGetPrinterMode}{\void}
741
742Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
743The default is PS\_PREVIEW.
744
745\membersection{::wxGetPrinterOptions}
746
747\func{wxString}{wxGetPrinterOptions}{\void}
748
749Gets the additional options for the print command (e.g. specific printer). The default is nothing.
750
751\membersection{::wxGetPrinterOrientation}
752
753\func{int}{wxGetPrinterOrientation}{\void}
754
755Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
756
757\membersection{::wxGetPrinterPreviewCommand}
758
759\func{wxString}{wxGetPrinterPreviewCommand}{\void}
760
761Gets the command used to view a PostScript file. The default depends on the platform.
762
763\membersection{::wxGetPrinterScaling}
764
765\func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
766
767Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
768
769\membersection{::wxGetPrinterTranslation}
770
771\func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
772
773Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
774
775\membersection{::wxSetPrinterCommand}
776
777\func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
778
779Sets the printer command used to print a file. The default is {\tt lpr}.
780
781\membersection{::wxSetPrinterFile}
782
783\func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
784
785Sets the PostScript output filename.
786
787\membersection{::wxSetPrinterMode}
788
789\func{void}{wxSetPrinterMode}{\param{int }{mode}}
790
791Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
792The default is PS\_PREVIEW.
793
794\membersection{::wxSetPrinterOptions}
795
796\func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
797
798Sets the additional options for the print command (e.g. specific printer). The default is nothing.
799
800\membersection{::wxSetPrinterOrientation}
801
802\func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
803
804Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
805
806\membersection{::wxSetPrinterPreviewCommand}
807
808\func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
809
810Sets the command used to view a PostScript file. The default depends on the platform.
811
812\membersection{::wxSetPrinterScaling}
813
814\func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
815
816Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
817
818\membersection{::wxSetPrinterTranslation}
819
820\func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
821
822Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
823
824\section{Clipboard functions}\label{clipsboard}
825
826These clipboard functions are implemented for Windows only.
827
954b8ae6
JS
828\wxheading{Include files}
829
830<wx/clipbrd.h>
831
a660d684
KB
832\membersection{::wxClipboardOpen}
833
834\func{bool}{wxClipboardOpen}{\void}
835
836Returns TRUE if this application has already opened the clipboard.
837
838\membersection{::wxCloseClipboard}
839
840\func{bool}{wxCloseClipboard}{\void}
841
842Closes the clipboard to allow other applications to use it.
843
844\membersection{::wxEmptyClipboard}
845
846\func{bool}{wxEmptyClipboard}{\void}
847
848Empties the clipboard.
849
850\membersection{::wxEnumClipboardFormats}
851
852\func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
853
854Enumerates the formats found in a list of available formats that belong
855to the clipboard. Each call to this function specifies a known
856available format; the function returns the format that appears next in
857the list.
858
859{\it dataFormat} specifies a known format. If this parameter is zero,
860the function returns the first format in the list.
861
862The return value specifies the next known clipboard data format if the
863function is successful. It is zero if the {\it dataFormat} parameter specifies
864the last format in the list of available formats, or if the clipboard
865is not open.
866
867Before it enumerates the formats function, an application must open the clipboard by using the
868wxOpenClipboard function.
869
870\membersection{::wxGetClipboardData}
871
872\func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
873
874Gets data from the clipboard.
875
876{\it dataFormat} may be one of:
877
878\begin{itemize}\itemsep=0pt
879\item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string.
880\item wxCF\_BITMAP: returns a new wxBitmap.
881\end{itemize}
882
883The clipboard must have previously been opened for this call to succeed.
884
885\membersection{::wxGetClipboardFormatName}
886
887\func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}}
888
889Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
890length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
891
892\membersection{::wxIsClipboardFormatAvailable}
893
894\func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
895
896Returns TRUE if the given data format is available on the clipboard.
897
898\membersection{::wxOpenClipboard}
899
900\func{bool}{wxOpenClipboard}{\void}
901
902Opens the clipboard for passing data to it or getting data from it.
903
904\membersection{::wxRegisterClipboardFormat}
905
906\func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}}
907
908Registers the clipboard data format name and returns an identifier.
909
910\membersection{::wxSetClipboardData}
911
912\func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}}
913
914Passes data to the clipboard.
915
916{\it dataFormat} may be one of:
917
918\begin{itemize}\itemsep=0pt
919\item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string.
920\item wxCF\_BITMAP: {\it data} is a wxBitmap.
921\item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap).
e2a6f233 922\item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
a660d684
KB
923\end{itemize}
924
925The clipboard must have previously been opened for this call to succeed.
926
927\section{Miscellaneous functions}\label{miscellany}
928
954b8ae6 929\membersection{::wxNewId}
a660d684 930
954b8ae6 931\func{long}{wxNewId}{\void}
a660d684
KB
932
933Generates an integer identifier unique to this run of the program.
934
954b8ae6
JS
935\wxheading{Include files}
936
937<wx/utils.h>
a660d684 938
954b8ae6
JS
939\membersection{::wxRegisterId}
940
941\func{void}{wxRegisterId}{\param{long}{ id}}
a660d684
KB
942
943Ensures that ids subsequently generated by {\bf NewId} do not clash with
944the given {\bf id}.
945
954b8ae6
JS
946\wxheading{Include files}
947
948<wx/utils.h>
949
a660d684
KB
950\membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor}
951
952\func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}}
953
954Changes the cursor to the given cursor for all windows in the application.
955Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back
956to its previous state. These two calls can be nested, and a counter
957ensures that only the outer calls take effect.
958
e2a6f233 959See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
a660d684 960
954b8ae6
JS
961\wxheading{Include files}
962
963<wx/utils.h>
964
a660d684
KB
965\membersection{::wxBell}
966
967\func{void}{wxBell}{\void}
968
969Ring the system bell.
970
954b8ae6 971\wxheading{Include files}
a660d684 972
954b8ae6 973<wx/utils.h>
a660d684
KB
974
975\membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
976
977\func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
978
979Creates and returns an object of the given class, if the class has been
980registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
981
e2a6f233
JS
982\membersection{::wxDDECleanUp}\label{wxddecleanup}
983
984\func{void}{wxDDECleanUp}{\void}
985
986Called when wxWindows exits, to clean up the DDE system. This no longer needs to be
987called by the application.
988
989See also helpref{wxDDEInitialize}{wxddeinitialize}.
990
954b8ae6
JS
991\wxheading{Include files}
992
993<wx/dde.h>
994
e2a6f233
JS
995\membersection{::wxDDEInitialize}\label{wxddeinitialize}
996
997\func{void}{wxDDEInitialize}{\void}
998
999Initializes the DDE system. May be called multiple times without harm.
1000
1001This no longer needs to be called by the application: it will be called
1002by wxWindows if necessary.
1003
1004See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},
1005\helpref{wxDDECleanUp}{wxddecleanup}.
1006
954b8ae6
JS
1007\wxheading{Include files}
1008
1009<wx/dde.h>
1010
e2a6f233 1011\membersection{::wxDebugMsg}\label{wxdebugmsg}
a660d684
KB
1012
1013\func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
1014
1015Display a debugging message; under Windows, this will appear on the
e2a6f233 1016debugger command window, and under Unix, it will be written to standard
a660d684
KB
1017error.
1018
1019The syntax is identical to {\bf printf}: pass a format string and a
1020variable list of arguments.
1021
1022Note that under Windows, you can see the debugging messages without a
1023debugger if you have the DBWIN debug log application that comes with
1024Microsoft C++.
1025
1026{\bf Tip:} under Windows, if your application crashes before the
1027message appears in the debugging window, put a wxYield call after
1028each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
1029(at least for Watcom C++): preformat your messages and use OutputDebugString
1030instead.
1031
6fb26ea3
JS
1032This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1033
954b8ae6
JS
1034\wxheading{Include files}
1035
1036<wx/utils.h>
1037
a660d684
KB
1038\membersection{::wxDisplaySize}
1039
1040\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
1041
1042Gets the physical size of the display in pixels.
1043
954b8ae6
JS
1044\wxheading{Include files}
1045
1046<wx/gdicmn.h>
1047
a660d684
KB
1048\membersection{::wxEntry}\label{wxentry}
1049
1050This initializes wxWindows in a platform-dependent way. Use this if you
1051are not using the default wxWindows entry code (e.g. main or WinMain). For example,
1052you can initialize wxWindows from an Microsoft Foundation Classes application using
954b8ae6 1053this function.
a660d684
KB
1054
1055\func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
1056 \param{const wxString\& }{commandLine}, \param{int}{ cmdShow}, \param{bool}{ enterLoop = TRUE}}
1057
1058wxWindows initialization under Windows (non-DLL). If {\it enterLoop} is FALSE, the
1059function will return immediately after calling wxApp::OnInit. Otherwise, the wxWindows
1060message loop will be entered.
1061
1062\func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
1063 \param{WORD}{ wDataSegment}, \param{WORD}{ wHeapSize}, \param{const wxString\& }{ commandLine}}
1064
1065wxWindows initialization under Windows (for applications constructed as a DLL).
1066
1067\func{int}{wxEntry}{\param{int}{ argc}, \param{const wxString\& *}{argv}}
1068
e2a6f233 1069wxWindows initialization under Unix.
a660d684 1070
954b8ae6
JS
1071\wxheading{Remarks}
1072
1073To clean up wxWindows, call wxApp::OnExit followed by the static function
1074wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWindows:
1075
1076\begin{verbatim}
1077int CTheApp::ExitInstance()
1078{
1079 // OnExit isn't called by CleanUp so must be called explicitly.
1080 wxTheApp->OnExit();
1081 wxApp::CleanUp();
1082
1083 return CWinApp::ExitInstance();
1084}
1085\end{verbatim}
1086
1087\wxheading{Include files}
1088
1089<wx/app.h>
1090
a660d684
KB
1091\membersection{::wxError}\label{wxerror}
1092
1093\func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
1094
1095Displays {\it msg} and continues. This writes to standard error under
e2a6f233 1096Unix, and pops up a message box under Windows. Used for internal
a660d684
KB
1097wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
1098
954b8ae6
JS
1099\wxheading{Include files}
1100
1101<wx/utils.h>
1102
a660d684
KB
1103\membersection{::wxEndBusyCursor}\label{wxendbusycursor}
1104
1105\func{void}{wxEndBusyCursor}{\void}
1106
1107Changes the cursor back to the original cursor, for all windows in the application.
1108Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1109
e2a6f233 1110See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
a660d684 1111
954b8ae6
JS
1112\wxheading{Include files}
1113
1114<wx/utils.h>
1115
a660d684
KB
1116\membersection{::wxExecute}\label{wxexecute}
1117
eafc087e 1118\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}}
a660d684 1119
e2a6f233 1120\func{long}{wxExecute}{\param{char **}{argv}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}}
a660d684 1121
e2a6f233 1122Executes another program in Unix or Windows.
a660d684
KB
1123
1124The first form takes a command string, such as {\tt "emacs file.txt"}.
1125
1126The second form takes an array of values: a command, any number of
1127arguments, terminated by NULL.
1128
1129If {\it sync} is FALSE (the default), flow of control immediately returns.
1130If TRUE, the current application waits until the other program has terminated.
1131
43bb3699 1132In the case of synchronous execution, the return value is the exit code of
e6045e08
VZ
1133the process (which terminates by the moment the function returns) and will be
1134$-1$ if the process couldn't be started and typically 0 if the process
34adc693
KB
1135terminated successfully. Also, while waiting for the process to
1136terminate, wxExecute will call \helpref{wxYield}{wxyield}. The caller
1137should ensure that this can cause no recursion, in the simples case by
1138calling \helpref{wxEnableTopLevelWindows(FALSE)}{wxenabletoplevelwindows}.
e6045e08
VZ
1139
1140For asynchronous execution, however, the return value is the process id and
1141zero value indicates that the command could not be executed.
a660d684 1142
7e84f02d
VZ
1143If callback isn't NULL and if execution is asynchronous (note that callback
1144parameter can not be non NULL for synchronous execution),
eafc087e
GL
1145\helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when
1146the process finishes.
1147
1148See also \helpref{wxShell}{wxshell}, \helpref{wxProcess}{wxprocess}.
a660d684 1149
954b8ae6
JS
1150\wxheading{Include files}
1151
1152<wx/utils.h>
1153
a660d684
KB
1154\membersection{::wxExit}\label{wxexit}
1155
1156\func{void}{wxExit}{\void}
1157
1158Exits application after calling \helpref{wxApp::OnExit}{wxapponexit}.
1159Should only be used in an emergency: normally the top-level frame
1160should be deleted (after deleting all other frames) to terminate the
1161application. See \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} and \helpref{wxApp}{wxapp}.
1162
954b8ae6
JS
1163\wxheading{Include files}
1164
1165<wx/app.h>
1166
a660d684
KB
1167\membersection{::wxFatalError}\label{wxfatalerror}
1168
1169\func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
1170
e2a6f233 1171Displays {\it msg} and exits. This writes to standard error under Unix,
a660d684
KB
1172and pops up a message box under Windows. Used for fatal internal
1173wxWindows errors. See also \helpref{wxError}{wxerror}.
1174
954b8ae6
JS
1175\wxheading{Include files}
1176
1177<wx/utils.h>
1178
a660d684
KB
1179\membersection{::wxFindMenuItemId}
1180
1181\func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
1182
1183Find a menu item identifier associated with the given frame's menu bar.
1184
954b8ae6
JS
1185\wxheading{Include files}
1186
1187<wx/utils.h>
1188
a660d684
KB
1189\membersection{::wxFindWindowByLabel}
1190
1191\func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
1192
1193Find a window by its label. Depending on the type of window, the label may be a window title
1194or panel item label. If {\it parent} is NULL, the search will start from all top-level
1195frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
1196The search is recursive in both cases.
1197
954b8ae6
JS
1198\wxheading{Include files}
1199
1200<wx/utils.h>
1201
a660d684
KB
1202\membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
1203
1204\func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
1205
1206Find a window by its name (as given in a window constructor or {\bf Create} function call).
1207If {\it parent} is NULL, the search will start from all top-level
1208frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
1209The search is recursive in both cases.
1210
1211If no such named window is found, {\bf wxFindWindowByLabel} is called.
1212
954b8ae6
JS
1213\wxheading{Include files}
1214
1215<wx/utils.h>
1216
a660d684
KB
1217\membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
1218
1219\func{wxWindow *}{wxGetActiveWindow}{\void}
1220
1221Gets the currently active window (Windows only).
1222
954b8ae6
JS
1223\wxheading{Include files}
1224
1225<wx/windows.h>
1226
a660d684
KB
1227\membersection{::wxGetDisplayName}\label{wxgetdisplayname}
1228
1229\func{wxString}{wxGetDisplayName}{\void}
1230
1231Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
1232
954b8ae6
JS
1233\wxheading{Include files}
1234
1235<wx/utils.h>
1236
a660d684
KB
1237\membersection{::wxGetHomeDir}
1238
1239\func{wxString}{wxGetHomeDir}{\param{const wxString\& }{buf}}
1240
e2a6f233 1241Fills the buffer with a string representing the user's home directory (Unix only).
a660d684 1242
954b8ae6
JS
1243\wxheading{Include files}
1244
1245<wx/utils.h>
1246
a660d684
KB
1247\membersection{::wxGetHostName}
1248
1249\func{bool}{wxGetHostName}{\param{const wxString\& }{buf}, \param{int}{ bufSize}}
1250
1251Copies the host name of the machine the program is running on into the
1252buffer {\it buf}, of maximum size {\it bufSize}, returning TRUE if
e2a6f233 1253successful. Under Unix, this will return a machine name. Under Windows,
a660d684
KB
1254this returns ``windows''.
1255
954b8ae6
JS
1256\wxheading{Include files}
1257
1258<wx/utils.h>
1259
a660d684
KB
1260\membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
1261
1262\func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = TRUE}}
1263
1264Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
1265
1266If {\it resetTimer} is TRUE (the default), the timer is reset to zero
1267by this call.
1268
1269See also \helpref{wxTimer}{wxtimer}.
1270
954b8ae6
JS
1271\wxheading{Include files}
1272
1273<wx/timer.h>
1274
e2a6f233 1275\membersection{::wxGetFreeMemory}\label{wxgetfreememory}
a660d684
KB
1276
1277\func{long}{wxGetFreeMemory}{\void}
1278
1279Returns the amount of free memory in Kbytes under environments which
1280support it, and -1 if not supported. Currently, returns a positive value
e2a6f233 1281under Windows, and -1 under Unix.
a660d684 1282
954b8ae6
JS
1283\wxheading{Include files}
1284
1285<wx/utils.h>
1286
a660d684
KB
1287\membersection{::wxGetMousePosition}
1288
1289\func{void}{wxGetMousePosition}{\param{int* }{x}, \param{int* }{y}}
1290
1291Returns the mouse position in screen coordinates.
1292
954b8ae6
JS
1293\wxheading{Include files}
1294
1295<wx/utils.h>
1296
a660d684
KB
1297\membersection{::wxGetOsVersion}
1298
1299\func{int}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}}
1300
1301Gets operating system version information.
1302
1303\begin{twocollist}\itemsep=0pt
1304\twocolitemruled{Platform}{Return tyes}
1305\twocolitem{Macintosh}{Return value is wxMACINTOSH.}
12a44087 1306\twocolitem{GTK}{Return value is wxGTK, {\it major} is 1, {\it minor} is 0. (for GTK 1.0.X) }
a660d684
KB
1307\twocolitem{Motif}{Return value is wxMOTIF\_X, {\it major} is X version, {\it minor} is X revision.}
1308\twocolitem{OS/2}{Return value is wxOS2\_PM.}
1309\twocolitem{Windows 3.1}{Return value is wxWINDOWS, {\it major} is 3, {\it minor} is 1.}
1310\twocolitem{Windows NT}{Return value is wxWINDOWS\_NT, {\it major} is 3, {\it minor} is 1.}
1311\twocolitem{Windows 95}{Return value is wxWIN95, {\it major} is 3, {\it minor} is 1.}
1312\twocolitem{Win32s (Windows 3.1)}{Return value is wxWIN32S, {\it major} is 3, {\it minor} is 1.}
1313\twocolitem{Watcom C++ 386 supervisor mode (Windows 3.1)}{Return value is wxWIN386, {\it major} is 3, {\it minor} is 1.}
1314\end{twocollist}
1315
954b8ae6
JS
1316\wxheading{Include files}
1317
1318<wx/utils.h>
1319
a660d684
KB
1320\membersection{::wxGetResource}\label{wxgetresource}
1321
1322\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1323 \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}}
1324
1325\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1326 \param{float *}{value}, \param{const wxString\& }{file = NULL}}
1327
1328\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1329 \param{long *}{value}, \param{const wxString\& }{file = NULL}}
1330
1331\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1332 \param{int *}{value}, \param{const wxString\& }{file = NULL}}
1333
1334Gets a resource value from the resource database (for example, WIN.INI, or
1335.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
1336otherwise the specified file is used.
1337
e2a6f233 1338Under X, if an application class (wxApp::GetClassName) has been defined,
a660d684
KB
1339it is appended to the string /usr/lib/X11/app-defaults/ to try to find
1340an applications default file when merging all resource databases.
1341
1342The reason for passing the result in an argument is that it
1343can be convenient to define a default value, which gets overridden
1344if the value exists in the resource file. It saves a separate
1345test for that resource's existence, and it also allows
1346the overloading of the function for different types.
1347
e2a6f233 1348See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
a660d684 1349
954b8ae6
JS
1350\wxheading{Include files}
1351
1352<wx/utils.h>
1353
a660d684
KB
1354\membersection{::wxGetUserId}
1355
1356\func{bool}{wxGetUserId}{\param{const wxString\& }{buf}, \param{int}{ bufSize}}
1357
1358Copies the user's login identity (such as ``jacs'') into the buffer {\it
1359buf}, of maximum size {\it bufSize}, returning TRUE if successful.
1360Under Windows, this returns ``user''.
1361
954b8ae6
JS
1362\wxheading{Include files}
1363
1364<wx/utils.h>
1365
a660d684
KB
1366\membersection{::wxGetUserName}
1367
1368\func{bool}{wxGetUserName}{\param{const wxString\& }{buf}, \param{int}{ bufSize}}
1369
1370Copies the user's name (such as ``Julian Smart'') into the buffer {\it
1371buf}, of maximum size {\it bufSize}, returning TRUE if successful.
1372Under Windows, this returns ``unknown''.
1373
954b8ae6
JS
1374\wxheading{Include files}
1375
1376<wx/utils.h>
1377
a660d684
KB
1378\membersection{::wxKill}\label{wxkill}
1379
1380\func{int}{wxKill}{\param{long}{ pid}, \param{int}{ sig}}
1381
e2a6f233 1382Under Unix (the only supported platform), equivalent to the Unix kill function.
a660d684
KB
1383Returns 0 on success, -1 on failure.
1384
1385Tip: sending a signal of 0 to a process returns -1 if the process does not exist.
1386It does not raise a signal in the receiving process.
1387
954b8ae6 1388\wxheading{Include files}
a660d684 1389
954b8ae6 1390<wx/utils.h>
a660d684 1391
a660d684
KB
1392\membersection{::wxIsBusy}\label{wxisbusy}
1393
1394\func{bool}{wxIsBusy}{\void}
1395
1396Returns TRUE if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
1397\helpref{wxEndBusyCursor}{wxendbusycursor} calls.
1398
e2a6f233
JS
1399See also \helpref{wxBusyCursor}{wxbusycursor}.
1400
954b8ae6
JS
1401\wxheading{Include files}
1402
1403<wx/utils.h>
1404
a660d684
KB
1405\membersection{::wxLoadUserResource}\label{wxloaduserresource}
1406
1407\func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
1408
1409Loads a user-defined Windows resource as a string. If the resource is found, the function creates
1410a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
1411
1412The resource must be defined in the {\tt .rc} file using the following syntax:
1413
1414\begin{verbatim}
1415myResource TEXT file.ext
1416\end{verbatim}
1417
1418where {\tt file.ext} is a file that the resource compiler can find.
1419
1420One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers
1421cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed
1422using \helpref{wxResourceParseString}{wxresourceparsestring}.
1423
1424This function is available under Windows only.
1425
954b8ae6
JS
1426\wxheading{Include files}
1427
1428<wx/utils.h>
1429
a660d684
KB
1430\membersection{::wxNow}\label{wxnow}
1431
1432\func{wxString}{wxNow}{\void}
1433
1434Returns a string representing the current date and time.
1435
954b8ae6
JS
1436\wxheading{Include files}
1437
1438<wx/utils.h>
1439
a660d684
KB
1440\membersection{::wxPostDelete}\label{wxpostdelete}
1441
1442\func{void}{wxPostDelete}{\param{wxObject *}{object}}
1443
954b8ae6 1444Tells the system to delete the specified object when
a660d684
KB
1445all other events have been processed. In some environments, it is
1446necessary to use this instead of deleting a frame directly with the
954b8ae6 1447delete operator, because some GUIs will still send events to a deleted window.
a660d684
KB
1448
1449Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
1450
954b8ae6
JS
1451\wxheading{Include files}
1452
1453<wx/utils.h>
1454
6776a0b2 1455\membersection{::wxSafeYield}\label{wxsafeyield}
43bb3699
VZ
1456
1457\func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}}
1458
1459This function is similar to wxYield, except that it disables the user input to
a818ccea
KB
1460all program windows before calling wxYield and re-enables it again
1461afterwards. If {\it win} is not NULL, this window will remain enabled,
1462allowing the implementation of some limited user interaction.
43bb3699
VZ
1463
1464Returns the result of the call to \helpref{::wxYield}{wxyield}.
1465
1466\wxheading{Include files}
1467
1468<wx/utils.h>
1469
6776a0b2 1470\membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
95dee651
KB
1471
1472\func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = TRUE}}
1473
1474This function enables or disables all top level windows. It is used by
1475\helpref{::wxSafeYield}{wxsafeyield}.
1476
1477\wxheading{Include files}
1478
1479<wx/utils.h>
1480
1481
a660d684
KB
1482\membersection{::wxSetDisplayName}\label{wxsetdisplayname}
1483
1484\func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
1485
1486Under X only, sets the current display name. This is the X host and display name such
1487as ``colonsay:0.0", and the function indicates which display should be used for creating
1488windows from this point on. Setting the display within an application allows multiple
1489displays to be used.
1490
1491See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
1492
954b8ae6
JS
1493\wxheading{Include files}
1494
1495<wx/utils.h>
1496
a660d684
KB
1497\membersection{::wxShell}\label{wxshell}
1498
1499\func{bool}{wxShell}{\param{const wxString\& }{command = NULL}}
1500
1501Executes a command in an interactive shell window. If no command is
1502specified, then just the shell is spawned.
1503
1504See also \helpref{wxExecute}{wxexecute}.
1505
954b8ae6
JS
1506\wxheading{Include files}
1507
1508<wx/utils.h>
1509
e2a6f233 1510\membersection{::wxSleep}\label{wxsleep}
a660d684
KB
1511
1512\func{void}{wxSleep}{\param{int}{ secs}}
1513
e2a6f233 1514Sleeps for the specified number of seconds.
a660d684 1515
954b8ae6
JS
1516\wxheading{Include files}
1517
1518<wx/utils.h>
1519
a660d684
KB
1520\membersection{::wxStripMenuCodes}
1521
8a2c6ef8
JS
1522\func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
1523
1524\func{void}{wxStripMenuCodes}{\param{char* }{in}, \param{char* }{out}}
a660d684
KB
1525
1526Strips any menu codes from {\it in} and places the result
8a2c6ef8
JS
1527in {\it out} (or returns the new string, in the first form).
1528
1529Menu codes include \& (mark the next character with an underline
a660d684
KB
1530as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
1531
954b8ae6
JS
1532\wxheading{Include files}
1533
1534<wx/utils.h>
1535
a660d684
KB
1536\membersection{::wxStartTimer}\label{wxstarttimer}
1537
1538\func{void}{wxStartTimer}{\void}
1539
1540Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
1541
1542See also \helpref{wxTimer}{wxtimer}.
1543
954b8ae6
JS
1544\wxheading{Include files}
1545
1546<wx/timer.h>
1547
a660d684
KB
1548\membersection{::wxToLower}\label{wxtolower}
1549
1550\func{char}{wxToLower}{\param{char }{ch}}
1551
1552Converts the character to lower case. This is implemented as a macro for efficiency.
1553
954b8ae6
JS
1554\wxheading{Include files}
1555
1556<wx/utils.h>
1557
a660d684
KB
1558\membersection{::wxToUpper}\label{wxtoupper}
1559
1560\func{char}{wxToUpper}{\param{char }{ch}}
1561
1562Converts the character to upper case. This is implemented as a macro for efficiency.
1563
954b8ae6
JS
1564\wxheading{Include files}
1565
1566<wx/utils.h>
1567
a660d684
KB
1568\membersection{::wxTrace}\label{wxtrace}
1569
1570\func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
1571
1572Takes printf-style variable argument syntax. Output
1573is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1574
6fb26ea3
JS
1575This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1576
954b8ae6
JS
1577\wxheading{Include files}
1578
1579<wx/memory.h>
1580
a660d684
KB
1581\membersection{::wxTraceLevel}\label{wxtracelevel}
1582
1583\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
1584
1585Takes printf-style variable argument syntax. Output
1586is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1587The first argument should be the level at which this information is appropriate.
1588It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
1589this value.
1590
6fb26ea3
JS
1591This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1592
954b8ae6
JS
1593\wxheading{Include files}
1594
1595<wx/memory.h>
1596
afb74891
VZ
1597\membersection{::wxUsleep}\label{wxusleep}
1598
1599\func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
1600
1601Sleeps for the specified number of milliseconds. Notice that usage of this
1602function is encouraged instead of calling usleep(3) directly because the
1603standard usleep() function is not MT safe.
1604
1605\wxheading{Include files}
1606
1607<wx/utils.h>
1608
a660d684
KB
1609\membersection{::wxWriteResource}\label{wxwriteresource}
1610
1611\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1612 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
1613
1614\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1615 \param{float }{value}, \param{const wxString\& }{file = NULL}}
1616
1617\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1618 \param{long }{value}, \param{const wxString\& }{file = NULL}}
1619
1620\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
1621 \param{int }{value}, \param{const wxString\& }{file = NULL}}
1622
1623Writes a resource value into the resource database (for example, WIN.INI, or
1624.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
1625otherwise the specified file is used.
1626
1627Under X, the resource databases are cached until the internal function
1628\rtfsp{\bf wxFlushResources} is called automatically on exit, when
1629all updated resource databases are written to their files.
1630
1631Note that it is considered bad manners to write to the .Xdefaults
e2a6f233 1632file under Unix, although the WIN.INI file is fair game under Windows.
a660d684 1633
e2a6f233 1634See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
a660d684 1635
954b8ae6
JS
1636\wxheading{Include files}
1637
1638<wx/utils.h>
1639
fd34e3a5 1640\membersection{::wxYield}\label{wxyield}
a660d684
KB
1641
1642\func{bool}{wxYield}{\void}
1643
1644Yields control to pending messages in the windowing system. This can be useful, for example, when a
1645time-consuming process writes to a text window. Without an occasional
1646yield, the text window will not be updated properly, and (since Windows
1647multitasking is cooperative) other processes will not respond.
1648
1649Caution should be exercised, however, since yielding may allow the
1650user to perform actions which are not compatible with the current task.
1651Disabling menu items or whole menus during processing can avoid unwanted
43bb3699
VZ
1652reentrance of code: see \helpref{::wxSafeYield}{wxsafeyield} for a better
1653function.
a660d684 1654
954b8ae6
JS
1655\wxheading{Include files}
1656
1657<wx/utils.h>
1658
a660d684
KB
1659\section{Macros}\label{macros}
1660
1661These macros are defined in wxWindows.
1662
0180dad6
RR
1663\membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
1664
1665\func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
1666
1667\func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
1668
1669\func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
1670
1671\func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
1672
1673This macro will swap the bytes of the {\it value} variable from little
1674endian to big endian or vice versa.
1675
1676\membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
1677
1678\func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
1679
1680\func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
1681
1682\func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
1683
1684\func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
1685
1686This macro will swap the bytes of the {\it value} variable from little
1687endian to big endian or vice versa if the program is compiled on a
1688big-endian architecture (such as Sun work stations). If the program has
1689been compiled on a little-endian architecture, the value will be unchanged.
1690
1691Use these macros to read data from and write data to a file that stores
1692data in little endian (Intel i386) format.
1693
1694\membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
1695
1696\func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
1697
1698\func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
1699
1700\func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
1701
1702\func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
1703
1704This macro will swap the bytes of the {\it value} variable from little
1705endian to big endian or vice versa if the program is compiled on a
1706little-endian architecture (such as Intel PCs). If the program has
1707been compiled on a big-endian architecture, the value will be unchanged.
1708
1709Use these macros to read data from and write data to a file that stores
1710data in big endian format.
1711
a660d684
KB
1712\membersection{CLASSINFO}\label{classinfo}
1713
1714\func{wxClassInfo *}{CLASSINFO}{className}
1715
1716Returns a pointer to the wxClassInfo object associated with this class.
1717
954b8ae6
JS
1718\wxheading{Include files}
1719
1720<wx/object.h>
1721
a660d684
KB
1722\membersection{DECLARE\_ABSTRACT\_CLASS}
1723
1724\func{}{DECLARE\_ABSTRACT\_CLASS}{className}
1725
1726Used inside a class declaration to declare that the class should be
1727made known to the class hierarchy, but objects of this class cannot be created
1728dynamically. The same as DECLARE\_CLASS.
1729
1730Example:
1731
1732\begin{verbatim}
1733class wxCommand: public wxObject
1734{
1735 DECLARE_ABSTRACT_CLASS(wxCommand)
1736
1737 private:
1738 ...
1739 public:
1740 ...
1741};
1742\end{verbatim}
1743
954b8ae6
JS
1744\wxheading{Include files}
1745
1746<wx/object.h>
1747
a660d684
KB
1748\membersection{DECLARE\_APP}\label{declareapp}
1749
1750\func{}{DECLARE\_APP}{className}
1751
1752This is used in headers to create a forward declaration of the wxGetApp function implemented
1753by IMPLEMENT\_APP. It creates the declaration {\tt className\& wxGetApp(void)}.
1754
1755Example:
1756
1757\begin{verbatim}
1758 DECLARE_APP(MyApp)
1759\end{verbatim}
1760
954b8ae6
JS
1761\wxheading{Include files}
1762
1763<wx/app.h>
1764
a660d684
KB
1765\membersection{DECLARE\_CLASS}
1766
1767\func{}{DECLARE\_CLASS}{className}
1768
1769Used inside a class declaration to declare that the class should be
1770made known to the class hierarchy, but objects of this class cannot be created
1771dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
1772
954b8ae6
JS
1773\wxheading{Include files}
1774
1775<wx/object.h>
1776
a660d684
KB
1777\membersection{DECLARE\_DYNAMIC\_CLASS}
1778
1779\func{}{DECLARE\_DYNAMIC\_CLASS}{className}
1780
1781Used inside a class declaration to declare that the objects of this class should be dynamically
1782createable from run-time type information.
1783
1784Example:
1785
1786\begin{verbatim}
1787class wxFrame: public wxWindow
1788{
1789 DECLARE_DYNAMIC_CLASS(wxFrame)
1790
1791 private:
1792 const wxString\& frameTitle;
1793 public:
1794 ...
1795};
1796\end{verbatim}
1797
954b8ae6
JS
1798\wxheading{Include files}
1799
1800<wx/object.h>
1801
a660d684
KB
1802\membersection{IMPLEMENT\_ABSTRACT\_CLASS}
1803
1804\func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
1805
1806Used in a C++ implementation file to complete the declaration of
1807a class that has run-time type information. The same as IMPLEMENT\_CLASS.
1808
1809Example:
1810
1811\begin{verbatim}
1812IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
1813
1814wxCommand::wxCommand(void)
1815{
1816...
1817}
1818\end{verbatim}
1819
954b8ae6
JS
1820\wxheading{Include files}
1821
1822<wx/object.h>
1823
a660d684
KB
1824\membersection{IMPLEMENT\_ABSTRACT\_CLASS2}
1825
1826\func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
1827
1828Used in a C++ implementation file to complete the declaration of
1829a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
1830
954b8ae6
JS
1831\wxheading{Include files}
1832
1833<wx/object.h>
1834
a660d684
KB
1835\membersection{IMPLEMENT\_APP}\label{implementapp}
1836
1837\func{}{IMPLEMENT\_APP}{className}
1838
1839This is used in the application class implementation file to make the application class known to
1840wxWindows for dynamic construction. You use this instead of
1841
1842Old form:
1843
1844\begin{verbatim}
1845 MyApp myApp;
1846\end{verbatim}
1847
1848New form:
1849
1850\begin{verbatim}
1851 IMPLEMENT_APP(MyApp)
1852\end{verbatim}
1853
1854See also \helpref{DECLARE\_APP}{declareapp}.
1855
954b8ae6
JS
1856\wxheading{Include files}
1857
1858<wx/app.h>
1859
a660d684
KB
1860\membersection{IMPLEMENT\_CLASS}
1861
1862\func{}{IMPLEMENT\_CLASS}{className, baseClassName}
1863
1864Used in a C++ implementation file to complete the declaration of
1865a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
1866
954b8ae6
JS
1867\wxheading{Include files}
1868
1869<wx/object.h>
1870
a660d684
KB
1871\membersection{IMPLEMENT\_CLASS2}
1872
1873\func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
1874
1875Used in a C++ implementation file to complete the declaration of a
1876class that has run-time type information and two base classes. The
1877same as IMPLEMENT\_ABSTRACT\_CLASS2.
1878
954b8ae6
JS
1879\wxheading{Include files}
1880
1881<wx/object.h>
1882
a660d684
KB
1883\membersection{IMPLEMENT\_DYNAMIC\_CLASS}
1884
1885\func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
1886
1887Used in a C++ implementation file to complete the declaration of
1888a class that has run-time type information, and whose instances
1889can be created dynamically.
1890
1891Example:
1892
1893\begin{verbatim}
1894IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
1895
1896wxFrame::wxFrame(void)
1897{
1898...
1899}
1900\end{verbatim}
1901
954b8ae6
JS
1902\wxheading{Include files}
1903
1904<wx/object.h>
1905
a660d684
KB
1906\membersection{IMPLEMENT\_DYNAMIC\_CLASS2}
1907
1908\func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
1909
1910Used in a C++ implementation file to complete the declaration of
1911a class that has run-time type information, and whose instances
1912can be created dynamically. Use this for classes derived from two
1913base classes.
1914
954b8ae6
JS
1915\wxheading{Include files}
1916
1917<wx/object.h>
1918
34636400
VZ
1919\membersection{WXDEBUG\_NEW}\label{debugnew}
1920
1921\func{}{WXDEBUG\_NEW}{arg}
1922
1923This is defined in debug mode to be call the redefined new operator
1924with filename and line number arguments. The definition is:
1925
1926\begin{verbatim}
1927#define WXDEBUG_NEW new(__FILE__,__LINE__)
1928\end{verbatim}
1929
1930In non-debug mode, this is defined as the normal new operator.
1931
1932\wxheading{Include files}
1933
1934<wx/object.h>
1935
1936\membersection{wxDynamicCast}\label{wxdynamiccast}
1937
1938\func{}{wxDynamicCast}{ptr, classname}
1939
1940This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
1941the pointer is of this type (the check is done during the run-time) or NULL
1942otherwise. Usage of this macro is prefered over obsoleted wxObject::IsKindOf()
1943function.
1944
1945The {\it ptr} argument may be NULL, in which case NULL will be returned.
1946
1947Example:
1948
1949\begin{verbatim}
1950 wxWindow *win = wxWindow::FindFocus();
1951 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
1952 if ( text )
1953 {
1954 // a text control has the focus...
1955 }
1956 else
1957 {
1958 // no window has the focus or it's not a text control
1959 }
1960\end{verbatim}
1961
1962\wxheading{See also}
1963
1964\helpref{RTTI overview}{runtimeclassoverview}
1965
a660d684
KB
1966\membersection{WXTRACE}\label{trace}
1967
34636400
VZ
1968\wxheading{Include files}
1969
1970<wx/object.h>
1971
a660d684
KB
1972\func{}{WXTRACE}{formatString, ...}
1973
1974Calls wxTrace with printf-style variable argument syntax. Output
1975is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1976
6fb26ea3
JS
1977This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1978
954b8ae6
JS
1979\wxheading{Include files}
1980
1981<wx/memory.h>
1982
a660d684
KB
1983\membersection{WXTRACELEVEL}\label{tracelevel}
1984
1985\func{}{WXTRACELEVEL}{level, formatString, ...}
1986
1987Calls wxTraceLevel with printf-style variable argument syntax. Output
1988is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1989The first argument should be the level at which this information is appropriate.
1990It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
1991this value.
1992
6fb26ea3
JS
1993This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1994
954b8ae6
JS
1995\wxheading{Include files}
1996
1997<wx/memory.h>
1998
a660d684
KB
1999\section{wxWindows resource functions}\label{resourcefuncs}
2000
2001\overview{wxWindows resource system}{resourceformats}
2002
2003This section details functions for manipulating wxWindows (.WXR) resource
2004files and loading user interface elements from resources.
2005
2006\normalbox{Please note that this use of the word `resource' is different from that used when talking
2007about initialisation file resource reading and writing, using such functions
2008as wxWriteResource and wxGetResource. It's just an unfortunate clash of terminology.}
2009
2010\helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
2011
2012See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
2013loading from resource data.
2014
954b8ae6
JS
2015{\bf Warning:} this needs updating for wxWindows 2.
2016
a660d684
KB
2017\membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
2018
2019\func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
2020
2021Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
2022\verb$#$defining a name to an integer). Unlikely to be used by an application except
2023perhaps for implementing resource functionality for interpreted languages.
2024
2025\membersection{::wxResourceClear}
2026
2027\func{void}{wxResourceClear}{\void}
2028
2029Clears the wxWindows resource table.
2030
2031\membersection{::wxResourceCreateBitmap}
2032
2033\func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
2034
2035Creates a new bitmap from a file, static data, or Windows resource, given a valid
2036wxWindows bitmap resource identifier. For example, if the .WXR file contains
2037the following:
2038
2039\begin{verbatim}
2040static const wxString\& aiai_resource = "bitmap(name = 'aiai_resource',\
2041 bitmap = ['aiai', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
2042 bitmap = ['aiai.xpm', wxBITMAP_TYPE_XPM, 'X']).";
2043\end{verbatim}
2044
2045then this function can be called as follows:
2046
2047\begin{verbatim}
2048 wxBitmap *bitmap = wxResourceCreateBitmap("aiai_resource");
2049\end{verbatim}
2050
2051\membersection{::wxResourceCreateIcon}
2052
2053\func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
2054
2055Creates a new icon from a file, static data, or Windows resource, given a valid
2056wxWindows icon resource identifier. For example, if the .WXR file contains
2057the following:
2058
2059\begin{verbatim}
2060static const wxString\& aiai_resource = "icon(name = 'aiai_resource',\
2061 icon = ['aiai', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
2062 icon = ['aiai', wxBITMAP_TYPE_XBM_DATA, 'X']).";
2063\end{verbatim}
2064
2065then this function can be called as follows:
2066
2067\begin{verbatim}
2068 wxIcon *icon = wxResourceCreateIcon("aiai_resource");
2069\end{verbatim}
2070
2071\membersection{::wxResourceCreateMenuBar}
2072
2073\func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
2074
2075Creates a new menu bar given a valid wxWindows menubar resource
2076identifier. For example, if the .WXR file contains the following:
2077
2078\begin{verbatim}
2079static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
2080 menu = \
2081 [\
2082 ['&File', 1, '', \
2083 ['&Open File', 2, 'Open a file'],\
2084 ['&Save File', 3, 'Save a file'],\
2085 [],\
2086 ['E&xit', 4, 'Exit program']\
2087 ],\
2088 ['&Help', 5, '', \
2089 ['&About', 6, 'About this program']\
2090 ]\
2091 ]).";
2092\end{verbatim}
2093
2094then this function can be called as follows:
2095
2096\begin{verbatim}
2097 wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
2098\end{verbatim}
2099
2100
2101\membersection{::wxResourceGetIdentifier}
2102
2103\func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
2104
2105Used for retrieving the integer value associated with an identifier.
2106A zero value indicates that the identifier was not found.
2107
2108See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
2109
2110\membersection{::wxResourceParseData}\label{wxresourcedata}
2111
2112\func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
2113
2114Parses a string containing one or more wxWindows resource objects. If
2115the resource objects are global static data that are included into the
2116C++ program, then this function must be called for each variable
2117containing the resource data, to make it known to wxWindows.
2118
2119{\it resource} should contain data in the following form:
2120
2121\begin{verbatim}
2122dialog(name = 'dialog1',
2123 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
2124 title = 'Test dialog box',
2125 x = 312, y = 234, width = 400, height = 300,
2126 modal = 0,
2127 control = [wxGroupBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
2128 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
2129 control = [wxMultiText, 'Multitext', 'wxVERTICAL_LABEL', 'multitext3',
2130 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
2131 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
2132 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
2133\end{verbatim}
2134
2135This function will typically be used after including a {\tt .wxr} file into
2136a C++ program as follows:
2137
2138\begin{verbatim}
2139#include "dialog1.wxr"
2140\end{verbatim}
2141
2142Each of the contained resources will declare a new C++ variable, and each
2143of these variables should be passed to wxResourceParseData.
2144
2145\membersection{::wxResourceParseFile}
2146
2147\func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
2148
2149Parses a file containing one or more wxWindows resource objects
2150in C++-compatible syntax. Use this function to dynamically load
2151wxWindows resource data.
2152
2153\membersection{::wxResourceParseString}\label{wxresourceparsestring}
2154
2155\func{bool}{wxResourceParseString}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
2156
2157Parses a string containing one or more wxWindows resource objects. If
2158the resource objects are global static data that are included into the
2159C++ program, then this function must be called for each variable
2160containing the resource data, to make it known to wxWindows.
2161
2162{\it resource} should contain data with the following form:
2163
2164\begin{verbatim}
2165static const wxString\& dialog1 = "dialog(name = 'dialog1',\
2166 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',\
2167 title = 'Test dialog box',\
2168 x = 312, y = 234, width = 400, height = 300,\
2169 modal = 0,\
2170 control = [wxGroupBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,\
2171 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\
2172 control = [wxMultiText, 'Multitext', 'wxVERTICAL_LABEL', 'multitext3',\
2173 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',\
2174 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],\
2175 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).";
2176\end{verbatim}
2177
2178This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
2179load an entire {\tt .wxr file} into a string.
2180
2181\membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
2182
2183\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{const wxString\& }{xbm\_data}, \param{int }{width},
2184\param{int }{height}, \param{wxResourceTable *}{table = NULL}}
2185
2186\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{const wxString\& *}{xpm\_data}}
2187
2188Makes \verb$#$included XBM or XPM bitmap data known to the wxWindows resource system.
2189This is required if other resources will use the bitmap data, since otherwise there
2190is no connection between names used in resources, and the global bitmap data.
2191
2192\membersection{::wxResourceRegisterIconData}
2193
2194Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
2195
6fb26ea3
JS
2196\section{Log functions}\label{logfunctions}
2197
2198These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
2199further information.
2200
954b8ae6
JS
2201\wxheading{Include files}
2202
2203<wx/log.h>
2204
6fb26ea3
JS
2205\membersection{::wxLogError}\label{wxlogerror}
2206
2207\func{void}{wxLogError}{\param{const char*}{ formatString}, \param{...}{}}
2208
2209The function to use for error messages, i.e. the
2210messages that must be shown to the user. The default processing is to pop up a
2211message box to inform the user about it.
2212
2213\membersection{::wxLogFatalError}\label{wxlogfatalerror}
2214
2215\func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{...}{}}
2216
2217Like \helpref{wxLogError}{wxlogerror}, but also
2218terminates the program with the exit code 3. Using {\it abort()} standard
2219function also terminates the program with this exit code.
2220
2221\membersection{::wxLogWarning}\label{wxlogwarning}
2222
2223\func{void}{wxLogWarning}{\param{const char*}{ formatString}, \param{...}{}}
2224
2225For warnings - they are also normally shown to the
2226user, but don't interrupt the program work.
2227
2228\membersection{::wxLogMessage}\label{wxlogmessage}
2229
2230\func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{...}{}}
2231
2232for all normal, informational messages. They also
2233appear in a message box by default (but it can be changed). Notice
2234that the standard behaviour is to not show informational messages if there are
2235any errors later - the logic being that the later error messages make the
2236informational messages preceding them meaningless.
2237
2238\membersection{::wxLogVerbose}\label{wxlogverbose}
2239
2240\func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{...}{}}
2241
2242For verbose output. Normally, it's suppressed, but
2243might be activated if the user wishes to know more details about the program
2244progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
2245
2246\membersection{::wxLogStatus}\label{wxlogstatus}
2247
2248\func{void}{wxLogStatus}{\param{const char*}{ formatString}, \param{...}{}}
2249
2250For status messages - they will go into the status
2251bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one.
2252
2253\membersection{::wxLogSysError}\label{wxlogsyserror}
2254
2255\func{void}{wxLogSysError}{\param{const char*}{ formatString}, \param{...}{}}
2256
2257Mostly used by wxWindows itself, but might be
2258handy for logging errors after system call (API function) failure. It logs the
2259specified message text as well as the last system error code ({\it errno} or {\it ::GetLastError()} depending
2260on the platform) and the corresponding error
2261message. The second form of this function takes the error code explitly as the
2262first argument.
2263
2264\membersection{::wxLogDebug}\label{wxlogdebug}
2265
2266\func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{...}{}}
2267
2268The right function for debug output. It only
2269does anything at all in the debug mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined)
2270and expands to nothing in release mode (otherwise).
2271
2272\membersection{::wxLogTrace}\label{wxlogtrace}
2273
2274\func{void}{wxLogTrace}{\param{const char*}{ formatString}, \param{...}{}}
2275
2276\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char*}{ formatString}, \param{...}{}}
2277
2278As {\bf wxLogDebug}, only does something in debug
2279build. The reason for making it a separate function from it is that usually
2280there are a lot of trace messages, so it might make sense to separate them
2281from other debug messages which would be flooded in them. Moreover, the second
2282version of this function takes a trace mask as the first argument which allows
2283to further restrict the amount of messages generated. The value of {\it mask} can be:
2284
2285\begin{itemize}\itemsep=0pt
2286\item wxTraceMemAlloc: trace memory allocation (new/delete)
2287\item wxTraceMessages: trace window messages/X callbacks
2288\item wxTraceResAlloc: trace GDI resource allocation
2289\item wxTraceRefCount: trace various ref counting operations
2290\end{itemize}
2291
2292\section{Debugging macros and functions}\label{debugmacros}
2293
2294Useful macros and functins for error checking and defensive programming. ASSERTs are only
2295compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release
2296builds.
2297
954b8ae6
JS
2298\wxheading{Include files}
2299
2300<wx/debug.h>
2301
6fb26ea3
JS
2302\membersection{::wxOnAssert}\label{wxonassert}
2303
2304\func{void}{wxOnAssert}{\param{const char*}{ fileName}, \param{int}{ lineNumber}, \param{const char*}{ msg = NULL}}
2305
2306This function may be redefined to do something non trivial and is called
2307whenever one of debugging macros fails (i.e. condition is false in an
5b6aa0ff
JS
2308assertion).
2309% TODO: this should probably be an overridable in wxApp.
6fb26ea3
JS
2310
2311\membersection{wxASSERT}\label{wxassert}
2312
2313\func{}{wxASSERT}{\param{}{condition}}
2314
b207457c
VZ
2315Assert macro. An error message will be generated if the condition is FALSE in
2316debug mode, but nothing will be done in the release build.
2317
2318Please note that the condition in wxASSERT() should have no side effects
2319because it will not be executed in release mode at all.
2320
2321See also: \helpref{wxASSERT\_MSG}{wxassertmsg}
6fb26ea3
JS
2322
2323\membersection{wxASSERT\_MSG}\label{wxassertmsg}
2324
2325\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
2326
2327Assert macro with message. An error message will be generated if the condition is FALSE.
2328
b207457c
VZ
2329See also: \helpref{wxASSERT}{wxassert}
2330
6fb26ea3
JS
2331\membersection{wxFAIL}\label{wxfail}
2332
b207457c 2333\func{}{wxFAIL}{\void}
6fb26ea3
JS
2334
2335Will always generate an assert error if this code is reached (in debug mode).
2336
b207457c
VZ
2337See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
2338
6fb26ea3
JS
2339\membersection{wxFAIL\_MSG}\label{wxfailmsg}
2340
b207457c 2341\func{}{wxFAIL\_MSG}{\param{}{msg}}
6fb26ea3
JS
2342
2343Will always generate an assert error with specified message if this code is reached (in debug mode).
2344
b207457c
VZ
2345This macro is useful for marking unreachable" code areas, for example
2346it may be used in the "default:" branch of a switch statement if all possible
2347cases are processed above.
2348
2349See also: \helpref{wxFAIL}{wxfail}
2350
6fb26ea3
JS
2351\membersection{wxCHECK}\label{wxcheck}
2352
2353\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
2354
2355Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
2356This check is done even in release mode.
2357
2358\membersection{wxCHECK\_MSG}\label{wxcheckmsg}
2359
2360\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
2361
2362Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
2363This check is done even in release mode.
2364
b207457c
VZ
2365This macro may be only used in non void functions, see also
2366\helpref{wxCHECK\_RET}{wxcheckret}.
2367
2368\membersection{wxCHECK\_RET}\label{wxcheckret}
2369
2370\func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
2371
2372Checks that the condition is true, and returns if not (FAILs with given error
2373message in debug mode). This check is done even in release mode.
2374
2375This macro should be used in void functions instead of
2376\helpref{wxCHECK\_MSG}{wxcheckmsg}.
2377
2378\membersection{wxCHECK2}\label{wxcheck2}
2379
2380\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
2381
2382Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
2383{\it operation} if it is not. This is a generalisation of
2384\helpref{wxCHECK}{wxcheck} and may be used when something else than just
2385returning from the function must be done when the {\it condition} is false.
2386
2387This check is done even in release mode.
2388
2389\membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
2390
2391\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
2392
2393This is the same as \helpref{wxCHECK2}{wxcheck2}, but
2394\helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
2395instead of wxFAIL() if the {\it condition} is false.
2396