EMX compilation,
[wxWidgets.git] / docs / latex / wx / function.tex
1 \chapter{Functions}\label{functions}
2 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
3 \setfooter{\thepage}{}{}{}{}{\thepage}
4
5 The functions defined in wxWindows are described here.
6
7 \section{File functions}\label{filefunctions}
8
9 \wxheading{Include files}
10
11 <wx/utils.h>
12
13 \wxheading{See also}
14
15 \helpref{wxPathList}{wxpathlist}
16
17 \membersection{::wxDirExists}
18
19 \func{bool}{wxDirExists}{\param{const wxString\& }{dirname}}
20
21 Returns TRUE if the directory exists.
22
23 \membersection{::wxDos2UnixFilename}
24
25 \func{void}{Dos2UnixFilename}{\param{const wxString\& }{s}}
26
27 Converts a DOS to a Unix filename by replacing backslashes with forward
28 slashes.
29
30 \membersection{::wxFileExists}
31
32 \func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
33
34 Returns TRUE if the file exists.
35
36 \membersection{::wxFileNameFromPath}
37
38 \func{wxString}{wxFileNameFromPath}{\param{const wxString\& }{path}}
39
40 \func{char*}{wxFileNameFromPath}{\param{char* }{path}}
41
42 Returns the filename for a full path. The second form returns a pointer to
43 temporary storage that should not be deallocated.
44
45 \membersection{::wxFindFirstFile}\label{wxfindfirstfile}
46
47 \func{wxString}{wxFindFirstFile}{\param{const char*}{spec}, \param{int}{ flags = 0}}
48
49 This function does directory searching; returns the first file
50 that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to
51 get the next matching file.
52
53 {\it spec} may contain wildcards.
54
55 {\it flags} is reserved for future use.
56
57 For example:
58
59 \begin{verbatim}
60 wxString f = wxFindFirstFile("/home/project/*.*");
61 while ( !f.IsEmpty() )
62 {
63 ...
64 f = wxFindNextFile();
65 }
66 \end{verbatim}
67
68 \membersection{::wxFindNextFile}\label{wxfindnextfile}
69
70 \func{wxString}{wxFindNextFile}{\void}
71
72 Returns the next file that matches the path passed to \helpref{wxFindFirstFile}{wxfindfirstfile}.
73
74 See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example.
75
76 \membersection{::wxGetOSDirectory}\label{wxgetosdirectory}
77
78 \func{wxString}{wxGetOSDirectory}{\void}
79
80 Returns the Windows directory under Windows; on other platforms returns the empty string.
81
82 \membersection{::wxIsAbsolutePath}
83
84 \func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}}
85
86 Returns TRUE if the argument is an absolute filename, i.e. with a slash
87 or drive name at the beginning.
88
89 \membersection{::wxPathOnly}
90
91 \func{wxString}{wxPathOnly}{\param{const wxString\& }{path}}
92
93 Returns the directory part of the filename.
94
95 \membersection{::wxUnix2DosFilename}
96
97 \func{void}{wxUnix2DosFilename}{\param{const wxString\& }{s}}
98
99 Converts a Unix to a DOS filename by replacing forward
100 slashes 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
107 Concatenates {\it file1} and {\it file2} to {\it file3}, returning
108 TRUE if successful.
109
110 \membersection{::wxCopyFile}
111
112 \func{bool}{wxCopyFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
113
114 Copies {\it file1} to {\it file2}, returning TRUE if successful.
115
116 \membersection{::wxGetCwd}\label{wxgetcwd}
117
118 \func{wxString}{wxGetCwd}{\void}
119
120 Returns a string containing the current (or working) directory.
121
122 \membersection{::wxGetWorkingDirectory}
123
124 \func{wxString}{wxGetWorkingDirectory}{\param{char*}{buf=NULL}, \param{int }{sz=1000}}
125
126 This function is obsolete: use \helpref{wxGetCwd}{wxgetcwd} instead.
127
128 Copies the current working directory into the buffer if supplied, or
129 copies the working directory into new storage (which you must delete yourself)
130 if the buffer is NULL.
131
132 {\it sz} is the size of the buffer if supplied.
133
134 \membersection{::wxGetTempFileName}
135
136 \func{char*}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{char* }{buf=NULL}}
137
138 Makes a temporary filename based on {\it prefix}, opens and closes the file,
139 and places the name in {\it buf}. If {\it buf} is NULL, new store
140 is allocated for the temporary filename using {\it new}.
141
142 Under Windows, the filename will include the drive and name of the
143 directory allocated for temporary files (usually the contents of the
144 TEMP variable). Under Unix, the {\tt /tmp} directory is used.
145
146 It 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
152 Returns 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
158 Returns TRUE if the {\it pattern}\/ matches the {\it text}\/; if {\it
159 dot\_special}\/ is TRUE, filenames beginning with a dot are not matched
160 with wildcard characters. See \helpref{wxIsWild}{wxiswild}.
161
162 \membersection{::wxMkdir}
163
164 \func{bool}{wxMkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}}
165
166 Makes the directory {\it dir}, returning TRUE if successful.
167
168 {\it perm} is the access mask for the directory for the systems on which it is
169 supported (Unix) and doesn't have effect for the other ones.
170
171 \membersection{::wxRemoveFile}
172
173 \func{bool}{wxRemoveFile}{\param{const wxString\& }{file}}
174
175 Removes {\it file}, returning TRUE if successful.
176
177 \membersection{::wxRenameFile}
178
179 \func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
180
181 Renames {\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
187 Removes the directory {\it dir}, returning TRUE if successful. Does not work under VMS.
188
189 The {\it flags} parameter is reserved for future use.
190
191 \membersection{::wxSetWorkingDirectory}
192
193 \func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}}
194
195 Sets the current working directory, returning TRUE if the operation succeeded.
196 Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification.
197
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
202 This function splits a full file name into components: the path (including possible disk/drive
203 specification 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
205 a particular component.
206
207 wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under
208 Windows, however it will not consider backslashes as path separators under Unix (where backslash
209 is a valid character in a filename).
210
211 On entry, {\it fullname} should be non NULL (it may be empty though).
212
213 On return, {\it path} contains the file path (without the trailing separator), {\it name}
214 contains the file name and {\it ext} contains the file extension without leading dot. All
215 three of them may be empty if the corresponding component is. The old contents of the
216 strings pointed to by these parameters will be overwritten in any case (if the pointers
217 are not NULL).
218
219 \membersection{::wxTransferFileToStream}\label{wxtransferfiletostream}
220
221 \func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}}
222
223 Copies the given file to {\it stream}. Useful when converting an old application to
224 use streams (within the document/view framework, for example).
225
226 Use 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
232 Copies the given stream to the file {\it filename}. Useful when converting an old application to
233 use streams (within the document/view framework, for example).
234
235 Use of this function requires the file wx\_doc.h to be included.
236
237 \section{Network functions}\label{networkfunctions}
238
239 \membersection{::wxGetFullHostName}\label{wxgetfullhostname}
240
241 \func{wxString}{wxGetFullHostName}{\void}
242
243 Returns the FQDN (fully qualified domain host name) or an empty string on
244 error.
245
246 See 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
256 Copies the user's email address into the supplied buffer, by
257 concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp
258 and \helpref{wxGetUserId}{wxgetuserid}.
259
260 Returns 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
271 Copies the current host machine's name into the supplied buffer. Please note
272 that the returned name is {\it not} fully qualified, i.e. it does not include
273 the domain name.
274
275 Under Windows or NT, this function first looks in the environment
276 variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp
277 in the {\bf wxWindows} section of the WIN.INI file is tried.
278
279 The first variant of this function returns the hostname if successful or an
280 empty string otherwise. The second (deprecated) function returns TRUE
281 if successful, FALSE otherwise.
282
283 See 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
296 This function returns the "user id" also known as "login name" under Unix i.e.
297 something like "jsmith". It uniquely identifies the current user (on this system).
298
299 Under Windows or NT, this function first looks in the environment
300 variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp
301 in the {\bf wxWindows} section of the WIN.INI file is tried.
302
303 The first variant of this function returns the login name if successful or an
304 empty string otherwise. The second (deprecated) function returns TRUE
305 if successful, FALSE otherwise.
306
307 See 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
318 This function returns the full user name (something like "Mr. John Smith").
319
320 Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp
321 in the {\bf wxWindows} section of the WIN.INI file. If PenWindows
322 is running, the entry {\bf Current} in the section {\bf User} of
323 the PENWIN.INI file is used.
324
325 The first variant of this function returns the user name if successful or an
326 empty string otherwise. The second (deprecated) function returns TRUE
327 if successful, FALSE otherwise.
328
329 See also: \helpref{wxGetUserId}{wxgetuserid}
330
331 \wxheading{Include files}
332
333 <wx/utils.h>
334
335 \section{String functions}
336
337 \membersection{::copystring}
338
339 \func{char*}{copystring}{\param{const char* }{s}}
340
341 Makes a copy of the string {\it s} using the C++ new operator, so it can be
342 deleted 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
349 Returns TRUE if the substring {\it s1} is found within {\it s2},
350 ignoring case if {\it exact} is FALSE. If {\it subString} is FALSE,
351 no substring matching is done.
352
353 \membersection{::wxStringEq}\label{wxstringeq}
354
355 \func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}}
356
357 A macro defined as:
358
359 \begin{verbatim}
360 #define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
361 \end{verbatim}
362
363 \membersection{::IsEmpty}\label{isempty}
364
365 \func{bool}{IsEmpty}{\param{const char *}{ p}}
366
367 Returns TRUE if the string is empty, FALSE otherwise. It is safe to pass NULL
368 pointer to this function and it will return TRUE for it.
369
370 \membersection{::Stricmp}\label{stricmp}
371
372 \func{int}{Stricmp}{\param{const char *}{p1}, \param{const char *}{p2}}
373
374 Returns a negative value, 0, or positive value if {\it p1} is less than, equal
375 to or greater than {\it p2}. The comparison is case-insensitive.
376
377 This function complements the standard C function {\it strcmp()} which performs
378 case-sensitive comparison.
379
380 \membersection{::Strlen}\label{strlen}
381
382 \func{size\_t}{Strlen}{\param{const char *}{ p}}
383
384 This is a safe version of standard function {\it strlen()}: it does exactly the
385 same 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
392 This 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
394 message catalogs (see \helpref{i18n overview}{internationalization}), the
395 original string is returned. In debug build, an error message is logged - this
396 should help to find the strings which were not yet translated. As this function
397 is used very often, an alternative syntax is provided: the \_() macro is
398 defined as wxGetTranslation().
399
400 \section{Dialog functions}\label{dialogfunctions}
401
402 Below are a number of convenience functions for getting input from the
403 user or displaying messages. Note that in these functions the last three
404 parameters are optional. However, it is recommended to pass a parent frame
405 parameter, or (in MS Windows or Motif) the wrong window frame may be brought to
406 the front when the dialog box is popped up.
407
408 \membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider}
409
410 \func{wxTipProvider *}{wxCreateFileTipProvider}{
411 \param{const wxString\& }{filename},
412 \param{size\_t }{currentTip}}
413
414 This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be
415 used 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
429 \membersection{::wxFileSelector}\label{wxfileselector}
430
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 = ""},\\
434 \param{int}{ x = -1}, \param{int}{ y = -1}}
435
436 Pops up a file selector box. In Windows, this is the common file selector
437 dialog. In X, this is a file selector box with somewhat less functionality.
438 The path and filename are distinct elements of a full file pathname.
439 If path is empty, the current directory will be used. If filename is empty,
440 no default filename will be supplied. The wildcard determines what files
441 are displayed in the file selector, and file extension supplies a type
442 extension for the required filename. Flags may be a combination of wxOPEN,
443 wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0.
444
445 Both the Unix and Windows versions implement a wildcard filter. Typing a
446 filename containing wildcards (*, ?) in the filename text item, and
447 clicking on Ok, will result in only those files matching the pattern being
448 displayed.
449
450 The wildcard may be a specification for multiple types of file
451 with a description for each, such as:
452
453 \begin{verbatim}
454 "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
455 \end{verbatim}
456
457 The application must check for an empty return value (the user pressed
458 Cancel). For example:
459
460 \begin{verbatim}
461 const wxString& s = wxFileSelector("Choose a file to open");
462 if (s)
463 {
464 ...
465 }
466 \end{verbatim}
467
468 \wxheading{Include files}
469
470 <wx/filedlg.h>
471
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
484 Shows 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
486 single line {\it prompt} and the zone for entering the number.
487
488 The number entered must be in the range {\it min}..{\it max} (both of which
489 should be positive) and {\it value} is the initial value of it. If the user
490 enters an invalid value or cancels the dialog, the function will return -1.
491
492 Dialog 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
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
505 Pop 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,
507 or press Cancel to return the empty string.
508
509 If {\it centre} is TRUE, the message text (which may include new line characters)
510 is centred; if FALSE, the message is left-justified.
511
512 \wxheading{Include files}
513
514 <wx/textdlg.h>
515
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
523 Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
524 listbox. The user may choose one or more item(s) and press OK or Cancel.
525
526 The number of initially selected choices, and array of the selected indices,
527 are passed in; this array will contain the user selections on exit, with
528 the function returning the number of selections. {\it selection} must be
529 as big as the number of choices, in case all are selected.
530
531 If Cancel is pressed, -1 is returned.
532
533 {\it choices} is an array of {\it n} strings for the listbox.
534
535 If {\it centre} is TRUE, the message text (which may include new line characters)
536 is centred; if FALSE, the message is left-justified.
537
538 \wxheading{Include files}
539
540 <wx/choicdlg.h>
541
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
548 Pops up a dialog box containing a message, OK/Cancel buttons and a single-selection
549 listbox. The user may choose an item and press OK to return a string or
550 Cancel to return the empty string.
551
552 {\it choices} is an array of {\it n} strings for the listbox.
553
554 If {\it centre} is TRUE, the message text (which may include new line characters)
555 is centred; if FALSE, the message is left-justified.
556
557 \wxheading{Include files}
558
559 <wx/choicdlg.h>
560
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
567 As {\bf wxGetSingleChoice} but returns the index representing the selected string.
568 If the user pressed cancel, -1 is returned.
569
570 \wxheading{Include files}
571
572 <wx/choicdlg.h>
573
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
580 As {\bf wxGetSingleChoice} but takes an array of client data pointers
581 corresponding to the strings, and returns one of these pointers.
582
583 \wxheading{Include files}
584
585 <wx/choicdlg.h>
586
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
592 General purpose message dialog. {\it style} may be a bit list of the
593 following identifiers:
594
595 \begin{twocollist}\itemsep=0pt
596 \twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
597 wxCANCEL.}
598 \twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
599 wxYES\_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
608 The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
609
610 For 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
622 message will be split into separate lines, to cater for large messages.
623
624 Under Windows, the native MessageBox function is used unless wxCENTRE
625 is specified in the style, in which case a generic function is used.
626 This is because the native MessageBox function cannot centre text.
627 The symbols are not shown when the generic function is used.
628
629 \wxheading{Include files}
630
631 <wx/msgdlg.h>
632
633 \membersection{::wxShowTip}\label{wxshowtip}
634
635 \func{bool}{wxShowTip}{
636 \param{wxWindow *}{parent},
637 \param{wxTipProvider *}{tipProvider},
638 \param{bool }{showAtStartup = TRUE}}
639
640 This 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
660 \section{GDI functions}\label{gdifunctions}
661
662 The following are relevant to the GDI (Graphics Device Interface).
663
664 \wxheading{Include files}
665
666 <wx/gdicmn.h>
667
668 \membersection{::wxColourDisplay}
669
670 \func{bool}{wxColourDisplay}{\void}
671
672 Returns TRUE if the display is colour, FALSE otherwise.
673
674 \membersection{::wxDisplayDepth}
675
676 \func{int}{wxDisplayDepth}{\void}
677
678 Returns the depth of the display (a value of 1 denotes a monochrome display).
679
680 \membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
681
682 \func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
683 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
684
685 Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
686 makes it into a placeable metafile by prepending a header containing the given
687 bounding box. The bounding box may be obtained from a device context after drawing
688 into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
689
690 In addition to adding the placeable metafile header, this function adds
691 the 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
699 This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
700
701 Placeable metafiles may be imported by many Windows applications, and can be
702 used in RTF (Rich Text Format) files.
703
704 {\it scale} allows the specification of scale for the metafile.
705
706 This function is only available under Windows.
707
708 \membersection{::wxSetCursor}\label{wxsetcursor}
709
710 \func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
711
712 Globally sets the cursor; only has an effect in Windows and GTK.
713 See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
714
715 \section{Printer settings}\label{printersettings}
716
717 These routines are obsolete and should no longer be used!
718
719 The following functions are used to control PostScript printing. Under
720 Windows, PostScript output can only be sent to a file.
721
722 \wxheading{Include files}
723
724 <wx/dcps.h>
725
726 \membersection{::wxGetPrinterCommand}
727
728 \func{wxString}{wxGetPrinterCommand}{\void}
729
730 Gets the printer command used to print a file. The default is {\tt lpr}.
731
732 \membersection{::wxGetPrinterFile}
733
734 \func{wxString}{wxGetPrinterFile}{\void}
735
736 Gets the PostScript output filename.
737
738 \membersection{::wxGetPrinterMode}
739
740 \func{int}{wxGetPrinterMode}{\void}
741
742 Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
743 The default is PS\_PREVIEW.
744
745 \membersection{::wxGetPrinterOptions}
746
747 \func{wxString}{wxGetPrinterOptions}{\void}
748
749 Gets 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
755 Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
756
757 \membersection{::wxGetPrinterPreviewCommand}
758
759 \func{wxString}{wxGetPrinterPreviewCommand}{\void}
760
761 Gets 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
767 Gets 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
773 Gets 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
779 Sets 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
785 Sets the PostScript output filename.
786
787 \membersection{::wxSetPrinterMode}
788
789 \func{void}{wxSetPrinterMode}{\param{int }{mode}}
790
791 Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
792 The default is PS\_PREVIEW.
793
794 \membersection{::wxSetPrinterOptions}
795
796 \func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
797
798 Sets 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
804 Sets 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
810 Sets 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
816 Sets 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
822 Sets 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
826 These clipboard functions are implemented for Windows only.
827
828 \wxheading{Include files}
829
830 <wx/clipbrd.h>
831
832 \membersection{::wxClipboardOpen}
833
834 \func{bool}{wxClipboardOpen}{\void}
835
836 Returns TRUE if this application has already opened the clipboard.
837
838 \membersection{::wxCloseClipboard}
839
840 \func{bool}{wxCloseClipboard}{\void}
841
842 Closes the clipboard to allow other applications to use it.
843
844 \membersection{::wxEmptyClipboard}
845
846 \func{bool}{wxEmptyClipboard}{\void}
847
848 Empties the clipboard.
849
850 \membersection{::wxEnumClipboardFormats}
851
852 \func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
853
854 Enumerates the formats found in a list of available formats that belong
855 to the clipboard. Each call to this function specifies a known
856 available format; the function returns the format that appears next in
857 the list.
858
859 {\it dataFormat} specifies a known format. If this parameter is zero,
860 the function returns the first format in the list.
861
862 The return value specifies the next known clipboard data format if the
863 function is successful. It is zero if the {\it dataFormat} parameter specifies
864 the last format in the list of available formats, or if the clipboard
865 is not open.
866
867 Before it enumerates the formats function, an application must open the clipboard by using the
868 wxOpenClipboard function.
869
870 \membersection{::wxGetClipboardData}
871
872 \func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
873
874 Gets 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
883 The 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
889 Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
890 length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
891
892 \membersection{::wxIsClipboardFormatAvailable}
893
894 \func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
895
896 Returns TRUE if the given data format is available on the clipboard.
897
898 \membersection{::wxOpenClipboard}
899
900 \func{bool}{wxOpenClipboard}{\void}
901
902 Opens 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
908 Registers 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
914 Passes 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).
922 \item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
923 \end{itemize}
924
925 The clipboard must have previously been opened for this call to succeed.
926
927 \section{Miscellaneous functions}\label{miscellany}
928
929 \membersection{::wxNewId}
930
931 \func{long}{wxNewId}{\void}
932
933 Generates an integer identifier unique to this run of the program.
934
935 \wxheading{Include files}
936
937 <wx/utils.h>
938
939 \membersection{::wxRegisterId}
940
941 \func{void}{wxRegisterId}{\param{long}{ id}}
942
943 Ensures that ids subsequently generated by {\bf NewId} do not clash with
944 the given {\bf id}.
945
946 \wxheading{Include files}
947
948 <wx/utils.h>
949
950 \membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor}
951
952 \func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}}
953
954 Changes the cursor to the given cursor for all windows in the application.
955 Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back
956 to its previous state. These two calls can be nested, and a counter
957 ensures that only the outer calls take effect.
958
959 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
960
961 \wxheading{Include files}
962
963 <wx/utils.h>
964
965 \membersection{::wxBell}
966
967 \func{void}{wxBell}{\void}
968
969 Ring the system bell.
970
971 \wxheading{Include files}
972
973 <wx/utils.h>
974
975 \membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
976
977 \func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
978
979 Creates and returns an object of the given class, if the class has been
980 registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
981
982 \membersection{::wxDDECleanUp}\label{wxddecleanup}
983
984 \func{void}{wxDDECleanUp}{\void}
985
986 Called when wxWindows exits, to clean up the DDE system. This no longer needs to be
987 called by the application.
988
989 See also helpref{wxDDEInitialize}{wxddeinitialize}.
990
991 \wxheading{Include files}
992
993 <wx/dde.h>
994
995 \membersection{::wxDDEInitialize}\label{wxddeinitialize}
996
997 \func{void}{wxDDEInitialize}{\void}
998
999 Initializes the DDE system. May be called multiple times without harm.
1000
1001 This no longer needs to be called by the application: it will be called
1002 by wxWindows if necessary.
1003
1004 See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},
1005 \helpref{wxDDECleanUp}{wxddecleanup}.
1006
1007 \wxheading{Include files}
1008
1009 <wx/dde.h>
1010
1011 \membersection{::wxDebugMsg}\label{wxdebugmsg}
1012
1013 \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
1014
1015 Display a debugging message; under Windows, this will appear on the
1016 debugger command window, and under Unix, it will be written to standard
1017 error.
1018
1019 The syntax is identical to {\bf printf}: pass a format string and a
1020 variable list of arguments.
1021
1022 Note that under Windows, you can see the debugging messages without a
1023 debugger if you have the DBWIN debug log application that comes with
1024 Microsoft C++.
1025
1026 {\bf Tip:} under Windows, if your application crashes before the
1027 message appears in the debugging window, put a wxYield call after
1028 each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
1029 (at least for Watcom C++): preformat your messages and use OutputDebugString
1030 instead.
1031
1032 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1033
1034 \wxheading{Include files}
1035
1036 <wx/utils.h>
1037
1038 \membersection{::wxDisplaySize}
1039
1040 \func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
1041
1042 Gets the physical size of the display in pixels.
1043
1044 \wxheading{Include files}
1045
1046 <wx/gdicmn.h>
1047
1048 \membersection{::wxEntry}\label{wxentry}
1049
1050 This initializes wxWindows in a platform-dependent way. Use this if you
1051 are not using the default wxWindows entry code (e.g. main or WinMain). For example,
1052 you can initialize wxWindows from an Microsoft Foundation Classes application using
1053 this function.
1054
1055 \func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
1056 \param{const wxString\& }{commandLine}, \param{int}{ cmdShow}, \param{bool}{ enterLoop = TRUE}}
1057
1058 wxWindows initialization under Windows (non-DLL). If {\it enterLoop} is FALSE, the
1059 function will return immediately after calling wxApp::OnInit. Otherwise, the wxWindows
1060 message 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
1065 wxWindows initialization under Windows (for applications constructed as a DLL).
1066
1067 \func{int}{wxEntry}{\param{int}{ argc}, \param{const wxString\& *}{argv}}
1068
1069 wxWindows initialization under Unix.
1070
1071 \wxheading{Remarks}
1072
1073 To clean up wxWindows, call wxApp::OnExit followed by the static function
1074 wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWindows:
1075
1076 \begin{verbatim}
1077 int 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
1091 \membersection{::wxError}\label{wxerror}
1092
1093 \func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
1094
1095 Displays {\it msg} and continues. This writes to standard error under
1096 Unix, and pops up a message box under Windows. Used for internal
1097 wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
1098
1099 \wxheading{Include files}
1100
1101 <wx/utils.h>
1102
1103 \membersection{::wxEndBusyCursor}\label{wxendbusycursor}
1104
1105 \func{void}{wxEndBusyCursor}{\void}
1106
1107 Changes the cursor back to the original cursor, for all windows in the application.
1108 Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1109
1110 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1111
1112 \wxheading{Include files}
1113
1114 <wx/utils.h>
1115
1116 \membersection{::wxExecute}\label{wxexecute}
1117
1118 \func{long}{wxExecute}{\param{const wxString\& }{command}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}}
1119
1120 \func{long}{wxExecute}{\param{char **}{argv}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}}
1121
1122 Executes another program in Unix or Windows.
1123
1124 The first form takes a command string, such as {\tt "emacs file.txt"}.
1125
1126 The second form takes an array of values: a command, any number of
1127 arguments, terminated by NULL.
1128
1129 If {\it sync} is FALSE (the default), flow of control immediately returns.
1130 If TRUE, the current application waits until the other program has terminated.
1131
1132 In the case of synchronous execution, the return value is the exit code of
1133 the 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
1135 terminated successfully. Also, while waiting for the process to
1136 terminate, wxExecute will call \helpref{wxYield}{wxyield}. The caller
1137 should ensure that this can cause no recursion, in the simples case by
1138 calling \helpref{wxEnableTopLevelWindows(FALSE)}{wxenabletoplevelwindows}.
1139
1140 For asynchronous execution, however, the return value is the process id and
1141 zero value indicates that the command could not be executed.
1142
1143 If callback isn't NULL and if execution is asynchronous (note that callback
1144 parameter can not be non NULL for synchronous execution),
1145 \helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when
1146 the process finishes.
1147
1148 See also \helpref{wxShell}{wxshell}, \helpref{wxProcess}{wxprocess}.
1149
1150 \wxheading{Include files}
1151
1152 <wx/utils.h>
1153
1154 \membersection{::wxExit}\label{wxexit}
1155
1156 \func{void}{wxExit}{\void}
1157
1158 Exits application after calling \helpref{wxApp::OnExit}{wxapponexit}.
1159 Should only be used in an emergency: normally the top-level frame
1160 should be deleted (after deleting all other frames) to terminate the
1161 application. See \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} and \helpref{wxApp}{wxapp}.
1162
1163 \wxheading{Include files}
1164
1165 <wx/app.h>
1166
1167 \membersection{::wxFatalError}\label{wxfatalerror}
1168
1169 \func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
1170
1171 Displays {\it msg} and exits. This writes to standard error under Unix,
1172 and pops up a message box under Windows. Used for fatal internal
1173 wxWindows errors. See also \helpref{wxError}{wxerror}.
1174
1175 \wxheading{Include files}
1176
1177 <wx/utils.h>
1178
1179 \membersection{::wxFindMenuItemId}
1180
1181 \func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
1182
1183 Find a menu item identifier associated with the given frame's menu bar.
1184
1185 \wxheading{Include files}
1186
1187 <wx/utils.h>
1188
1189 \membersection{::wxFindWindowByLabel}
1190
1191 \func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
1192
1193 Find a window by its label. Depending on the type of window, the label may be a window title
1194 or panel item label. If {\it parent} is NULL, the search will start from all top-level
1195 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
1196 The search is recursive in both cases.
1197
1198 \wxheading{Include files}
1199
1200 <wx/utils.h>
1201
1202 \membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
1203
1204 \func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
1205
1206 Find a window by its name (as given in a window constructor or {\bf Create} function call).
1207 If {\it parent} is NULL, the search will start from all top-level
1208 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
1209 The search is recursive in both cases.
1210
1211 If no such named window is found, {\bf wxFindWindowByLabel} is called.
1212
1213 \wxheading{Include files}
1214
1215 <wx/utils.h>
1216
1217 \membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
1218
1219 \func{wxWindow *}{wxGetActiveWindow}{\void}
1220
1221 Gets the currently active window (Windows only).
1222
1223 \wxheading{Include files}
1224
1225 <wx/windows.h>
1226
1227 \membersection{::wxGetDisplayName}\label{wxgetdisplayname}
1228
1229 \func{wxString}{wxGetDisplayName}{\void}
1230
1231 Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
1232
1233 \wxheading{Include files}
1234
1235 <wx/utils.h>
1236
1237 \membersection{::wxGetHomeDir}
1238
1239 \func{wxString}{wxGetHomeDir}{\param{const wxString\& }{buf}}
1240
1241 Fills the buffer with a string representing the user's home directory (Unix only).
1242
1243 \wxheading{Include files}
1244
1245 <wx/utils.h>
1246
1247 \membersection{::wxGetHostName}
1248
1249 \func{bool}{wxGetHostName}{\param{const wxString\& }{buf}, \param{int}{ bufSize}}
1250
1251 Copies the host name of the machine the program is running on into the
1252 buffer {\it buf}, of maximum size {\it bufSize}, returning TRUE if
1253 successful. Under Unix, this will return a machine name. Under Windows,
1254 this returns ``windows''.
1255
1256 \wxheading{Include files}
1257
1258 <wx/utils.h>
1259
1260 \membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
1261
1262 \func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = TRUE}}
1263
1264 Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
1265
1266 If {\it resetTimer} is TRUE (the default), the timer is reset to zero
1267 by this call.
1268
1269 See also \helpref{wxTimer}{wxtimer}.
1270
1271 \wxheading{Include files}
1272
1273 <wx/timer.h>
1274
1275 \membersection{::wxGetFreeMemory}\label{wxgetfreememory}
1276
1277 \func{long}{wxGetFreeMemory}{\void}
1278
1279 Returns the amount of free memory in Kbytes under environments which
1280 support it, and -1 if not supported. Currently, returns a positive value
1281 under Windows, and -1 under Unix.
1282
1283 \wxheading{Include files}
1284
1285 <wx/utils.h>
1286
1287 \membersection{::wxGetMousePosition}
1288
1289 \func{void}{wxGetMousePosition}{\param{int* }{x}, \param{int* }{y}}
1290
1291 Returns the mouse position in screen coordinates.
1292
1293 \wxheading{Include files}
1294
1295 <wx/utils.h>
1296
1297 \membersection{::wxGetOsVersion}
1298
1299 \func{int}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}}
1300
1301 Gets operating system version information.
1302
1303 \begin{twocollist}\itemsep=0pt
1304 \twocolitemruled{Platform}{Return tyes}
1305 \twocolitem{Macintosh}{Return value is wxMACINTOSH.}
1306 \twocolitem{GTK}{Return value is wxGTK, {\it major} is 1, {\it minor} is 0. (for GTK 1.0.X) }
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
1316 \wxheading{Include files}
1317
1318 <wx/utils.h>
1319
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
1334 Gets 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,
1336 otherwise the specified file is used.
1337
1338 Under X, if an application class (wxApp::GetClassName) has been defined,
1339 it is appended to the string /usr/lib/X11/app-defaults/ to try to find
1340 an applications default file when merging all resource databases.
1341
1342 The reason for passing the result in an argument is that it
1343 can be convenient to define a default value, which gets overridden
1344 if the value exists in the resource file. It saves a separate
1345 test for that resource's existence, and it also allows
1346 the overloading of the function for different types.
1347
1348 See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
1349
1350 \wxheading{Include files}
1351
1352 <wx/utils.h>
1353
1354 \membersection{::wxGetUserId}
1355
1356 \func{bool}{wxGetUserId}{\param{const wxString\& }{buf}, \param{int}{ bufSize}}
1357
1358 Copies the user's login identity (such as ``jacs'') into the buffer {\it
1359 buf}, of maximum size {\it bufSize}, returning TRUE if successful.
1360 Under Windows, this returns ``user''.
1361
1362 \wxheading{Include files}
1363
1364 <wx/utils.h>
1365
1366 \membersection{::wxGetUserName}
1367
1368 \func{bool}{wxGetUserName}{\param{const wxString\& }{buf}, \param{int}{ bufSize}}
1369
1370 Copies the user's name (such as ``Julian Smart'') into the buffer {\it
1371 buf}, of maximum size {\it bufSize}, returning TRUE if successful.
1372 Under Windows, this returns ``unknown''.
1373
1374 \wxheading{Include files}
1375
1376 <wx/utils.h>
1377
1378 \membersection{::wxKill}\label{wxkill}
1379
1380 \func{int}{wxKill}{\param{long}{ pid}, \param{int}{ sig}}
1381
1382 Under Unix (the only supported platform), equivalent to the Unix kill function.
1383 Returns 0 on success, -1 on failure.
1384
1385 Tip: sending a signal of 0 to a process returns -1 if the process does not exist.
1386 It does not raise a signal in the receiving process.
1387
1388 \wxheading{Include files}
1389
1390 <wx/utils.h>
1391
1392 \membersection{::wxIsBusy}\label{wxisbusy}
1393
1394 \func{bool}{wxIsBusy}{\void}
1395
1396 Returns TRUE if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
1397 \helpref{wxEndBusyCursor}{wxendbusycursor} calls.
1398
1399 See also \helpref{wxBusyCursor}{wxbusycursor}.
1400
1401 \wxheading{Include files}
1402
1403 <wx/utils.h>
1404
1405 \membersection{::wxLoadUserResource}\label{wxloaduserresource}
1406
1407 \func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
1408
1409 Loads a user-defined Windows resource as a string. If the resource is found, the function creates
1410 a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
1411
1412 The resource must be defined in the {\tt .rc} file using the following syntax:
1413
1414 \begin{verbatim}
1415 myResource TEXT file.ext
1416 \end{verbatim}
1417
1418 where {\tt file.ext} is a file that the resource compiler can find.
1419
1420 One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers
1421 cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed
1422 using \helpref{wxResourceParseString}{wxresourceparsestring}.
1423
1424 This function is available under Windows only.
1425
1426 \wxheading{Include files}
1427
1428 <wx/utils.h>
1429
1430 \membersection{::wxNow}\label{wxnow}
1431
1432 \func{wxString}{wxNow}{\void}
1433
1434 Returns a string representing the current date and time.
1435
1436 \wxheading{Include files}
1437
1438 <wx/utils.h>
1439
1440 \membersection{::wxPostDelete}\label{wxpostdelete}
1441
1442 \func{void}{wxPostDelete}{\param{wxObject *}{object}}
1443
1444 Tells the system to delete the specified object when
1445 all other events have been processed. In some environments, it is
1446 necessary to use this instead of deleting a frame directly with the
1447 delete operator, because some GUIs will still send events to a deleted window.
1448
1449 Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
1450
1451 \wxheading{Include files}
1452
1453 <wx/utils.h>
1454
1455 \membersection{::wxSafeYield}\label{wxsafeyield}
1456
1457 \func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}}
1458
1459 This function is similar to wxYield, except that it disables the user input to
1460 all program windows before calling wxYield and re-enables it again
1461 afterwards. If {\it win} is not NULL, this window will remain enabled,
1462 allowing the implementation of some limited user interaction.
1463
1464 Returns the result of the call to \helpref{::wxYield}{wxyield}.
1465
1466 \wxheading{Include files}
1467
1468 <wx/utils.h>
1469
1470 \membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
1471
1472 \func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = TRUE}}
1473
1474 This 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
1482 \membersection{::wxSetDisplayName}\label{wxsetdisplayname}
1483
1484 \func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
1485
1486 Under X only, sets the current display name. This is the X host and display name such
1487 as ``colonsay:0.0", and the function indicates which display should be used for creating
1488 windows from this point on. Setting the display within an application allows multiple
1489 displays to be used.
1490
1491 See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
1492
1493 \wxheading{Include files}
1494
1495 <wx/utils.h>
1496
1497 \membersection{::wxShell}\label{wxshell}
1498
1499 \func{bool}{wxShell}{\param{const wxString\& }{command = NULL}}
1500
1501 Executes a command in an interactive shell window. If no command is
1502 specified, then just the shell is spawned.
1503
1504 See also \helpref{wxExecute}{wxexecute}.
1505
1506 \wxheading{Include files}
1507
1508 <wx/utils.h>
1509
1510 \membersection{::wxSleep}\label{wxsleep}
1511
1512 \func{void}{wxSleep}{\param{int}{ secs}}
1513
1514 Sleeps for the specified number of seconds.
1515
1516 \wxheading{Include files}
1517
1518 <wx/utils.h>
1519
1520 \membersection{::wxStripMenuCodes}
1521
1522 \func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
1523
1524 \func{void}{wxStripMenuCodes}{\param{char* }{in}, \param{char* }{out}}
1525
1526 Strips any menu codes from {\it in} and places the result
1527 in {\it out} (or returns the new string, in the first form).
1528
1529 Menu codes include \& (mark the next character with an underline
1530 as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
1531
1532 \wxheading{Include files}
1533
1534 <wx/utils.h>
1535
1536 \membersection{::wxStartTimer}\label{wxstarttimer}
1537
1538 \func{void}{wxStartTimer}{\void}
1539
1540 Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
1541
1542 See also \helpref{wxTimer}{wxtimer}.
1543
1544 \wxheading{Include files}
1545
1546 <wx/timer.h>
1547
1548 \membersection{::wxToLower}\label{wxtolower}
1549
1550 \func{char}{wxToLower}{\param{char }{ch}}
1551
1552 Converts the character to lower case. This is implemented as a macro for efficiency.
1553
1554 \wxheading{Include files}
1555
1556 <wx/utils.h>
1557
1558 \membersection{::wxToUpper}\label{wxtoupper}
1559
1560 \func{char}{wxToUpper}{\param{char }{ch}}
1561
1562 Converts the character to upper case. This is implemented as a macro for efficiency.
1563
1564 \wxheading{Include files}
1565
1566 <wx/utils.h>
1567
1568 \membersection{::wxTrace}\label{wxtrace}
1569
1570 \func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
1571
1572 Takes printf-style variable argument syntax. Output
1573 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1574
1575 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1576
1577 \wxheading{Include files}
1578
1579 <wx/memory.h>
1580
1581 \membersection{::wxTraceLevel}\label{wxtracelevel}
1582
1583 \func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
1584
1585 Takes printf-style variable argument syntax. Output
1586 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1587 The first argument should be the level at which this information is appropriate.
1588 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
1589 this value.
1590
1591 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1592
1593 \wxheading{Include files}
1594
1595 <wx/memory.h>
1596
1597 \membersection{::wxUsleep}\label{wxusleep}
1598
1599 \func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
1600
1601 Sleeps for the specified number of milliseconds. Notice that usage of this
1602 function is encouraged instead of calling usleep(3) directly because the
1603 standard usleep() function is not MT safe.
1604
1605 \wxheading{Include files}
1606
1607 <wx/utils.h>
1608
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
1623 Writes 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,
1625 otherwise the specified file is used.
1626
1627 Under X, the resource databases are cached until the internal function
1628 \rtfsp{\bf wxFlushResources} is called automatically on exit, when
1629 all updated resource databases are written to their files.
1630
1631 Note that it is considered bad manners to write to the .Xdefaults
1632 file under Unix, although the WIN.INI file is fair game under Windows.
1633
1634 See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
1635
1636 \wxheading{Include files}
1637
1638 <wx/utils.h>
1639
1640 \membersection{::wxYield}\label{wxyield}
1641
1642 \func{bool}{wxYield}{\void}
1643
1644 Yields control to pending messages in the windowing system. This can be useful, for example, when a
1645 time-consuming process writes to a text window. Without an occasional
1646 yield, the text window will not be updated properly, and (since Windows
1647 multitasking is cooperative) other processes will not respond.
1648
1649 Caution should be exercised, however, since yielding may allow the
1650 user to perform actions which are not compatible with the current task.
1651 Disabling menu items or whole menus during processing can avoid unwanted
1652 reentrance of code: see \helpref{::wxSafeYield}{wxsafeyield} for a better
1653 function.
1654
1655 \wxheading{Include files}
1656
1657 <wx/utils.h>
1658
1659 \section{Macros}\label{macros}
1660
1661 These macros are defined in wxWindows.
1662
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
1673 This macro will swap the bytes of the {\it value} variable from little
1674 endian 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
1686 This macro will swap the bytes of the {\it value} variable from little
1687 endian to big endian or vice versa if the program is compiled on a
1688 big-endian architecture (such as Sun work stations). If the program has
1689 been compiled on a little-endian architecture, the value will be unchanged.
1690
1691 Use these macros to read data from and write data to a file that stores
1692 data 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
1704 This macro will swap the bytes of the {\it value} variable from little
1705 endian to big endian or vice versa if the program is compiled on a
1706 little-endian architecture (such as Intel PCs). If the program has
1707 been compiled on a big-endian architecture, the value will be unchanged.
1708
1709 Use these macros to read data from and write data to a file that stores
1710 data in big endian format.
1711
1712 \membersection{CLASSINFO}\label{classinfo}
1713
1714 \func{wxClassInfo *}{CLASSINFO}{className}
1715
1716 Returns a pointer to the wxClassInfo object associated with this class.
1717
1718 \wxheading{Include files}
1719
1720 <wx/object.h>
1721
1722 \membersection{DECLARE\_ABSTRACT\_CLASS}
1723
1724 \func{}{DECLARE\_ABSTRACT\_CLASS}{className}
1725
1726 Used inside a class declaration to declare that the class should be
1727 made known to the class hierarchy, but objects of this class cannot be created
1728 dynamically. The same as DECLARE\_CLASS.
1729
1730 Example:
1731
1732 \begin{verbatim}
1733 class wxCommand: public wxObject
1734 {
1735 DECLARE_ABSTRACT_CLASS(wxCommand)
1736
1737 private:
1738 ...
1739 public:
1740 ...
1741 };
1742 \end{verbatim}
1743
1744 \wxheading{Include files}
1745
1746 <wx/object.h>
1747
1748 \membersection{DECLARE\_APP}\label{declareapp}
1749
1750 \func{}{DECLARE\_APP}{className}
1751
1752 This is used in headers to create a forward declaration of the wxGetApp function implemented
1753 by IMPLEMENT\_APP. It creates the declaration {\tt className\& wxGetApp(void)}.
1754
1755 Example:
1756
1757 \begin{verbatim}
1758 DECLARE_APP(MyApp)
1759 \end{verbatim}
1760
1761 \wxheading{Include files}
1762
1763 <wx/app.h>
1764
1765 \membersection{DECLARE\_CLASS}
1766
1767 \func{}{DECLARE\_CLASS}{className}
1768
1769 Used inside a class declaration to declare that the class should be
1770 made known to the class hierarchy, but objects of this class cannot be created
1771 dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
1772
1773 \wxheading{Include files}
1774
1775 <wx/object.h>
1776
1777 \membersection{DECLARE\_DYNAMIC\_CLASS}
1778
1779 \func{}{DECLARE\_DYNAMIC\_CLASS}{className}
1780
1781 Used inside a class declaration to declare that the objects of this class should be dynamically
1782 createable from run-time type information.
1783
1784 Example:
1785
1786 \begin{verbatim}
1787 class wxFrame: public wxWindow
1788 {
1789 DECLARE_DYNAMIC_CLASS(wxFrame)
1790
1791 private:
1792 const wxString\& frameTitle;
1793 public:
1794 ...
1795 };
1796 \end{verbatim}
1797
1798 \wxheading{Include files}
1799
1800 <wx/object.h>
1801
1802 \membersection{IMPLEMENT\_ABSTRACT\_CLASS}
1803
1804 \func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
1805
1806 Used in a C++ implementation file to complete the declaration of
1807 a class that has run-time type information. The same as IMPLEMENT\_CLASS.
1808
1809 Example:
1810
1811 \begin{verbatim}
1812 IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
1813
1814 wxCommand::wxCommand(void)
1815 {
1816 ...
1817 }
1818 \end{verbatim}
1819
1820 \wxheading{Include files}
1821
1822 <wx/object.h>
1823
1824 \membersection{IMPLEMENT\_ABSTRACT\_CLASS2}
1825
1826 \func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
1827
1828 Used in a C++ implementation file to complete the declaration of
1829 a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
1830
1831 \wxheading{Include files}
1832
1833 <wx/object.h>
1834
1835 \membersection{IMPLEMENT\_APP}\label{implementapp}
1836
1837 \func{}{IMPLEMENT\_APP}{className}
1838
1839 This is used in the application class implementation file to make the application class known to
1840 wxWindows for dynamic construction. You use this instead of
1841
1842 Old form:
1843
1844 \begin{verbatim}
1845 MyApp myApp;
1846 \end{verbatim}
1847
1848 New form:
1849
1850 \begin{verbatim}
1851 IMPLEMENT_APP(MyApp)
1852 \end{verbatim}
1853
1854 See also \helpref{DECLARE\_APP}{declareapp}.
1855
1856 \wxheading{Include files}
1857
1858 <wx/app.h>
1859
1860 \membersection{IMPLEMENT\_CLASS}
1861
1862 \func{}{IMPLEMENT\_CLASS}{className, baseClassName}
1863
1864 Used in a C++ implementation file to complete the declaration of
1865 a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
1866
1867 \wxheading{Include files}
1868
1869 <wx/object.h>
1870
1871 \membersection{IMPLEMENT\_CLASS2}
1872
1873 \func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
1874
1875 Used in a C++ implementation file to complete the declaration of a
1876 class that has run-time type information and two base classes. The
1877 same as IMPLEMENT\_ABSTRACT\_CLASS2.
1878
1879 \wxheading{Include files}
1880
1881 <wx/object.h>
1882
1883 \membersection{IMPLEMENT\_DYNAMIC\_CLASS}
1884
1885 \func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
1886
1887 Used in a C++ implementation file to complete the declaration of
1888 a class that has run-time type information, and whose instances
1889 can be created dynamically.
1890
1891 Example:
1892
1893 \begin{verbatim}
1894 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
1895
1896 wxFrame::wxFrame(void)
1897 {
1898 ...
1899 }
1900 \end{verbatim}
1901
1902 \wxheading{Include files}
1903
1904 <wx/object.h>
1905
1906 \membersection{IMPLEMENT\_DYNAMIC\_CLASS2}
1907
1908 \func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
1909
1910 Used in a C++ implementation file to complete the declaration of
1911 a class that has run-time type information, and whose instances
1912 can be created dynamically. Use this for classes derived from two
1913 base classes.
1914
1915 \wxheading{Include files}
1916
1917 <wx/object.h>
1918
1919 \membersection{WXDEBUG\_NEW}\label{debugnew}
1920
1921 \func{}{WXDEBUG\_NEW}{arg}
1922
1923 This is defined in debug mode to be call the redefined new operator
1924 with filename and line number arguments. The definition is:
1925
1926 \begin{verbatim}
1927 #define WXDEBUG_NEW new(__FILE__,__LINE__)
1928 \end{verbatim}
1929
1930 In 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
1940 This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
1941 the pointer is of this type (the check is done during the run-time) or NULL
1942 otherwise. Usage of this macro is prefered over obsoleted wxObject::IsKindOf()
1943 function.
1944
1945 The {\it ptr} argument may be NULL, in which case NULL will be returned.
1946
1947 Example:
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
1966 \membersection{WXTRACE}\label{trace}
1967
1968 \wxheading{Include files}
1969
1970 <wx/object.h>
1971
1972 \func{}{WXTRACE}{formatString, ...}
1973
1974 Calls wxTrace with printf-style variable argument syntax. Output
1975 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1976
1977 This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1978
1979 \wxheading{Include files}
1980
1981 <wx/memory.h>
1982
1983 \membersection{WXTRACELEVEL}\label{tracelevel}
1984
1985 \func{}{WXTRACELEVEL}{level, formatString, ...}
1986
1987 Calls wxTraceLevel with printf-style variable argument syntax. Output
1988 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
1989 The first argument should be the level at which this information is appropriate.
1990 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
1991 this value.
1992
1993 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
1994
1995 \wxheading{Include files}
1996
1997 <wx/memory.h>
1998
1999 \section{wxWindows resource functions}\label{resourcefuncs}
2000
2001 \overview{wxWindows resource system}{resourceformats}
2002
2003 This section details functions for manipulating wxWindows (.WXR) resource
2004 files 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
2007 about initialisation file resource reading and writing, using such functions
2008 as 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
2012 See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
2013 loading from resource data.
2014
2015 {\bf Warning:} this needs updating for wxWindows 2.
2016
2017 \membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
2018
2019 \func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
2020
2021 Used 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
2023 perhaps for implementing resource functionality for interpreted languages.
2024
2025 \membersection{::wxResourceClear}
2026
2027 \func{void}{wxResourceClear}{\void}
2028
2029 Clears the wxWindows resource table.
2030
2031 \membersection{::wxResourceCreateBitmap}
2032
2033 \func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
2034
2035 Creates a new bitmap from a file, static data, or Windows resource, given a valid
2036 wxWindows bitmap resource identifier. For example, if the .WXR file contains
2037 the following:
2038
2039 \begin{verbatim}
2040 static 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
2045 then 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
2055 Creates a new icon from a file, static data, or Windows resource, given a valid
2056 wxWindows icon resource identifier. For example, if the .WXR file contains
2057 the following:
2058
2059 \begin{verbatim}
2060 static 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
2065 then 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
2075 Creates a new menu bar given a valid wxWindows menubar resource
2076 identifier. For example, if the .WXR file contains the following:
2077
2078 \begin{verbatim}
2079 static 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
2094 then 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
2105 Used for retrieving the integer value associated with an identifier.
2106 A zero value indicates that the identifier was not found.
2107
2108 See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
2109
2110 \membersection{::wxResourceParseData}\label{wxresourcedata}
2111
2112 \func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
2113
2114 Parses a string containing one or more wxWindows resource objects. If
2115 the resource objects are global static data that are included into the
2116 C++ program, then this function must be called for each variable
2117 containing the resource data, to make it known to wxWindows.
2118
2119 {\it resource} should contain data in the following form:
2120
2121 \begin{verbatim}
2122 dialog(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
2135 This function will typically be used after including a {\tt .wxr} file into
2136 a C++ program as follows:
2137
2138 \begin{verbatim}
2139 #include "dialog1.wxr"
2140 \end{verbatim}
2141
2142 Each of the contained resources will declare a new C++ variable, and each
2143 of 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
2149 Parses a file containing one or more wxWindows resource objects
2150 in C++-compatible syntax. Use this function to dynamically load
2151 wxWindows resource data.
2152
2153 \membersection{::wxResourceParseString}\label{wxresourceparsestring}
2154
2155 \func{bool}{wxResourceParseString}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
2156
2157 Parses a string containing one or more wxWindows resource objects. If
2158 the resource objects are global static data that are included into the
2159 C++ program, then this function must be called for each variable
2160 containing the resource data, to make it known to wxWindows.
2161
2162 {\it resource} should contain data with the following form:
2163
2164 \begin{verbatim}
2165 static 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
2178 This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
2179 load 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
2188 Makes \verb$#$included XBM or XPM bitmap data known to the wxWindows resource system.
2189 This is required if other resources will use the bitmap data, since otherwise there
2190 is no connection between names used in resources, and the global bitmap data.
2191
2192 \membersection{::wxResourceRegisterIconData}
2193
2194 Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
2195
2196 \section{Log functions}\label{logfunctions}
2197
2198 These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
2199 further information.
2200
2201 \wxheading{Include files}
2202
2203 <wx/log.h>
2204
2205 \membersection{::wxLogError}\label{wxlogerror}
2206
2207 \func{void}{wxLogError}{\param{const char*}{ formatString}, \param{...}{}}
2208
2209 The function to use for error messages, i.e. the
2210 messages that must be shown to the user. The default processing is to pop up a
2211 message box to inform the user about it.
2212
2213 \membersection{::wxLogFatalError}\label{wxlogfatalerror}
2214
2215 \func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{...}{}}
2216
2217 Like \helpref{wxLogError}{wxlogerror}, but also
2218 terminates the program with the exit code 3. Using {\it abort()} standard
2219 function 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
2225 For warnings - they are also normally shown to the
2226 user, but don't interrupt the program work.
2227
2228 \membersection{::wxLogMessage}\label{wxlogmessage}
2229
2230 \func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{...}{}}
2231
2232 for all normal, informational messages. They also
2233 appear in a message box by default (but it can be changed). Notice
2234 that the standard behaviour is to not show informational messages if there are
2235 any errors later - the logic being that the later error messages make the
2236 informational messages preceding them meaningless.
2237
2238 \membersection{::wxLogVerbose}\label{wxlogverbose}
2239
2240 \func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{...}{}}
2241
2242 For verbose output. Normally, it's suppressed, but
2243 might be activated if the user wishes to know more details about the program
2244 progress (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
2250 For status messages - they will go into the status
2251 bar 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
2257 Mostly used by wxWindows itself, but might be
2258 handy for logging errors after system call (API function) failure. It logs the
2259 specified message text as well as the last system error code ({\it errno} or {\it ::GetLastError()} depending
2260 on the platform) and the corresponding error
2261 message. The second form of this function takes the error code explitly as the
2262 first argument.
2263
2264 \membersection{::wxLogDebug}\label{wxlogdebug}
2265
2266 \func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{...}{}}
2267
2268 The right function for debug output. It only
2269 does anything at all in the debug mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined)
2270 and 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
2278 As {\bf wxLogDebug}, only does something in debug
2279 build. The reason for making it a separate function from it is that usually
2280 there are a lot of trace messages, so it might make sense to separate them
2281 from other debug messages which would be flooded in them. Moreover, the second
2282 version of this function takes a trace mask as the first argument which allows
2283 to 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
2294 Useful macros and functins for error checking and defensive programming. ASSERTs are only
2295 compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release
2296 builds.
2297
2298 \wxheading{Include files}
2299
2300 <wx/debug.h>
2301
2302 \membersection{::wxOnAssert}\label{wxonassert}
2303
2304 \func{void}{wxOnAssert}{\param{const char*}{ fileName}, \param{int}{ lineNumber}, \param{const char*}{ msg = NULL}}
2305
2306 This function may be redefined to do something non trivial and is called
2307 whenever one of debugging macros fails (i.e. condition is false in an
2308 assertion).
2309 % TODO: this should probably be an overridable in wxApp.
2310
2311 \membersection{wxASSERT}\label{wxassert}
2312
2313 \func{}{wxASSERT}{\param{}{condition}}
2314
2315 Assert macro. An error message will be generated if the condition is FALSE in
2316 debug mode, but nothing will be done in the release build.
2317
2318 Please note that the condition in wxASSERT() should have no side effects
2319 because it will not be executed in release mode at all.
2320
2321 See also: \helpref{wxASSERT\_MSG}{wxassertmsg}
2322
2323 \membersection{wxASSERT\_MSG}\label{wxassertmsg}
2324
2325 \func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
2326
2327 Assert macro with message. An error message will be generated if the condition is FALSE.
2328
2329 See also: \helpref{wxASSERT}{wxassert}
2330
2331 \membersection{wxFAIL}\label{wxfail}
2332
2333 \func{}{wxFAIL}{\void}
2334
2335 Will always generate an assert error if this code is reached (in debug mode).
2336
2337 See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
2338
2339 \membersection{wxFAIL\_MSG}\label{wxfailmsg}
2340
2341 \func{}{wxFAIL\_MSG}{\param{}{msg}}
2342
2343 Will always generate an assert error with specified message if this code is reached (in debug mode).
2344
2345 This macro is useful for marking unreachable" code areas, for example
2346 it may be used in the "default:" branch of a switch statement if all possible
2347 cases are processed above.
2348
2349 See also: \helpref{wxFAIL}{wxfail}
2350
2351 \membersection{wxCHECK}\label{wxcheck}
2352
2353 \func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
2354
2355 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
2356 This 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
2362 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
2363 This check is done even in release mode.
2364
2365 This 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
2372 Checks that the condition is true, and returns if not (FAILs with given error
2373 message in debug mode). This check is done even in release mode.
2374
2375 This 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
2382 Checks 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
2385 returning from the function must be done when the {\it condition} is false.
2386
2387 This 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
2393 This is the same as \helpref{wxCHECK2}{wxcheck2}, but
2394 \helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
2395 instead of wxFAIL() if the {\it condition} is false.
2396