documented wx_truncate_cast()
[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{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\& }{sUrl}}
3052
3053 Launches the user's default browser and tells it to open the location at {\tt sUrl}.
3054
3055 Returns true if the application was successfully launched.
3056
3057 \wxheading{Include files}
3058
3059 <wx/utils.h>
3060
3061 \membersection{::wxLoadUserResource}\label{wxloaduserresource}
3062
3063 \func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
3064
3065 Loads a user-defined Windows resource as a string. If the resource is found, the function creates
3066 a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
3067
3068 The resource must be defined in the {\tt .rc} file using the following syntax:
3069
3070 \begin{verbatim}
3071 myResource TEXT file.ext
3072 \end{verbatim}
3073
3074 where {\tt file.ext} is a file that the resource compiler can find.
3075
3076 This function is available under Windows only.
3077
3078 \wxheading{Include files}
3079
3080 <wx/utils.h>
3081
3082
3083 \membersection{::wxPostDelete}\label{wxpostdelete}
3084
3085 \func{void}{wxPostDelete}{\param{wxObject *}{object}}
3086
3087 Tells the system to delete the specified object when
3088 all other events have been processed. In some environments, it is
3089 necessary to use this instead of deleting a frame directly with the
3090 delete operator, because some GUIs will still send events to a deleted window.
3091
3092 Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
3093
3094 \wxheading{Include files}
3095
3096 <wx/utils.h>
3097
3098
3099 \membersection{::wxPostEvent}\label{wxpostevent}
3100
3101 \func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}}
3102
3103 In a GUI application, this function posts {\it event} to the specified {\it dest}
3104 object using \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
3105 Otherwise, it dispatches {\it event} immediately using
3106 \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent}.
3107 See the respective documentation for details (and caveats).
3108
3109 \wxheading{Include files}
3110
3111 <wx/app.h>
3112
3113
3114 \membersection{::wxSetDisplayName}\label{wxsetdisplayname}
3115
3116 \func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
3117
3118 Under X only, sets the current display name. This is the X host and display name such
3119 as ``colonsay:0.0", and the function indicates which display should be used for creating
3120 windows from this point on. Setting the display within an application allows multiple
3121 displays to be used.
3122
3123 See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
3124
3125 \wxheading{Include files}
3126
3127 <wx/utils.h>
3128
3129
3130 \membersection{::wxStripMenuCodes}\label{wxstripmenucodes}
3131
3132 \func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
3133
3134 \func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}}
3135
3136 {\bf NB:} This function is obsolete, please use
3137 \helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
3138
3139 Strips any menu codes from {\it in} and places the result
3140 in {\it out} (or returns the new string, in the first form).
3141
3142 Menu codes include \& (mark the next character with an underline
3143 as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
3144
3145 \wxheading{Include files}
3146
3147 <wx/utils.h>
3148
3149
3150 \membersection{wxULL}\label{wxull}
3151
3152 \func{wxLongLong\_t}{wxULL}{\param{}{number}}
3153
3154 This macro is defined for the platforms with a native 64 bit integer type and
3155 allows to define unsigned 64 bit compile time constants:
3156
3157 \begin{verbatim}
3158 #ifdef wxLongLong_t
3159 unsigned wxLongLong_t ll = wxULL(0x1234567890abcdef);
3160 #endif
3161 \end{verbatim}
3162
3163 \wxheading{Include files}
3164
3165 <wx/longlong.h>
3166
3167 \wxheading{See also}
3168
3169 \helpref{wxLL}{wxll}, \helpref{wxLongLong}{wxlonglong}
3170
3171
3172 \membersection{wxVaCopy}\label{wxvacopy}
3173
3174 \func{void}{wxVaCopy}{\param{va\_list }{argptrDst}, \param{va\_list}{ argptrSrc}}
3175
3176 This macro is the same as the standard C99 \texttt{va\_copy} for the compilers
3177 which support it or its replacement for those that don't. It must be used to
3178 preserve the value of a \texttt{va\_list} object if you need to use it after
3179 passing it to another function because it can be modified by the latter.
3180
3181 As with \texttt{va\_start}, each call to \texttt{wxVaCopy} must have a matching
3182 \texttt{va\_end}.
3183
3184
3185 \membersection{::wxWriteResource}\label{wxwriteresource}
3186
3187 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
3188 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
3189
3190 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
3191 \param{float }{value}, \param{const wxString\& }{file = NULL}}
3192
3193 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
3194 \param{long }{value}, \param{const wxString\& }{file = NULL}}
3195
3196 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
3197 \param{int }{value}, \param{const wxString\& }{file = NULL}}
3198
3199 Writes a resource value into the resource database (for example, WIN.INI, or
3200 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
3201 otherwise the specified file is used.
3202
3203 Under X, the resource databases are cached until the internal function
3204 \rtfsp{\bf wxFlushResources} is called automatically on exit, when
3205 all updated resource databases are written to their files.
3206
3207 Note that it is considered bad manners to write to the .Xdefaults
3208 file under Unix, although the WIN.INI file is fair game under Windows.
3209
3210 See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
3211
3212 \wxheading{Include files}
3213
3214 <wx/utils.h>
3215
3216
3217
3218 \section{Byte order macros}\label{byteordermacros}
3219
3220 The endian-ness issues (that is the difference between big-endian and
3221 little-endian architectures) are important for the portable programs working
3222 with the external binary data (for example, data files or data coming from
3223 network) which is usually in some fixed, platform-independent format. The
3224 macros are helpful for transforming the data to the correct format.
3225
3226
3227 \membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
3228
3229 \func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
3230
3231 \func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
3232
3233 \func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
3234
3235 \func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
3236
3237 These macros will swap the bytes of the {\it value} variable from little
3238 endian to big endian or vice versa unconditionally, i.e. independently of the
3239 current platform.
3240
3241
3242 \membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
3243
3244 \func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
3245
3246 \func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
3247
3248 \func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
3249
3250 \func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
3251
3252 This macro will swap the bytes of the {\it value} variable from little
3253 endian to big endian or vice versa if the program is compiled on a
3254 big-endian architecture (such as Sun work stations). If the program has
3255 been compiled on a little-endian architecture, the value will be unchanged.
3256
3257 Use these macros to read data from and write data to a file that stores
3258 data in little-endian (for example Intel i386) format.
3259
3260
3261 \membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
3262
3263 \func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
3264
3265 \func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
3266
3267 \func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
3268
3269 \func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
3270
3271 This macro will swap the bytes of the {\it value} variable from little
3272 endian to big endian or vice versa if the program is compiled on a
3273 little-endian architecture (such as Intel PCs). If the program has
3274 been compiled on a big-endian architecture, the value will be unchanged.
3275
3276 Use these macros to read data from and write data to a file that stores
3277 data in big-endian format.
3278
3279
3280
3281 \section{RTTI functions}\label{rttimacros}
3282
3283 wxWidgets uses its own RTTI ("run-time type identification") system which
3284 predates the current standard C++ RTTI and so is kept for backwards
3285 compatibility reasons but also because it allows some things which the
3286 standard RTTI doesn't directly support (such as creating a class from its
3287 name).
3288
3289 The standard C++ RTTI can be used in the user code without any problems and in
3290 general you shouldn't need to use the functions and the macros in this section
3291 unless you are thinking of modifying or adding any wxWidgets classes.
3292
3293 \wxheading{See also}
3294
3295 \helpref{RTTI overview}{runtimeclassoverview}
3296
3297
3298 \membersection{CLASSINFO}\label{classinfo}
3299
3300 \func{wxClassInfo *}{CLASSINFO}{className}
3301
3302 Returns a pointer to the wxClassInfo object associated with this class.
3303
3304 \wxheading{Include files}
3305
3306 <wx/object.h>
3307
3308
3309 \membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass}
3310
3311 \func{}{DECLARE\_ABSTRACT\_CLASS}{className}
3312
3313 Used inside a class declaration to declare that the class should be
3314 made known to the class hierarchy, but objects of this class cannot be created
3315 dynamically. The same as DECLARE\_CLASS.
3316
3317 Example:
3318
3319 \begin{verbatim}
3320 class wxCommand: public wxObject
3321 {
3322 DECLARE_ABSTRACT_CLASS(wxCommand)
3323
3324 private:
3325 ...
3326 public:
3327 ...
3328 };
3329 \end{verbatim}
3330
3331 \wxheading{Include files}
3332
3333 <wx/object.h>
3334
3335
3336 \membersection{DECLARE\_APP}\label{declareapp}
3337
3338 \func{}{DECLARE\_APP}{className}
3339
3340 This is used in headers to create a forward declaration of the
3341 \helpref{wxGetApp}{wxgetapp} function implemented by
3342 \helpref{IMPLEMENT\_APP}{implementapp}. It creates the declaration
3343 {\tt className\& wxGetApp(void)}.
3344
3345 Example:
3346
3347 \begin{verbatim}
3348 DECLARE_APP(MyApp)
3349 \end{verbatim}
3350
3351 \wxheading{Include files}
3352
3353 <wx/app.h>
3354
3355
3356 \membersection{DECLARE\_CLASS}\label{declareclass}
3357
3358 \func{}{DECLARE\_CLASS}{className}
3359
3360 Used inside a class declaration to declare that the class should be
3361 made known to the class hierarchy, but objects of this class cannot be created
3362 dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
3363
3364 \wxheading{Include files}
3365
3366 <wx/object.h>
3367
3368
3369 \membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass}
3370
3371 \func{}{DECLARE\_DYNAMIC\_CLASS}{className}
3372
3373 Used inside a class declaration to make the class known to wxWidgets RTTI
3374 system and also declare that the objects of this class should be dynamically
3375 creatable from run-time type information. Notice that this implies that the
3376 class should have a default constructor, if this is not the case consider using
3377 \helpref{DECLARE\_CLASS}{declareclass}.
3378
3379 Example:
3380
3381 \begin{verbatim}
3382 class wxFrame: public wxWindow
3383 {
3384 DECLARE_DYNAMIC_CLASS(wxFrame)
3385
3386 private:
3387 const wxString& frameTitle;
3388 public:
3389 ...
3390 };
3391 \end{verbatim}
3392
3393 \wxheading{Include files}
3394
3395 <wx/object.h>
3396
3397
3398 \membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass}
3399
3400 \func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
3401
3402 Used in a C++ implementation file to complete the declaration of
3403 a class that has run-time type information. The same as IMPLEMENT\_CLASS.
3404
3405 Example:
3406
3407 \begin{verbatim}
3408 IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
3409
3410 wxCommand::wxCommand(void)
3411 {
3412 ...
3413 }
3414 \end{verbatim}
3415
3416 \wxheading{Include files}
3417
3418 <wx/object.h>
3419
3420
3421 \membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2}
3422
3423 \func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
3424
3425 Used in a C++ implementation file to complete the declaration of
3426 a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
3427
3428 \wxheading{Include files}
3429
3430 <wx/object.h>
3431
3432
3433 \membersection{IMPLEMENT\_APP}\label{implementapp}
3434
3435 \func{}{IMPLEMENT\_APP}{className}
3436
3437 This is used in the application class implementation file to make the application class known to
3438 wxWidgets for dynamic construction. You use this instead of
3439
3440 Old form:
3441
3442 \begin{verbatim}
3443 MyApp myApp;
3444 \end{verbatim}
3445
3446 New form:
3447
3448 \begin{verbatim}
3449 IMPLEMENT_APP(MyApp)
3450 \end{verbatim}
3451
3452 See also \helpref{DECLARE\_APP}{declareapp}.
3453
3454 \wxheading{Include files}
3455
3456 <wx/app.h>
3457
3458
3459 \membersection{IMPLEMENT\_CLASS}\label{implementclass}
3460
3461 \func{}{IMPLEMENT\_CLASS}{className, baseClassName}
3462
3463 Used in a C++ implementation file to complete the declaration of
3464 a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
3465
3466 \wxheading{Include files}
3467
3468 <wx/object.h>
3469
3470
3471 \membersection{IMPLEMENT\_CLASS2}\label{implementclass2}
3472
3473 \func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
3474
3475 Used in a C++ implementation file to complete the declaration of a
3476 class that has run-time type information and two base classes. The
3477 same as IMPLEMENT\_ABSTRACT\_CLASS2.
3478
3479 \wxheading{Include files}
3480
3481 <wx/object.h>
3482
3483
3484 \membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass}
3485
3486 \func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
3487
3488 Used in a C++ implementation file to complete the declaration of
3489 a class that has run-time type information, and whose instances
3490 can be created dynamically.
3491
3492 Example:
3493
3494 \begin{verbatim}
3495 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
3496
3497 wxFrame::wxFrame(void)
3498 {
3499 ...
3500 }
3501 \end{verbatim}
3502
3503 \wxheading{Include files}
3504
3505 <wx/object.h>
3506
3507
3508 \membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2}
3509
3510 \func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
3511
3512 Used in a C++ implementation file to complete the declaration of
3513 a class that has run-time type information, and whose instances
3514 can be created dynamically. Use this for classes derived from two
3515 base classes.
3516
3517 \wxheading{Include files}
3518
3519 <wx/object.h>
3520
3521
3522 \membersection{wxConstCast}\label{wxconstcast}
3523
3524 \func{classname *}{wxConstCast}{ptr, classname}
3525
3526 This macro expands into {\tt const\_cast<classname *>(ptr)} if the compiler
3527 supports {\it const\_cast} or into an old, C-style cast, otherwise.
3528
3529 \wxheading{See also}
3530
3531 \helpref{wx\_const\_cast}{wxconstcastraw}\\
3532 \helpref{wxDynamicCast}{wxdynamiccast}\\
3533 \helpref{wxStaticCast}{wxstaticcast}
3534
3535
3536 \membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
3537
3538 \func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
3539
3540 Creates and returns an object of the given class, if the class has been
3541 registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
3542
3543
3544 \membersection{WXDEBUG\_NEW}\label{debugnew}
3545
3546 \func{}{WXDEBUG\_NEW}{arg}
3547
3548 This is defined in debug mode to be call the redefined new operator
3549 with filename and line number arguments. The definition is:
3550
3551 \begin{verbatim}
3552 #define WXDEBUG_NEW new(__FILE__,__LINE__)
3553 \end{verbatim}
3554
3555 In non-debug mode, this is defined as the normal new operator.
3556
3557 \wxheading{Include files}
3558
3559 <wx/object.h>
3560
3561
3562 \membersection{wxDynamicCast}\label{wxdynamiccast}
3563
3564 \func{classname *}{wxDynamicCast}{ptr, classname}
3565
3566 This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
3567 the pointer is of this type (the check is done during the run-time) or
3568 {\tt NULL} otherwise. Usage of this macro is preferred over obsoleted
3569 wxObject::IsKindOf() function.
3570
3571 The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be
3572 returned.
3573
3574 Example:
3575
3576 \begin{verbatim}
3577 wxWindow *win = wxWindow::FindFocus();
3578 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
3579 if ( text )
3580 {
3581 // a text control has the focus...
3582 }
3583 else
3584 {
3585 // no window has the focus or it is not a text control
3586 }
3587 \end{verbatim}
3588
3589 \wxheading{See also}
3590
3591 \helpref{RTTI overview}{runtimeclassoverview}\\
3592 \helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
3593 \helpref{wxConstCast}{wxconstcast}\\
3594 \helpref{wxStaticCast}{wxstaticcast}
3595
3596
3597 \membersection{wxDynamicCastThis}\label{wxdynamiccastthis}
3598
3599 \func{classname *}{wxDynamicCastThis}{classname}
3600
3601 This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the
3602 latter provokes spurious compilation warnings from some compilers (because it
3603 tests whether {\tt this} pointer is non {\tt NULL} which is always true), so
3604 this macro should be used to avoid them.
3605
3606 \wxheading{See also}
3607
3608 \helpref{wxDynamicCast}{wxdynamiccast}
3609
3610
3611 \membersection{wxStaticCast}\label{wxstaticcast}
3612
3613 \func{classname *}{wxStaticCast}{ptr, classname}
3614
3615 This macro checks that the cast is valid in debug mode (an assert failure will
3616 result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
3617 result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
3618
3619 \wxheading{See also}
3620
3621 \helpref{wx\_static\_cast}{wxstaticcastraw}\\
3622 \helpref{wxDynamicCast}{wxdynamiccast}\\
3623 \helpref{wxConstCast}{wxconstcast}
3624
3625
3626 \membersection{wx\_const\_cast}\label{wxconstcastraw}
3627
3628 \func{T}{wx\_const\_cast}{T, x}
3629
3630 Same as \texttt{const\_cast<T>(x)} if the compiler supports const cast or
3631 \texttt{(T)x} for old compilers. Unlike \helpref{wxConstCast}{wxconstcast},
3632 the cast it to the type \arg{T} and not to \texttt{T *} and also the order of
3633 arguments is the same as for the standard cast.
3634
3635 \wxheading{See also}
3636
3637 \helpref{wx\_reinterpret\_cast}{wxreinterpretcastraw},\\
3638 \helpref{wx\_static\_cast}{wxstaticcastraw}
3639
3640
3641 \membersection{wx\_reinterpret\_cast}\label{wxreinterpretcastraw}
3642
3643 \func{T}{wx\_reinterpret\_cast}{T, x}
3644
3645 Same as \texttt{reinterpret\_cast<T>(x)} if the compiler supports reinterpret cast or
3646 \texttt{(T)x} for old compilers.
3647
3648 \wxheading{See also}
3649
3650 \helpref{wx\_const\_cast}{wxconstcastraw},\\
3651 \helpref{wx\_static\_cast}{wxstaticcastraw}
3652
3653
3654 \membersection{wx\_static\_cast}\label{wxstaticcastraw}
3655
3656 \func{T}{wx\_static\_cast}{T, x}
3657
3658 Same as \texttt{static\_cast<T>(x)} if the compiler supports static cast or
3659 \texttt{(T)x} for old compilers. Unlike \helpref{wxStaticCast}{wxstaticcast},
3660 there are no checks being done and the meaning of the macro arguments is exactly
3661 the same as for the standard static cast, i.e. \arg{T} is the full type name and
3662 star is not appended to it.
3663
3664 \wxheading{See also}
3665
3666 \helpref{wx\_const\_cast}{wxconstcastraw},\\
3667 \helpref{wx\_reinterpret\_cast}{wxreinterpretcastraw},\\
3668 \helpref{wx\_truncate\_cast}{wxtruncatecast}
3669
3670
3671 \membersection{wx\_truncate\_cast}\label{wxtruncatecast}
3672
3673 \func{T}{wx\_truncate\_cast}{T, x}
3674
3675 This case doesn't correspond to any standard cast but exists solely to make
3676 casts which possibly result in a truncation of an integer value more readable.
3677
3678 \wxheading{See also}
3679
3680 \helpref{wx\_static\_cast}{wxstaticcastraw}
3681
3682
3683 \section{Log functions}\label{logfunctions}
3684
3685 These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
3686 further information. The functions use (implicitly) the currently active log
3687 target, so their descriptions here may not apply if the log target is not the
3688 standard one (installed by wxWidgets in the beginning of the program).
3689
3690 \wxheading{Include files}
3691
3692 <wx/log.h>
3693
3694
3695 \membersection{::wxDebugMsg}\label{wxdebugmsg}
3696
3697 \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
3698
3699 {\bf NB:} This function is now obsolete, replaced by \helpref{Log
3700 functions}{logfunctions} and \helpref{wxLogDebug}{wxlogdebug} in particular.
3701
3702 Display a debugging message; under Windows, this will appear on the
3703 debugger command window, and under Unix, it will be written to standard
3704 error.
3705
3706 The syntax is identical to {\bf printf}: pass a format string and a
3707 variable list of arguments.
3708
3709 {\bf Tip:} under Windows, if your application crashes before the
3710 message appears in the debugging window, put a wxYield call after
3711 each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
3712 (at least for Watcom C++): preformat your messages and use OutputDebugString
3713 instead.
3714
3715 \wxheading{Include files}
3716
3717 <wx/utils.h>
3718
3719
3720 \membersection{::wxError}\label{wxerror}
3721
3722 \func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWidgets Internal Error"}}
3723
3724 {\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
3725 instead.
3726
3727 Displays {\it msg} and continues. This writes to standard error under
3728 Unix, and pops up a message box under Windows. Used for internal
3729 wxWidgets errors. See also \helpref{wxFatalError}{wxfatalerror}.
3730
3731 \wxheading{Include files}
3732
3733 <wx/utils.h>
3734
3735
3736 \membersection{::wxFatalError}\label{wxfatalerror}
3737
3738 \func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWidgets Fatal Error"}}
3739
3740 {\bf NB:} This function is now obsolete, please use
3741 \helpref{wxLogFatalError}{wxlogfatalerror} instead.
3742
3743 Displays {\it msg} and exits. This writes to standard error under Unix,
3744 and pops up a message box under Windows. Used for fatal internal
3745 wxWidgets errors. See also \helpref{wxError}{wxerror}.
3746
3747 \wxheading{Include files}
3748
3749 <wx/utils.h>
3750
3751
3752 \membersection{::wxLogError}\label{wxlogerror}
3753
3754 \func{void}{wxLogError}{\param{const char *}{formatString}, \param{...}{}}
3755
3756 \func{void}{wxVLogError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3757
3758 The functions to use for error messages, i.e. the messages that must be shown
3759 to the user. The default processing is to pop up a message box to inform the
3760 user about it.
3761
3762
3763 \membersection{::wxLogFatalError}\label{wxlogfatalerror}
3764
3765 \func{void}{wxLogFatalError}{\param{const char *}{formatString}, \param{...}{}}
3766
3767 \func{void}{wxVLogFatalError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3768
3769 Like \helpref{wxLogError}{wxlogerror}, but also
3770 terminates the program with the exit code 3. Using {\it abort()} standard
3771 function also terminates the program with this exit code.
3772
3773
3774 \membersection{::wxLogWarning}\label{wxlogwarning}
3775
3776 \func{void}{wxLogWarning}{\param{const char *}{formatString}, \param{...}{}}
3777
3778 \func{void}{wxVLogWarning}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3779
3780 For warnings - they are also normally shown to the user, but don't interrupt
3781 the program work.
3782
3783
3784 \membersection{::wxLogMessage}\label{wxlogmessage}
3785
3786 \func{void}{wxLogMessage}{\param{const char *}{formatString}, \param{...}{}}
3787
3788 \func{void}{wxVLogMessage}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3789
3790 For all normal, informational messages. They also appear in a message box by
3791 default (but it can be changed).
3792
3793 \membersection{::wxLogVerbose}\label{wxlogverbose}
3794
3795 \func{void}{wxLogVerbose}{\param{const char *}{formatString}, \param{...}{}}
3796
3797 \func{void}{wxVLogVerbose}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3798
3799 For verbose output. Normally, it is suppressed, but
3800 might be activated if the user wishes to know more details about the program
3801 progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
3802
3803
3804 \membersection{::wxLogStatus}\label{wxlogstatus}
3805
3806 \func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{...}{}}
3807
3808 \func{void}{wxVLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3809
3810 \func{void}{wxLogStatus}{\param{const char *}{formatString}, \param{...}{}}
3811
3812 \func{void}{wxVLogStatus}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3813
3814 Messages logged by these functions will appear in the statusbar of the {\it
3815 frame} or of the top level application window by default (i.e. when using
3816 the second version of the functions).
3817
3818 If the target frame doesn't have a statusbar, the message will be lost.
3819
3820
3821 \membersection{::wxLogSysError}\label{wxlogsyserror}
3822
3823 \func{void}{wxLogSysError}{\param{const char *}{formatString}, \param{...}{}}
3824
3825 \func{void}{wxVLogSysError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3826
3827 Mostly used by wxWidgets itself, but might be handy for logging errors after
3828 system call (API function) failure. It logs the specified message text as well
3829 as the last system error code ({\it errno} or {\it ::GetLastError()} depending
3830 on the platform) and the corresponding error message. The second form
3831 of this function takes the error code explicitly as the first argument.
3832
3833 \wxheading{See also}
3834
3835 \helpref{wxSysErrorCode}{wxsyserrorcode},
3836 \helpref{wxSysErrorMsg}{wxsyserrormsg}
3837
3838
3839 \membersection{::wxLogDebug}\label{wxlogdebug}
3840
3841 \func{void}{wxLogDebug}{\param{const char *}{formatString}, \param{...}{}}
3842
3843 \func{void}{wxVLogDebug}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3844
3845 The right functions for debug output. They only do something in debug
3846 mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to
3847 nothing in release mode (otherwise).
3848
3849
3850 \membersection{::wxLogTrace}\label{wxlogtrace}
3851
3852 \func{void}{wxLogTrace}{\param{const char *}{formatString}, \param{...}{}}
3853
3854 \func{void}{wxVLogTrace}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3855
3856 \func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}}
3857
3858 \func{void}{wxVLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3859
3860 \func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}}
3861
3862 \func{void}{wxVLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3863
3864 As {\bf wxLogDebug}, trace functions only do something in debug build and
3865 expand to nothing in the release one. The reason for making
3866 it a separate function from it is that usually there are a lot of trace
3867 messages, so it might make sense to separate them from other debug messages.
3868
3869 The trace messages also usually can be separated into different categories and
3870 the second and third versions of this function only log the message if the
3871 {\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This
3872 allows to selectively trace only some operations and not others by changing
3873 the value of the trace mask (possible during the run-time).
3874
3875 For the second function (taking a string mask), the message is logged only if
3876 the mask has been previously enabled by the call to
3877 \helpref{AddTraceMask}{wxlogaddtracemask} or by setting
3878 \helpref{{\tt WXTRACE} environment variable}{envvars}.
3879 The predefined string trace masks
3880 used by wxWidgets are:
3881
3882 \begin{itemize}\itemsep=0pt
3883 \item wxTRACE\_MemAlloc: trace memory allocation (new/delete)
3884 \item wxTRACE\_Messages: trace window messages/X callbacks
3885 \item wxTRACE\_ResAlloc: trace GDI resource allocation
3886 \item wxTRACE\_RefCount: trace various ref counting operations
3887 \item wxTRACE\_OleCalls: trace OLE method calls (Win32 only)
3888 \end{itemize}
3889
3890 {\bf Caveats:} since both the mask and the format string are strings,
3891 this might lead to function signature confusion in some cases:
3892 if you intend to call the format string only version of wxLogTrace,
3893 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.
3894 In this case you'll unfortunately have to avoid having two leading
3895 string parameters, e.g. by adding a bogus integer (with its \%d format string).
3896
3897 The third version of the function only logs the message if all the bits
3898 corresponding to the {\it mask} are set in the wxLog trace mask which can be
3899 set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less
3900 flexible than the previous one because it doesn't allow defining the user
3901 trace masks easily - this is why it is deprecated in favour of using string
3902 trace masks.
3903
3904 \begin{itemize}\itemsep=0pt
3905 \item wxTraceMemAlloc: trace memory allocation (new/delete)
3906 \item wxTraceMessages: trace window messages/X callbacks
3907 \item wxTraceResAlloc: trace GDI resource allocation
3908 \item wxTraceRefCount: trace various ref counting operations
3909 \item wxTraceOleCalls: trace OLE method calls (Win32 only)
3910 \end{itemize}
3911
3912
3913 \membersection{::wxSafeShowMessage}\label{wxsafeshowmessage}
3914
3915 \func{void}{wxSafeShowMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{text}}
3916
3917 This function shows a message to the user in a safe way and should be safe to
3918 call even before the application has been initialized or if it is currently in
3919 some other strange state (for example, about to crash). Under Windows this
3920 function shows a message box using a native dialog instead of
3921 \helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere
3922 it simply prints the message to the standard output using the title as prefix.
3923
3924 \wxheading{Parameters}
3925
3926 \docparam{title}{The title of the message box shown to the user or the prefix
3927 of the message string}
3928
3929 \docparam{text}{The text to show to the user}
3930
3931 \wxheading{See also}
3932
3933 \helpref{wxLogFatalError}{wxlogfatalerror}
3934
3935 \wxheading{Include files}
3936
3937 <wx/log.h>
3938
3939
3940 \membersection{::wxSysErrorCode}\label{wxsyserrorcode}
3941
3942 \func{unsigned long}{wxSysErrorCode}{\void}
3943
3944 Returns the error code from the last system call. This function uses
3945 {\tt errno} on Unix platforms and {\tt GetLastError} under Win32.
3946
3947 \wxheading{See also}
3948
3949 \helpref{wxSysErrorMsg}{wxsyserrormsg},
3950 \helpref{wxLogSysError}{wxlogsyserror}
3951
3952
3953 \membersection{::wxSysErrorMsg}\label{wxsyserrormsg}
3954
3955 \func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}}
3956
3957 Returns the error message corresponding to the given system error code. If
3958 {\it errCode} is $0$ (default), the last error code (as returned by
3959 \helpref{wxSysErrorCode}{wxsyserrorcode}) is used.
3960
3961 \wxheading{See also}
3962
3963 \helpref{wxSysErrorCode}{wxsyserrorcode},
3964 \helpref{wxLogSysError}{wxlogsyserror}
3965
3966
3967 \membersection{WXTRACE}\label{trace}
3968
3969 \wxheading{Include files}
3970
3971 <wx/object.h>
3972
3973 \func{}{WXTRACE}{formatString, ...}
3974
3975 {\bf NB:} This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3976
3977 Calls wxTrace with printf-style variable argument syntax. Output
3978 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3979
3980 \wxheading{Include files}
3981
3982 <wx/memory.h>
3983
3984
3985 \membersection{WXTRACELEVEL}\label{tracelevel}
3986
3987 \func{}{WXTRACELEVEL}{level, formatString, ...}
3988
3989 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3990
3991 Calls wxTraceLevel with printf-style variable argument syntax. Output
3992 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3993 The first argument should be the level at which this information is appropriate.
3994 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3995 this value.
3996
3997 \wxheading{Include files}
3998
3999 <wx/memory.h>
4000
4001
4002 \membersection{::wxTrace}\label{wxtrace}
4003
4004 \func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
4005
4006 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
4007
4008 Takes printf-style variable argument syntax. Output
4009 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
4010
4011 \wxheading{Include files}
4012
4013 <wx/memory.h>
4014
4015
4016 \membersection{::wxTraceLevel}\label{wxtracelevel}
4017
4018 \func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
4019
4020 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
4021
4022 Takes printf-style variable argument syntax. Output
4023 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
4024 The first argument should be the level at which this information is appropriate.
4025 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
4026 this value.
4027
4028 \wxheading{Include files}
4029
4030 <wx/memory.h>
4031
4032
4033
4034 \section{Time functions}\label{timefunctions}
4035
4036 The functions in this section deal with getting the current time and
4037 starting/stopping the global timers. Please note that the timer functions are
4038 deprecated because they work with one global timer only and
4039 \helpref{wxTimer}{wxtimer} and/or \helpref{wxStopWatch}{wxstopwatch} classes
4040 should be used instead. For retrieving the current time, you may also use
4041 \helpref{wxDateTime::Now}{wxdatetimenow} or
4042 \helpref{wxDateTime::UNow}{wxdatetimeunow} methods.
4043
4044
4045 \membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
4046
4047 \func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = true}}
4048
4049 Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
4050
4051 If {\it resetTimer} is true (the default), the timer is reset to zero
4052 by this call.
4053
4054 See also \helpref{wxTimer}{wxtimer}.
4055
4056 \wxheading{Include files}
4057
4058 <wx/timer.h>
4059
4060
4061 \membersection{::wxGetLocalTime}\label{wxgetlocaltime}
4062
4063 \func{long}{wxGetLocalTime}{\void}
4064
4065 Returns the number of seconds since local time 00:00:00 Jan 1st 1970.
4066
4067 \wxheading{See also}
4068
4069 \helpref{wxDateTime::Now}{wxdatetimenow}
4070
4071 \wxheading{Include files}
4072
4073 <wx/timer.h>
4074
4075
4076 \membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis}
4077
4078 \func{wxLongLong}{wxGetLocalTimeMillis}{\void}
4079
4080 Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970.
4081
4082 \wxheading{See also}
4083
4084 \helpref{wxDateTime::Now}{wxdatetimenow},\\
4085 \helpref{wxLongLong}{wxlonglong}
4086
4087 \wxheading{Include files}
4088
4089 <wx/timer.h>
4090
4091
4092 \membersection{::wxGetUTCTime}\label{wxgetutctime}
4093
4094 \func{long}{wxGetUTCTime}{\void}
4095
4096 Returns the number of seconds since GMT 00:00:00 Jan 1st 1970.
4097
4098 \wxheading{See also}
4099
4100 \helpref{wxDateTime::Now}{wxdatetimenow}
4101
4102 \wxheading{Include files}
4103
4104 <wx/timer.h>
4105
4106
4107 \membersection{::wxMicroSleep}\label{wxmicrosleep}
4108
4109 \func{void}{wxMicroSleep}{\param{unsigned long}{ microseconds}}
4110
4111 Sleeps for the specified number of microseconds. The microsecond resolution may
4112 not, in fact, be available on all platforms (currently only Unix platforms with
4113 nanosleep(2) may provide it) in which case this is the same as
4114 \helpref{wxMilliSleep}{wxmillisleep}(\arg{microseconds}$/1000$).
4115
4116 \wxheading{Include files}
4117
4118 <wx/utils.h>
4119
4120
4121 \membersection{::wxMilliSleep}\label{wxmillisleep}
4122
4123 \func{void}{wxMilliSleep}{\param{unsigned long}{ milliseconds}}
4124
4125 Sleeps for the specified number of milliseconds. Notice that usage of this
4126 function is encouraged instead of calling usleep(3) directly because the
4127 standard usleep() function is not MT safe.
4128
4129 \wxheading{Include files}
4130
4131 <wx/utils.h>
4132
4133
4134 \membersection{::wxNow}\label{wxnow}
4135
4136 \func{wxString}{wxNow}{\void}
4137
4138 Returns a string representing the current date and time.
4139
4140 \wxheading{Include files}
4141
4142 <wx/utils.h>
4143
4144
4145 \membersection{::wxSleep}\label{wxsleep}
4146
4147 \func{void}{wxSleep}{\param{int}{ secs}}
4148
4149 Sleeps for the specified number of seconds.
4150
4151 \wxheading{Include files}
4152
4153 <wx/utils.h>
4154
4155
4156 \membersection{::wxStartTimer}\label{wxstarttimer}
4157
4158 \func{void}{wxStartTimer}{\void}
4159
4160 Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
4161
4162 See also \helpref{wxTimer}{wxtimer}.
4163
4164 \wxheading{Include files}
4165
4166 <wx/timer.h>
4167
4168
4169 \membersection{::wxUsleep}\label{wxusleep}
4170
4171 \func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
4172
4173 This function is deprecated because its name is misleading: notice that the
4174 argument is in milliseconds, not microseconds. Please use either
4175 \helpref{wxMilliSleep}{wxmillisleep} or \helpref{wxMicroSleep}{wxmicrosleep}
4176 depending on the resolution you need.
4177
4178
4179
4180 \section{Debugging macros and functions}\label{debugmacros}
4181
4182 Useful macros and functions for error checking and defensive programming.
4183 wxWidgets defines three families of the assert-like macros:
4184 the wxASSERT and wxFAIL macros only do anything if \_\_WXDEBUG\_\_ is defined
4185 (in other words, in the debug build) but disappear completely in the release
4186 build. On the other hand, the wxCHECK macros stay event in release builds but a
4187 check failure doesn't generate any user-visible effects then. Finally, the
4188 compile time assertions don't happen during the run-time but result in the
4189 compilation error messages if the condition they check fail.
4190
4191 \wxheading{Include files}
4192
4193 <wx/debug.h>
4194
4195
4196 \membersection{::wxOnAssert}\label{wxonassert}
4197
4198 \func{void}{wxOnAssert}{\param{const char *}{fileName}, \param{int}{ lineNumber}, \param{const char *}{cond}, \param{const char *}{msg = NULL}}
4199
4200 This function is called whenever one of debugging macros fails (i.e. condition
4201 is false in an assertion). It is only defined in the debug mode, in release
4202 builds the \helpref{wxCHECK}{wxcheck} failures don't result in anything.
4203
4204 To override the default behaviour in the debug builds which is to show the user
4205 a dialog asking whether he wants to abort the program, continue or continue
4206 ignoring any subsequent assert failures, you may override
4207 \helpref{wxApp::OnAssert}{wxapponassert} which is called by this function if
4208 the global application object exists.
4209
4210
4211 \membersection{wxASSERT}\label{wxassert}
4212
4213 \func{}{wxASSERT}{\param{}{condition}}
4214
4215 Assert macro. An error message will be generated if the condition is false in
4216 debug mode, but nothing will be done in the release build.
4217
4218 Please note that the condition in wxASSERT() should have no side effects
4219 because it will not be executed in release mode at all.
4220
4221 \wxheading{See also}
4222
4223 \helpref{wxASSERT\_MSG}{wxassertmsg},\\
4224 \helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
4225
4226
4227 \membersection{wxASSERT\_MIN\_BITSIZE}\label{wxassertminbitsize}
4228
4229 \func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}}
4230
4231 This macro results in a
4232 \helpref{compile time assertion failure}{wxcompiletimeassert} if the size
4233 of the given type {\it type} is less than {\it size} bits.
4234
4235 You may use it like this, for example:
4236
4237 \begin{verbatim}
4238 // we rely on the int being able to hold values up to 2^32
4239 wxASSERT_MIN_BITSIZE(int, 32);
4240
4241 // can't work with the platforms using UTF-8 for wchar_t
4242 wxASSERT_MIN_BITSIZE(wchar_t, 16);
4243 \end{verbatim}
4244
4245
4246 \membersection{wxASSERT\_MSG}\label{wxassertmsg}
4247
4248 \func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
4249
4250 Assert macro with message. An error message will be generated if the condition is false.
4251
4252 \wxheading{See also}
4253
4254 \helpref{wxASSERT}{wxassert},\\
4255 \helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
4256
4257
4258 \membersection{wxCOMPILE\_TIME\_ASSERT}\label{wxcompiletimeassert}
4259
4260 \func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}}
4261
4262 Using {\tt wxCOMPILE\_TIME\_ASSERT} results in a compilation error if the
4263 specified {\it condition} is false. The compiler error message should include
4264 the {\it msg} identifier - please note that it must be a valid C++ identifier
4265 and not a string unlike in the other cases.
4266
4267 This macro is mostly useful for testing the expressions involving the
4268 {\tt sizeof} operator as they can't be tested by the preprocessor but it is
4269 sometimes desirable to test them at the compile time.
4270
4271 Note that this macro internally declares a struct whose name it tries to make
4272 unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you
4273 use it on the same line in two different source files. In this case you may
4274 either change the line in which either of them appears on or use the
4275 \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro.
4276
4277 Also note that Microsoft Visual C++ has a bug which results in compiler errors
4278 if you use this macro with `Program Database For Edit And Continue'
4279 (\texttt{/ZI}) option, so you shouldn't use it (`Program Database'
4280 (\texttt{/Zi}) is ok though) for the code making use of this macro.
4281
4282 \wxheading{See also}
4283
4284 \helpref{wxASSERT\_MSG}{wxassertmsg},\\
4285 \helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}
4286
4287
4288 \membersection{wxCOMPILE\_TIME\_ASSERT2}\label{wxcompiletimeassert2}
4289
4290 \func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}}
4291
4292 This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}
4293 except that it allows you to specify a unique {\it name} for the struct
4294 internally defined by this macro to avoid getting the compilation errors
4295 described \helpref{above}{wxcompiletimeassert}.
4296
4297
4298 \membersection{wxFAIL}\label{wxfail}
4299
4300 \func{}{wxFAIL}{\void}
4301
4302 Will always generate an assert error if this code is reached (in debug mode).
4303
4304 See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
4305
4306
4307 \membersection{wxFAIL\_MSG}\label{wxfailmsg}
4308
4309 \func{}{wxFAIL\_MSG}{\param{}{msg}}
4310
4311 Will always generate an assert error with specified message if this code is reached (in debug mode).
4312
4313 This macro is useful for marking unreachable" code areas, for example
4314 it may be used in the "default:" branch of a switch statement if all possible
4315 cases are processed above.
4316
4317 \wxheading{See also}
4318
4319 \helpref{wxFAIL}{wxfail}
4320
4321
4322 \membersection{wxCHECK}\label{wxcheck}
4323
4324 \func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
4325
4326 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
4327 This check is done even in release mode.
4328
4329
4330 \membersection{wxCHECK\_MSG}\label{wxcheckmsg}
4331
4332 \func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
4333
4334 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
4335 This check is done even in release mode.
4336
4337 This macro may be only used in non void functions, see also
4338 \helpref{wxCHECK\_RET}{wxcheckret}.
4339
4340
4341 \membersection{wxCHECK\_RET}\label{wxcheckret}
4342
4343 \func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
4344
4345 Checks that the condition is true, and returns if not (FAILs with given error
4346 message in debug mode). This check is done even in release mode.
4347
4348 This macro should be used in void functions instead of
4349 \helpref{wxCHECK\_MSG}{wxcheckmsg}.
4350
4351
4352 \membersection{wxCHECK2}\label{wxcheck2}
4353
4354 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
4355
4356 Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
4357 {\it operation} if it is not. This is a generalisation of
4358 \helpref{wxCHECK}{wxcheck} and may be used when something else than just
4359 returning from the function must be done when the {\it condition} is false.
4360
4361 This check is done even in release mode.
4362
4363
4364 \membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
4365
4366 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
4367
4368 This is the same as \helpref{wxCHECK2}{wxcheck2}, but
4369 \helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
4370 instead of wxFAIL() if the {\it condition} is false.
4371
4372
4373 \membersection{::wxTrap}\label{wxtrap}
4374
4375 \func{void}{wxTrap}{\void}
4376
4377 In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a
4378 debugger exception meaning that the control is passed to the debugger if one is
4379 attached to the process. Otherwise the program just terminates abnormally.
4380
4381 In release mode this function does nothing.
4382
4383 \wxheading{Include files}
4384
4385 <wx/debug.h>
4386
4387
4388
4389 \membersection{::wxIsDebuggerRunning}\label{wxisdebuggerrunning}
4390
4391 \func{bool}{wxIsDebuggerRunning}{\void}
4392
4393 Returns \true if the program is running under debugger, \false otherwise.
4394
4395 Please note that this function is currently only implemented for Win32 and Mac
4396 builds using CodeWarrior and always returns \false elsewhere.
4397
4398
4399
4400
4401 \section{Environment access functions}\label{environfunctions}
4402
4403 The functions in this section allow to access (get) or change value of
4404 environment variables in a portable way. They are currently implemented under
4405 Win32 and POSIX-like systems (Unix).
4406
4407 % TODO add some stuff about env var inheriting but not propagating upwards (VZ)
4408
4409 \wxheading{Include files}
4410
4411 <wx/utils.h>
4412
4413
4414 \membersection{wxGetenv}\label{wxgetenvmacro}
4415
4416 \func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}}
4417
4418 This is a macro defined as {\tt getenv()} or its wide char version in Unicode
4419 mode.
4420
4421 Note that under Win32 it may not return correct value for the variables set
4422 with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function
4423 instead.
4424
4425
4426 \membersection{wxGetEnv}\label{wxgetenv}
4427
4428 \func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}}
4429
4430 Returns the current value of the environment variable {\it var} in {\it value}.
4431 {\it value} may be {\tt NULL} if you just want to know if the variable exists
4432 and are not interested in its value.
4433
4434 Returns \true if the variable exists, \false otherwise.
4435
4436
4437 \membersection{wxSetEnv}\label{wxsetenv}
4438
4439 \func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
4440
4441 Sets the value of the environment variable {\it var} (adding it if necessary)
4442 to {\it value}.
4443
4444 Returns \true on success.
4445
4446
4447 \membersection{wxUnsetEnv}\label{wxunsetenv}
4448
4449 \func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}}
4450
4451 Removes the variable {\it var} from the environment.
4452 \helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this
4453 function.
4454
4455 Returns \true on success.
4456