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