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