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