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