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