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