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