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