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