]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/function.tex
updated the sample to show the sizers, not constraints, in the main frame; also demon...
[wxWidgets.git] / docs / latex / wx / function.tex
... / ...
CommitLineData
1\chapter{Functions}\label{functions}
2\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
3\setfooter{\thepage}{}{}{}{}{\thepage}
4
5The functions and macros defined in wxWindows are described here: you can
6either look up a function using the alphabetical listing of them or find it in
7the corresponding topic.
8
9\section{Alphabetical functions and macros list}
10
11\helpref{CLASSINFO}{classinfo}\\
12\helpref{copystring}{copystring}\\
13\helpref{DECLARE\_ABSTRACT\_CLASS}{declareabstractclass}\\
14\helpref{DECLARE\_APP}{declareapp}\\
15\helpref{DECLARE\_CLASS}{declareclass}\\
16\helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass}\\
17\helpref{IMPLEMENT\_ABSTRACT\_CLASS2}{implementabstractclass2}\\
18\helpref{IMPLEMENT\_ABSTRACT\_CLASS}{implementabstractclass}\\
19\helpref{IMPLEMENT\_APP}{implementapp}\\
20\helpref{IMPLEMENT\_CLASS2}{implementclass2}\\
21\helpref{IMPLEMENT\_CLASS}{implementclass}\\
22\helpref{IMPLEMENT\_DYNAMIC\_CLASS2}{implementdynamicclass2}\\
23\helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass}\\
24\helpref{WXDEBUG\_NEW}{debugnew}\\
25\helpref{WXTRACELEVEL}{tracelevel}\\
26\helpref{WXTRACE}{trace}\\
27\helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}\\
28\helpref{wxASSERT\_MSG}{wxassertmsg}\\
29\helpref{wxASSERT}{wxassert}\\
30\helpref{wxBITMAP}{wxbitmapmacro}\\
31\helpref{wxBeginBusyCursor}{wxbeginbusycursor}\\
32\helpref{wxBell}{wxbell}\\
33\helpref{wxCHECK}{wxcheck}\\
34\helpref{wxCHECK2\_MSG}{wxcheck2msg}\\
35\helpref{wxCHECK2}{wxcheck2}\\
36\helpref{wxCHECK\_GCC\_VERSION}{wxcheckgccversion}\\
37\helpref{wxCHECK\_MSG}{wxcheckmsg}\\
38\helpref{wxCHECK\_RET}{wxcheckret}\\
39\helpref{wxCHECK\_VERSION}{wxcheckversion}\\
40\helpref{wxCHECK\_W32API\_VERSION}{wxcheckw32apiversion}\\
41\helpref{wxClientDisplayRect}{wxclientdisplayrect}\\
42\helpref{wxClipboardOpen}{functionwxclipboardopen}\\
43\helpref{wxCloseClipboard}{wxcloseclipboard}\\
44\helpref{wxColourDisplay}{wxcolourdisplay}\\
45\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}\\
46\helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}\\
47\helpref{wxConcatFiles}{wxconcatfiles}\\
48\helpref{wxConstCast}{wxconstcast}\\
49\helpref{wxCopyFile}{wxcopyfile}\\
50\helpref{wxCreateDynamicObject}{wxcreatedynamicobject}\\
51\helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}\\
52\helpref{wxDDECleanUp}{wxddecleanup}\\
53\helpref{wxDDEInitialize}{wxddeinitialize}\\
54\helpref{wxDROP\_ICON}{wxdropicon}\\
55\helpref{wxDebugMsg}{wxdebugmsg}\\
56\helpref{wxDirExists}{functionwxdirexists}\\
57\helpref{wxDirSelector}{wxdirselector}\\
58\helpref{wxDisplayDepth}{wxdisplaydepth}\\
59\helpref{wxDisplaySize}{wxdisplaysize}\\
60\helpref{wxDisplaySizeMM}{wxdisplaysizemm}\\
61\helpref{wxDos2UnixFilename}{wxdos2unixfilename}\\
62\helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
63\helpref{wxDynamicCast}{wxdynamiccast}\\
64\helpref{wxEmptyClipboard}{wxemptyclipboard}\\
65\helpref{wxEnableTopLevelWindows}{wxenabletoplevelwindows}\\
66\helpref{wxEndBusyCursor}{wxendbusycursor}\\
67\helpref{wxEntry}{wxentry}\\
68\helpref{wxEnumClipboardFormats}{wxenumclipboardformats}\\
69\helpref{wxError}{wxerror}\\
70\helpref{wxExecute}{wxexecute}\\
71\helpref{wxExit}{wxexit}\\
72\helpref{wxEXPLICIT}{wxexplicit}\\
73\helpref{wxFAIL\_MSG}{wxfailmsg}\\
74\helpref{wxFAIL}{wxfail}\\
75\helpref{wxFatalError}{wxfatalerror}\\
76\helpref{wxFileExists}{functionwxfileexists}\\
77\helpref{wxFileModificationTime}{wxfilemodificationtime}\\
78\helpref{wxFileNameFromPath}{wxfilenamefrompath}\\
79\helpref{wxFileSelector}{wxfileselector}\\
80\helpref{wxFindFirstFile}{wxfindfirstfile}\\
81\helpref{wxFindMenuItemId}{wxfindmenuitemid}\\
82\helpref{wxFindNextFile}{wxfindnextfile}\\
83\helpref{wxFindWindowAtPointer}{wxfindwindowatpointer}\\
84\helpref{wxFindWindowAtPoint}{wxfindwindowatpoint}\\
85\helpref{wxFindWindowByLabel}{wxfindwindowbylabel}\\
86\helpref{wxFindWindowByName}{wxfindwindowbyname}\\
87\helpref{wxGetActiveWindow}{wxgetactivewindow}\\
88\helpref{wxGetApp}{wxgetapp}\\
89\helpref{wxGetClipboardData}{wxgetclipboarddata}\\
90\helpref{wxGetClipboardFormatName}{wxgetclipboardformatname}\\
91\helpref{wxGetColourFromUser}{wxgetcolourfromuser}\\
92\helpref{wxGetCwd}{wxgetcwd}\\
93\helpref{wxGetDiskSpace}{wxgetdiskspace}\\
94\helpref{wxGetDisplayName}{wxgetdisplayname}\\
95\helpref{wxGetElapsedTime}{wxgetelapsedtime}\\
96\helpref{wxGetEmailAddress}{wxgetemailaddress}\\
97\helpref{wxGetEnv}{wxgetenv}\\
98\helpref{wxGetFontFromUser}{wxgetfontfromuser}\\
99\helpref{wxGetFreeMemory}{wxgetfreememory}\\
100\helpref{wxGetFullHostName}{wxgetfullhostname}\\
101\helpref{wxGetHomeDir}{wxgethomedir}\\
102\helpref{wxGetHostName}{wxgethostname}\\
103\helpref{wxGetLocalTimeMillis}{wxgetlocaltimemillis}\\
104\helpref{wxGetLocalTime}{wxgetlocaltime}\\
105\helpref{wxGetMousePosition}{wxgetmouseposition}\\
106\helpref{wxGetMultipleChoices}{wxgetmultiplechoices}\\
107\helpref{wxGetMultipleChoice}{wxgetmultiplechoice}\\
108\helpref{wxGetNumberFromUser}{wxgetnumberfromuser}\\
109\helpref{wxGetOSDirectory}{wxgetosdirectory}\\
110\helpref{wxGetOsDescription}{wxgetosdescription}\\
111\helpref{wxGetOsVersion}{wxgetosversion}\\
112\helpref{wxGetPasswordFromUser}{wxgetpasswordfromuser}\\
113\helpref{wxGetPrinterCommand}{wxgetprintercommand}\\
114\helpref{wxGetPrinterFile}{wxgetprinterfile}\\
115\helpref{wxGetPrinterMode}{wxgetprintermode}\\
116\helpref{wxGetPrinterOptions}{wxgetprinteroptions}\\
117\helpref{wxGetPrinterOrientation}{wxgetprinterorientation}\\
118\helpref{wxGetPrinterPreviewCommand}{wxgetprinterpreviewcommand}\\
119\helpref{wxGetPrinterScaling}{wxgetprinterscaling}\\
120\helpref{wxGetPrinterTranslation}{wxgetprintertranslation}\\
121\helpref{wxGetProcessId}{wxgetprocessid}\\
122\helpref{wxGetResource}{wxgetresource}\\
123\helpref{wxGetSingleChoiceData}{wxgetsinglechoicedata}\\
124\helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex}\\
125\helpref{wxGetSingleChoice}{wxgetsinglechoice}\\
126\helpref{wxGetTempFileName}{wxgettempfilename}\\
127\helpref{wxGetTextFromUser}{wxgettextfromuser}\\
128\helpref{wxGetTopLevelParent}{wxgettoplevelparent}\\
129\helpref{wxGetTranslation}{wxgettranslation}\\
130\helpref{wxGetUTCTime}{wxgetutctime}\\
131\helpref{wxGetUserHome}{wxgetuserhome}\\
132\helpref{wxGetUserId}{wxgetuserid}\\
133\helpref{wxGetUserName}{wxgetusername}\\
134\helpref{wxGetWorkingDirectory}{wxgetworkingdirectory}\\
135\helpref{wxGetenv}{wxgetenvmacro}\\
136\helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions}\\
137\helpref{wxICON}{wxiconmacro}\\
138\helpref{wxINTXX\_SWAP\_ALWAYS}{intswapalways}\\
139\helpref{wxINTXX\_SWAP\_ON\_BE}{intswaponbe}\\
140\helpref{wxINTXX\_SWAP\_ON\_LE}{intswaponle}\\
141\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}\\
142\helpref{wxInitialize}{wxinitialize}\\
143\helpref{wxIsAbsolutePath}{wxisabsolutepath}\\
144\helpref{wxIsBusy}{wxisbusy}\\
145\helpref{wxIsClipboardFormatAvailable}{wxisclipboardformatavailable}\\
146\helpref{wxIsEmpty}{wxisempty}\\
147\helpref{wxIsWild}{wxiswild}\\
148\helpref{wxKill}{wxkill}\\
149\helpref{wxLoadUserResource}{wxloaduserresource}\\
150\helpref{wxLogDebug}{wxlogdebug}\\
151\helpref{wxLogError}{wxlogerror}\\
152\helpref{wxLogFatalError}{wxlogfatalerror}\\
153\helpref{wxLogMessage}{wxlogmessage}\\
154\helpref{wxLogStatus}{wxlogstatus}\\
155\helpref{wxLogSysError}{wxlogsyserror}\\
156\helpref{wxLogTrace}{wxlogtrace}\\
157\helpref{wxLogVerbose}{wxlogverbose}\\
158\helpref{wxLogWarning}{wxlogwarning}\\
159\helpref{wxLL}{wxll}\\
160\helpref{wxLongLongFmtSpec}{wxlonglongfmtspec}\\
161\helpref{wxMakeMetafilePlaceable}{wxmakemetafileplaceable}\\
162\helpref{wxMatchWild}{wxmatchwild}\\
163\helpref{wxMessageBox}{wxmessagebox}\\
164\helpref{wxMkdir}{wxmkdir}\\
165\helpref{wxMutexGuiEnter}{wxmutexguienter}\\
166\helpref{wxMutexGuiLeave}{wxmutexguileave}\\
167\helpref{wxNewId}{wxnewid}\\
168\helpref{wxNow}{wxnow}\\
169\helpref{wxOnAssert}{wxonassert}\\
170\helpref{wxOpenClipboard}{wxopenclipboard}\\
171\helpref{wxPathOnly}{wxpathonly}\\
172\helpref{wxPostDelete}{wxpostdelete}\\
173\helpref{wxPostEvent}{wxpostevent}\\
174\helpref{wxRegisterClipboardFormat}{wxregisterclipboardformat}\\
175\helpref{wxRegisterId}{wxregisterid}\\
176\helpref{wxRemoveFile}{wxremovefile}\\
177\helpref{wxRenameFile}{wxrenamefile}\\
178\helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}\\
179\helpref{wxResourceClear}{wxresourceclear}\\
180\helpref{wxResourceCreateBitmap}{wxresourcecreatebitmap}\\
181\helpref{wxResourceCreateIcon}{wxresourcecreateicon}\\
182\helpref{wxResourceCreateMenuBar}{wxresourcecreatemenubar}\\
183\helpref{wxResourceGetIdentifier}{wxresourcegetidentifier}\\
184\helpref{wxResourceParseData}{wxresourcedata}\\
185\helpref{wxResourceParseFile}{wxresourceparsefile}\\
186\helpref{wxResourceParseString}{wxresourceparsestring}\\
187\helpref{wxResourceRegisterBitmapData}{registerbitmapdata}\\
188\helpref{wxResourceRegisterIconData}{wxresourceregistericondata}\\
189\helpref{wxRmdir}{wxrmdir}\\
190\helpref{wxSafeShowMessage}{wxsafeshowmessage}\\
191\helpref{wxSafeYield}{wxsafeyield}\\
192\helpref{wxSetClipboardData}{wxsetclipboarddata}\\
193\helpref{wxSetCursor}{wxsetcursor}\\
194\helpref{wxSetDisplayName}{wxsetdisplayname}\\
195\helpref{wxSetEnv}{wxsetenv}\\
196\helpref{wxSetPrinterCommand}{wxsetprintercommand}\\
197\helpref{wxSetPrinterFile}{wxsetprinterfile}\\
198\helpref{wxSetPrinterMode}{wxsetprintermode}\\
199\helpref{wxSetPrinterOptions}{wxsetprinteroptions}\\
200\helpref{wxSetPrinterOrientation}{wxsetprinterorientation}\\
201\helpref{wxSetPrinterPreviewCommand}{wxsetprinterpreviewcommand}\\
202\helpref{wxSetPrinterScaling}{wxsetprinterscaling}\\
203\helpref{wxSetPrinterTranslation}{wxsetprintertranslation}\\
204\helpref{wxSetWorkingDirectory}{wxsetworkingdirectory}\\
205\helpref{wxShell}{wxshell}\\
206\helpref{wxShowTip}{wxshowtip}\\
207\helpref{wxShutdown}{wxshutdown}\\
208\helpref{wxSleep}{wxsleep}\\
209\helpref{wxSnprintf}{wxsnprintf}\\
210\helpref{wxSplitPath}{wxsplitfunction}\\
211\helpref{wxStartTimer}{wxstarttimer}\\
212\helpref{wxStaticCast}{wxstaticcast}\\
213\helpref{wxStricmp}{wxstricmp}\\
214\helpref{wxStringEq}{wxstringeq}\\
215\helpref{wxStringMatch}{wxstringmatch}\\
216\helpref{wxStripMenuCodes}{wxstripmenucodes}\\
217\helpref{wxStrlen}{wxstrlen}\\
218\helpref{wxSysErrorCode}{wxsyserrorcode}\\
219\helpref{wxSysErrorMsg}{wxsyserrormsg}\\
220\helpref{wxT}{wxt}\\
221\helpref{wxToLower}{wxtolower}\\
222\helpref{wxToUpper}{wxtoupper}\\
223\helpref{wxTraceLevel}{wxtracelevel}\\
224\helpref{wxTrace}{wxtrace}\\
225\helpref{wxTransferFileToStream}{wxtransferfiletostream}\\
226\helpref{wxTransferStreamToFile}{wxtransferstreamtofile}\\
227\helpref{wxTrap}{wxtrap}\\
228\helpref{wxUninitialize}{wxuninitialize}\\
229\helpref{wxUnix2DosFilename}{wxunix2dosfilename}\\
230\helpref{wxUnsetEnv}{wxunsetenv}\\
231\helpref{wxUsleep}{wxusleep}\\
232\helpref{wxVsnprintf}{wxvsnprintf}\\
233\helpref{wxWakeUpIdle}{wxwakeupidle}\\
234\helpref{wxWriteResource}{wxwriteresource}\\
235\helpref{wxYield}{wxyield}\\
236\helpref{\_}{underscore}\\
237\helpref{\_T}{underscoret}
238
239\section{Version macros}\label{versionfunctions}
240
241The following constants are defined in wxWindows:
242
243\begin{itemize}\itemsep=0pt
244\item {\tt wxMAJOR\_VERSION} is the major version of wxWindows
245\item {\tt wxMINOR\_VERSION} is the minor version of wxWindows
246\item {\tt wxRELEASE\_NUMBER} is the release number
247\end{itemize}
248
249For example, the values or these constants for wxWindows 2.1.15 are 2, 1 and
25015.
251
252Additionally, {\tt wxVERSION\_STRING} is a user-readable string containing
253the full wxWindows version and {\tt wxVERSION\_NUMBER} is a combination of the
254three version numbers above: for 2.1.15, it is 2115 and it is 2200 for
255wxWindows 2.2.
256
257\wxheading{Include files}
258
259<wx/version.h> or <wx/defs.h>
260
261\membersection{wxCHECK\_VERSION}\label{wxcheckversion}
262
263\func{bool}{wxCHECK\_VERSION}{\param{}{major, minor, release}}
264
265This is a macro which evaluates to true if the current wxWindows version is at
266least major.minor.release.
267
268For example, to test if the program is compiled with wxWindows 2.2 or higher,
269the following can be done:
270
271\begin{verbatim}
272 wxString s;
273#if wxCHECK_VERSION(2, 2, 0)
274 if ( s.StartsWith("foo") )
275#else // replacement code for old version
276 if ( strncmp(s, "foo", 3) == 0 )
277#endif
278 {
279 ...
280 }
281\end{verbatim}
282
283\membersection{wxCHECK\_GCC\_VERSION}\label{wxcheckgccversion}
284
285\func{bool}{wxCHECK\_GCC\_VERSION}{\param{}{major, minor, release}}
286
287Returns $1$ if the compiler being used to compile the code is GNU C++
288compiler (g++) version major.minor.release or greater. Otherwise, and also if
289the compiler is not GNU C++ at all, returns $0$.
290
291\membersection{wxCHECK\_W32API\_VERSION}\label{wxcheckw32apiversion}
292
293\func{bool}{wxCHECK\_GCC\_VERSION}{\param{}{major, minor, release}}
294
295Returns $1$ if the version of w32api headers used is major.minor.release or
296greater. Otherwise, and also if we are not compiling with mingw32/cygwin under
297Win32 at all, returns $0$.
298
299\section{Application initialization and termination}\label{appinifunctions}
300
301The functions in this section are used on application startup/shutdown and also
302to control the behaviour of the main event loop of the GUI programs.
303
304\membersection{::wxEntry}\label{wxentry}
305
306This initializes wxWindows in a platform-dependent way. Use this if you
307are not using the default wxWindows entry code (e.g. main or WinMain). For example,
308you can initialize wxWindows from an Microsoft Foundation Classes application using
309this function.
310
311\func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
312 \param{const wxString\& }{commandLine}, \param{int}{ cmdShow}, \param{bool}{ enterLoop = true}}
313
314wxWindows initialization under Windows (non-DLL). If {\it enterLoop} is false, the
315function will return immediately after calling wxApp::OnInit. Otherwise, the wxWindows
316message loop will be entered.
317
318\func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
319 \param{WORD}{ wDataSegment}, \param{WORD}{ wHeapSize}, \param{const wxString\& }{ commandLine}}
320
321wxWindows initialization under Windows (for applications constructed as a DLL).
322
323\func{int}{wxEntry}{\param{int}{ argc}, \param{const wxString\& *}{argv}}
324
325wxWindows initialization under Unix.
326
327\wxheading{Remarks}
328
329To clean up wxWindows, call wxApp::OnExit followed by the static function
330wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWindows:
331
332\begin{verbatim}
333int CTheApp::ExitInstance()
334{
335 // OnExit isn't called by CleanUp so must be called explicitly.
336 wxTheApp->OnExit();
337 wxApp::CleanUp();
338
339 return CWinApp::ExitInstance();
340}
341\end{verbatim}
342
343\wxheading{Include files}
344
345<wx/app.h>
346
347
348\membersection{::wxGetApp}\label{wxgetapp}
349
350\func{wxAppDerivedClass\&}{wxGetApp}{\void}
351
352This function doesn't exist in wxWindows but it is created by using
353the \helpref{IMPLEMENT\_APP}{implementapp} macro. Thus, before using it
354anywhere but in the same module where this macro is used, you must make it
355available using \helpref{DECLARE\_APP}{declareapp}.
356
357The advantage of using this function compared to directly using the global
358wxTheApp pointer is that the latter is of type {\tt wxApp *} and so wouldn't
359allow you to access the functions specific to your application class but not
360present in wxApp while wxGetApp() returns the object of the right type.
361
362\membersection{::wxHandleFatalExceptions}\label{wxhandlefatalexceptions}
363
364\func{bool}{wxHandleFatalExceptions}{\param{bool}{ doIt = true}}
365
366If {\it doIt} is true, the fatal exceptions (also known as general protection
367faults under Windows or segmentation violations in the Unix world) will be
368caught and passed to \helpref{wxApp::OnFatalException}{wxapponfatalexception}.
369By default, i.e. before this function is called, they will be handled in the
370normal way which usually just means that the application will be terminated.
371Calling wxHandleFatalExceptions() with {\it doIt} equal to false will restore
372this default behaviour.
373
374\membersection{::wxInitAllImageHandlers}\label{wxinitallimagehandlers}
375
376\func{void}{wxInitAllImageHandlers}{\void}
377
378Initializes all available image handlers. For a list of available handlers,
379see \helpref{wxImage}{wximage}.
380
381\wxheading{See also}
382
383\helpref{wxImage}{wximage}, \helpref{wxImageHandler}{wximagehandler}
384
385\wxheading{Include files}
386
387<wx/image.h>
388
389\membersection{::wxInitialize}\label{wxinitialize}
390
391\func{bool}{wxInitialize}{\void}
392
393This function is used in wxBase only and only if you don't create
394\helpref{wxApp}{wxapp} object at all. In this case you must call it from your
395{\tt main()} function before calling any other wxWindows functions.
396
397If the function returns {\tt false} the initialization could not be performed,
398in this case the library cannot be used and
399\helpref{wxUninitialize}{wxuninitialize} shouldn't be called neither.
400
401This function may be called several times but
402\helpref{wxUninitialize}{wxuninitialize} must be called for each successful
403call to this function.
404
405\wxheading{Include files}
406
407<wx/app.h>
408
409\membersection{::wxSafeYield}\label{wxsafeyield}
410
411\func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}, \param{bool}{
412 onlyIfNeeded = false}}
413
414This function is similar to wxYield, except that it disables the user input to
415all program windows before calling wxYield and re-enables it again
416afterwards. If {\it win} is not NULL, this window will remain enabled,
417allowing the implementation of some limited user interaction.
418
419Returns the result of the call to \helpref{::wxYield}{wxyield}.
420
421\wxheading{Include files}
422
423<wx/utils.h>
424
425\membersection{::wxUninitialize}\label{wxuninitialize}
426
427\func{void}{wxUninitialize}{\void}
428
429This function is for use in console (wxBase) programs only. It must be called
430once for each previous successful call to \helpref{wxInitialize}{wxinitialize}.
431
432\wxheading{Include files}
433
434<wx/app.h>
435
436\membersection{::wxYield}\label{wxyield}
437
438\func{bool}{wxYield}{\void}
439
440Calls \helpref{wxApp::Yield}{wxappyield}.
441
442This function is kept only for backwards compatibility. Please use
443the \helpref{wxApp::Yield}{wxappyield} method instead in any new code.
444
445\wxheading{Include files}
446
447<wx/app.h> or <wx/utils.h>
448
449\membersection{::wxWakeUpIdle}\label{wxwakeupidle}
450
451\func{void}{wxWakeUpIdle}{\void}
452
453This functions wakes up the (internal and platform dependent) idle system, i.e. it
454will force the system to send an idle event even if the system currently {\it is}
455 idle and thus would not send any idle event until after some other event would get
456sent. This is also useful for sending events between two threads and is used by
457the corresponding functions \helpref{::wxPostEvent}{wxpostevent} and
458\helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
459
460\wxheading{Include files}
461
462<wx/app.h>
463
464\section{Process control functions}\label{processfunctions}
465
466The functions in this section are used to launch or terminate the other
467processes.
468
469\membersection{::wxExecute}\label{wxexecute}
470
471\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{int }{sync = wxEXEC\_ASYNC}, \param{wxProcess *}{callback = NULL}}
472
473\func{long}{wxExecute}{\param{char **}{argv}, \param{int }{flags = wxEXEC\_ASYNC}, \param{wxProcess *}{callback = NULL}}
474
475\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}}
476
477\perlnote{In wxPerl this function only takes the {\tt command} argument,
478and returns a 2-element list {\tt ( status, output )}, where {\tt output} is
479an array reference.}
480
481\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}, \param{wxArrayString\& }{errors}}
482
483\perlnote{In wxPerl this function only takes the {\tt command} argument,
484and returns a 3-element list {\tt ( status, output, errors )}, where
485{\tt output} and {\tt errors} are array references.}
486
487Executes another program in Unix or Windows.
488
489The first form takes a command string, such as {\tt "emacs file.txt"}.
490
491The second form takes an array of values: a command, any number of
492arguments, terminated by NULL.
493
494The semantics of the third and fourth versions is different from the first two
495and is described in more details below.
496
497If {\it flags} parameter contains {\tt wxEXEC\_ASYNC} flag (the default), flow
498of control immediately returns. If it contains {\tt wxEXEC\_SYNC}, the current
499application waits until the other program has terminated.
500
501In the case of synchronous execution, the return value is the exit code of
502the process (which terminates by the moment the function returns) and will be
503$-1$ if the process couldn't be started and typically 0 if the process
504terminated successfully. Also, while waiting for the process to
505terminate, wxExecute will call \helpref{wxYield}{wxyield}. The caller
506should ensure that this can cause no recursion, in the simplest case by
507calling \helpref{wxEnableTopLevelWindows(false)}{wxenabletoplevelwindows}.
508
509For asynchronous execution, however, the return value is the process id and
510zero value indicates that the command could not be executed. As an added
511complication, the return value of $-1$ in this case indicates that we didn't
512launch a new process, but connected to the running one (this can only happen in
513case of using DDE under Windows for command execution). In particular, in this,
514and only this, case the calling code will not get the notification about
515process termination.
516
517If callback isn't NULL and if execution is asynchronous,
518\helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when
519the process finishes. Specifying this parameter also allows you to redirect the
520standard input and/or output of the process being launched by calling
521\helpref{Redirect}{wxprocessredirect}. If the child process IO is redirected,
522under Windows the process window is not shown by default (this avoids having to
523flush an unnecessary console for the processes which don't create any windows
524anyhow) but a {\tt wxEXEC\_NOHIDE} flag can be used to prevent this from
525happening, i.e. with this flag the child process window will be shown normally.
526
527Under Unix the flag {\tt wxEXEC\_MAKE\_GROUP\_LEADER} may be used to ensure
528that the new process is a group leader (this will create a new session if
529needed). Calling \helpref{wxKill}{wxkill} with the argument of -pid where pid
530is the process ID of the new process will kill this process as well as all of
531its children (except those which have started their own session).
532
533Finally, you may use the third overloaded version of this function to execute
534a process (always synchronously) and capture its output in the array
535{\it output}. The fourth version adds the possibility to additionally capture
536the messages from standard error output in the {\it errors} array.
537
538See also \helpref{wxShell}{wxshell}, \helpref{wxProcess}{wxprocess},
539\helpref{Exec sample}{sampleexec}.
540
541\wxheading{Parameters}
542
543\docparam{command}{The command to execute and any parameters to pass to it as a
544single string.}
545
546\docparam{argv}{The command to execute should be the first element of this
547array, any additional ones are the command parameters and the array must be
548terminated with a NULL pointer.}
549
550\docparam{flags}{Combination of bit masks {\tt wxEXEC\_ASYNC},
551{\tt wxEXEC\_SYNC} and {\tt wxEXEC\_NOHIDE}}
552
553\docparam{callback}{An optional pointer to \helpref{wxProcess}{wxprocess}}
554
555\wxheading{Include files}
556
557<wx/utils.h>
558
559\membersection{::wxExit}\label{wxexit}
560
561\func{void}{wxExit}{\void}
562
563Exits application after calling \helpref{wxApp::OnExit}{wxapponexit}.
564Should only be used in an emergency: normally the top-level frame
565should be deleted (after deleting all other frames) to terminate the
566application. See \helpref{wxCloseEvent}{wxcloseevent} and \helpref{wxApp}{wxapp}.
567
568\wxheading{Include files}
569
570<wx/app.h>
571
572\membersection{::wxKill}\label{wxkill}
573
574\func{int}{wxKill}{\param{long}{ pid}, \param{int}{ sig = wxSIGTERM}, \param{wxKillError }{*rc = NULL}}
575
576Equivalent to the Unix kill function: send the given signal {\it sig} to the
577process with PID {\it pid}. The valid signal values are
578
579\begin{verbatim}
580enum wxSignal
581{
582 wxSIGNONE = 0, // verify if the process exists under Unix
583 wxSIGHUP,
584 wxSIGINT,
585 wxSIGQUIT,
586 wxSIGILL,
587 wxSIGTRAP,
588 wxSIGABRT,
589 wxSIGEMT,
590 wxSIGFPE,
591 wxSIGKILL, // forcefully kill, dangerous!
592 wxSIGBUS,
593 wxSIGSEGV,
594 wxSIGSYS,
595 wxSIGPIPE,
596 wxSIGALRM,
597 wxSIGTERM // terminate the process gently
598};
599\end{verbatim}
600
601{\tt wxSIGNONE}, {\tt wxSIGKILL} and {\tt wxSIGTERM} have the same meaning
602under both Unix and Windows but all the other signals are equivalent to
603{\tt wxSIGTERM} under Windows.
604
605Returns 0 on success, -1 on failure. If {\it rc} parameter is not NULL, it will
606be filled with an element of {\tt wxKillError} enum:
607
608\begin{verbatim}
609enum wxKillError
610{
611 wxKILL_OK, // no error
612 wxKILL_BAD_SIGNAL, // no such signal
613 wxKILL_ACCESS_DENIED, // permission denied
614 wxKILL_NO_PROCESS, // no such process
615 wxKILL_ERROR // another, unspecified error
616};
617\end{verbatim}
618
619\wxheading{See also}
620
621\helpref{wxProcess::Kill}{wxprocesskill},\rtfsp
622\helpref{wxProcess::Exists}{wxprocessexists},\rtfsp
623\helpref{Exec sample}{sampleexec}
624
625\wxheading{Include files}
626
627<wx/utils.h>
628
629\membersection{::wxGetProcessId}\label{wxgetprocessid}
630
631\func{unsigned long}{wxGetProcessId}{\void}
632
633Returns the number uniquely identifying the current process in the system.
634
635If an error occurs, $0$ is returned.
636
637\wxheading{Include files}
638
639<wx/utils.h>
640
641\membersection{::wxShell}\label{wxshell}
642
643\func{bool}{wxShell}{\param{const wxString\& }{command = NULL}}
644
645Executes a command in an interactive shell window. If no command is
646specified, then just the shell is spawned.
647
648See also \helpref{wxExecute}{wxexecute}, \helpref{Exec sample}{sampleexec}.
649
650\wxheading{Include files}
651
652<wx/utils.h>
653
654\membersection{::wxShutdown}\label{wxshutdown}
655
656\func{bool}{wxShutdown}{\param{wxShutdownFlags}{flags}}
657
658This function shuts down or reboots the computer depending on the value of the
659{\it flags}. Please notice that doing this requires the corresponding access
660rights (superuser under Unix, {\tt SE\_SHUTDOWN} privelege under Windows NT)
661and that this function is only implemented under Unix and Win32.
662
663\wxheading{Parameters}
664
665\docparam{flags}{Either {\tt wxSHUTDOWN\_POWEROFF} or {\tt wxSHUTDOWN\_REBOOT}}
666
667\wxheading{Returns}
668
669{\tt true} on success, {\tt false} if an error occured.
670
671\wxheading{Include files}
672
673<wx/utils.h>
674
675\section{Thread functions}\label{threadfunctions}
676
677\wxheading{Include files}
678
679<wx/thread.h>
680
681\wxheading{See also}
682
683\helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex}, \helpref{Multithreading overview}{wxthreadoverview}
684
685\membersection{::wxMutexGuiEnter}\label{wxmutexguienter}
686
687\func{void}{wxMutexGuiEnter}{\void}
688
689This function must be called when any thread other than the main GUI thread
690wants to get access to the GUI library. This function will block the execution
691of the calling thread until the main thread (or any other thread holding the
692main GUI lock) leaves the GUI library and no other thread will enter the GUI
693library until the calling thread calls \helpref{::wxMutexGuiLeave()}{wxmutexguileave}.
694
695Typically, these functions are used like this:
696
697\begin{verbatim}
698void MyThread::Foo(void)
699{
700 // before doing any GUI calls we must ensure that this thread is the only
701 // one doing it!
702
703 wxMutexGuiEnter();
704
705 // Call GUI here:
706 my_window->DrawSomething();
707
708 wxMutexGuiLeave();
709}
710\end{verbatim}
711
712Note that under GTK, no creation of top-level windows is allowed in any
713thread but the main one.
714
715This function is only defined on platforms which support preemptive
716threads.
717
718\membersection{::wxMutexGuiLeave}\label{wxmutexguileave}
719
720\func{void}{wxMutexGuiLeave}{\void}
721
722See \helpref{::wxMutexGuiEnter()}{wxmutexguienter}.
723
724This function is only defined on platforms which support preemptive
725threads.
726
727\section{File functions}\label{filefunctions}
728
729\wxheading{Include files}
730
731<wx/utils.h>
732
733\wxheading{See also}
734
735\helpref{wxPathList}{wxpathlist}\\
736\helpref{wxDir}{wxdir}\\
737\helpref{wxFile}{wxfile}\\
738\helpref{wxFileName}{wxfilename}
739
740\membersection{::wxDirExists}\label{functionwxdirexists}
741
742\func{bool}{wxDirExists}{\param{const wxString\& }{dirname}}
743
744Returns true if the directory exists.
745
746\membersection{::wxDos2UnixFilename}\label{wxdos2unixfilename}
747
748\func{void}{wxDos2UnixFilename}{\param{wxChar *}{s}}
749
750Converts a DOS to a Unix filename by replacing backslashes with forward
751slashes.
752
753\membersection{::wxFileExists}\label{functionwxfileexists}
754
755\func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
756
757Returns true if the file exists. It also returns true if the file is
758a directory.
759
760\membersection{::wxFileModificationTime}\label{wxfilemodificationtime}
761
762\func{time\_t}{wxFileModificationTime}{\param{const wxString\& }{filename}}
763
764Returns time of last modification of given file.
765
766\membersection{::wxFileNameFromPath}\label{wxfilenamefrompath}
767
768\func{wxString}{wxFileNameFromPath}{\param{const wxString\& }{path}}
769
770\func{char *}{wxFileNameFromPath}{\param{char *}{path}}
771
772{\bf NB:} This function is obsolete, please use
773\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
774
775Returns the filename for a full path. The second form returns a pointer to
776temporary storage that should not be deallocated.
777
778\membersection{::wxFindFirstFile}\label{wxfindfirstfile}
779
780\func{wxString}{wxFindFirstFile}{\param{const char *}{spec}, \param{int}{ flags = 0}}
781
782This function does directory searching; returns the first file
783that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to
784get the next matching file. Neither will report the current directory "." or the
785parent directory "..".
786
787{\it spec} may contain wildcards.
788
789{\it flags} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either.
790
791For example:
792
793\begin{verbatim}
794 wxString f = wxFindFirstFile("/home/project/*.*");
795 while ( !f.IsEmpty() )
796 {
797 ...
798 f = wxFindNextFile();
799 }
800\end{verbatim}
801
802\membersection{::wxFindNextFile}\label{wxfindnextfile}
803
804\func{wxString}{wxFindNextFile}{\void}
805
806Returns the next file that matches the path passed to \helpref{wxFindFirstFile}{wxfindfirstfile}.
807
808See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example.
809
810\membersection{::wxGetDiskSpace}\label{wxgetdiskspace}
811
812\func{bool}{wxGetDiskSpace}{\param{const wxString\& }{path}, \param{wxLongLong }{*total = NULL}, \param{wxLongLong }{*free = NULL}}
813
814This function returns the total number of bytes and number of free bytes on
815the disk containing the directory {\it path} (it should exist). Both
816{\it total} and {\it free} parameters may be {\tt NULL} if the corresponding
817information is not needed.
818
819\wxheading{Returns}
820
821{\tt true} on success, {\tt false} if an error occured (for example, the
822directory doesn't exist).
823
824\wxheading{Portability}
825
826This function is implemented for Win16 (only for drives less than 2Gb), Win32,
827Mac OS and generic Unix provided the system has {\tt statfs()} function.
828
829This function first appeared in wxWindows 2.3.2.
830
831\membersection{::wxGetOSDirectory}\label{wxgetosdirectory}
832
833\func{wxString}{wxGetOSDirectory}{\void}
834
835Returns the Windows directory under Windows; on other platforms returns the empty string.
836
837\membersection{::wxIsAbsolutePath}\label{wxisabsolutepath}
838
839\func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}}
840
841Returns true if the argument is an absolute filename, i.e. with a slash
842or drive name at the beginning.
843
844\membersection{::wxPathOnly}\label{wxpathonly}
845
846\func{wxString}{wxPathOnly}{\param{const wxString\& }{path}}
847
848Returns the directory part of the filename.
849
850\membersection{::wxUnix2DosFilename}\label{wxunix2dosfilename}
851
852\func{void}{wxUnix2DosFilename}{\param{const wxString\& }{s}}
853
854Converts a Unix to a DOS filename by replacing forward
855slashes with backslashes.
856
857\membersection{::wxConcatFiles}\label{wxconcatfiles}
858
859\func{bool}{wxConcatFiles}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2},
860\param{const wxString\& }{file3}}
861
862Concatenates {\it file1} and {\it file2} to {\it file3}, returning
863true if successful.
864
865\membersection{::wxCopyFile}\label{wxcopyfile}
866
867\func{bool}{wxCopyFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}, \param{bool }{overwrite = true}}
868
869Copies {\it file1} to {\it file2}, returning true if successful. If
870{\it overwrite} parameter is true (default), the destination file is overwritten
871if it exists, but if {\it overwrite} is false, the functions fails in this
872case.
873
874\membersection{::wxGetCwd}\label{wxgetcwd}
875
876\func{wxString}{wxGetCwd}{\void}
877
878Returns a string containing the current (or working) directory.
879
880\membersection{::wxGetWorkingDirectory}\label{wxgetworkingdirectory}
881
882\func{wxString}{wxGetWorkingDirectory}{\param{char *}{buf=NULL}, \param{int }{sz=1000}}
883
884{\bf NB:} This function is obsolete: use \helpref{wxGetCwd}{wxgetcwd} instead.
885
886Copies the current working directory into the buffer if supplied, or
887copies the working directory into new storage (which you must delete yourself)
888if the buffer is NULL.
889
890{\it sz} is the size of the buffer if supplied.
891
892\membersection{::wxGetTempFileName}\label{wxgettempfilename}
893
894\func{char *}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{char *}{buf=NULL}}
895
896\func{bool}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{wxString\& }{buf}}
897
898%% Makes a temporary filename based on {\it prefix}, opens and closes the file,
899%% and places the name in {\it buf}. If {\it buf} is NULL, new store
900%% is allocated for the temporary filename using {\it new}.
901%%
902%% Under Windows, the filename will include the drive and name of the
903%% directory allocated for temporary files (usually the contents of the
904%% TEMP variable). Under Unix, the {\tt /tmp} directory is used.
905%%
906%% It is the application's responsibility to create and delete the file.
907
908{\bf NB:} These functions are obsolete, please use\rtfsp
909\helpref{wxFileName::CreateTempFileName}{wxfilenamecreatetempfilename}\rtfsp
910instead.
911
912\membersection{::wxIsWild}\label{wxiswild}
913
914\func{bool}{wxIsWild}{\param{const wxString\& }{pattern}}
915
916Returns true if the pattern contains wildcards. See \helpref{wxMatchWild}{wxmatchwild}.
917
918\membersection{::wxMatchWild}\label{wxmatchwild}
919
920\func{bool}{wxMatchWild}{\param{const wxString\& }{pattern}, \param{const wxString\& }{text}, \param{bool}{ dot\_special}}
921
922Returns true if the {\it pattern}\/ matches the {\it text}\/; if {\it
923dot\_special}\/ is true, filenames beginning with a dot are not matched
924with wildcard characters. See \helpref{wxIsWild}{wxiswild}.
925
926\membersection{::wxMkdir}\label{wxmkdir}
927
928\func{bool}{wxMkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}}
929
930Makes the directory {\it dir}, returning true if successful.
931
932{\it perm} is the access mask for the directory for the systems on which it is
933supported (Unix) and doesn't have effect for the other ones.
934
935\membersection{::wxRemoveFile}\label{wxremovefile}
936
937\func{bool}{wxRemoveFile}{\param{const wxString\& }{file}}
938
939Removes {\it file}, returning true if successful.
940
941\membersection{::wxRenameFile}\label{wxrenamefile}
942
943\func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
944
945Renames {\it file1} to {\it file2}, returning true if successful.
946
947\membersection{::wxRmdir}\label{wxrmdir}
948
949\func{bool}{wxRmdir}{\param{const wxString\& }{dir}, \param{int}{ flags=0}}
950
951Removes the directory {\it dir}, returning true if successful. Does not work under VMS.
952
953The {\it flags} parameter is reserved for future use.
954
955\membersection{::wxSetWorkingDirectory}\label{wxsetworkingdirectory}
956
957\func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}}
958
959Sets the current working directory, returning true if the operation succeeded.
960Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification.
961
962\membersection{::wxSplitPath}\label{wxsplitfunction}
963
964\func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{wxString *}{ path}, \param{wxString *}{ name}, \param{wxString *}{ ext}}
965
966{\bf NB:} This function is obsolete, please use
967\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
968
969This function splits a full file name into components: the path (including possible disk/drive
970specification under Windows), the base name and the extension. Any of the output parameters
971({\it path}, {\it name} or {\it ext}) may be NULL if you are not interested in the value of
972a particular component.
973
974wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under
975Windows, however it will not consider backslashes as path separators under Unix (where backslash
976is a valid character in a filename).
977
978On entry, {\it fullname} should be non-NULL (it may be empty though).
979
980On return, {\it path} contains the file path (without the trailing separator), {\it name}
981contains the file name and {\it ext} contains the file extension without leading dot. All
982three of them may be empty if the corresponding component is. The old contents of the
983strings pointed to by these parameters will be overwritten in any case (if the pointers
984are not NULL).
985
986\membersection{::wxTransferFileToStream}\label{wxtransferfiletostream}
987
988\func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}}
989
990Copies the given file to {\it stream}. Useful when converting an old application to
991use streams (within the document/view framework, for example).
992
993\wxheading{Include files}
994
995<wx/docview.h>
996
997\membersection{::wxTransferStreamToFile}\label{wxtransferstreamtofile}
998
999\func{bool}{wxTransferStreamToFile}{\param{istream\& }{stream} \param{const wxString\& }{filename}}
1000
1001Copies the given stream to the file {\it filename}. Useful when converting an old application to
1002use streams (within the document/view framework, for example).
1003
1004\wxheading{Include files}
1005
1006<wx/docview.h>
1007
1008\section{Network, user and OS functions}\label{networkfunctions}
1009
1010The functions in this section are used to retrieve information about the
1011current computer and/or user characteristics.
1012
1013\membersection{::wxGetFreeMemory}\label{wxgetfreememory}
1014
1015\func{long}{wxGetFreeMemory}{\void}
1016
1017Returns the amount of free memory in bytes under environments which
1018support it, and -1 if not supported. Currently, it is supported only
1019under Windows, Linux and Solaris.
1020
1021\wxheading{Include files}
1022
1023<wx/utils.h>
1024
1025\membersection{::wxGetFullHostName}\label{wxgetfullhostname}
1026
1027\func{wxString}{wxGetFullHostName}{\void}
1028
1029Returns the FQDN (fully qualified domain host name) or an empty string on
1030error.
1031
1032\wxheading{See also}
1033
1034\helpref{wxGetHostName}{wxgethostname}
1035
1036\wxheading{Include files}
1037
1038<wx/utils.h>
1039
1040\membersection{::wxGetEmailAddress}\label{wxgetemailaddress}
1041
1042\func{bool}{wxGetEmailAddress}{\param{const wxString\& }{buf}, \param{int }{sz}}
1043
1044Copies the user's email address into the supplied buffer, by
1045concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp
1046and \helpref{wxGetUserId}{wxgetuserid}.
1047
1048Returns true if successful, false otherwise.
1049
1050\wxheading{Include files}
1051
1052<wx/utils.h>
1053
1054\membersection{::wxGetHomeDir}\label{wxgethomedir}
1055
1056\func{wxString}{wxGetHomeDir}{\void}
1057
1058Return the (current) user's home directory.
1059
1060\wxheading{See also}
1061
1062\helpref{wxGetUserHome}{wxgetuserhome}
1063
1064\wxheading{Include files}
1065
1066<wx/utils.h>
1067
1068\membersection{::wxGetHostName}\label{wxgethostname}
1069
1070\func{wxString}{wxGetHostName}{\void}
1071
1072\func{bool}{wxGetHostName}{\param{char * }{buf}, \param{int }{sz}}
1073
1074Copies the current host machine's name into the supplied buffer. Please note
1075that the returned name is {\it not} fully qualified, i.e. it does not include
1076the domain name.
1077
1078Under Windows or NT, this function first looks in the environment
1079variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp
1080in the {\bf wxWindows} section of the WIN.INI file is tried.
1081
1082The first variant of this function returns the hostname if successful or an
1083empty string otherwise. The second (deprecated) function returns true
1084if successful, false otherwise.
1085
1086\wxheading{See also}
1087
1088\helpref{wxGetFullHostName}{wxgetfullhostname}
1089
1090\wxheading{Include files}
1091
1092<wx/utils.h>
1093
1094\membersection{::wxGetUserId}\label{wxgetuserid}
1095
1096\func{wxString}{wxGetUserId}{\void}
1097
1098\func{bool}{wxGetUserId}{\param{char * }{buf}, \param{int }{sz}}
1099
1100This function returns the "user id" also known as "login name" under Unix i.e.
1101something like "jsmith". It uniquely identifies the current user (on this system).
1102
1103Under Windows or NT, this function first looks in the environment
1104variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp
1105in the {\bf wxWindows} section of the WIN.INI file is tried.
1106
1107The first variant of this function returns the login name if successful or an
1108empty string otherwise. The second (deprecated) function returns true
1109if successful, false otherwise.
1110
1111\wxheading{See also}
1112
1113\helpref{wxGetUserName}{wxgetusername}
1114
1115\wxheading{Include files}
1116
1117<wx/utils.h>
1118
1119\membersection{::wxGetOsDescription}\label{wxgetosdescription}
1120
1121\func{wxString}{wxGetOsDescription}{\void}
1122
1123Returns the string containing the description of the current platform in a
1124user-readable form. For example, this function may return strings like
1125{\tt Windows NT Version 4.0} or {\tt Linux 2.2.2 i386}.
1126
1127\wxheading{See also}
1128
1129\helpref{::wxGetOsVersion}{wxgetosversion}
1130
1131\wxheading{Include files}
1132
1133<wx/utils.h>
1134
1135\membersection{::wxGetOsVersion}\label{wxgetosversion}
1136
1137\func{int}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}}
1138
1139Gets operating system version information.
1140
1141\begin{twocollist}\itemsep=0pt
1142\twocolitemruled{Platform}{Return types}
1143\twocolitem{Mac OS}{Return value is wxMAC when compiled with CodeWarrior under Mac OS 8.x/9.x and Mac OS X, wxMAC\_DARWIN when compiled with the Apple Developer Tools under Mac OS X.}
1144\twocolitem{GTK}{Return value is wxGTK, For GTK 1.0, {\it major} is 1, {\it minor} is 0. }
1145\twocolitem{Motif}{Return value is wxMOTIF\_X, {\it major} is X version, {\it minor} is X revision.}
1146\twocolitem{OS/2}{Return value is wxOS2\_PM.}
1147\twocolitem{Windows 3.1}{Return value is wxWINDOWS, {\it major} is 3, {\it minor} is 1.}
1148\twocolitem{Windows NT/2000}{Return value is wxWINDOWS\_NT, version is returned in {\it major} and {\it minor}}
1149\twocolitem{Windows 98}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 1 or greater.}
1150\twocolitem{Windows 95}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 0.}
1151\twocolitem{Win32s (Windows 3.1)}{Return value is wxWIN32S, {\it major} is 3, {\it minor} is 1.}
1152\twocolitem{Watcom C++ 386 supervisor mode (Windows 3.1)}{Return value is wxWIN386, {\it major} is 3, {\it minor} is 1.}
1153\end{twocollist}
1154
1155\wxheading{See also}
1156
1157\helpref{::wxGetOsDescription}{wxgetosdescription}
1158
1159\wxheading{Include files}
1160
1161<wx/utils.h>
1162
1163\membersection{::wxGetUserHome}\label{wxgetuserhome}
1164
1165\func{const wxChar *}{wxGetUserHome}{\param{const wxString\& }{user = ""}}
1166
1167Returns the home directory for the given user. If the username is empty
1168(default value), this function behaves like
1169\helpref{wxGetHomeDir}{wxgethomedir}.
1170
1171\wxheading{Include files}
1172
1173<wx/utils.h>
1174
1175\membersection{::wxGetUserName}\label{wxgetusername}
1176
1177\func{wxString}{wxGetUserName}{\void}
1178
1179\func{bool}{wxGetUserName}{\param{char * }{buf}, \param{int }{sz}}
1180
1181This function returns the full user name (something like "Mr. John Smith").
1182
1183Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp
1184in the {\bf wxWindows} section of the WIN.INI file. If PenWindows
1185is running, the entry {\bf Current} in the section {\bf User} of
1186the PENWIN.INI file is used.
1187
1188The first variant of this function returns the user name if successful or an
1189empty string otherwise. The second (deprecated) function returns {\tt true}
1190if successful, {\tt false} otherwise.
1191
1192\wxheading{See also}
1193
1194\helpref{wxGetUserId}{wxgetuserid}
1195
1196\wxheading{Include files}
1197
1198<wx/utils.h>
1199
1200\section{String functions}
1201
1202\membersection{::copystring}\label{copystring}
1203
1204\func{char *}{copystring}{\param{const char *}{s}}
1205
1206Makes a copy of the string {\it s} using the C++ new operator, so it can be
1207deleted with the {\it delete} operator.
1208
1209This function is deprecated, use \helpref{wxString}{wxstring} class instead.
1210
1211\membersection{::wxGetTranslation}\label{wxgettranslation}
1212
1213\func{const char *}{wxGetTranslation}{\param{const char * }{str}}
1214
1215This function returns the translation of string {\it str} in the current
1216\helpref{locale}{wxlocale}. If the string is not found in any of the loaded
1217message catalogs (see \helpref{internationalization overview}{internationalization}), the
1218original string is returned. In debug build, an error message is logged -- this
1219should help to find the strings which were not yet translated. As this function
1220is used very often, an alternative (and also common in Unix world) syntax is
1221provided: the \helpref{\_()}{underscore} macro is defined to do the same thing
1222as wxGetTranslation.
1223
1224\membersection{::wxIsEmpty}\label{wxisempty}
1225
1226\func{bool}{wxIsEmpty}{\param{const char *}{ p}}
1227
1228Returns {\tt true} if the pointer is either {\tt NULL} or points to an empty
1229string, {\tt false} otherwise.
1230
1231\membersection{::wxStricmp}\label{wxstricmp}
1232
1233\func{int}{wxStricmp}{\param{const char *}{p1}, \param{const char *}{p2}}
1234
1235Returns a negative value, 0, or positive value if {\it p1} is less than, equal
1236to or greater than {\it p2}. The comparison is case-insensitive.
1237
1238This function complements the standard C function {\it strcmp()} which performs
1239case-sensitive comparison.
1240
1241\membersection{::wxStringMatch}\label{wxstringmatch}
1242
1243\func{bool}{wxStringMatch}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2},\\
1244 \param{bool}{ subString = true}, \param{bool}{ exact = false}}
1245
1246{\bf NB:} This function is obsolete, use \helpref{wxString::Find}{wxstringfind} instead.
1247
1248Returns {\tt true} if the substring {\it s1} is found within {\it s2},
1249ignoring case if {\it exact} is false. If {\it subString} is {\tt false},
1250no substring matching is done.
1251
1252\membersection{::wxStringEq}\label{wxstringeq}
1253
1254\func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}}
1255
1256{\bf NB:} This function is obsolete, use \helpref{wxString}{wxstring} instead.
1257
1258A macro defined as:
1259
1260\begin{verbatim}
1261#define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
1262\end{verbatim}
1263
1264\membersection{::wxStrlen}\label{wxstrlen}
1265
1266\func{size\_t}{wxStrlen}{\param{const char *}{ p}}
1267
1268This is a safe version of standard function {\it strlen()}: it does exactly the
1269same thing (i.e. returns the length of the string) except that it returns 0 if
1270{\it p} is the {\tt NULL} pointer.
1271
1272\membersection{::wxSnprintf}\label{wxsnprintf}
1273
1274\func{int}{wxSnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{}{...}}
1275
1276This function replaces the dangerous standard function {\tt sprintf()} and is
1277like {\tt snprintf()} available on some platforms. The only difference with
1278sprintf() is that an additional argument - buffer size - is taken and the
1279buffer is never overflowed.
1280
1281Returns the number of characters copied to the buffer or -1 if there is not
1282enough space.
1283
1284\wxheading{See also}
1285
1286\helpref{wxVsnprintf}{wxvsnprintf}, \helpref{wxString::Printf}{wxstringprintf}
1287
1288\membersection{wxT}\label{wxt}
1289
1290\func{wxChar}{wxT}{\param{char }{ch}}
1291
1292\func{const wxChar *}{wxT}{\param{const char *}{s}}
1293
1294wxT() is a macro which can be used with character and string literals (in other
1295words, {\tt 'x'} or {\tt "foo"}) to automatically convert them to Unicode in
1296Unicode build configuration. Please see the
1297\helpref{Unicode overview}{unicode} for more information.
1298
1299This macro is simply returns the value passed to it without changes in ASCII
1300build. In fact, its definition is:
1301\begin{verbatim}
1302#ifdef UNICODE
1303#define wxT(x) L ## x
1304#else // !Unicode
1305#define wxT(x) x
1306#endif
1307\end{verbatim}
1308
1309\membersection{wxTRANSLATE}\label{wxtranslate}
1310
1311\func{const wxChar *}{wxTRANSLATE}{\param{const char *}{s}}
1312
1313This macro doesn't do anything in the program code -- it simply expands to the
1314value of its argument (expand in Unicode build where it is equivalent to
1315\helpref{wxT}{wxt} which makes it unnecessary to use both wxTRANSLATE and wxT
1316with the same string which would be really unreadable).
1317
1318However it does have a purpose and it is to mark the literal strings for the
1319extraction into the message catalog created by {\tt xgettext} program. Usually
1320this is achieved using \helpref{\_()}{underscore} but that macro not only marks
1321the string for extraction but also expands into
1322\helpref{wxGetTranslation}{wxgettranslation} function call which means that it
1323cannot be used in some situations, notably for the static arrays
1324initialization.
1325
1326Here is an example which should make it more clear: suppose that you have a
1327static array of strings containing the weekday names and which have to be
1328translated (note that it is a bad example, really, as
1329\helpref{wxDateTime}{wxdatetime} already can be used to get the localized week
1330day names already). If you write
1331\begin{verbatim}
1332static const wxChar * const weekdays[] = { _("Mon"), ..., _("Sun") };
1333...
1334// use weekdays[n] as usual
1335\end{verbatim}
1336the code wouldn't compile because the function calls are forbidden in the array
1337initializer. So instead you should do
1338\begin{verbatim}
1339static const wxChar * const weekdays[] = { wxTRANSLATE("Mon"), ..., wxTRANSLATE("Sun") };
1340...
1341// use wxGetTranslation(weekdays[n])
1342\end{verbatim}
1343here.
1344
1345Note that although the code {\bf would} compile if you simply omit
1346wxTRANSLATE() in the above, it wouldn't work as expected because there would be
1347no translations for the weekday names in the program message catalog and
1348wxGetTranslation wouldn't find them.
1349
1350
1351\membersection{::wxToLower}\label{wxtolower}
1352
1353\func{char}{wxToLower}{\param{char }{ch}}
1354
1355Converts the character to lower case. This is implemented as a macro for efficiency.
1356
1357\wxheading{Include files}
1358
1359<wx/utils.h>
1360
1361\membersection{::wxToUpper}\label{wxtoupper}
1362
1363\func{char}{wxToUpper}{\param{char }{ch}}
1364
1365Converts the character to upper case. This is implemented as a macro for efficiency.
1366
1367\wxheading{Include files}
1368
1369<wx/utils.h>
1370
1371\membersection{::wxVsnprintf}\label{wxvsnprintf}
1372
1373\func{int}{wxVsnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{va\_list }{argPtr}}
1374
1375The same as \helpref{wxSnprintf}{wxsnprintf} but takes a {\tt va\_list }
1376argument instead of arbitrary number of parameters.
1377
1378\wxheading{See also}
1379
1380\helpref{wxSnprintf}{wxsnprintf}, \helpref{wxString::PrintfV}{wxstringprintfv}
1381
1382
1383\membersection{\_}\label{underscore}
1384
1385\func{const wxChar *}{\_}{\param{const char *}{s}}
1386
1387This macro expands into a call to \helpref{wxGetTranslation}{wxgettranslation}
1388function, so it marks the message for the extraction by {\tt xgettext} just as
1389\helpref{wxTRANSLATE}{wxtranslate} does, but also returns the translation of
1390the string for the current locale during execution.
1391
1392Don't confuse this macro with \helpref{\_T()}{underscoret}!
1393
1394
1395\membersection{\_T}\label{underscoret}
1396
1397\func{wxChar}{\_T}{\param{char }{ch}}
1398
1399\func{const wxChar *}{\_T}{\param{const wxChar }{ch}}
1400
1401This macro is exactly the same as \helpref{wxT}{wxt} and is defined in
1402wxWindows simply because it may be more intuitive for Windows programmers as
1403the standard Win32 headers also define it (as well as yet another name for the
1404same macro which is {\tt \_TEXT()}).
1405
1406Don't confuse this macro with \helpref{\_()}{underscore}!
1407
1408\membersection{\_}\label{underscore}
1409
1410\section{Dialog functions}\label{dialogfunctions}
1411
1412Below are a number of convenience functions for getting input from the
1413user or displaying messages. Note that in these functions the last three
1414parameters are optional. However, it is recommended to pass a parent frame
1415parameter, or (in MS Windows or Motif) the wrong window frame may be brought to
1416the front when the dialog box is popped up.
1417
1418\membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor}
1419
1420\func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}}
1421
1422Changes the cursor to the given cursor for all windows in the application.
1423Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back
1424to its previous state. These two calls can be nested, and a counter
1425ensures that only the outer calls take effect.
1426
1427See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1428
1429\wxheading{Include files}
1430
1431<wx/utils.h>
1432
1433\membersection{::wxBell}\label{wxbell}
1434
1435\func{void}{wxBell}{\void}
1436
1437Ring the system bell.
1438
1439\wxheading{Include files}
1440
1441<wx/utils.h>
1442
1443\membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider}
1444
1445\func{wxTipProvider *}{wxCreateFileTipProvider}{\param{const wxString\& }{filename},
1446 \param{size\_t }{currentTip}}
1447
1448This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be
1449used with \helpref{wxShowTip}{wxshowtip}.
1450
1451\docparam{filename}{The name of the file containing the tips, one per line}
1452\docparam{currentTip}{The index of the first tip to show - normally this index
1453is remembered between the 2 program runs.}
1454
1455\wxheading{See also}
1456
1457\helpref{Tips overview}{tipsoverview}
1458
1459\wxheading{Include files}
1460
1461<wx/tipdlg.h>
1462
1463\membersection{::wxDirSelector}\label{wxdirselector}
1464
1465\func{wxString}{wxDirSelector}{\param{const wxString\& }{message = wxDirSelectorPromptStr},\\
1466 \param{const wxString\& }{default\_path = ""},\\
1467 \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition},\\
1468 \param{wxWindow *}{parent = NULL}}
1469
1470Pops up a directory selector dialog. The arguments have the same meaning as
1471those of wxDirDialog::wxDirDialog(). The message is displayed at the top,
1472and the default\_path, if specified, is set as the initial selection.
1473
1474The application must check for an empty return value (if the user pressed
1475Cancel). For example:
1476
1477\begin{verbatim}
1478const wxString& dir = wxDirSelector("Choose a folder");
1479if ( !dir.empty() )
1480{
1481 ...
1482}
1483\end{verbatim}
1484
1485\wxheading{Include files}
1486
1487<wx/dirdlg.h>
1488
1489\membersection{::wxFileSelector}\label{wxfileselector}
1490
1491\func{wxString}{wxFileSelector}{\param{const wxString\& }{message}, \param{const wxString\& }{default\_path = ""},\\
1492 \param{const wxString\& }{default\_filename = ""}, \param{const wxString\& }{default\_extension = ""},\\
1493 \param{const wxString\& }{wildcard = ``*.*''}, \param{int }{flags = 0}, \param{wxWindow *}{parent = ""},\\
1494 \param{int}{ x = -1}, \param{int}{ y = -1}}
1495
1496Pops up a file selector box. In Windows, this is the common file selector
1497dialog. In X, this is a file selector box with the same functionality.
1498The path and filename are distinct elements of a full file pathname.
1499If path is empty, the current directory will be used. If filename is empty,
1500no default filename will be supplied. The wildcard determines what files
1501are displayed in the file selector, and file extension supplies a type
1502extension for the required filename. Flags may be a combination of wxOPEN,
1503wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, wxFILE\_MUST\_EXIST, wxMULTIPLE or 0.
1504
1505Both the Unix and Windows versions implement a wildcard filter. Typing a
1506filename containing wildcards (*, ?) in the filename text item, and
1507clicking on Ok, will result in only those files matching the pattern being
1508displayed.
1509
1510The wildcard may be a specification for multiple types of file
1511with a description for each, such as:
1512
1513\begin{verbatim}
1514 "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
1515\end{verbatim}
1516
1517The application must check for an empty return value (the user pressed
1518Cancel). For example:
1519
1520\begin{verbatim}
1521wxString filename = wxFileSelector("Choose a file to open");
1522if ( !filename.empty() )
1523{
1524 // work with the file
1525 ...
1526}
1527//else: cancelled by user
1528\end{verbatim}
1529
1530\wxheading{Include files}
1531
1532<wx/filedlg.h>
1533
1534\membersection{::wxEndBusyCursor}\label{wxendbusycursor}
1535
1536\func{void}{wxEndBusyCursor}{\void}
1537
1538Changes the cursor back to the original cursor, for all windows in the application.
1539Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1540
1541See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1542
1543\wxheading{Include files}
1544
1545<wx/utils.h>
1546
1547\membersection{::wxGetColourFromUser}\label{wxgetcolourfromuser}
1548
1549\func{wxColour}{wxGetColourFromUser}{\param{wxWindow *}{parent}, \param{const wxColour\& }{colInit}}
1550
1551Shows the colour selection dialog and returns the colour selected by user or
1552invalid colour (use \helpref{wxColour::Ok}{wxcolourok} to test whether a colour
1553is valid) if the dialog was cancelled.
1554
1555\wxheading{Parameters}
1556
1557\docparam{parent}{The parent window for the colour selection dialog}
1558
1559\docparam{colInit}{If given, this will be the colour initially selected in the dialog.}
1560
1561\wxheading{Include files}
1562
1563<wx/colordlg.h>
1564
1565\membersection{::wxGetFontFromUser}\label{wxgetfontfromuser}
1566
1567\func{wxFont}{wxGetFontFromUser}{\param{wxWindow *}{parent}, \param{const wxFont\& }{fontInit}}
1568
1569Shows the font selection dialog and returns the font selected by user or
1570invalid font (use \helpref{wxFont::Ok}{wxfontok} to test whether a font
1571is valid) if the dialog was cancelled.
1572
1573\wxheading{Parameters}
1574
1575\docparam{parent}{The parent window for the font selection dialog}
1576
1577\docparam{fontInit}{If given, this will be the font initially selected in the dialog.}
1578
1579\wxheading{Include files}
1580
1581<wx/fontdlg.h>
1582
1583
1584\membersection{::wxGetMultipleChoices}\label{wxgetmultiplechoices}
1585
1586\func{size\_t}{wxGetMultipleChoices}{\\
1587 \param{wxArrayInt\& }{selections},\\
1588 \param{const wxString\& }{message},\\
1589 \param{const wxString\& }{caption},\\
1590 \param{const wxArrayString\& }{aChoices},\\
1591 \param{wxWindow *}{parent = NULL},\\
1592 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1593 \param{bool}{ centre = true},\\
1594 \param{int }{width=150}, \param{int }{height=200}}
1595
1596\func{size\_t}{wxGetMultipleChoices}{\\
1597 \param{wxArrayInt\& }{selections},\\
1598 \param{const wxString\& }{message},\\
1599 \param{const wxString\& }{caption},\\
1600 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1601 \param{wxWindow *}{parent = NULL},\\
1602 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1603 \param{bool}{ centre = true},\\
1604 \param{int }{width=150}, \param{int }{height=200}}
1605
1606Pops up a dialog box containing a message, OK/Cancel buttons and a
1607multiple-selection listbox. The user may choose an arbitrary (including 0)
1608number of items in the listbox whose indices will be returned in
1609{\it selection} array. The initial contents of this array will be used to
1610select the items when the dialog is shown.
1611
1612You may pass the list of strings to choose from either using {\it choices}
1613which is an array of {\it n} strings for the listbox or by using a single
1614{\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1615
1616If {\it centre} is true, the message text (which may include new line
1617characters) is centred; if false, the message is left-justified.
1618
1619\wxheading{Include files}
1620
1621<wx/choicdlg.h>
1622
1623\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1624and {\tt choices}, and no {\tt selections} parameter; the function
1625returns an array containing the user selections.}
1626
1627\membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
1628
1629\func{long}{wxGetNumberFromUser}{
1630 \param{const wxString\& }{message},
1631 \param{const wxString\& }{prompt},
1632 \param{const wxString\& }{caption},
1633 \param{long }{value},
1634 \param{long }{min = 0},
1635 \param{long }{max = 100},
1636 \param{wxWindow *}{parent = NULL},
1637 \param{const wxPoint\& }{pos = wxDefaultPosition}}
1638
1639Shows a dialog asking the user for numeric input. The dialogs title is set to
1640{\it caption}, it contains a (possibly) multiline {\it message} above the
1641single line {\it prompt} and the zone for entering the number.
1642
1643The number entered must be in the range {\it min}..{\it max} (both of which
1644should be positive) and {\it value} is the initial value of it. If the user
1645enters an invalid value or cancels the dialog, the function will return -1.
1646
1647Dialog is centered on its {\it parent} unless an explicit position is given in
1648{\it pos}.
1649
1650\wxheading{Include files}
1651
1652<wx/textdlg.h>
1653
1654\membersection{::wxGetPasswordFromUser}\label{wxgetpasswordfromuser}
1655
1656\func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1657 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL}}
1658
1659Similar to \helpref{wxGetTextFromUser}{wxgettextfromuser} but the text entered
1660in the dialog is not shown on screen but replaced with stars. This is intended
1661to be used for entering passwords as the function name implies.
1662
1663\wxheading{Include files}
1664
1665<wx/textdlg.h>
1666
1667\membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
1668
1669\func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1670 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\
1671 \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = true}}
1672
1673Pop up a dialog box with title set to {\it caption}, {\it message}, and a
1674\rtfsp{\it default\_value}. The user may type in text and press OK to return this text,
1675or press Cancel to return the empty string.
1676
1677If {\it centre} is true, the message text (which may include new line characters)
1678is centred; if false, the message is left-justified.
1679
1680\wxheading{Include files}
1681
1682<wx/textdlg.h>
1683
1684\membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice}
1685
1686\func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1687 \param{int }{nsel}, \param{int *}{selection},
1688 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1689 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1690
1691Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
1692listbox. The user may choose one or more item(s) and press OK or Cancel.
1693
1694The number of initially selected choices, and array of the selected indices,
1695are passed in; this array will contain the user selections on exit, with
1696the function returning the number of selections. {\it selection} must be
1697as big as the number of choices, in case all are selected.
1698
1699If Cancel is pressed, -1 is returned.
1700
1701{\it choices} is an array of {\it n} strings for the listbox.
1702
1703If {\it centre} is true, the message text (which may include new line characters)
1704is centred; if false, the message is left-justified.
1705
1706\wxheading{Include files}
1707
1708<wx/choicdlg.h>
1709
1710\membersection{::wxGetSingleChoice}\label{wxgetsinglechoice}
1711
1712\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1713 \param{const wxString\& }{caption},\\
1714 \param{const wxArrayString\& }{aChoices},\\
1715 \param{wxWindow *}{parent = NULL},\\
1716 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1717 \param{bool}{ centre = true},\\
1718 \param{int }{width=150}, \param{int }{height=200}}
1719
1720\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1721 \param{const wxString\& }{caption},\\
1722 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1723 \param{wxWindow *}{parent = NULL},\\
1724 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1725 \param{bool}{ centre = true},\\
1726 \param{int }{width=150}, \param{int }{height=200}}
1727
1728Pops up a dialog box containing a message, OK/Cancel buttons and a
1729single-selection listbox. The user may choose an item and press OK to return a
1730string or Cancel to return the empty string. Use
1731\helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex} if empty string is a
1732valid choice and if you want to be able to detect pressing Cancel reliably.
1733
1734You may pass the list of strings to choose from either using {\it choices}
1735which is an array of {\it n} strings for the listbox or by using a single
1736{\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1737
1738If {\it centre} is true, the message text (which may include new line
1739characters) is centred; if false, the message is left-justified.
1740
1741\wxheading{Include files}
1742
1743<wx/choicdlg.h>
1744
1745\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1746and {\tt choices}.}
1747
1748\membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex}
1749
1750\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1751 \param{const wxString\& }{caption},\\
1752 \param{const wxArrayString\& }{aChoices},\\
1753 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1754 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1755
1756\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1757 \param{const wxString\& }{caption},\\
1758 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1759 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1760 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1761
1762As {\bf wxGetSingleChoice} but returns the index representing the selected
1763string. If the user pressed cancel, -1 is returned.
1764
1765\wxheading{Include files}
1766
1767<wx/choicdlg.h>
1768
1769\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1770and {\tt choices}.}
1771
1772\membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata}
1773
1774\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1775 \param{const wxString\& }{caption},\\
1776 \param{const wxArrayString\& }{aChoices},\\
1777 \param{const wxString\& }{client\_data[]},\\
1778 \param{wxWindow *}{parent = NULL},\\
1779 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1780 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1781
1782\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1783 \param{const wxString\& }{caption},\\
1784 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1785 \param{const wxString\& }{client\_data[]},\\
1786 \param{wxWindow *}{parent = NULL},\\
1787 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1788 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1789
1790As {\bf wxGetSingleChoice} but takes an array of client data pointers
1791corresponding to the strings, and returns one of these pointers or NULL if
1792Cancel was pressed. The {\it client\_data} array must have the same number of
1793elements as {\it choices} or {\it aChoices}!
1794
1795\wxheading{Include files}
1796
1797<wx/choicdlg.h>
1798
1799\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1800and {\tt choices}, and the client data array must have the
1801same length as the choices array.}
1802
1803\membersection{::wxIsBusy}\label{wxisbusy}
1804
1805\func{bool}{wxIsBusy}{\void}
1806
1807Returns true if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
1808\helpref{wxEndBusyCursor}{wxendbusycursor} calls.
1809
1810See also \helpref{wxBusyCursor}{wxbusycursor}.
1811
1812\wxheading{Include files}
1813
1814<wx/utils.h>
1815
1816\membersection{::wxMessageBox}\label{wxmessagebox}
1817
1818\func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK \pipe wxCENTRE},\\
1819 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}}
1820
1821General purpose message dialog. {\it style} may be a bit list of the
1822following identifiers:
1823
1824\begin{twocollist}\itemsep=0pt
1825\twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
1826wxCANCEL.}
1827\twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
1828wxYES\_NO or wxOK.}
1829\twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.}
1830\twocolitem{wxCENTRE}{Centres the text.}
1831\twocolitem{wxICON\_EXCLAMATION}{Displays an exclamation mark symbol.}
1832\twocolitem{wxICON\_HAND}{Displays an error symbol.}
1833\twocolitem{wxICON\_ERROR}{Displays an error symbol - the same as wxICON\_HAND.}
1834\twocolitem{wxICON\_QUESTION}{Displays a question mark symbol.}
1835\twocolitem{wxICON\_INFORMATION}{Displays an information symbol.}
1836\end{twocollist}
1837
1838The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
1839
1840For example:
1841
1842\begin{verbatim}
1843 ...
1844 int answer = wxMessageBox("Quit program?", "Confirm",
1845 wxYES_NO | wxCANCEL, main_frame);
1846 if (answer == wxYES)
1847 delete main_frame;
1848 ...
1849\end{verbatim}
1850
1851{\it message} may contain newline characters, in which case the
1852message will be split into separate lines, to cater for large messages.
1853
1854Under Windows, the native MessageBox function is used unless wxCENTRE
1855is specified in the style, in which case a generic function is used.
1856This is because the native MessageBox function cannot centre text.
1857The symbols are not shown when the generic function is used.
1858
1859\wxheading{Include files}
1860
1861<wx/msgdlg.h>
1862
1863\membersection{::wxShowTip}\label{wxshowtip}
1864
1865\func{bool}{wxShowTip}{\param{wxWindow *}{parent},
1866 \param{wxTipProvider *}{tipProvider},
1867 \param{bool }{showAtStartup = true}}
1868
1869This function shows a "startup tip" to the user. The return value is the
1870state of the ``Show tips at startup'' checkbox.
1871
1872\docparam{parent}{The parent window for the modal dialog}
1873
1874\docparam{tipProvider}{An object which is used to get the text of the tips.
1875It may be created with the \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.}
1876
1877\docparam{showAtStartup}{Should be true if startup tips are shown, false
1878otherwise. This is used as the initial value for "Show tips at startup"
1879checkbox which is shown in the tips dialog.}
1880
1881\wxheading{See also}
1882
1883\helpref{Tips overview}{tipsoverview}
1884
1885\wxheading{Include files}
1886
1887<wx/tipdlg.h>
1888
1889\section{GDI functions}\label{gdifunctions}
1890
1891The following are relevant to the GDI (Graphics Device Interface).
1892
1893\wxheading{Include files}
1894
1895<wx/gdicmn.h>
1896
1897\membersection{wxBITMAP}\label{wxbitmapmacro}
1898
1899\func{}{wxBITMAP}{bitmapName}
1900
1901This macro loads a bitmap from either application resources (on the platforms
1902for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1903avoid using {\tt \#ifdef}s when creating bitmaps.
1904
1905\wxheading{See also}
1906
1907\helpref{Bitmaps and icons overview}{wxbitmapoverview},
1908\helpref{wxICON}{wxiconmacro}
1909
1910\wxheading{Include files}
1911
1912<wx/gdicmn.h>
1913
1914\membersection{::wxClientDisplayRect}\label{wxclientdisplayrect}
1915
1916\func{void}{wxClientDisplayRect}{\param{int *}{x}, \param{int *}{y},
1917\param{int *}{width}, \param{int *}{height}}
1918
1919\func{wxRect}{wxGetClientDisplayRect}{\void}
1920
1921Returns the dimensions of the work area on the display. On Windows
1922this means the area not covered by the taskbar, etc. Other platforms
1923are currently defaulting to the whole display until a way is found to
1924provide this info for all window managers, etc.
1925
1926\membersection{::wxColourDisplay}\label{wxcolourdisplay}
1927
1928\func{bool}{wxColourDisplay}{\void}
1929
1930Returns true if the display is colour, false otherwise.
1931
1932\membersection{::wxDisplayDepth}\label{wxdisplaydepth}
1933
1934\func{int}{wxDisplayDepth}{\void}
1935
1936Returns the depth of the display (a value of 1 denotes a monochrome display).
1937
1938\membersection{::wxDisplaySize}\label{wxdisplaysize}
1939
1940\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
1941
1942\func{wxSize}{wxGetDisplaySize}{\void}
1943
1944Returns the display size in pixels.
1945
1946\membersection{::wxDisplaySizeMM}\label{wxdisplaysizemm}
1947
1948\func{void}{wxDisplaySizeMM}{\param{int *}{width}, \param{int *}{height}}
1949
1950\func{wxSize}{wxGetDisplaySizeMM}{\void}
1951
1952Returns the display size in millimeters.
1953
1954\membersection{::wxDROP\_ICON}\label{wxdropicon}
1955
1956\func{wxIconOrCursor}{wxDROP\_ICON}{\param{const char *}{name}}
1957
1958This macro creates either a cursor (MSW) or an icon (elsewhere) with the given
1959name. Under MSW, the cursor is loaded from the resource file and the icon is
1960loaded from XPM file under other platforms.
1961
1962This macro should be used with
1963\helpref{wxDropSource constructor}{wxdropsourcewxdropsource}.
1964
1965\wxheading{Include files}
1966
1967<wx/dnd.h>
1968
1969\membersection{wxICON}\label{wxiconmacro}
1970
1971\func{}{wxICON}{iconName}
1972
1973This macro loads an icon from either application resources (on the platforms
1974for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1975avoid using {\tt \#ifdef}s when creating icons.
1976
1977\wxheading{See also}
1978
1979\helpref{Bitmaps and icons overview}{wxbitmapoverview},
1980\helpref{wxBITMAP}{wxbitmapmacro}
1981
1982\wxheading{Include files}
1983
1984<wx/gdicmn.h>
1985
1986\membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
1987
1988\func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
1989 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
1990
1991Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
1992makes it into a placeable metafile by prepending a header containing the given
1993bounding box. The bounding box may be obtained from a device context after drawing
1994into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
1995
1996In addition to adding the placeable metafile header, this function adds
1997the equivalent of the following code to the start of the metafile data:
1998
1999\begin{verbatim}
2000 SetMapMode(dc, MM_ANISOTROPIC);
2001 SetWindowOrg(dc, minX, minY);
2002 SetWindowExt(dc, maxX - minX, maxY - minY);
2003\end{verbatim}
2004
2005This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
2006
2007Placeable metafiles may be imported by many Windows applications, and can be
2008used in RTF (Rich Text Format) files.
2009
2010{\it scale} allows the specification of scale for the metafile.
2011
2012This function is only available under Windows.
2013
2014\membersection{::wxSetCursor}\label{wxsetcursor}
2015
2016\func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
2017
2018Globally sets the cursor; only has an effect in Windows and GTK.
2019See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
2020
2021\section{Printer settings}\label{printersettings}
2022
2023{\bf NB:} These routines are obsolete and should no longer be used!
2024
2025The following functions are used to control PostScript printing. Under
2026Windows, PostScript output can only be sent to a file.
2027
2028\wxheading{Include files}
2029
2030<wx/dcps.h>
2031
2032\membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
2033
2034\func{wxString}{wxGetPrinterCommand}{\void}
2035
2036Gets the printer command used to print a file. The default is {\tt lpr}.
2037
2038\membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
2039
2040\func{wxString}{wxGetPrinterFile}{\void}
2041
2042Gets the PostScript output filename.
2043
2044\membersection{::wxGetPrinterMode}\label{wxgetprintermode}
2045
2046\func{int}{wxGetPrinterMode}{\void}
2047
2048Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
2049The default is PS\_PREVIEW.
2050
2051\membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
2052
2053\func{wxString}{wxGetPrinterOptions}{\void}
2054
2055Gets the additional options for the print command (e.g. specific printer). The default is nothing.
2056
2057\membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
2058
2059\func{int}{wxGetPrinterOrientation}{\void}
2060
2061Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
2062
2063\membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
2064
2065\func{wxString}{wxGetPrinterPreviewCommand}{\void}
2066
2067Gets the command used to view a PostScript file. The default depends on the platform.
2068
2069\membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
2070
2071\func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
2072
2073Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
2074
2075\membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
2076
2077\func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
2078
2079Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
2080
2081\membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
2082
2083\func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
2084
2085Sets the printer command used to print a file. The default is {\tt lpr}.
2086
2087\membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
2088
2089\func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
2090
2091Sets the PostScript output filename.
2092
2093\membersection{::wxSetPrinterMode}\label{wxsetprintermode}
2094
2095\func{void}{wxSetPrinterMode}{\param{int }{mode}}
2096
2097Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
2098The default is PS\_PREVIEW.
2099
2100\membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
2101
2102\func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
2103
2104Sets the additional options for the print command (e.g. specific printer). The default is nothing.
2105
2106\membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
2107
2108\func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
2109
2110Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
2111
2112\membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
2113
2114\func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
2115
2116Sets the command used to view a PostScript file. The default depends on the platform.
2117
2118\membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
2119
2120\func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
2121
2122Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
2123
2124\membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
2125
2126\func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
2127
2128Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
2129
2130\section{Clipboard functions}\label{clipsboard}
2131
2132These clipboard functions are implemented for Windows only. The use of these functions
2133is deprecated and the code is no longer maintained. Use the \helpref{wxClipboard}{wxclipboard}
2134class instead.
2135
2136\wxheading{Include files}
2137
2138<wx/clipbrd.h>
2139
2140\membersection{::wxClipboardOpen}\label{functionwxclipboardopen}
2141
2142\func{bool}{wxClipboardOpen}{\void}
2143
2144Returns true if this application has already opened the clipboard.
2145
2146\membersection{::wxCloseClipboard}\label{wxcloseclipboard}
2147
2148\func{bool}{wxCloseClipboard}{\void}
2149
2150Closes the clipboard to allow other applications to use it.
2151
2152\membersection{::wxEmptyClipboard}\label{wxemptyclipboard}
2153
2154\func{bool}{wxEmptyClipboard}{\void}
2155
2156Empties the clipboard.
2157
2158\membersection{::wxEnumClipboardFormats}\label{wxenumclipboardformats}
2159
2160\func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
2161
2162Enumerates the formats found in a list of available formats that belong
2163to the clipboard. Each call to this function specifies a known
2164available format; the function returns the format that appears next in
2165the list.
2166
2167{\it dataFormat} specifies a known format. If this parameter is zero,
2168the function returns the first format in the list.
2169
2170The return value specifies the next known clipboard data format if the
2171function is successful. It is zero if the {\it dataFormat} parameter specifies
2172the last format in the list of available formats, or if the clipboard
2173is not open.
2174
2175Before it enumerates the formats function, an application must open the clipboard by using the
2176wxOpenClipboard function.
2177
2178\membersection{::wxGetClipboardData}\label{wxgetclipboarddata}
2179
2180\func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
2181
2182Gets data from the clipboard.
2183
2184{\it dataFormat} may be one of:
2185
2186\begin{itemize}\itemsep=0pt
2187\item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string.
2188\item wxCF\_BITMAP: returns a new wxBitmap.
2189\end{itemize}
2190
2191The clipboard must have previously been opened for this call to succeed.
2192
2193\membersection{::wxGetClipboardFormatName}\label{wxgetclipboardformatname}
2194
2195\func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}}
2196
2197Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
2198length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
2199
2200\membersection{::wxIsClipboardFormatAvailable}\label{wxisclipboardformatavailable}
2201
2202\func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
2203
2204Returns true if the given data format is available on the clipboard.
2205
2206\membersection{::wxOpenClipboard}\label{wxopenclipboard}
2207
2208\func{bool}{wxOpenClipboard}{\void}
2209
2210Opens the clipboard for passing data to it or getting data from it.
2211
2212\membersection{::wxRegisterClipboardFormat}\label{wxregisterclipboardformat}
2213
2214\func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}}
2215
2216Registers the clipboard data format name and returns an identifier.
2217
2218\membersection{::wxSetClipboardData}\label{wxsetclipboarddata}
2219
2220\func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}}
2221
2222Passes data to the clipboard.
2223
2224{\it dataFormat} may be one of:
2225
2226\begin{itemize}\itemsep=0pt
2227\item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string.
2228\item wxCF\_BITMAP: {\it data} is a wxBitmap.
2229\item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap).
2230\item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
2231\end{itemize}
2232
2233The clipboard must have previously been opened for this call to succeed.
2234
2235\section{Miscellaneous functions}\label{miscellany}
2236
2237\membersection{wxEXPLICIT}\label{wxexplicit}
2238
2239{\tt wxEXPLICIT} is a macro which expands to the C++ {\tt explicit} keyword if
2240the compiler supports it or nothing otherwise. Thus, it can be used even in the
2241code which might have to be compiled with an old compiler without support for
2242this language feature but still take advantage of it when it is available.
2243
2244\membersection{wxLL}\label{wxll}
2245
2246\func{wxLongLong\_t}{wxLL}{\param{}{number}}
2247
2248This macro is defined for the platforms with a native 64 bit integer type and
2249allows to define 64 bit compile time constants:
2250
2251\begin{verbatim}
2252 #ifdef wxLongLong_t
2253 wxLongLong_t ll = wxLL(0x1234567890abcdef);
2254 #endif
2255\end{verbatim}
2256
2257\wxheading{Include files}
2258
2259<wx/longlong.h>
2260
2261\membersection{wxLongLongFmtSpec}\label{wxlonglongfmtspec}
2262
2263This macro is defined to contain the {\tt printf()} format specifier using
2264which 64 bit integer numbers (i.e. those of type {\tt wxLongLong\_t}) can be
2265printed. Example of using it:
2266
2267\begin{verbatim}
2268 #ifdef wxLongLong_t
2269 wxLongLong_t ll = wxLL(0x1234567890abcdef);
2270 printf("Long long = %" wxLongLongFmtSpec "x\n", ll);
2271 #endif
2272\end{verbatim}
2273
2274\wxheading{See also}
2275
2276\helpref{wxLL}{wxll}
2277
2278\wxheading{Include files}
2279
2280<wx/longlong.h>
2281
2282\membersection{::wxNewId}\label{wxnewid}
2283
2284\func{long}{wxNewId}{\void}
2285
2286Generates an integer identifier unique to this run of the program.
2287
2288\wxheading{Include files}
2289
2290<wx/utils.h>
2291
2292\membersection{::wxRegisterId}\label{wxregisterid}
2293
2294\func{void}{wxRegisterId}{\param{long}{ id}}
2295
2296Ensures that ids subsequently generated by {\bf NewId} do not clash with
2297the given {\bf id}.
2298
2299\wxheading{Include files}
2300
2301<wx/utils.h>
2302
2303\membersection{::wxDDECleanUp}\label{wxddecleanup}
2304
2305\func{void}{wxDDECleanUp}{\void}
2306
2307Called when wxWindows exits, to clean up the DDE system. This no longer needs to be
2308called by the application.
2309
2310See also \helpref{wxDDEInitialize}{wxddeinitialize}.
2311
2312\wxheading{Include files}
2313
2314<wx/dde.h>
2315
2316\membersection{::wxDDEInitialize}\label{wxddeinitialize}
2317
2318\func{void}{wxDDEInitialize}{\void}
2319
2320Initializes the DDE system. May be called multiple times without harm.
2321
2322This no longer needs to be called by the application: it will be called
2323by wxWindows if necessary.
2324
2325See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},
2326\helpref{wxDDECleanUp}{wxddecleanup}.
2327
2328\wxheading{Include files}
2329
2330<wx/dde.h>
2331
2332\membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
2333
2334\func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = true}}
2335
2336This function enables or disables all top level windows. It is used by
2337\helpref{::wxSafeYield}{wxsafeyield}.
2338
2339\wxheading{Include files}
2340
2341<wx/utils.h>
2342
2343\membersection{::wxFindMenuItemId}\label{wxfindmenuitemid}
2344
2345\func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
2346
2347Find a menu item identifier associated with the given frame's menu bar.
2348
2349\wxheading{Include files}
2350
2351<wx/utils.h>
2352
2353\membersection{::wxFindWindowByLabel}\label{wxfindwindowbylabel}
2354
2355\func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
2356
2357{\bf NB:} This function is obsolete, please use
2358\helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead.
2359
2360Find a window by its label. Depending on the type of window, the label may be a window title
2361or panel item label. If {\it parent} is NULL, the search will start from all top-level
2362frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2363The search is recursive in both cases.
2364
2365\wxheading{Include files}
2366
2367<wx/utils.h>
2368
2369\membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
2370
2371\func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
2372
2373{\bf NB:} This function is obsolete, please use
2374\helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead.
2375
2376Find a window by its name (as given in a window constructor or {\bf Create} function call).
2377If {\it parent} is NULL, the search will start from all top-level
2378frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2379The search is recursive in both cases.
2380
2381If no such named window is found, {\bf wxFindWindowByLabel} is called.
2382
2383\wxheading{Include files}
2384
2385<wx/utils.h>
2386
2387\membersection{::wxFindWindowAtPoint}\label{wxfindwindowatpoint}
2388
2389\func{wxWindow *}{wxFindWindowAtPoint}{\param{const wxPoint\& }{pt}}
2390
2391Find the deepest window at the given mouse position in screen coordinates,
2392returning the window if found, or NULL if not.
2393
2394\membersection{::wxFindWindowAtPointer}\label{wxfindwindowatpointer}
2395
2396\func{wxWindow *}{wxFindWindowAtPointer}{\param{wxPoint\& }{pt}}
2397
2398Find the deepest window at the mouse pointer position, returning the window
2399and current pointer position in screen coordinates.
2400
2401\membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
2402
2403\func{wxWindow *}{wxGetActiveWindow}{\void}
2404
2405Gets the currently active window (Windows only).
2406
2407\wxheading{Include files}
2408
2409<wx/windows.h>
2410
2411\membersection{::wxGetDisplayName}\label{wxgetdisplayname}
2412
2413\func{wxString}{wxGetDisplayName}{\void}
2414
2415Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
2416
2417\wxheading{Include files}
2418
2419<wx/utils.h>
2420
2421\membersection{::wxGetMousePosition}\label{wxgetmouseposition}
2422
2423\func{wxPoint}{wxGetMousePosition}{\void}
2424
2425Returns the mouse position in screen coordinates.
2426
2427\wxheading{Include files}
2428
2429<wx/utils.h>
2430
2431\membersection{::wxGetResource}\label{wxgetresource}
2432
2433\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2434 \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}}
2435
2436\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2437 \param{float *}{value}, \param{const wxString\& }{file = NULL}}
2438
2439\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2440 \param{long *}{value}, \param{const wxString\& }{file = NULL}}
2441
2442\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2443 \param{int *}{value}, \param{const wxString\& }{file = NULL}}
2444
2445Gets a resource value from the resource database (for example, WIN.INI, or
2446.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2447otherwise the specified file is used.
2448
2449Under X, if an application class (wxApp::GetClassName) has been defined,
2450it is appended to the string /usr/lib/X11/app-defaults/ to try to find
2451an applications default file when merging all resource databases.
2452
2453The reason for passing the result in an argument is that it
2454can be convenient to define a default value, which gets overridden
2455if the value exists in the resource file. It saves a separate
2456test for that resource's existence, and it also allows
2457the overloading of the function for different types.
2458
2459See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
2460
2461\wxheading{Include files}
2462
2463<wx/utils.h>
2464
2465\membersection{::wxGetTopLevelParent}\label{wxgettoplevelparent}
2466
2467\func{wxWindow *}{wxGetTopLevelParent}{\param{wxWindow }{*win}}
2468
2469Returns the first top level parent of the given window, or in other words, the
2470frame or dialog containing it, or {\tt NULL}.
2471
2472\wxheading{Include files}
2473
2474<wx/window.h>
2475
2476\membersection{::wxLoadUserResource}\label{wxloaduserresource}
2477
2478\func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
2479
2480Loads a user-defined Windows resource as a string. If the resource is found, the function creates
2481a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
2482
2483The resource must be defined in the {\tt .rc} file using the following syntax:
2484
2485\begin{verbatim}
2486myResource TEXT file.ext
2487\end{verbatim}
2488
2489where {\tt file.ext} is a file that the resource compiler can find.
2490
2491One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers
2492cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed
2493using \helpref{wxResourceParseString}{wxresourceparsestring}.
2494
2495This function is available under Windows only.
2496
2497\wxheading{Include files}
2498
2499<wx/utils.h>
2500
2501\membersection{::wxPostDelete}\label{wxpostdelete}
2502
2503\func{void}{wxPostDelete}{\param{wxObject *}{object}}
2504
2505Tells the system to delete the specified object when
2506all other events have been processed. In some environments, it is
2507necessary to use this instead of deleting a frame directly with the
2508delete operator, because some GUIs will still send events to a deleted window.
2509
2510Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
2511
2512\wxheading{Include files}
2513
2514<wx/utils.h>
2515
2516\membersection{::wxPostEvent}\label{wxpostevent}
2517
2518\func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}}
2519
2520In a GUI application, this function posts {\it event} to the specified {\it dest}
2521object using \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
2522Otherwise, it dispatches {\it event} immediately using
2523\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent}.
2524See the respective documentation for details (and caveats).
2525
2526\wxheading{Include files}
2527
2528<wx/app.h>
2529
2530\membersection{::wxSetDisplayName}\label{wxsetdisplayname}
2531
2532\func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
2533
2534Under X only, sets the current display name. This is the X host and display name such
2535as ``colonsay:0.0", and the function indicates which display should be used for creating
2536windows from this point on. Setting the display within an application allows multiple
2537displays to be used.
2538
2539See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
2540
2541\wxheading{Include files}
2542
2543<wx/utils.h>
2544
2545\membersection{::wxStripMenuCodes}\label{wxstripmenucodes}
2546
2547\func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
2548
2549\func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}}
2550
2551{\bf NB:} This function is obsolete, please use
2552\helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
2553
2554Strips any menu codes from {\it in} and places the result
2555in {\it out} (or returns the new string, in the first form).
2556
2557Menu codes include \& (mark the next character with an underline
2558as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
2559
2560\wxheading{Include files}
2561
2562<wx/utils.h>
2563
2564\membersection{::wxWriteResource}\label{wxwriteresource}
2565
2566\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2567 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
2568
2569\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2570 \param{float }{value}, \param{const wxString\& }{file = NULL}}
2571
2572\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2573 \param{long }{value}, \param{const wxString\& }{file = NULL}}
2574
2575\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2576 \param{int }{value}, \param{const wxString\& }{file = NULL}}
2577
2578Writes a resource value into the resource database (for example, WIN.INI, or
2579.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2580otherwise the specified file is used.
2581
2582Under X, the resource databases are cached until the internal function
2583\rtfsp{\bf wxFlushResources} is called automatically on exit, when
2584all updated resource databases are written to their files.
2585
2586Note that it is considered bad manners to write to the .Xdefaults
2587file under Unix, although the WIN.INI file is fair game under Windows.
2588
2589See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
2590
2591\wxheading{Include files}
2592
2593<wx/utils.h>
2594
2595\section{Byte order macros}\label{byteordermacros}
2596
2597The endian-ness issues (that is the difference between big-endian and
2598little-endian architectures) are important for the portable programs working
2599with the external binary data (for example, data files or data coming from
2600network) which is usually in some fixed, platform-independent format. The
2601macros are helpful for transforming the data to the correct format.
2602
2603\membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
2604
2605\func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
2606
2607\func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
2608
2609\func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
2610
2611\func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
2612
2613These macros will swap the bytes of the {\it value} variable from little
2614endian to big endian or vice versa unconditionally, i.e. independently of the
2615current platform.
2616
2617\membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
2618
2619\func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
2620
2621\func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
2622
2623\func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
2624
2625\func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
2626
2627This macro will swap the bytes of the {\it value} variable from little
2628endian to big endian or vice versa if the program is compiled on a
2629big-endian architecture (such as Sun work stations). If the program has
2630been compiled on a little-endian architecture, the value will be unchanged.
2631
2632Use these macros to read data from and write data to a file that stores
2633data in little-endian (for example Intel i386) format.
2634
2635\membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
2636
2637\func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
2638
2639\func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
2640
2641\func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
2642
2643\func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
2644
2645This macro will swap the bytes of the {\it value} variable from little
2646endian to big endian or vice versa if the program is compiled on a
2647little-endian architecture (such as Intel PCs). If the program has
2648been compiled on a big-endian architecture, the value will be unchanged.
2649
2650Use these macros to read data from and write data to a file that stores
2651data in big-endian format.
2652
2653\section{RTTI functions}\label{rttimacros}
2654
2655wxWindows uses its own RTTI ("run-time type identification") system which
2656predates the current standard C++ RTTI and so is kept for backwards
2657compatibility reasons but also because it allows some things which the
2658standard RTTI doesn't directly support (such as creating a class from its
2659name).
2660
2661The standard C++ RTTI can be used in the user code without any problems and in
2662general you shouldn't need to use the functions and the macros in this section
2663unless you are thinking of modifying or adding any wxWindows classes.
2664
2665\wxheading{See also}
2666
2667\helpref{RTTI overview}{runtimeclassoverview}
2668
2669\membersection{CLASSINFO}\label{classinfo}
2670
2671\func{wxClassInfo *}{CLASSINFO}{className}
2672
2673Returns a pointer to the wxClassInfo object associated with this class.
2674
2675\wxheading{Include files}
2676
2677<wx/object.h>
2678
2679\membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass}
2680
2681\func{}{DECLARE\_ABSTRACT\_CLASS}{className}
2682
2683Used inside a class declaration to declare that the class should be
2684made known to the class hierarchy, but objects of this class cannot be created
2685dynamically. The same as DECLARE\_CLASS.
2686
2687Example:
2688
2689\begin{verbatim}
2690class wxCommand: public wxObject
2691{
2692 DECLARE_ABSTRACT_CLASS(wxCommand)
2693
2694 private:
2695 ...
2696 public:
2697 ...
2698};
2699\end{verbatim}
2700
2701\wxheading{Include files}
2702
2703<wx/object.h>
2704
2705\membersection{DECLARE\_APP}\label{declareapp}
2706
2707\func{}{DECLARE\_APP}{className}
2708
2709This is used in headers to create a forward declaration of the
2710\helpref{wxGetApp}{wxgetapp} function implemented by
2711\helpref{IMPLEMENT\_APP}{implementapp}. It creates the declaration
2712{\tt className\& wxGetApp(void)}.
2713
2714Example:
2715
2716\begin{verbatim}
2717 DECLARE_APP(MyApp)
2718\end{verbatim}
2719
2720\wxheading{Include files}
2721
2722<wx/app.h>
2723
2724\membersection{DECLARE\_CLASS}\label{declareclass}
2725
2726\func{}{DECLARE\_CLASS}{className}
2727
2728Used inside a class declaration to declare that the class should be
2729made known to the class hierarchy, but objects of this class cannot be created
2730dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
2731
2732\wxheading{Include files}
2733
2734<wx/object.h>
2735
2736\membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass}
2737
2738\func{}{DECLARE\_DYNAMIC\_CLASS}{className}
2739
2740Used inside a class declaration to declare that the objects of this class should be dynamically
2741creatable from run-time type information.
2742
2743Example:
2744
2745\begin{verbatim}
2746class wxFrame: public wxWindow
2747{
2748 DECLARE_DYNAMIC_CLASS(wxFrame)
2749
2750 private:
2751 const wxString& frameTitle;
2752 public:
2753 ...
2754};
2755\end{verbatim}
2756
2757\wxheading{Include files}
2758
2759<wx/object.h>
2760
2761\membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass}
2762
2763\func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
2764
2765Used in a C++ implementation file to complete the declaration of
2766a class that has run-time type information. The same as IMPLEMENT\_CLASS.
2767
2768Example:
2769
2770\begin{verbatim}
2771IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
2772
2773wxCommand::wxCommand(void)
2774{
2775...
2776}
2777\end{verbatim}
2778
2779\wxheading{Include files}
2780
2781<wx/object.h>
2782
2783\membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2}
2784
2785\func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
2786
2787Used in a C++ implementation file to complete the declaration of
2788a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
2789
2790\wxheading{Include files}
2791
2792<wx/object.h>
2793
2794\membersection{IMPLEMENT\_APP}\label{implementapp}
2795
2796\func{}{IMPLEMENT\_APP}{className}
2797
2798This is used in the application class implementation file to make the application class known to
2799wxWindows for dynamic construction. You use this instead of
2800
2801Old form:
2802
2803\begin{verbatim}
2804 MyApp myApp;
2805\end{verbatim}
2806
2807New form:
2808
2809\begin{verbatim}
2810 IMPLEMENT_APP(MyApp)
2811\end{verbatim}
2812
2813See also \helpref{DECLARE\_APP}{declareapp}.
2814
2815\wxheading{Include files}
2816
2817<wx/app.h>
2818
2819\membersection{IMPLEMENT\_CLASS}\label{implementclass}
2820
2821\func{}{IMPLEMENT\_CLASS}{className, baseClassName}
2822
2823Used in a C++ implementation file to complete the declaration of
2824a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
2825
2826\wxheading{Include files}
2827
2828<wx/object.h>
2829
2830\membersection{IMPLEMENT\_CLASS2}\label{implementclass2}
2831
2832\func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
2833
2834Used in a C++ implementation file to complete the declaration of a
2835class that has run-time type information and two base classes. The
2836same as IMPLEMENT\_ABSTRACT\_CLASS2.
2837
2838\wxheading{Include files}
2839
2840<wx/object.h>
2841
2842\membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass}
2843
2844\func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
2845
2846Used in a C++ implementation file to complete the declaration of
2847a class that has run-time type information, and whose instances
2848can be created dynamically.
2849
2850Example:
2851
2852\begin{verbatim}
2853IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
2854
2855wxFrame::wxFrame(void)
2856{
2857...
2858}
2859\end{verbatim}
2860
2861\wxheading{Include files}
2862
2863<wx/object.h>
2864
2865\membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2}
2866
2867\func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
2868
2869Used in a C++ implementation file to complete the declaration of
2870a class that has run-time type information, and whose instances
2871can be created dynamically. Use this for classes derived from two
2872base classes.
2873
2874\wxheading{Include files}
2875
2876<wx/object.h>
2877
2878\membersection{wxConstCast}\label{wxconstcast}
2879
2880\func{classname *}{wxConstCast}{ptr, classname}
2881
2882This macro expands into {\tt const\_cast<classname *>(ptr)} if the compiler
2883supports {\it const\_cast} or into an old, C-style cast, otherwise.
2884
2885\wxheading{See also}
2886
2887\helpref{wxDynamicCast}{wxdynamiccast}\\
2888\helpref{wxStaticCast}{wxstaticcast}
2889
2890\membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
2891
2892\func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
2893
2894Creates and returns an object of the given class, if the class has been
2895registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
2896
2897\membersection{WXDEBUG\_NEW}\label{debugnew}
2898
2899\func{}{WXDEBUG\_NEW}{arg}
2900
2901This is defined in debug mode to be call the redefined new operator
2902with filename and line number arguments. The definition is:
2903
2904\begin{verbatim}
2905#define WXDEBUG_NEW new(__FILE__,__LINE__)
2906\end{verbatim}
2907
2908In non-debug mode, this is defined as the normal new operator.
2909
2910\wxheading{Include files}
2911
2912<wx/object.h>
2913
2914\membersection{wxDynamicCast}\label{wxdynamiccast}
2915
2916\func{classname *}{wxDynamicCast}{ptr, classname}
2917
2918This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
2919the pointer is of this type (the check is done during the run-time) or
2920{\tt NULL} otherwise. Usage of this macro is preferred over obsoleted
2921wxObject::IsKindOf() function.
2922
2923The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be
2924returned.
2925
2926Example:
2927
2928\begin{verbatim}
2929 wxWindow *win = wxWindow::FindFocus();
2930 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
2931 if ( text )
2932 {
2933 // a text control has the focus...
2934 }
2935 else
2936 {
2937 // no window has the focus or it is not a text control
2938 }
2939\end{verbatim}
2940
2941\wxheading{See also}
2942
2943\helpref{RTTI overview}{runtimeclassoverview}\\
2944\helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
2945\helpref{wxConstCast}{wxconstcast}\\
2946\helpref{wxStatiicCast}{wxstaticcast}
2947
2948\membersection{wxDynamicCastThis}\label{wxdynamiccastthis}
2949
2950\func{classname *}{wxDynamicCastThis}{classname}
2951
2952This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the
2953latter provokes spurious compilation warnings from some compilers (because it
2954tests whether {\tt this} pointer is non {\tt NULL} which is always true), so
2955this macro should be used to avoid them.
2956
2957\wxheading{See also}
2958
2959\helpref{wxDynamicCast}{wxdynamiccast}
2960
2961\membersection{wxStaticCast}\label{wxstaticcast}
2962
2963\func{classname *}{wxStaticCast}{ptr, classname}
2964
2965This macro checks that the cast is valid in debug mode (an assert failure will
2966result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
2967result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
2968
2969\helpref{wxDynamicCast}{wxdynamiccast}\\
2970\helpref{wxConstCast}{wxconstcast}
2971
2972\section{Resource functions}\label{resourcefuncs}
2973
2974\overview{Resource functions}{resourceformats}
2975
2976This section details functions for manipulating wxWindows (.WXR) resource
2977files and loading user interface elements from resources.
2978
2979\normalbox{Please note that this use of the word `resource' is different from that used when talking
2980about initialisation file resource reading and writing, using such functions
2981as wxWriteResource and wxGetResource. It is just an unfortunate clash of terminology.}
2982
2983\helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
2984
2985See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
2986loading from resource data.
2987
2988\membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
2989
2990\func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
2991
2992Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
2993{\tt\#}defining a name to an integer). Unlikely to be used by an application except
2994perhaps for implementing resource functionality for interpreted languages.
2995
2996\membersection{::wxResourceClear}\label{wxresourceclear}
2997
2998\func{void}{wxResourceClear}{\void}
2999
3000Clears the wxWindows resource table.
3001
3002\membersection{::wxResourceCreateBitmap}\label{wxresourcecreatebitmap}
3003
3004\func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
3005
3006Creates a new bitmap from a file, static data, or Windows resource, given a valid
3007wxWindows bitmap resource identifier. For example, if the .WXR file contains
3008the following:
3009
3010\begin{verbatim}
3011static const wxString\& project_resource = "bitmap(name = 'project_resource',\
3012 bitmap = ['project', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
3013 bitmap = ['project.xpm', wxBITMAP_TYPE_XPM, 'X']).";
3014\end{verbatim}
3015
3016then this function can be called as follows:
3017
3018\begin{verbatim}
3019 wxBitmap *bitmap = wxResourceCreateBitmap("project_resource");
3020\end{verbatim}
3021
3022\membersection{::wxResourceCreateIcon}\label{wxresourcecreateicon}
3023
3024\func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
3025
3026Creates a new icon from a file, static data, or Windows resource, given a valid
3027wxWindows icon resource identifier. For example, if the .WXR file contains
3028the following:
3029
3030\begin{verbatim}
3031static const wxString\& project_resource = "icon(name = 'project_resource',\
3032 icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
3033 icon = ['project', wxBITMAP_TYPE_XBM_DATA, 'X']).";
3034\end{verbatim}
3035
3036then this function can be called as follows:
3037
3038\begin{verbatim}
3039 wxIcon *icon = wxResourceCreateIcon("project_resource");
3040\end{verbatim}
3041
3042\membersection{::wxResourceCreateMenuBar}\label{wxresourcecreatemenubar}
3043
3044\func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
3045
3046Creates a new menu bar given a valid wxWindows menubar resource
3047identifier. For example, if the .WXR file contains the following:
3048
3049\begin{verbatim}
3050static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
3051 menu = \
3052 [\
3053 ['&File', 1, '', \
3054 ['&Open File', 2, 'Open a file'],\
3055 ['&Save File', 3, 'Save a file'],\
3056 [],\
3057 ['E&xit', 4, 'Exit program']\
3058 ],\
3059 ['&Help', 5, '', \
3060 ['&About', 6, 'About this program']\
3061 ]\
3062 ]).";
3063\end{verbatim}
3064
3065then this function can be called as follows:
3066
3067\begin{verbatim}
3068 wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
3069\end{verbatim}
3070
3071
3072\membersection{::wxResourceGetIdentifier}\label{wxresourcegetidentifier}
3073
3074\func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
3075
3076Used for retrieving the integer value associated with an identifier.
3077A zero value indicates that the identifier was not found.
3078
3079See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
3080
3081\membersection{::wxResourceParseData}\label{wxresourcedata}
3082
3083\func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
3084
3085Parses a string containing one or more wxWindows resource objects. If
3086the resource objects are global static data that are included into the
3087C++ program, then this function must be called for each variable
3088containing the resource data, to make it known to wxWindows.
3089
3090{\it resource} should contain data in the following form:
3091
3092\begin{verbatim}
3093dialog(name = 'dialog1',
3094 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
3095 title = 'Test dialog box',
3096 x = 312, y = 234, width = 400, height = 300,
3097 modal = 0,
3098 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
3099 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
3100 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
3101 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
3102 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
3103 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
3104\end{verbatim}
3105
3106This function will typically be used after including a {\tt .wxr} file into
3107a C++ program as follows:
3108
3109\begin{verbatim}
3110#include "dialog1.wxr"
3111\end{verbatim}
3112
3113Each of the contained resources will declare a new C++ variable, and each
3114of these variables should be passed to wxResourceParseData.
3115
3116\membersection{::wxResourceParseFile}\label{wxresourceparsefile}
3117
3118\func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
3119
3120Parses a file containing one or more wxWindows resource objects
3121in C++-compatible syntax. Use this function to dynamically load
3122wxWindows resource data.
3123
3124\membersection{::wxResourceParseString}\label{wxresourceparsestring}
3125
3126\func{bool}{wxResourceParseString}{\param{char *}{s}, \param{wxResourceTable *}{table = NULL}}
3127
3128Parses a string containing one or more wxWindows resource objects. If
3129the resource objects are global static data that are included into the
3130C++ program, then this function must be called for each variable
3131containing the resource data, to make it known to wxWindows.
3132
3133{\it resource} should contain data with the following form:
3134
3135\begin{verbatim}
3136dialog(name = 'dialog1',
3137 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
3138 title = 'Test dialog box',
3139 x = 312, y = 234, width = 400, height = 300,
3140 modal = 0,
3141 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
3142 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
3143 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
3144 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
3145 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
3146 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
3147\end{verbatim}
3148
3149This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
3150load an entire {\tt .wxr file} into a string.
3151
3152\membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
3153
3154\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char *}{xbm\_data}, \param{int }{width},
3155\param{int }{height}, \param{wxResourceTable *}{table = NULL}}
3156
3157\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char **}{xpm\_data}}
3158
3159Makes {\tt\#}included XBM or XPM bitmap data known to the wxWindows resource system.
3160This is required if other resources will use the bitmap data, since otherwise there
3161is no connection between names used in resources, and the global bitmap data.
3162
3163\membersection{::wxResourceRegisterIconData}\label{wxresourceregistericondata}
3164
3165Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
3166
3167\section{Log functions}\label{logfunctions}
3168
3169These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
3170further information. The functions use (implicitly) the currently active log
3171target, so their descriptions here may not apply if the log target is not the
3172standard one (installed by wxWindows in the beginning of the program).
3173
3174\wxheading{Include files}
3175
3176<wx/log.h>
3177
3178\membersection{::wxDebugMsg}\label{wxdebugmsg}
3179
3180\func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
3181
3182{\bf NB:} This function is now obsolete, replaced by \helpref{Log
3183functions}{logfunctions} and \helpref{wxLogDebug}{wxlogdebug} in particular.
3184
3185Display a debugging message; under Windows, this will appear on the
3186debugger command window, and under Unix, it will be written to standard
3187error.
3188
3189The syntax is identical to {\bf printf}: pass a format string and a
3190variable list of arguments.
3191
3192{\bf Tip:} under Windows, if your application crashes before the
3193message appears in the debugging window, put a wxYield call after
3194each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
3195(at least for Watcom C++): preformat your messages and use OutputDebugString
3196instead.
3197
3198\wxheading{Include files}
3199
3200<wx/utils.h>
3201
3202\membersection{::wxError}\label{wxerror}
3203
3204\func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
3205
3206{\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
3207instead.
3208
3209Displays {\it msg} and continues. This writes to standard error under
3210Unix, and pops up a message box under Windows. Used for internal
3211wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
3212
3213\wxheading{Include files}
3214
3215<wx/utils.h>
3216
3217\membersection{::wxFatalError}\label{wxfatalerror}
3218
3219\func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
3220
3221{\bf NB:} This function is now obsolete, please use
3222\helpref{wxLogFatalError}{wxlogfatalerror} instead.
3223
3224Displays {\it msg} and exits. This writes to standard error under Unix,
3225and pops up a message box under Windows. Used for fatal internal
3226wxWindows errors. See also \helpref{wxError}{wxerror}.
3227
3228\wxheading{Include files}
3229
3230<wx/utils.h>
3231
3232\membersection{::wxLogError}\label{wxlogerror}
3233
3234\func{void}{wxLogError}{\param{const char *}{formatString}, \param{...}{}}
3235
3236\func{void}{wxVLogError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3237
3238The functions to use for error messages, i.e. the messages that must be shown
3239to the user. The default processing is to pop up a message box to inform the
3240user about it.
3241
3242\membersection{::wxLogFatalError}\label{wxlogfatalerror}
3243
3244\func{void}{wxLogFatalError}{\param{const char *}{formatString}, \param{...}{}}
3245
3246\func{void}{wxVLogFatalError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3247
3248Like \helpref{wxLogError}{wxlogerror}, but also
3249terminates the program with the exit code 3. Using {\it abort()} standard
3250function also terminates the program with this exit code.
3251
3252\membersection{::wxLogWarning}\label{wxlogwarning}
3253
3254\func{void}{wxLogWarning}{\param{const char *}{formatString}, \param{...}{}}
3255
3256\func{void}{wxVLogWarning}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3257
3258For warnings - they are also normally shown to the user, but don't interrupt
3259the program work.
3260
3261\membersection{::wxLogMessage}\label{wxlogmessage}
3262
3263\func{void}{wxLogMessage}{\param{const char *}{formatString}, \param{...}{}}
3264
3265\func{void}{wxVLogMessage}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3266
3267For all normal, informational messages. They also appear in a message box by
3268default (but it can be changed). Notice that the standard behaviour is to not
3269show informational messages if there are any errors later - the logic being
3270that the later error messages make the informational messages preceding them
3271meaningless.
3272
3273\membersection{::wxLogVerbose}\label{wxlogverbose}
3274
3275\func{void}{wxLogVerbose}{\param{const char *}{formatString}, \param{...}{}}
3276
3277\func{void}{wxVLogVerbose}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3278
3279For verbose output. Normally, it is suppressed, but
3280might be activated if the user wishes to know more details about the program
3281progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
3282
3283\membersection{::wxLogStatus}\label{wxlogstatus}
3284
3285\func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{...}{}}
3286
3287\func{void}{wxVLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3288
3289\func{void}{wxLogStatus}{\param{const char *}{formatString}, \param{...}{}}
3290
3291\func{void}{wxVLogStatus}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3292
3293Messages logged by these functions will appear in the statusbar of the {\it
3294frame} or of the top level application window by default (i.e. when using
3295the second version of the functions).
3296
3297If the target frame doesn't have a statusbar, the message will be lost.
3298
3299\membersection{::wxLogSysError}\label{wxlogsyserror}
3300
3301\func{void}{wxLogSysError}{\param{const char *}{formatString}, \param{...}{}}
3302
3303\func{void}{wxVLogSysError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3304
3305Mostly used by wxWindows itself, but might be handy for logging errors after
3306system call (API function) failure. It logs the specified message text as well
3307as the last system error code ({\it errno} or {\it ::GetLastError()} depending
3308on the platform) and the corresponding error message. The second form
3309of this function takes the error code explicitly as the first argument.
3310
3311\wxheading{See also}
3312
3313\helpref{wxSysErrorCode}{wxsyserrorcode},
3314\helpref{wxSysErrorMsg}{wxsyserrormsg}
3315
3316\membersection{::wxLogDebug}\label{wxlogdebug}
3317
3318\func{void}{wxLogDebug}{\param{const char *}{formatString}, \param{...}{}}
3319
3320\func{void}{wxVLogDebug}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3321
3322The right functions for debug output. They only do something in debug
3323mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to
3324nothing in release mode (otherwise).
3325
3326\membersection{::wxLogTrace}\label{wxlogtrace}
3327
3328\func{void}{wxLogTrace}{\param{const char *}{formatString}, \param{...}{}}
3329
3330\func{void}{wxVLogTrace}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3331
3332\func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}}
3333
3334\func{void}{wxVLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3335
3336\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}}
3337
3338\func{void}{wxVLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3339
3340As {\bf wxLogDebug}, trace functions only do something in debug build and
3341expand to nothing in the release one. The reason for making
3342it a separate function from it is that usually there are a lot of trace
3343messages, so it might make sense to separate them from other debug messages.
3344
3345The trace messages also usually can be separated into different categories and
3346the second and third versions of this function only log the message if the
3347{\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This
3348allows to selectively trace only some operations and not others by changing
3349the value of the trace mask (possible during the run-time).
3350
3351For the second function (taking a string mask), the message is logged only if
3352the mask has been previously enabled by the call to
3353\helpref{AddTraceMask}{wxlogaddtracemask}. The predefined string trace masks
3354used by wxWindows are:
3355
3356\begin{itemize}\itemsep=0pt
3357\item wxTRACE\_MemAlloc: trace memory allocation (new/delete)
3358\item wxTRACE\_Messages: trace window messages/X callbacks
3359\item wxTRACE\_ResAlloc: trace GDI resource allocation
3360\item wxTRACE\_RefCount: trace various ref counting operations
3361\item wxTRACE\_OleCalls: trace OLE method calls (Win32 only)
3362\end{itemize}
3363
3364The third version of the function only logs the message if all the bit
3365corresponding to the {\it mask} are set in the wxLog trace mask which can be
3366set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less
3367flexible than the previous one because it doesn't allow defining the user
3368trace masks easily - this is why it is deprecated in favour of using string
3369trace masks.
3370
3371\begin{itemize}\itemsep=0pt
3372\item wxTraceMemAlloc: trace memory allocation (new/delete)
3373\item wxTraceMessages: trace window messages/X callbacks
3374\item wxTraceResAlloc: trace GDI resource allocation
3375\item wxTraceRefCount: trace various ref counting operations
3376\item wxTraceOleCalls: trace OLE method calls (Win32 only)
3377\end{itemize}
3378
3379\membersection{::wxSafeShowMessage}\label{wxsafeshowmessage}
3380
3381\func{void}{wxSafeShowMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{text}}
3382
3383This function shows a message to the user in a safe way and should be safe to
3384call even before the application has been initialized or if it is currently in
3385some other strange state (for example, about to crash). Under Windows this
3386function shows a message box using a native dialog instead of
3387\helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere
3388it simply prints the message to the standard output using the title as prefix.
3389
3390\wxheading{Parameters}
3391
3392\docparam{title}{The title of the message box shown to the user or the prefix
3393of the message string}
3394
3395\docparam{text}{The text to show to the user}
3396
3397\wxheading{See also}
3398
3399\helpref{wxLogFatalError}{wxlogfatalerror}
3400
3401\wxheading{Include files}
3402
3403<wx/log.h>
3404
3405\membersection{::wxSysErrorCode}\label{wxsyserrorcode}
3406
3407\func{unsigned long}{wxSysErrorCode}{\void}
3408
3409Returns the error code from the last system call. This function uses
3410{\tt errno} on Unix platforms and {\tt GetLastError} under Win32.
3411
3412\wxheading{See also}
3413
3414\helpref{wxSysErrorMsg}{wxsyserrormsg},
3415\helpref{wxLogSysError}{wxlogsyserror}
3416
3417\membersection{::wxSysErrorMsg}\label{wxsyserrormsg}
3418
3419\func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}}
3420
3421Returns the error message corresponding to the given system error code. If
3422{\it errCode} is $0$ (default), the last error code (as returned by
3423\helpref{wxSysErrorCode}{wxsyserrorcode}) is used.
3424
3425\wxheading{See also}
3426
3427\helpref{wxSysErrorCode}{wxsyserrorcode},
3428\helpref{wxLogSysError}{wxlogsyserror}
3429
3430\membersection{WXTRACE}\label{trace}
3431
3432\wxheading{Include files}
3433
3434<wx/object.h>
3435
3436\func{}{WXTRACE}{formatString, ...}
3437
3438{\bf NB:} This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3439
3440Calls wxTrace with printf-style variable argument syntax. Output
3441is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3442
3443\wxheading{Include files}
3444
3445<wx/memory.h>
3446
3447\membersection{WXTRACELEVEL}\label{tracelevel}
3448
3449\func{}{WXTRACELEVEL}{level, formatString, ...}
3450
3451{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3452
3453Calls wxTraceLevel with printf-style variable argument syntax. Output
3454is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3455The first argument should be the level at which this information is appropriate.
3456It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3457this value.
3458
3459\wxheading{Include files}
3460
3461<wx/memory.h>
3462
3463\membersection{::wxTrace}\label{wxtrace}
3464
3465\func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
3466
3467{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3468
3469Takes printf-style variable argument syntax. Output
3470is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3471
3472\wxheading{Include files}
3473
3474<wx/memory.h>
3475
3476\membersection{::wxTraceLevel}\label{wxtracelevel}
3477
3478\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
3479
3480{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3481
3482Takes printf-style variable argument syntax. Output
3483is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3484The first argument should be the level at which this information is appropriate.
3485It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3486this value.
3487
3488\wxheading{Include files}
3489
3490<wx/memory.h>
3491
3492\section{Time functions}\label{timefunctions}
3493
3494The functions in this section deal with getting the current time and
3495starting/stopping the global timers. Please note that the timer functions are
3496deprecated because they work with one global timer only and
3497\helpref{wxTimer}{wxtimer} and/or \helpref{wxStopWatch}{wxstopwatch} classes
3498should be used instead. For retrieving the current time, you may also use
3499\helpref{wxDateTime::Now}{wxdatetimenow} or
3500\helpref{wxDateTime::UNow}{wxdatetimeunow} methods.
3501
3502\membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
3503
3504\func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = true}}
3505
3506Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
3507
3508If {\it resetTimer} is true (the default), the timer is reset to zero
3509by this call.
3510
3511See also \helpref{wxTimer}{wxtimer}.
3512
3513\wxheading{Include files}
3514
3515<wx/timer.h>
3516
3517\membersection{::wxGetLocalTime}\label{wxgetlocaltime}
3518
3519\func{long}{wxGetLocalTime}{\void}
3520
3521Returns the number of seconds since local time 00:00:00 Jan 1st 1970.
3522
3523\wxheading{See also}
3524
3525\helpref{wxDateTime::Now}{wxdatetimenow}
3526
3527\wxheading{Include files}
3528
3529<wx/timer.h>
3530
3531\membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis}
3532
3533\func{wxLongLong}{wxGetLocalTimeMillis}{\void}
3534
3535Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970.
3536
3537\wxheading{See also}
3538
3539\helpref{wxDateTime::Now}{wxdatetimenow},\\
3540\helpref{wxLongLong}{wxlonglong}
3541
3542\wxheading{Include files}
3543
3544<wx/timer.h>
3545
3546\membersection{::wxGetUTCTime}\label{wxgetutctime}
3547
3548\func{long}{wxGetUTCTime}{\void}
3549
3550Returns the number of seconds since GMT 00:00:00 Jan 1st 1970.
3551
3552\wxheading{See also}
3553
3554\helpref{wxDateTime::Now}{wxdatetimenow}
3555
3556\wxheading{Include files}
3557
3558<wx/timer.h>
3559
3560\membersection{::wxNow}\label{wxnow}
3561
3562\func{wxString}{wxNow}{\void}
3563
3564Returns a string representing the current date and time.
3565
3566\wxheading{Include files}
3567
3568<wx/utils.h>
3569
3570\membersection{::wxSleep}\label{wxsleep}
3571
3572\func{void}{wxSleep}{\param{int}{ secs}}
3573
3574Sleeps for the specified number of seconds.
3575
3576\wxheading{Include files}
3577
3578<wx/utils.h>
3579
3580\membersection{::wxStartTimer}\label{wxstarttimer}
3581
3582\func{void}{wxStartTimer}{\void}
3583
3584Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
3585
3586See also \helpref{wxTimer}{wxtimer}.
3587
3588\wxheading{Include files}
3589
3590<wx/timer.h>
3591
3592\membersection{::wxUsleep}\label{wxusleep}
3593
3594\func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
3595
3596Sleeps for the specified number of milliseconds. Notice that usage of this
3597function is encouraged instead of calling usleep(3) directly because the
3598standard usleep() function is not MT safe.
3599
3600\wxheading{Include files}
3601
3602<wx/utils.h>
3603
3604\section{Debugging macros and functions}\label{debugmacros}
3605
3606Useful macros and functions for error checking and defensive programming.
3607wxWindows defines three families of the assert-like macros:
3608the wxASSERT and wxFAIL macros only do anything if \_\_WXDEBUG\_\_ is defined
3609(in other words, in the debug build) but disappear completely in the release
3610build. On the other hand, the wxCHECK macros stay event in release builds but a
3611check failure doesn't generate any user-visible effects then. Finally, the
3612compile time assertions don't happen during the run-time but result in the
3613compilation error messages if the condition they check fail.
3614
3615\wxheading{Include files}
3616
3617<wx/debug.h>
3618
3619\membersection{::wxOnAssert}\label{wxonassert}
3620
3621\func{void}{wxOnAssert}{\param{const char *}{fileName}, \param{int}{ lineNumber}, \param{const char *}{cond}, \param{const char *}{msg = NULL}}
3622
3623This function is called whenever one of debugging macros fails (i.e. condition
3624is false in an assertion). It is only defined in the debug mode, in release
3625builds the \helpref{wxCHECK}{wxcheck} failures don't result in anything.
3626
3627To override the default behaviour in the debug builds which is to show the user
3628a dialog asking whether he wants to abort the program, continue or continue
3629ignoring any subsequent assert failures, you may override
3630\helpref{wxApp::OnAssert}{wxapponassert} which is called by this function if
3631the global application object exists.
3632
3633\membersection{wxASSERT}\label{wxassert}
3634
3635\func{}{wxASSERT}{\param{}{condition}}
3636
3637Assert macro. An error message will be generated if the condition is false in
3638debug mode, but nothing will be done in the release build.
3639
3640Please note that the condition in wxASSERT() should have no side effects
3641because it will not be executed in release mode at all.
3642
3643\wxheading{See also}
3644
3645\helpref{wxASSERT\_MSG}{wxassertmsg},\\
3646\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
3647
3648\membersection{wxASSERT\_MIN\_BITSIZE}\label{wxassertminbitsize}
3649
3650\func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}}
3651
3652This macro results in a
3653\helpref{compile time assertion failure}{wxcompiletimeassert} if the size
3654of the given type {\it type} is less than {\it size} bits.
3655
3656You may use it like this, for example:
3657
3658\begin{verbatim}
3659 // we rely on the int being able to hold values up to 2^32
3660 wxASSERT_MIN_BITSIZE(int, 32);
3661
3662 // can't work with the platforms using UTF-8 for wchar_t
3663 wxASSERT_MIN_BITSIZE(wchar_t, 16);
3664\end{verbatim}
3665
3666\membersection{wxASSERT\_MSG}\label{wxassertmsg}
3667
3668\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
3669
3670Assert macro with message. An error message will be generated if the condition is false.
3671
3672\wxheading{See also}
3673
3674\helpref{wxASSERT}{wxassert},\\
3675\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
3676
3677\membersection{wxCOMPILE\_TIME\_ASSERT}\label{wxcompiletimeassert}
3678
3679\func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}}
3680
3681Using {\tt wxCOMPILE\_TIME\_ASSERT} results in a compilation error if the
3682specified {\it condition} is false. The compiler error message should include
3683the {\it msg} identifier - please note that it must be a valid C++ identifier
3684and not a string unlike in the other cases.
3685
3686This macro is mostly useful for testing the expressions involving the
3687{\tt sizeof} operator as they can't be tested by the preprocessor but it is
3688sometimes desirable to test them at the compile time.
3689
3690Note that this macro internally declares a struct whose name it tries to make
3691unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you
3692use it on the same line in two different source files. In this case you may
3693either change the line in which either of them appears on or use the
3694\helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro.
3695
3696\wxheading{See also}
3697
3698\helpref{wxASSERT\_MSG}{wxassertmsg},\\
3699\helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}
3700
3701\membersection{wxCOMPILE\_TIME\_ASSERT2}\label{wxcompiletimeassert2}
3702
3703\func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}}
3704
3705This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}
3706except that it allows you to specify a unique {\it name} for the struct
3707internally defined by this macro to avoid getting the compilation errors
3708described \helpref{above}{wxcompiletimeassert}.
3709
3710\membersection{wxFAIL}\label{wxfail}
3711
3712\func{}{wxFAIL}{\void}
3713
3714Will always generate an assert error if this code is reached (in debug mode).
3715
3716See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
3717
3718\membersection{wxFAIL\_MSG}\label{wxfailmsg}
3719
3720\func{}{wxFAIL\_MSG}{\param{}{msg}}
3721
3722Will always generate an assert error with specified message if this code is reached (in debug mode).
3723
3724This macro is useful for marking unreachable" code areas, for example
3725it may be used in the "default:" branch of a switch statement if all possible
3726cases are processed above.
3727
3728\wxheading{See also}
3729
3730\helpref{wxFAIL}{wxfail}
3731
3732\membersection{wxCHECK}\label{wxcheck}
3733
3734\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
3735
3736Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3737This check is done even in release mode.
3738
3739\membersection{wxCHECK\_MSG}\label{wxcheckmsg}
3740
3741\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
3742
3743Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3744This check is done even in release mode.
3745
3746This macro may be only used in non void functions, see also
3747\helpref{wxCHECK\_RET}{wxcheckret}.
3748
3749\membersection{wxCHECK\_RET}\label{wxcheckret}
3750
3751\func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
3752
3753Checks that the condition is true, and returns if not (FAILs with given error
3754message in debug mode). This check is done even in release mode.
3755
3756This macro should be used in void functions instead of
3757\helpref{wxCHECK\_MSG}{wxcheckmsg}.
3758
3759\membersection{wxCHECK2}\label{wxcheck2}
3760
3761\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
3762
3763Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
3764{\it operation} if it is not. This is a generalisation of
3765\helpref{wxCHECK}{wxcheck} and may be used when something else than just
3766returning from the function must be done when the {\it condition} is false.
3767
3768This check is done even in release mode.
3769
3770\membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
3771
3772\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
3773
3774This is the same as \helpref{wxCHECK2}{wxcheck2}, but
3775\helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
3776instead of wxFAIL() if the {\it condition} is false.
3777
3778\membersection{::wxTrap}\label{wxtrap}
3779
3780\func{void}{wxTrap}{\void}
3781
3782In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a
3783debugger exception meaning that the control is passed to the debugger if one is
3784attached to the process. Otherwise the program just terminates abnormally.
3785
3786In release mode this function does nothing.
3787
3788\wxheading{Include files}
3789
3790<wx/debug.h>
3791
3792\section{Environment access functions}\label{environfunctions}
3793
3794The functions in this section allow to access (get) or change value of
3795environment variables in a portable way. They are currently implemented under
3796Win32 and POSIX-like systems (Unix).
3797
3798% TODO add some stuff about env var inheriting but not propagating upwards (VZ)
3799
3800\wxheading{Include files}
3801
3802<wx/utils.h>
3803
3804\membersection{wxGetenv}\label{wxgetenvmacro}
3805
3806\func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}}
3807
3808This is a macro defined as {\tt getenv()} or its wide char version in Unicode
3809mode.
3810
3811Note that under Win32 it may not return correct value for the variables set
3812with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function
3813instead.
3814
3815\membersection{wxGetEnv}\label{wxgetenv}
3816
3817\func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}}
3818
3819Returns the current value of the environment variable {\it var} in {\it value}.
3820{\it value} may be {\tt NULL} if you just want to know if the variable exists
3821and are not interested in its value.
3822
3823Returns {\tt true} if the variable exists, {\tt false} otherwise.
3824
3825\membersection{wxSetEnv}\label{wxsetenv}
3826
3827\func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
3828
3829Sets the value of the environment variable {\it var} (adding it if necessary)
3830to {\it value}.
3831
3832Returns {\tt true} on success.
3833
3834\membersection{wxUnsetEnv}\label{wxunsetenv}
3835
3836\func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}}
3837
3838Removes the variable {\it var} from the environment.
3839\helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this
3840function.
3841
3842Returns {\tt true} on success.
3843