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