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