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