renamed wxLogXXX functions with va_list argument to wxVLogXXX
[wxWidgets.git] / docs / latex / wx / function.tex
1 \chapter{Functions}\label{functions}
2 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
3 \setfooter{\thepage}{}{}{}{}{\thepage}
4
5 The functions and macros defined in wxWindows are described here: you can
6 either look up a function using the alphabetical listing of them or find it in
7 the corresponding topic.
8
9 \section{Alphabetical functions and macros list}
10
11 \helpref{CLASSINFO}{classinfo}\\
12 \helpref{DECLARE\_ABSTRACT\_CLASS}{declareabstractclass}\\
13 \helpref{DECLARE\_APP}{declareapp}\\
14 \helpref{DECLARE\_CLASS}{declareclass}\\
15 \helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass}\\
16 \helpref{IMPLEMENT\_ABSTRACT\_CLASS2}{implementabstractclass2}\\
17 \helpref{IMPLEMENT\_ABSTRACT\_CLASS}{implementabstractclass}\\
18 \helpref{IMPLEMENT\_APP}{implementapp}\\
19 \helpref{IMPLEMENT\_CLASS2}{implementclass2}\\
20 \helpref{IMPLEMENT\_CLASS}{implementclass}\\
21 \helpref{IMPLEMENT\_DYNAMIC\_CLASS2}{implementdynamicclass2}\\
22 \helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass}\\
23 \helpref{WXDEBUG\_NEW}{debugnew}\\
24 \helpref{WXTRACELEVEL}{tracelevel}\\
25 \helpref{WXTRACE}{trace}\\
26 \helpref{copystring}{copystring}\\
27 \helpref{wxASSERT\_MSG}{wxassertmsg}\\
28 \helpref{wxASSERT}{wxassert}\\
29 \helpref{wxBITMAP}{wxbitmapmacro}\\
30 \helpref{wxBeginBusyCursor}{wxbeginbusycursor}\\
31 \helpref{wxBell}{wxbell}\\
32 \helpref{wxCHECK2\_MSG}{wxcheck2msg}\\
33 \helpref{wxCHECK2}{wxcheck2}\\
34 \helpref{wxCHECK\_MSG}{wxcheckmsg}\\
35 \helpref{wxCHECK\_RET}{wxcheckret}\\
36 \helpref{wxCHECK\_VERSION}{wxcheckversion}\\
37 \helpref{wxCHECK}{wxcheck}\\
38 \helpref{wxClientDisplayRect}{wxclientdisplayrect}\\
39 \helpref{wxClipboardOpen}{wxclipboardopen}\\
40 \helpref{wxCloseClipboard}{wxcloseclipboard}\\
41 \helpref{wxColourDisplay}{wxcolourdisplay}\\
42 \helpref{wxConcatFiles}{wxconcatfiles}\\
43 \helpref{wxConstCast}{wxconstcast}\\
44 \helpref{wxCopyFile}{wxcopyfile}\\
45 \helpref{wxCreateDynamicObject}{wxcreatedynamicobject}\\
46 \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}\\
47 \helpref{wxDDECleanUp}{wxddecleanup}\\
48 \helpref{wxDDEInitialize}{wxddeinitialize}\\
49 \helpref{wxDROP\_ICON}{wxdropicon}\\
50 \helpref{wxDebugMsg}{wxdebugmsg}\\
51 \helpref{wxDirExists}{wxdirexists}\\
52 \helpref{wxDirSelector}{wxdirselector}\\
53 \helpref{wxDisplayDepth}{wxdisplaydepth}\\
54 \helpref{wxDisplaySizeMM}{wxdisplaysizemm}\\
55 \helpref{wxDisplaySize}{wxdisplaysize}\\
56 \helpref{wxDisplaySize}{wxdisplaysize}\\
57 \helpref{wxDos2UnixFilename}{wxdos2unixfilename}\\
58 \helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
59 \helpref{wxDynamicCast}{wxdynamiccast}\\
60 \helpref{wxEmptyClipboard}{wxemptyclipboard}\\
61 \helpref{wxEnableTopLevelWindows}{wxenabletoplevelwindows}\\
62 \helpref{wxEndBusyCursor}{wxendbusycursor}\\
63 \helpref{wxEntry}{wxentry}\\
64 \helpref{wxEnumClipboardFormats}{wxenumclipboardformats}\\
65 \helpref{wxError}{wxerror}\\
66 \helpref{wxExecute}{wxexecute}\\
67 \helpref{wxExit}{wxexit}\\
68 \helpref{wxFAIL\_MSG}{wxfailmsg}\\
69 \helpref{wxFAIL}{wxfail}\\
70 \helpref{wxFatalError}{wxfatalerror}\\
71 \helpref{wxFileExists}{wxfileexists}\\
72 \helpref{wxFileModificationTime}{wxfilemodificationtime}\\
73 \helpref{wxFileNameFromPath}{wxfilenamefrompath}\\
74 \helpref{wxFileSelector}{wxfileselector}\\
75 \helpref{wxFindFirstFile}{wxfindfirstfile}\\
76 \helpref{wxFindMenuItemId}{wxfindmenuitemid}\\
77 \helpref{wxFindNextFile}{wxfindnextfile}\\
78 \helpref{wxFindWindowAtPointer}{wxfindwindowatpointer}\\
79 \helpref{wxFindWindowAtPoint}{wxfindwindowatpoint}\\
80 \helpref{wxFindWindowByLabel}{wxfindwindowbylabel}\\
81 \helpref{wxFindWindowByName}{wxfindwindowbyname}\\
82 \helpref{wxGetActiveWindow}{wxgetactivewindow}\\
83 \helpref{wxGetClipboardData}{wxgetclipboarddata}\\
84 \helpref{wxGetClipboardFormatName}{wxgetclipboardformatname}\\
85 \helpref{wxGetColourFromUser}{wxgetcolourfromuser}\\
86 \helpref{wxGetCwd}{wxgetcwd}\\
87 \helpref{wxGetDiskSpace}{wxgetdiskspace}\\
88 \helpref{wxGetDisplayName}{wxgetdisplayname}\\
89 \helpref{wxGetElapsedTime}{wxgetelapsedtime}\\
90 \helpref{wxGetEmailAddress}{wxgetemailaddress}\\
91 \helpref{wxGetEnv}{wxgetenv}\\
92 \helpref{wxGetFreeMemory}{wxgetfreememory}\\
93 \helpref{wxGetFullHostName}{wxgetfullhostname}\\
94 \helpref{wxGetHomeDir}{wxgethomedir}\\
95 \helpref{wxGetHostName}{wxgethostname}\\
96 \helpref{wxGetLocalTimeMillis}{wxgetlocaltimemillis}\\
97 \helpref{wxGetLocalTime}{wxgetlocaltime}\\
98 \helpref{wxGetMousePosition}{wxgetmouseposition}\\
99 \helpref{wxGetMultipleChoices}{wxgetmultiplechoices}\\
100 \helpref{wxGetMultipleChoice}{wxgetmultiplechoice}\\
101 \helpref{wxGetNumberFromUser}{wxgetnumberfromuser}\\
102 \helpref{wxGetOSDirectory}{wxgetosdirectory}\\
103 \helpref{wxGetOsDescription}{wxgetosdescription}\\
104 \helpref{wxGetOsVersion}{wxgetosversion}\\
105 \helpref{wxGetPasswordFromUser}{wxgetpasswordfromuser}\\
106 \helpref{wxGetPrinterCommand}{wxgetprintercommand}\\
107 \helpref{wxGetPrinterFile}{wxgetprinterfile}\\
108 \helpref{wxGetPrinterMode}{wxgetprintermode}\\
109 \helpref{wxGetPrinterOptions}{wxgetprinteroptions}\\
110 \helpref{wxGetPrinterOrientation}{wxgetprinterorientation}\\
111 \helpref{wxGetPrinterPreviewCommand}{wxgetprinterpreviewcommand}\\
112 \helpref{wxGetPrinterScaling}{wxgetprinterscaling}\\
113 \helpref{wxGetPrinterTranslation}{wxgetprintertranslation}\\
114 \helpref{wxGetResource}{wxgetresource}\\
115 \helpref{wxGetSingleChoiceData}{wxgetsinglechoicedata}\\
116 \helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex}\\
117 \helpref{wxGetSingleChoice}{wxgetsinglechoice}\\
118 \helpref{wxGetTempFileName}{wxgettempfilename}\\
119 \helpref{wxGetTextFromUser}{wxgettextfromuser}\\
120 \helpref{wxGetTranslation}{wxgettranslation}\\
121 \helpref{wxGetUTCTime}{wxgetutctime}\\
122 \helpref{wxGetUserHome}{wxgetuserhome}\\
123 \helpref{wxGetUserId}{wxgetuserid}\\
124 \helpref{wxGetUserName}{wxgetusername}\\
125 \helpref{wxGetWorkingDirectory}{wxgetworkingdirectory}\\
126 \helpref{wxGetenv}{wxgetenvmacro}\\
127 \helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions}\\
128 \helpref{wxICON}{wxiconmacro}\\
129 \helpref{wxINTXX\_SWAP\_ALWAYS}{intswapalways}\\
130 \helpref{wxINTXX\_SWAP\_ON\_BE}{intswaponbe}\\
131 \helpref{wxINTXX\_SWAP\_ON\_LE}{intswaponle}\\
132 \helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}\\
133 \helpref{wxInitialize}{wxinitialize}\\
134 \helpref{wxIsAbsolutePath}{wxisabsolutepath}\\
135 \helpref{wxIsBusy}{wxisbusy}\\
136 \helpref{wxIsClipboardFormatAvailable}{wxisclipboardformatavailable}\\
137 \helpref{wxIsEmpty}{wxisempty}\\
138 \helpref{wxIsWild}{wxiswild}\\
139 \helpref{wxKill}{wxkill}\\
140 \helpref{wxLoadUserResource}{wxloaduserresource}\\
141 \helpref{wxLogDebug}{wxlogdebug}\\
142 \helpref{wxLogError}{wxlogerror}\\
143 \helpref{wxLogFatalError}{wxlogfatalerror}\\
144 \helpref{wxLogMessage}{wxlogmessage}\\
145 \helpref{wxLogStatus}{wxlogstatus}\\
146 \helpref{wxLogSysError}{wxlogsyserror}\\
147 \helpref{wxLogTrace}{wxlogtrace}\\
148 \helpref{wxLogVerbose}{wxlogverbose}\\
149 \helpref{wxLogWarning}{wxlogwarning}\\
150 \helpref{wxMakeMetafilePlaceable}{wxmakemetafileplaceable}\\
151 \helpref{wxMatchWild}{wxmatchwild}\\
152 \helpref{wxMessageBox}{wxmessagebox}\\
153 \helpref{wxMkdir}{wxmkdir}\\
154 \helpref{wxMutexGuiEnter}{wxmutexguienter}\\
155 \helpref{wxMutexGuiLeave}{wxmutexguileave}\\
156 \helpref{wxNewId}{wxnewid}\\
157 \helpref{wxNow}{wxnow}\\
158 \helpref{wxOnAssert}{wxonassert}\\
159 \helpref{wxOpenClipboard}{wxopenclipboard}\\
160 \helpref{wxPathOnly}{wxpathonly}\\
161 \helpref{wxPostDelete}{wxpostdelete}\\
162 \helpref{wxPostEvent}{wxpostevent}\\
163 \helpref{wxRegisterClipboardFormat}{wxregisterclipboardformat}\\
164 \helpref{wxRegisterId}{wxregisterid}\\
165 \helpref{wxRemoveFile}{wxremovefile}\\
166 \helpref{wxRenameFile}{wxrenamefile}\\
167 \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}\\
168 \helpref{wxResourceClear}{wxresourceclear}\\
169 \helpref{wxResourceCreateBitmap}{wxresourcecreatebitmap}\\
170 \helpref{wxResourceCreateIcon}{wxresourcecreateicon}\\
171 \helpref{wxResourceCreateMenuBar}{wxresourcecreatemenubar}\\
172 \helpref{wxResourceGetIdentifier}{wxresourcegetidentifier}\\
173 \helpref{wxResourceParseData}{wxresourcedata}\\
174 \helpref{wxResourceParseFile}{wxresourceparsefile}\\
175 \helpref{wxResourceParseString}{wxresourceparsestring}\\
176 \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}\\
177 \helpref{wxResourceRegisterIconData}{wxresourceregistericondata}\\
178 \helpref{wxRmdir}{wxrmdir}\\
179 \helpref{wxSafeYield}{wxsafeyield}\\
180 \helpref{wxSetClipboardData}{wxsetclipboarddata}\\
181 \helpref{wxSetCursor}{wxsetcursor}\\
182 \helpref{wxSetDisplayName}{wxsetdisplayname}\\
183 \helpref{wxSetEnv}{wxsetenv}\\
184 \helpref{wxSetPrinterCommand}{wxsetprintercommand}\\
185 \helpref{wxSetPrinterFile}{wxsetprinterfile}\\
186 \helpref{wxSetPrinterMode}{wxsetprintermode}\\
187 \helpref{wxSetPrinterOptions}{wxsetprinteroptions}\\
188 \helpref{wxSetPrinterOrientation}{wxsetprinterorientation}\\
189 \helpref{wxSetPrinterPreviewCommand}{wxsetprinterpreviewcommand}\\
190 \helpref{wxSetPrinterScaling}{wxsetprinterscaling}\\
191 \helpref{wxSetPrinterTranslation}{wxsetprintertranslation}\\
192 \helpref{wxSetWorkingDirectory}{wxsetworkingdirectory}\\
193 \helpref{wxShell}{wxshell}\\
194 \helpref{wxShowTip}{wxshowtip}\\
195 \helpref{wxSleep}{wxsleep}\\
196 \helpref{wxSnprintf}{wxsnprintf}\\
197 \helpref{wxSplitPath}{wxsplitfunction}\\
198 \helpref{wxStartTimer}{wxstarttimer}\\
199 \helpref{wxStaticCast}{wxstaticcast}\\
200 \helpref{wxStricmp}{wxstricmp}\\
201 \helpref{wxStringEq}{wxstringeq}\\
202 \helpref{wxStringMatch}{wxstringmatch}\\
203 \helpref{wxStripMenuCodes}{wxstripmenucodes}\\
204 \helpref{wxStrlen}{wxstrlen}\\
205 \helpref{wxSysErrorCode}{wxsyserrorcode}\\
206 \helpref{wxSysErrorMsg}{wxsyserrormsg}\\
207 \helpref{wxToLower}{wxtolower}\\
208 \helpref{wxToUpper}{wxtoupper}\\
209 \helpref{wxTraceLevel}{wxtracelevel}\\
210 \helpref{wxTrace}{wxtrace}\\
211 \helpref{wxTransferFileToStream}{wxtransferfiletostream}\\
212 \helpref{wxTransferStreamToFile}{wxtransferstreamtofile}\\
213 \helpref{wxTrap}{wxtrap}\\
214 \helpref{wxUninitialize}{wxuninitialize}\\
215 \helpref{wxUnix2DosFilename}{wxunix2dosfilename}\\
216 \helpref{wxUnsetEnv}{wxunsetenv}\\
217 \helpref{wxUsleep}{wxusleep}\\
218 \helpref{wxVsnprintf}{wxvsnprintf}\\
219 \helpref{wxWakeUpIdle}{wxwakeupidle}\\
220 \helpref{wxWriteResource}{wxwriteresource}\\
221 \helpref{wxYield}{wxyield}
222
223 \section{Version macros}\label{versionfunctions}
224
225 The following constants are defined in wxWindows:
226
227 \begin{itemize}\itemsep=0pt
228 \item {\tt wxMAJOR\_VERSION} is the major version of wxWindows
229 \item {\tt wxMINOR\_VERSION} is the minor version of wxWindows
230 \item {\tt wxRELEASE\_NUMBER} is the release number
231 \end{itemize}
232
233 For example, the values or these constants for wxWindows 2.1.15 are 2, 1 and
234 15.
235
236 Additionally, {\tt wxVERSION\_STRING} is a user-readable string containing
237 the full wxWindows version and {\tt wxVERSION\_NUMBER} is a combination of the
238 three version numbers above: for 2.1.15, it is 2115 and it is 2200 for
239 wxWindows 2.2.
240
241 \wxheading{Include files}
242
243 <wx/version.h> or <wx/defs.h>
244
245 \membersection{wxCHECK\_VERSION}\label{wxcheckversion}
246
247 \func{bool}{wxCHECK\_VERSION}{\param{}{major, minor, release}}
248
249 This is a macro which evaluates to true if the current wxWindows version is at
250 least major.minor.release.
251
252 For example, to test if the program is compiled with wxWindows 2.2 or higher,
253 the following can be done:
254
255 \begin{verbatim}
256 wxString s;
257 #if wxCHECK_VERSION(2, 2, 0)
258 if ( s.StartsWith("foo") )
259 #else // replacement code for old version
260 if ( strncmp(s, "foo", 3) == 0 )
261 #endif
262 {
263 ...
264 }
265 \end{verbatim}
266
267 \section{Application initialization and termination}\label{appinifunctions}
268
269 The functions in this section are used on application startup/shutdown and also
270 to control the behaviour of the main event loop of the GUI programs.
271
272 \membersection{::wxEntry}\label{wxentry}
273
274 This initializes wxWindows in a platform-dependent way. Use this if you
275 are not using the default wxWindows entry code (e.g. main or WinMain). For example,
276 you can initialize wxWindows from an Microsoft Foundation Classes application using
277 this function.
278
279 \func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
280 \param{const wxString\& }{commandLine}, \param{int}{ cmdShow}, \param{bool}{ enterLoop = TRUE}}
281
282 wxWindows initialization under Windows (non-DLL). If {\it enterLoop} is FALSE, the
283 function will return immediately after calling wxApp::OnInit. Otherwise, the wxWindows
284 message loop will be entered.
285
286 \func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
287 \param{WORD}{ wDataSegment}, \param{WORD}{ wHeapSize}, \param{const wxString\& }{ commandLine}}
288
289 wxWindows initialization under Windows (for applications constructed as a DLL).
290
291 \func{int}{wxEntry}{\param{int}{ argc}, \param{const wxString\& *}{argv}}
292
293 wxWindows initialization under Unix.
294
295 \wxheading{Remarks}
296
297 To clean up wxWindows, call wxApp::OnExit followed by the static function
298 wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWindows:
299
300 \begin{verbatim}
301 int CTheApp::ExitInstance()
302 {
303 // OnExit isn't called by CleanUp so must be called explicitly.
304 wxTheApp->OnExit();
305 wxApp::CleanUp();
306
307 return CWinApp::ExitInstance();
308 }
309 \end{verbatim}
310
311 \wxheading{Include files}
312
313 <wx/app.h>
314
315 \membersection{::wxHandleFatalExceptions}\label{wxhandlefatalexceptions}
316
317 \func{bool}{wxHandleFatalExceptions}{\param{bool}{ doIt = TRUE}}
318
319 If {\it doIt} is TRUE, the fatal exceptions (also known as general protection
320 faults under Windows or segmentation violations in the Unix world) will be
321 caught and passed to \helpref{wxApp::OnFatalException}{wxapponfatalexception}.
322 By default, i.e. before this function is called, they will be handled in the
323 normal way which usually just means that the application will be terminated.
324 Calling wxHandleFatalExceptions() with {\it doIt} equal to FALSE will restore
325 this default behaviour.
326
327 \membersection{::wxInitAllImageHandlers}\label{wxinitallimagehandlers}
328
329 \func{void}{wxInitAllImageHandlers}{\void}
330
331 Initializes all available image handlers. For a list of available handlers,
332 see \helpref{wxImage}{wximage}.
333
334 \wxheading{See also}
335
336 \helpref{wxImage}{wximage}, \helpref{wxImageHandler}{wximagehandler}
337
338 \wxheading{Include files}
339
340 <wx/image.h>
341
342 \membersection{::wxInitialize}\label{wxinitialize}
343
344 \func{bool}{wxInitialize}{\void}
345
346 This function is used in wxBase only and only if you don't create
347 \helpref{wxApp}{wxapp} object at all. In this case you must call it from your
348 {\tt main()} function before calling any other wxWindows functions.
349
350 If the function returns {\tt FALSE} the initialization could not be performed,
351 in this case the library cannot be used and
352 \helpref{wxUninitialize}{wxuninitialize} shouldn't be called neither.
353
354 This function may be called several times but
355 \helpref{wxUninitialize}{wxuninitialize} must be called for each successful
356 call to this function.
357
358 \wxheading{Include files}
359
360 <wx/app.h>
361
362 \membersection{::wxSafeYield}\label{wxsafeyield}
363
364 \func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}}
365
366 This function is similar to wxYield, except that it disables the user input to
367 all program windows before calling wxYield and re-enables it again
368 afterwards. If {\it win} is not NULL, this window will remain enabled,
369 allowing the implementation of some limited user interaction.
370
371 Returns the result of the call to \helpref{::wxYield}{wxyield}.
372
373 \wxheading{Include files}
374
375 <wx/utils.h>
376
377 \membersection{::wxUninitialize}\label{wxuninitialize}
378
379 \func{void}{wxUninitialize}{\void}
380
381 This function is for use in console (wxBase) programs only. It must be called
382 once for each previous successful call to \helpref{wxInitialize}{wxinitialize}.
383
384 \wxheading{Include files}
385
386 <wx/app.h>
387
388 \membersection{::wxYield}\label{wxyield}
389
390 \func{bool}{wxYield}{\void}
391
392 Calls \helpref{wxApp::Yield}{wxappyield}.
393
394 This function is kept only for backwards compatibility, please use
395 \helpref{wxApp::Yield}{wxappyield}method instead in any new code.
396
397 \wxheading{Include files}
398
399 <wx/app.h> or <wx/utils.h>
400
401 \membersection{::wxWakeUpIdle}\label{wxwakeupidle}
402
403 \func{void}{wxWakeUpIdle}{\void}
404
405 This functions wakes up the (internal and platform dependent) idle system, i.e. it
406 will force the system to send an idle event even if the system currently {\it is}
407 idle and thus would not send any idle event until after some other event would get
408 sent. This is also useful for sending events between two threads and is used by
409 the corresponding functions \helpref{::wxPostEvent}{wxpostevent} and
410 \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
411
412 \wxheading{Include files}
413
414 <wx/app.h>
415
416 \section{Process control functions}\label{processfunctions}
417
418 The functions in this section are used to launch or terminate the other
419 processes.
420
421 \membersection{::wxExecute}\label{wxexecute}
422
423 \func{long}{wxExecute}{\param{const wxString\& }{command}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}}
424
425 \func{long}{wxExecute}{\param{char **}{argv}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}}
426
427 \func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}}
428
429 \func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}, \param{wxArrayString\& }{errors}}
430
431 Executes another program in Unix or Windows.
432
433 The first form takes a command string, such as {\tt "emacs file.txt"}.
434
435 The second form takes an array of values: a command, any number of
436 arguments, terminated by NULL.
437
438 The semantics of the third and fourth versions is different from the first two
439 and is described in more details below.
440
441 If {\it sync} is FALSE (the default), flow of control immediately returns.
442 If TRUE, the current application waits until the other program has terminated.
443
444 In the case of synchronous execution, the return value is the exit code of
445 the process (which terminates by the moment the function returns) and will be
446 $-1$ if the process couldn't be started and typically 0 if the process
447 terminated successfully. Also, while waiting for the process to
448 terminate, wxExecute will call \helpref{wxYield}{wxyield}. The caller
449 should ensure that this can cause no recursion, in the simplest case by
450 calling \helpref{wxEnableTopLevelWindows(FALSE)}{wxenabletoplevelwindows}.
451
452 For asynchronous execution, however, the return value is the process id and
453 zero value indicates that the command could not be executed. As an added
454 complication, the return value of $-1$ in this case indicattes that we didn't
455 launch a new process, but connected to the running one (this can only happen in
456 case of using DDE under Windows for command execution). In particular, in this,
457 and only this, case the calling code will not get the notification about
458 process termination.
459
460 If callback isn't NULL and if execution is asynchronous (note that callback
461 parameter can not be non-NULL for synchronous execution),
462 \helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when
463 the process finishes.
464
465 Finally, you may use the third overloaded version of this function to execute
466 a process (always synchronously) and capture its output in the array
467 {\it output}. The fourth version adds the possibility to additionally capture
468 the messages from standard error output in the {\it errors} array.
469
470 See also \helpref{wxShell}{wxshell}, \helpref{wxProcess}{wxprocess},
471 \helpref{Exec sample}{sampleexec}.
472
473 \wxheading{Include files}
474
475 <wx/utils.h>
476
477 \membersection{::wxExit}\label{wxexit}
478
479 \func{void}{wxExit}{\void}
480
481 Exits application after calling \helpref{wxApp::OnExit}{wxapponexit}.
482 Should only be used in an emergency: normally the top-level frame
483 should be deleted (after deleting all other frames) to terminate the
484 application. See \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} and \helpref{wxApp}{wxapp}.
485
486 \wxheading{Include files}
487
488 <wx/app.h>
489
490 \membersection{::wxKill}\label{wxkill}
491
492 \func{int}{wxKill}{\param{long}{ pid}, \param{int}{ sig = wxSIGTERM}, \param{wxKillError }{*rc = NULL}}
493
494 Equivalent to the Unix kill function: send the given signal {\it sig} to the
495 process with PID {\it pid}. The valud signal values are
496
497 \begin{verbatim}
498 enum wxSignal
499 {
500 wxSIGNONE = 0, // verify if the process exists under Unix
501 wxSIGHUP,
502 wxSIGINT,
503 wxSIGQUIT,
504 wxSIGILL,
505 wxSIGTRAP,
506 wxSIGABRT,
507 wxSIGEMT,
508 wxSIGFPE,
509 wxSIGKILL, // forcefully kill, dangerous!
510 wxSIGBUS,
511 wxSIGSEGV,
512 wxSIGSYS,
513 wxSIGPIPE,
514 wxSIGALRM,
515 wxSIGTERM // terminate the process gently
516 };
517 \end{verbatim}
518
519 {\tt wxSIGNONE}, {\tt wxSIGKILL} and {\tt wxSIGTERM} have the same meaning
520 under both Unix and Windows but all the other signals are equivalent to
521 {\tt wxSIGTERM} under Windows.
522
523 Returns 0 on success, -1 on failure. If {\it rc} parameter is not NULL, it will
524 be filled with an element of {\tt wxKillError} enum:
525
526 \begin{verbatim}
527 enum wxKillError
528 {
529 wxKILL_OK, // no error
530 wxKILL_BAD_SIGNAL, // no such signal
531 wxKILL_ACCESS_DENIED, // permission denied
532 wxKILL_NO_PROCESS, // no such process
533 wxKILL_ERROR // another, unspecified error
534 };
535 \end{verbatim}
536
537 \wxheading{See also}
538
539 \helpref{wxProcess::Kill}{wxprocesskill},\rtfsp
540 \helpref{wxProcess::Exists}{wxprocessexists},\rtfsp
541 \helpref{Exec sample}{sampleexec}
542
543 \wxheading{Include files}
544
545 <wx/utils.h>
546
547 \membersection{::wxShell}\label{wxshell}
548
549 \func{bool}{wxShell}{\param{const wxString\& }{command = NULL}}
550
551 Executes a command in an interactive shell window. If no command is
552 specified, then just the shell is spawned.
553
554 See also \helpref{wxExecute}{wxexecute}, \helpref{Exec sample}{sampleexec}.
555
556 \wxheading{Include files}
557
558 <wx/utils.h>
559
560
561 \section{Thread functions}\label{threadfunctions}
562
563 \wxheading{Include files}
564
565 <wx/thread.h>
566
567 \wxheading{See also}
568
569 \helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex}, \helpref{Multithreading overview}{wxthreadoverview}
570
571 \membersection{::wxMutexGuiEnter}\label{wxmutexguienter}
572
573 \func{void}{wxMutexGuiEnter}{\void}
574
575 This function must be called when any thread other than the main GUI thread
576 wants to get access to the GUI library. This function will block the execution
577 of the calling thread until the main thread (or any other thread holding the
578 main GUI lock) leaves the GUI library and no other thread will enter the GUI
579 library until the calling thread calls \helpref{::wxMutexGuiLeave()}{wxmutexguileave}.
580
581 Typically, these functions are used like this:
582
583 \begin{verbatim}
584 void MyThread::Foo(void)
585 {
586 // before doing any GUI calls we must ensure that this thread is the only
587 // one doing it!
588
589 wxMutexGuiEnter();
590
591 // Call GUI here:
592 my_window->DrawSomething();
593
594 wxMutexGuiLeave();
595 }
596 \end{verbatim}
597
598 Note that under GTK, no creation of top-level windows is allowed in any
599 thread but the main one.
600
601 This function is only defined on platforms which support preemptive
602 threads.
603
604 \membersection{::wxMutexGuiLeave}\label{wxmutexguileave}
605
606 \func{void}{wxMutexGuiLeave}{\void}
607
608 See \helpref{::wxMutexGuiEnter()}{wxmutexguienter}.
609
610 This function is only defined on platforms which support preemptive
611 threads.
612
613 \section{File functions}\label{filefunctions}
614
615 \wxheading{Include files}
616
617 <wx/utils.h>
618
619 \wxheading{See also}
620
621 \helpref{wxPathList}{wxpathlist}\\
622 \helpref{wxDir}{wxdir}\\
623 \helpref{wxFile}{wxfile}\\
624 \helpref{wxFileName}{wxfilename}
625
626 \membersection{::wxDirExists}\label{wxdirexists}
627
628 \func{bool}{wxDirExists}{\param{const wxString\& }{dirname}}
629
630 Returns TRUE if the directory exists.
631
632 \membersection{::wxDos2UnixFilename}\label{wxdos2unixfilename}
633
634 \func{void}{wxDos2UnixFilename}{\param{wxChar *}{s}}
635
636 Converts a DOS to a Unix filename by replacing backslashes with forward
637 slashes.
638
639 \membersection{::wxFileExists}\label{wxfileexists}
640
641 \func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
642
643 Returns TRUE if the file exists. It also returns TRUE if the file is
644 a directory.
645
646 \membersection{::wxFileModificationTime}\label{wxfilemodificationtime}
647
648 \func{time\_t}{wxFileModificationTime}{\param{const wxString\& }{filename}}
649
650 Returns time of last modification of given file.
651
652 \membersection{::wxFileNameFromPath}\label{wxfilenamefrompath}
653
654 \func{wxString}{wxFileNameFromPath}{\param{const wxString\& }{path}}
655
656 \func{char *}{wxFileNameFromPath}{\param{char *}{path}}
657
658 Returns the filename for a full path. The second form returns a pointer to
659 temporary storage that should not be deallocated.
660
661 \membersection{::wxFindFirstFile}\label{wxfindfirstfile}
662
663 \func{wxString}{wxFindFirstFile}{\param{const char *}{spec}, \param{int}{ flags = 0}}
664
665 This function does directory searching; returns the first file
666 that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to
667 get the next matching file. Neither will report the current directory "." or the
668 parent directory "..".
669
670 {\it spec} may contain wildcards.
671
672 {\it flags} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either.
673
674 For example:
675
676 \begin{verbatim}
677 wxString f = wxFindFirstFile("/home/project/*.*");
678 while ( !f.IsEmpty() )
679 {
680 ...
681 f = wxFindNextFile();
682 }
683 \end{verbatim}
684
685 \membersection{::wxFindNextFile}\label{wxfindnextfile}
686
687 \func{wxString}{wxFindNextFile}{\void}
688
689 Returns the next file that matches the path passed to \helpref{wxFindFirstFile}{wxfindfirstfile}.
690
691 See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example.
692
693 \membersection{::wxGetDiskSpace}\label{wxgetdiskspace}
694
695 \func{bool}{wxGetDiskSpace}{\param{const wxString\& }{path}, \param{wxLongLong }{*total = NULL}, \param{wxLongLong }{*free = NULL}}
696
697 This function returns the total number of bytes and number of free bytes on
698 the disk containing the directory {\it path} (it should exist). Both
699 {\it total} and {\it free} parameters may be {\tt NULL} if the corresponding
700 information is not needed.
701
702 \wxheading{Returns}
703
704 {\tt TRUE} on success, {\tt FALSE} if an error occured (for example, the
705 directory doesn't exist).
706
707 \wxheading{Portability}
708
709 This function is implemented for Win16 (only for drives less than 2Gb), Win32,
710 Mac OS and generic Unix provided the system has {\tt statfs()} function.
711
712 This function first appeared in wxWindows 2.3.2.
713
714 \membersection{::wxGetOSDirectory}\label{wxgetosdirectory}
715
716 \func{wxString}{wxGetOSDirectory}{\void}
717
718 Returns the Windows directory under Windows; on other platforms returns the empty string.
719
720 \membersection{::wxIsAbsolutePath}\label{wxisabsolutepath}
721
722 \func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}}
723
724 Returns TRUE if the argument is an absolute filename, i.e. with a slash
725 or drive name at the beginning.
726
727 \membersection{::wxPathOnly}\label{wxpathonly}
728
729 \func{wxString}{wxPathOnly}{\param{const wxString\& }{path}}
730
731 Returns the directory part of the filename.
732
733 \membersection{::wxUnix2DosFilename}\label{wxunix2dosfilename}
734
735 \func{void}{wxUnix2DosFilename}{\param{const wxString\& }{s}}
736
737 Converts a Unix to a DOS filename by replacing forward
738 slashes with backslashes.
739
740 \membersection{::wxConcatFiles}\label{wxconcatfiles}
741
742 \func{bool}{wxConcatFiles}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2},
743 \param{const wxString\& }{file3}}
744
745 Concatenates {\it file1} and {\it file2} to {\it file3}, returning
746 TRUE if successful.
747
748 \membersection{::wxCopyFile}\label{wxcopyfile}
749
750 \func{bool}{wxCopyFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}, \param{bool }{overwrite = TRUE}}
751
752 Copies {\it file1} to {\it file2}, returning TRUE if successful. If
753 {\it overwrite} parameter is TRUE (default), the destination file is overwritten
754 if it exists, but if {\it overwrite} is FALSE, the functions failes in this
755 case.
756
757 \membersection{::wxGetCwd}\label{wxgetcwd}
758
759 \func{wxString}{wxGetCwd}{\void}
760
761 Returns a string containing the current (or working) directory.
762
763 \membersection{::wxGetWorkingDirectory}\label{wxgetworkingdirectory}
764
765 \func{wxString}{wxGetWorkingDirectory}{\param{char *}{buf=NULL}, \param{int }{sz=1000}}
766
767 This function is obsolete: use \helpref{wxGetCwd}{wxgetcwd} instead.
768
769 Copies the current working directory into the buffer if supplied, or
770 copies the working directory into new storage (which you must delete yourself)
771 if the buffer is NULL.
772
773 {\it sz} is the size of the buffer if supplied.
774
775 \membersection{::wxGetTempFileName}\label{wxgettempfilename}
776
777 \func{char *}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{char *}{buf=NULL}}
778
779 \func{bool}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{wxString\& }{buf}}
780
781 %% Makes a temporary filename based on {\it prefix}, opens and closes the file,
782 %% and places the name in {\it buf}. If {\it buf} is NULL, new store
783 %% is allocated for the temporary filename using {\it new}.
784 %%
785 %% Under Windows, the filename will include the drive and name of the
786 %% directory allocated for temporary files (usually the contents of the
787 %% TEMP variable). Under Unix, the {\tt /tmp} directory is used.
788 %%
789 %% It is the application's responsibility to create and delete the file.
790
791 These functions are obsolete, please use\rtfsp
792 \helpref{wxFileName::CreateTempFileName}{wxfilenamecreatetempfilename}\rtfsp
793 instead.
794
795 \membersection{::wxIsWild}\label{wxiswild}
796
797 \func{bool}{wxIsWild}{\param{const wxString\& }{pattern}}
798
799 Returns TRUE if the pattern contains wildcards. See \helpref{wxMatchWild}{wxmatchwild}.
800
801 \membersection{::wxMatchWild}\label{wxmatchwild}
802
803 \func{bool}{wxMatchWild}{\param{const wxString\& }{pattern}, \param{const wxString\& }{text}, \param{bool}{ dot\_special}}
804
805 Returns TRUE if the {\it pattern}\/ matches the {\it text}\/; if {\it
806 dot\_special}\/ is TRUE, filenames beginning with a dot are not matched
807 with wildcard characters. See \helpref{wxIsWild}{wxiswild}.
808
809 \membersection{::wxMkdir}\label{wxmkdir}
810
811 \func{bool}{wxMkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}}
812
813 Makes the directory {\it dir}, returning TRUE if successful.
814
815 {\it perm} is the access mask for the directory for the systems on which it is
816 supported (Unix) and doesn't have effect for the other ones.
817
818 \membersection{::wxRemoveFile}\label{wxremovefile}
819
820 \func{bool}{wxRemoveFile}{\param{const wxString\& }{file}}
821
822 Removes {\it file}, returning TRUE if successful.
823
824 \membersection{::wxRenameFile}\label{wxrenamefile}
825
826 \func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
827
828 Renames {\it file1} to {\it file2}, returning TRUE if successful.
829
830 \membersection{::wxRmdir}\label{wxrmdir}
831
832 \func{bool}{wxRmdir}{\param{const wxString\& }{dir}, \param{int}{ flags=0}}
833
834 Removes the directory {\it dir}, returning TRUE if successful. Does not work under VMS.
835
836 The {\it flags} parameter is reserved for future use.
837
838 \membersection{::wxSetWorkingDirectory}\label{wxsetworkingdirectory}
839
840 \func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}}
841
842 Sets the current working directory, returning TRUE if the operation succeeded.
843 Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification.
844
845 \membersection{::wxSplitPath}\label{wxsplitfunction}
846
847 \func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{wxString *}{ path}, \param{wxString *}{ name}, \param{wxString *}{ ext}}
848
849 This function splits a full file name into components: the path (including possible disk/drive
850 specification under Windows), the base name and the extension. Any of the output parameters
851 ({\it path}, {\it name} or {\it ext}) may be NULL if you are not interested in the value of
852 a particular component.
853
854 wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under
855 Windows, however it will not consider backslashes as path separators under Unix (where backslash
856 is a valid character in a filename).
857
858 On entry, {\it fullname} should be non-NULL (it may be empty though).
859
860 On return, {\it path} contains the file path (without the trailing separator), {\it name}
861 contains the file name and {\it ext} contains the file extension without leading dot. All
862 three of them may be empty if the corresponding component is. The old contents of the
863 strings pointed to by these parameters will be overwritten in any case (if the pointers
864 are not NULL).
865
866 \membersection{::wxTransferFileToStream}\label{wxtransferfiletostream}
867
868 \func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}}
869
870 Copies the given file to {\it stream}. Useful when converting an old application to
871 use streams (within the document/view framework, for example).
872
873 \wxheading{Include files}
874
875 <wx/docview.h>
876
877 \membersection{::wxTransferStreamToFile}\label{wxtransferstreamtofile}
878
879 \func{bool}{wxTransferStreamToFile}{\param{istream\& }{stream} \param{const wxString\& }{filename}}
880
881 Copies the given stream to the file {\it filename}. Useful when converting an old application to
882 use streams (within the document/view framework, for example).
883
884 \wxheading{Include files}
885
886 <wx/docview.h>
887
888 \section{Network, user and OS functions}\label{networkfunctions}
889
890 The functions in this section are used to retrieve information about the
891 current computer and/or user characteristics.
892
893 \membersection{::wxGetFreeMemory}\label{wxgetfreememory}
894
895 \func{long}{wxGetFreeMemory}{\void}
896
897 Returns the amount of free memory in bytes under environments which
898 support it, and -1 if not supported. Currently, it is supported only
899 under Windows, Linux and Solaris.
900
901 \wxheading{Include files}
902
903 <wx/utils.h>
904
905 \membersection{::wxGetFullHostName}\label{wxgetfullhostname}
906
907 \func{wxString}{wxGetFullHostName}{\void}
908
909 Returns the FQDN (fully qualified domain host name) or an empty string on
910 error.
911
912 \wxheading{See also}
913
914 \helpref{wxGetHostName}{wxgethostname}
915
916 \wxheading{Include files}
917
918 <wx/utils.h>
919
920 \membersection{::wxGetEmailAddress}\label{wxgetemailaddress}
921
922 \func{bool}{wxGetEmailAddress}{\param{const wxString\& }{buf}, \param{int }{sz}}
923
924 Copies the user's email address into the supplied buffer, by
925 concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp
926 and \helpref{wxGetUserId}{wxgetuserid}.
927
928 Returns TRUE if successful, FALSE otherwise.
929
930 \wxheading{Include files}
931
932 <wx/utils.h>
933
934 \membersection{::wxGetHomeDir}\label{wxgethomedir}
935
936 \func{wxString}{wxGetHomeDir}{\void}
937
938 Return the (current) user's home directory.
939
940 \wxheading{See also}
941
942 \helpref{wxGetUserHome}{wxgetuserhome}
943
944 \wxheading{Include files}
945
946 <wx/utils.h>
947
948 \membersection{::wxGetHostName}\label{wxgethostname}
949
950 \func{wxString}{wxGetHostName}{\void}
951
952 \func{bool}{wxGetHostName}{\param{char * }{buf}, \param{int }{sz}}
953
954 Copies the current host machine's name into the supplied buffer. Please note
955 that the returned name is {\it not} fully qualified, i.e. it does not include
956 the domain name.
957
958 Under Windows or NT, this function first looks in the environment
959 variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp
960 in the {\bf wxWindows} section of the WIN.INI file is tried.
961
962 The first variant of this function returns the hostname if successful or an
963 empty string otherwise. The second (deprecated) function returns TRUE
964 if successful, FALSE otherwise.
965
966 \wxheading{See also}
967
968 \helpref{wxGetFullHostName}{wxgetfullhostname}
969
970 \wxheading{Include files}
971
972 <wx/utils.h>
973
974 \membersection{::wxGetUserId}\label{wxgetuserid}
975
976 \func{wxString}{wxGetUserId}{\void}
977
978 \func{bool}{wxGetUserId}{\param{char * }{buf}, \param{int }{sz}}
979
980 This function returns the "user id" also known as "login name" under Unix i.e.
981 something like "jsmith". It uniquely identifies the current user (on this system).
982
983 Under Windows or NT, this function first looks in the environment
984 variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp
985 in the {\bf wxWindows} section of the WIN.INI file is tried.
986
987 The first variant of this function returns the login name if successful or an
988 empty string otherwise. The second (deprecated) function returns TRUE
989 if successful, FALSE otherwise.
990
991 \wxheading{See also}
992
993 \helpref{wxGetUserName}{wxgetusername}
994
995 \wxheading{Include files}
996
997 <wx/utils.h>
998
999 \membersection{::wxGetOsDescription}\label{wxgetosdescription}
1000
1001 \func{wxString}{wxGetOsDescription}{\void}
1002
1003 Returns the string containing the description of the current platform in a
1004 user-readable form. For example, this function may return strings like
1005 {\tt Windows NT Version 4.0} or {\tt Linux 2.2.2 i386}.
1006
1007 \wxheading{See also}
1008
1009 \helpref{::wxGetOsVersion}{wxgetosversion}
1010
1011 \wxheading{Include files}
1012
1013 <wx/utils.h>
1014
1015 \membersection{::wxGetOsVersion}\label{wxgetosversion}
1016
1017 \func{int}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}}
1018
1019 Gets operating system version information.
1020
1021 \begin{twocollist}\itemsep=0pt
1022 \twocolitemruled{Platform}{Return types}
1023 \twocolitem{Mac OS}{Return value is wxMAC when compiled with CodeWarrior under Mac OS 8.x/9.x and Mac OS X, wxMAC\_DARWIN when compiled with the Apple Developer Tools under Mac OS X.}
1024 \twocolitem{GTK}{Return value is wxGTK, For GTK 1.0, {\it major} is 1, {\it minor} is 0. }
1025 \twocolitem{Motif}{Return value is wxMOTIF\_X, {\it major} is X version, {\it minor} is X revision.}
1026 \twocolitem{OS/2}{Return value is wxOS2\_PM.}
1027 \twocolitem{Windows 3.1}{Return value is wxWINDOWS, {\it major} is 3, {\it minor} is 1.}
1028 \twocolitem{Windows NT/2000}{Return value is wxWINDOWS\_NT, version is returned in {\it major} and {\it minor}}
1029 \twocolitem{Windows 98}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 1 or greater.}
1030 \twocolitem{Windows 95}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 0.}
1031 \twocolitem{Win32s (Windows 3.1)}{Return value is wxWIN32S, {\it major} is 3, {\it minor} is 1.}
1032 \twocolitem{Watcom C++ 386 supervisor mode (Windows 3.1)}{Return value is wxWIN386, {\it major} is 3, {\it minor} is 1.}
1033 \end{twocollist}
1034
1035 \wxheading{See also}
1036
1037 \helpref{::wxGetOsDescription}{wxgetosdescription}
1038
1039 \wxheading{Include files}
1040
1041 <wx/utils.h>
1042
1043 \membersection{::wxGetUserHome}\label{wxgetuserhome}
1044
1045 \func{const wxChar *}{wxGetUserHome}{\param{const wxString\& }{user = ""}}
1046
1047 Returns the home directory for the given user. If the username is empty
1048 (default value), this function behaves like
1049 \helpref{wxGetHomeDir}{wxgethomedir}.
1050
1051 \wxheading{Include files}
1052
1053 <wx/utils.h>
1054
1055 \membersection{::wxGetUserName}\label{wxgetusername}
1056
1057 \func{wxString}{wxGetUserName}{\void}
1058
1059 \func{bool}{wxGetUserName}{\param{char * }{buf}, \param{int }{sz}}
1060
1061 This function returns the full user name (something like "Mr. John Smith").
1062
1063 Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp
1064 in the {\bf wxWindows} section of the WIN.INI file. If PenWindows
1065 is running, the entry {\bf Current} in the section {\bf User} of
1066 the PENWIN.INI file is used.
1067
1068 The first variant of this function returns the user name if successful or an
1069 empty string otherwise. The second (deprecated) function returns {\tt TRUE}
1070 if successful, {\tt FALSE} otherwise.
1071
1072 \wxheading{See also}
1073
1074 \helpref{wxGetUserId}{wxgetuserid}
1075
1076 \wxheading{Include files}
1077
1078 <wx/utils.h>
1079
1080 \section{String functions}
1081
1082 \membersection{::copystring}\label{copystring}
1083
1084 \func{char *}{copystring}{\param{const char *}{s}}
1085
1086 Makes a copy of the string {\it s} using the C++ new operator, so it can be
1087 deleted with the {\it delete} operator.
1088
1089 This function is deprecated, use \helpref{wxString}{wxstring} class instead.
1090
1091 \membersection{::wxIsEmpty}\label{wxisempty}
1092
1093 \func{bool}{wxIsEmpty}{\param{const char *}{ p}}
1094
1095 Returns {\tt TRUE} if the pointer is either {\tt NULL} or points to an empty
1096 string, {\tt FALSE} otherwise.
1097
1098 \membersection{::wxStricmp}\label{wxstricmp}
1099
1100 \func{int}{wxStricmp}{\param{const char *}{p1}, \param{const char *}{p2}}
1101
1102 Returns a negative value, 0, or positive value if {\it p1} is less than, equal
1103 to or greater than {\it p2}. The comparison is case-insensitive.
1104
1105 This function complements the standard C function {\it strcmp()} which performs
1106 case-sensitive comparison.
1107
1108 \membersection{::wxStringMatch}\label{wxstringmatch}
1109
1110 \func{bool}{wxStringMatch}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2},\\
1111 \param{bool}{ subString = TRUE}, \param{bool}{ exact = FALSE}}
1112
1113 Returns {\tt TRUE} if the substring {\it s1} is found within {\it s2},
1114 ignoring case if {\it exact} is FALSE. If {\it subString} is {\tt FALSE},
1115 no substring matching is done.
1116
1117 This function is obsolete, use \helpref{wxString::Find}{wxstringfind} instead.
1118
1119 \membersection{::wxStringEq}\label{wxstringeq}
1120
1121 \func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}}
1122
1123 A macro defined as:
1124
1125 \begin{verbatim}
1126 #define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
1127 \end{verbatim}
1128
1129 This function is obsolete, use \helpref{wxString}{wxstring} instead.
1130
1131 \membersection{::wxStrlen}\label{wxstrlen}
1132
1133 \func{size\_t}{wxStrlen}{\param{const char *}{ p}}
1134
1135 This is a safe version of standard function {\it strlen()}: it does exactly the
1136 same thing (i.e. returns the length of the string) except that it returns 0 if
1137 {\it p} is the {\tt NULL} pointer.
1138
1139 \membersection{::wxGetTranslation}\label{wxgettranslation}
1140
1141 \func{const char *}{wxGetTranslation}{\param{const char * }{str}}
1142
1143 This function returns the translation of string {\it str} in the current
1144 \helpref{locale}{wxlocale}. If the string is not found in any of the loaded
1145 message catalogs (see \helpref{internationalization overview}{internationalization}), the
1146 original string is returned. In debug build, an error message is logged - this
1147 should help to find the strings which were not yet translated. As this function
1148 is used very often, an alternative syntax is provided: the \_() macro is
1149 defined as wxGetTranslation().
1150
1151 \membersection{::wxSnprintf}\label{wxsnprintf}
1152
1153 \func{int}{wxSnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{}{...}}
1154
1155 This function replaces the dangerous standard function {\tt sprintf()} and is
1156 like {\tt snprintf()} available on some platforms. The only difference with
1157 sprintf() is that an additional argument - buffer size - is taken and the
1158 buffer is never overflowed.
1159
1160 Returns the number of characters copied to the buffer or -1 if there is not
1161 enough space.
1162
1163 \wxheading{See also}
1164
1165 \helpref{wxVsnprintf}{wxvsnprintf}, \helpref{wxString::Printf}{wxstringprintf}
1166
1167 \membersection{::wxToLower}\label{wxtolower}
1168
1169 \func{char}{wxToLower}{\param{char }{ch}}
1170
1171 Converts the character to lower case. This is implemented as a macro for efficiency.
1172
1173 \wxheading{Include files}
1174
1175 <wx/utils.h>
1176
1177 \membersection{::wxToUpper}\label{wxtoupper}
1178
1179 \func{char}{wxToUpper}{\param{char }{ch}}
1180
1181 Converts the character to upper case. This is implemented as a macro for efficiency.
1182
1183 \wxheading{Include files}
1184
1185 <wx/utils.h>
1186
1187 \membersection{::wxVsnprintf}\label{wxvsnprintf}
1188
1189 \func{int}{wxVsnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{va\_list }{argPtr}}
1190
1191 The same as \helpref{wxSnprintf}{wxsnprintf} but takes a {\tt va\_list }
1192 argument instead of arbitrary number of parameters.
1193
1194 \wxheading{See also}
1195
1196 \helpref{wxSnprintf}{wxsnprintf}, \helpref{wxString::PrintfV}{wxstringprintfv}
1197
1198 \section{Dialog functions}\label{dialogfunctions}
1199
1200 Below are a number of convenience functions for getting input from the
1201 user or displaying messages. Note that in these functions the last three
1202 parameters are optional. However, it is recommended to pass a parent frame
1203 parameter, or (in MS Windows or Motif) the wrong window frame may be brought to
1204 the front when the dialog box is popped up.
1205
1206 \membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor}
1207
1208 \func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}}
1209
1210 Changes the cursor to the given cursor for all windows in the application.
1211 Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back
1212 to its previous state. These two calls can be nested, and a counter
1213 ensures that only the outer calls take effect.
1214
1215 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1216
1217 \wxheading{Include files}
1218
1219 <wx/utils.h>
1220
1221 \membersection{::wxBell}\label{wxbell}
1222
1223 \func{void}{wxBell}{\void}
1224
1225 Ring the system bell.
1226
1227 \wxheading{Include files}
1228
1229 <wx/utils.h>
1230
1231 \membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider}
1232
1233 \func{wxTipProvider *}{wxCreateFileTipProvider}{\param{const wxString\& }{filename},
1234 \param{size\_t }{currentTip}}
1235
1236 This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be
1237 used with \helpref{wxShowTip}{wxshowtip}.
1238
1239 \docparam{filename}{The name of the file containing the tips, one per line}
1240 \docparam{currentTip}{The index of the first tip to show - normally this index
1241 is remembered between the 2 program runs.}
1242
1243 \wxheading{See also}
1244
1245 \helpref{Tips overview}{tipsoverview}
1246
1247 \wxheading{Include files}
1248
1249 <wx/tipdlg.h>
1250
1251 \membersection{::wxDirSelector}\label{wxdirselector}
1252
1253 \func{wxString}{wxDirSelector}{\param{const wxString\& }{message = wxDirSelectorPromptStr},\\
1254 \param{const wxString\& }{default\_path = ""},\\
1255 \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition},\\
1256 \param{wxWindow *}{parent = NULL}}
1257
1258 Pops up a directory selector dialog. The arguments have the same meaning as
1259 those of wxDirDialog::wxDirDialog(). The message is displayed at the top,
1260 and the default\_path, if specified, is set as the initial selection.
1261
1262 The application must check for an empty return value (if the user pressed
1263 Cancel). For example:
1264
1265 \begin{verbatim}
1266 const wxString& dir = wxDirSelector("Choose a folder");
1267 if ( !dir.empty() )
1268 {
1269 ...
1270 }
1271 \end{verbatim}
1272
1273 \wxheading{Include files}
1274
1275 <wx/dirdlg.h>
1276
1277 \membersection{::wxFileSelector}\label{wxfileselector}
1278
1279 \func{wxString}{wxFileSelector}{\param{const wxString\& }{message}, \param{const wxString\& }{default\_path = ""},\\
1280 \param{const wxString\& }{default\_filename = ""}, \param{const wxString\& }{default\_extension = ""},\\
1281 \param{const wxString\& }{wildcard = ``*.*''}, \param{int }{flags = 0}, \param{wxWindow *}{parent = ""},\\
1282 \param{int}{ x = -1}, \param{int}{ y = -1}}
1283
1284 Pops up a file selector box. In Windows, this is the common file selector
1285 dialog. In X, this is a file selector box with the same functionality.
1286 The path and filename are distinct elements of a full file pathname.
1287 If path is empty, the current directory will be used. If filename is empty,
1288 no default filename will be supplied. The wildcard determines what files
1289 are displayed in the file selector, and file extension supplies a type
1290 extension for the required filename. Flags may be a combination of wxOPEN,
1291 wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, wxFILE\_MUST\_EXIST, wxMULTIPLE or 0.
1292
1293 Both the Unix and Windows versions implement a wildcard filter. Typing a
1294 filename containing wildcards (*, ?) in the filename text item, and
1295 clicking on Ok, will result in only those files matching the pattern being
1296 displayed.
1297
1298 The wildcard may be a specification for multiple types of file
1299 with a description for each, such as:
1300
1301 \begin{verbatim}
1302 "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
1303 \end{verbatim}
1304
1305 The application must check for an empty return value (the user pressed
1306 Cancel). For example:
1307
1308 \begin{verbatim}
1309 const wxString& s = wxFileSelector("Choose a file to open");
1310 if (s)
1311 {
1312 ...
1313 }
1314 \end{verbatim}
1315
1316 \wxheading{Include files}
1317
1318 <wx/filedlg.h>
1319
1320 \membersection{::wxEndBusyCursor}\label{wxendbusycursor}
1321
1322 \func{void}{wxEndBusyCursor}{\void}
1323
1324 Changes the cursor back to the original cursor, for all windows in the application.
1325 Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1326
1327 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1328
1329 \wxheading{Include files}
1330
1331 <wx/utils.h>
1332
1333 \membersection{::wxGetColourFromUser}\label{wxgetcolourfromuser}
1334
1335 \func{wxColour}{wxGetColourFromUser}{\param{wxWindow *}{parent}, \param{const wxColour\& }{colInit}}
1336
1337 Shows the colour selection dialog and returns the colour selected by user or
1338 invalid colour (use \helpref{wxColour::Ok}{wxcolourok} to test whether a colour
1339 is valid) if the dialog was cancelled.
1340
1341 \wxheading{Parameters}
1342
1343 \docparam{parent}{The parent window for the colour selection dialog}
1344
1345 \docparam{colInit}{If given, this will be the colour initially selected in the dialog.}
1346
1347 \wxheading{Include files}
1348
1349 <wx/colordlg.h>
1350
1351 \membersection{::wxGetMultipleChoices}\label{wxgetmultiplechoices}
1352
1353 \func{size\_t}{wxGetMultipleChoices}{\\
1354 \param{wxArrayInt\& }{selections},\\
1355 \param{const wxString\& }{message},\\
1356 \param{const wxString\& }{caption},\\
1357 \param{const wxArrayString\& }{aChoices},\\
1358 \param{wxWindow *}{parent = NULL},\\
1359 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1360 \param{bool}{ centre = TRUE},\\
1361 \param{int }{width=150}, \param{int }{height=200}}
1362
1363 \func{size\_t}{wxGetMultipleChoices}{\\
1364 \param{wxArrayInt\& }{selections},\\
1365 \param{const wxString\& }{message},\\
1366 \param{const wxString\& }{caption},\\
1367 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1368 \param{wxWindow *}{parent = NULL},\\
1369 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1370 \param{bool}{ centre = TRUE},\\
1371 \param{int }{width=150}, \param{int }{height=200}}
1372
1373 Pops up a dialog box containing a message, OK/Cancel buttons and a
1374 multiple-selection listbox. The user may choose an arbitrary (including 0)
1375 number of items in the listbox whose indices will be returned in
1376 {\it selection} array. The initial contents of this array will be used to
1377 select the items when the dialog is shown.
1378
1379 You may pass the list of strings to choose from either using {\it choices}
1380 which is an array of {\it n} strings for the listbox or by using a single
1381 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1382
1383 If {\it centre} is TRUE, the message text (which may include new line
1384 characters) is centred; if FALSE, the message is left-justified.
1385
1386 \wxheading{Include files}
1387
1388 <wx/choicdlg.h>
1389
1390 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1391 and {\tt choices}, and no {\tt selections} parameter; the function
1392 returns an array containing the user selections.}
1393
1394 \membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
1395
1396 \func{long}{wxGetNumberFromUser}{
1397 \param{const wxString\& }{message},
1398 \param{const wxString\& }{prompt},
1399 \param{const wxString\& }{caption},
1400 \param{long }{value},
1401 \param{long }{min = 0},
1402 \param{long }{max = 100},
1403 \param{wxWindow *}{parent = NULL},
1404 \param{const wxPoint\& }{pos = wxDefaultPosition}}
1405
1406 Shows a dialog asking the user for numeric input. The dialogs title is set to
1407 {\it caption}, it contains a (possibly) multiline {\it message} above the
1408 single line {\it prompt} and the zone for entering the number.
1409
1410 The number entered must be in the range {\it min}..{\it max} (both of which
1411 should be positive) and {\it value} is the initial value of it. If the user
1412 enters an invalid value or cancels the dialog, the function will return -1.
1413
1414 Dialog is centered on its {\it parent} unless an explicit position is given in
1415 {\it pos}.
1416
1417 \wxheading{Include files}
1418
1419 <wx/textdlg.h>
1420
1421 \membersection{::wxGetPasswordFromUser}\label{wxgetpasswordfromuser}
1422
1423 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1424 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL}}
1425
1426 Similar to \helpref{wxGetTextFromUser}{wxgettextfromuser} but the text entered
1427 in the dialog is not shown on screen but replaced with stars. This is intended
1428 to be used for entering passwords as the function name implies.
1429
1430 \wxheading{Include files}
1431
1432 <wx/textdlg.h>
1433
1434 \membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
1435
1436 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1437 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\
1438 \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = TRUE}}
1439
1440 Pop up a dialog box with title set to {\it caption}, {\it message}, and a
1441 \rtfsp{\it default\_value}. The user may type in text and press OK to return this text,
1442 or press Cancel to return the empty string.
1443
1444 If {\it centre} is TRUE, the message text (which may include new line characters)
1445 is centred; if FALSE, the message is left-justified.
1446
1447 \wxheading{Include files}
1448
1449 <wx/textdlg.h>
1450
1451 \membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice}
1452
1453 \func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1454 \param{int }{nsel}, \param{int *}{selection},
1455 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1456 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1457
1458 Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
1459 listbox. The user may choose one or more item(s) and press OK or Cancel.
1460
1461 The number of initially selected choices, and array of the selected indices,
1462 are passed in; this array will contain the user selections on exit, with
1463 the function returning the number of selections. {\it selection} must be
1464 as big as the number of choices, in case all are selected.
1465
1466 If Cancel is pressed, -1 is returned.
1467
1468 {\it choices} is an array of {\it n} strings for the listbox.
1469
1470 If {\it centre} is TRUE, the message text (which may include new line characters)
1471 is centred; if FALSE, the message is left-justified.
1472
1473 \wxheading{Include files}
1474
1475 <wx/choicdlg.h>
1476
1477 \membersection{::wxGetSingleChoice}\label{wxgetsinglechoice}
1478
1479 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1480 \param{const wxString\& }{caption},\\
1481 \param{const wxArrayString\& }{aChoices},\\
1482 \param{wxWindow *}{parent = NULL},\\
1483 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1484 \param{bool}{ centre = TRUE},\\
1485 \param{int }{width=150}, \param{int }{height=200}}
1486
1487 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1488 \param{const wxString\& }{caption},\\
1489 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1490 \param{wxWindow *}{parent = NULL},\\
1491 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1492 \param{bool}{ centre = TRUE},\\
1493 \param{int }{width=150}, \param{int }{height=200}}
1494
1495 Pops up a dialog box containing a message, OK/Cancel buttons and a
1496 single-selection listbox. The user may choose an item and press OK to return a
1497 string or Cancel to return the empty string. Use
1498 \helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex} if empty string is a
1499 valid choice and if you want to be able to detect pressing Cancel reliably.
1500
1501 You may pass the list of strings to choose from either using {\it choices}
1502 which is an array of {\it n} strings for the listbox or by using a single
1503 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1504
1505 If {\it centre} is TRUE, the message text (which may include new line
1506 characters) is centred; if FALSE, the message is left-justified.
1507
1508 \wxheading{Include files}
1509
1510 <wx/choicdlg.h>
1511
1512 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1513 and {\tt choices}.}
1514
1515 \membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex}
1516
1517 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1518 \param{const wxString\& }{caption},\\
1519 \param{const wxArrayString\& }{aChoices},\\
1520 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1521 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1522
1523 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1524 \param{const wxString\& }{caption},\\
1525 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1526 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1527 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1528
1529 As {\bf wxGetSingleChoice} but returns the index representing the selected
1530 string. If the user pressed cancel, -1 is returned.
1531
1532 \wxheading{Include files}
1533
1534 <wx/choicdlg.h>
1535
1536 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1537 and {\tt choices}.}
1538
1539 \membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata}
1540
1541 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1542 \param{const wxString\& }{caption},\\
1543 \param{const wxArrayString\& }{aChoices},\\
1544 \param{const wxString\& }{client\_data[]},\\
1545 \param{wxWindow *}{parent = NULL},\\
1546 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1547 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1548
1549 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1550 \param{const wxString\& }{caption},\\
1551 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1552 \param{const wxString\& }{client\_data[]},\\
1553 \param{wxWindow *}{parent = NULL},\\
1554 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1555 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1556
1557 As {\bf wxGetSingleChoice} but takes an array of client data pointers
1558 corresponding to the strings, and returns one of these pointers or NULL if
1559 Cancel was pressed. The {\it client\_data} array must have the same number of
1560 elements as {\it choices} or {\it aChoices}!
1561
1562 \wxheading{Include files}
1563
1564 <wx/choicdlg.h>
1565
1566 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1567 and {\tt choices}, and the client data array must have the
1568 same length as the choices array.}
1569
1570 \membersection{::wxIsBusy}\label{wxisbusy}
1571
1572 \func{bool}{wxIsBusy}{\void}
1573
1574 Returns TRUE if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
1575 \helpref{wxEndBusyCursor}{wxendbusycursor} calls.
1576
1577 See also \helpref{wxBusyCursor}{wxbusycursor}.
1578
1579 \wxheading{Include files}
1580
1581 <wx/utils.h>
1582
1583 \membersection{::wxMessageBox}\label{wxmessagebox}
1584
1585 \func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK \pipe wxCENTRE},\\
1586 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}}
1587
1588 General purpose message dialog. {\it style} may be a bit list of the
1589 following identifiers:
1590
1591 \begin{twocollist}\itemsep=0pt
1592 \twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
1593 wxCANCEL.}
1594 \twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
1595 wxYES\_NO or wxOK.}
1596 \twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.}
1597 \twocolitem{wxCENTRE}{Centres the text.}
1598 \twocolitem{wxICON\_EXCLAMATION}{Displays an exclamation mark symbol.}
1599 \twocolitem{wxICON\_HAND}{Displays an error symbol.}
1600 \twocolitem{wxICON\_ERROR}{Displays an error symbol - the same as wxICON\_HAND.}
1601 \twocolitem{wxICON\_QUESTION}{Displays a question mark symbol.}
1602 \twocolitem{wxICON\_INFORMATION}{Displays an information symbol.}
1603 \end{twocollist}
1604
1605 The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
1606
1607 For example:
1608
1609 \begin{verbatim}
1610 ...
1611 int answer = wxMessageBox("Quit program?", "Confirm",
1612 wxYES_NO | wxCANCEL, main_frame);
1613 if (answer == wxYES)
1614 delete main_frame;
1615 ...
1616 \end{verbatim}
1617
1618 {\it message} may contain newline characters, in which case the
1619 message will be split into separate lines, to cater for large messages.
1620
1621 Under Windows, the native MessageBox function is used unless wxCENTRE
1622 is specified in the style, in which case a generic function is used.
1623 This is because the native MessageBox function cannot centre text.
1624 The symbols are not shown when the generic function is used.
1625
1626 \wxheading{Include files}
1627
1628 <wx/msgdlg.h>
1629
1630 \membersection{::wxShowTip}\label{wxshowtip}
1631
1632 \func{bool}{wxShowTip}{\param{wxWindow *}{parent},
1633 \param{wxTipProvider *}{tipProvider},
1634 \param{bool }{showAtStartup = TRUE}}
1635
1636 This function shows a "startup tip" to the user.
1637
1638 \docparam{parent}{The parent window for the modal dialog}
1639
1640 \docparam{tipProvider}{An object which is used to get the text of the tips.
1641 It may be created with the \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.}
1642
1643 \docparam{showAtStartup}{Should be TRUE if startup tips are shown, FALSE
1644 otherwise. This is used as the initial value for "Show tips at startup"
1645 checkbox which is shown in the tips dialog.}
1646
1647 \wxheading{See also}
1648
1649 \helpref{Tips overview}{tipsoverview}
1650
1651 \wxheading{Include files}
1652
1653 <wx/tipdlg.h>
1654
1655 \section{GDI functions}\label{gdifunctions}
1656
1657 The following are relevant to the GDI (Graphics Device Interface).
1658
1659 \wxheading{Include files}
1660
1661 <wx/gdicmn.h>
1662
1663 \membersection{wxBITMAP}\label{wxbitmapmacro}
1664
1665 \func{}{wxBITMAP}{bitmapName}
1666
1667 This macro loads a bitmap from either application resources (on the platforms
1668 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1669 avoid using {\tt \#ifdef}s when creating bitmaps.
1670
1671 \wxheading{See also}
1672
1673 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
1674 \helpref{wxICON}{wxiconmacro}
1675
1676 \wxheading{Include files}
1677
1678 <wx/gdicmn.h>
1679
1680 \membersection{::wxClientDisplayRect}\label{wxclientdisplayrect}
1681
1682 \func{void}{wxClientDisplayRect}{\param{int *}{x}, \param{int *}{y},
1683 \param{int *}{width}, \param{int *}{height}}
1684
1685 \func{wxRect}{wxGetClientDisplayRect}{\void}
1686
1687 Returns the dimensions of the work area on the display. On Windows
1688 this means the area not covered by the taskbar, etc. Other platforms
1689 are currently defaulting to the whole display until a way is found to
1690 provide this info for all window managers, etc.
1691
1692 \membersection{::wxColourDisplay}\label{wxcolourdisplay}
1693
1694 \func{bool}{wxColourDisplay}{\void}
1695
1696 Returns TRUE if the display is colour, FALSE otherwise.
1697
1698 \membersection{::wxDisplayDepth}\label{wxdisplaydepth}
1699
1700 \func{int}{wxDisplayDepth}{\void}
1701
1702 Returns the depth of the display (a value of 1 denotes a monochrome display).
1703
1704 \membersection{::wxDisplaySize}\label{wxdisplaysize}
1705
1706 \func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
1707
1708 \func{wxSize}{wxGetDisplaySize}{\void}
1709
1710 Returns the display size in pixels.
1711
1712 \membersection{::wxDisplaySizeMM}\label{wxdisplaysizemm}
1713
1714 \func{void}{wxDisplaySizeMM}{\param{int *}{width}, \param{int *}{height}}
1715
1716 \func{wxSize}{wxGetDisplaySizeMM}{\void}
1717
1718 Returns the display size in millimeters.
1719
1720 \membersection{::wxDROP\_ICON}\label{wxdropicon}
1721
1722 \func{wxIconOrCursor}{wxDROP\_ICON}{\param{const char *}{name}}
1723
1724 This macro creates either a cursor (MSW) or an icon (elsewhere) with the given
1725 name. Under MSW, the cursor is loaded from the resource file and the icon is
1726 loaded from XPM file under other platforms.
1727
1728 This macro should be used with
1729 \helpref{wxDropSource constructor}{wxdropsourcewxdropsource}.
1730
1731 \wxheading{Include files}
1732
1733 <wx/dnd.h>
1734
1735 \membersection{wxICON}\label{wxiconmacro}
1736
1737 \func{}{wxICON}{iconName}
1738
1739 This macro loads an icon from either application resources (on the platforms
1740 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1741 avoid using {\tt \#ifdef}s when creating icons.
1742
1743 \wxheading{See also}
1744
1745 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
1746 \helpref{wxBITMAP}{wxbitmapmacro}
1747
1748 \wxheading{Include files}
1749
1750 <wx/gdicmn.h>
1751
1752 \membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
1753
1754 \func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
1755 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
1756
1757 Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
1758 makes it into a placeable metafile by prepending a header containing the given
1759 bounding box. The bounding box may be obtained from a device context after drawing
1760 into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
1761
1762 In addition to adding the placeable metafile header, this function adds
1763 the equivalent of the following code to the start of the metafile data:
1764
1765 \begin{verbatim}
1766 SetMapMode(dc, MM_ANISOTROPIC);
1767 SetWindowOrg(dc, minX, minY);
1768 SetWindowExt(dc, maxX - minX, maxY - minY);
1769 \end{verbatim}
1770
1771 This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
1772
1773 Placeable metafiles may be imported by many Windows applications, and can be
1774 used in RTF (Rich Text Format) files.
1775
1776 {\it scale} allows the specification of scale for the metafile.
1777
1778 This function is only available under Windows.
1779
1780 \membersection{::wxSetCursor}\label{wxsetcursor}
1781
1782 \func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
1783
1784 Globally sets the cursor; only has an effect in Windows and GTK.
1785 See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
1786
1787 \section{Printer settings}\label{printersettings}
1788
1789 These routines are obsolete and should no longer be used!
1790
1791 The following functions are used to control PostScript printing. Under
1792 Windows, PostScript output can only be sent to a file.
1793
1794 \wxheading{Include files}
1795
1796 <wx/dcps.h>
1797
1798 \membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
1799
1800 \func{wxString}{wxGetPrinterCommand}{\void}
1801
1802 Gets the printer command used to print a file. The default is {\tt lpr}.
1803
1804 \membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
1805
1806 \func{wxString}{wxGetPrinterFile}{\void}
1807
1808 Gets the PostScript output filename.
1809
1810 \membersection{::wxGetPrinterMode}\label{wxgetprintermode}
1811
1812 \func{int}{wxGetPrinterMode}{\void}
1813
1814 Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
1815 The default is PS\_PREVIEW.
1816
1817 \membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
1818
1819 \func{wxString}{wxGetPrinterOptions}{\void}
1820
1821 Gets the additional options for the print command (e.g. specific printer). The default is nothing.
1822
1823 \membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
1824
1825 \func{int}{wxGetPrinterOrientation}{\void}
1826
1827 Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
1828
1829 \membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
1830
1831 \func{wxString}{wxGetPrinterPreviewCommand}{\void}
1832
1833 Gets the command used to view a PostScript file. The default depends on the platform.
1834
1835 \membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
1836
1837 \func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
1838
1839 Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
1840
1841 \membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
1842
1843 \func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
1844
1845 Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
1846
1847 \membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
1848
1849 \func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
1850
1851 Sets the printer command used to print a file. The default is {\tt lpr}.
1852
1853 \membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
1854
1855 \func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
1856
1857 Sets the PostScript output filename.
1858
1859 \membersection{::wxSetPrinterMode}\label{wxsetprintermode}
1860
1861 \func{void}{wxSetPrinterMode}{\param{int }{mode}}
1862
1863 Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
1864 The default is PS\_PREVIEW.
1865
1866 \membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
1867
1868 \func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
1869
1870 Sets the additional options for the print command (e.g. specific printer). The default is nothing.
1871
1872 \membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
1873
1874 \func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
1875
1876 Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
1877
1878 \membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
1879
1880 \func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
1881
1882 Sets the command used to view a PostScript file. The default depends on the platform.
1883
1884 \membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
1885
1886 \func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
1887
1888 Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
1889
1890 \membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
1891
1892 \func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
1893
1894 Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
1895
1896 \section{Clipboard functions}\label{clipsboard}
1897
1898 These clipboard functions are implemented for Windows only. The use of these functions
1899 is deprecated and the code is no longer maintained. Use the \helpref{wxClipboard}{wxclipboard}
1900 class instead.
1901
1902 \wxheading{Include files}
1903
1904 <wx/clipbrd.h>
1905
1906 \membersection{::wxClipboardOpen}\label{wxclipboardopen}
1907
1908 \func{bool}{wxClipboardOpen}{\void}
1909
1910 Returns TRUE if this application has already opened the clipboard.
1911
1912 \membersection{::wxCloseClipboard}\label{wxcloseclipboard}
1913
1914 \func{bool}{wxCloseClipboard}{\void}
1915
1916 Closes the clipboard to allow other applications to use it.
1917
1918 \membersection{::wxEmptyClipboard}\label{wxemptyclipboard}
1919
1920 \func{bool}{wxEmptyClipboard}{\void}
1921
1922 Empties the clipboard.
1923
1924 \membersection{::wxEnumClipboardFormats}\label{wxenumclipboardformats}
1925
1926 \func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
1927
1928 Enumerates the formats found in a list of available formats that belong
1929 to the clipboard. Each call to this function specifies a known
1930 available format; the function returns the format that appears next in
1931 the list.
1932
1933 {\it dataFormat} specifies a known format. If this parameter is zero,
1934 the function returns the first format in the list.
1935
1936 The return value specifies the next known clipboard data format if the
1937 function is successful. It is zero if the {\it dataFormat} parameter specifies
1938 the last format in the list of available formats, or if the clipboard
1939 is not open.
1940
1941 Before it enumerates the formats function, an application must open the clipboard by using the
1942 wxOpenClipboard function.
1943
1944 \membersection{::wxGetClipboardData}\label{wxgetclipboarddata}
1945
1946 \func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
1947
1948 Gets data from the clipboard.
1949
1950 {\it dataFormat} may be one of:
1951
1952 \begin{itemize}\itemsep=0pt
1953 \item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string.
1954 \item wxCF\_BITMAP: returns a new wxBitmap.
1955 \end{itemize}
1956
1957 The clipboard must have previously been opened for this call to succeed.
1958
1959 \membersection{::wxGetClipboardFormatName}\label{wxgetclipboardformatname}
1960
1961 \func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}}
1962
1963 Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
1964 length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
1965
1966 \membersection{::wxIsClipboardFormatAvailable}\label{wxisclipboardformatavailable}
1967
1968 \func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
1969
1970 Returns TRUE if the given data format is available on the clipboard.
1971
1972 \membersection{::wxOpenClipboard}\label{wxopenclipboard}
1973
1974 \func{bool}{wxOpenClipboard}{\void}
1975
1976 Opens the clipboard for passing data to it or getting data from it.
1977
1978 \membersection{::wxRegisterClipboardFormat}\label{wxregisterclipboardformat}
1979
1980 \func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}}
1981
1982 Registers the clipboard data format name and returns an identifier.
1983
1984 \membersection{::wxSetClipboardData}\label{wxsetclipboarddata}
1985
1986 \func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}}
1987
1988 Passes data to the clipboard.
1989
1990 {\it dataFormat} may be one of:
1991
1992 \begin{itemize}\itemsep=0pt
1993 \item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string.
1994 \item wxCF\_BITMAP: {\it data} is a wxBitmap.
1995 \item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap).
1996 \item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
1997 \end{itemize}
1998
1999 The clipboard must have previously been opened for this call to succeed.
2000
2001 \section{Miscellaneous functions}\label{miscellany}
2002
2003 \membersection{::wxNewId}\label{wxnewid}
2004
2005 \func{long}{wxNewId}{\void}
2006
2007 Generates an integer identifier unique to this run of the program.
2008
2009 \wxheading{Include files}
2010
2011 <wx/utils.h>
2012
2013 \membersection{::wxRegisterId}\label{wxregisterid}
2014
2015 \func{void}{wxRegisterId}{\param{long}{ id}}
2016
2017 Ensures that ids subsequently generated by {\bf NewId} do not clash with
2018 the given {\bf id}.
2019
2020 \wxheading{Include files}
2021
2022 <wx/utils.h>
2023
2024 \membersection{::wxDDECleanUp}\label{wxddecleanup}
2025
2026 \func{void}{wxDDECleanUp}{\void}
2027
2028 Called when wxWindows exits, to clean up the DDE system. This no longer needs to be
2029 called by the application.
2030
2031 See also \helpref{wxDDEInitialize}{wxddeinitialize}.
2032
2033 \wxheading{Include files}
2034
2035 <wx/dde.h>
2036
2037 \membersection{::wxDDEInitialize}\label{wxddeinitialize}
2038
2039 \func{void}{wxDDEInitialize}{\void}
2040
2041 Initializes the DDE system. May be called multiple times without harm.
2042
2043 This no longer needs to be called by the application: it will be called
2044 by wxWindows if necessary.
2045
2046 See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},
2047 \helpref{wxDDECleanUp}{wxddecleanup}.
2048
2049 \wxheading{Include files}
2050
2051 <wx/dde.h>
2052
2053 \membersection{::wxDisplaySize}\label{wxdisplaysize}
2054
2055 \func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
2056
2057 Gets the physical size of the display in pixels.
2058
2059 \wxheading{Include files}
2060
2061 <wx/gdicmn.h>
2062
2063 \membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
2064
2065 \func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = TRUE}}
2066
2067 This function enables or disables all top level windows. It is used by
2068 \helpref{::wxSafeYield}{wxsafeyield}.
2069
2070 \wxheading{Include files}
2071
2072 <wx/utils.h>
2073
2074 \membersection{::wxFindMenuItemId}\label{wxfindmenuitemid}
2075
2076 \func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
2077
2078 Find a menu item identifier associated with the given frame's menu bar.
2079
2080 \wxheading{Include files}
2081
2082 <wx/utils.h>
2083
2084 \membersection{::wxFindWindowByLabel}\label{wxfindwindowbylabel}
2085
2086 \func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
2087
2088 Find a window by its label. Depending on the type of window, the label may be a window title
2089 or panel item label. If {\it parent} is NULL, the search will start from all top-level
2090 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2091 The search is recursive in both cases.
2092
2093 \wxheading{Include files}
2094
2095 <wx/utils.h>
2096
2097 \membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
2098
2099 \func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
2100
2101 Find a window by its name (as given in a window constructor or {\bf Create} function call).
2102 If {\it parent} is NULL, the search will start from all top-level
2103 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2104 The search is recursive in both cases.
2105
2106 If no such named window is found, {\bf wxFindWindowByLabel} is called.
2107
2108 \wxheading{Include files}
2109
2110 <wx/utils.h>
2111
2112 \membersection{::wxFindWindowAtPoint}\label{wxfindwindowatpoint}
2113
2114 \func{wxWindow *}{wxFindWindowAtPoint}{\param{const wxPoint\& }{pt}}
2115
2116 Find the deepest window at the given mouse position in screen coordinates,
2117 returning the window if found, or NULL if not.
2118
2119 \membersection{::wxFindWindowAtPointer}\label{wxfindwindowatpointer}
2120
2121 \func{wxWindow *}{wxFindWindowAtPointer}{\param{wxPoint\& }{pt}}
2122
2123 Find the deepest window at the mouse pointer position, returning the window
2124 and current pointer position in screen coordinates.
2125
2126 \membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
2127
2128 \func{wxWindow *}{wxGetActiveWindow}{\void}
2129
2130 Gets the currently active window (Windows only).
2131
2132 \wxheading{Include files}
2133
2134 <wx/windows.h>
2135
2136 \membersection{::wxGetDisplayName}\label{wxgetdisplayname}
2137
2138 \func{wxString}{wxGetDisplayName}{\void}
2139
2140 Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
2141
2142 \wxheading{Include files}
2143
2144 <wx/utils.h>
2145
2146 \membersection{::wxGetMousePosition}\label{wxgetmouseposition}
2147
2148 \func{wxPoint}{wxGetMousePosition}{\void}
2149
2150 Returns the mouse position in screen coordinates.
2151
2152 \wxheading{Include files}
2153
2154 <wx/utils.h>
2155
2156 \membersection{::wxGetResource}\label{wxgetresource}
2157
2158 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2159 \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}}
2160
2161 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2162 \param{float *}{value}, \param{const wxString\& }{file = NULL}}
2163
2164 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2165 \param{long *}{value}, \param{const wxString\& }{file = NULL}}
2166
2167 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2168 \param{int *}{value}, \param{const wxString\& }{file = NULL}}
2169
2170 Gets a resource value from the resource database (for example, WIN.INI, or
2171 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2172 otherwise the specified file is used.
2173
2174 Under X, if an application class (wxApp::GetClassName) has been defined,
2175 it is appended to the string /usr/lib/X11/app-defaults/ to try to find
2176 an applications default file when merging all resource databases.
2177
2178 The reason for passing the result in an argument is that it
2179 can be convenient to define a default value, which gets overridden
2180 if the value exists in the resource file. It saves a separate
2181 test for that resource's existence, and it also allows
2182 the overloading of the function for different types.
2183
2184 See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
2185
2186 \wxheading{Include files}
2187
2188 <wx/utils.h>
2189
2190 \membersection{::wxLoadUserResource}\label{wxloaduserresource}
2191
2192 \func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
2193
2194 Loads a user-defined Windows resource as a string. If the resource is found, the function creates
2195 a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
2196
2197 The resource must be defined in the {\tt .rc} file using the following syntax:
2198
2199 \begin{verbatim}
2200 myResource TEXT file.ext
2201 \end{verbatim}
2202
2203 where {\tt file.ext} is a file that the resource compiler can find.
2204
2205 One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers
2206 cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed
2207 using \helpref{wxResourceParseString}{wxresourceparsestring}.
2208
2209 This function is available under Windows only.
2210
2211 \wxheading{Include files}
2212
2213 <wx/utils.h>
2214
2215 \membersection{::wxPostDelete}\label{wxpostdelete}
2216
2217 \func{void}{wxPostDelete}{\param{wxObject *}{object}}
2218
2219 Tells the system to delete the specified object when
2220 all other events have been processed. In some environments, it is
2221 necessary to use this instead of deleting a frame directly with the
2222 delete operator, because some GUIs will still send events to a deleted window.
2223
2224 Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
2225
2226 \wxheading{Include files}
2227
2228 <wx/utils.h>
2229
2230 \membersection{::wxPostEvent}\label{wxpostevent}
2231
2232 \func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}}
2233
2234 This function posts the event to the specified {\it dest} object. The
2235 difference between sending an event and posting it is that in the first case
2236 the event is processed before the function returns (in wxWindows, event sending
2237 is done with \helpref{ProcessEvent}{wxevthandlerprocessevent} function), but in
2238 the second, the function returns immediately and the event will be processed
2239 sometime later - usually during the next even loop iteration.
2240
2241 Note that a copy of the {\it event} is made by the function, so the original
2242 copy can be deleted as soon as function returns. This function can also be used
2243 to send events between different threads safely. As this function makes a
2244 copy of the event, the event needs to have a fully implemented Clone() method,
2245 which may not be the case for all event in wxWindows.
2246
2247 See also \helpref{AddPendingEvent}{wxevthandleraddpendingevent} (which this function
2248 uses internally).
2249
2250 \wxheading{Include files}
2251
2252 <wx/app.h>
2253
2254 \membersection{::wxSetDisplayName}\label{wxsetdisplayname}
2255
2256 \func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
2257
2258 Under X only, sets the current display name. This is the X host and display name such
2259 as ``colonsay:0.0", and the function indicates which display should be used for creating
2260 windows from this point on. Setting the display within an application allows multiple
2261 displays to be used.
2262
2263 See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
2264
2265 \wxheading{Include files}
2266
2267 <wx/utils.h>
2268
2269 \membersection{::wxStripMenuCodes}\label{wxstripmenucodes}
2270
2271 \func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
2272
2273 \func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}}
2274
2275 This function is obsolete, please use
2276 \helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
2277
2278 Strips any menu codes from {\it in} and places the result
2279 in {\it out} (or returns the new string, in the first form).
2280
2281 Menu codes include \& (mark the next character with an underline
2282 as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
2283
2284 \wxheading{Include files}
2285
2286 <wx/utils.h>
2287
2288 \membersection{::wxWriteResource}\label{wxwriteresource}
2289
2290 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2291 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
2292
2293 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2294 \param{float }{value}, \param{const wxString\& }{file = NULL}}
2295
2296 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2297 \param{long }{value}, \param{const wxString\& }{file = NULL}}
2298
2299 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2300 \param{int }{value}, \param{const wxString\& }{file = NULL}}
2301
2302 Writes a resource value into the resource database (for example, WIN.INI, or
2303 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2304 otherwise the specified file is used.
2305
2306 Under X, the resource databases are cached until the internal function
2307 \rtfsp{\bf wxFlushResources} is called automatically on exit, when
2308 all updated resource databases are written to their files.
2309
2310 Note that it is considered bad manners to write to the .Xdefaults
2311 file under Unix, although the WIN.INI file is fair game under Windows.
2312
2313 See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
2314
2315 \wxheading{Include files}
2316
2317 <wx/utils.h>
2318
2319 \section{Byte order macros}\label{macros}
2320
2321 The endian-ness issues (that is the difference between big-endian and
2322 little-endian architectures) are important for the portable programs working
2323 with the external binary data (for example, data files or data coming from
2324 network) which is usually in some fixed, platform-independent format. The
2325 macros are helpful for transforming the data to the correct format.
2326
2327 \membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
2328
2329 \func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
2330
2331 \func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
2332
2333 \func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
2334
2335 \func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
2336
2337 These macros will swap the bytes of the {\it value} variable from little
2338 endian to big endian or vice versa unconditionally, i.e. independently of the
2339 current platform.
2340
2341 \membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
2342
2343 \func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
2344
2345 \func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
2346
2347 \func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
2348
2349 \func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
2350
2351 This macro will swap the bytes of the {\it value} variable from little
2352 endian to big endian or vice versa if the program is compiled on a
2353 big-endian architecture (such as Sun work stations). If the program has
2354 been compiled on a little-endian architecture, the value will be unchanged.
2355
2356 Use these macros to read data from and write data to a file that stores
2357 data in little-endian (for example Intel i386) format.
2358
2359 \membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
2360
2361 \func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
2362
2363 \func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
2364
2365 \func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
2366
2367 \func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
2368
2369 This macro will swap the bytes of the {\it value} variable from little
2370 endian to big endian or vice versa if the program is compiled on a
2371 little-endian architecture (such as Intel PCs). If the program has
2372 been compiled on a big-endian architecture, the value will be unchanged.
2373
2374 Use these macros to read data from and write data to a file that stores
2375 data in big-endian format.
2376
2377 \section{RTTI functions}\label{macros}
2378
2379 wxWindows uses its own RTTI ("run-time type identification") system which
2380 predates the current standard C++ RTTI and so is kept for backwards
2381 compatribility reasons but also because it allows some things which the
2382 standard RTTI doesn't directly support (such as creating a class from its
2383 name).
2384
2385 The standard C++ RTTI can be used in the user code without any problems and in
2386 general you shouldn't need to use the functions and the macros in this section
2387 unless you are thinking of modifying or adding any wxWindows classes.
2388
2389 \wxheading{See also}
2390
2391 \helpref{RTTI overview}{runtimeclassoverview}
2392
2393 \membersection{CLASSINFO}\label{classinfo}
2394
2395 \func{wxClassInfo *}{CLASSINFO}{className}
2396
2397 Returns a pointer to the wxClassInfo object associated with this class.
2398
2399 \wxheading{Include files}
2400
2401 <wx/object.h>
2402
2403 \membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass}
2404
2405 \func{}{DECLARE\_ABSTRACT\_CLASS}{className}
2406
2407 Used inside a class declaration to declare that the class should be
2408 made known to the class hierarchy, but objects of this class cannot be created
2409 dynamically. The same as DECLARE\_CLASS.
2410
2411 Example:
2412
2413 \begin{verbatim}
2414 class wxCommand: public wxObject
2415 {
2416 DECLARE_ABSTRACT_CLASS(wxCommand)
2417
2418 private:
2419 ...
2420 public:
2421 ...
2422 };
2423 \end{verbatim}
2424
2425 \wxheading{Include files}
2426
2427 <wx/object.h>
2428
2429 \membersection{DECLARE\_APP}\label{declareapp}
2430
2431 \func{}{DECLARE\_APP}{className}
2432
2433 This is used in headers to create a forward declaration of the wxGetApp function implemented
2434 by IMPLEMENT\_APP. It creates the declaration {\tt className\& wxGetApp(void)}.
2435
2436 Example:
2437
2438 \begin{verbatim}
2439 DECLARE_APP(MyApp)
2440 \end{verbatim}
2441
2442 \wxheading{Include files}
2443
2444 <wx/app.h>
2445
2446 \membersection{DECLARE\_CLASS}\label{declareclass}
2447
2448 \func{}{DECLARE\_CLASS}{className}
2449
2450 Used inside a class declaration to declare that the class should be
2451 made known to the class hierarchy, but objects of this class cannot be created
2452 dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
2453
2454 \wxheading{Include files}
2455
2456 <wx/object.h>
2457
2458 \membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass}
2459
2460 \func{}{DECLARE\_DYNAMIC\_CLASS}{className}
2461
2462 Used inside a class declaration to declare that the objects of this class should be dynamically
2463 creatable from run-time type information.
2464
2465 Example:
2466
2467 \begin{verbatim}
2468 class wxFrame: public wxWindow
2469 {
2470 DECLARE_DYNAMIC_CLASS(wxFrame)
2471
2472 private:
2473 const wxString\& frameTitle;
2474 public:
2475 ...
2476 };
2477 \end{verbatim}
2478
2479 \wxheading{Include files}
2480
2481 <wx/object.h>
2482
2483 \membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass}
2484
2485 \func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
2486
2487 Used in a C++ implementation file to complete the declaration of
2488 a class that has run-time type information. The same as IMPLEMENT\_CLASS.
2489
2490 Example:
2491
2492 \begin{verbatim}
2493 IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
2494
2495 wxCommand::wxCommand(void)
2496 {
2497 ...
2498 }
2499 \end{verbatim}
2500
2501 \wxheading{Include files}
2502
2503 <wx/object.h>
2504
2505 \membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2}
2506
2507 \func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
2508
2509 Used in a C++ implementation file to complete the declaration of
2510 a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
2511
2512 \wxheading{Include files}
2513
2514 <wx/object.h>
2515
2516 \membersection{IMPLEMENT\_APP}\label{implementapp}
2517
2518 \func{}{IMPLEMENT\_APP}{className}
2519
2520 This is used in the application class implementation file to make the application class known to
2521 wxWindows for dynamic construction. You use this instead of
2522
2523 Old form:
2524
2525 \begin{verbatim}
2526 MyApp myApp;
2527 \end{verbatim}
2528
2529 New form:
2530
2531 \begin{verbatim}
2532 IMPLEMENT_APP(MyApp)
2533 \end{verbatim}
2534
2535 See also \helpref{DECLARE\_APP}{declareapp}.
2536
2537 \wxheading{Include files}
2538
2539 <wx/app.h>
2540
2541 \membersection{IMPLEMENT\_CLASS}\label{implementclass}
2542
2543 \func{}{IMPLEMENT\_CLASS}{className, baseClassName}
2544
2545 Used in a C++ implementation file to complete the declaration of
2546 a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
2547
2548 \wxheading{Include files}
2549
2550 <wx/object.h>
2551
2552 \membersection{IMPLEMENT\_CLASS2}\label{implementclass2}
2553
2554 \func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
2555
2556 Used in a C++ implementation file to complete the declaration of a
2557 class that has run-time type information and two base classes. The
2558 same as IMPLEMENT\_ABSTRACT\_CLASS2.
2559
2560 \wxheading{Include files}
2561
2562 <wx/object.h>
2563
2564 \membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass}
2565
2566 \func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
2567
2568 Used in a C++ implementation file to complete the declaration of
2569 a class that has run-time type information, and whose instances
2570 can be created dynamically.
2571
2572 Example:
2573
2574 \begin{verbatim}
2575 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
2576
2577 wxFrame::wxFrame(void)
2578 {
2579 ...
2580 }
2581 \end{verbatim}
2582
2583 \wxheading{Include files}
2584
2585 <wx/object.h>
2586
2587 \membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2}
2588
2589 \func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
2590
2591 Used in a C++ implementation file to complete the declaration of
2592 a class that has run-time type information, and whose instances
2593 can be created dynamically. Use this for classes derived from two
2594 base classes.
2595
2596 \wxheading{Include files}
2597
2598 <wx/object.h>
2599
2600 \membersection{wxConstCast}\label{wxconstcast}
2601
2602 \func{classname *}{wxConstCast}{ptr, classname}
2603
2604 This macro expands into {\tt const\_cast<classname *>(ptr)} if the compiler
2605 supports {\it const\_cast} or into an old, C-style cast, otherwise.
2606
2607 \wxheading{See also}
2608
2609 \helpref{wxDynamicCast}{wxdynamiccast}\\
2610 \helpref{wxStaticCast}{wxstaticcast}
2611
2612 \membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
2613
2614 \func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
2615
2616 Creates and returns an object of the given class, if the class has been
2617 registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
2618
2619 \membersection{WXDEBUG\_NEW}\label{debugnew}
2620
2621 \func{}{WXDEBUG\_NEW}{arg}
2622
2623 This is defined in debug mode to be call the redefined new operator
2624 with filename and line number arguments. The definition is:
2625
2626 \begin{verbatim}
2627 #define WXDEBUG_NEW new(__FILE__,__LINE__)
2628 \end{verbatim}
2629
2630 In non-debug mode, this is defined as the normal new operator.
2631
2632 \wxheading{Include files}
2633
2634 <wx/object.h>
2635
2636 \membersection{wxDynamicCast}\label{wxdynamiccast}
2637
2638 \func{classname *}{wxDynamicCast}{ptr, classname}
2639
2640 This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
2641 the pointer is of this type (the check is done during the run-time) or
2642 {\tt NULL} otherwise. Usage of this macro is preferred over obsoleted
2643 wxObject::IsKindOf() function.
2644
2645 The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be
2646 returned.
2647
2648 Example:
2649
2650 \begin{verbatim}
2651 wxWindow *win = wxWindow::FindFocus();
2652 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
2653 if ( text )
2654 {
2655 // a text control has the focus...
2656 }
2657 else
2658 {
2659 // no window has the focus or it is not a text control
2660 }
2661 \end{verbatim}
2662
2663 \wxheading{See also}
2664
2665 \helpref{RTTI overview}{runtimeclassoverview}\\
2666 \helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
2667 \helpref{wxConstCast}{wxconstcast}\\
2668 \helpref{wxStatiicCast}{wxstaticcast}
2669
2670 \membersection{wxDynamicCastThis}\label{wxdynamiccastthis}
2671
2672 \func{classname *}{wxDynamicCastThis}{classname}
2673
2674 This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the
2675 latter provokes spurious compilation warnings from some compilers (because it
2676 tests whether {\tt this} pointer is non {\tt NULL} which is always true), so
2677 this macro should be used to avoid them.
2678
2679 \wxheading{See also}
2680
2681 \helpref{wxDynamicCast}{wxdynamiccast}
2682
2683 \membersection{wxStaticCast}\label{wxstaticcast}
2684
2685 \func{classname *}{wxStaticCast}{ptr, classname}
2686
2687 This macro checks that the cast is valid in debug mode (an assert failure will
2688 result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
2689 result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
2690
2691 \helpref{wxDynamicCast}{wxdynamiccast}\\
2692 \helpref{wxConstCast}{wxconstcast}
2693
2694 \section{Resource functions}\label{resourcefuncs}
2695
2696 \overview{Resource functions}{resourceformats}
2697
2698 This section details functions for manipulating wxWindows (.WXR) resource
2699 files and loading user interface elements from resources.
2700
2701 \normalbox{Please note that this use of the word `resource' is different from that used when talking
2702 about initialisation file resource reading and writing, using such functions
2703 as wxWriteResource and wxGetResource. It is just an unfortunate clash of terminology.}
2704
2705 \helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
2706
2707 See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
2708 loading from resource data.
2709
2710 \membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
2711
2712 \func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
2713
2714 Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
2715 \tt{#}defining a name to an integer). Unlikely to be used by an application except
2716 perhaps for implementing resource functionality for interpreted languages.
2717
2718 \membersection{::wxResourceClear}\label{wxresourceclear}
2719
2720 \func{void}{wxResourceClear}{\void}
2721
2722 Clears the wxWindows resource table.
2723
2724 \membersection{::wxResourceCreateBitmap}\label{wxresourcecreatebitmap}
2725
2726 \func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
2727
2728 Creates a new bitmap from a file, static data, or Windows resource, given a valid
2729 wxWindows bitmap resource identifier. For example, if the .WXR file contains
2730 the following:
2731
2732 \begin{verbatim}
2733 static const wxString\& project_resource = "bitmap(name = 'project_resource',\
2734 bitmap = ['project', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
2735 bitmap = ['project.xpm', wxBITMAP_TYPE_XPM, 'X']).";
2736 \end{verbatim}
2737
2738 then this function can be called as follows:
2739
2740 \begin{verbatim}
2741 wxBitmap *bitmap = wxResourceCreateBitmap("project_resource");
2742 \end{verbatim}
2743
2744 \membersection{::wxResourceCreateIcon}\label{wxresourcecreateicon}
2745
2746 \func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
2747
2748 Creates a new icon from a file, static data, or Windows resource, given a valid
2749 wxWindows icon resource identifier. For example, if the .WXR file contains
2750 the following:
2751
2752 \begin{verbatim}
2753 static const wxString\& project_resource = "icon(name = 'project_resource',\
2754 icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
2755 icon = ['project', wxBITMAP_TYPE_XBM_DATA, 'X']).";
2756 \end{verbatim}
2757
2758 then this function can be called as follows:
2759
2760 \begin{verbatim}
2761 wxIcon *icon = wxResourceCreateIcon("project_resource");
2762 \end{verbatim}
2763
2764 \membersection{::wxResourceCreateMenuBar}\label{wxresourcecreatemenubar}
2765
2766 \func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
2767
2768 Creates a new menu bar given a valid wxWindows menubar resource
2769 identifier. For example, if the .WXR file contains the following:
2770
2771 \begin{verbatim}
2772 static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
2773 menu = \
2774 [\
2775 ['&File', 1, '', \
2776 ['&Open File', 2, 'Open a file'],\
2777 ['&Save File', 3, 'Save a file'],\
2778 [],\
2779 ['E&xit', 4, 'Exit program']\
2780 ],\
2781 ['&Help', 5, '', \
2782 ['&About', 6, 'About this program']\
2783 ]\
2784 ]).";
2785 \end{verbatim}
2786
2787 then this function can be called as follows:
2788
2789 \begin{verbatim}
2790 wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
2791 \end{verbatim}
2792
2793
2794 \membersection{::wxResourceGetIdentifier}\label{wxresourcegetidentifier}
2795
2796 \func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
2797
2798 Used for retrieving the integer value associated with an identifier.
2799 A zero value indicates that the identifier was not found.
2800
2801 See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
2802
2803 \membersection{::wxResourceParseData}\label{wxresourcedata}
2804
2805 \func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
2806
2807 Parses a string containing one or more wxWindows resource objects. If
2808 the resource objects are global static data that are included into the
2809 C++ program, then this function must be called for each variable
2810 containing the resource data, to make it known to wxWindows.
2811
2812 {\it resource} should contain data in the following form:
2813
2814 \begin{verbatim}
2815 dialog(name = 'dialog1',
2816 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
2817 title = 'Test dialog box',
2818 x = 312, y = 234, width = 400, height = 300,
2819 modal = 0,
2820 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
2821 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
2822 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
2823 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
2824 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
2825 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
2826 \end{verbatim}
2827
2828 This function will typically be used after including a {\tt .wxr} file into
2829 a C++ program as follows:
2830
2831 \begin{verbatim}
2832 #include "dialog1.wxr"
2833 \end{verbatim}
2834
2835 Each of the contained resources will declare a new C++ variable, and each
2836 of these variables should be passed to wxResourceParseData.
2837
2838 \membersection{::wxResourceParseFile}\label{wxresourceparsefile}
2839
2840 \func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
2841
2842 Parses a file containing one or more wxWindows resource objects
2843 in C++-compatible syntax. Use this function to dynamically load
2844 wxWindows resource data.
2845
2846 \membersection{::wxResourceParseString}\label{wxresourceparsestring}
2847
2848 \func{bool}{wxResourceParseString}{\param{char *}{s}, \param{wxResourceTable *}{table = NULL}}
2849
2850 Parses a string containing one or more wxWindows resource objects. If
2851 the resource objects are global static data that are included into the
2852 C++ program, then this function must be called for each variable
2853 containing the resource data, to make it known to wxWindows.
2854
2855 {\it resource} should contain data with the following form:
2856
2857 \begin{verbatim}
2858 dialog(name = 'dialog1',
2859 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
2860 title = 'Test dialog box',
2861 x = 312, y = 234, width = 400, height = 300,
2862 modal = 0,
2863 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
2864 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
2865 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
2866 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
2867 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
2868 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
2869 \end{verbatim}
2870
2871 This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
2872 load an entire {\tt .wxr file} into a string.
2873
2874 \membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
2875
2876 \func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char *}{xbm\_data}, \param{int }{width},
2877 \param{int }{height}, \param{wxResourceTable *}{table = NULL}}
2878
2879 \func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char **}{xpm\_data}}
2880
2881 Makes \tt{#}included XBM or XPM bitmap data known to the wxWindows resource system.
2882 This is required if other resources will use the bitmap data, since otherwise there
2883 is no connection between names used in resources, and the global bitmap data.
2884
2885 \membersection{::wxResourceRegisterIconData}\label{wxresourceregistericondata}
2886
2887 Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
2888
2889 \section{Log functions}\label{logfunctions}
2890
2891 These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
2892 further information. The functions use (implicitly) the currently active log
2893 target, so their descriptions here may not apply if the log target is not the
2894 standard one (installed by wxWindows in the beginning of the program).
2895
2896 \wxheading{Include files}
2897
2898 <wx/log.h>
2899
2900 \membersection{::wxDebugMsg}\label{wxdebugmsg}
2901
2902 \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
2903
2904 {\bf This function is deprecated, use \helpref{wxLogDebug}{wxlogdebug} instead!}
2905
2906 Display a debugging message; under Windows, this will appear on the
2907 debugger command window, and under Unix, it will be written to standard
2908 error.
2909
2910 The syntax is identical to {\bf printf}: pass a format string and a
2911 variable list of arguments.
2912
2913 {\bf Tip:} under Windows, if your application crashes before the
2914 message appears in the debugging window, put a wxYield call after
2915 each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
2916 (at least for Watcom C++): preformat your messages and use OutputDebugString
2917 instead.
2918
2919 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
2920
2921 \wxheading{Include files}
2922
2923 <wx/utils.h>
2924
2925 \membersection{::wxError}\label{wxerror}
2926
2927 \func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
2928
2929 This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
2930 instead.
2931
2932 Displays {\it msg} and continues. This writes to standard error under
2933 Unix, and pops up a message box under Windows. Used for internal
2934 wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
2935
2936 \wxheading{Include files}
2937
2938 <wx/utils.h>
2939
2940 \membersection{::wxFatalError}\label{wxfatalerror}
2941
2942 \func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
2943
2944 This function is now obsolete, please use
2945 \helpref{wxLogFatalError}{wxlogfatalerror} instead.
2946
2947 Displays {\it msg} and exits. This writes to standard error under Unix,
2948 and pops up a message box under Windows. Used for fatal internal
2949 wxWindows errors. See also \helpref{wxError}{wxerror}.
2950
2951 \wxheading{Include files}
2952
2953 <wx/utils.h>
2954
2955 \membersection{::wxLogError}\label{wxlogerror}
2956
2957 \func{void}{wxLogError}{\param{const char *}{formatString}, \param{...}{}}
2958
2959 \func{void}{wxVLogError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
2960
2961 The functions to use for error messages, i.e. the messages that must be shown
2962 to the user. The default processing is to pop up a message box to inform the
2963 user about it.
2964
2965 \membersection{::wxLogFatalError}\label{wxlogfatalerror}
2966
2967 \func{void}{wxLogFatalError}{\param{const char *}{formatString}, \param{...}{}}
2968
2969 \func{void}{wxVLogFatalError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
2970
2971 Like \helpref{wxLogError}{wxlogerror}, but also
2972 terminates the program with the exit code 3. Using {\it abort()} standard
2973 function also terminates the program with this exit code.
2974
2975 \membersection{::wxLogWarning}\label{wxlogwarning}
2976
2977 \func{void}{wxLogWarning}{\param{const char *}{formatString}, \param{...}{}}
2978
2979 \func{void}{wxVLogWarning}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
2980
2981 For warnings - they are also normally shown to the user, but don't interrupt
2982 the program work.
2983
2984 \membersection{::wxLogMessage}\label{wxlogmessage}
2985
2986 \func{void}{wxLogMessage}{\param{const char *}{formatString}, \param{...}{}}
2987
2988 \func{void}{wxVLogMessage}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
2989
2990 For all normal, informational messages. They also appear in a message box by
2991 default (but it can be changed). Notice that the standard behaviour is to not
2992 show informational messages if there are any errors later - the logic being
2993 that the later error messages make the informational messages preceding them
2994 meaningless.
2995
2996 \membersection{::wxLogVerbose}\label{wxlogverbose}
2997
2998 \func{void}{wxLogVerbose}{\param{const char *}{formatString}, \param{...}{}}
2999
3000 \func{void}{wxVLogVerbose}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3001
3002 For verbose output. Normally, it is suppressed, but
3003 might be activated if the user wishes to know more details about the program
3004 progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
3005
3006 \membersection{::wxLogStatus}\label{wxlogstatus}
3007
3008 \func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{...}{}}
3009
3010 \func{void}{wxVLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3011
3012 \func{void}{wxLogStatus}{\param{const char *}{formatString}, \param{...}{}}
3013
3014 \func{void}{wxVLogStatus}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3015
3016 Messages logged by these functions will appear in the statusbar of the {\it
3017 frame} or of the top level application window by default (i.e. when using
3018 the second version of the functions).
3019
3020 If the target frame doesn't have a statusbar, the message will be lost.
3021
3022 \membersection{::wxLogSysError}\label{wxlogsyserror}
3023
3024 \func{void}{wxLogSysError}{\param{const char *}{formatString}, \param{...}{}}
3025
3026 \func{void}{wxVLogSysError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3027
3028 Mostly used by wxWindows itself, but might be handy for logging errors after
3029 system call (API function) failure. It logs the specified message text as well
3030 as the last system error code ({\it errno} or {\it ::GetLastError()} depending
3031 on the platform) and the corresponding error message. The second form
3032 of this function takes the error code explicitly as the first argument.
3033
3034 \wxheading{See also}
3035
3036 \helpref{wxSysErrorCode}{wxsyserrorcode},
3037 \helpref{wxSysErrorMsg}{wxsyserrormsg}
3038
3039 \membersection{::wxLogDebug}\label{wxlogdebug}
3040
3041 \func{void}{wxLogDebug}{\param{const char *}{formatString}, \param{...}{}}
3042
3043 \func{void}{wxVLogDebug}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3044
3045 The right functions for debug output. They only do something in debug
3046 mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to
3047 nothing in release mode (otherwise).
3048
3049 \membersection{::wxLogTrace}\label{wxlogtrace}
3050
3051 \func{void}{wxLogTrace}{\param{const char *}{formatString}, \param{...}{}}
3052
3053 \func{void}{wxVLogTrace}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3054
3055 \func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}}
3056
3057 \func{void}{wxVLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3058
3059 \func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}}
3060
3061 \func{void}{wxVLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3062
3063 As {\bf wxLogDebug}, trace functions only do something in debug build and
3064 expand to nothing in the release one. The reason for making
3065 it a separate function from it is that usually there are a lot of trace
3066 messages, so it might make sense to separate them from other debug messages.
3067
3068 The trace messages also usually can be separated into different categories and
3069 the second and third versions of this function only log the message if the
3070 {\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This
3071 allows to selectively trace only some operations and not others by changing
3072 the value of the trace mask (possible during the run-time).
3073
3074 For the second function (taking a string mask), the message is logged only if
3075 the mask has been previously enabled by the call to
3076 \helpref{AddTraceMask}{wxlogaddtracemask}. The predefined string trace masks
3077 used by wxWindows are:
3078
3079 \begin{itemize}\itemsep=0pt
3080 \item wxTRACE\_MemAlloc: trace memory allocation (new/delete)
3081 \item wxTRACE\_Messages: trace window messages/X callbacks
3082 \item wxTRACE\_ResAlloc: trace GDI resource allocation
3083 \item wxTRACE\_RefCount: trace various ref counting operations
3084 \item wxTRACE\_OleCalls: trace OLE method calls (Win32 only)
3085 \end{itemize}
3086
3087 The third version of the function only logs the message if all the bit
3088 corresponding to the {\it mask} are set in the wxLog trace mask which can be
3089 set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less
3090 flexible than the previous one because it doesn't allow defining the user
3091 trace masks easily - this is why it is deprecated in favour of using string
3092 trace masks.
3093
3094 \begin{itemize}\itemsep=0pt
3095 \item wxTraceMemAlloc: trace memory allocation (new/delete)
3096 \item wxTraceMessages: trace window messages/X callbacks
3097 \item wxTraceResAlloc: trace GDI resource allocation
3098 \item wxTraceRefCount: trace various ref counting operations
3099 \item wxTraceOleCalls: trace OLE method calls (Win32 only)
3100 \end{itemize}
3101
3102 \membersection{::wxSysErrorCode}\label{wxsyserrorcode}
3103
3104 \func{unsigned long}{wxSysErrorCode}{\void}
3105
3106 Returns the error code from the last system call. This function uses
3107 {\tt errno} on Unix platforms and {\tt GetLastError} under Win32.
3108
3109 \wxheading{See also}
3110
3111 \helpref{wxSysErrorMsg}{wxsyserrormsg},
3112 \helpref{wxLogSysError}{wxlogsyserror}
3113
3114 \membersection{::wxSysErrorMsg}\label{wxsyserrormsg}
3115
3116 \func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}}
3117
3118 Returns the error message corresponding to the given system error code. If
3119 {\it errCode} is $0$ (default), the last error code (as returned by
3120 \helpref{wxSysErrorCode}{wxsyserrorcode}) is used.
3121
3122 \wxheading{See also}
3123
3124 \helpref{wxSysErrorCode}{wxsyserrorcode},
3125 \helpref{wxLogSysError}{wxlogsyserror}
3126
3127 \membersection{WXTRACE}\label{trace}
3128
3129 \wxheading{Include files}
3130
3131 <wx/object.h>
3132
3133 \func{}{WXTRACE}{formatString, ...}
3134
3135 Calls wxTrace with printf-style variable argument syntax. Output
3136 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3137
3138 This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3139
3140 \wxheading{Include files}
3141
3142 <wx/memory.h>
3143
3144 \membersection{WXTRACELEVEL}\label{tracelevel}
3145
3146 \func{}{WXTRACELEVEL}{level, formatString, ...}
3147
3148 Calls wxTraceLevel with printf-style variable argument syntax. Output
3149 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3150 The first argument should be the level at which this information is appropriate.
3151 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3152 this value.
3153
3154 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3155
3156 \wxheading{Include files}
3157
3158 <wx/memory.h>
3159
3160 \membersection{::wxTrace}\label{wxtrace}
3161
3162 \func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
3163
3164 Takes printf-style variable argument syntax. Output
3165 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3166
3167 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3168
3169 \wxheading{Include files}
3170
3171 <wx/memory.h>
3172
3173 \membersection{::wxTraceLevel}\label{wxtracelevel}
3174
3175 \func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
3176
3177 Takes printf-style variable argument syntax. Output
3178 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3179 The first argument should be the level at which this information is appropriate.
3180 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3181 this value.
3182
3183 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3184
3185 \wxheading{Include files}
3186
3187 <wx/memory.h>
3188
3189 \section{Time functions}\label{timefunctions}
3190
3191 The functions in this section deal with getting the current time and
3192 starting/stopping the global timers. Please note that the timer functions are
3193 deprecated because they work with one global timer only and
3194 \helpref{wxTimer}{wxtimer} and/or \helpref{wxStopWatch}{wxstopwatch} classes
3195 should be used instead. For retrieving the current time, you may also use
3196 \helpref{wxDateTime::Now}{wxdatetimenow} or
3197 \helpref{wxDateTime::UNow}{wxdatetimeunow} methods.
3198
3199 \membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
3200
3201 \func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = TRUE}}
3202
3203 Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
3204
3205 If {\it resetTimer} is TRUE (the default), the timer is reset to zero
3206 by this call.
3207
3208 See also \helpref{wxTimer}{wxtimer}.
3209
3210 \wxheading{Include files}
3211
3212 <wx/timer.h>
3213
3214 \membersection{::wxGetLocalTime}\label{wxgetlocaltime}
3215
3216 \func{long}{wxGetLocalTime}{\void}
3217
3218 Returns the number of seconds since local time 00:00:00 Jan 1st 1970.
3219
3220 \wxheading{See also}
3221
3222 \helpref{wxDateTime::Now}{wxdatetimenow}
3223
3224 \wxheading{Include files}
3225
3226 <wx/timer.h>
3227
3228 \membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis}
3229
3230 \func{wxLongLone}{wxGetLocalTimeMillis}{\void}
3231
3232 Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970.
3233
3234 \wxheading{See also}
3235
3236 \helpref{wxDateTime::Now}{wxdatetimenow},\\
3237 \helpref{wxLongLone}{wxlonglong}
3238
3239 \wxheading{Include files}
3240
3241 <wx/timer.h>
3242
3243 \membersection{::wxGetUTCTime}\label{wxgetutctime}
3244
3245 \func{long}{wxGetUTCTime}{\void}
3246
3247 Returns the number of seconds since GMT 00:00:00 Jan 1st 1970.
3248
3249 \wxheading{See also}
3250
3251 \helpref{wxDateTime::Now}{wxdatetimenow}
3252
3253 \wxheading{Include files}
3254
3255 <wx/timer.h>
3256
3257 \membersection{::wxNow}\label{wxnow}
3258
3259 \func{wxString}{wxNow}{\void}
3260
3261 Returns a string representing the current date and time.
3262
3263 \wxheading{Include files}
3264
3265 <wx/utils.h>
3266
3267 \membersection{::wxSleep}\label{wxsleep}
3268
3269 \func{void}{wxSleep}{\param{int}{ secs}}
3270
3271 Sleeps for the specified number of seconds.
3272
3273 \wxheading{Include files}
3274
3275 <wx/utils.h>
3276
3277 \membersection{::wxStartTimer}\label{wxstarttimer}
3278
3279 \func{void}{wxStartTimer}{\void}
3280
3281 Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
3282
3283 See also \helpref{wxTimer}{wxtimer}.
3284
3285 \wxheading{Include files}
3286
3287 <wx/timer.h>
3288
3289 \membersection{::wxUsleep}\label{wxusleep}
3290
3291 \func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
3292
3293 Sleeps for the specified number of milliseconds. Notice that usage of this
3294 function is encouraged instead of calling usleep(3) directly because the
3295 standard usleep() function is not MT safe.
3296
3297 \wxheading{Include files}
3298
3299 <wx/utils.h>
3300
3301 \section{Debugging macros and functions}\label{debugmacros}
3302
3303 Useful macros and functions for error checking and defensive programming. ASSERTs are only
3304 compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release
3305 builds.
3306
3307 \wxheading{Include files}
3308
3309 <wx/debug.h>
3310
3311 \membersection{::wxOnAssert}\label{wxonassert}
3312
3313 \func{void}{wxOnAssert}{\param{const char *}{fileName}, \param{int}{ lineNumber}, \param{const char *}{msg = NULL}}
3314
3315 This function may be redefined to do something non trivial and is called
3316 whenever one of debugging macros fails (i.e. condition is false in an
3317 assertion).
3318 % TODO: this should probably be an overridable in wxApp.
3319
3320 \membersection{wxASSERT}\label{wxassert}
3321
3322 \func{}{wxASSERT}{\param{}{condition}}
3323
3324 Assert macro. An error message will be generated if the condition is FALSE in
3325 debug mode, but nothing will be done in the release build.
3326
3327 Please note that the condition in wxASSERT() should have no side effects
3328 because it will not be executed in release mode at all.
3329
3330 See also: \helpref{wxASSERT\_MSG}{wxassertmsg}
3331
3332 \membersection{wxASSERT\_MSG}\label{wxassertmsg}
3333
3334 \func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
3335
3336 Assert macro with message. An error message will be generated if the condition is FALSE.
3337
3338 See also: \helpref{wxASSERT}{wxassert}
3339
3340 \membersection{wxFAIL}\label{wxfail}
3341
3342 \func{}{wxFAIL}{\void}
3343
3344 Will always generate an assert error if this code is reached (in debug mode).
3345
3346 See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
3347
3348 \membersection{wxFAIL\_MSG}\label{wxfailmsg}
3349
3350 \func{}{wxFAIL\_MSG}{\param{}{msg}}
3351
3352 Will always generate an assert error with specified message if this code is reached (in debug mode).
3353
3354 This macro is useful for marking unreachable" code areas, for example
3355 it may be used in the "default:" branch of a switch statement if all possible
3356 cases are processed above.
3357
3358 See also: \helpref{wxFAIL}{wxfail}
3359
3360 \membersection{wxCHECK}\label{wxcheck}
3361
3362 \func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
3363
3364 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3365 This check is done even in release mode.
3366
3367 \membersection{wxCHECK\_MSG}\label{wxcheckmsg}
3368
3369 \func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
3370
3371 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3372 This check is done even in release mode.
3373
3374 This macro may be only used in non void functions, see also
3375 \helpref{wxCHECK\_RET}{wxcheckret}.
3376
3377 \membersection{wxCHECK\_RET}\label{wxcheckret}
3378
3379 \func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
3380
3381 Checks that the condition is true, and returns if not (FAILs with given error
3382 message in debug mode). This check is done even in release mode.
3383
3384 This macro should be used in void functions instead of
3385 \helpref{wxCHECK\_MSG}{wxcheckmsg}.
3386
3387 \membersection{wxCHECK2}\label{wxcheck2}
3388
3389 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
3390
3391 Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
3392 {\it operation} if it is not. This is a generalisation of
3393 \helpref{wxCHECK}{wxcheck} and may be used when something else than just
3394 returning from the function must be done when the {\it condition} is false.
3395
3396 This check is done even in release mode.
3397
3398 \membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
3399
3400 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
3401
3402 This is the same as \helpref{wxCHECK2}{wxcheck2}, but
3403 \helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
3404 instead of wxFAIL() if the {\it condition} is false.
3405
3406 \membersection{::wxTrap}\label{wxtrap}
3407
3408 \func{void}{wxTrap}{\void}
3409
3410 In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a
3411 debugger exception meaning that the control is passed to the debugger if one is
3412 attached to the process. Otherwise the program just terminates abnormally.
3413
3414 In release mode this function does nothing.
3415
3416 \wxheading{Include files}
3417
3418 <wx/debug.h>
3419
3420 \section{Environment access functions}\label{environfunctions}
3421
3422 The functions in this section allow to access (get) or change value of
3423 environment variables in a portable way. They are currently implemented under
3424 Win32 and POSIX-like systems (Unix).
3425
3426 % TODO add some stuff about env var inheriting but not propagating upwards (VZ)
3427
3428 \wxheading{Include files}
3429
3430 <wx/utils.h>
3431
3432 \membersection{wxGetenv}\label{wxgetenvmacro}
3433
3434 \func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}}
3435
3436 This is a macro defined as {\tt getenv()} or its wide char version in Unicode
3437 mode.
3438
3439 Note that under Win32 it may not return correct value for the variables set
3440 with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function
3441 instead.
3442
3443 \membersection{wxGetEnv}\label{wxgetenv}
3444
3445 \func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}}
3446
3447 Returns the current value of the environment variable {\it var} in {\it value}.
3448 {\it value} may be {\tt NULL} if you just want to know if the variable exists
3449 and are not interested in its value.
3450
3451 Returns {\tt TRUE} if the variable exists, {\tt FALSE} otherwise.
3452
3453 \membersection{wxSetEnv}\label{wxsetenv}
3454
3455 \func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
3456
3457 Sets the value of the environment variable {\it var} (adding it if necessary)
3458 to {\it value}.
3459
3460 Returns {\tt TRUE} on success.
3461
3462 \membersection{wxUnsetEnv}\label{wxunsetenv}
3463
3464 \func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}}
3465
3466 Removes the variable {\it var} from the environment.
3467 \helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this
3468 function.
3469
3470 Returns {\tt TRUE} on success.
3471